Name: series-workflow492tg Phase: Failed StartedAt: 2026-06-30 03:25:29 +0000 UTC FinishedAt: 2026-06-30 03:54:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow492tg[0] Phase: Succeeded StartedAt: 2026-06-30 03:25:29 +0000 UTC FinishedAt: 2026-06-30 03:53:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflow492tg[0].run-triage Phase: Succeeded StartedAt: 2026-06-30 03:25:29 +0000 UTC FinishedAt: 2026-06-30 03:53:35 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDAzOjUyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbWlncmF0ZXMgZXhpc3RpbmcgcHJhbmRvbSBzZWxmLXRlc3RzIHRvIHRoZSBLVW5pdCBmcmFtZXdvcmsuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IHdvdWxkIHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDM6NTI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzN2Q3MzhhZTZkYmM2N2E1MzRhMjM3NzVmNTg5ZGE1NGEyMmIyNGQ3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDM6NTI6NTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcgYi9saWIvS2NvbmZpZ1xuaW5kZXggMjkyMzkyNGJlYTc4Y2IuLjVmMTg1ZTlmMWU5MmJkIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWdcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnXG5AQCAtMTU2LDEyICYjNDM7MTU2LDYgQEAgY29uZmlnIEFVRElUX0NPTVBBVF9HRU5FUklDXG4gXHRkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IEFVRElUX0FSQ0hfQ09NUEFUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IENPTVBBVFxuIFx0ZGVmYXVsdCB5XG4gXG4tY29uZmlnIFJBTkRPTTMyX1NFTEZURVNUXG4tXHRib29sIFwmIzM0O1BSTkcgcGVyZm9ybSBzZWxmIHRlc3Qgb24gaW5pdFwmIzM0O1xuLVx0aGVscFxuLVx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSAzMiBiaXQgUFJORyBsaWJyYXJ5IGZ1bmN0aW9ucyB0byBwZXJmb3JtIGFcbi1cdCAgc2VsZiB0ZXN0IG9uIGluaXRpYWxpemF0aW9uLlxuLVxuICNcbiAjIGNvbXByZXNzaW9uIHN1cHBvcnQgaXMgc2VsZWN0JiMzOTtlZCBpZiBuZWVkZWRcbiAjXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1Z1xuaW5kZXggYmEzNjkzOWZkYTc5YmYuLjAyMTRhNTg1OTNkN2ZiIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWcuZGVidWdcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnLmRlYnVnXG5AQCAtMzM1NCw2ICYjNDM7MzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUXG4gXG4gXHQgIElmIHVuc3VyZSwgc2F5IE5cbiBcbiYjNDM7Y29uZmlnIFBSQU5ET01fS1VOSVRfVEVTVFxuJiM0MztcdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3QgZm9yIHByYW5kb21cJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuJiM0MztcdGRlcGVuZHMgb24gS1VOSVRcbiYjNDM7XHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuJiM0MztcdGhlbHBcbiYjNDM7XHQgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLlxuJiM0MztcbiYjNDM7XHQgIElmIHVuc3VyZSwgc2F5IE5cbiYjNDM7XG4gZW5kaWYgIyBSVU5USU1FX1RFU1RJTkdfTUVOVVxuIFxuIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUXG5kaWZmIC0tZ2l0IGEvbGliL3JhbmRvbTMyLmMgYi9saWIvcmFuZG9tMzIuY1xuaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NFxuLS0tIGEvbGliL3JhbmRvbTMyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9yYW5kb20zMi5jXG5AQCAtNDEsNiAmIzQzOzQxLDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRvcHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3VuYWxpZ25lZC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2t1bml0L3Zpc2liaWxpdHkuaFx1MDAzZVxuIFxuIC8qKlxuICAqXHRwcmFuZG9tX3UzMl9zdGF0ZSAtIHNlZWRlZCBwc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuXG5AQCAtOTIsNyAmIzQzOzkzLDE0IEBAIHZvaWQgcHJhbmRvbV9ieXRlc19zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBzaXplX3QgYnl0ZXMpXG4gfVxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7XG4gXG4tc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4mIzQzOy8qXG4mIzQzOyAqIE9ubHkgZGVjbGFyZWQgaGVyZSBzbyB0aGF0IGl0IGhhcyBhIHByb3RvdHlwZSB3aGVuIG1hZGVcbiYjNDM7ICogbm9uLXN0YXRpYyBmb3IgS1VuaXQgdGVzdGluZyAoYXZvaWRzIC1XbWlzc2luZy1wcm90b3R5cGVzKS5cbiYjNDM7ICovXG4mIzQzOyNpZiBJU19FTkFCTEVEKENPTkZJR19LVU5JVClcbiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4mIzQzOyNlbmRpZlxuJiM0MztWSVNJQkxFX0lGX0tVTklUIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4ge1xuIFx0LyogQ2FsbGluZyBSTkcgdGVuIHRpbWVzIHRvIHNhdGlzZnkgcmVjdXJyZW5jZSBjb25kaXRpb24gKi9cbiBcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcbkBAIC0xMDYsNiAmIzQzOzExNCw3IEBAIHN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIH1cbiYjNDM7RVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7XG4gXG4gdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIHtcbkBAIC0xMjUsMTc2ICYjNDM7MTM0LDMgQEAgdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIFx0fVxuIH1cbiBFWFBPUlRfU1lNQk9MKHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKTtcbi1cbi0jaWZkZWYgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHtcbi1cdHUzMiBzZWVkO1xuLVx0dTMyIHJlc3VsdDtcbi19IHRlc3QxW10gPSB7XG4tXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuLVx0eyAyVSwgMjYyMzEzMDA1OVUgfSxcbi1cdHsgM1UsIDMxMjUxMzM4OTNVIH0sXG4tXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuLX07XG4tXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbi1cdHUzMiBzZWVkO1xuLVx0dTMyIGl0ZXJhdGlvbjtcbi1cdHUzMiByZXN1bHQ7XG4tfSB0ZXN0MltdID0ge1xuLVx0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cbi1cdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4tXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxuLVx0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcbi1cdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4tXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxuLVx0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcbi1cdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4tXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxuLVx0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcbi1cdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4tXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxuLVx0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcbi1cdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4tXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxuLVx0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcbi1cdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4tXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxuLVx0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcbi1cdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4tXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxuLVx0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcbi1cdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4tXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxuLVx0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcbi1cdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4tXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxuLVx0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcbi1cdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4tXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxuLVx0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcbi1cdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4tXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxuLVx0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcbi1cdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4tXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxuLVx0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcbi1cdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4tXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxuLVx0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcbi1cdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4tXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxuLVx0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcbi1cdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4tXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxuLVx0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcbi1cdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4tXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxuLVx0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcbi1cdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4tXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxuLVx0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcbi1cdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4tXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxuLVx0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcbi1cdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4tXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxuLVx0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcbi1cdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4tXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxuLVx0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcbi1cdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4tXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxuLVx0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcbi1cdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4tXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxuLVx0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcbi1cdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4tXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxuLVx0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcbi1cdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4tXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxuLVx0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcbi1cdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4tXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxuLVx0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcbi1cdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4tXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxuLVx0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcbi1cdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4tXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxuLVx0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcbi1cdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4tXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxuLVx0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcbi1cdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4tXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxuLVx0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcbi1cdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4tXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxuLVx0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcbi1cdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4tXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxuLVx0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcbi1cdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4tXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxuLVx0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcbi1cdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4tXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxuLVx0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcbi1cdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4tfTtcbi1cbi1zdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKVxuLXtcbi0jZGVmaW5lIExDRyh4KVx0ICgoeCkgKiA2OTA2OVUpXHQvKiBzdXBlci1kdXBlciBMQ0cgKi9cbi1cdHN0YXRlLVx1MDAzZXMxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTtcbi1cdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuLVx0c3RhdGUtXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMyKSwgIDE2VSk7XG4tXHRzdGF0ZS1cdTAwM2VzNCA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczMpLCAxMjhVKTtcbi19XG4tXG4tc3RhdGljIGludCBfX2luaXQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCh2b2lkKVxuLXtcbi1cdGludCBpLCBqLCBlcnJvcnMgPSAwLCBydW5zID0gMDtcbi1cdGJvb2wgZXJyb3IgPSBmYWxzZTtcbi1cbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDEpOyBpJiM0MzsmIzQzOykge1xuLVx0XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuLVxuLVx0XHRwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xuLVx0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MVtpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9yID0gdHJ1ZTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcilcbi1cdFx0cHJfd2FybihcJiMzNDtwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBmYWlsZWRcXG5cJiMzNDspO1xuLVx0ZWxzZVxuLVx0XHRwcl9pbmZvKFwmIzM0O3ByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IHBhc3NlZFxcblwmIzM0Oyk7XG4tXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHtcbi1cdFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbi1cbi1cdFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbi1cdFx0cHJhbmRvbV93YXJtdXAoXHUwMDI2c3RhdGUpO1xuLVxuLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOylcbi1cdFx0XHRwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9ycyYjNDM7JiM0Mzs7XG4tXG4tXHRcdHJ1bnMmIzQzOyYjNDM7O1xuLVx0XHRjb25kX3Jlc2NoZWQoKTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcnMpXG4tXHRcdHByX3dhcm4oXCYjMzQ7cHJhbmRvbTogJWQvJWQgc2VsZiB0ZXN0cyBmYWlsZWRcXG5cJiMzNDssIGVycm9ycywgcnVucyk7XG4tXHRlbHNlXG4tXHRcdHByX2luZm8oXCYjMzQ7cHJhbmRvbTogJWQgc2VsZiB0ZXN0cyBwYXNzZWRcXG5cJiMzNDssIHJ1bnMpO1xuLVx0cmV0dXJuIDA7XG4tfVxuLWNvcmVfaW5pdGNhbGwocHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCk7XG4tI2VuZGlmXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL01ha2VmaWxlIGIvbGliL3Rlc3RzL01ha2VmaWxlXG5pbmRleCA2MDFkYmE0YjdkOTY2ZC4uMzlkMjgzYjI2ZmUyYjQgMTAwNjQ0XG4tLS0gYS9saWIvdGVzdHMvTWFrZWZpbGVcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi90ZXN0cy9NYWtlZmlsZVxuQEAgLTQ5LDUgJiM0Mzs0OSw2IEBAIG9iai0kKENPTkZJR19TVFJJTkdfSEVMUEVSU19LVU5JVF9URVNUKSAmIzQzOz0gc3RyaW5nX2hlbHBlcnNfa3VuaXQub1xuIG9iai0kKENPTkZJR19VU0VSQ09QWV9LVU5JVF9URVNUKSAmIzQzOz0gdXNlcmNvcHlfa3VuaXQub1xuIG9iai0kKENPTkZJR19VVElMX01BQ1JPU19LVU5JVCkgJiM0Mzs9IHV0aWxfbWFjcm9zX2t1bml0Lm9cbiBvYmotJChDT05GSUdfUkFURUxJTUlUX0tVTklUX1RFU1QpICYjNDM7PSB0ZXN0X3JhdGVsaW1pdC5vXG4mIzQzO29iai0kKENPTkZJR19QUkFORE9NX0tVTklUX1RFU1QpICYjNDM7PSByYW5kb20zMl9rdW5pdC5vXG4gXG4gb2JqLSQoQ09ORklHX1RFU1RfUlVOVElNRV9NT0RVTEUpXHRcdCYjNDM7PSBtb2R1bGUvXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi40MzY0MzUwMjY1YzE3Y1xuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNcbkBAIC0wLDAgJiM0MzsxLDE4MSBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuJiM0MzsvKlxuJiM0MzsgKiBUZXN0IGNhc2VzIGZvciByYW5kb20zMiBmdW5jdGlvbnMuXG4mIzQzOyAqL1xuJiM0MztcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvcHJhbmRvbS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2t1bml0L3Rlc3QuaFx1MDAzZVxuJiM0MztcbiYjNDM7LyogcHJhbmRvbV93YXJtdXAoKSBpcyBzdGF0aWMgaW4gbGliL3JhbmRvbTMyLmM7IGV4cG9zZWQgZm9yIHRlc3Rpbmcgb25seS4gKi9cbiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4mIzQzO1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDEge1xuJiM0MztcdHUzMiBzZWVkO1xuJiM0MztcdHUzMiByZXN1bHQ7XG4mIzQzO30gdGVzdDFbXSA9IHtcbiYjNDM7XHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuJiM0MztcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXG4mIzQzO1x0eyAzVSwgMzEyNTEzMzg5M1UgfSxcbiYjNDM7XHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbiYjNDM7XHR1MzIgc2VlZDtcbiYjNDM7XHR1MzIgaXRlcmF0aW9uO1xuJiM0MztcdHUzMiByZXN1bHQ7XG4mIzQzO30gdGVzdDJbXSA9IHtcbiYjNDM7XHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xuJiM0MztcdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4mIzQzO1x0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcbiYjNDM7XHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxuJiM0MztcdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4mIzQzO1x0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcbiYjNDM7XHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxuJiM0MztcdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4mIzQzO1x0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcbiYjNDM7XHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxuJiM0MztcdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4mIzQzO1x0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcbiYjNDM7XHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxuJiM0MztcdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4mIzQzO1x0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcbiYjNDM7XHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxuJiM0MztcdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4mIzQzO1x0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcbiYjNDM7XHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxuJiM0MztcdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4mIzQzO1x0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcbiYjNDM7XHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxuJiM0MztcdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4mIzQzO1x0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcbiYjNDM7XHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxuJiM0MztcdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4mIzQzO1x0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcbiYjNDM7XHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxuJiM0MztcdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4mIzQzO1x0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcbiYjNDM7XHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxuJiM0MztcdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4mIzQzO1x0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcbiYjNDM7XHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxuJiM0MztcdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4mIzQzO1x0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcbiYjNDM7XHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxuJiM0MztcdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4mIzQzO1x0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcbiYjNDM7XHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxuJiM0MztcdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4mIzQzO1x0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcbiYjNDM7XHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxuJiM0MztcdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4mIzQzO1x0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcbiYjNDM7XHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxuJiM0MztcdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4mIzQzO1x0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcbiYjNDM7XHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxuJiM0MztcdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4mIzQzO1x0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcbiYjNDM7XHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxuJiM0MztcdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4mIzQzO1x0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcbiYjNDM7XHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxuJiM0MztcdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4mIzQzO1x0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcbiYjNDM7XHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxuJiM0MztcdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4mIzQzO1x0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcbiYjNDM7XHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxuJiM0MztcdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4mIzQzO1x0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcbiYjNDM7XHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxuJiM0MztcdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4mIzQzO1x0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcbiYjNDM7XHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxuJiM0MztcdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4mIzQzO1x0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcbiYjNDM7XHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxuJiM0MztcdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4mIzQzO1x0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcbiYjNDM7XHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxuJiM0MztcdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4mIzQzO1x0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcbiYjNDM7XHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxuJiM0MztcdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4mIzQzO1x0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcbiYjNDM7XHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxuJiM0MztcdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4mIzQzO1x0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcbiYjNDM7XHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxuJiM0MztcdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4mIzQzO1x0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcbiYjNDM7XHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxuJiM0MztcdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4mIzQzO1x0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcbiYjNDM7XHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxuJiM0MztcdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4mIzQzO1x0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcbiYjNDM7XHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxuJiM0MztcdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4mIzQzO1x0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcbiYjNDM7XHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxuJiM0MztcdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4mIzQzO1x0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcbiYjNDM7XHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxuJiM0MztcdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4mIzQzO1x0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcbiYjNDM7XHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxuJiM0MztcdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4mIzQzO307XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXG4mIzQzO3tcbiYjNDM7I2RlZmluZSBMQ0coeClcdCAoKHgpICogNjkwNjlVKVx0Lyogc3VwZXItZHVwZXIgTENHICovXG4mIzQzO1x0c3RhdGUtXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXMzID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMiksICAxNlUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMyksIDEyOFUpO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4mIzQzO3tcbiYjNDM7XHRpbnQgaTtcbiYjNDM7XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuJiM0MztcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QxKTsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MVtpXS5zZWVkKTtcbiYjNDM7XHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbiYjNDM7XHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MVtpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fdGF1czExMyhzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4mIzQzO3tcbiYjNDM7XHRpbnQgaSwgajtcbiYjNDM7XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuJiM0MztcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbiYjNDM7XHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbiYjNDM7XG4mIzQzO1x0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOylcbiYjNDM7XHRcdFx0cHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpO1xuJiM0MztcbiYjNDM7XHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MltpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgcHJhbmRvbV90ZXN0X2Nhc2VzW10gPSB7XG4mIzQzO1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeSksXG4mIzQzO1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksXG4mIzQzO1x0e31cbiYjNDM7fTtcbiYjNDM7XG4mIzQzO3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgcHJhbmRvbV90ZXN0X3N1aXRlID0ge1xuJiM0MztcdC5uYW1lID0gXCYjMzQ7cHJhbmRvbVwmIzM0OyxcbiYjNDM7XHQudGVzdF9jYXNlcyA9IHByYW5kb21fdGVzdF9jYXNlcyxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO2t1bml0X3Rlc3Rfc3VpdGUocHJhbmRvbV90ZXN0X3N1aXRlKTtcbiYjNDM7XG4mIzQzO01PRFVMRV9ERVNDUklQVElPTihcJiMzNDtLVW5pdCB0ZXN0IGZvciBwcmFuZG9tXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwMzo1MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzN2Q3MzhhZTZkYmM2N2E1MzRhMjM3NzVmNTg5ZGE1NGEyMmIyNGQ3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMzAgMDM6NTI6NTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9saWIvS2NvbmZpZyBiL2xpYi9LY29uZmlnCmluZGV4IDI5MjM5MjRiZWE3OGNiLi41ZjE4NWU5ZjFlOTJiZCAxMDA2NDQKLS0tIGEvbGliL0tjb25maWcKJiM0MzsmIzQzOyYjNDM7IGIvbGliL0tjb25maWcKQEAgLTE1NiwxMiAmIzQzOzE1Niw2IEBAIGNvbmZpZyBBVURJVF9DT01QQVRfR0VORVJJQwogCWRlcGVuZHMgb24gQVVESVRfR0VORVJJQyAmYW1wOyZhbXA7IEFVRElUX0FSQ0hfQ09NUEFUX0dFTkVSSUMgJmFtcDsmYW1wOyBDT01QQVQKIAlkZWZhdWx0IHkKIAotY29uZmlnIFJBTkRPTTMyX1NFTEZURVNUCi0JYm9vbCAmIzM0O1BSTkcgcGVyZm9ybSBzZWxmIHRlc3Qgb24gaW5pdCYjMzQ7Ci0JaGVscAotCSAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgMzIgYml0IFBSTkcgbGlicmFyeSBmdW5jdGlvbnMgdG8gcGVyZm9ybSBhCi0JICBzZWxmIHRlc3Qgb24gaW5pdGlhbGl6YXRpb24uCi0KICMKICMgY29tcHJlc3Npb24gc3VwcG9ydCBpcyBzZWxlY3QmIzM5O2VkIGlmIG5lZWRlZAogIwpkaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1ZwppbmRleCBiYTM2OTM5ZmRhNzliZi4uMDIxNGE1ODU5M2Q3ZmIgMTAwNjQ0Ci0tLSBhL2xpYi9LY29uZmlnLmRlYnVnCiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnLmRlYnVnCkBAIC0zMzU0LDYgJiM0MzszMzU0LDE1IEBAIGNvbmZpZyBQUklNRV9OVU1CRVJTX0tVTklUX1RFU1QKIAogCSAgSWYgdW5zdXJlLCBzYXkgTgogCiYjNDM7Y29uZmlnIFBSQU5ET01fS1VOSVRfVEVTVAomIzQzOwl0cmlzdGF0ZSAmIzM0O0tVbml0IHRlc3QgZm9yIHByYW5kb20mIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTCiYjNDM7CWRlcGVuZHMgb24gS1VOSVQKJiM0MzsJZGVmYXVsdCBLVU5JVF9BTExfVEVTVFMKJiM0MzsJaGVscAomIzQzOwkgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLgomIzQzOwomIzQzOwkgIElmIHVuc3VyZSwgc2F5IE4KJiM0MzsKIGVuZGlmICMgUlVOVElNRV9URVNUSU5HX01FTlUKIAogY29uZmlnIEFSQ0hfVVNFX01FTVRFU1QKZGlmZiAtLWdpdCBhL2xpYi9yYW5kb20zMi5jIGIvbGliL3JhbmRvbTMyLmMKaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NAotLS0gYS9saWIvcmFuZG9tMzIuYwomIzQzOyYjNDM7JiM0MzsgYi9saWIvcmFuZG9tMzIuYwpAQCAtNDEsNiAmIzQzOzQxLDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9iaXRvcHMuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9zbGFiLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvdW5hbGlnbmVkLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2t1bml0L3Zpc2liaWxpdHkuaCZndDsKIAogLyoqCiAgKglwcmFuZG9tX3UzMl9zdGF0ZSAtIHNlZWRlZCBwc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuCkBAIC05Miw3ICYjNDM7OTMsMTQgQEAgdm9pZCBwcmFuZG9tX2J5dGVzX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB2b2lkICpidWYsIHNpemVfdCBieXRlcykKIH0KIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7CiAKLXN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKQomIzQzOy8qCiYjNDM7ICogT25seSBkZWNsYXJlZCBoZXJlIHNvIHRoYXQgaXQgaGFzIGEgcHJvdG90eXBlIHdoZW4gbWFkZQomIzQzOyAqIG5vbi1zdGF0aWMgZm9yIEtVbml0IHRlc3RpbmcgKGF2b2lkcyAtV21pc3NpbmctcHJvdG90eXBlcykuCiYjNDM7ICovCiYjNDM7I2lmIElTX0VOQUJMRUQoQ09ORklHX0tVTklUKQomIzQzO3ZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpOwomIzQzOyNlbmRpZgomIzQzO1ZJU0lCTEVfSUZfS1VOSVQgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSkKIHsKIAkvKiBDYWxsaW5nIFJORyB0ZW4gdGltZXMgdG8gc2F0aXNmeSByZWN1cnJlbmNlIGNvbmRpdGlvbiAqLwogCXByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTsKQEAgLTEwNiw2ICYjNDM7MTE0LDcgQEAgc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpCiAJcHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpOwogCXByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTsKIH0KJiM0MztFWFBPUlRfU1lNQk9MX0lGX0tVTklUKHByYW5kb21fd2FybXVwKTsKIAogdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKQogewpAQCAtMTI1LDE3NiAmIzQzOzEzNCwzIEBAIHZvaWQgcHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSBfX3BlcmNwdSAqcGNwdV9zdGF0ZSkKIAl9CiB9CiBFWFBPUlRfU1lNQk9MKHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKTsKLQotI2lmZGVmIENPTkZJR19SQU5ET00zMl9TRUxGVEVTVAotc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHsKLQl1MzIgc2VlZDsKLQl1MzIgcmVzdWx0OwotfSB0ZXN0MVtdID0gewotCXsgMVUsIDM0ODQzNTE2ODVVIH0sCi0JeyAyVSwgMjYyMzEzMDA1OVUgfSwKLQl7IDNVLCAzMTI1MTMzODkzVSB9LAotCXsgNFUsICA5ODQ4NDcyNTRVIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDIgewotCXUzMiBzZWVkOwotCXUzMiBpdGVyYXRpb247Ci0JdTMyIHJlc3VsdDsKLX0gdGVzdDJbXSA9IHsKLQkvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqLwotCXsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sCi0JeyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSwKLQl7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LAotCXsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sCi0JeyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSwKLQl7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LAotCXsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sCi0JeyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSwKLQl7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LAotCXsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sCi0JeyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSwKLQl7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LAotCXsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sCi0JeyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSwKLQl7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LAotCXsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sCi0JeyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSwKLQl7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LAotCXsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sCi0JeyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSwKLQl7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LAotCXsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sCi0JeyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSwKLQl7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LAotCXsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sCi0JeyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSwKLQl7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LAotCXsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sCi0JeyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSwKLQl7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LAotCXsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sCi0JeyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSwKLQl7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LAotCXsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sCi0JeyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSwKLQl7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LAotCXsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sCi0JeyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSwKLQl7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LAotCXsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sCi0JeyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSwKLQl7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LAotCXsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sCi0JeyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSwKLQl7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LAotCXsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sCi0JeyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSwKLQl7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LAotCXsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sCi0JeyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSwKLQl7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LAotCXsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sCi0JeyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSwKLQl7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LAotCXsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sCi0JeyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSwKLQl7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LAotCXsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sCi0JeyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSwKLQl7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LAotCXsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sCi0JeyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSwKLQl7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LAotCXsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sCi0JeyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSwKLQl7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LAotCXsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sCi0JeyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSwKLQl7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LAotCXsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sCi0JeyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSwKLQl7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LAotCXsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sCi0JeyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSwKLQl7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LAotCXsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sCi0JeyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSwKLQl7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LAotCXsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sCi0JeyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSwKLQl7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LAotCXsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sCi0JeyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSwKLQl7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LAotCXsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sCi0JeyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSwKLQl7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LAotCXsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sCi0JeyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSwKLQl7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LAotCXsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sCi0JeyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSwKLQl7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LAotCXsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sCi0JeyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSwKLQl7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LAotCXsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sCi0JeyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSwKLQl7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LAotCXsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sCi19OwotCi1zdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKQotewotI2RlZmluZSBMQ0coeCkJICgoeCkgKiA2OTA2OVUpCS8qIHN1cGVyLWR1cGVyIExDRyAqLwotCXN0YXRlLSZndDtzMSA9IF9fc2VlZChMQ0coc2VlZCksICAgICAgICAyVSk7Ci0Jc3RhdGUtJmd0O3MyID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czEpLCAgIDhVKTsKLQlzdGF0ZS0mZ3Q7czMgPSBfX3NlZWQoTENHKHN0YXRlLSZndDtzMiksICAxNlUpOwotCXN0YXRlLSZndDtzNCA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MzKSwgMTI4VSk7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IHByYW5kb21fc3RhdGVfc2VsZnRlc3Qodm9pZCkKLXsKLQlpbnQgaSwgaiwgZXJyb3JzID0gMCwgcnVucyA9IDA7Ci0JYm9vbCBlcnJvciA9IGZhbHNlOwotCi0JZm9yIChpID0gMDsgaSAmbHQ7IEFSUkFZX1NJWkUodGVzdDEpOyBpJiM0MzsmIzQzOykgewotCQlzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlOwotCi0JCXByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZCgmYW1wO3N0YXRlLCB0ZXN0MVtpXS5zZWVkKTsKLQkJcHJhbmRvbV93YXJtdXAoJmFtcDtzdGF0ZSk7Ci0KLQkJaWYgKHRlc3QxW2ldLnJlc3VsdCAhPSBwcmFuZG9tX3UzMl9zdGF0ZSgmYW1wO3N0YXRlKSkKLQkJCWVycm9yID0gdHJ1ZTsKLQl9Ci0KLQlpZiAoZXJyb3IpCi0JCXByX3dhcm4oJiMzNDtwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBmYWlsZWRcbiYjMzQ7KTsKLQllbHNlCi0JCXByX2luZm8oJiMzNDtwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBwYXNzZWRcbiYjMzQ7KTsKLQotCWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHsKLQkJc3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTsKLQotCQlwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoJmFtcDtzdGF0ZSwgdGVzdDJbaV0uc2VlZCk7Ci0JCXByYW5kb21fd2FybXVwKCZhbXA7c3RhdGUpOwotCi0JCWZvciAoaiA9IDA7IGogJmx0OyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOykKLQkJCXByYW5kb21fdTMyX3N0YXRlKCZhbXA7c3RhdGUpOwotCi0JCWlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSkpCi0JCQllcnJvcnMmIzQzOyYjNDM7OwotCi0JCXJ1bnMmIzQzOyYjNDM7OwotCQljb25kX3Jlc2NoZWQoKTsKLQl9Ci0KLQlpZiAoZXJyb3JzKQotCQlwcl93YXJuKCYjMzQ7cHJhbmRvbTogJWQvJWQgc2VsZiB0ZXN0cyBmYWlsZWRcbiYjMzQ7LCBlcnJvcnMsIHJ1bnMpOwotCWVsc2UKLQkJcHJfaW5mbygmIzM0O3ByYW5kb206ICVkIHNlbGYgdGVzdHMgcGFzc2VkXG4mIzM0OywgcnVucyk7Ci0JcmV0dXJuIDA7Ci19Ci1jb3JlX2luaXRjYWxsKHByYW5kb21fc3RhdGVfc2VsZnRlc3QpOwotI2VuZGlmCmRpZmYgLS1naXQgYS9saWIvdGVzdHMvTWFrZWZpbGUgYi9saWIvdGVzdHMvTWFrZWZpbGUKaW5kZXggNjAxZGJhNGI3ZDk2NmQuLjM5ZDI4M2IyNmZlMmI0IDEwMDY0NAotLS0gYS9saWIvdGVzdHMvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvbGliL3Rlc3RzL01ha2VmaWxlCkBAIC00OSw1ICYjNDM7NDksNiBAQCBvYmotJChDT05GSUdfU1RSSU5HX0hFTFBFUlNfS1VOSVRfVEVTVCkgJiM0Mzs9IHN0cmluZ19oZWxwZXJzX2t1bml0Lm8KIG9iai0kKENPTkZJR19VU0VSQ09QWV9LVU5JVF9URVNUKSAmIzQzOz0gdXNlcmNvcHlfa3VuaXQubwogb2JqLSQoQ09ORklHX1VUSUxfTUFDUk9TX0tVTklUKSAmIzQzOz0gdXRpbF9tYWNyb3Nfa3VuaXQubwogb2JqLSQoQ09ORklHX1JBVEVMSU1JVF9LVU5JVF9URVNUKSAmIzQzOz0gdGVzdF9yYXRlbGltaXQubwomIzQzO29iai0kKENPTkZJR19QUkFORE9NX0tVTklUX1RFU1QpICYjNDM7PSByYW5kb20zMl9rdW5pdC5vCiAKIG9iai0kKENPTkZJR19URVNUX1JVTlRJTUVfTU9EVUxFKQkJJiM0Mzs9IG1vZHVsZS8KZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jIGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjQzNjQzNTAyNjVjMTdjCi0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMKQEAgLTAsMCAmIzQzOzEsMTgxIEBACiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKJiM0MzsvKgomIzQzOyAqIFRlc3QgY2FzZXMgZm9yIHJhbmRvbTMyIGZ1bmN0aW9ucy4KJiM0MzsgKi8KJiM0MzsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvcHJhbmRvbS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtrdW5pdC90ZXN0LmgmZ3Q7CiYjNDM7CiYjNDM7LyogcHJhbmRvbV93YXJtdXAoKSBpcyBzdGF0aWMgaW4gbGliL3JhbmRvbTMyLmM7IGV4cG9zZWQgZm9yIHRlc3Rpbmcgb25seS4gKi8KJiM0Mzt2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKTsKJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDEgewomIzQzOwl1MzIgc2VlZDsKJiM0MzsJdTMyIHJlc3VsdDsKJiM0Mzt9IHRlc3QxW10gPSB7CiYjNDM7CXsgMVUsIDM0ODQzNTE2ODVVIH0sCiYjNDM7CXsgMlUsIDI2MjMxMzAwNTlVIH0sCiYjNDM7CXsgM1UsIDMxMjUxMzM4OTNVIH0sCiYjNDM7CXsgNFUsICA5ODQ4NDcyNTRVIH0sCiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDIgewomIzQzOwl1MzIgc2VlZDsKJiM0MzsJdTMyIGl0ZXJhdGlvbjsKJiM0MzsJdTMyIHJlc3VsdDsKJiM0Mzt9IHRlc3QyW10gPSB7CiYjNDM7CS8qIFRlc3QgY2FzZXMgYWdhaW5zdCB0YXVzMTEzIGZyb20gR1NMIGxpYnJhcnkuICovCiYjNDM7CXsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sCiYjNDM7CXsgMTMzOTY5MzI5NVUsIDg3NlUsIDM4ODc3NzY1MzJVIH0sCiYjNDM7CXsgMTU0NTU1NjI4NVUsIDk2MVUsIDE2MTU1Mzg4MzNVIH0sCiYjNDM7CXsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sCiYjNDM7CXsgMTAyNzUxNjA0N1UsIDY4N1UsICA1MTE5ODMwNzlVIH0sCiYjNDM7CXsgIDQxNjUyNjI5OFUsIDcwMFUsICA5MTYxNTY1NTJVIH0sCiYjNDM7CXsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sCiYjNDM7CXsgIDM2NjIyMTQ0M1UsIDYxN1UsIDI5OTI4NTc3NjNVIH0sCiYjNDM7CXsgMTUzOTgzNjk2NVUsIDcxNFUsIDM3ODMyNjU3MjVVIH0sCiYjNDM7CXsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sCiYjNDM7CXsgIDY4NDkwNzIxOFUsIDc5OVUsICAzNjc3ODk0OTFVIH0sCiYjNDM7CXsgMjEyMTIzMDcwMVUsIDkzMVUsIDIxMTU0NjcwMDFVIH0sCiYjNDM7CXsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sCiYjNDM7CXsgIDc2ODA0NjA2NlUsIDg4M1UsIDIwMzQwNzczOTBVIH0sCiYjNDM7CXsgMTk4OTE1OTEzNlUsIDgzM1UsIDExOTU3NjczMDVVIH0sCiYjNDM7CXsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sCiYjNDM7CXsgMTAwODEyOTM3M1UsIDY0MlUsIDE0NzgwODA3NzZVIH0sCiYjNDM7CXsgMTc0MDc3NTYwNFUsIDkzOVUsIDEyNjQ5ODAzNzJVIH0sCiYjNDM7CXsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sCiYjNDM7CXsgMTkyMzAxOTY5N1UsIDczMFUsIDM4MjE0MTk2MjlVIH0sCiYjNDM7CXsgIDQ0MjA3OTkzMlUsIDU2MFUsIDM0NDAwMzIzNDNVIH0sCiYjNDM7CXsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sCiYjNDM7CXsgMjAzMDIwNTk2NFUsIDk2MlUsIDEzMjUxNDQyMjdVIH0sCiYjNDM7CXsgMTE2MDQwNzUyOVUsIDUwN1UsICAyNDA5NDA4NThVIH0sCiYjNDM7CXsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sCiYjNDM7CXsgMTI1Mjc4ODkzMVUsIDY5OVUsICA4NjcxOTU0MzRVIH0sCiYjNDM7CXsgMTk2MTgxNzEzMVUsIDcxOVUsICA2NjgyMzc2NTdVIH0sCiYjNDM7CXsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sCiYjNDM7CXsgMTI4MTg0ODM2N1UsIDkzMlUsIDEwMDMxMDAwMzlVIH0sCiYjNDM7CXsgIDU4MjUzNzExOVUsIDc4MFUsIDExMjcyNzM3NzhVIH0sCiYjNDM7CXsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sCiYjNDM7CXsgMTg5Njc1Njk5NlUsIDc2MlUsIDExMjc4NTEwNTVVIH0sCiYjNDM7CXsgIDg0NzkxNzA1NFUsIDUwMFUsIDE3MTc0OTkwNzVVIH0sCiYjNDM7CXsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sCiYjNDM7CXsgMTY4NTA3MTY4MlUsIDU2N1UsIDE5NjE4MTAzOTZVIH0sCiYjNDM7CXsgMTUxNjIzMjEyOVUsIDU1N1UsICAgIDMxNzM4NzdVIH0sCiYjNDM7CXsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sCiYjNDM7CXsgMTgxNzI2OTkyN1UsIDY5M1UsIDQyNzkxMjI1NzNVIH0sCiYjNDM7CXsgMTUxMDA5MTcwMVUsIDcxN1UsICA2MzgxOTEyMjlVIH0sCiYjNDM7CXsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sCiYjNDM7CXsgIDM5OTMyNDM1OVUsIDcwMlUsIDE4MDM1OTgxMTZVIH0sCiYjNDM7CXsgMTMxODQ4MDI3NFUsIDc3OVUsIDIwNzQyMzcwMjJVIH0sCiYjNDM7CXsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sCiYjNDM7CXsgMTY5NjUwNzc3M1UsIDg0MFUsICA1Nzc0MTU0NDdVIH0sCiYjNDM7CXsgMjA4MTk3OTEyMVUsIDk4MVUsIDMwNDE0ODY0NDlVIH0sCiYjNDM7CXsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sCiYjNDM7CXsgMTI1MDY4MzUwNlUsIDc0OVUsICA4MzY0MTk4NTlVIH0sCiYjNDM7CXsgIDU5NTAwMzEwMlUsIDUzNFUsICAzNjY3OTQxMDlVIH0sCiYjNDM7CXsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sCiYjNDM7CXsgIDYxOTQzMzQ3OVUsIDYxMFUsIDM5OTE3ODM4NzVVIH0sCiYjNDM7CXsgIDcwNDA5NjUyMFUsIDUxOFUsIDQxMzk0OTM4NTJVIH0sCiYjNDM7CXsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sCiYjNDM7CXsgMTMxODIzMzE1MlUsIDkyMlUsIDM4ODAzNjExMzRVIH0sCiYjNDM7CXsgIDg1NTU3Mjk5MlUsIDc2MVUsIDE0NzI5NzQ3ODdVIH0sCiYjNDM7CXsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sCiYjNDM7CXsgIDY3ODkzMTc1OFUsIDg0MFUsICAzODA2MTYwNDNVIH0sCiYjNDM7CXsgIDY5MjcxMTk3M1UsIDc3OFUsIDEzODIzNjE5NDdVIH0sCiYjNDM7CXsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sCiYjNDM7CXsgICA5MjM5MzIyM1UsIDU4NlUsIDE1MjIxMjg0NzFVIH0sCiYjNDM7CXsgMTIyMjU5MjkyMFUsIDc0M1UsIDM0NjY3MjY2NjdVIH0sCiYjNDM7CXsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sCiYjNDM7CXsgMTkzNTA1Njk0NVUsIDk1OFUsICA1MTQ4NjQ0NzdVIH0sCiYjNDM7CXsgIDczNTY3NTk5M1UsIDk5MFUsIDEyOTQyMzk5ODlVIH0sCiYjNDM7CXsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sCiYjNDM7CXsgICA3MDYxNjM2MVUsIDgyOVUsICAgMjI0ODMwOThVIH0sCiYjNDM7CXsgIDM2ODIzNDcwMFUsIDczMVUsIDI5MTM4NzUwODRVIH0sCiYjNDM7CXsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sCiYjNDM7CXsgIDUzOTQ0NDY1NFUsIDY4MlUsIDE4MzUxNDEyNTlVIH0sCiYjNDM7CXsgMTMxNDk4NzI5N1UsIDg0MFUsIDE4MDExMTQxMzZVIH0sCiYjNDM7CXsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sCiYjNDM7CXsgIDQ2OTAyMzgzOFUsIDcxNlUsIDE2Mzc5MTgyMDJVIH0sCiYjNDM7CXsgMTg0Mzc1NDQ5NlUsIDY1M1UsIDI1NjIwOTIxNTJVIH0sCiYjNDM7CXsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sCiYjNDM7CXsgIDQwNDcyMjI0OVUsIDk2NVUsIDI3MDQxMTY5OTlVIH0sCiYjNDM7CXsgIDYwMDcwMjIwOVUsIDc1OFUsICA1ODQ5Nzk5ODZVIH0sCiYjNDM7CXsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sCiYjNDM7CXsgMTY1ODA3MTEyNlUsIDY5NFUsIDIyMTQ1Njk0OTBVIH0sCiYjNDM7CXsgIDQyMDQ4MDAzN1UsIDc0OVUsIDM0MzAwMTA4NjZVIH0sCiYjNDM7CXsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sCiYjNDM7CXsgMTAyOTQyNDc5OVUsIDkzN1UsIDM3ODc3NDY4NDFVIH0sCiYjNDM7CXsgMjAxMjYwODY2OVUsIDUwNlUsIDMzNjI2Mjg5NzNVIH0sCiYjNDM7CXsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sCiYjNDM7CXsgMTMzMDYzNTUzM1UsIDg1N1UsIDMwNDA4MDY1MDRVIH0sCiYjNDM7CXsgMTIyMzgwMDU1MFUsIDUzOVUsIDM5NTQyMjk1MTdVIH0sCiYjNDM7CXsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sCiYjNDM7CXsgMTg3Nzg0Nzg5OFUsIDk0NVUsIDI5MTUxNDcxNDNVIH0sCiYjNDM7CXsgMTY0NjM1NjA5OVUsIDg3NFUsICA5NjU5ODgyODBVIH0sCiYjNDM7CXsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sCiYjNDM7CXsgMTk0ODA5MzIxMFUsIDYzM1UsIDEzNDY1OTc2ODRVIH0sCiYjNDM7CXsgIDM5MjYwOTc0NFUsIDc4M1UsIDE2MzYwODMyOTVVIH0sCiYjNDM7CXsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sCiYjNDM7CXsgMTM2MDMwMjk2NVUsIDY5NlUsIDE2NjUzOTQ0NjFVIH0sCiYjNDM7CXsgMTIyMDA5MDk0NlUsIDc4MFUsIDEzMTY5MjI4MTJVIH0sCiYjNDM7CXsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sCiYjNDM7CXsgMTYxMzg2ODc5MVUsIDU5MlUsICA4Mjg1NDY4ODNVIH0sCiYjNDM7CXsgIDUyMzQzMDk1MVUsIDU0OFUsIDI1NTIzOTIzMDRVIH0sCiYjNDM7CXsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sCiYjNDM7CXsgMTM2NDM0MDAyMVUsIDgzNlUsIDM3MTA1MTM0ODZVIH0sCiYjNDM7CXsgMTk4NjI1NzcyOVUsIDkzMVUsICA5MzUwMTM5NjJVIH0sCiYjNDM7CXsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sCiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpCiYjNDM7ewomIzQzOyNkZWZpbmUgTENHKHgpCSAoKHgpICogNjkwNjlVKQkvKiBzdXBlci1kdXBlciBMQ0cgKi8KJiM0MzsJc3RhdGUtJmd0O3MxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTsKJiM0MzsJc3RhdGUtJmd0O3MyID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czEpLCAgIDhVKTsKJiM0MzsJc3RhdGUtJmd0O3MzID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czIpLCAgMTZVKTsKJiM0MzsJc3RhdGUtJmd0O3M0ID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czMpLCAxMjhVKTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgdGVzdF9wcmFuZG9tX3NlZWRfYm91bmRhcnkoc3RydWN0IGt1bml0ICp0ZXN0KQomIzQzO3sKJiM0MzsJaW50IGk7CiYjNDM7CXN0cnVjdCBybmRfc3RhdGUgc3RhdGU7CiYjNDM7CiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKHRlc3QxKTsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCXByYW5kb21fc3RhdGVfdGVzdF9zZWVkKCZhbXA7c3RhdGUsIHRlc3QxW2ldLnNlZWQpOwomIzQzOwkJcHJhbmRvbV93YXJtdXAoJmFtcDtzdGF0ZSk7CiYjNDM7CQlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgdGVzdDFbaV0ucmVzdWx0LCBwcmFuZG9tX3UzMl9zdGF0ZSgmYW1wO3N0YXRlKSk7CiYjNDM7CX0KJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgdGVzdF9wcmFuZG9tX3RhdXMxMTMoc3RydWN0IGt1bml0ICp0ZXN0KQomIzQzO3sKJiM0MzsJaW50IGksIGo7CiYjNDM7CXN0cnVjdCBybmRfc3RhdGUgc3RhdGU7CiYjNDM7CiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCXByYW5kb21fc3RhdGVfdGVzdF9zZWVkKCZhbXA7c3RhdGUsIHRlc3QyW2ldLnNlZWQpOwomIzQzOwkJcHJhbmRvbV93YXJtdXAoJmFtcDtzdGF0ZSk7CiYjNDM7CiYjNDM7CQlmb3IgKGogPSAwOyBqICZsdDsgdGVzdDJbaV0uaXRlcmF0aW9uIC0gMTsgaiYjNDM7JiM0MzspCiYjNDM7CQkJcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSk7CiYjNDM7CiYjNDM7CQlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgdGVzdDJbaV0ucmVzdWx0LCBwcmFuZG9tX3UzMl9zdGF0ZSgmYW1wO3N0YXRlKSk7CiYjNDM7CX0KJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHByYW5kb21fdGVzdF9jYXNlc1tdID0gewomIzQzOwlLVU5JVF9DQVNFKHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KSwKJiM0MzsJS1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksCiYjNDM7CXt9CiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIHByYW5kb21fdGVzdF9zdWl0ZSA9IHsKJiM0MzsJLm5hbWUgPSAmIzM0O3ByYW5kb20mIzM0OywKJiM0MzsJLnRlc3RfY2FzZXMgPSBwcmFuZG9tX3Rlc3RfY2FzZXMsCiYjNDM7fTsKJiM0MzsKJiM0MztrdW5pdF90ZXN0X3N1aXRlKHByYW5kb21fdGVzdF9zdWl0ZSk7CiYjNDM7CiYjNDM7TU9EVUxFX0RFU0NSSVBUSU9OKCYjMzQ7S1VuaXQgdGVzdCBmb3IgcHJhbmRvbSYjMzQ7KTsKJiM0MztNT0RVTEVfTElDRU5TRSgmIzM0O0dQTCYjMzQ7KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDM6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE2MDIKCQkJCQkJCW91dHB1dDogNjYKCQkJCQkJCXRob3VnaHRzOiAyMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS1VuaXQgVGVzdCBNaWdyYXRpb24gZm9yIFBSQU5ET00gU2VsZi1UZXN0cyoqCgpPa2F5LCBzbyB0aGUgZ2lzdCBvZiB0aGlzIGlzIHN0cmFpZ2h0Zm9yd2FyZDogd2UmIzM5O3JlIG1vdmluZyB0aGUgZXhpc3RpbmcgYHByYW5kb21gIHNlbGYtdGVzdHMuIFRoZXkmIzM5O3JlIGN1cnJlbnRseSByZXNpZGluZyBpbiBgbGliL3JhbmRvbTMyLmNgLCBidXQgd2UmIzM5O3JlIG1pZ3JhdGluZyB0aGVtIHRvIGEgZGVkaWNhdGVkIEtVbml0IHRlc3QgbW9kdWxlLCBgbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNgLiBUaGlzIGlzIGFsbCBhYm91dCBtb2Rlcm5pemF0aW9uLCByaWdodD8KCldlJiMzOTtyZSBkcm9wcGluZyB0aGUgb2xkIGBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1RgIGNvbmZpZyBvcHRpb24sIHdoaWNoIG1ha2VzIHNlbnNlIHNpbmNlIEtVbml0IHByb3ZpZGVzIGEgbW9yZSByb2J1c3QgZnJhbWV3b3JrLiBJbiBpdHMgcGxhY2UsIHdlJiMzOTtyZSBpbnRyb2R1Y2luZyBgQ09ORklHX1BSQU5ET01fS1VOSVRfVEVTVGAuIFRoYXQmIzM5O3MgY2xlYW4gYW5kIGtlZXBzIHRoaW5ncyBvcmdhbml6ZWQuIEFuZCwgYSBsaXR0bGUgb3B0aW1pemF0aW9uLCB3ZSYjMzk7cmUgbWFraW5nIGBwcmFuZG9tX3dhcm11cGAgdmlzaWJsZSB0byB0aGUgS1VuaXQgdGVzdHMsIHdoaWNoIGlzIGEgZ29vZCBjYWxsLCBlc3BlY2lhbGx5IGZvciB0ZXN0IHNldHVwLgoKVGhpcyBpcyBzdHJpY3RseSBhIHJlZmFjdG9yaW5nIGVmZm9ydDsgdGhlcmUgYXJlIG5vIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsIGxvZ2ljLiBJdCBpc24mIzM5O3QgcmVsYXRlZCB0byBmdXp6aW5nIGVpdGhlciwgd2hpY2ggSSBuZWVkZWQgdG8gY29uZmlybS4gVGhlIHRlc3RzIHRoZW1zZWx2ZXMgYXJlIGp1c3QgS1VuaXQgdGVzdHMsIGFuZCB0aGV5IGFyZW4mIzM5O3QgY2hhbmdpbmcgdGhlaXIgdW5kZXJseWluZyBiZWhhdmlvdXIuCgpTbywgbGV0JiMzOTtzIHRha2UgYSBjbG9zZXIgbG9vaywganVzdCB0byBtYWtlIHN1cmUuIEkmIzM5O20gc2VlaW5nIGNoYW5nZXMgaW4gYGxpYi9yYW5kb20zMi5jYCBhbmQgYGxpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jYDogaW4gdGhlIGZpcnN0IG9uZSwgdGhlIG9ubHkgZnVuY3Rpb25hbCBjaGFuZ2UgaXMgdGhhdCBgcHJhbmRvbV93YXJtdXBgIGlzIG5vdyBleHBvcnRlZCBpZiBLVW5pdCBpcyBlbmFibGVkLiBUaGUgc2VsZiB0ZXN0IGNvZGUgYW5kIGl0cyBkYXRhIHdlcmUgZGVsZXRlZC4gSW4gdGhlIHNlY29uZCwgdGhlcmUgYXJlIGp1c3QgdGhlIEtVbml0IHRlc3RzLgoKQWxyaWdodCwgYWZ0ZXIgcmV2aWV3aW5nIHRoZSBjaGFuZ2VzLCB0aGVyZSBhcmUgZGVmaW5pdGVseSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCYjMzk7cyByYW5kb20gbnVtYmVyIGdlbmVyYXRpb24gcHJvY2Vzcy4gVGhpcyBtaWdyYXRpb24gaXMgcHVyZWx5IGEgdGVzdCBpbmZyYXN0cnVjdHVyZSB1cGRhdGUuIFRoZXJlZm9yZSwgd2UgY2FuIGNvbmZpZGVudGx5IHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwMzo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbWlncmF0ZXMgZXhpc3RpbmcgcHJhbmRvbSBzZWxmLXRlc3RzIHRvIHRoZSBLVW5pdCBmcmFtZXdvcmsuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IHdvdWxkIHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbWlncmF0ZXMgZXhpc3RpbmcgcHJhbmRvbSBzZWxmLXRlc3RzIHRvIHRoZSBLVW5pdCBmcmFtZXdvcmsuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IHdvdWxkIHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwMzo1Mjo1OS41OTM5NTEwOTRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Njk5MDA3MDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwMzo1Mjo1OS41OTM5NjA3NzRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwNzIwNTI3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDM3ZDczOGFlNmRiYzY3YTUzNGEyMzc3NWY1ODlkYTU0YTIyYjI0ZDdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDM6NTI6NTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcgYi9saWIvS2NvbmZpZ1xcbmluZGV4IDI5MjM5MjRiZWE3OGNiLi41ZjE4NWU5ZjFlOTJiZCAxMDA2NDRcXG4tLS0gYS9saWIvS2NvbmZpZ1xcbisrKyBiL2xpYi9LY29uZmlnXFxuQEAgLTE1NiwxMiArMTU2LDYgQEAgY29uZmlnIEFVRElUX0NPTVBBVF9HRU5FUklDXFxuIFxcdGRlcGVuZHMgb24gQVVESVRfR0VORVJJQyBcXHUwMDI2XFx1MDAyNiBBVURJVF9BUkNIX0NPTVBBVF9HRU5FUklDIFxcdTAwMjZcXHUwMDI2IENPTVBBVFxcbiBcXHRkZWZhdWx0IHlcXG4gXFxuLWNvbmZpZyBSQU5ET00zMl9TRUxGVEVTVFxcbi1cXHRib29sIFxcXCJQUk5HIHBlcmZvcm0gc2VsZiB0ZXN0IG9uIGluaXRcXFwiXFxuLVxcdGhlbHBcXG4tXFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSAzMiBiaXQgUFJORyBsaWJyYXJ5IGZ1bmN0aW9ucyB0byBwZXJmb3JtIGFcXG4tXFx0ICBzZWxmIHRlc3Qgb24gaW5pdGlhbGl6YXRpb24uXFxuLVxcbiAjXFxuICMgY29tcHJlc3Npb24gc3VwcG9ydCBpcyBzZWxlY3QnZWQgaWYgbmVlZGVkXFxuICNcXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1Z1xcbmluZGV4IGJhMzY5MzlmZGE3OWJmLi4wMjE0YTU4NTkzZDdmYiAxMDA2NDRcXG4tLS0gYS9saWIvS2NvbmZpZy5kZWJ1Z1xcbisrKyBiL2xpYi9LY29uZmlnLmRlYnVnXFxuQEAgLTMzNTQsNiArMzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUXFxuIFxcbiBcXHQgIElmIHVuc3VyZSwgc2F5IE5cXG4gXFxuK2NvbmZpZyBQUkFORE9NX0tVTklUX1RFU1RcXG4rXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3QgZm9yIHByYW5kb21cXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4rXFx0ZGVwZW5kcyBvbiBLVU5JVFxcbitcXHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xcbitcXHRoZWxwXFxuK1xcdCAgRW5hYmxlIHRoaXMgb3B0aW9uIHRvIHRlc3QgdGhlIHByYW5kb20gZnVuY3Rpb25zIGF0IHJ1bnRpbWUuXFxuK1xcbitcXHQgIElmIHVuc3VyZSwgc2F5IE5cXG4rXFxuIGVuZGlmICMgUlVOVElNRV9URVNUSU5HX01FTlVcXG4gXFxuIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUXFxuZGlmZiAtLWdpdCBhL2xpYi9yYW5kb20zMi5jIGIvbGliL3JhbmRvbTMyLmNcXG5pbmRleCAyNGU3YWNkOTM0M2Y2OC4uZGFkOTAyMTljMzUxMWQgMTAwNjQ0XFxuLS0tIGEvbGliL3JhbmRvbTMyLmNcXG4rKysgYi9saWIvcmFuZG9tMzIuY1xcbkBAIC00MSw2ICs0MSw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9iaXRvcHMuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NsYWIuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3VuYWxpZ25lZC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNja3VuaXQvdmlzaWJpbGl0eS5oXFx1MDAzZVxcbiBcXG4gLyoqXFxuICAqXFx0cHJhbmRvbV91MzJfc3RhdGUgLSBzZWVkZWQgcHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLlxcbkBAIC05Miw3ICs5MywxNCBAQCB2b2lkIHByYW5kb21fYnl0ZXNfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ5dGVzKVxcbiB9XFxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7XFxuIFxcbi1zdGF0aWMgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcXG4rLypcXG4rICogT25seSBkZWNsYXJlZCBoZXJlIHNvIHRoYXQgaXQgaGFzIGEgcHJvdG90eXBlIHdoZW4gbWFkZVxcbisgKiBub24tc3RhdGljIGZvciBLVW5pdCB0ZXN0aW5nIChhdm9pZHMgLVdtaXNzaW5nLXByb3RvdHlwZXMpLlxcbisgKi9cXG4rI2lmIElTX0VOQUJMRUQoQ09ORklHX0tVTklUKVxcbit2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKTtcXG4rI2VuZGlmXFxuK1ZJU0lCTEVfSUZfS1VOSVQgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcXG4ge1xcbiBcXHQvKiBDYWxsaW5nIFJORyB0ZW4gdGltZXMgdG8gc2F0aXNmeSByZWN1cnJlbmNlIGNvbmRpdGlvbiAqL1xcbiBcXHRwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7XFxuQEAgLTEwNiw2ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcXG4gXFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xcbiBcXHRwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7XFxuIH1cXG4rRVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7XFxuIFxcbiB2b2lkIHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgX19wZXJjcHUgKnBjcHVfc3RhdGUpXFxuIHtcXG5AQCAtMTI1LDE3NiArMTM0LDMgQEAgdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxcbiBcXHR9XFxuIH1cXG4gRVhQT1JUX1NZTUJPTChwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZSk7XFxuLVxcbi0jaWZkZWYgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUXFxuLXN0YXRpYyBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7XFxuLVxcdHUzMiBzZWVkO1xcbi1cXHR1MzIgcmVzdWx0O1xcbi19IHRlc3QxW10gPSB7XFxuLVxcdHsgMVUsIDM0ODQzNTE2ODVVIH0sXFxuLVxcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXFxuLVxcdHsgM1UsIDMxMjUxMzM4OTNVIH0sXFxuLVxcdHsgNFUsICA5ODQ4NDcyNTRVIH0sXFxuLX07XFxuLVxcbi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDIge1xcbi1cXHR1MzIgc2VlZDtcXG4tXFx0dTMyIGl0ZXJhdGlvbjtcXG4tXFx0dTMyIHJlc3VsdDtcXG4tfSB0ZXN0MltdID0ge1xcbi1cXHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xcbi1cXHR7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LFxcbi1cXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxcbi1cXHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxcbi1cXHR7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LFxcbi1cXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxcbi1cXHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxcbi1cXHR7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LFxcbi1cXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxcbi1cXHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxcbi1cXHR7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LFxcbi1cXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxcbi1cXHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxcbi1cXHR7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LFxcbi1cXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxcbi1cXHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxcbi1cXHR7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LFxcbi1cXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxcbi1cXHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxcbi1cXHR7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LFxcbi1cXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxcbi1cXHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxcbi1cXHR7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LFxcbi1cXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxcbi1cXHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxcbi1cXHR7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LFxcbi1cXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxcbi1cXHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxcbi1cXHR7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LFxcbi1cXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxcbi1cXHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxcbi1cXHR7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LFxcbi1cXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxcbi1cXHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxcbi1cXHR7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LFxcbi1cXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxcbi1cXHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxcbi1cXHR7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LFxcbi1cXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxcbi1cXHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxcbi1cXHR7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LFxcbi1cXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxcbi1cXHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxcbi1cXHR7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LFxcbi1cXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxcbi1cXHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxcbi1cXHR7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LFxcbi1cXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxcbi1cXHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxcbi1cXHR7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LFxcbi1cXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxcbi1cXHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxcbi1cXHR7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LFxcbi1cXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxcbi1cXHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxcbi1cXHR7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LFxcbi1cXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxcbi1cXHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxcbi1cXHR7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LFxcbi1cXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxcbi1cXHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxcbi1cXHR7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LFxcbi1cXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxcbi1cXHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxcbi1cXHR7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LFxcbi1cXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxcbi1cXHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxcbi1cXHR7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LFxcbi1cXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxcbi1cXHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxcbi1cXHR7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LFxcbi1cXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxcbi1cXHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxcbi1cXHR7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LFxcbi1cXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxcbi1cXHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxcbi1cXHR7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LFxcbi1cXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxcbi1cXHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxcbi1cXHR7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LFxcbi1cXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxcbi1cXHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxcbi1cXHR7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LFxcbi1cXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxcbi1cXHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxcbi1cXHR7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LFxcbi1cXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxcbi1cXHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxcbi1cXHR7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LFxcbi1cXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxcbi1cXHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxcbi1cXHR7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LFxcbi1cXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxcbi1cXHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxcbi1cXHR7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LFxcbi1cXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxcbi1cXHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxcbi1cXHR7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LFxcbi1cXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxcbi1cXHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxcbi1cXHR7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LFxcbi19O1xcbi1cXG4tc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB1MzIgc2VlZClcXG4te1xcbi0jZGVmaW5lIExDRyh4KVxcdCAoKHgpICogNjkwNjlVKVxcdC8qIHN1cGVyLWR1cGVyIExDRyAqL1xcbi1cXHRzdGF0ZS1cXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xcbi1cXHRzdGF0ZS1cXHUwMDNlczIgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMSksICAgOFUpO1xcbi1cXHRzdGF0ZS1cXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMiksICAxNlUpO1xcbi1cXHRzdGF0ZS1cXHUwMDNlczQgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMyksIDEyOFUpO1xcbi19XFxuLVxcbi1zdGF0aWMgaW50IF9faW5pdCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KHZvaWQpXFxuLXtcXG4tXFx0aW50IGksIGosIGVycm9ycyA9IDAsIHJ1bnMgPSAwO1xcbi1cXHRib29sIGVycm9yID0gZmFsc2U7XFxuLVxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0ZXN0MSk7IGkrKykge1xcbi1cXHRcXHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xcbi1cXG4tXFx0XFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFxcdTAwMjZzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7XFxuLVxcdFxcdHByYW5kb21fd2FybXVwKFxcdTAwMjZzdGF0ZSk7XFxuLVxcbi1cXHRcXHRpZiAodGVzdDFbaV0ucmVzdWx0ICE9IHByYW5kb21fdTMyX3N0YXRlKFxcdTAwMjZzdGF0ZSkpXFxuLVxcdFxcdFxcdGVycm9yID0gdHJ1ZTtcXG4tXFx0fVxcbi1cXG4tXFx0aWYgKGVycm9yKVxcbi1cXHRcXHRwcl93YXJuKFxcXCJwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBmYWlsZWRcXFxcblxcXCIpO1xcbi1cXHRlbHNlXFxuLVxcdFxcdHByX2luZm8oXFxcInByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IHBhc3NlZFxcXFxuXFxcIik7XFxuLVxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0ZXN0Mik7IGkrKykge1xcbi1cXHRcXHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xcbi1cXG4tXFx0XFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFxcdTAwMjZzdGF0ZSwgdGVzdDJbaV0uc2VlZCk7XFxuLVxcdFxcdHByYW5kb21fd2FybXVwKFxcdTAwMjZzdGF0ZSk7XFxuLVxcbi1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgdGVzdDJbaV0uaXRlcmF0aW9uIC0gMTsgaisrKVxcbi1cXHRcXHRcXHRwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpO1xcbi1cXG4tXFx0XFx0aWYgKHRlc3QyW2ldLnJlc3VsdCAhPSBwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpKVxcbi1cXHRcXHRcXHRlcnJvcnMrKztcXG4tXFxuLVxcdFxcdHJ1bnMrKztcXG4tXFx0XFx0Y29uZF9yZXNjaGVkKCk7XFxuLVxcdH1cXG4tXFxuLVxcdGlmIChlcnJvcnMpXFxuLVxcdFxcdHByX3dhcm4oXFxcInByYW5kb206ICVkLyVkIHNlbGYgdGVzdHMgZmFpbGVkXFxcXG5cXFwiLCBlcnJvcnMsIHJ1bnMpO1xcbi1cXHRlbHNlXFxuLVxcdFxcdHByX2luZm8oXFxcInByYW5kb206ICVkIHNlbGYgdGVzdHMgcGFzc2VkXFxcXG5cXFwiLCBydW5zKTtcXG4tXFx0cmV0dXJuIDA7XFxuLX1cXG4tY29yZV9pbml0Y2FsbChwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KTtcXG4tI2VuZGlmXFxuZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9NYWtlZmlsZSBiL2xpYi90ZXN0cy9NYWtlZmlsZVxcbmluZGV4IDYwMWRiYTRiN2Q5NjZkLi4zOWQyODNiMjZmZTJiNCAxMDA2NDRcXG4tLS0gYS9saWIvdGVzdHMvTWFrZWZpbGVcXG4rKysgYi9saWIvdGVzdHMvTWFrZWZpbGVcXG5AQCAtNDksNSArNDksNiBAQCBvYmotJChDT05GSUdfU1RSSU5HX0hFTFBFUlNfS1VOSVRfVEVTVCkgKz0gc3RyaW5nX2hlbHBlcnNfa3VuaXQub1xcbiBvYmotJChDT05GSUdfVVNFUkNPUFlfS1VOSVRfVEVTVCkgKz0gdXNlcmNvcHlfa3VuaXQub1xcbiBvYmotJChDT05GSUdfVVRJTF9NQUNST1NfS1VOSVQpICs9IHV0aWxfbWFjcm9zX2t1bml0Lm9cXG4gb2JqLSQoQ09ORklHX1JBVEVMSU1JVF9LVU5JVF9URVNUKSArPSB0ZXN0X3JhdGVsaW1pdC5vXFxuK29iai0kKENPTkZJR19QUkFORE9NX0tVTklUX1RFU1QpICs9IHJhbmRvbTMyX2t1bml0Lm9cXG4gXFxuIG9iai0kKENPTkZJR19URVNUX1JVTlRJTUVfTU9EVUxFKVxcdFxcdCs9IG1vZHVsZS9cXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjQzNjQzNTAyNjVjMTdjXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jXFxuQEAgLTAsMCArMSwxODEgQEBcXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4rLypcXG4rICogVGVzdCBjYXNlcyBmb3IgcmFuZG9tMzIgZnVuY3Rpb25zLlxcbisgKi9cXG4rXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9wcmFuZG9tLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NrdW5pdC90ZXN0LmhcXHUwMDNlXFxuK1xcbisvKiBwcmFuZG9tX3dhcm11cCgpIGlzIHN0YXRpYyBpbiBsaWIvcmFuZG9tMzIuYzsgZXhwb3NlZCBmb3IgdGVzdGluZyBvbmx5LiAqL1xcbit2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKTtcXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7XFxuK1xcdHUzMiBzZWVkO1xcbitcXHR1MzIgcmVzdWx0O1xcbit9IHRlc3QxW10gPSB7XFxuK1xcdHsgMVUsIDM0ODQzNTE2ODVVIH0sXFxuK1xcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXFxuK1xcdHsgM1UsIDMxMjUxMzM4OTNVIH0sXFxuK1xcdHsgNFUsICA5ODQ4NDcyNTRVIH0sXFxuK307XFxuK1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDIge1xcbitcXHR1MzIgc2VlZDtcXG4rXFx0dTMyIGl0ZXJhdGlvbjtcXG4rXFx0dTMyIHJlc3VsdDtcXG4rfSB0ZXN0MltdID0ge1xcbitcXHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xcbitcXHR7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LFxcbitcXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxcbitcXHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxcbitcXHR7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LFxcbitcXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxcbitcXHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxcbitcXHR7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LFxcbitcXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxcbitcXHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxcbitcXHR7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LFxcbitcXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxcbitcXHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxcbitcXHR7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LFxcbitcXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxcbitcXHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxcbitcXHR7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LFxcbitcXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxcbitcXHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxcbitcXHR7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LFxcbitcXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxcbitcXHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxcbitcXHR7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LFxcbitcXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxcbitcXHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxcbitcXHR7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LFxcbitcXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxcbitcXHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxcbitcXHR7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LFxcbitcXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxcbitcXHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxcbitcXHR7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LFxcbitcXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxcbitcXHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxcbitcXHR7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LFxcbitcXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxcbitcXHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxcbitcXHR7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LFxcbitcXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxcbitcXHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxcbitcXHR7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LFxcbitcXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxcbitcXHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxcbitcXHR7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LFxcbitcXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxcbitcXHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxcbitcXHR7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LFxcbitcXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxcbitcXHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxcbitcXHR7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LFxcbitcXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxcbitcXHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxcbitcXHR7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LFxcbitcXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxcbitcXHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxcbitcXHR7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LFxcbitcXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxcbitcXHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxcbitcXHR7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LFxcbitcXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxcbitcXHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxcbitcXHR7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LFxcbitcXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxcbitcXHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxcbitcXHR7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LFxcbitcXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxcbitcXHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxcbitcXHR7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LFxcbitcXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxcbitcXHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxcbitcXHR7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LFxcbitcXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxcbitcXHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxcbitcXHR7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LFxcbitcXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxcbitcXHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxcbitcXHR7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LFxcbitcXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxcbitcXHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxcbitcXHR7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LFxcbitcXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxcbitcXHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxcbitcXHR7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LFxcbitcXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxcbitcXHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxcbitcXHR7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LFxcbitcXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxcbitcXHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxcbitcXHR7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LFxcbitcXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxcbitcXHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxcbitcXHR7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LFxcbitcXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxcbitcXHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxcbitcXHR7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LFxcbitcXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxcbitcXHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxcbitcXHR7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LFxcbitcXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxcbitcXHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxcbitcXHR7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LFxcbit9O1xcbitcXG4rc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKVxcbit7XFxuKyNkZWZpbmUgTENHKHgpXFx0ICgoeCkgKiA2OTA2OVUpXFx0Lyogc3VwZXItZHVwZXIgTENHICovXFxuK1xcdHN0YXRlLVxcdTAwM2VzMSA9IF9fc2VlZChMQ0coc2VlZCksICAgICAgICAyVSk7XFxuK1xcdHN0YXRlLVxcdTAwM2VzMiA9IF9fc2VlZChMQ0coc3RhdGUtXFx1MDAzZXMxKSwgICA4VSk7XFxuK1xcdHN0YXRlLVxcdTAwM2VzMyA9IF9fc2VlZChMQ0coc3RhdGUtXFx1MDAzZXMyKSwgIDE2VSk7XFxuK1xcdHN0YXRlLVxcdTAwM2VzNCA9IF9fc2VlZChMQ0coc3RhdGUtXFx1MDAzZXMzKSwgMTI4VSk7XFxuK31cXG4rXFxuK3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KHN0cnVjdCBrdW5pdCAqdGVzdClcXG4re1xcbitcXHRpbnQgaTtcXG4rXFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcXG4rXFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QxKTsgaSsrKSB7XFxuK1xcdFxcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFxcdTAwMjZzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7XFxuK1xcdFxcdHByYW5kb21fd2FybXVwKFxcdTAwMjZzdGF0ZSk7XFxuK1xcdFxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MVtpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFxcdTAwMjZzdGF0ZSkpO1xcbitcXHR9XFxuK31cXG4rXFxuK3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV90YXVzMTEzKHN0cnVjdCBrdW5pdCAqdGVzdClcXG4re1xcbitcXHRpbnQgaSwgajtcXG4rXFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcXG4rXFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSsrKSB7XFxuK1xcdFxcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFxcdTAwMjZzdGF0ZSwgdGVzdDJbaV0uc2VlZCk7XFxuK1xcdFxcdHByYW5kb21fd2FybXVwKFxcdTAwMjZzdGF0ZSk7XFxuK1xcbitcXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgdGVzdDJbaV0uaXRlcmF0aW9uIC0gMTsgaisrKVxcbitcXHRcXHRcXHRwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpO1xcbitcXG4rXFx0XFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIHRlc3QyW2ldLnJlc3VsdCwgcHJhbmRvbV91MzJfc3RhdGUoXFx1MDAyNnN0YXRlKSk7XFxuK1xcdH1cXG4rfVxcbitcXG4rc3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHByYW5kb21fdGVzdF9jYXNlc1tdID0ge1xcbitcXHRLVU5JVF9DQVNFKHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KSxcXG4rXFx0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksXFxuK1xcdHt9XFxuK307XFxuK1xcbitzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIHByYW5kb21fdGVzdF9zdWl0ZSA9IHtcXG4rXFx0Lm5hbWUgPSBcXFwicHJhbmRvbVxcXCIsXFxuK1xcdC50ZXN0X2Nhc2VzID0gcHJhbmRvbV90ZXN0X2Nhc2VzLFxcbit9O1xcbitcXG4ra3VuaXRfdGVzdF9zdWl0ZShwcmFuZG9tX3Rlc3Rfc3VpdGUpO1xcbitcXG4rTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJLVW5pdCB0ZXN0IGZvciBwcmFuZG9tXFxcIik7XFxuK01PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDM6NTM6MDAuNDA0MzgzMDM2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODg4NTU5MDk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM3ZDczOGFlNmRiYzY3YTUzNGEyMzc3NWY1ODlkYTU0YTIyYjI0ZDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAwMzo1Mjo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnIGIvbGliL0tjb25maWdcbmluZGV4IDI5MjM5MjRiZWE3OGNiLi41ZjE4NWU5ZjFlOTJiZCAxMDA2NDRcbi0tLSBhL2xpYi9LY29uZmlnXG4rKysgYi9saWIvS2NvbmZpZ1xuQEAgLTE1NiwxMiArMTU2LDYgQEAgY29uZmlnIEFVRElUX0NPTVBBVF9HRU5FUklDXG4gXHRkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IEFVRElUX0FSQ0hfQ09NUEFUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IENPTVBBVFxuIFx0ZGVmYXVsdCB5XG4gXG4tY29uZmlnIFJBTkRPTTMyX1NFTEZURVNUXG4tXHRib29sIFwiUFJORyBwZXJmb3JtIHNlbGYgdGVzdCBvbiBpbml0XCJcbi1cdGhlbHBcbi1cdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgMzIgYml0IFBSTkcgbGlicmFyeSBmdW5jdGlvbnMgdG8gcGVyZm9ybSBhXG4tXHQgIHNlbGYgdGVzdCBvbiBpbml0aWFsaXphdGlvbi5cbi1cbiAjXG4gIyBjb21wcmVzc2lvbiBzdXBwb3J0IGlzIHNlbGVjdCdlZCBpZiBuZWVkZWRcbiAjXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1Z1xuaW5kZXggYmEzNjkzOWZkYTc5YmYuLjAyMTRhNTg1OTNkN2ZiIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWcuZGVidWdcbisrKyBiL2xpYi9LY29uZmlnLmRlYnVnXG5AQCAtMzM1NCw2ICszMzU0LDE1IEBAIGNvbmZpZyBQUklNRV9OVU1CRVJTX0tVTklUX1RFU1RcbiBcbiBcdCAgSWYgdW5zdXJlLCBzYXkgTlxuIFxuK2NvbmZpZyBQUkFORE9NX0tVTklUX1RFU1RcbitcdHRyaXN0YXRlIFwiS1VuaXQgdGVzdCBmb3IgcHJhbmRvbVwiIGlmICFLVU5JVF9BTExfVEVTVFNcbitcdGRlcGVuZHMgb24gS1VOSVRcbitcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXG4rXHRoZWxwXG4rXHQgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLlxuK1xuK1x0ICBJZiB1bnN1cmUsIHNheSBOXG4rXG4gZW5kaWYgIyBSVU5USU1FX1RFU1RJTkdfTUVOVVxuIFxuIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUXG5kaWZmIC0tZ2l0IGEvbGliL3JhbmRvbTMyLmMgYi9saWIvcmFuZG9tMzIuY1xuaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NFxuLS0tIGEvbGliL3JhbmRvbTMyLmNcbisrKyBiL2xpYi9yYW5kb20zMi5jXG5AQCAtNDEsNiArNDEsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2JpdG9wcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NrdW5pdC92aXNpYmlsaXR5LmhcdTAwM2VcbiBcbiAvKipcbiAgKlx0cHJhbmRvbV91MzJfc3RhdGUgLSBzZWVkZWQgcHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLlxuQEAgLTkyLDcgKzkzLDE0IEBAIHZvaWQgcHJhbmRvbV9ieXRlc19zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBzaXplX3QgYnl0ZXMpXG4gfVxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7XG4gXG4tc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4rLypcbisgKiBPbmx5IGRlY2xhcmVkIGhlcmUgc28gdGhhdCBpdCBoYXMgYSBwcm90b3R5cGUgd2hlbiBtYWRlXG4rICogbm9uLXN0YXRpYyBmb3IgS1VuaXQgdGVzdGluZyAoYXZvaWRzIC1XbWlzc2luZy1wcm90b3R5cGVzKS5cbisgKi9cbisjaWYgSVNfRU5BQkxFRChDT05GSUdfS1VOSVQpXG4rdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4rI2VuZGlmXG4rVklTSUJMRV9JRl9LVU5JVCB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuIHtcbiBcdC8qIENhbGxpbmcgUk5HIHRlbiB0aW1lcyB0byBzYXRpc2Z5IHJlY3VycmVuY2UgY29uZGl0aW9uICovXG4gXHRwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7XG5AQCAtMTA2LDYgKzExNCw3IEBAIHN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIH1cbitFWFBPUlRfU1lNQk9MX0lGX0tVTklUKHByYW5kb21fd2FybXVwKTtcbiBcbiB2b2lkIHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgX19wZXJjcHUgKnBjcHVfc3RhdGUpXG4ge1xuQEAgLTEyNSwxNzYgKzEzNCwzIEBAIHZvaWQgcHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSBfX3BlcmNwdSAqcGNwdV9zdGF0ZSlcbiBcdH1cbiB9XG4gRVhQT1JUX1NZTUJPTChwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZSk7XG4tXG4tI2lmZGVmIENPTkZJR19SQU5ET00zMl9TRUxGVEVTVFxuLXN0YXRpYyBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7XG4tXHR1MzIgc2VlZDtcbi1cdHUzMiByZXN1bHQ7XG4tfSB0ZXN0MVtdID0ge1xuLVx0eyAxVSwgMzQ4NDM1MTY4NVUgfSxcbi1cdHsgMlUsIDI2MjMxMzAwNTlVIH0sXG4tXHR7IDNVLCAzMTI1MTMzODkzVSB9LFxuLVx0eyA0VSwgIDk4NDg0NzI1NFUgfSxcbi19O1xuLVxuLXN0YXRpYyBzdHJ1Y3QgcHJhbmRvbV90ZXN0MiB7XG4tXHR1MzIgc2VlZDtcbi1cdHUzMiBpdGVyYXRpb247XG4tXHR1MzIgcmVzdWx0O1xuLX0gdGVzdDJbXSA9IHtcbi1cdC8qIFRlc3QgY2FzZXMgYWdhaW5zdCB0YXVzMTEzIGZyb20gR1NMIGxpYnJhcnkuICovXG4tXHR7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LFxuLVx0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcbi1cdHsgMTU0NTU1NjI4NVUsIDk2MVUsIDE2MTU1Mzg4MzNVIH0sXG4tXHR7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LFxuLVx0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcbi1cdHsgIDQxNjUyNjI5OFUsIDcwMFUsICA5MTYxNTY1NTJVIH0sXG4tXHR7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LFxuLVx0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcbi1cdHsgMTUzOTgzNjk2NVUsIDcxNFUsIDM3ODMyNjU3MjVVIH0sXG4tXHR7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LFxuLVx0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcbi1cdHsgMjEyMTIzMDcwMVUsIDkzMVUsIDIxMTU0NjcwMDFVIH0sXG4tXHR7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LFxuLVx0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcbi1cdHsgMTk4OTE1OTEzNlUsIDgzM1UsIDExOTU3NjczMDVVIH0sXG4tXHR7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LFxuLVx0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcbi1cdHsgMTc0MDc3NTYwNFUsIDkzOVUsIDEyNjQ5ODAzNzJVIH0sXG4tXHR7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LFxuLVx0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcbi1cdHsgIDQ0MjA3OTkzMlUsIDU2MFUsIDM0NDAwMzIzNDNVIH0sXG4tXHR7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LFxuLVx0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcbi1cdHsgMTE2MDQwNzUyOVUsIDUwN1UsICAyNDA5NDA4NThVIH0sXG4tXHR7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LFxuLVx0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcbi1cdHsgMTk2MTgxNzEzMVUsIDcxOVUsICA2NjgyMzc2NTdVIH0sXG4tXHR7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LFxuLVx0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcbi1cdHsgIDU4MjUzNzExOVUsIDc4MFUsIDExMjcyNzM3NzhVIH0sXG4tXHR7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LFxuLVx0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcbi1cdHsgIDg0NzkxNzA1NFUsIDUwMFUsIDE3MTc0OTkwNzVVIH0sXG4tXHR7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LFxuLVx0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcbi1cdHsgMTUxNjIzMjEyOVUsIDU1N1UsICAgIDMxNzM4NzdVIH0sXG4tXHR7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LFxuLVx0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcbi1cdHsgMTUxMDA5MTcwMVUsIDcxN1UsICA2MzgxOTEyMjlVIH0sXG4tXHR7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LFxuLVx0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcbi1cdHsgMTMxODQ4MDI3NFUsIDc3OVUsIDIwNzQyMzcwMjJVIH0sXG4tXHR7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LFxuLVx0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcbi1cdHsgMjA4MTk3OTEyMVUsIDk4MVUsIDMwNDE0ODY0NDlVIH0sXG4tXHR7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LFxuLVx0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcbi1cdHsgIDU5NTAwMzEwMlUsIDUzNFUsICAzNjY3OTQxMDlVIH0sXG4tXHR7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LFxuLVx0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcbi1cdHsgIDcwNDA5NjUyMFUsIDUxOFUsIDQxMzk0OTM4NTJVIH0sXG4tXHR7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LFxuLVx0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcbi1cdHsgIDg1NTU3Mjk5MlUsIDc2MVUsIDE0NzI5NzQ3ODdVIH0sXG4tXHR7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LFxuLVx0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcbi1cdHsgIDY5MjcxMTk3M1UsIDc3OFUsIDEzODIzNjE5NDdVIH0sXG4tXHR7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LFxuLVx0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcbi1cdHsgMTIyMjU5MjkyMFUsIDc0M1UsIDM0NjY3MjY2NjdVIH0sXG4tXHR7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LFxuLVx0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcbi1cdHsgIDczNTY3NTk5M1UsIDk5MFUsIDEyOTQyMzk5ODlVIH0sXG4tXHR7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LFxuLVx0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcbi1cdHsgIDM2ODIzNDcwMFUsIDczMVUsIDI5MTM4NzUwODRVIH0sXG4tXHR7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LFxuLVx0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcbi1cdHsgMTMxNDk4NzI5N1UsIDg0MFUsIDE4MDExMTQxMzZVIH0sXG4tXHR7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LFxuLVx0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcbi1cdHsgMTg0Mzc1NDQ5NlUsIDY1M1UsIDI1NjIwOTIxNTJVIH0sXG4tXHR7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LFxuLVx0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcbi1cdHsgIDYwMDcwMjIwOVUsIDc1OFUsICA1ODQ5Nzk5ODZVIH0sXG4tXHR7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LFxuLVx0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcbi1cdHsgIDQyMDQ4MDAzN1UsIDc0OVUsIDM0MzAwMTA4NjZVIH0sXG4tXHR7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LFxuLVx0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcbi1cdHsgMjAxMjYwODY2OVUsIDUwNlUsIDMzNjI2Mjg5NzNVIH0sXG4tXHR7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LFxuLVx0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcbi1cdHsgMTIyMzgwMDU1MFUsIDUzOVUsIDM5NTQyMjk1MTdVIH0sXG4tXHR7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LFxuLVx0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcbi1cdHsgMTY0NjM1NjA5OVUsIDg3NFUsICA5NjU5ODgyODBVIH0sXG4tXHR7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LFxuLVx0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcbi1cdHsgIDM5MjYwOTc0NFUsIDc4M1UsIDE2MzYwODMyOTVVIH0sXG4tXHR7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LFxuLVx0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcbi1cdHsgMTIyMDA5MDk0NlUsIDc4MFUsIDEzMTY5MjI4MTJVIH0sXG4tXHR7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LFxuLVx0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcbi1cdHsgIDUyMzQzMDk1MVUsIDU0OFUsIDI1NTIzOTIzMDRVIH0sXG4tXHR7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LFxuLVx0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcbi1cdHsgMTk4NjI1NzcyOVUsIDkzMVUsICA5MzUwMTM5NjJVIH0sXG4tXHR7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LFxuLX07XG4tXG4tc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB1MzIgc2VlZClcbi17XG4tI2RlZmluZSBMQ0coeClcdCAoKHgpICogNjkwNjlVKVx0Lyogc3VwZXItZHVwZXIgTENHICovXG4tXHRzdGF0ZS1cdTAwM2VzMSA9IF9fc2VlZChMQ0coc2VlZCksICAgICAgICAyVSk7XG4tXHRzdGF0ZS1cdTAwM2VzMiA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczEpLCAgIDhVKTtcbi1cdHN0YXRlLVx1MDAzZXMzID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMiksICAxNlUpO1xuLVx0c3RhdGUtXHUwMDNlczQgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMzKSwgMTI4VSk7XG4tfVxuLVxuLXN0YXRpYyBpbnQgX19pbml0IHByYW5kb21fc3RhdGVfc2VsZnRlc3Qodm9pZClcbi17XG4tXHRpbnQgaSwgaiwgZXJyb3JzID0gMCwgcnVucyA9IDA7XG4tXHRib29sIGVycm9yID0gZmFsc2U7XG4tXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QxKTsgaSsrKSB7XG4tXHRcdHN0cnVjdCBybmRfc3RhdGUgc3RhdGU7XG4tXG4tXHRcdHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChcdTAwMjZzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7XG4tXHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbi1cbi1cdFx0aWYgKHRlc3QxW2ldLnJlc3VsdCAhPSBwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSkpXG4tXHRcdFx0ZXJyb3IgPSB0cnVlO1xuLVx0fVxuLVxuLVx0aWYgKGVycm9yKVxuLVx0XHRwcl93YXJuKFwicHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgZmFpbGVkXFxuXCIpO1xuLVx0ZWxzZVxuLVx0XHRwcl9pbmZvKFwicHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgcGFzc2VkXFxuXCIpO1xuLVxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0ZXN0Mik7IGkrKykge1xuLVx0XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuLVxuLVx0XHRwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QyW2ldLnNlZWQpO1xuLVx0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGorKylcbi1cdFx0XHRwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9ycysrO1xuLVxuLVx0XHRydW5zKys7XG4tXHRcdGNvbmRfcmVzY2hlZCgpO1xuLVx0fVxuLVxuLVx0aWYgKGVycm9ycylcbi1cdFx0cHJfd2FybihcInByYW5kb206ICVkLyVkIHNlbGYgdGVzdHMgZmFpbGVkXFxuXCIsIGVycm9ycywgcnVucyk7XG4tXHRlbHNlXG4tXHRcdHByX2luZm8oXCJwcmFuZG9tOiAlZCBzZWxmIHRlc3RzIHBhc3NlZFxcblwiLCBydW5zKTtcbi1cdHJldHVybiAwO1xuLX1cbi1jb3JlX2luaXRjYWxsKHByYW5kb21fc3RhdGVfc2VsZnRlc3QpO1xuLSNlbmRpZlxuZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9NYWtlZmlsZSBiL2xpYi90ZXN0cy9NYWtlZmlsZVxuaW5kZXggNjAxZGJhNGI3ZDk2NmQuLjM5ZDI4M2IyNmZlMmI0IDEwMDY0NFxuLS0tIGEvbGliL3Rlc3RzL01ha2VmaWxlXG4rKysgYi9saWIvdGVzdHMvTWFrZWZpbGVcbkBAIC00OSw1ICs0OSw2IEBAIG9iai0kKENPTkZJR19TVFJJTkdfSEVMUEVSU19LVU5JVF9URVNUKSArPSBzdHJpbmdfaGVscGVyc19rdW5pdC5vXG4gb2JqLSQoQ09ORklHX1VTRVJDT1BZX0tVTklUX1RFU1QpICs9IHVzZXJjb3B5X2t1bml0Lm9cbiBvYmotJChDT05GSUdfVVRJTF9NQUNST1NfS1VOSVQpICs9IHV0aWxfbWFjcm9zX2t1bml0Lm9cbiBvYmotJChDT05GSUdfUkFURUxJTUlUX0tVTklUX1RFU1QpICs9IHRlc3RfcmF0ZWxpbWl0Lm9cbitvYmotJChDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUKSArPSByYW5kb20zMl9rdW5pdC5vXG4gXG4gb2JqLSQoQ09ORklHX1RFU1RfUlVOVElNRV9NT0RVTEUpXHRcdCs9IG1vZHVsZS9cbmRpZmYgLS1naXQgYS9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuYyBiL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjQzNjQzNTAyNjVjMTdjXG4tLS0gL2Rldi9udWxsXG4rKysgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xuQEAgLTAsMCArMSwxODEgQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuKy8qXG4rICogVGVzdCBjYXNlcyBmb3IgcmFuZG9tMzIgZnVuY3Rpb25zLlxuKyAqL1xuK1xuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3ByYW5kb20uaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2t1bml0L3Rlc3QuaFx1MDAzZVxuK1xuKy8qIHByYW5kb21fd2FybXVwKCkgaXMgc3RhdGljIGluIGxpYi9yYW5kb20zMi5jOyBleHBvc2VkIGZvciB0ZXN0aW5nIG9ubHkuICovXG4rdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4rXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHtcbitcdHUzMiBzZWVkO1xuK1x0dTMyIHJlc3VsdDtcbit9IHRlc3QxW10gPSB7XG4rXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuK1x0eyAyVSwgMjYyMzEzMDA1OVUgfSxcbitcdHsgM1UsIDMxMjUxMzM4OTNVIH0sXG4rXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuK307XG4rXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbitcdHUzMiBzZWVkO1xuK1x0dTMyIGl0ZXJhdGlvbjtcbitcdHUzMiByZXN1bHQ7XG4rfSB0ZXN0MltdID0ge1xuK1x0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cbitcdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4rXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxuK1x0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcbitcdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4rXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxuK1x0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcbitcdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4rXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxuK1x0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcbitcdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4rXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxuK1x0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcbitcdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4rXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxuK1x0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcbitcdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4rXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxuK1x0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcbitcdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4rXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxuK1x0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcbitcdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4rXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxuK1x0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcbitcdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4rXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxuK1x0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcbitcdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4rXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxuK1x0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcbitcdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4rXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxuK1x0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcbitcdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4rXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxuK1x0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcbitcdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4rXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxuK1x0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcbitcdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4rXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxuK1x0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcbitcdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4rXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxuK1x0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcbitcdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4rXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxuK1x0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcbitcdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4rXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxuK1x0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcbitcdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4rXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxuK1x0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcbitcdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4rXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxuK1x0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcbitcdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4rXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxuK1x0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcbitcdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4rXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxuK1x0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcbitcdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4rXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxuK1x0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcbitcdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4rXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxuK1x0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcbitcdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4rXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxuK1x0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcbitcdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4rXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxuK1x0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcbitcdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4rXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxuK1x0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcbitcdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4rXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxuK1x0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcbitcdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4rXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxuK1x0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcbitcdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4rXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxuK1x0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcbitcdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4rXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxuK1x0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcbitcdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4rXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxuK1x0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcbitcdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4rXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxuK1x0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcbitcdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4rXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxuK1x0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcbitcdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4rfTtcbitcbitzdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXG4re1xuKyNkZWZpbmUgTENHKHgpXHQgKCh4KSAqIDY5MDY5VSlcdC8qIHN1cGVyLWR1cGVyIExDRyAqL1xuK1x0c3RhdGUtXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xuK1x0c3RhdGUtXHUwMDNlczIgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMxKSwgICA4VSk7XG4rXHRzdGF0ZS1cdTAwM2VzMyA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczIpLCAgMTZVKTtcbitcdHN0YXRlLVx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMyksIDEyOFUpO1xuK31cbitcbitzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4re1xuK1x0aW50IGk7XG4rXHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuK1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0ZXN0MSk7IGkrKykge1xuK1x0XHRwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChcdTAwMjZzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7XG4rXHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbitcdFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIHRlc3QxW2ldLnJlc3VsdCwgcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKTtcbitcdH1cbit9XG4rXG4rc3RhdGljIHZvaWQgdGVzdF9wcmFuZG9tX3RhdXMxMTMoc3RydWN0IGt1bml0ICp0ZXN0KVxuK3tcbitcdGludCBpLCBqO1xuK1x0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbitcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDIpOyBpKyspIHtcbitcdFx0cHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QyW2ldLnNlZWQpO1xuK1x0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4rXG4rXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGorKylcbitcdFx0XHRwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSk7XG4rXG4rXHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MltpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4rXHR9XG4rfVxuK1xuK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBwcmFuZG9tX3Rlc3RfY2FzZXNbXSA9IHtcbitcdEtVTklUX0NBU0UodGVzdF9wcmFuZG9tX3NlZWRfYm91bmRhcnkpLFxuK1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksXG4rXHR7fVxuK307XG4rXG4rc3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBwcmFuZG9tX3Rlc3Rfc3VpdGUgPSB7XG4rXHQubmFtZSA9IFwicHJhbmRvbVwiLFxuK1x0LnRlc3RfY2FzZXMgPSBwcmFuZG9tX3Rlc3RfY2FzZXMsXG4rfTtcbitcbitrdW5pdF90ZXN0X3N1aXRlKHByYW5kb21fdGVzdF9zdWl0ZSk7XG4rXG4rTU9EVUxFX0RFU0NSSVBUSU9OKFwiS1VuaXQgdGVzdCBmb3IgcHJhbmRvbVwiKTtcbitNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDAzOjUzOjAwLjQwNDM4NzQyNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4ODg1MDYxOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS1VuaXQgVGVzdCBNaWdyYXRpb24gZm9yIFBSQU5ET00gU2VsZi1UZXN0cyoqXG5cbk9rYXksIHNvIHRoZSBnaXN0IG9mIHRoaXMgaXMgc3RyYWlnaHRmb3J3YXJkOiB3ZSdyZSBtb3ZpbmcgdGhlIGV4aXN0aW5nIGBwcmFuZG9tYCBzZWxmLXRlc3RzLiBUaGV5J3JlIGN1cnJlbnRseSByZXNpZGluZyBpbiBgbGliL3JhbmRvbTMyLmNgLCBidXQgd2UncmUgbWlncmF0aW5nIHRoZW0gdG8gYSBkZWRpY2F0ZWQgS1VuaXQgdGVzdCBtb2R1bGUsIGBsaWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY2AuIFRoaXMgaXMgYWxsIGFib3V0IG1vZGVybml6YXRpb24sIHJpZ2h0P1xuXG5XZSdyZSBkcm9wcGluZyB0aGUgb2xkIGBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1RgIGNvbmZpZyBvcHRpb24sIHdoaWNoIG1ha2VzIHNlbnNlIHNpbmNlIEtVbml0IHByb3ZpZGVzIGEgbW9yZSByb2J1c3QgZnJhbWV3b3JrLiBJbiBpdHMgcGxhY2UsIHdlJ3JlIGludHJvZHVjaW5nIGBDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUYC4gVGhhdCdzIGNsZWFuIGFuZCBrZWVwcyB0aGluZ3Mgb3JnYW5pemVkLiBBbmQsIGEgbGl0dGxlIG9wdGltaXphdGlvbiwgd2UncmUgbWFraW5nIGBwcmFuZG9tX3dhcm11cGAgdmlzaWJsZSB0byB0aGUgS1VuaXQgdGVzdHMsIHdoaWNoIGlzIGEgZ29vZCBjYWxsLCBlc3BlY2lhbGx5IGZvciB0ZXN0IHNldHVwLlxuXG5UaGlzIGlzIHN0cmljdGx5IGEgcmVmYWN0b3JpbmcgZWZmb3J0OyB0aGVyZSBhcmUgbm8gY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMuIEl0IGlzbid0IHJlbGF0ZWQgdG8gZnV6emluZyBlaXRoZXIsIHdoaWNoIEkgbmVlZGVkIHRvIGNvbmZpcm0uIFRoZSB0ZXN0cyB0aGVtc2VsdmVzIGFyZSBqdXN0IEtVbml0IHRlc3RzLCBhbmQgdGhleSBhcmVuJ3QgY2hhbmdpbmcgdGhlaXIgdW5kZXJseWluZyBiZWhhdmlvdXIuXG5cblNvLCBsZXQncyB0YWtlIGEgY2xvc2VyIGxvb2ssIGp1c3QgdG8gbWFrZSBzdXJlLiBJJ20gc2VlaW5nIGNoYW5nZXMgaW4gYGxpYi9yYW5kb20zMi5jYCBhbmQgYGxpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jYDogaW4gdGhlIGZpcnN0IG9uZSwgdGhlIG9ubHkgZnVuY3Rpb25hbCBjaGFuZ2UgaXMgdGhhdCBgcHJhbmRvbV93YXJtdXBgIGlzIG5vdyBleHBvcnRlZCBpZiBLVW5pdCBpcyBlbmFibGVkLiBUaGUgc2VsZiB0ZXN0IGNvZGUgYW5kIGl0cyBkYXRhIHdlcmUgZGVsZXRlZC4gSW4gdGhlIHNlY29uZCwgdGhlcmUgYXJlIGp1c3QgdGhlIEtVbml0IHRlc3RzLlxuXG5BbHJpZ2h0LCBhZnRlciByZXZpZXdpbmcgdGhlIGNoYW5nZXMsIHRoZXJlIGFyZSBkZWZpbml0ZWx5IG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsJ3MgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIHByb2Nlc3MuIFRoaXMgbWlncmF0aW9uIGlzIHB1cmVseSBhIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdXBkYXRlLiBUaGVyZWZvcmUsIHdlIGNhbiBjb25maWRlbnRseSBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNjAyLCJPdXRwdXRUb2tlbnMiOjY2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDM6NTM6MDYuMjkyODk3OTQ1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDYzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow492tg[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-30 03:25:29 +0000 UTC FinishedAt: 2026-06-30 03:53:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzMwIDAzOjUyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbWlncmF0ZXMgZXhpc3RpbmcgcHJhbmRvbSBzZWxmLXRlc3RzIHRvIHRoZSBLVW5pdCBmcmFtZXdvcmsuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IHdvdWxkIHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDM6NTI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAzN2Q3MzhhZTZkYmM2N2E1MzRhMjM3NzVmNTg5ZGE1NGEyMmIyNGQ3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDM6NTI6NTggMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcgYi9saWIvS2NvbmZpZ1xuaW5kZXggMjkyMzkyNGJlYTc4Y2IuLjVmMTg1ZTlmMWU5MmJkIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWdcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnXG5AQCAtMTU2LDEyICYjNDM7MTU2LDYgQEAgY29uZmlnIEFVRElUX0NPTVBBVF9HRU5FUklDXG4gXHRkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IEFVRElUX0FSQ0hfQ09NUEFUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IENPTVBBVFxuIFx0ZGVmYXVsdCB5XG4gXG4tY29uZmlnIFJBTkRPTTMyX1NFTEZURVNUXG4tXHRib29sIFwmIzM0O1BSTkcgcGVyZm9ybSBzZWxmIHRlc3Qgb24gaW5pdFwmIzM0O1xuLVx0aGVscFxuLVx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSAzMiBiaXQgUFJORyBsaWJyYXJ5IGZ1bmN0aW9ucyB0byBwZXJmb3JtIGFcbi1cdCAgc2VsZiB0ZXN0IG9uIGluaXRpYWxpemF0aW9uLlxuLVxuICNcbiAjIGNvbXByZXNzaW9uIHN1cHBvcnQgaXMgc2VsZWN0JiMzOTtlZCBpZiBuZWVkZWRcbiAjXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1Z1xuaW5kZXggYmEzNjkzOWZkYTc5YmYuLjAyMTRhNTg1OTNkN2ZiIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWcuZGVidWdcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnLmRlYnVnXG5AQCAtMzM1NCw2ICYjNDM7MzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUXG4gXG4gXHQgIElmIHVuc3VyZSwgc2F5IE5cbiBcbiYjNDM7Y29uZmlnIFBSQU5ET01fS1VOSVRfVEVTVFxuJiM0MztcdHRyaXN0YXRlIFwmIzM0O0tVbml0IHRlc3QgZm9yIHByYW5kb21cJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuJiM0MztcdGRlcGVuZHMgb24gS1VOSVRcbiYjNDM7XHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xuJiM0MztcdGhlbHBcbiYjNDM7XHQgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLlxuJiM0MztcbiYjNDM7XHQgIElmIHVuc3VyZSwgc2F5IE5cbiYjNDM7XG4gZW5kaWYgIyBSVU5USU1FX1RFU1RJTkdfTUVOVVxuIFxuIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUXG5kaWZmIC0tZ2l0IGEvbGliL3JhbmRvbTMyLmMgYi9saWIvcmFuZG9tMzIuY1xuaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NFxuLS0tIGEvbGliL3JhbmRvbTMyLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9yYW5kb20zMi5jXG5AQCAtNDEsNiAmIzQzOzQxLDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9iaXRvcHMuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3VuYWxpZ25lZC5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2t1bml0L3Zpc2liaWxpdHkuaFx1MDAzZVxuIFxuIC8qKlxuICAqXHRwcmFuZG9tX3UzMl9zdGF0ZSAtIHNlZWRlZCBwc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuXG5AQCAtOTIsNyAmIzQzOzkzLDE0IEBAIHZvaWQgcHJhbmRvbV9ieXRlc19zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBzaXplX3QgYnl0ZXMpXG4gfVxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7XG4gXG4tc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4mIzQzOy8qXG4mIzQzOyAqIE9ubHkgZGVjbGFyZWQgaGVyZSBzbyB0aGF0IGl0IGhhcyBhIHByb3RvdHlwZSB3aGVuIG1hZGVcbiYjNDM7ICogbm9uLXN0YXRpYyBmb3IgS1VuaXQgdGVzdGluZyAoYXZvaWRzIC1XbWlzc2luZy1wcm90b3R5cGVzKS5cbiYjNDM7ICovXG4mIzQzOyNpZiBJU19FTkFCTEVEKENPTkZJR19LVU5JVClcbiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4mIzQzOyNlbmRpZlxuJiM0MztWSVNJQkxFX0lGX0tVTklUIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4ge1xuIFx0LyogQ2FsbGluZyBSTkcgdGVuIHRpbWVzIHRvIHNhdGlzZnkgcmVjdXJyZW5jZSBjb25kaXRpb24gKi9cbiBcdHByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTtcbkBAIC0xMDYsNiAmIzQzOzExNCw3IEBAIHN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIH1cbiYjNDM7RVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7XG4gXG4gdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIHtcbkBAIC0xMjUsMTc2ICYjNDM7MTM0LDMgQEAgdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxuIFx0fVxuIH1cbiBFWFBPUlRfU1lNQk9MKHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKTtcbi1cbi0jaWZkZWYgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHtcbi1cdHUzMiBzZWVkO1xuLVx0dTMyIHJlc3VsdDtcbi19IHRlc3QxW10gPSB7XG4tXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuLVx0eyAyVSwgMjYyMzEzMDA1OVUgfSxcbi1cdHsgM1UsIDMxMjUxMzM4OTNVIH0sXG4tXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuLX07XG4tXG4tc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbi1cdHUzMiBzZWVkO1xuLVx0dTMyIGl0ZXJhdGlvbjtcbi1cdHUzMiByZXN1bHQ7XG4tfSB0ZXN0MltdID0ge1xuLVx0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cbi1cdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4tXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxuLVx0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcbi1cdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4tXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxuLVx0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcbi1cdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4tXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxuLVx0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcbi1cdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4tXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxuLVx0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcbi1cdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4tXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxuLVx0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcbi1cdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4tXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxuLVx0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcbi1cdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4tXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxuLVx0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcbi1cdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4tXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxuLVx0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcbi1cdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4tXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxuLVx0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcbi1cdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4tXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxuLVx0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcbi1cdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4tXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxuLVx0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcbi1cdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4tXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxuLVx0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcbi1cdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4tXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxuLVx0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcbi1cdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4tXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxuLVx0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcbi1cdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4tXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxuLVx0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcbi1cdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4tXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxuLVx0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcbi1cdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4tXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxuLVx0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcbi1cdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4tXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxuLVx0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcbi1cdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4tXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxuLVx0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcbi1cdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4tXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxuLVx0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcbi1cdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4tXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxuLVx0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcbi1cdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4tXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxuLVx0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcbi1cdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4tXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxuLVx0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcbi1cdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4tXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxuLVx0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcbi1cdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4tXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxuLVx0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcbi1cdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4tXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxuLVx0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcbi1cdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4tXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxuLVx0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcbi1cdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4tXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxuLVx0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcbi1cdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4tXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxuLVx0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcbi1cdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4tXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxuLVx0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcbi1cdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4tXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxuLVx0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcbi1cdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4tXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxuLVx0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcbi1cdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4tXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxuLVx0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcbi1cdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4tfTtcbi1cbi1zdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKVxuLXtcbi0jZGVmaW5lIExDRyh4KVx0ICgoeCkgKiA2OTA2OVUpXHQvKiBzdXBlci1kdXBlciBMQ0cgKi9cbi1cdHN0YXRlLVx1MDAzZXMxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTtcbi1cdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuLVx0c3RhdGUtXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMyKSwgIDE2VSk7XG4tXHRzdGF0ZS1cdTAwM2VzNCA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczMpLCAxMjhVKTtcbi19XG4tXG4tc3RhdGljIGludCBfX2luaXQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCh2b2lkKVxuLXtcbi1cdGludCBpLCBqLCBlcnJvcnMgPSAwLCBydW5zID0gMDtcbi1cdGJvb2wgZXJyb3IgPSBmYWxzZTtcbi1cbi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDEpOyBpJiM0MzsmIzQzOykge1xuLVx0XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuLVxuLVx0XHRwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QxW2ldLnNlZWQpO1xuLVx0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MVtpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9yID0gdHJ1ZTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcilcbi1cdFx0cHJfd2FybihcJiMzNDtwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBmYWlsZWRcXG5cJiMzNDspO1xuLVx0ZWxzZVxuLVx0XHRwcl9pbmZvKFwmIzM0O3ByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IHBhc3NlZFxcblwmIzM0Oyk7XG4tXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHtcbi1cdFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbi1cbi1cdFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbi1cdFx0cHJhbmRvbV93YXJtdXAoXHUwMDI2c3RhdGUpO1xuLVxuLVx0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOylcbi1cdFx0XHRwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9ycyYjNDM7JiM0Mzs7XG4tXG4tXHRcdHJ1bnMmIzQzOyYjNDM7O1xuLVx0XHRjb25kX3Jlc2NoZWQoKTtcbi1cdH1cbi1cbi1cdGlmIChlcnJvcnMpXG4tXHRcdHByX3dhcm4oXCYjMzQ7cHJhbmRvbTogJWQvJWQgc2VsZiB0ZXN0cyBmYWlsZWRcXG5cJiMzNDssIGVycm9ycywgcnVucyk7XG4tXHRlbHNlXG4tXHRcdHByX2luZm8oXCYjMzQ7cHJhbmRvbTogJWQgc2VsZiB0ZXN0cyBwYXNzZWRcXG5cJiMzNDssIHJ1bnMpO1xuLVx0cmV0dXJuIDA7XG4tfVxuLWNvcmVfaW5pdGNhbGwocHJhbmRvbV9zdGF0ZV9zZWxmdGVzdCk7XG4tI2VuZGlmXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL01ha2VmaWxlIGIvbGliL3Rlc3RzL01ha2VmaWxlXG5pbmRleCA2MDFkYmE0YjdkOTY2ZC4uMzlkMjgzYjI2ZmUyYjQgMTAwNjQ0XG4tLS0gYS9saWIvdGVzdHMvTWFrZWZpbGVcbiYjNDM7JiM0MzsmIzQzOyBiL2xpYi90ZXN0cy9NYWtlZmlsZVxuQEAgLTQ5LDUgJiM0Mzs0OSw2IEBAIG9iai0kKENPTkZJR19TVFJJTkdfSEVMUEVSU19LVU5JVF9URVNUKSAmIzQzOz0gc3RyaW5nX2hlbHBlcnNfa3VuaXQub1xuIG9iai0kKENPTkZJR19VU0VSQ09QWV9LVU5JVF9URVNUKSAmIzQzOz0gdXNlcmNvcHlfa3VuaXQub1xuIG9iai0kKENPTkZJR19VVElMX01BQ1JPU19LVU5JVCkgJiM0Mzs9IHV0aWxfbWFjcm9zX2t1bml0Lm9cbiBvYmotJChDT05GSUdfUkFURUxJTUlUX0tVTklUX1RFU1QpICYjNDM7PSB0ZXN0X3JhdGVsaW1pdC5vXG4mIzQzO29iai0kKENPTkZJR19QUkFORE9NX0tVTklUX1RFU1QpICYjNDM7PSByYW5kb20zMl9rdW5pdC5vXG4gXG4gb2JqLSQoQ09ORklHX1RFU1RfUlVOVElNRV9NT0RVTEUpXHRcdCYjNDM7PSBtb2R1bGUvXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xubmV3IGZpbGUgbW9kZSAxMDA2NDRcbmluZGV4IDAwMDAwMDAwMDAwMDAwLi40MzY0MzUwMjY1YzE3Y1xuLS0tIC9kZXYvbnVsbFxuJiM0MzsmIzQzOyYjNDM7IGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNcbkBAIC0wLDAgJiM0MzsxLDE4MSBAQFxuJiM0MzsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuJiM0MzsvKlxuJiM0MzsgKiBUZXN0IGNhc2VzIGZvciByYW5kb20zMiBmdW5jdGlvbnMuXG4mIzQzOyAqL1xuJiM0MztcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvcHJhbmRvbS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2t1bml0L3Rlc3QuaFx1MDAzZVxuJiM0MztcbiYjNDM7LyogcHJhbmRvbV93YXJtdXAoKSBpcyBzdGF0aWMgaW4gbGliL3JhbmRvbTMyLmM7IGV4cG9zZWQgZm9yIHRlc3Rpbmcgb25seS4gKi9cbiYjNDM7dm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4mIzQzO1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDEge1xuJiM0MztcdHUzMiBzZWVkO1xuJiM0MztcdHUzMiByZXN1bHQ7XG4mIzQzO30gdGVzdDFbXSA9IHtcbiYjNDM7XHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuJiM0MztcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXG4mIzQzO1x0eyAzVSwgMzEyNTEzMzg5M1UgfSxcbiYjNDM7XHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbiYjNDM7XHR1MzIgc2VlZDtcbiYjNDM7XHR1MzIgaXRlcmF0aW9uO1xuJiM0MztcdHUzMiByZXN1bHQ7XG4mIzQzO30gdGVzdDJbXSA9IHtcbiYjNDM7XHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xuJiM0MztcdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4mIzQzO1x0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcbiYjNDM7XHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxuJiM0MztcdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4mIzQzO1x0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcbiYjNDM7XHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxuJiM0MztcdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4mIzQzO1x0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcbiYjNDM7XHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxuJiM0MztcdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4mIzQzO1x0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcbiYjNDM7XHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxuJiM0MztcdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4mIzQzO1x0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcbiYjNDM7XHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxuJiM0MztcdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4mIzQzO1x0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcbiYjNDM7XHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxuJiM0MztcdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4mIzQzO1x0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcbiYjNDM7XHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxuJiM0MztcdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4mIzQzO1x0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcbiYjNDM7XHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxuJiM0MztcdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4mIzQzO1x0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcbiYjNDM7XHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxuJiM0MztcdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4mIzQzO1x0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcbiYjNDM7XHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxuJiM0MztcdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4mIzQzO1x0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcbiYjNDM7XHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxuJiM0MztcdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4mIzQzO1x0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcbiYjNDM7XHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxuJiM0MztcdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4mIzQzO1x0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcbiYjNDM7XHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxuJiM0MztcdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4mIzQzO1x0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcbiYjNDM7XHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxuJiM0MztcdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4mIzQzO1x0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcbiYjNDM7XHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxuJiM0MztcdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4mIzQzO1x0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcbiYjNDM7XHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxuJiM0MztcdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4mIzQzO1x0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcbiYjNDM7XHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxuJiM0MztcdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4mIzQzO1x0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcbiYjNDM7XHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxuJiM0MztcdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4mIzQzO1x0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcbiYjNDM7XHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxuJiM0MztcdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4mIzQzO1x0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcbiYjNDM7XHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxuJiM0MztcdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4mIzQzO1x0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcbiYjNDM7XHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxuJiM0MztcdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4mIzQzO1x0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcbiYjNDM7XHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxuJiM0MztcdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4mIzQzO1x0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcbiYjNDM7XHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxuJiM0MztcdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4mIzQzO1x0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcbiYjNDM7XHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxuJiM0MztcdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4mIzQzO1x0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcbiYjNDM7XHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxuJiM0MztcdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4mIzQzO1x0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcbiYjNDM7XHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxuJiM0MztcdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4mIzQzO1x0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcbiYjNDM7XHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxuJiM0MztcdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4mIzQzO1x0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcbiYjNDM7XHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxuJiM0MztcdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4mIzQzO1x0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcbiYjNDM7XHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxuJiM0MztcdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4mIzQzO1x0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcbiYjNDM7XHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxuJiM0MztcdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4mIzQzO1x0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcbiYjNDM7XHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxuJiM0MztcdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4mIzQzO1x0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcbiYjNDM7XHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxuJiM0MztcdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4mIzQzO1x0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcbiYjNDM7XHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxuJiM0MztcdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4mIzQzO307XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXG4mIzQzO3tcbiYjNDM7I2RlZmluZSBMQ0coeClcdCAoKHgpICogNjkwNjlVKVx0Lyogc3VwZXItZHVwZXIgTENHICovXG4mIzQzO1x0c3RhdGUtXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXMyID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMSksICAgOFUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXMzID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMiksICAxNlUpO1xuJiM0MztcdHN0YXRlLVx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMyksIDEyOFUpO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4mIzQzO3tcbiYjNDM7XHRpbnQgaTtcbiYjNDM7XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuJiM0MztcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QxKTsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MVtpXS5zZWVkKTtcbiYjNDM7XHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbiYjNDM7XHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MVtpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fdGF1czExMyhzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4mIzQzO3tcbiYjNDM7XHRpbnQgaSwgajtcbiYjNDM7XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuJiM0MztcbiYjNDM7XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFx1MDAyNnN0YXRlLCB0ZXN0MltpXS5zZWVkKTtcbiYjNDM7XHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbiYjNDM7XG4mIzQzO1x0XHRmb3IgKGogPSAwOyBqIFx1MDAzYyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOylcbiYjNDM7XHRcdFx0cHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpO1xuJiM0MztcbiYjNDM7XHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MltpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgc3RydWN0IGt1bml0X2Nhc2UgcHJhbmRvbV90ZXN0X2Nhc2VzW10gPSB7XG4mIzQzO1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeSksXG4mIzQzO1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksXG4mIzQzO1x0e31cbiYjNDM7fTtcbiYjNDM7XG4mIzQzO3N0YXRpYyBzdHJ1Y3Qga3VuaXRfc3VpdGUgcHJhbmRvbV90ZXN0X3N1aXRlID0ge1xuJiM0MztcdC5uYW1lID0gXCYjMzQ7cHJhbmRvbVwmIzM0OyxcbiYjNDM7XHQudGVzdF9jYXNlcyA9IHByYW5kb21fdGVzdF9jYXNlcyxcbiYjNDM7fTtcbiYjNDM7XG4mIzQzO2t1bml0X3Rlc3Rfc3VpdGUocHJhbmRvbV90ZXN0X3N1aXRlKTtcbiYjNDM7XG4mIzQzO01PRFVMRV9ERVNDUklQVElPTihcJiMzNDtLVW5pdCB0ZXN0IGZvciBwcmFuZG9tXCYjMzQ7KTtcbiYjNDM7TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7R1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwMzo1MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAzN2Q3MzhhZTZkYmM2N2E1MzRhMjM3NzVmNTg5ZGE1NGEyMmIyNGQ3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdW4gMzAgMDM6NTI6NTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9saWIvS2NvbmZpZyBiL2xpYi9LY29uZmlnCmluZGV4IDI5MjM5MjRiZWE3OGNiLi41ZjE4NWU5ZjFlOTJiZCAxMDA2NDQKLS0tIGEvbGliL0tjb25maWcKJiM0MzsmIzQzOyYjNDM7IGIvbGliL0tjb25maWcKQEAgLTE1NiwxMiAmIzQzOzE1Niw2IEBAIGNvbmZpZyBBVURJVF9DT01QQVRfR0VORVJJQwogCWRlcGVuZHMgb24gQVVESVRfR0VORVJJQyAmYW1wOyZhbXA7IEFVRElUX0FSQ0hfQ09NUEFUX0dFTkVSSUMgJmFtcDsmYW1wOyBDT01QQVQKIAlkZWZhdWx0IHkKIAotY29uZmlnIFJBTkRPTTMyX1NFTEZURVNUCi0JYm9vbCAmIzM0O1BSTkcgcGVyZm9ybSBzZWxmIHRlc3Qgb24gaW5pdCYjMzQ7Ci0JaGVscAotCSAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgMzIgYml0IFBSTkcgbGlicmFyeSBmdW5jdGlvbnMgdG8gcGVyZm9ybSBhCi0JICBzZWxmIHRlc3Qgb24gaW5pdGlhbGl6YXRpb24uCi0KICMKICMgY29tcHJlc3Npb24gc3VwcG9ydCBpcyBzZWxlY3QmIzM5O2VkIGlmIG5lZWRlZAogIwpkaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1ZwppbmRleCBiYTM2OTM5ZmRhNzliZi4uMDIxNGE1ODU5M2Q3ZmIgMTAwNjQ0Ci0tLSBhL2xpYi9LY29uZmlnLmRlYnVnCiYjNDM7JiM0MzsmIzQzOyBiL2xpYi9LY29uZmlnLmRlYnVnCkBAIC0zMzU0LDYgJiM0MzszMzU0LDE1IEBAIGNvbmZpZyBQUklNRV9OVU1CRVJTX0tVTklUX1RFU1QKIAogCSAgSWYgdW5zdXJlLCBzYXkgTgogCiYjNDM7Y29uZmlnIFBSQU5ET01fS1VOSVRfVEVTVAomIzQzOwl0cmlzdGF0ZSAmIzM0O0tVbml0IHRlc3QgZm9yIHByYW5kb20mIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTCiYjNDM7CWRlcGVuZHMgb24gS1VOSVQKJiM0MzsJZGVmYXVsdCBLVU5JVF9BTExfVEVTVFMKJiM0MzsJaGVscAomIzQzOwkgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLgomIzQzOwomIzQzOwkgIElmIHVuc3VyZSwgc2F5IE4KJiM0MzsKIGVuZGlmICMgUlVOVElNRV9URVNUSU5HX01FTlUKIAogY29uZmlnIEFSQ0hfVVNFX01FTVRFU1QKZGlmZiAtLWdpdCBhL2xpYi9yYW5kb20zMi5jIGIvbGliL3JhbmRvbTMyLmMKaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NAotLS0gYS9saWIvcmFuZG9tMzIuYwomIzQzOyYjNDM7JiM0MzsgYi9saWIvcmFuZG9tMzIuYwpAQCAtNDEsNiAmIzQzOzQxLDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9iaXRvcHMuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9zbGFiLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvdW5hbGlnbmVkLmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2t1bml0L3Zpc2liaWxpdHkuaCZndDsKIAogLyoqCiAgKglwcmFuZG9tX3UzMl9zdGF0ZSAtIHNlZWRlZCBwc2V1ZG8tcmFuZG9tIG51bWJlciBnZW5lcmF0b3IuCkBAIC05Miw3ICYjNDM7OTMsMTQgQEAgdm9pZCBwcmFuZG9tX2J5dGVzX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB2b2lkICpidWYsIHNpemVfdCBieXRlcykKIH0KIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7CiAKLXN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKQomIzQzOy8qCiYjNDM7ICogT25seSBkZWNsYXJlZCBoZXJlIHNvIHRoYXQgaXQgaGFzIGEgcHJvdG90eXBlIHdoZW4gbWFkZQomIzQzOyAqIG5vbi1zdGF0aWMgZm9yIEtVbml0IHRlc3RpbmcgKGF2b2lkcyAtV21pc3NpbmctcHJvdG90eXBlcykuCiYjNDM7ICovCiYjNDM7I2lmIElTX0VOQUJMRUQoQ09ORklHX0tVTklUKQomIzQzO3ZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpOwomIzQzOyNlbmRpZgomIzQzO1ZJU0lCTEVfSUZfS1VOSVQgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSkKIHsKIAkvKiBDYWxsaW5nIFJORyB0ZW4gdGltZXMgdG8gc2F0aXNmeSByZWN1cnJlbmNlIGNvbmRpdGlvbiAqLwogCXByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTsKQEAgLTEwNiw2ICYjNDM7MTE0LDcgQEAgc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpCiAJcHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpOwogCXByYW5kb21fdTMyX3N0YXRlKHN0YXRlKTsKIH0KJiM0MztFWFBPUlRfU1lNQk9MX0lGX0tVTklUKHByYW5kb21fd2FybXVwKTsKIAogdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKQogewpAQCAtMTI1LDE3NiAmIzQzOzEzNCwzIEBAIHZvaWQgcHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSBfX3BlcmNwdSAqcGNwdV9zdGF0ZSkKIAl9CiB9CiBFWFBPUlRfU1lNQk9MKHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKTsKLQotI2lmZGVmIENPTkZJR19SQU5ET00zMl9TRUxGVEVTVAotc3RhdGljIHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHsKLQl1MzIgc2VlZDsKLQl1MzIgcmVzdWx0OwotfSB0ZXN0MVtdID0gewotCXsgMVUsIDM0ODQzNTE2ODVVIH0sCi0JeyAyVSwgMjYyMzEzMDA1OVUgfSwKLQl7IDNVLCAzMTI1MTMzODkzVSB9LAotCXsgNFUsICA5ODQ4NDcyNTRVIH0sCi19OwotCi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDIgewotCXUzMiBzZWVkOwotCXUzMiBpdGVyYXRpb247Ci0JdTMyIHJlc3VsdDsKLX0gdGVzdDJbXSA9IHsKLQkvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqLwotCXsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sCi0JeyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSwKLQl7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LAotCXsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sCi0JeyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSwKLQl7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LAotCXsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sCi0JeyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSwKLQl7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LAotCXsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sCi0JeyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSwKLQl7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LAotCXsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sCi0JeyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSwKLQl7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LAotCXsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sCi0JeyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSwKLQl7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LAotCXsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sCi0JeyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSwKLQl7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LAotCXsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sCi0JeyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSwKLQl7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LAotCXsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sCi0JeyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSwKLQl7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LAotCXsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sCi0JeyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSwKLQl7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LAotCXsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sCi0JeyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSwKLQl7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LAotCXsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sCi0JeyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSwKLQl7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LAotCXsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sCi0JeyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSwKLQl7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LAotCXsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sCi0JeyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSwKLQl7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LAotCXsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sCi0JeyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSwKLQl7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LAotCXsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sCi0JeyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSwKLQl7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LAotCXsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sCi0JeyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSwKLQl7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LAotCXsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sCi0JeyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSwKLQl7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LAotCXsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sCi0JeyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSwKLQl7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LAotCXsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sCi0JeyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSwKLQl7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LAotCXsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sCi0JeyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSwKLQl7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LAotCXsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sCi0JeyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSwKLQl7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LAotCXsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sCi0JeyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSwKLQl7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LAotCXsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sCi0JeyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSwKLQl7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LAotCXsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sCi0JeyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSwKLQl7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LAotCXsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sCi0JeyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSwKLQl7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LAotCXsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sCi0JeyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSwKLQl7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LAotCXsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sCi0JeyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSwKLQl7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LAotCXsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sCi0JeyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSwKLQl7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LAotCXsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sCi0JeyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSwKLQl7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LAotCXsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sCi0JeyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSwKLQl7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LAotCXsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sCi0JeyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSwKLQl7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LAotCXsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sCi0JeyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSwKLQl7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LAotCXsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sCi19OwotCi1zdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKQotewotI2RlZmluZSBMQ0coeCkJICgoeCkgKiA2OTA2OVUpCS8qIHN1cGVyLWR1cGVyIExDRyAqLwotCXN0YXRlLSZndDtzMSA9IF9fc2VlZChMQ0coc2VlZCksICAgICAgICAyVSk7Ci0Jc3RhdGUtJmd0O3MyID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czEpLCAgIDhVKTsKLQlzdGF0ZS0mZ3Q7czMgPSBfX3NlZWQoTENHKHN0YXRlLSZndDtzMiksICAxNlUpOwotCXN0YXRlLSZndDtzNCA9IF9fc2VlZChMQ0coc3RhdGUtJmd0O3MzKSwgMTI4VSk7Ci19Ci0KLXN0YXRpYyBpbnQgX19pbml0IHByYW5kb21fc3RhdGVfc2VsZnRlc3Qodm9pZCkKLXsKLQlpbnQgaSwgaiwgZXJyb3JzID0gMCwgcnVucyA9IDA7Ci0JYm9vbCBlcnJvciA9IGZhbHNlOwotCi0JZm9yIChpID0gMDsgaSAmbHQ7IEFSUkFZX1NJWkUodGVzdDEpOyBpJiM0MzsmIzQzOykgewotCQlzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlOwotCi0JCXByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZCgmYW1wO3N0YXRlLCB0ZXN0MVtpXS5zZWVkKTsKLQkJcHJhbmRvbV93YXJtdXAoJmFtcDtzdGF0ZSk7Ci0KLQkJaWYgKHRlc3QxW2ldLnJlc3VsdCAhPSBwcmFuZG9tX3UzMl9zdGF0ZSgmYW1wO3N0YXRlKSkKLQkJCWVycm9yID0gdHJ1ZTsKLQl9Ci0KLQlpZiAoZXJyb3IpCi0JCXByX3dhcm4oJiMzNDtwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBmYWlsZWRcbiYjMzQ7KTsKLQllbHNlCi0JCXByX2luZm8oJiMzNDtwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBwYXNzZWRcbiYjMzQ7KTsKLQotCWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHsKLQkJc3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTsKLQotCQlwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoJmFtcDtzdGF0ZSwgdGVzdDJbaV0uc2VlZCk7Ci0JCXByYW5kb21fd2FybXVwKCZhbXA7c3RhdGUpOwotCi0JCWZvciAoaiA9IDA7IGogJmx0OyB0ZXN0MltpXS5pdGVyYXRpb24gLSAxOyBqJiM0MzsmIzQzOykKLQkJCXByYW5kb21fdTMyX3N0YXRlKCZhbXA7c3RhdGUpOwotCi0JCWlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSkpCi0JCQllcnJvcnMmIzQzOyYjNDM7OwotCi0JCXJ1bnMmIzQzOyYjNDM7OwotCQljb25kX3Jlc2NoZWQoKTsKLQl9Ci0KLQlpZiAoZXJyb3JzKQotCQlwcl93YXJuKCYjMzQ7cHJhbmRvbTogJWQvJWQgc2VsZiB0ZXN0cyBmYWlsZWRcbiYjMzQ7LCBlcnJvcnMsIHJ1bnMpOwotCWVsc2UKLQkJcHJfaW5mbygmIzM0O3ByYW5kb206ICVkIHNlbGYgdGVzdHMgcGFzc2VkXG4mIzM0OywgcnVucyk7Ci0JcmV0dXJuIDA7Ci19Ci1jb3JlX2luaXRjYWxsKHByYW5kb21fc3RhdGVfc2VsZnRlc3QpOwotI2VuZGlmCmRpZmYgLS1naXQgYS9saWIvdGVzdHMvTWFrZWZpbGUgYi9saWIvdGVzdHMvTWFrZWZpbGUKaW5kZXggNjAxZGJhNGI3ZDk2NmQuLjM5ZDI4M2IyNmZlMmI0IDEwMDY0NAotLS0gYS9saWIvdGVzdHMvTWFrZWZpbGUKJiM0MzsmIzQzOyYjNDM7IGIvbGliL3Rlc3RzL01ha2VmaWxlCkBAIC00OSw1ICYjNDM7NDksNiBAQCBvYmotJChDT05GSUdfU1RSSU5HX0hFTFBFUlNfS1VOSVRfVEVTVCkgJiM0Mzs9IHN0cmluZ19oZWxwZXJzX2t1bml0Lm8KIG9iai0kKENPTkZJR19VU0VSQ09QWV9LVU5JVF9URVNUKSAmIzQzOz0gdXNlcmNvcHlfa3VuaXQubwogb2JqLSQoQ09ORklHX1VUSUxfTUFDUk9TX0tVTklUKSAmIzQzOz0gdXRpbF9tYWNyb3Nfa3VuaXQubwogb2JqLSQoQ09ORklHX1JBVEVMSU1JVF9LVU5JVF9URVNUKSAmIzQzOz0gdGVzdF9yYXRlbGltaXQubwomIzQzO29iai0kKENPTkZJR19QUkFORE9NX0tVTklUX1RFU1QpICYjNDM7PSByYW5kb20zMl9rdW5pdC5vCiAKIG9iai0kKENPTkZJR19URVNUX1JVTlRJTUVfTU9EVUxFKQkJJiM0Mzs9IG1vZHVsZS8KZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jIGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAuLjQzNjQzNTAyNjVjMTdjCi0tLSAvZGV2L251bGwKJiM0MzsmIzQzOyYjNDM7IGIvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMKQEAgLTAsMCAmIzQzOzEsMTgxIEBACiYjNDM7Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKJiM0MzsvKgomIzQzOyAqIFRlc3QgY2FzZXMgZm9yIHJhbmRvbTMyIGZ1bmN0aW9ucy4KJiM0MzsgKi8KJiM0MzsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvcHJhbmRvbS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtrdW5pdC90ZXN0LmgmZ3Q7CiYjNDM7CiYjNDM7LyogcHJhbmRvbV93YXJtdXAoKSBpcyBzdGF0aWMgaW4gbGliL3JhbmRvbTMyLmM7IGV4cG9zZWQgZm9yIHRlc3Rpbmcgb25seS4gKi8KJiM0Mzt2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKTsKJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDEgewomIzQzOwl1MzIgc2VlZDsKJiM0MzsJdTMyIHJlc3VsdDsKJiM0Mzt9IHRlc3QxW10gPSB7CiYjNDM7CXsgMVUsIDM0ODQzNTE2ODVVIH0sCiYjNDM7CXsgMlUsIDI2MjMxMzAwNTlVIH0sCiYjNDM7CXsgM1UsIDMxMjUxMzM4OTNVIH0sCiYjNDM7CXsgNFUsICA5ODQ4NDcyNTRVIH0sCiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDIgewomIzQzOwl1MzIgc2VlZDsKJiM0MzsJdTMyIGl0ZXJhdGlvbjsKJiM0MzsJdTMyIHJlc3VsdDsKJiM0Mzt9IHRlc3QyW10gPSB7CiYjNDM7CS8qIFRlc3QgY2FzZXMgYWdhaW5zdCB0YXVzMTEzIGZyb20gR1NMIGxpYnJhcnkuICovCiYjNDM7CXsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sCiYjNDM7CXsgMTMzOTY5MzI5NVUsIDg3NlUsIDM4ODc3NzY1MzJVIH0sCiYjNDM7CXsgMTU0NTU1NjI4NVUsIDk2MVUsIDE2MTU1Mzg4MzNVIH0sCiYjNDM7CXsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sCiYjNDM7CXsgMTAyNzUxNjA0N1UsIDY4N1UsICA1MTE5ODMwNzlVIH0sCiYjNDM7CXsgIDQxNjUyNjI5OFUsIDcwMFUsICA5MTYxNTY1NTJVIH0sCiYjNDM7CXsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sCiYjNDM7CXsgIDM2NjIyMTQ0M1UsIDYxN1UsIDI5OTI4NTc3NjNVIH0sCiYjNDM7CXsgMTUzOTgzNjk2NVUsIDcxNFUsIDM3ODMyNjU3MjVVIH0sCiYjNDM7CXsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sCiYjNDM7CXsgIDY4NDkwNzIxOFUsIDc5OVUsICAzNjc3ODk0OTFVIH0sCiYjNDM7CXsgMjEyMTIzMDcwMVUsIDkzMVUsIDIxMTU0NjcwMDFVIH0sCiYjNDM7CXsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sCiYjNDM7CXsgIDc2ODA0NjA2NlUsIDg4M1UsIDIwMzQwNzczOTBVIH0sCiYjNDM7CXsgMTk4OTE1OTEzNlUsIDgzM1UsIDExOTU3NjczMDVVIH0sCiYjNDM7CXsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sCiYjNDM7CXsgMTAwODEyOTM3M1UsIDY0MlUsIDE0NzgwODA3NzZVIH0sCiYjNDM7CXsgMTc0MDc3NTYwNFUsIDkzOVUsIDEyNjQ5ODAzNzJVIH0sCiYjNDM7CXsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sCiYjNDM7CXsgMTkyMzAxOTY5N1UsIDczMFUsIDM4MjE0MTk2MjlVIH0sCiYjNDM7CXsgIDQ0MjA3OTkzMlUsIDU2MFUsIDM0NDAwMzIzNDNVIH0sCiYjNDM7CXsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sCiYjNDM7CXsgMjAzMDIwNTk2NFUsIDk2MlUsIDEzMjUxNDQyMjdVIH0sCiYjNDM7CXsgMTE2MDQwNzUyOVUsIDUwN1UsICAyNDA5NDA4NThVIH0sCiYjNDM7CXsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sCiYjNDM7CXsgMTI1Mjc4ODkzMVUsIDY5OVUsICA4NjcxOTU0MzRVIH0sCiYjNDM7CXsgMTk2MTgxNzEzMVUsIDcxOVUsICA2NjgyMzc2NTdVIH0sCiYjNDM7CXsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sCiYjNDM7CXsgMTI4MTg0ODM2N1UsIDkzMlUsIDEwMDMxMDAwMzlVIH0sCiYjNDM7CXsgIDU4MjUzNzExOVUsIDc4MFUsIDExMjcyNzM3NzhVIH0sCiYjNDM7CXsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sCiYjNDM7CXsgMTg5Njc1Njk5NlUsIDc2MlUsIDExMjc4NTEwNTVVIH0sCiYjNDM7CXsgIDg0NzkxNzA1NFUsIDUwMFUsIDE3MTc0OTkwNzVVIH0sCiYjNDM7CXsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sCiYjNDM7CXsgMTY4NTA3MTY4MlUsIDU2N1UsIDE5NjE4MTAzOTZVIH0sCiYjNDM7CXsgMTUxNjIzMjEyOVUsIDU1N1UsICAgIDMxNzM4NzdVIH0sCiYjNDM7CXsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sCiYjNDM7CXsgMTgxNzI2OTkyN1UsIDY5M1UsIDQyNzkxMjI1NzNVIH0sCiYjNDM7CXsgMTUxMDA5MTcwMVUsIDcxN1UsICA2MzgxOTEyMjlVIH0sCiYjNDM7CXsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sCiYjNDM7CXsgIDM5OTMyNDM1OVUsIDcwMlUsIDE4MDM1OTgxMTZVIH0sCiYjNDM7CXsgMTMxODQ4MDI3NFUsIDc3OVUsIDIwNzQyMzcwMjJVIH0sCiYjNDM7CXsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sCiYjNDM7CXsgMTY5NjUwNzc3M1UsIDg0MFUsICA1Nzc0MTU0NDdVIH0sCiYjNDM7CXsgMjA4MTk3OTEyMVUsIDk4MVUsIDMwNDE0ODY0NDlVIH0sCiYjNDM7CXsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sCiYjNDM7CXsgMTI1MDY4MzUwNlUsIDc0OVUsICA4MzY0MTk4NTlVIH0sCiYjNDM7CXsgIDU5NTAwMzEwMlUsIDUzNFUsICAzNjY3OTQxMDlVIH0sCiYjNDM7CXsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sCiYjNDM7CXsgIDYxOTQzMzQ3OVUsIDYxMFUsIDM5OTE3ODM4NzVVIH0sCiYjNDM7CXsgIDcwNDA5NjUyMFUsIDUxOFUsIDQxMzk0OTM4NTJVIH0sCiYjNDM7CXsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sCiYjNDM7CXsgMTMxODIzMzE1MlUsIDkyMlUsIDM4ODAzNjExMzRVIH0sCiYjNDM7CXsgIDg1NTU3Mjk5MlUsIDc2MVUsIDE0NzI5NzQ3ODdVIH0sCiYjNDM7CXsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sCiYjNDM7CXsgIDY3ODkzMTc1OFUsIDg0MFUsICAzODA2MTYwNDNVIH0sCiYjNDM7CXsgIDY5MjcxMTk3M1UsIDc3OFUsIDEzODIzNjE5NDdVIH0sCiYjNDM7CXsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sCiYjNDM7CXsgICA5MjM5MzIyM1UsIDU4NlUsIDE1MjIxMjg0NzFVIH0sCiYjNDM7CXsgMTIyMjU5MjkyMFUsIDc0M1UsIDM0NjY3MjY2NjdVIH0sCiYjNDM7CXsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sCiYjNDM7CXsgMTkzNTA1Njk0NVUsIDk1OFUsICA1MTQ4NjQ0NzdVIH0sCiYjNDM7CXsgIDczNTY3NTk5M1UsIDk5MFUsIDEyOTQyMzk5ODlVIH0sCiYjNDM7CXsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sCiYjNDM7CXsgICA3MDYxNjM2MVUsIDgyOVUsICAgMjI0ODMwOThVIH0sCiYjNDM7CXsgIDM2ODIzNDcwMFUsIDczMVUsIDI5MTM4NzUwODRVIH0sCiYjNDM7CXsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sCiYjNDM7CXsgIDUzOTQ0NDY1NFUsIDY4MlUsIDE4MzUxNDEyNTlVIH0sCiYjNDM7CXsgMTMxNDk4NzI5N1UsIDg0MFUsIDE4MDExMTQxMzZVIH0sCiYjNDM7CXsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sCiYjNDM7CXsgIDQ2OTAyMzgzOFUsIDcxNlUsIDE2Mzc5MTgyMDJVIH0sCiYjNDM7CXsgMTg0Mzc1NDQ5NlUsIDY1M1UsIDI1NjIwOTIxNTJVIH0sCiYjNDM7CXsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sCiYjNDM7CXsgIDQwNDcyMjI0OVUsIDk2NVUsIDI3MDQxMTY5OTlVIH0sCiYjNDM7CXsgIDYwMDcwMjIwOVUsIDc1OFUsICA1ODQ5Nzk5ODZVIH0sCiYjNDM7CXsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sCiYjNDM7CXsgMTY1ODA3MTEyNlUsIDY5NFUsIDIyMTQ1Njk0OTBVIH0sCiYjNDM7CXsgIDQyMDQ4MDAzN1UsIDc0OVUsIDM0MzAwMTA4NjZVIH0sCiYjNDM7CXsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sCiYjNDM7CXsgMTAyOTQyNDc5OVUsIDkzN1UsIDM3ODc3NDY4NDFVIH0sCiYjNDM7CXsgMjAxMjYwODY2OVUsIDUwNlUsIDMzNjI2Mjg5NzNVIH0sCiYjNDM7CXsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sCiYjNDM7CXsgMTMzMDYzNTUzM1UsIDg1N1UsIDMwNDA4MDY1MDRVIH0sCiYjNDM7CXsgMTIyMzgwMDU1MFUsIDUzOVUsIDM5NTQyMjk1MTdVIH0sCiYjNDM7CXsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sCiYjNDM7CXsgMTg3Nzg0Nzg5OFUsIDk0NVUsIDI5MTUxNDcxNDNVIH0sCiYjNDM7CXsgMTY0NjM1NjA5OVUsIDg3NFUsICA5NjU5ODgyODBVIH0sCiYjNDM7CXsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sCiYjNDM7CXsgMTk0ODA5MzIxMFUsIDYzM1UsIDEzNDY1OTc2ODRVIH0sCiYjNDM7CXsgIDM5MjYwOTc0NFUsIDc4M1UsIDE2MzYwODMyOTVVIH0sCiYjNDM7CXsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sCiYjNDM7CXsgMTM2MDMwMjk2NVUsIDY5NlUsIDE2NjUzOTQ0NjFVIH0sCiYjNDM7CXsgMTIyMDA5MDk0NlUsIDc4MFUsIDEzMTY5MjI4MTJVIH0sCiYjNDM7CXsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sCiYjNDM7CXsgMTYxMzg2ODc5MVUsIDU5MlUsICA4Mjg1NDY4ODNVIH0sCiYjNDM7CXsgIDUyMzQzMDk1MVUsIDU0OFUsIDI1NTIzOTIzMDRVIH0sCiYjNDM7CXsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sCiYjNDM7CXsgMTM2NDM0MDAyMVUsIDgzNlUsIDM3MTA1MTM0ODZVIH0sCiYjNDM7CXsgMTk4NjI1NzcyOVUsIDkzMVUsICA5MzUwMTM5NjJVIH0sCiYjNDM7CXsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sCiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpCiYjNDM7ewomIzQzOyNkZWZpbmUgTENHKHgpCSAoKHgpICogNjkwNjlVKQkvKiBzdXBlci1kdXBlciBMQ0cgKi8KJiM0MzsJc3RhdGUtJmd0O3MxID0gX19zZWVkKExDRyhzZWVkKSwgICAgICAgIDJVKTsKJiM0MzsJc3RhdGUtJmd0O3MyID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czEpLCAgIDhVKTsKJiM0MzsJc3RhdGUtJmd0O3MzID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czIpLCAgMTZVKTsKJiM0MzsJc3RhdGUtJmd0O3M0ID0gX19zZWVkKExDRyhzdGF0ZS0mZ3Q7czMpLCAxMjhVKTsKJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgdGVzdF9wcmFuZG9tX3NlZWRfYm91bmRhcnkoc3RydWN0IGt1bml0ICp0ZXN0KQomIzQzO3sKJiM0MzsJaW50IGk7CiYjNDM7CXN0cnVjdCBybmRfc3RhdGUgc3RhdGU7CiYjNDM7CiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKHRlc3QxKTsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCXByYW5kb21fc3RhdGVfdGVzdF9zZWVkKCZhbXA7c3RhdGUsIHRlc3QxW2ldLnNlZWQpOwomIzQzOwkJcHJhbmRvbV93YXJtdXAoJmFtcDtzdGF0ZSk7CiYjNDM7CQlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgdGVzdDFbaV0ucmVzdWx0LCBwcmFuZG9tX3UzMl9zdGF0ZSgmYW1wO3N0YXRlKSk7CiYjNDM7CX0KJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHZvaWQgdGVzdF9wcmFuZG9tX3RhdXMxMTMoc3RydWN0IGt1bml0ICp0ZXN0KQomIzQzO3sKJiM0MzsJaW50IGksIGo7CiYjNDM7CXN0cnVjdCBybmRfc3RhdGUgc3RhdGU7CiYjNDM7CiYjNDM7CWZvciAoaSA9IDA7IGkgJmx0OyBBUlJBWV9TSVpFKHRlc3QyKTsgaSYjNDM7JiM0MzspIHsKJiM0MzsJCXByYW5kb21fc3RhdGVfdGVzdF9zZWVkKCZhbXA7c3RhdGUsIHRlc3QyW2ldLnNlZWQpOwomIzQzOwkJcHJhbmRvbV93YXJtdXAoJmFtcDtzdGF0ZSk7CiYjNDM7CiYjNDM7CQlmb3IgKGogPSAwOyBqICZsdDsgdGVzdDJbaV0uaXRlcmF0aW9uIC0gMTsgaiYjNDM7JiM0MzspCiYjNDM7CQkJcHJhbmRvbV91MzJfc3RhdGUoJmFtcDtzdGF0ZSk7CiYjNDM7CiYjNDM7CQlLVU5JVF9FWFBFQ1RfRVEodGVzdCwgdGVzdDJbaV0ucmVzdWx0LCBwcmFuZG9tX3UzMl9zdGF0ZSgmYW1wO3N0YXRlKSk7CiYjNDM7CX0KJiM0Mzt9CiYjNDM7CiYjNDM7c3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHByYW5kb21fdGVzdF9jYXNlc1tdID0gewomIzQzOwlLVU5JVF9DQVNFKHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KSwKJiM0MzsJS1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksCiYjNDM7CXt9CiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIHByYW5kb21fdGVzdF9zdWl0ZSA9IHsKJiM0MzsJLm5hbWUgPSAmIzM0O3ByYW5kb20mIzM0OywKJiM0MzsJLnRlc3RfY2FzZXMgPSBwcmFuZG9tX3Rlc3RfY2FzZXMsCiYjNDM7fTsKJiM0MzsKJiM0MztrdW5pdF90ZXN0X3N1aXRlKHByYW5kb21fdGVzdF9zdWl0ZSk7CiYjNDM7CiYjNDM7TU9EVUxFX0RFU0NSSVBUSU9OKCYjMzQ7S1VuaXQgdGVzdCBmb3IgcHJhbmRvbSYjMzQ7KTsKJiM0MztNT0RVTEVfTElDRU5TRSgmIzM0O0dQTCYjMzQ7KTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMzAgMDM6NTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTE2MDIKCQkJCQkJCW91dHB1dDogNjYKCQkJCQkJCXRob3VnaHRzOiAyMjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS1VuaXQgVGVzdCBNaWdyYXRpb24gZm9yIFBSQU5ET00gU2VsZi1UZXN0cyoqCgpPa2F5LCBzbyB0aGUgZ2lzdCBvZiB0aGlzIGlzIHN0cmFpZ2h0Zm9yd2FyZDogd2UmIzM5O3JlIG1vdmluZyB0aGUgZXhpc3RpbmcgYHByYW5kb21gIHNlbGYtdGVzdHMuIFRoZXkmIzM5O3JlIGN1cnJlbnRseSByZXNpZGluZyBpbiBgbGliL3JhbmRvbTMyLmNgLCBidXQgd2UmIzM5O3JlIG1pZ3JhdGluZyB0aGVtIHRvIGEgZGVkaWNhdGVkIEtVbml0IHRlc3QgbW9kdWxlLCBgbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmNgLiBUaGlzIGlzIGFsbCBhYm91dCBtb2Rlcm5pemF0aW9uLCByaWdodD8KCldlJiMzOTtyZSBkcm9wcGluZyB0aGUgb2xkIGBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1RgIGNvbmZpZyBvcHRpb24sIHdoaWNoIG1ha2VzIHNlbnNlIHNpbmNlIEtVbml0IHByb3ZpZGVzIGEgbW9yZSByb2J1c3QgZnJhbWV3b3JrLiBJbiBpdHMgcGxhY2UsIHdlJiMzOTtyZSBpbnRyb2R1Y2luZyBgQ09ORklHX1BSQU5ET01fS1VOSVRfVEVTVGAuIFRoYXQmIzM5O3MgY2xlYW4gYW5kIGtlZXBzIHRoaW5ncyBvcmdhbml6ZWQuIEFuZCwgYSBsaXR0bGUgb3B0aW1pemF0aW9uLCB3ZSYjMzk7cmUgbWFraW5nIGBwcmFuZG9tX3dhcm11cGAgdmlzaWJsZSB0byB0aGUgS1VuaXQgdGVzdHMsIHdoaWNoIGlzIGEgZ29vZCBjYWxsLCBlc3BlY2lhbGx5IGZvciB0ZXN0IHNldHVwLgoKVGhpcyBpcyBzdHJpY3RseSBhIHJlZmFjdG9yaW5nIGVmZm9ydDsgdGhlcmUgYXJlIG5vIGNoYW5nZXMgdG8gdGhlIGNvcmUga2VybmVsIGxvZ2ljLiBJdCBpc24mIzM5O3QgcmVsYXRlZCB0byBmdXp6aW5nIGVpdGhlciwgd2hpY2ggSSBuZWVkZWQgdG8gY29uZmlybS4gVGhlIHRlc3RzIHRoZW1zZWx2ZXMgYXJlIGp1c3QgS1VuaXQgdGVzdHMsIGFuZCB0aGV5IGFyZW4mIzM5O3QgY2hhbmdpbmcgdGhlaXIgdW5kZXJseWluZyBiZWhhdmlvdXIuCgpTbywgbGV0JiMzOTtzIHRha2UgYSBjbG9zZXIgbG9vaywganVzdCB0byBtYWtlIHN1cmUuIEkmIzM5O20gc2VlaW5nIGNoYW5nZXMgaW4gYGxpYi9yYW5kb20zMi5jYCBhbmQgYGxpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jYDogaW4gdGhlIGZpcnN0IG9uZSwgdGhlIG9ubHkgZnVuY3Rpb25hbCBjaGFuZ2UgaXMgdGhhdCBgcHJhbmRvbV93YXJtdXBgIGlzIG5vdyBleHBvcnRlZCBpZiBLVW5pdCBpcyBlbmFibGVkLiBUaGUgc2VsZiB0ZXN0IGNvZGUgYW5kIGl0cyBkYXRhIHdlcmUgZGVsZXRlZC4gSW4gdGhlIHNlY29uZCwgdGhlcmUgYXJlIGp1c3QgdGhlIEtVbml0IHRlc3RzLgoKQWxyaWdodCwgYWZ0ZXIgcmV2aWV3aW5nIHRoZSBjaGFuZ2VzLCB0aGVyZSBhcmUgZGVmaW5pdGVseSBubyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCYjMzk7cyByYW5kb20gbnVtYmVyIGdlbmVyYXRpb24gcHJvY2Vzcy4gVGhpcyBtaWdyYXRpb24gaXMgcHVyZWx5IGEgdGVzdCBpbmZyYXN0cnVjdHVyZSB1cGRhdGUuIFRoZXJlZm9yZSwgd2UgY2FuIGNvbmZpZGVudGx5IHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8zMCAwMzo1MzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbWlncmF0ZXMgZXhpc3RpbmcgcHJhbmRvbSBzZWxmLXRlc3RzIHRvIHRoZSBLVW5pdCBmcmFtZXdvcmsuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IHdvdWxkIHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG9ubHkgbWlncmF0ZXMgZXhpc3RpbmcgcHJhbmRvbSBzZWxmLXRlc3RzIHRvIHRoZSBLVW5pdCBmcmFtZXdvcmsuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBjb3JlIGtlcm5lbCBsb2dpYyB0aGF0IHdvdWxkIHJlcXVpcmUgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwMzo1Mjo1OS41OTM5NTEwOTRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Njk5MDA3MDExLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0zMFQwMzo1Mjo1OS41OTM5NjA3NzRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjgwNzIwNTI3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDM3ZDczOGFlNmRiYzY3YTUzNGEyMzc3NWY1ODlkYTU0YTIyYjI0ZDdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdW4gMzAgMDM6NTI6NTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcgYi9saWIvS2NvbmZpZ1xcbmluZGV4IDI5MjM5MjRiZWE3OGNiLi41ZjE4NWU5ZjFlOTJiZCAxMDA2NDRcXG4tLS0gYS9saWIvS2NvbmZpZ1xcbisrKyBiL2xpYi9LY29uZmlnXFxuQEAgLTE1NiwxMiArMTU2LDYgQEAgY29uZmlnIEFVRElUX0NPTVBBVF9HRU5FUklDXFxuIFxcdGRlcGVuZHMgb24gQVVESVRfR0VORVJJQyBcXHUwMDI2XFx1MDAyNiBBVURJVF9BUkNIX0NPTVBBVF9HRU5FUklDIFxcdTAwMjZcXHUwMDI2IENPTVBBVFxcbiBcXHRkZWZhdWx0IHlcXG4gXFxuLWNvbmZpZyBSQU5ET00zMl9TRUxGVEVTVFxcbi1cXHRib29sIFxcXCJQUk5HIHBlcmZvcm0gc2VsZiB0ZXN0IG9uIGluaXRcXFwiXFxuLVxcdGhlbHBcXG4tXFx0ICBUaGlzIG9wdGlvbiBlbmFibGVzIHRoZSAzMiBiaXQgUFJORyBsaWJyYXJ5IGZ1bmN0aW9ucyB0byBwZXJmb3JtIGFcXG4tXFx0ICBzZWxmIHRlc3Qgb24gaW5pdGlhbGl6YXRpb24uXFxuLVxcbiAjXFxuICMgY29tcHJlc3Npb24gc3VwcG9ydCBpcyBzZWxlY3QnZWQgaWYgbmVlZGVkXFxuICNcXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1Z1xcbmluZGV4IGJhMzY5MzlmZGE3OWJmLi4wMjE0YTU4NTkzZDdmYiAxMDA2NDRcXG4tLS0gYS9saWIvS2NvbmZpZy5kZWJ1Z1xcbisrKyBiL2xpYi9LY29uZmlnLmRlYnVnXFxuQEAgLTMzNTQsNiArMzM1NCwxNSBAQCBjb25maWcgUFJJTUVfTlVNQkVSU19LVU5JVF9URVNUXFxuIFxcbiBcXHQgIElmIHVuc3VyZSwgc2F5IE5cXG4gXFxuK2NvbmZpZyBQUkFORE9NX0tVTklUX1RFU1RcXG4rXFx0dHJpc3RhdGUgXFxcIktVbml0IHRlc3QgZm9yIHByYW5kb21cXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4rXFx0ZGVwZW5kcyBvbiBLVU5JVFxcbitcXHRkZWZhdWx0IEtVTklUX0FMTF9URVNUU1xcbitcXHRoZWxwXFxuK1xcdCAgRW5hYmxlIHRoaXMgb3B0aW9uIHRvIHRlc3QgdGhlIHByYW5kb20gZnVuY3Rpb25zIGF0IHJ1bnRpbWUuXFxuK1xcbitcXHQgIElmIHVuc3VyZSwgc2F5IE5cXG4rXFxuIGVuZGlmICMgUlVOVElNRV9URVNUSU5HX01FTlVcXG4gXFxuIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUXFxuZGlmZiAtLWdpdCBhL2xpYi9yYW5kb20zMi5jIGIvbGliL3JhbmRvbTMyLmNcXG5pbmRleCAyNGU3YWNkOTM0M2Y2OC4uZGFkOTAyMTljMzUxMWQgMTAwNjQ0XFxuLS0tIGEvbGliL3JhbmRvbTMyLmNcXG4rKysgYi9saWIvcmFuZG9tMzIuY1xcbkBAIC00MSw2ICs0MSw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9iaXRvcHMuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NsYWIuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3VuYWxpZ25lZC5oXFx1MDAzZVxcbisjaW5jbHVkZSBcXHUwMDNja3VuaXQvdmlzaWJpbGl0eS5oXFx1MDAzZVxcbiBcXG4gLyoqXFxuICAqXFx0cHJhbmRvbV91MzJfc3RhdGUgLSBzZWVkZWQgcHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLlxcbkBAIC05Miw3ICs5MywxNCBAQCB2b2lkIHByYW5kb21fYnl0ZXNfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHZvaWQgKmJ1Ziwgc2l6ZV90IGJ5dGVzKVxcbiB9XFxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7XFxuIFxcbi1zdGF0aWMgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcXG4rLypcXG4rICogT25seSBkZWNsYXJlZCBoZXJlIHNvIHRoYXQgaXQgaGFzIGEgcHJvdG90eXBlIHdoZW4gbWFkZVxcbisgKiBub24tc3RhdGljIGZvciBLVW5pdCB0ZXN0aW5nIChhdm9pZHMgLVdtaXNzaW5nLXByb3RvdHlwZXMpLlxcbisgKi9cXG4rI2lmIElTX0VOQUJMRUQoQ09ORklHX0tVTklUKVxcbit2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKTtcXG4rI2VuZGlmXFxuK1ZJU0lCTEVfSUZfS1VOSVQgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcXG4ge1xcbiBcXHQvKiBDYWxsaW5nIFJORyB0ZW4gdGltZXMgdG8gc2F0aXNmeSByZWN1cnJlbmNlIGNvbmRpdGlvbiAqL1xcbiBcXHRwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7XFxuQEAgLTEwNiw2ICsxMTQsNyBAQCBzdGF0aWMgdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSlcXG4gXFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xcbiBcXHRwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7XFxuIH1cXG4rRVhQT1JUX1NZTUJPTF9JRl9LVU5JVChwcmFuZG9tX3dhcm11cCk7XFxuIFxcbiB2b2lkIHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgX19wZXJjcHUgKnBjcHVfc3RhdGUpXFxuIHtcXG5AQCAtMTI1LDE3NiArMTM0LDMgQEAgdm9pZCBwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlIF9fcGVyY3B1ICpwY3B1X3N0YXRlKVxcbiBcXHR9XFxuIH1cXG4gRVhQT1JUX1NZTUJPTChwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZSk7XFxuLVxcbi0jaWZkZWYgQ09ORklHX1JBTkRPTTMyX1NFTEZURVNUXFxuLXN0YXRpYyBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7XFxuLVxcdHUzMiBzZWVkO1xcbi1cXHR1MzIgcmVzdWx0O1xcbi19IHRlc3QxW10gPSB7XFxuLVxcdHsgMVUsIDM0ODQzNTE2ODVVIH0sXFxuLVxcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXFxuLVxcdHsgM1UsIDMxMjUxMzM4OTNVIH0sXFxuLVxcdHsgNFUsICA5ODQ4NDcyNTRVIH0sXFxuLX07XFxuLVxcbi1zdGF0aWMgc3RydWN0IHByYW5kb21fdGVzdDIge1xcbi1cXHR1MzIgc2VlZDtcXG4tXFx0dTMyIGl0ZXJhdGlvbjtcXG4tXFx0dTMyIHJlc3VsdDtcXG4tfSB0ZXN0MltdID0ge1xcbi1cXHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xcbi1cXHR7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LFxcbi1cXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxcbi1cXHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxcbi1cXHR7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LFxcbi1cXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxcbi1cXHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxcbi1cXHR7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LFxcbi1cXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxcbi1cXHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxcbi1cXHR7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LFxcbi1cXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxcbi1cXHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxcbi1cXHR7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LFxcbi1cXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxcbi1cXHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxcbi1cXHR7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LFxcbi1cXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxcbi1cXHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxcbi1cXHR7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LFxcbi1cXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxcbi1cXHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxcbi1cXHR7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LFxcbi1cXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxcbi1cXHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxcbi1cXHR7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LFxcbi1cXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxcbi1cXHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxcbi1cXHR7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LFxcbi1cXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxcbi1cXHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxcbi1cXHR7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LFxcbi1cXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxcbi1cXHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxcbi1cXHR7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LFxcbi1cXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxcbi1cXHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxcbi1cXHR7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LFxcbi1cXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxcbi1cXHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxcbi1cXHR7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LFxcbi1cXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxcbi1cXHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxcbi1cXHR7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LFxcbi1cXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxcbi1cXHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxcbi1cXHR7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LFxcbi1cXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxcbi1cXHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxcbi1cXHR7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LFxcbi1cXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxcbi1cXHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxcbi1cXHR7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LFxcbi1cXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxcbi1cXHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxcbi1cXHR7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LFxcbi1cXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxcbi1cXHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxcbi1cXHR7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LFxcbi1cXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxcbi1cXHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxcbi1cXHR7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LFxcbi1cXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxcbi1cXHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxcbi1cXHR7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LFxcbi1cXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxcbi1cXHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxcbi1cXHR7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LFxcbi1cXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxcbi1cXHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxcbi1cXHR7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LFxcbi1cXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxcbi1cXHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxcbi1cXHR7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LFxcbi1cXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxcbi1cXHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxcbi1cXHR7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LFxcbi1cXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxcbi1cXHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxcbi1cXHR7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LFxcbi1cXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxcbi1cXHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxcbi1cXHR7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LFxcbi1cXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxcbi1cXHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxcbi1cXHR7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LFxcbi1cXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxcbi1cXHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxcbi1cXHR7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LFxcbi1cXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxcbi1cXHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxcbi1cXHR7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LFxcbi1cXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxcbi1cXHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxcbi1cXHR7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LFxcbi1cXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxcbi1cXHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxcbi1cXHR7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LFxcbi1cXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxcbi1cXHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxcbi1cXHR7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LFxcbi19O1xcbi1cXG4tc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB1MzIgc2VlZClcXG4te1xcbi0jZGVmaW5lIExDRyh4KVxcdCAoKHgpICogNjkwNjlVKVxcdC8qIHN1cGVyLWR1cGVyIExDRyAqL1xcbi1cXHRzdGF0ZS1cXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xcbi1cXHRzdGF0ZS1cXHUwMDNlczIgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMSksICAgOFUpO1xcbi1cXHRzdGF0ZS1cXHUwMDNlczMgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMiksICAxNlUpO1xcbi1cXHRzdGF0ZS1cXHUwMDNlczQgPSBfX3NlZWQoTENHKHN0YXRlLVxcdTAwM2VzMyksIDEyOFUpO1xcbi19XFxuLVxcbi1zdGF0aWMgaW50IF9faW5pdCBwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KHZvaWQpXFxuLXtcXG4tXFx0aW50IGksIGosIGVycm9ycyA9IDAsIHJ1bnMgPSAwO1xcbi1cXHRib29sIGVycm9yID0gZmFsc2U7XFxuLVxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0ZXN0MSk7IGkrKykge1xcbi1cXHRcXHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xcbi1cXG4tXFx0XFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFxcdTAwMjZzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7XFxuLVxcdFxcdHByYW5kb21fd2FybXVwKFxcdTAwMjZzdGF0ZSk7XFxuLVxcbi1cXHRcXHRpZiAodGVzdDFbaV0ucmVzdWx0ICE9IHByYW5kb21fdTMyX3N0YXRlKFxcdTAwMjZzdGF0ZSkpXFxuLVxcdFxcdFxcdGVycm9yID0gdHJ1ZTtcXG4tXFx0fVxcbi1cXG4tXFx0aWYgKGVycm9yKVxcbi1cXHRcXHRwcl93YXJuKFxcXCJwcmFuZG9tOiBzZWVkIGJvdW5kYXJ5IHNlbGYgdGVzdCBmYWlsZWRcXFxcblxcXCIpO1xcbi1cXHRlbHNlXFxuLVxcdFxcdHByX2luZm8oXFxcInByYW5kb206IHNlZWQgYm91bmRhcnkgc2VsZiB0ZXN0IHBhc3NlZFxcXFxuXFxcIik7XFxuLVxcbi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRSh0ZXN0Mik7IGkrKykge1xcbi1cXHRcXHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xcbi1cXG4tXFx0XFx0cHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKFxcdTAwMjZzdGF0ZSwgdGVzdDJbaV0uc2VlZCk7XFxuLVxcdFxcdHByYW5kb21fd2FybXVwKFxcdTAwMjZzdGF0ZSk7XFxuLVxcbi1cXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgdGVzdDJbaV0uaXRlcmF0aW9uIC0gMTsgaisrKVxcbi1cXHRcXHRcXHRwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpO1xcbi1cXG4tXFx0XFx0aWYgKHRlc3QyW2ldLnJlc3VsdCAhPSBwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpKVxcbi1cXHRcXHRcXHRlcnJvcnMrKztcXG4tXFxuLVxcdFxcdHJ1bnMrKztcXG4tXFx0XFx0Y29uZF9yZXNjaGVkKCk7XFxuLVxcdH1cXG4tXFxuLVxcdGlmIChlcnJvcnMpXFxuLVxcdFxcdHByX3dhcm4oXFxcInByYW5kb206ICVkLyVkIHNlbGYgdGVzdHMgZmFpbGVkXFxcXG5cXFwiLCBlcnJvcnMsIHJ1bnMpO1xcbi1cXHRlbHNlXFxuLVxcdFxcdHByX2luZm8oXFxcInByYW5kb206ICVkIHNlbGYgdGVzdHMgcGFzc2VkXFxcXG5cXFwiLCBydW5zKTtcXG4tXFx0cmV0dXJuIDA7XFxuLX1cXG4tY29yZV9pbml0Y2FsbChwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0KTtcXG4tI2VuZGlmXFxuZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9NYWtlZmlsZSBiL2xpYi90ZXN0cy9NYWtlZmlsZVxcbmluZGV4IDYwMWRiYTRiN2Q5NjZkLi4zOWQyODNiMjZmZTJiNCAxMDA2NDRcXG4tLS0gYS9saWIvdGVzdHMvTWFrZWZpbGVcXG4rKysgYi9saWIvdGVzdHMvTWFrZWZpbGVcXG5AQCAtNDksNSArNDksNiBAQCBvYmotJChDT05GSUdfU1RSSU5HX0hFTFBFUlNfS1VOSVRfVEVTVCkgKz0gc3RyaW5nX2hlbHBlcnNfa3VuaXQub1xcbiBvYmotJChDT05GSUdfVVNFUkNPUFlfS1VOSVRfVEVTVCkgKz0gdXNlcmNvcHlfa3VuaXQub1xcbiBvYmotJChDT05GSUdfVVRJTF9NQUNST1NfS1VOSVQpICs9IHV0aWxfbWFjcm9zX2t1bml0Lm9cXG4gb2JqLSQoQ09ORklHX1JBVEVMSU1JVF9LVU5JVF9URVNUKSArPSB0ZXN0X3JhdGVsaW1pdC5vXFxuK29iai0kKENPTkZJR19QUkFORE9NX0tVTklUX1RFU1QpICs9IHJhbmRvbTMyX2t1bml0Lm9cXG4gXFxuIG9iai0kKENPTkZJR19URVNUX1JVTlRJTUVfTU9EVUxFKVxcdFxcdCs9IG1vZHVsZS9cXG5kaWZmIC0tZ2l0IGEvbGliL3Rlc3RzL3JhbmRvbTMyX2t1bml0LmMgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xcbm5ldyBmaWxlIG1vZGUgMTAwNjQ0XFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjQzNjQzNTAyNjVjMTdjXFxuLS0tIC9kZXYvbnVsbFxcbisrKyBiL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jXFxuQEAgLTAsMCArMSwxODEgQEBcXG4rLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4rLypcXG4rICogVGVzdCBjYXNlcyBmb3IgcmFuZG9tMzIgZnVuY3Rpb25zLlxcbisgKi9cXG4rXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9wcmFuZG9tLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NrdW5pdC90ZXN0LmhcXHUwMDNlXFxuK1xcbisvKiBwcmFuZG9tX3dhcm11cCgpIGlzIHN0YXRpYyBpbiBsaWIvcmFuZG9tMzIuYzsgZXhwb3NlZCBmb3IgdGVzdGluZyBvbmx5LiAqL1xcbit2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKTtcXG4rXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7XFxuK1xcdHUzMiBzZWVkO1xcbitcXHR1MzIgcmVzdWx0O1xcbit9IHRlc3QxW10gPSB7XFxuK1xcdHsgMVUsIDM0ODQzNTE2ODVVIH0sXFxuK1xcdHsgMlUsIDI2MjMxMzAwNTlVIH0sXFxuK1xcdHsgM1UsIDMxMjUxMzM4OTNVIH0sXFxuK1xcdHsgNFUsICA5ODQ4NDcyNTRVIH0sXFxuK307XFxuK1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IHByYW5kb21fdGVzdDIge1xcbitcXHR1MzIgc2VlZDtcXG4rXFx0dTMyIGl0ZXJhdGlvbjtcXG4rXFx0dTMyIHJlc3VsdDtcXG4rfSB0ZXN0MltdID0ge1xcbitcXHQvKiBUZXN0IGNhc2VzIGFnYWluc3QgdGF1czExMyBmcm9tIEdTTCBsaWJyYXJ5LiAqL1xcbitcXHR7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LFxcbitcXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxcbitcXHR7IDE1NDU1NTYyODVVLCA5NjFVLCAxNjE1NTM4ODMzVSB9LFxcbitcXHR7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LFxcbitcXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxcbitcXHR7ICA0MTY1MjYyOThVLCA3MDBVLCAgOTE2MTU2NTUyVSB9LFxcbitcXHR7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LFxcbitcXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxcbitcXHR7IDE1Mzk4MzY5NjVVLCA3MTRVLCAzNzgzMjY1NzI1VSB9LFxcbitcXHR7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LFxcbitcXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxcbitcXHR7IDIxMjEyMzA3MDFVLCA5MzFVLCAyMTE1NDY3MDAxVSB9LFxcbitcXHR7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LFxcbitcXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxcbitcXHR7IDE5ODkxNTkxMzZVLCA4MzNVLCAxMTk1NzY3MzA1VSB9LFxcbitcXHR7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LFxcbitcXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxcbitcXHR7IDE3NDA3NzU2MDRVLCA5MzlVLCAxMjY0OTgwMzcyVSB9LFxcbitcXHR7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LFxcbitcXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxcbitcXHR7ICA0NDIwNzk5MzJVLCA1NjBVLCAzNDQwMDMyMzQzVSB9LFxcbitcXHR7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LFxcbitcXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxcbitcXHR7IDExNjA0MDc1MjlVLCA1MDdVLCAgMjQwOTQwODU4VSB9LFxcbitcXHR7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LFxcbitcXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxcbitcXHR7IDE5NjE4MTcxMzFVLCA3MTlVLCAgNjY4MjM3NjU3VSB9LFxcbitcXHR7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LFxcbitcXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxcbitcXHR7ICA1ODI1MzcxMTlVLCA3ODBVLCAxMTI3MjczNzc4VSB9LFxcbitcXHR7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LFxcbitcXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxcbitcXHR7ICA4NDc5MTcwNTRVLCA1MDBVLCAxNzE3NDk5MDc1VSB9LFxcbitcXHR7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LFxcbitcXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxcbitcXHR7IDE1MTYyMzIxMjlVLCA1NTdVLCAgICAzMTczODc3VSB9LFxcbitcXHR7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LFxcbitcXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxcbitcXHR7IDE1MTAwOTE3MDFVLCA3MTdVLCAgNjM4MTkxMjI5VSB9LFxcbitcXHR7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LFxcbitcXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxcbitcXHR7IDEzMTg0ODAyNzRVLCA3NzlVLCAyMDc0MjM3MDIyVSB9LFxcbitcXHR7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LFxcbitcXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxcbitcXHR7IDIwODE5NzkxMjFVLCA5ODFVLCAzMDQxNDg2NDQ5VSB9LFxcbitcXHR7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LFxcbitcXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxcbitcXHR7ICA1OTUwMDMxMDJVLCA1MzRVLCAgMzY2Nzk0MTA5VSB9LFxcbitcXHR7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LFxcbitcXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxcbitcXHR7ICA3MDQwOTY1MjBVLCA1MThVLCA0MTM5NDkzODUyVSB9LFxcbitcXHR7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LFxcbitcXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxcbitcXHR7ICA4NTU1NzI5OTJVLCA3NjFVLCAxNDcyOTc0Nzg3VSB9LFxcbitcXHR7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LFxcbitcXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxcbitcXHR7ICA2OTI3MTE5NzNVLCA3NzhVLCAxMzgyMzYxOTQ3VSB9LFxcbitcXHR7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LFxcbitcXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxcbitcXHR7IDEyMjI1OTI5MjBVLCA3NDNVLCAzNDY2NzI2NjY3VSB9LFxcbitcXHR7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LFxcbitcXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxcbitcXHR7ICA3MzU2NzU5OTNVLCA5OTBVLCAxMjk0MjM5OTg5VSB9LFxcbitcXHR7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LFxcbitcXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxcbitcXHR7ICAzNjgyMzQ3MDBVLCA3MzFVLCAyOTEzODc1MDg0VSB9LFxcbitcXHR7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LFxcbitcXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxcbitcXHR7IDEzMTQ5ODcyOTdVLCA4NDBVLCAxODAxMTE0MTM2VSB9LFxcbitcXHR7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LFxcbitcXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxcbitcXHR7IDE4NDM3NTQ0OTZVLCA2NTNVLCAyNTYyMDkyMTUyVSB9LFxcbitcXHR7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LFxcbitcXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxcbitcXHR7ICA2MDA3MDIyMDlVLCA3NThVLCAgNTg0OTc5OTg2VSB9LFxcbitcXHR7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LFxcbitcXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxcbitcXHR7ICA0MjA0ODAwMzdVLCA3NDlVLCAzNDMwMDEwODY2VSB9LFxcbitcXHR7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LFxcbitcXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxcbitcXHR7IDIwMTI2MDg2NjlVLCA1MDZVLCAzMzYyNjI4OTczVSB9LFxcbitcXHR7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LFxcbitcXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxcbitcXHR7IDEyMjM4MDA1NTBVLCA1MzlVLCAzOTU0MjI5NTE3VSB9LFxcbitcXHR7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LFxcbitcXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxcbitcXHR7IDE2NDYzNTYwOTlVLCA4NzRVLCAgOTY1OTg4MjgwVSB9LFxcbitcXHR7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LFxcbitcXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxcbitcXHR7ICAzOTI2MDk3NDRVLCA3ODNVLCAxNjM2MDgzMjk1VSB9LFxcbitcXHR7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LFxcbitcXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxcbitcXHR7IDEyMjAwOTA5NDZVLCA3ODBVLCAxMzE2OTIyODEyVSB9LFxcbitcXHR7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LFxcbitcXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxcbitcXHR7ICA1MjM0MzA5NTFVLCA1NDhVLCAyNTUyMzkyMzA0VSB9LFxcbitcXHR7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LFxcbitcXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxcbitcXHR7IDE5ODYyNTc3MjlVLCA5MzFVLCAgOTM1MDEzOTYyVSB9LFxcbitcXHR7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LFxcbit9O1xcbitcXG4rc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUsIHUzMiBzZWVkKVxcbit7XFxuKyNkZWZpbmUgTENHKHgpXFx0ICgoeCkgKiA2OTA2OVUpXFx0Lyogc3VwZXItZHVwZXIgTENHICovXFxuK1xcdHN0YXRlLVxcdTAwM2VzMSA9IF9fc2VlZChMQ0coc2VlZCksICAgICAgICAyVSk7XFxuK1xcdHN0YXRlLVxcdTAwM2VzMiA9IF9fc2VlZChMQ0coc3RhdGUtXFx1MDAzZXMxKSwgICA4VSk7XFxuK1xcdHN0YXRlLVxcdTAwM2VzMyA9IF9fc2VlZChMQ0coc3RhdGUtXFx1MDAzZXMyKSwgIDE2VSk7XFxuK1xcdHN0YXRlLVxcdTAwM2VzNCA9IF9fc2VlZChMQ0coc3RhdGUtXFx1MDAzZXMzKSwgMTI4VSk7XFxuK31cXG4rXFxuK3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KHN0cnVjdCBrdW5pdCAqdGVzdClcXG4re1xcbitcXHRpbnQgaTtcXG4rXFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcXG4rXFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QxKTsgaSsrKSB7XFxuK1xcdFxcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFxcdTAwMjZzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7XFxuK1xcdFxcdHByYW5kb21fd2FybXVwKFxcdTAwMjZzdGF0ZSk7XFxuK1xcdFxcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MVtpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFxcdTAwMjZzdGF0ZSkpO1xcbitcXHR9XFxuK31cXG4rXFxuK3N0YXRpYyB2b2lkIHRlc3RfcHJhbmRvbV90YXVzMTEzKHN0cnVjdCBrdW5pdCAqdGVzdClcXG4re1xcbitcXHRpbnQgaSwgajtcXG4rXFx0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcXG4rXFxuK1xcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QyKTsgaSsrKSB7XFxuK1xcdFxcdHByYW5kb21fc3RhdGVfdGVzdF9zZWVkKFxcdTAwMjZzdGF0ZSwgdGVzdDJbaV0uc2VlZCk7XFxuK1xcdFxcdHByYW5kb21fd2FybXVwKFxcdTAwMjZzdGF0ZSk7XFxuK1xcbitcXHRcXHRmb3IgKGogPSAwOyBqIFxcdTAwM2MgdGVzdDJbaV0uaXRlcmF0aW9uIC0gMTsgaisrKVxcbitcXHRcXHRcXHRwcmFuZG9tX3UzMl9zdGF0ZShcXHUwMDI2c3RhdGUpO1xcbitcXG4rXFx0XFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIHRlc3QyW2ldLnJlc3VsdCwgcHJhbmRvbV91MzJfc3RhdGUoXFx1MDAyNnN0YXRlKSk7XFxuK1xcdH1cXG4rfVxcbitcXG4rc3RhdGljIHN0cnVjdCBrdW5pdF9jYXNlIHByYW5kb21fdGVzdF9jYXNlc1tdID0ge1xcbitcXHRLVU5JVF9DQVNFKHRlc3RfcHJhbmRvbV9zZWVkX2JvdW5kYXJ5KSxcXG4rXFx0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksXFxuK1xcdHt9XFxuK307XFxuK1xcbitzdGF0aWMgc3RydWN0IGt1bml0X3N1aXRlIHByYW5kb21fdGVzdF9zdWl0ZSA9IHtcXG4rXFx0Lm5hbWUgPSBcXFwicHJhbmRvbVxcXCIsXFxuK1xcdC50ZXN0X2Nhc2VzID0gcHJhbmRvbV90ZXN0X2Nhc2VzLFxcbit9O1xcbitcXG4ra3VuaXRfdGVzdF9zdWl0ZShwcmFuZG9tX3Rlc3Rfc3VpdGUpO1xcbitcXG4rTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJLVW5pdCB0ZXN0IGZvciBwcmFuZG9tXFxcIik7XFxuK01PRFVMRV9MSUNFTlNFKFxcXCJHUExcXFwiKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDM6NTM6MDAuNDA0MzgzMDM2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODg4NTU5MDk5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDM3ZDczOGFlNmRiYzY3YTUzNGEyMzc3NWY1ODlkYTU0YTIyYjI0ZDdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1biAzMCAwMzo1Mjo1OCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2xpYi9LY29uZmlnIGIvbGliL0tjb25maWdcbmluZGV4IDI5MjM5MjRiZWE3OGNiLi41ZjE4NWU5ZjFlOTJiZCAxMDA2NDRcbi0tLSBhL2xpYi9LY29uZmlnXG4rKysgYi9saWIvS2NvbmZpZ1xuQEAgLTE1NiwxMiArMTU2LDYgQEAgY29uZmlnIEFVRElUX0NPTVBBVF9HRU5FUklDXG4gXHRkZXBlbmRzIG9uIEFVRElUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IEFVRElUX0FSQ0hfQ09NUEFUX0dFTkVSSUMgXHUwMDI2XHUwMDI2IENPTVBBVFxuIFx0ZGVmYXVsdCB5XG4gXG4tY29uZmlnIFJBTkRPTTMyX1NFTEZURVNUXG4tXHRib29sIFwiUFJORyBwZXJmb3JtIHNlbGYgdGVzdCBvbiBpbml0XCJcbi1cdGhlbHBcbi1cdCAgVGhpcyBvcHRpb24gZW5hYmxlcyB0aGUgMzIgYml0IFBSTkcgbGlicmFyeSBmdW5jdGlvbnMgdG8gcGVyZm9ybSBhXG4tXHQgIHNlbGYgdGVzdCBvbiBpbml0aWFsaXphdGlvbi5cbi1cbiAjXG4gIyBjb21wcmVzc2lvbiBzdXBwb3J0IGlzIHNlbGVjdCdlZCBpZiBuZWVkZWRcbiAjXG5kaWZmIC0tZ2l0IGEvbGliL0tjb25maWcuZGVidWcgYi9saWIvS2NvbmZpZy5kZWJ1Z1xuaW5kZXggYmEzNjkzOWZkYTc5YmYuLjAyMTRhNTg1OTNkN2ZiIDEwMDY0NFxuLS0tIGEvbGliL0tjb25maWcuZGVidWdcbisrKyBiL2xpYi9LY29uZmlnLmRlYnVnXG5AQCAtMzM1NCw2ICszMzU0LDE1IEBAIGNvbmZpZyBQUklNRV9OVU1CRVJTX0tVTklUX1RFU1RcbiBcbiBcdCAgSWYgdW5zdXJlLCBzYXkgTlxuIFxuK2NvbmZpZyBQUkFORE9NX0tVTklUX1RFU1RcbitcdHRyaXN0YXRlIFwiS1VuaXQgdGVzdCBmb3IgcHJhbmRvbVwiIGlmICFLVU5JVF9BTExfVEVTVFNcbitcdGRlcGVuZHMgb24gS1VOSVRcbitcdGRlZmF1bHQgS1VOSVRfQUxMX1RFU1RTXG4rXHRoZWxwXG4rXHQgIEVuYWJsZSB0aGlzIG9wdGlvbiB0byB0ZXN0IHRoZSBwcmFuZG9tIGZ1bmN0aW9ucyBhdCBydW50aW1lLlxuK1xuK1x0ICBJZiB1bnN1cmUsIHNheSBOXG4rXG4gZW5kaWYgIyBSVU5USU1FX1RFU1RJTkdfTUVOVVxuIFxuIGNvbmZpZyBBUkNIX1VTRV9NRU1URVNUXG5kaWZmIC0tZ2l0IGEvbGliL3JhbmRvbTMyLmMgYi9saWIvcmFuZG9tMzIuY1xuaW5kZXggMjRlN2FjZDkzNDNmNjguLmRhZDkwMjE5YzM1MTFkIDEwMDY0NFxuLS0tIGEvbGliL3JhbmRvbTMyLmNcbisrKyBiL2xpYi9yYW5kb20zMi5jXG5AQCAtNDEsNiArNDEsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2JpdG9wcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvdW5hbGlnbmVkLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NrdW5pdC92aXNpYmlsaXR5LmhcdTAwM2VcbiBcbiAvKipcbiAgKlx0cHJhbmRvbV91MzJfc3RhdGUgLSBzZWVkZWQgcHNldWRvLXJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yLlxuQEAgLTkyLDcgKzkzLDE0IEBAIHZvaWQgcHJhbmRvbV9ieXRlc19zdGF0ZShzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdm9pZCAqYnVmLCBzaXplX3QgYnl0ZXMpXG4gfVxuIEVYUE9SVF9TWU1CT0wocHJhbmRvbV9ieXRlc19zdGF0ZSk7XG4gXG4tc3RhdGljIHZvaWQgcHJhbmRvbV93YXJtdXAoc3RydWN0IHJuZF9zdGF0ZSAqc3RhdGUpXG4rLypcbisgKiBPbmx5IGRlY2xhcmVkIGhlcmUgc28gdGhhdCBpdCBoYXMgYSBwcm90b3R5cGUgd2hlbiBtYWRlXG4rICogbm9uLXN0YXRpYyBmb3IgS1VuaXQgdGVzdGluZyAoYXZvaWRzIC1XbWlzc2luZy1wcm90b3R5cGVzKS5cbisgKi9cbisjaWYgSVNfRU5BQkxFRChDT05GSUdfS1VOSVQpXG4rdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4rI2VuZGlmXG4rVklTSUJMRV9JRl9LVU5JVCB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuIHtcbiBcdC8qIENhbGxpbmcgUk5HIHRlbiB0aW1lcyB0byBzYXRpc2Z5IHJlY3VycmVuY2UgY29uZGl0aW9uICovXG4gXHRwcmFuZG9tX3UzMl9zdGF0ZShzdGF0ZSk7XG5AQCAtMTA2LDYgKzExNCw3IEBAIHN0YXRpYyB2b2lkIHByYW5kb21fd2FybXVwKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlKVxuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIFx0cHJhbmRvbV91MzJfc3RhdGUoc3RhdGUpO1xuIH1cbitFWFBPUlRfU1lNQk9MX0lGX0tVTklUKHByYW5kb21fd2FybXVwKTtcbiBcbiB2b2lkIHByYW5kb21fc2VlZF9mdWxsX3N0YXRlKHN0cnVjdCBybmRfc3RhdGUgX19wZXJjcHUgKnBjcHVfc3RhdGUpXG4ge1xuQEAgLTEyNSwxNzYgKzEzNCwzIEBAIHZvaWQgcHJhbmRvbV9zZWVkX2Z1bGxfc3RhdGUoc3RydWN0IHJuZF9zdGF0ZSBfX3BlcmNwdSAqcGNwdV9zdGF0ZSlcbiBcdH1cbiB9XG4gRVhQT1JUX1NZTUJPTChwcmFuZG9tX3NlZWRfZnVsbF9zdGF0ZSk7XG4tXG4tI2lmZGVmIENPTkZJR19SQU5ET00zMl9TRUxGVEVTVFxuLXN0YXRpYyBzdHJ1Y3QgcHJhbmRvbV90ZXN0MSB7XG4tXHR1MzIgc2VlZDtcbi1cdHUzMiByZXN1bHQ7XG4tfSB0ZXN0MVtdID0ge1xuLVx0eyAxVSwgMzQ4NDM1MTY4NVUgfSxcbi1cdHsgMlUsIDI2MjMxMzAwNTlVIH0sXG4tXHR7IDNVLCAzMTI1MTMzODkzVSB9LFxuLVx0eyA0VSwgIDk4NDg0NzI1NFUgfSxcbi19O1xuLVxuLXN0YXRpYyBzdHJ1Y3QgcHJhbmRvbV90ZXN0MiB7XG4tXHR1MzIgc2VlZDtcbi1cdHUzMiBpdGVyYXRpb247XG4tXHR1MzIgcmVzdWx0O1xuLX0gdGVzdDJbXSA9IHtcbi1cdC8qIFRlc3QgY2FzZXMgYWdhaW5zdCB0YXVzMTEzIGZyb20gR1NMIGxpYnJhcnkuICovXG4tXHR7ICA5MzE1NTc2NTZVLCA5NTlVLCAyOTc1NTkzNzgyVSB9LFxuLVx0eyAxMzM5NjkzMjk1VSwgODc2VSwgMzg4Nzc3NjUzMlUgfSxcbi1cdHsgMTU0NTU1NjI4NVUsIDk2MVUsIDE2MTU1Mzg4MzNVIH0sXG4tXHR7ICA2MDE3MzA3NzZVLCA3MjNVLCAxNzc2MTYyNjUxVSB9LFxuLVx0eyAxMDI3NTE2MDQ3VSwgNjg3VSwgIDUxMTk4MzA3OVUgfSxcbi1cdHsgIDQxNjUyNjI5OFUsIDcwMFUsICA5MTYxNTY1NTJVIH0sXG4tXHR7IDEzOTU1MjIwMzJVLCA2NTJVLCAyMjIyMDYzNjc2VSB9LFxuLVx0eyAgMzY2MjIxNDQzVSwgNjE3VSwgMjk5Mjg1Nzc2M1UgfSxcbi1cdHsgMTUzOTgzNjk2NVUsIDcxNFUsIDM3ODMyNjU3MjVVIH0sXG4tXHR7ICA1NTYyMDY2NzFVLCA5OTRVLCAgNzk5NjI2NDU5VSB9LFxuLVx0eyAgNjg0OTA3MjE4VSwgNzk5VSwgIDM2Nzc4OTQ5MVUgfSxcbi1cdHsgMjEyMTIzMDcwMVUsIDkzMVUsIDIxMTU0NjcwMDFVIH0sXG4tXHR7IDE2Njg1MTY0NTFVLCA2NDRVLCAzNjIwNTkwNjg1VSB9LFxuLVx0eyAgNzY4MDQ2MDY2VSwgODgzVSwgMjAzNDA3NzM5MFUgfSxcbi1cdHsgMTk4OTE1OTEzNlUsIDgzM1UsIDExOTU3NjczMDVVIH0sXG4tXHR7ICA1MzY1ODUxNDVVLCA5OTZVLCAzNTc3MjU5MjA0VSB9LFxuLVx0eyAxMDA4MTI5MzczVSwgNjQyVSwgMTQ3ODA4MDc3NlUgfSxcbi1cdHsgMTc0MDc3NTYwNFUsIDkzOVUsIDEyNjQ5ODAzNzJVIH0sXG4tXHR7IDE5Njc4ODMxNjNVLCA1MDhVLCAgIDEwNzM0NjI0VSB9LFxuLVx0eyAxOTIzMDE5Njk3VSwgNzMwVSwgMzgyMTQxOTYyOVUgfSxcbi1cdHsgIDQ0MjA3OTkzMlUsIDU2MFUsIDM0NDAwMzIzNDNVIH0sXG4tXHR7IDE5NjEzMDI3MTRVLCA4NDVVLCAgODQxOTYyNTcyVSB9LFxuLVx0eyAyMDMwMjA1OTY0VSwgOTYyVSwgMTMyNTE0NDIyN1UgfSxcbi1cdHsgMTE2MDQwNzUyOVUsIDUwN1UsICAyNDA5NDA4NThVIH0sXG4tXHR7ICA2MzU0ODI1MDJVLCA3NzlVLCA0MjAwNDg5NzQ2VSB9LFxuLVx0eyAxMjUyNzg4OTMxVSwgNjk5VSwgIDg2NzE5NTQzNFUgfSxcbi1cdHsgMTk2MTgxNzEzMVUsIDcxOVUsICA2NjgyMzc2NTdVIH0sXG4tXHR7IDEwNzE0NjgyMTZVLCA5ODNVLCAgOTE3ODc2NjMwVSB9LFxuLVx0eyAxMjgxODQ4MzY3VSwgOTMyVSwgMTAwMzEwMDAzOVUgfSxcbi1cdHsgIDU4MjUzNzExOVUsIDc4MFUsIDExMjcyNzM3NzhVIH0sXG4tXHR7IDE5NzM2NzI3NzdVLCA4NTNVLCAxMDcxMzY4ODcyVSB9LFxuLVx0eyAxODk2NzU2OTk2VSwgNzYyVSwgMTEyNzg1MTA1NVUgfSxcbi1cdHsgIDg0NzkxNzA1NFUsIDUwMFUsIDE3MTc0OTkwNzVVIH0sXG4tXHR7IDEyNDA1MjA1MTBVLCA5NTFVLCAyODQ5NTc2NjU3VSB9LFxuLVx0eyAxNjg1MDcxNjgyVSwgNTY3VSwgMTk2MTgxMDM5NlUgfSxcbi1cdHsgMTUxNjIzMjEyOVUsIDU1N1UsICAgIDMxNzM4NzdVIH0sXG4tXHR7IDEyMDgxMTg5MDNVLCA2MTJVLCAxNjEzMTQ1MDIyVSB9LFxuLVx0eyAxODE3MjY5OTI3VSwgNjkzVSwgNDI3OTEyMjU3M1UgfSxcbi1cdHsgMTUxMDA5MTcwMVUsIDcxN1UsICA2MzgxOTEyMjlVIH0sXG4tXHR7ICAzNjU5MTY4NTBVLCA4MDdVLCAgNjAwNDI0MzE0VSB9LFxuLVx0eyAgMzk5MzI0MzU5VSwgNzAyVSwgMTgwMzU5ODExNlUgfSxcbi1cdHsgMTMxODQ4MDI3NFUsIDc3OVUsIDIwNzQyMzcwMjJVIH0sXG4tXHR7ICA2OTc3NTgxMTVVLCA4NDBVLCAxNDgzNjM5NDAyVSB9LFxuLVx0eyAxNjk2NTA3NzczVSwgODQwVSwgIDU3NzQxNTQ0N1UgfSxcbi1cdHsgMjA4MTk3OTEyMVUsIDk4MVUsIDMwNDE0ODY0NDlVIH0sXG4tXHR7ICA5NTU2NDY2ODdVLCA3NDJVLCAzODQ2NDk0MzU3VSB9LFxuLVx0eyAxMjUwNjgzNTA2VSwgNzQ5VSwgIDgzNjQxOTg1OVUgfSxcbi1cdHsgIDU5NTAwMzEwMlUsIDUzNFUsICAzNjY3OTQxMDlVIH0sXG4tXHR7ICAgNDc0ODUzMzhVLCA1NThVLCAzNTIxMTIwODM0VSB9LFxuLVx0eyAgNjE5NDMzNDc5VSwgNjEwVSwgMzk5MTc4Mzg3NVUgfSxcbi1cdHsgIDcwNDA5NjUyMFUsIDUxOFUsIDQxMzk0OTM4NTJVIH0sXG4tXHR7IDE3MTIyMjQ5ODRVLCA2MDZVLCAyMzkzMzEyMDAzVSB9LFxuLVx0eyAxMzE4MjMzMTUyVSwgOTIyVSwgMzg4MDM2MTEzNFUgfSxcbi1cdHsgIDg1NTU3Mjk5MlUsIDc2MVUsIDE0NzI5NzQ3ODdVIH0sXG4tXHR7ICAgNjQ3MjE0MjFVLCA3MDNVLCAgNjgzODYwNTUwVSB9LFxuLVx0eyAgNjc4OTMxNzU4VSwgODQwVSwgIDM4MDYxNjA0M1UgfSxcbi1cdHsgIDY5MjcxMTk3M1UsIDc3OFUsIDEzODIzNjE5NDdVIH0sXG4tXHR7ICA2Nzc3MDM2MTlVLCA1MzBVLCAyODI2OTE0MTYxVSB9LFxuLVx0eyAgIDkyMzkzMjIzVSwgNTg2VSwgMTUyMjEyODQ3MVUgfSxcbi1cdHsgMTIyMjU5MjkyMFUsIDc0M1UsIDM0NjY3MjY2NjdVIH0sXG4tXHR7ICAzNTgyODg5ODZVLCA2OTVVLCAxMDkxOTU2OTk4VSB9LFxuLVx0eyAxOTM1MDU2OTQ1VSwgOTU4VSwgIDUxNDg2NDQ3N1UgfSxcbi1cdHsgIDczNTY3NTk5M1UsIDk5MFUsIDEyOTQyMzk5ODlVIH0sXG4tXHR7IDE1NjAwODk0MDJVLCA4OTdVLCAyMjM4NTUxMjg3VSB9LFxuLVx0eyAgIDcwNjE2MzYxVSwgODI5VSwgICAyMjQ4MzA5OFUgfSxcbi1cdHsgIDM2ODIzNDcwMFUsIDczMVUsIDI5MTM4NzUwODRVIH0sXG4tXHR7ICAgMjAyMjExOTBVLCA4NzlVLCAxNTY0MTUyOTcwVSB9LFxuLVx0eyAgNTM5NDQ0NjU0VSwgNjgyVSwgMTgzNTE0MTI1OVUgfSxcbi1cdHsgMTMxNDk4NzI5N1UsIDg0MFUsIDE4MDExMTQxMzZVIH0sXG4tXHR7IDIwMTkyOTU1NDRVLCA2NDVVLCAzMjg2NDM4OTMwVSB9LFxuLVx0eyAgNDY5MDIzODM4VSwgNzE2VSwgMTYzNzkxODIwMlUgfSxcbi1cdHsgMTg0Mzc1NDQ5NlUsIDY1M1UsIDI1NjIwOTIxNTJVIH0sXG4tXHR7ICA0MDA2NzIwMzZVLCA4MDlVLCA0MjY0MjEyNzg1VSB9LFxuLVx0eyAgNDA0NzIyMjQ5VSwgOTY1VSwgMjcwNDExNjk5OVUgfSxcbi1cdHsgIDYwMDcwMjIwOVUsIDc1OFUsICA1ODQ5Nzk5ODZVIH0sXG4tXHR7ICA1MTk5NTM5NTRVLCA2NjdVLCAyNTc0NDM2MjM3VSB9LFxuLVx0eyAxNjU4MDcxMTI2VSwgNjk0VSwgMjIxNDU2OTQ5MFUgfSxcbi1cdHsgIDQyMDQ4MDAzN1UsIDc0OVUsIDM0MzAwMTA4NjZVIH0sXG4tXHR7ICA2OTAxMDM2NDdVLCA5NjlVLCAzNzAwNzU4MDgzVSB9LFxuLVx0eyAxMDI5NDI0Nzk5VSwgOTM3VSwgMzc4Nzc0Njg0MVUgfSxcbi1cdHsgMjAxMjYwODY2OVUsIDUwNlUsIDMzNjI2Mjg5NzNVIH0sXG4tXHR7IDE1MzU0MzI4ODdVLCA5OThVLCAgIDQyNjEwOTQzVSB9LFxuLVx0eyAxMzMwNjM1NTMzVSwgODU3VSwgMzA0MDgwNjUwNFUgfSxcbi1cdHsgMTIyMzgwMDU1MFUsIDUzOVUsIDM5NTQyMjk1MTdVIH0sXG4tXHR7IDEzMjI0MTE1MzdVLCA2ODBVLCAzMjIzMjUwMzI0VSB9LFxuLVx0eyAxODc3ODQ3ODk4VSwgOTQ1VSwgMjkxNTE0NzE0M1UgfSxcbi1cdHsgMTY0NjM1NjA5OVUsIDg3NFUsICA5NjU5ODgyODBVIH0sXG4tXHR7ICA4MDU2ODc1MzZVLCA3NDRVLCA0MDMyMjc3OTIwVSB9LFxuLVx0eyAxOTQ4MDkzMjEwVSwgNjMzVSwgMTM0NjU5NzY4NFUgfSxcbi1cdHsgIDM5MjYwOTc0NFUsIDc4M1UsIDE2MzYwODMyOTVVIH0sXG4tXHR7ICA2OTAyNDEzMDRVLCA3NzBVLCAxMjAxMDMxMjk4VSB9LFxuLVx0eyAxMzYwMzAyOTY1VSwgNjk2VSwgMTY2NTM5NDQ2MVUgfSxcbi1cdHsgMTIyMDA5MDk0NlUsIDc4MFUsIDEzMTY5MjI4MTJVIH0sXG4tXHR7ICA0NDcwOTIyNTFVLCA1MDBVLCAzNDM4NzQzMzc1VSB9LFxuLVx0eyAxNjEzODY4NzkxVSwgNTkyVSwgIDgyODU0Njg4M1UgfSxcbi1cdHsgIDUyMzQzMDk1MVUsIDU0OFUsIDI1NTIzOTIzMDRVIH0sXG4tXHR7ICA3MjY2OTI4OTlVLCA4MTBVLCAxNjU2ODcyODY3VSB9LFxuLVx0eyAxMzY0MzQwMDIxVSwgODM2VSwgMzcxMDUxMzQ4NlUgfSxcbi1cdHsgMTk4NjI1NzcyOVUsIDkzMVUsICA5MzUwMTM5NjJVIH0sXG4tXHR7ICA0MDc5ODM5NjRVLCA5MjFVLCAgNzI4NzY3MDU5VSB9LFxuLX07XG4tXG4tc3RhdGljIHZvaWQgcHJhbmRvbV9zdGF0ZV9zZWxmdGVzdF9zZWVkKHN0cnVjdCBybmRfc3RhdGUgKnN0YXRlLCB1MzIgc2VlZClcbi17XG4tI2RlZmluZSBMQ0coeClcdCAoKHgpICogNjkwNjlVKVx0Lyogc3VwZXItZHVwZXIgTENHICovXG4tXHRzdGF0ZS1cdTAwM2VzMSA9IF9fc2VlZChMQ0coc2VlZCksICAgICAgICAyVSk7XG4tXHRzdGF0ZS1cdTAwM2VzMiA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczEpLCAgIDhVKTtcbi1cdHN0YXRlLVx1MDAzZXMzID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMiksICAxNlUpO1xuLVx0c3RhdGUtXHUwMDNlczQgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMzKSwgMTI4VSk7XG4tfVxuLVxuLXN0YXRpYyBpbnQgX19pbml0IHByYW5kb21fc3RhdGVfc2VsZnRlc3Qodm9pZClcbi17XG4tXHRpbnQgaSwgaiwgZXJyb3JzID0gMCwgcnVucyA9IDA7XG4tXHRib29sIGVycm9yID0gZmFsc2U7XG4tXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKHRlc3QxKTsgaSsrKSB7XG4tXHRcdHN0cnVjdCBybmRfc3RhdGUgc3RhdGU7XG4tXG4tXHRcdHByYW5kb21fc3RhdGVfc2VsZnRlc3Rfc2VlZChcdTAwMjZzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7XG4tXHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbi1cbi1cdFx0aWYgKHRlc3QxW2ldLnJlc3VsdCAhPSBwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSkpXG4tXHRcdFx0ZXJyb3IgPSB0cnVlO1xuLVx0fVxuLVxuLVx0aWYgKGVycm9yKVxuLVx0XHRwcl93YXJuKFwicHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgZmFpbGVkXFxuXCIpO1xuLVx0ZWxzZVxuLVx0XHRwcl9pbmZvKFwicHJhbmRvbTogc2VlZCBib3VuZGFyeSBzZWxmIHRlc3QgcGFzc2VkXFxuXCIpO1xuLVxuLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0ZXN0Mik7IGkrKykge1xuLVx0XHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuLVxuLVx0XHRwcmFuZG9tX3N0YXRlX3NlbGZ0ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QyW2ldLnNlZWQpO1xuLVx0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGorKylcbi1cdFx0XHRwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSk7XG4tXG4tXHRcdGlmICh0ZXN0MltpXS5yZXN1bHQgIT0gcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKVxuLVx0XHRcdGVycm9ycysrO1xuLVxuLVx0XHRydW5zKys7XG4tXHRcdGNvbmRfcmVzY2hlZCgpO1xuLVx0fVxuLVxuLVx0aWYgKGVycm9ycylcbi1cdFx0cHJfd2FybihcInByYW5kb206ICVkLyVkIHNlbGYgdGVzdHMgZmFpbGVkXFxuXCIsIGVycm9ycywgcnVucyk7XG4tXHRlbHNlXG4tXHRcdHByX2luZm8oXCJwcmFuZG9tOiAlZCBzZWxmIHRlc3RzIHBhc3NlZFxcblwiLCBydW5zKTtcbi1cdHJldHVybiAwO1xuLX1cbi1jb3JlX2luaXRjYWxsKHByYW5kb21fc3RhdGVfc2VsZnRlc3QpO1xuLSNlbmRpZlxuZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9NYWtlZmlsZSBiL2xpYi90ZXN0cy9NYWtlZmlsZVxuaW5kZXggNjAxZGJhNGI3ZDk2NmQuLjM5ZDI4M2IyNmZlMmI0IDEwMDY0NFxuLS0tIGEvbGliL3Rlc3RzL01ha2VmaWxlXG4rKysgYi9saWIvdGVzdHMvTWFrZWZpbGVcbkBAIC00OSw1ICs0OSw2IEBAIG9iai0kKENPTkZJR19TVFJJTkdfSEVMUEVSU19LVU5JVF9URVNUKSArPSBzdHJpbmdfaGVscGVyc19rdW5pdC5vXG4gb2JqLSQoQ09ORklHX1VTRVJDT1BZX0tVTklUX1RFU1QpICs9IHVzZXJjb3B5X2t1bml0Lm9cbiBvYmotJChDT05GSUdfVVRJTF9NQUNST1NfS1VOSVQpICs9IHV0aWxfbWFjcm9zX2t1bml0Lm9cbiBvYmotJChDT05GSUdfUkFURUxJTUlUX0tVTklUX1RFU1QpICs9IHRlc3RfcmF0ZWxpbWl0Lm9cbitvYmotJChDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUKSArPSByYW5kb20zMl9rdW5pdC5vXG4gXG4gb2JqLSQoQ09ORklHX1RFU1RfUlVOVElNRV9NT0RVTEUpXHRcdCs9IG1vZHVsZS9cbmRpZmYgLS1naXQgYS9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuYyBiL2xpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jXG5uZXcgZmlsZSBtb2RlIDEwMDY0NFxuaW5kZXggMDAwMDAwMDAwMDAwMDAuLjQzNjQzNTAyNjVjMTdjXG4tLS0gL2Rldi9udWxsXG4rKysgYi9saWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY1xuQEAgLTAsMCArMSwxODEgQEBcbisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuKy8qXG4rICogVGVzdCBjYXNlcyBmb3IgcmFuZG9tMzIgZnVuY3Rpb25zLlxuKyAqL1xuK1xuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3ByYW5kb20uaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2t1bml0L3Rlc3QuaFx1MDAzZVxuK1xuKy8qIHByYW5kb21fd2FybXVwKCkgaXMgc3RhdGljIGluIGxpYi9yYW5kb20zMi5jOyBleHBvc2VkIGZvciB0ZXN0aW5nIG9ubHkuICovXG4rdm9pZCBwcmFuZG9tX3dhcm11cChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSk7XG4rXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QxIHtcbitcdHUzMiBzZWVkO1xuK1x0dTMyIHJlc3VsdDtcbit9IHRlc3QxW10gPSB7XG4rXHR7IDFVLCAzNDg0MzUxNjg1VSB9LFxuK1x0eyAyVSwgMjYyMzEzMDA1OVUgfSxcbitcdHsgM1UsIDMxMjUxMzM4OTNVIH0sXG4rXHR7IDRVLCAgOTg0ODQ3MjU0VSB9LFxuK307XG4rXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBwcmFuZG9tX3Rlc3QyIHtcbitcdHUzMiBzZWVkO1xuK1x0dTMyIGl0ZXJhdGlvbjtcbitcdHUzMiByZXN1bHQ7XG4rfSB0ZXN0MltdID0ge1xuK1x0LyogVGVzdCBjYXNlcyBhZ2FpbnN0IHRhdXMxMTMgZnJvbSBHU0wgbGlicmFyeS4gKi9cbitcdHsgIDkzMTU1NzY1NlUsIDk1OVUsIDI5NzU1OTM3ODJVIH0sXG4rXHR7IDEzMzk2OTMyOTVVLCA4NzZVLCAzODg3Nzc2NTMyVSB9LFxuK1x0eyAxNTQ1NTU2Mjg1VSwgOTYxVSwgMTYxNTUzODgzM1UgfSxcbitcdHsgIDYwMTczMDc3NlUsIDcyM1UsIDE3NzYxNjI2NTFVIH0sXG4rXHR7IDEwMjc1MTYwNDdVLCA2ODdVLCAgNTExOTgzMDc5VSB9LFxuK1x0eyAgNDE2NTI2Mjk4VSwgNzAwVSwgIDkxNjE1NjU1MlUgfSxcbitcdHsgMTM5NTUyMjAzMlUsIDY1MlUsIDIyMjIwNjM2NzZVIH0sXG4rXHR7ICAzNjYyMjE0NDNVLCA2MTdVLCAyOTkyODU3NzYzVSB9LFxuK1x0eyAxNTM5ODM2OTY1VSwgNzE0VSwgMzc4MzI2NTcyNVUgfSxcbitcdHsgIDU1NjIwNjY3MVUsIDk5NFUsICA3OTk2MjY0NTlVIH0sXG4rXHR7ICA2ODQ5MDcyMThVLCA3OTlVLCAgMzY3Nzg5NDkxVSB9LFxuK1x0eyAyMTIxMjMwNzAxVSwgOTMxVSwgMjExNTQ2NzAwMVUgfSxcbitcdHsgMTY2ODUxNjQ1MVUsIDY0NFUsIDM2MjA1OTA2ODVVIH0sXG4rXHR7ICA3NjgwNDYwNjZVLCA4ODNVLCAyMDM0MDc3MzkwVSB9LFxuK1x0eyAxOTg5MTU5MTM2VSwgODMzVSwgMTE5NTc2NzMwNVUgfSxcbitcdHsgIDUzNjU4NTE0NVUsIDk5NlUsIDM1NzcyNTkyMDRVIH0sXG4rXHR7IDEwMDgxMjkzNzNVLCA2NDJVLCAxNDc4MDgwNzc2VSB9LFxuK1x0eyAxNzQwNzc1NjA0VSwgOTM5VSwgMTI2NDk4MDM3MlUgfSxcbitcdHsgMTk2Nzg4MzE2M1UsIDUwOFUsICAgMTA3MzQ2MjRVIH0sXG4rXHR7IDE5MjMwMTk2OTdVLCA3MzBVLCAzODIxNDE5NjI5VSB9LFxuK1x0eyAgNDQyMDc5OTMyVSwgNTYwVSwgMzQ0MDAzMjM0M1UgfSxcbitcdHsgMTk2MTMwMjcxNFUsIDg0NVUsICA4NDE5NjI1NzJVIH0sXG4rXHR7IDIwMzAyMDU5NjRVLCA5NjJVLCAxMzI1MTQ0MjI3VSB9LFxuK1x0eyAxMTYwNDA3NTI5VSwgNTA3VSwgIDI0MDk0MDg1OFUgfSxcbitcdHsgIDYzNTQ4MjUwMlUsIDc3OVUsIDQyMDA0ODk3NDZVIH0sXG4rXHR7IDEyNTI3ODg5MzFVLCA2OTlVLCAgODY3MTk1NDM0VSB9LFxuK1x0eyAxOTYxODE3MTMxVSwgNzE5VSwgIDY2ODIzNzY1N1UgfSxcbitcdHsgMTA3MTQ2ODIxNlUsIDk4M1UsICA5MTc4NzY2MzBVIH0sXG4rXHR7IDEyODE4NDgzNjdVLCA5MzJVLCAxMDAzMTAwMDM5VSB9LFxuK1x0eyAgNTgyNTM3MTE5VSwgNzgwVSwgMTEyNzI3Mzc3OFUgfSxcbitcdHsgMTk3MzY3Mjc3N1UsIDg1M1UsIDEwNzEzNjg4NzJVIH0sXG4rXHR7IDE4OTY3NTY5OTZVLCA3NjJVLCAxMTI3ODUxMDU1VSB9LFxuK1x0eyAgODQ3OTE3MDU0VSwgNTAwVSwgMTcxNzQ5OTA3NVUgfSxcbitcdHsgMTI0MDUyMDUxMFUsIDk1MVUsIDI4NDk1NzY2NTdVIH0sXG4rXHR7IDE2ODUwNzE2ODJVLCA1NjdVLCAxOTYxODEwMzk2VSB9LFxuK1x0eyAxNTE2MjMyMTI5VSwgNTU3VSwgICAgMzE3Mzg3N1UgfSxcbitcdHsgMTIwODExODkwM1UsIDYxMlUsIDE2MTMxNDUwMjJVIH0sXG4rXHR7IDE4MTcyNjk5MjdVLCA2OTNVLCA0Mjc5MTIyNTczVSB9LFxuK1x0eyAxNTEwMDkxNzAxVSwgNzE3VSwgIDYzODE5MTIyOVUgfSxcbitcdHsgIDM2NTkxNjg1MFUsIDgwN1UsICA2MDA0MjQzMTRVIH0sXG4rXHR7ICAzOTkzMjQzNTlVLCA3MDJVLCAxODAzNTk4MTE2VSB9LFxuK1x0eyAxMzE4NDgwMjc0VSwgNzc5VSwgMjA3NDIzNzAyMlUgfSxcbitcdHsgIDY5Nzc1ODExNVUsIDg0MFUsIDE0ODM2Mzk0MDJVIH0sXG4rXHR7IDE2OTY1MDc3NzNVLCA4NDBVLCAgNTc3NDE1NDQ3VSB9LFxuK1x0eyAyMDgxOTc5MTIxVSwgOTgxVSwgMzA0MTQ4NjQ0OVUgfSxcbitcdHsgIDk1NTY0NjY4N1UsIDc0MlUsIDM4NDY0OTQzNTdVIH0sXG4rXHR7IDEyNTA2ODM1MDZVLCA3NDlVLCAgODM2NDE5ODU5VSB9LFxuK1x0eyAgNTk1MDAzMTAyVSwgNTM0VSwgIDM2Njc5NDEwOVUgfSxcbitcdHsgICA0NzQ4NTMzOFUsIDU1OFUsIDM1MjExMjA4MzRVIH0sXG4rXHR7ICA2MTk0MzM0NzlVLCA2MTBVLCAzOTkxNzgzODc1VSB9LFxuK1x0eyAgNzA0MDk2NTIwVSwgNTE4VSwgNDEzOTQ5Mzg1MlUgfSxcbitcdHsgMTcxMjIyNDk4NFUsIDYwNlUsIDIzOTMzMTIwMDNVIH0sXG4rXHR7IDEzMTgyMzMxNTJVLCA5MjJVLCAzODgwMzYxMTM0VSB9LFxuK1x0eyAgODU1NTcyOTkyVSwgNzYxVSwgMTQ3Mjk3NDc4N1UgfSxcbitcdHsgICA2NDcyMTQyMVUsIDcwM1UsICA2ODM4NjA1NTBVIH0sXG4rXHR7ICA2Nzg5MzE3NThVLCA4NDBVLCAgMzgwNjE2MDQzVSB9LFxuK1x0eyAgNjkyNzExOTczVSwgNzc4VSwgMTM4MjM2MTk0N1UgfSxcbitcdHsgIDY3NzcwMzYxOVUsIDUzMFUsIDI4MjY5MTQxNjFVIH0sXG4rXHR7ICAgOTIzOTMyMjNVLCA1ODZVLCAxNTIyMTI4NDcxVSB9LFxuK1x0eyAxMjIyNTkyOTIwVSwgNzQzVSwgMzQ2NjcyNjY2N1UgfSxcbitcdHsgIDM1ODI4ODk4NlUsIDY5NVUsIDEwOTE5NTY5OThVIH0sXG4rXHR7IDE5MzUwNTY5NDVVLCA5NThVLCAgNTE0ODY0NDc3VSB9LFxuK1x0eyAgNzM1Njc1OTkzVSwgOTkwVSwgMTI5NDIzOTk4OVUgfSxcbitcdHsgMTU2MDA4OTQwMlUsIDg5N1UsIDIyMzg1NTEyODdVIH0sXG4rXHR7ICAgNzA2MTYzNjFVLCA4MjlVLCAgIDIyNDgzMDk4VSB9LFxuK1x0eyAgMzY4MjM0NzAwVSwgNzMxVSwgMjkxMzg3NTA4NFUgfSxcbitcdHsgICAyMDIyMTE5MFUsIDg3OVUsIDE1NjQxNTI5NzBVIH0sXG4rXHR7ICA1Mzk0NDQ2NTRVLCA2ODJVLCAxODM1MTQxMjU5VSB9LFxuK1x0eyAxMzE0OTg3Mjk3VSwgODQwVSwgMTgwMTExNDEzNlUgfSxcbitcdHsgMjAxOTI5NTU0NFUsIDY0NVUsIDMyODY0Mzg5MzBVIH0sXG4rXHR7ICA0NjkwMjM4MzhVLCA3MTZVLCAxNjM3OTE4MjAyVSB9LFxuK1x0eyAxODQzNzU0NDk2VSwgNjUzVSwgMjU2MjA5MjE1MlUgfSxcbitcdHsgIDQwMDY3MjAzNlUsIDgwOVUsIDQyNjQyMTI3ODVVIH0sXG4rXHR7ICA0MDQ3MjIyNDlVLCA5NjVVLCAyNzA0MTE2OTk5VSB9LFxuK1x0eyAgNjAwNzAyMjA5VSwgNzU4VSwgIDU4NDk3OTk4NlUgfSxcbitcdHsgIDUxOTk1Mzk1NFUsIDY2N1UsIDI1NzQ0MzYyMzdVIH0sXG4rXHR7IDE2NTgwNzExMjZVLCA2OTRVLCAyMjE0NTY5NDkwVSB9LFxuK1x0eyAgNDIwNDgwMDM3VSwgNzQ5VSwgMzQzMDAxMDg2NlUgfSxcbitcdHsgIDY5MDEwMzY0N1UsIDk2OVUsIDM3MDA3NTgwODNVIH0sXG4rXHR7IDEwMjk0MjQ3OTlVLCA5MzdVLCAzNzg3NzQ2ODQxVSB9LFxuK1x0eyAyMDEyNjA4NjY5VSwgNTA2VSwgMzM2MjYyODk3M1UgfSxcbitcdHsgMTUzNTQzMjg4N1UsIDk5OFUsICAgNDI2MTA5NDNVIH0sXG4rXHR7IDEzMzA2MzU1MzNVLCA4NTdVLCAzMDQwODA2NTA0VSB9LFxuK1x0eyAxMjIzODAwNTUwVSwgNTM5VSwgMzk1NDIyOTUxN1UgfSxcbitcdHsgMTMyMjQxMTUzN1UsIDY4MFUsIDMyMjMyNTAzMjRVIH0sXG4rXHR7IDE4Nzc4NDc4OThVLCA5NDVVLCAyOTE1MTQ3MTQzVSB9LFxuK1x0eyAxNjQ2MzU2MDk5VSwgODc0VSwgIDk2NTk4ODI4MFUgfSxcbitcdHsgIDgwNTY4NzUzNlUsIDc0NFUsIDQwMzIyNzc5MjBVIH0sXG4rXHR7IDE5NDgwOTMyMTBVLCA2MzNVLCAxMzQ2NTk3Njg0VSB9LFxuK1x0eyAgMzkyNjA5NzQ0VSwgNzgzVSwgMTYzNjA4MzI5NVUgfSxcbitcdHsgIDY5MDI0MTMwNFUsIDc3MFUsIDEyMDEwMzEyOThVIH0sXG4rXHR7IDEzNjAzMDI5NjVVLCA2OTZVLCAxNjY1Mzk0NDYxVSB9LFxuK1x0eyAxMjIwMDkwOTQ2VSwgNzgwVSwgMTMxNjkyMjgxMlUgfSxcbitcdHsgIDQ0NzA5MjI1MVUsIDUwMFUsIDM0Mzg3NDMzNzVVIH0sXG4rXHR7IDE2MTM4Njg3OTFVLCA1OTJVLCAgODI4NTQ2ODgzVSB9LFxuK1x0eyAgNTIzNDMwOTUxVSwgNTQ4VSwgMjU1MjM5MjMwNFUgfSxcbitcdHsgIDcyNjY5Mjg5OVUsIDgxMFUsIDE2NTY4NzI4NjdVIH0sXG4rXHR7IDEzNjQzNDAwMjFVLCA4MzZVLCAzNzEwNTEzNDg2VSB9LFxuK1x0eyAxOTg2MjU3NzI5VSwgOTMxVSwgIDkzNTAxMzk2MlUgfSxcbitcdHsgIDQwNzk4Mzk2NFUsIDkyMVUsICA3Mjg3NjcwNTlVIH0sXG4rfTtcbitcbitzdGF0aWMgdm9pZCBwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChzdHJ1Y3Qgcm5kX3N0YXRlICpzdGF0ZSwgdTMyIHNlZWQpXG4re1xuKyNkZWZpbmUgTENHKHgpXHQgKCh4KSAqIDY5MDY5VSlcdC8qIHN1cGVyLWR1cGVyIExDRyAqL1xuK1x0c3RhdGUtXHUwMDNlczEgPSBfX3NlZWQoTENHKHNlZWQpLCAgICAgICAgMlUpO1xuK1x0c3RhdGUtXHUwMDNlczIgPSBfX3NlZWQoTENHKHN0YXRlLVx1MDAzZXMxKSwgICA4VSk7XG4rXHRzdGF0ZS1cdTAwM2VzMyA9IF9fc2VlZChMQ0coc3RhdGUtXHUwMDNlczIpLCAgMTZVKTtcbitcdHN0YXRlLVx1MDAzZXM0ID0gX19zZWVkKExDRyhzdGF0ZS1cdTAwM2VzMyksIDEyOFUpO1xuK31cbitcbitzdGF0aWMgdm9pZCB0ZXN0X3ByYW5kb21fc2VlZF9ib3VuZGFyeShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4re1xuK1x0aW50IGk7XG4rXHRzdHJ1Y3Qgcm5kX3N0YXRlIHN0YXRlO1xuK1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVJSQVlfU0laRSh0ZXN0MSk7IGkrKykge1xuK1x0XHRwcmFuZG9tX3N0YXRlX3Rlc3Rfc2VlZChcdTAwMjZzdGF0ZSwgdGVzdDFbaV0uc2VlZCk7XG4rXHRcdHByYW5kb21fd2FybXVwKFx1MDAyNnN0YXRlKTtcbitcdFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsIHRlc3QxW2ldLnJlc3VsdCwgcHJhbmRvbV91MzJfc3RhdGUoXHUwMDI2c3RhdGUpKTtcbitcdH1cbit9XG4rXG4rc3RhdGljIHZvaWQgdGVzdF9wcmFuZG9tX3RhdXMxMTMoc3RydWN0IGt1bml0ICp0ZXN0KVxuK3tcbitcdGludCBpLCBqO1xuK1x0c3RydWN0IHJuZF9zdGF0ZSBzdGF0ZTtcbitcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUodGVzdDIpOyBpKyspIHtcbitcdFx0cHJhbmRvbV9zdGF0ZV90ZXN0X3NlZWQoXHUwMDI2c3RhdGUsIHRlc3QyW2ldLnNlZWQpO1xuK1x0XHRwcmFuZG9tX3dhcm11cChcdTAwMjZzdGF0ZSk7XG4rXG4rXHRcdGZvciAoaiA9IDA7IGogXHUwMDNjIHRlc3QyW2ldLml0ZXJhdGlvbiAtIDE7IGorKylcbitcdFx0XHRwcmFuZG9tX3UzMl9zdGF0ZShcdTAwMjZzdGF0ZSk7XG4rXG4rXHRcdEtVTklUX0VYUEVDVF9FUSh0ZXN0LCB0ZXN0MltpXS5yZXN1bHQsIHByYW5kb21fdTMyX3N0YXRlKFx1MDAyNnN0YXRlKSk7XG4rXHR9XG4rfVxuK1xuK3N0YXRpYyBzdHJ1Y3Qga3VuaXRfY2FzZSBwcmFuZG9tX3Rlc3RfY2FzZXNbXSA9IHtcbitcdEtVTklUX0NBU0UodGVzdF9wcmFuZG9tX3NlZWRfYm91bmRhcnkpLFxuK1x0S1VOSVRfQ0FTRSh0ZXN0X3ByYW5kb21fdGF1czExMyksXG4rXHR7fVxuK307XG4rXG4rc3RhdGljIHN0cnVjdCBrdW5pdF9zdWl0ZSBwcmFuZG9tX3Rlc3Rfc3VpdGUgPSB7XG4rXHQubmFtZSA9IFwicHJhbmRvbVwiLFxuK1x0LnRlc3RfY2FzZXMgPSBwcmFuZG9tX3Rlc3RfY2FzZXMsXG4rfTtcbitcbitrdW5pdF90ZXN0X3N1aXRlKHByYW5kb21fdGVzdF9zdWl0ZSk7XG4rXG4rTU9EVUxFX0RFU0NSSVBUSU9OKFwiS1VuaXQgdGVzdCBmb3IgcHJhbmRvbVwiKTtcbitNT0RVTEVfTElDRU5TRShcIkdQTFwiKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTMwVDAzOjUzOjAwLjQwNDM4NzQyNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4ODg1MDYxOTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqS1VuaXQgVGVzdCBNaWdyYXRpb24gZm9yIFBSQU5ET00gU2VsZi1UZXN0cyoqXG5cbk9rYXksIHNvIHRoZSBnaXN0IG9mIHRoaXMgaXMgc3RyYWlnaHRmb3J3YXJkOiB3ZSdyZSBtb3ZpbmcgdGhlIGV4aXN0aW5nIGBwcmFuZG9tYCBzZWxmLXRlc3RzLiBUaGV5J3JlIGN1cnJlbnRseSByZXNpZGluZyBpbiBgbGliL3JhbmRvbTMyLmNgLCBidXQgd2UncmUgbWlncmF0aW5nIHRoZW0gdG8gYSBkZWRpY2F0ZWQgS1VuaXQgdGVzdCBtb2R1bGUsIGBsaWIvdGVzdHMvcmFuZG9tMzJfa3VuaXQuY2AuIFRoaXMgaXMgYWxsIGFib3V0IG1vZGVybml6YXRpb24sIHJpZ2h0P1xuXG5XZSdyZSBkcm9wcGluZyB0aGUgb2xkIGBDT05GSUdfUkFORE9NMzJfU0VMRlRFU1RgIGNvbmZpZyBvcHRpb24sIHdoaWNoIG1ha2VzIHNlbnNlIHNpbmNlIEtVbml0IHByb3ZpZGVzIGEgbW9yZSByb2J1c3QgZnJhbWV3b3JrLiBJbiBpdHMgcGxhY2UsIHdlJ3JlIGludHJvZHVjaW5nIGBDT05GSUdfUFJBTkRPTV9LVU5JVF9URVNUYC4gVGhhdCdzIGNsZWFuIGFuZCBrZWVwcyB0aGluZ3Mgb3JnYW5pemVkLiBBbmQsIGEgbGl0dGxlIG9wdGltaXphdGlvbiwgd2UncmUgbWFraW5nIGBwcmFuZG9tX3dhcm11cGAgdmlzaWJsZSB0byB0aGUgS1VuaXQgdGVzdHMsIHdoaWNoIGlzIGEgZ29vZCBjYWxsLCBlc3BlY2lhbGx5IGZvciB0ZXN0IHNldHVwLlxuXG5UaGlzIGlzIHN0cmljdGx5IGEgcmVmYWN0b3JpbmcgZWZmb3J0OyB0aGVyZSBhcmUgbm8gY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMuIEl0IGlzbid0IHJlbGF0ZWQgdG8gZnV6emluZyBlaXRoZXIsIHdoaWNoIEkgbmVlZGVkIHRvIGNvbmZpcm0uIFRoZSB0ZXN0cyB0aGVtc2VsdmVzIGFyZSBqdXN0IEtVbml0IHRlc3RzLCBhbmQgdGhleSBhcmVuJ3QgY2hhbmdpbmcgdGhlaXIgdW5kZXJseWluZyBiZWhhdmlvdXIuXG5cblNvLCBsZXQncyB0YWtlIGEgY2xvc2VyIGxvb2ssIGp1c3QgdG8gbWFrZSBzdXJlLiBJJ20gc2VlaW5nIGNoYW5nZXMgaW4gYGxpYi9yYW5kb20zMi5jYCBhbmQgYGxpYi90ZXN0cy9yYW5kb20zMl9rdW5pdC5jYDogaW4gdGhlIGZpcnN0IG9uZSwgdGhlIG9ubHkgZnVuY3Rpb25hbCBjaGFuZ2UgaXMgdGhhdCBgcHJhbmRvbV93YXJtdXBgIGlzIG5vdyBleHBvcnRlZCBpZiBLVW5pdCBpcyBlbmFibGVkLiBUaGUgc2VsZiB0ZXN0IGNvZGUgYW5kIGl0cyBkYXRhIHdlcmUgZGVsZXRlZC4gSW4gdGhlIHNlY29uZCwgdGhlcmUgYXJlIGp1c3QgdGhlIEtVbml0IHRlc3RzLlxuXG5BbHJpZ2h0LCBhZnRlciByZXZpZXdpbmcgdGhlIGNoYW5nZXMsIHRoZXJlIGFyZSBkZWZpbml0ZWx5IG5vIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsJ3MgcmFuZG9tIG51bWJlciBnZW5lcmF0aW9uIHByb2Nlc3MuIFRoaXMgbWlncmF0aW9uIGlzIHB1cmVseSBhIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdXBkYXRlLiBUaGVyZWZvcmUsIHdlIGNhbiBjb25maWRlbnRseSBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNjAyLCJPdXRwdXRUb2tlbnMiOjY2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI2LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMzBUMDM6NTM6MDYuMjkyODk3OTQ1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDYzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1pZ3JhdGVzIGV4aXN0aW5nIHByYW5kb20gc2VsZi10ZXN0cyB0byB0aGUgS1VuaXQgZnJhbWV3b3JrLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUgY29yZSBrZXJuZWwgbG9naWMgdGhhdCB3b3VsZCByZXF1aXJlIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow492tg[1] Phase: Running StartedAt: 2026-06-30 03:53:35 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow492tg[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-30 03:53:35 +0000 UTC FinishedAt: 2026-06-30 03:54:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}