Name: series-workflowwl4nq Phase: Failed StartedAt: 2026-09-04 02:28:25 +0000 UTC FinishedAt: 2026-09-04 02:46:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwl4nq[0] Phase: Succeeded StartedAt: 2026-09-04 02:28:25 +0000 UTC FinishedAt: 2026-09-04 02:46:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwl4nq[0].run-triage Phase: Succeeded StartedAt: 2026-09-04 02:28:25 +0000 UTC FinishedAt: 2026-09-04 02:46:44 +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+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNvbGFyZmxhcmUgRUYxMCBldGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMpIHRvIGFkZCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIHZpYSBwY2lfaW5mbygpIGRlc2NyaWJpbmcgdGhlIGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQuIFRoaXMgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgYW5kIHRoZSBjaGFuZ2UgZG9lcyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYjZjNmExZjk3YzFmODlhMDZjY2M5MjA3YzE1MjQzYzBjMDQyNThmYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDQgMDI6NDU6NTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmNcbmluZGV4IDczYmMwNjQ5MjlmNjMuLjNiOTJlOTU1MzJjNTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jXG5AQCAtMTA1LDYgJiM0MzsxMDUsMjYgQEAgc3RhdGljIGludCBlZnhfZWYxMF9nZXRfdmZfaW5kZXgoc3RydWN0IGVmeF9uaWMgKmVmeClcbiB9XG4gI2VuZGlmXG4gXG4mIzQzO3N0YXRpYyBjb25zdCBjaGFyICplZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWUodTE2IGRwY3B1X2lkKVxuJiM0Mzt7XG4mIzQzO1x0c3dpdGNoIChkcGNwdV9pZCkge1xuJiM0MztcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYRFA6XG4mIzQzO1x0XHRyZXR1cm4gXCYjMzQ7ZnVsbC1mZWF0dXJlXCYjMzQ7O1xuJiM0MztcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYRFBfTE9XX0xBVEVOQ1k6XG4mIzQzO1x0XHRyZXR1cm4gXCYjMzQ7bG93LWxhdGVuY3lcJiMzNDs7XG4mIzQzO1x0Y2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9QQUNLRURfU1RSRUFNOlxuJiM0MztcdFx0cmV0dXJuIFwmIzM0O3BhY2tlZC1zdHJlYW1cJiMzNDs7XG4mIzQzO1x0Y2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfVFhEUF9ISUdIX1BBQ0tFVF9SQVRFOlxuJiM0MztcdFx0cmV0dXJuIFwmIzM0O2hpZ2gtdHgtcmF0ZVwmIzM0OztcbiYjNDM7XHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1JVTEVTX0VOR0lORTpcbiYjNDM7XHRcdHJldHVybiBcJiMzNDtydWxlcy1lbmdpbmVcJiMzNDs7XG4mIzQzO1x0Y2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9EUERLOlxuJiM0MztcdFx0cmV0dXJuIFwmIzM0O2RwZGtcJiMzNDs7XG4mIzQzO1x0ZGVmYXVsdDpcbiYjNDM7XHRcdHJldHVybiBcJiMzNDt1bmtub3duXCYjMzQ7O1xuJiM0MztcdH1cbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW50IGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuIHtcbiBcdE1DRElfREVDTEFSRV9CVUYob3V0YnVmLCBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19WN19PVVRfTEVOKTtcbkBAIC0xNDQsNiAmIzQzOzE2NCwxMyBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuIFx0bmljX2RhdGEtXHUwMDNldHhfZHBjcHVfZndfaWQgPVxuIFx0XHRNQ0RJX1dPUkQob3V0YnVmLCBHRVRfQ0FQQUJJTElUSUVTX09VVF9UWF9EUENQVV9GV19JRCk7XG4gXG4mIzQzO1x0cGNpX2luZm8oZWZ4LVx1MDAzZXBjaV9kZXYsXG4mIzQzO1x0XHQgXCYjMzQ7RGF0YXBhdGggZmlybXdhcmUgdmFyaWFudDogcng9JXMgKDB4JXgpIHR4PSVzICgweCV4KVxcblwmIzM0OyxcbiYjNDM7XHRcdCBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWUobmljX2RhdGEtXHUwMDNlcnhfZHBjcHVfZndfaWQpLFxuJiM0MztcdFx0IG5pY19kYXRhLVx1MDAzZXJ4X2RwY3B1X2Z3X2lkLFxuJiM0MztcdFx0IGVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZShuaWNfZGF0YS1cdTAwM2V0eF9kcGNwdV9md19pZCksXG4mIzQzO1x0XHQgbmljX2RhdGEtXHUwMDNldHhfZHBjcHVfZndfaWQpO1xuJiM0MztcbiBcdGlmICghKG5pY19kYXRhLVx1MDAzZWRhdGFwYXRoX2NhcHMgXHUwMDI2XG4gXHQgICAgICAoMSBcdTAwM2NcdTAwM2MgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYX1BSRUZJWF9MRU5fMTRfTEJOKSkpIHtcbiBcdFx0bmV0aWZfZXJyKGVmeCwgcHJvYmUsIGVmeC1cdTAwM2VuZXRfZGV2LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTb2xhcmZsYXJlIEVGMTAgZXRoZXJuZXQgZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jKSB0byBhZGQgcHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyB2aWEgcGNpX2luZm8oKSBkZXNjcmliaW5nIHRoZSBkYXRhcGF0aCBmaXJtd2FyZSB2YXJpYW50LiBUaGlzIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMsIGFuZCB0aGUgY2hhbmdlIGRvZXMgbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGI2YzZhMWY5N2MxZjg5YTA2Y2NjOTIwN2MxNTI0M2MwYzA0MjU4ZmIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIFNlcCA0IDAyOjQ1OjU2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMKaW5kZXggNzNiYzA2NDkyOWY2My4uM2I5MmU5NTUzMmM1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jCkBAIC0xMDUsNiAmIzQzOzEwNSwyNiBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2dldF92Zl9pbmRleChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQogfQogI2VuZGlmCiAKJiM0MztzdGF0aWMgY29uc3QgY2hhciAqZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKHUxNiBkcGNwdV9pZCkKJiM0Mzt7CiYjNDM7CXN3aXRjaCAoZHBjcHVfaWQpIHsKJiM0MzsJY2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUDoKJiM0MzsJCXJldHVybiAmIzM0O2Z1bGwtZmVhdHVyZSYjMzQ7OwomIzQzOwljYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX0xPV19MQVRFTkNZOgomIzQzOwkJcmV0dXJuICYjMzQ7bG93LWxhdGVuY3kmIzM0OzsKJiM0MzsJY2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9QQUNLRURfU1RSRUFNOgomIzQzOwkJcmV0dXJuICYjMzQ7cGFja2VkLXN0cmVhbSYjMzQ7OwomIzQzOwljYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9UWERQX0hJR0hfUEFDS0VUX1JBVEU6CiYjNDM7CQlyZXR1cm4gJiMzNDtoaWdoLXR4LXJhdGUmIzM0OzsKJiM0MzsJY2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9SVUxFU19FTkdJTkU6CiYjNDM7CQlyZXR1cm4gJiMzNDtydWxlcy1lbmdpbmUmIzM0OzsKJiM0MzsJY2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9EUERLOgomIzQzOwkJcmV0dXJuICYjMzQ7ZHBkayYjMzQ7OwomIzQzOwlkZWZhdWx0OgomIzQzOwkJcmV0dXJuICYjMzQ7dW5rbm93biYjMzQ7OwomIzQzOwl9CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHMoc3RydWN0IGVmeF9uaWMgKmVmeCkKIHsKIAlNQ0RJX0RFQ0xBUkVfQlVGKG91dGJ1ZiwgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfVjdfT1VUX0xFTik7CkBAIC0xNDQsNiAmIzQzOzE2NCwxMyBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQogCW5pY19kYXRhLSZndDt0eF9kcGNwdV9md19pZCA9CiAJCU1DRElfV09SRChvdXRidWYsIEdFVF9DQVBBQklMSVRJRVNfT1VUX1RYX0RQQ1BVX0ZXX0lEKTsKIAomIzQzOwlwY2lfaW5mbyhlZngtJmd0O3BjaV9kZXYsCiYjNDM7CQkgJiMzNDtEYXRhcGF0aCBmaXJtd2FyZSB2YXJpYW50OiByeD0lcyAoMHgleCkgdHg9JXMgKDB4JXgpXG4mIzM0OywKJiM0MzsJCSBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWUobmljX2RhdGEtJmd0O3J4X2RwY3B1X2Z3X2lkKSwKJiM0MzsJCSBuaWNfZGF0YS0mZ3Q7cnhfZHBjcHVfZndfaWQsCiYjNDM7CQkgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKG5pY19kYXRhLSZndDt0eF9kcGNwdV9md19pZCksCiYjNDM7CQkgbmljX2RhdGEtJmd0O3R4X2RwY3B1X2Z3X2lkKTsKJiM0MzsKIAlpZiAoIShuaWNfZGF0YS0mZ3Q7ZGF0YXBhdGhfY2FwcyAmYW1wOwogCSAgICAgICgxICZsdDsmbHQ7IE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWF9QUkVGSVhfTEVOXzE0X0xCTikpKSB7CiAJCW5ldGlmX2VycihlZngsIHByb2JlLCBlZngtJmd0O25ldF9kZXYsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MzMKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0MTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTb2xhcmZsYXJlIEVGMTAgRHJpdmVyIFVwZGF0ZSoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgZGlmZi4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgYmVlbiBtb2RpZmllZCwgc28gSSYjMzk7bGwgemVybyBpbiBvbiB0aGUgY2hhbmdlcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuY2AuIEFoLCB0aGV5JiMzOTt2ZSBhZGRlZCBhIG5ldyBmdW5jdGlvbiwgYGVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZWAsIGFuZCBhIGNhbGwgdG8gYHBjaV9pbmZvYCB3aXRoaW4gYGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2Fwc2AuIEludGVyZXN0aW5nLgoKTm93LCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBjb25zaWRlciB0aGUgY29udGV4dC4gVGhpcyBpcyB0aGUgU29sYXJmbGFyZSAoU0ZDKSBFRjEwIGV0aGVybmV0IGRyaXZlci4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IHRoZXNlIGFyZSBwaHlzaWNhbCBQQ0kgZXRoZXJuZXQgZGV2aWNlczsgeW91IGRvbiYjMzk7dCB0eXBpY2FsbHkgc2VlIFNGQyBOSUNzIHJ1bm5pbmcgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXkgYXJlIGRlc2lnbmVkIGZvciBiYXJlLW1ldGFsLCBoaWdoLXBlcmZvcm1hbmNlIGFwcGxpY2F0aW9ucy4gU28sIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhpcyBjb2RlIGlzIGV2ZW4gcmVsZXZhbnQgaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLCBvciBpZiBpdCYjMzk7cyBwdXJlbHkgZm9yIHBoeXNpY2FsIGhhcmR3YXJlLgoKTG9va2luZyBtb3JlIGNsb3NlbHkgYXQgdGhlIGNvZGUgY2hhbmdlLCBpdCBhcHBlYXJzIHRoaXMgbmV3IGZ1bmN0aW9uLCBgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lYCwgaXMganVzdCBhIGhlbHBlciB0aGF0IHJldHVybnMgYSBzdHJpbmcgY29uc3RhbnQgYmFzZWQgb24gc29tZSBJRC4gQW5kLCBgcGNpX2luZm9gIGlzIGJlaW5nIHVzZWQgdG8gbG9nIHRoaXMgaW5mb3JtYXRpb24gZHVyaW5nIHRoZSBwcm9iZSBwcm9jZXNzLgoKR2l2ZW4gYWxsIG9mIHRoaXMsIG15IGltbWVkaWF0ZSBhc3Nlc3NtZW50IGlzIHRoYXQ6IDEpIFRoaXMgY2hhbmdlIGlzIGhhcHBlbmluZyB3aXRoaW4gYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBldGhlcm5ldCBkcml2ZXIg4oCTIFNvbGFyZmxhcmUg4oCTIHdoaWNoIGFsbW9zdCBjZXJ0YWlubHkgcmVxdWlyZXMgdGhlIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBhbmQgaXNuJiMzOTt0IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLiAyKSBUaGUgbG9nZ2luZyB1c2luZyBgcGNpX2luZm9gIGlzIHB1cmVseSBkZWNvcmF0aXZlLiBUaGVyZSBpcyBubyBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmUgbWFuaXB1bGF0aW9uIGhlcmUsIHdoaWNoIGlzIHdoYXQgSSYjMzk7bSBsb29raW5nIGZvci4KCkkmIzM5O2xsIHF1aWNrbHkgdmVyaWZ5IHRoZXNlIGFzc3VtcHRpb25zLiBMZXQmIzM5O3MgbWFrZSBzdXJlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvYCBpcyBpbmRlZWQgd2hhdCBJIHRoaW5rIGl0IGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19TRkMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg0NiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlPTI9c2ZjLXlcdFx0XHQmIzQzOz0gZWZ4Lm8gZWZ4X2NvbW1vbi5vIGVmeF9jaGFubmVscy5vIG5pYy5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlLTEwLVx0XHRcdCAgIGVmeF9kZXZsaW5rLm8gZWZ4X3JlZmxhc2gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjExOnNmYy0kKENPTkZJR19TRkNfTVREKVx0JiM0Mzs9IG10ZC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU6MTI6c2ZjLSQoQ09ORklHX1NGQ19TUklPVilcdCYjNDM7PSBzcmlvdi5vIGVmMTBfc3Jpb3YubyBlZjEwMF9zcmlvdi5vIGVmMTAwX3JlcC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGUtMTMtICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFlLm8gdGMubyB0Y19iaW5kaW5ncy5vIHRjX2NvdW50ZXJzLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGUtMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU6MTY6c2ZjLSQoQ09ORklHX1NGQ19DWEwpXHQmIzQzOz0gZWZ4X2N4bC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU6MTc6b2JqLSQoQ09ORklHX1NGQylcdCYjNDM7PSBzZmMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjE5Om9iai0kKENPTkZJR19TRkNfRkFMQ09OKSAmIzQzOz0gZmFsY29uL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19TRkNfU0lFTkEpICYjNDM7PSBzaWVuYS9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTgzPXN0YXRpYyBib29sIGVmeF9lZjEwX2lzX3ZmKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy04Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6ODg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtODktc3RhdGljIGludCBlZnhfZWYxMF9nZXRfdmZfaW5kZXgoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTU1OT1zdGF0aWMgaW50IGVmeF9lZjEwX3Byb2JlKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy02ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjY4NTojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy02ODYtXHRpZiAoKGVmeC1cdTAwM2VwY2lfZGV2LVx1MDAzZXBoeXNmbikgXHUwMDI2XHUwMDI2ICghZWZ4LVx1MDAzZXBjaV9kZXYtXHUwMDNlaXNfcGh5c2ZuKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9OTUzPXN0YXRpYyB2b2lkIGVmeF9lZjEwX3JlbW92ZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtOTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo5NTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtOTU5LVx0c3RydWN0IGVmeF9lZjEwX25pY19kYXRhICpuaWNfZGF0YV9wZjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTEwODY9aW50IGVmeF9lZjEwX3Zwb3J0X2RlbF9tYWMoc3RydWN0IGVmeF9uaWMgKmVmeCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTEwOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjEwOTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTA5OS1zdGF0aWMgaW50IGVmeF9lZjEwX3Byb2JlX3ZmKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0xMTcwPXN0YXRpYyBpbnQgZWZ4X2VmMTBfZGltZW5zaW9uX3Jlc291cmNlcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTE3Ni1cdHVuc2lnbmVkIGludCB1Y19tZW1fbWFwX3NpemUsIHdjX21lbV9tYXBfc2l6ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6MTE3NzojaWZkZWYgQ09ORklHX1NGQ19DWExcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTE3OC1cdHN0cnVjdCBlZnhfcHJvYmVfZGF0YSAqcHJvYmVfZGF0YTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTEzMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjEzMDg6I2lmZGVmIENPTkZJR19TRkNfQ1hMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTEzMDktXHRwcm9iZV9kYXRhID0gY29udGFpbmVyX29mKGVmeCwgc3RydWN0IGVmeF9wcm9iZV9kYXRhLCBlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9MTQ0MT1zdGF0aWMgdm9pZCBlZnhfZWYxMF90YWJsZV9yZXNldF9tY19hbGxvY2F0aW9ucyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ0My1cdHN0cnVjdCBlZnhfZWYxMF9uaWNfZGF0YSAqbmljX2RhdGEgPSBlZngtXHUwMDNlbmljX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjE0NDQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ0NS1cdHVuc2lnbmVkIGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ1Ny1cdGVmeC1cdTAwM2V2cG9ydF9pZCA9IEVWQl9QT1JUX0lEX0FTU0lHTkVEO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzoxNDU4OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTE0NTktXHRpZiAobmljX2RhdGEtXHUwMDNldmYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0zMzU3PXN0YXRpYyBpbnQgZWZ4X2VmMTBfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0zMzYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzozMzYzOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTMzNjQtXHQvKiBJZiB0aGlzIGZ1bmN0aW9uIGlzIGEgVkYgYW5kIHdlIGhhdmUgYWNjZXNzIHRvIHRoZSBwYXJlbnQgUEYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0zNDk3PWVmeF9lZjEwX3Rlc3RfY2hpcChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBzdHJ1Y3QgZWZ4X3NlbGZfdGVzdHMgKnRlc3RzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMzUxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6MzUyMDojaWZkZWYgQ09ORklHX1NGQ19NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMzUyMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTM2MjQ9c3RhdGljIGludCBlZnhfZWYxMF9tdGRfcHJvYmUoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTM2NzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjM2Nzc6I2VuZGlmIC8qIENPTkZJR19TRkNfTVREICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTM2NzgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz00MTE0PWNvbnN0IHN0cnVjdCBlZnhfbmljX3R5cGUgZWZ4X2h1bnRfYTBfdmZfbmljX3R5cGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MTg4LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0MTg5OiNpZmRlZiBDT05GSUdfU0ZDX01URFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MTkwLVx0Lm10ZF9wcm9iZSA9IGVmeF9wb3J0X2R1bW15X29wX2ludCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQxOTUtXHQudmxhbl9yeF9raWxsX3ZpZCA9IGVmeF9lZjEwX3ZsYW5fcnhfa2lsbF92aWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjQxOTY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDE5Ny1cdC52c3dpdGNoaW5nX3Byb2JlID0gZWZ4X2VmMTBfdnN3aXRjaGluZ19wcm9iZV92Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTQyMjY9Y29uc3Qgc3RydWN0IGVmeF9uaWNfdHlwZSBlZnhfaHVudF9hMF9uaWNfdHlwZSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQzMDUtI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjQzMDY6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQzMDctXHQubXRkX3Byb2JlID0gZWZ4X2VmMTBfbXRkX3Byb2JlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDMyMC1cdC51ZHBfdG5sX2hhc19wb3J0ID0gZWZ4X2VmMTBfdWRwX3RubF9oYXNfcG9ydCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6NDMyMTojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MzIyLVx0LnNyaW92X2NvbmZpZ3VyZSA9IGVmeF9lZjEwX3NyaW92X2NvbmZpZ3VyZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTQzNjI9Y29uc3Qgc3RydWN0IGVmeF9uaWNfdHlwZSBlZnhfeDRfbmljX3R5cGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00NDM4LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0NDM5OiNpZmRlZiBDT05GSUdfU0ZDX01URFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00NDQwLVx0Lm10ZF9wcm9iZSA9IGVmeF9lZjEwX210ZF9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQ0NTMtXHQudWRwX3RubF9oYXNfcG9ydCA9IGVmeF9lZjEwX3VkcF90bmxfaGFzX3BvcnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjQ0NTQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDQ1NS1cdC8qIGN1cnJlbnRseSBzZXQgdG8gdGhlIFZGIHZlcnNpb25zIG9mIHRoZXNlIGZ1bmN0aW9uc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jPTQyMz1zdGF0aWMgdm9pZCBlZjEwMF9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTQzMi1cdGVmMTAwX3JlbW92ZV9uZXRkZXYocHJvYmVfZGF0YSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYzo0MzM6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTQzNC1cdGVmeF9maW5pX3N0cnVjdF90YyhlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jPTQ0Nz1zdGF0aWMgaW50IGVmMTAwX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGNpX2Rldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYy01MjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYzo1MjE6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTUyMi1zdGF0aWMgaW50IGVmMTAwX3BjaV9zcmlvdl9jb25maWd1cmUoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG51bV92ZnMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwLmM9NTQ3PXN0cnVjdCBwY2lfZHJpdmVyIGVmMTAwX3BjaV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwLmMtNTUxLVx0LnJlbW92ZSAgICAgICAgID0gZWYxMDBfcGNpX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jOjU1MjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwLmMtNTUzLVx0LnNyaW92X2NvbmZpZ3VyZSA9IGVmMTAwX3BjaV9zcmlvdl9jb25maWd1cmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jPTI3Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGVmMTAwX25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTI5MS0jZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzoyOTI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy0yOTMtXHQubmRvX3NldHVwX3RjXHRcdD0gZWZ4X3RjX3NldHVwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYz0zODM9dm9pZCBlZjEwMF9yZW1vdmVfbmV0ZGV2KHN0cnVjdCBlZnhfcHJvYmVfZGF0YSAqcHJvYmVfZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmMtMzk1LVx0dW5yZWdpc3Rlcl9uZXRldmVudF9ub3RpZmllcihcdTAwMjZlZngtXHUwMDNlbmV0ZXZlbnRfbm90aWZpZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jOjM5NjojaWYgZGVmaW5lZChDT05GSUdfU0ZDX1NSSU9WKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTM5Ny1cdGlmICghZWZ4LVx1MDAzZXR5cGUtXHUwMDNlaXNfdmYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTQwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzo0MDQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy00MDUtXHRlZjEwMF9wZl91bnNldF9kZXZsaW5rX3BvcnQoZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmM9NDIzPWludCBlZjEwMF9wcm9iZV9uZXRkZXYoc3RydWN0IGVmeF9wcm9iZV9kYXRhICpwcm9iZV9kYXRhKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MDEtXHRcdFx0Z290byBmYWlsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jOjUwMjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTUwMy1cdFx0ZWYxMDBfcGZfc2V0X2RldmxpbmtfcG9ydChlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MjUtZmFpbDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzo1MjY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MjctXHQvKiByZW1vdmUgZGV2bGluayBwb3J0IGlmIGRvZXMgZXhpc3QgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmM9MzkxPXN0YXRpYyBpbnQgZWYxMDBfZmlsdGVyX3RhYmxlX3VwKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTQwNi1cdHVwX3dyaXRlKFx1MDAyNmVmeC1cdTAwM2VmaWx0ZXJfc2VtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYzo0MDc6XHRpZiAoSVNfRU5BQkxFRChDT05GSUdfU0ZDX1NSSU9WKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy00MDgtXHRcdHJjID0gZWZ4X3RjX2luc2VydF9yZXBfZmlsdGVycyhlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz00MjU9c3RhdGljIHZvaWQgZWYxMDBfZmlsdGVyX3RhYmxlX2Rvd24oc3RydWN0IGVmeF9uaWMgKmVmeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy00MjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jOjQyNzpcdGlmIChJU19FTkFCTEVEKENPTkZJR19TRkNfU1JJT1YpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTQyOC1cdFx0ZWZ4X3RjX3JlbW92ZV9yZXBfZmlsdGVycyhlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz0xMTQ5PWludCBlZjEwMF9wcm9iZV9uZXRkZXZfcGYoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtMTE1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYzoxMTU1Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19TRkNfU1JJT1YpIHx8ICFuaWNfZGF0YS1cdTAwM2VncnBfbWFlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTExNTYtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz0xMjAwPXZvaWQgZWYxMDBfcmVtb3ZlKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTEyMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmM6MTIwNDpcdGlmIChJU19FTkFCTEVEKENPTkZJR19TRkNfU1JJT1YpIFx1MDAyNlx1MDAyNiBlZngtXHUwMDNlbWFlKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtMTIwNS1cdFx0ZWZ4X2VmMTAwX2ZpbmlfcmVwcyhlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz0xMjI0PWNvbnN0IHN0cnVjdCBlZnhfbmljX3R5cGUgZWYxMDBfcGZfbmljX3R5cGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTEzMDAtXHQuc3RvcF9zdGF0cyA9IGVmeF9tY2RpX21hY19zdG9wX3N0YXRzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jOjEzMDE6XHQuc3Jpb3ZfY29uZmlndXJlID0gSVNfRU5BQkxFRChDT05GSUdfU0ZDX1NSSU9WKSA/XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtMTMwMi1cdFx0ZWZ4X2VmMTAwX3NyaW92X2NvbmZpZ3VyZSA6IE5VTEwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX3J4LmM9NTY9dm9pZCBfX2VmMTAwX3J4X3BhY2tldChzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX3J4LmMtOTQtXHRpZiAobmljX2RhdGEtXHUwMDNlaGF2ZV9tcG9ydCBcdTAwMjZcdTAwMjYgaW5nX3BvcnQgIT0gbmljX2RhdGEtXHUwMDNlYmFzZV9tcG9ydCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX3J4LmM6OTU6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9yeC5jLTk2LVx0XHRzdHJ1Y3QgZWZ4X3JlcCAqZWZ2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYz0zMzQ9c3RhdGljIGludCBlZnhfcHJvYmVfYWxsKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTM1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYzozNTY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0zNTctXHRyYyA9IGVmeC1cdTAwM2V0eXBlLVx1MDAzZXZzd2l0Y2hpbmdfcHJvYmUoZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtMzgxLSBmYWlsNDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYzozODI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0zODMtXHRlZngtXHUwMDNldHlwZS1cdTAwM2V2c3dpdGNoaW5nX3JlbW92ZShlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYz0zOTM9c3RhdGljIHZvaWQgZWZ4X3JlbW92ZV9hbGwoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNDAwLVx0ZWZ4X3JlbW92ZV9maWx0ZXJzKGVmeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6NDAxOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNDAyLVx0ZWZ4LVx1MDAzZXR5cGUtXHUwMDNldnN3aXRjaGluZ19yZW1vdmUoZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9NTY4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgZWZ4X25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTU4My1cdC5uZG9faHd0c3RhbXBfZ2V0XHQ9IGVmeF9od3RzdGFtcF9nZXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6NTg0OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNTg1LVx0Lm5kb19zZXRfdmZfbWFjXHRcdD0gZWZ4X3NyaW92X3NldF92Zl9tYWMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jPTExNTM9c3RhdGljIGludCBlZnhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0xMjYxLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jOjEyNjI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0xMjYzLXN0YXRpYyBpbnQgZWZ4X3BjaV9zcmlvdl9jb25maWd1cmUoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG51bV92ZnMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jPTE0MDg9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGVmeF9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0xNDE1LVx0LmVycl9oYW5kbGVyXHQ9IFx1MDAyNmVmeF9lcnJfaGFuZGxlcnMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6MTQxNjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTE0MTctXHQuc3Jpb3ZfY29uZmlndXJlID0gZWZ4X3BjaV9zcmlvdl9jb25maWd1cmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oPTE3OD12b2lkIGVmeF91cGRhdGVfc3dfc3RhdHMoc3RydWN0IGVmeF9uaWMgKmVmeCwgdTY0ICpzdGF0cyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oLTE4MC0vKiBNVEQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaDoxODE6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmgtMTgyLWludCBlZnhfbXRkX2FkZChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBzdHJ1Y3QgZWZ4X210ZF9wYXJ0aXRpb24gKnBhcnRzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaD0xOTM9c3RhdGljIGlubGluZSB2b2lkIGVmeF9tdGRfcmVtb3ZlKHN0cnVjdCBlZnhfbmljICplZngpIHt9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oLTE5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaDoxOTY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaC0xOTctc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZWZ4X3ZmX3NpemUoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmM9ODM9c3RhdGljIHVuc2lnbmVkIGludCBlZnhfd2FudGVkX3BhcmFsbGVsaXNtKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jLTEwNi1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jOjEwNzojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jLTEwOC1cdGlmIChlZngtXHUwMDNldHlwZS1cdTAwM2Vzcmlvdl93YW50ZWQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmM9MjQ3PWludCBlZnhfcHJvYmVfaW50ZXJydXB0cyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY2hhbm5lbHMuYy0zNDgtXHQvKiBSU1MgbWlnaHQgYmUgdXNhYmxlIG9uIFZGcyBldmVuIGlmIGl0IGlzIGRpc2FibGVkIG9uIHRoZSBQRiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jOjM0OTojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jLTM1MC1cdGlmIChlZngtXHUwMDNldHlwZS1cdTAwM2Vzcmlvdl93YW50ZWQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jPTcyMz1pbnQgZWZ4X3Jlc2V0X3VwKHN0cnVjdCBlZnhfbmljICplZngsIGVudW0gcmVzZXRfdHlwZSBtZXRob2QsIGJvb2wgb2spXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy03NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jOjc1NDojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy03NTUtXHRyYyA9IGVmeC1cdTAwM2V0eXBlLVx1MDAzZXZzd2l0Y2hpbmdfcmVzdG9yZShlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmM9OTYxPWludCBlZnhfaW5pdF9zdHJ1Y3Qoc3RydWN0IGVmeF9uaWMgKmVmeCwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy05NjgtXHRzcGluX2xvY2tfaW5pdChcdTAwMjZlZngtXHUwMDNlYml1X2xvY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYzo5Njk6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTk3MC1cdElOSVRfTElTVF9IRUFEKFx1MDAyNmVmeC1cdTAwM2VtdGRfbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYz0xMTE3PXZvaWQgZWZ4X2ZpbmlfaW8oc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTExMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jOjExMzc6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTExMzgtc3RhdGljIHNzaXplX3QgbWNkaV9sb2dnaW5nX3Nob3coc3RydWN0IGRldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmg9ODE9c3RhdGljIGlubGluZSB2b2lkIGVmeF9zY2hlZHVsZV9jaGFubmVsX2lycShzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uaC04Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmg6ODc6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5oLTg4LXZvaWQgZWZ4X2luaXRfbWNkaV9sb2dnaW5nKHN0cnVjdCBlZnhfbmljICplZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY3hsLmgtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2N4bC5oOjE0OiNpZmRlZiBDT05GSUdfU0ZDX0NYTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jeGwuaC0xNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0xNy0jaW5jbHVkZSBcJiMzNDttY2RpX3Bjb2wuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM6MTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5jLTE5LSNpbmNsdWRlIFwmIzM0O21hZS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM9MjQ9c3RydWN0IGVmeF9kZXZsaW5rIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0yNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5jOjI4OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0yOS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYz02Mjk9c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX29wcyBzZmNfZGV2bGlua19vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmMtNjM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM6NjM1OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy02MzYtc3RhdGljIHN0cnVjdCBkZXZsaW5rX3BvcnQgKmVmMTAwX3NldF9kZXZsaW5rX3BvcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgdTMyIGlkeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuaD0zNz12b2lkIGVmeF9maW5pX2RldmxpbmtfYW5kX3VubG9jayhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oLTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmg6Mzk6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oLTQwLXN0cnVjdCBlZnhfcmVwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vTWFrZWZpbGU9Mj1zZmMtZmFsY29uLXlcdFx0JiM0Mzs9IGVmeC5vIG5pYy5vIGZhcmNoLm8gZmFsY29uLm8gdHgubyByeC5vIHNlbGZ0ZXN0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlOjY6c2ZjLWZhbGNvbi0kKENPTkZJR19TRkNfRkFMQ09OX01URClcdCYjNDM7PSBtdGQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19TRkNfRkFMQ09OKVx0XHQmIzQzOz0gc2ZjLWZhbGNvbi5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguYz0yNjE1PXN0YXRpYyBpbnQgZWY0X2luaXRfc3RydWN0KHN0cnVjdCBlZjRfbmljICplZngsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguYy0yNjIzLVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2ZWZ4LVx1MDAzZWJpdV9sb2NrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4LmM6MjYyNDojaWZkZWYgQ09ORklHX1NGQ19GQUxDT05fTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2VmeC5jLTI2MjUtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZlZngtXHUwMDNlbXRkX2xpc3QpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4Lmg9MjE0PXZvaWQgZWY0X3VwZGF0ZV9zd19zdGF0cyhzdHJ1Y3QgZWY0X25pYyAqZWZ4LCB1NjQgKnN0YXRzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2VmeC5oLTIxNi0vKiBNVEQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4Lmg6MjE3OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4LmgtMjE4LWludCBlZjRfbXRkX2FkZChzdHJ1Y3QgZWY0X25pYyAqZWZ4LCBzdHJ1Y3QgZWY0X210ZF9wYXJ0aXRpb24gKnBhcnRzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmM9NjE2PWZhbGNvbl9zcGlfcmVhZChzdHJ1Y3QgZWY0X25pYyAqZWZ4LCBjb25zdCBzdHJ1Y3QgZmFsY29uX3NwaV9kZXZpY2UgKnNwaSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTY0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmM6NjQ2OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtNjQ3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmM9OTIxPXN0YXRpYyBpbnQgZmFsY29uX210ZF9wcm9iZShzdHJ1Y3QgZWY0X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtOTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzo5NzE6I2VuZGlmIC8qIENPTkZJR19TRkNfRkFMQ09OX01URCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYy05NzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYz0yNzA4PWNvbnN0IHN0cnVjdCBlZjRfbmljX3R5cGUgZmFsY29uX2ExX25pY190eXBlID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtMjc4MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmM6Mjc4MjojaWZkZWYgQ09ORklHX1NGQ19GQUxDT05fTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI3ODMtXHQubXRkX3Byb2JlID0gZmFsY29uX210ZF9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jPTI4MDU9Y29uc3Qgc3RydWN0IGVmNF9uaWNfdHlwZSBmYWxjb25fYjBfbmljX3R5cGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYy0yODc4LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzoyODc5OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtMjg4MC1cdC5tdGRfcHJvYmUgPSBmYWxjb25fbXRkX3Byb2JlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vbmV0X2RyaXZlci5oPTc2Mz1zdHJ1Y3QgZWY0X25pYyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmgtODM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmg6ODM4OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vbmV0X2RyaXZlci5oLTgzOS1cdHN0cnVjdCBsaXN0X2hlYWQgbXRkX2xpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmg9MTA0MD1zdHJ1Y3QgZWY0X25pY190eXBlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaC0xMTI3LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmg6MTEyODojaWZkZWYgQ09ORklHX1NGQ19GQUxDT05fTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaC0xMTI5LVx0aW50ICgqbXRkX3Byb2JlKShzdHJ1Y3QgZWY0X25pYyAqZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTUyPXN0YXRpYyB2b2lkIGVmeF9tY2RpX2FiYW5kb24oc3RydWN0IGVmeF9uaWMgKmVmeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzo1NDojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtNTUtc3RhdGljIGJvb2wgbWNkaV9sb2dnaW5nX2RlZmF1bHQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz02MT1pbnQgZWZ4X21jZGlfaW5pdChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtNzItXHRtY2RpLVx1MDAzZWVmeCA9IGVmeDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6NzM6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTc0LVx0LyogY29uc3VtaW5nIGNvZGUgYXNzdW1lcyBidWZmZXIgaXMgcGFnZS1zaXplZCAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMTE0LWZhaWwyOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoxMTU6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTExNi1cdGtmcmVlKG1jZGktXHUwMDNlbG9nZ2luZ19idWZmZXIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM9MTM2PXZvaWQgZWZ4X21jZGlfZmluaShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMTQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoxNDE6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE0Mi1cdGtmcmVlKGVmeC1cdTAwM2VtY2RpLVx1MDAzZWlmYWNlLmxvZ2dpbmdfYnVmZmVyKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTE0OD1zdGF0aWMgdm9pZCBlZnhfbWNkaV9zZW5kX3JlcXVlc3Qoc3RydWN0IGVmeF9uaWMgKmVmeCwgdW5zaWduZWQgY21kLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMTUxLVx0c3RydWN0IGVmeF9tY2RpX2lmYWNlICptY2RpID0gZWZ4X21jZGkoZWZ4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MTUyOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0xNTMtXHRjaGFyICpidWYgPSBtY2RpLVx1MDAzZWxvZ2dpbmdfYnVmZmVyOyAvKiBwYWdlLXNpemVkICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0xOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjE5OTojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjAwLVx0aWYgKG1jZGktXHUwMDNlbG9nZ2luZ19lbmFibGVkIFx1MDAyNlx1MDAyNiAhV0FSTl9PTl9PTkNFKCFidWYpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yNjM9c3RhdGljIHZvaWQgZWZ4X21jZGlfcmVhZF9yZXNwb25zZV9oZWFkZXIoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTI2Ni1cdHVuc2lnbmVkIGludCByZXNwc2VxLCByZXNwY21kLCBlcnJvcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MjY3OiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yNjgtXHRjaGFyICpidWYgPSBtY2RpLVx1MDAzZWxvZ2dpbmdfYnVmZmVyOyAvKiBwYWdlLXNpemVkICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjI4NzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjg4LVx0aWYgKG1jZGktXHUwMDNlbG9nZ2luZ19lbmFibGVkIFx1MDAyNlx1MDAyNiAhV0FSTl9PTl9PTkNFKCFidWYpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yMTc4PWludCBlZnhfbWNkaV9udnJhbV91cGRhdGVfc3RhcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgdW5zaWduZWQgaW50IHR5cGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yMTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoyMTk2OiNpZmRlZiBDT05GSUdfU0ZDX01URFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yMTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yMTk4PXN0YXRpYyBpbnQgZWZ4X21jZGlfbnZyYW1fcmVhZChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCB1bnNpZ25lZCBpbnQgdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIyMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjIyMjI6I2VuZGlmIC8qIENPTkZJR19TRkNfTVREICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIyMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yMzQyPWludCBlZnhfbWNkaV9udnJhbV91cGRhdGVfZmluaXNoX3BvbGxlZChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCB1bnNpZ25lZCBpbnQgdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIzNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjIzNzI6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIzNzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yNDc0PXZvaWQgZWZ4X21jZGlfbXRkX3JlbmFtZShzdHJ1Y3QgZWZ4X210ZF9wYXJ0aXRpb24gKnBhcnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yNDgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoyNDg0OiNlbmRpZiAvKiBDT05GSUdfU0ZDX01URCAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg9Njc9c3RydWN0IGVmeF9tY2RpX2lmYWNlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTgyLVx0c3RydWN0IHRpbWVyX2xpc3QgYXN5bmNfdGltZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oOjgzOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaC04NC1cdGNoYXIgKmxvZ2dpbmdfYnVmZmVyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg9MTE5PXN0cnVjdCBlZnhfbWNkaV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtMTIwLVx0c3RydWN0IGVmeF9tY2RpX2lmYWNlIGlmYWNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDoxMjE6I2lmZGVmIENPTkZJR19TRkNfTUNESV9NT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtMTIyLVx0c3RydWN0IGVmeF9tY2RpX21vbiBod21vbjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oPTEyNz1zdGF0aWMgaW5saW5lIHN0cnVjdCBlZnhfbWNkaV9pZmFjZSAqZWZ4X21jZGkoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg6MTMzOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTU9OXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEzNC1zdGF0aWMgaW5saW5lIHN0cnVjdCBlZnhfbWNkaV9tb24gKmVmeF9tY2RpX21vbihzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg9NDE3PWludCBlZnhfbWNkaV9nZXRfcHJpdmlsZWdlX21hc2soc3RydWN0IGVmeF9uaWMgKmVmeCwgdTMyICptYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtNDE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDo0MTk6I2lmZGVmIENPTkZJR19TRkNfTUNESV9NT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtNDIwLWludCBlZnhfbWNkaV9tb25fcHJvYmUoc3RydWN0IGVmeF9uaWMgKmVmeCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaD00NDU9aW50IGVmeF9tY2RpX252cmFtX3VwZGF0ZV9maW5pc2hfcG9sbGVkKHN0cnVjdCBlZnhfbmljICplZngsIHVuc2lnbmVkIGludCB0eXBlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtNDQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDo0NDc6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTQ0OC1pbnQgZWZ4X21jZGlfbXRkX3JlYWQoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBzdGFydCwgc2l6ZV90IGxlbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9tb24uYz0xMDM9dm9pZCBlZnhfbWNkaV9zZW5zb3JfZXZlbnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgZWZ4X3F3b3JkX3QgKmV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jLTEzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jOjEzMzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX01PTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmMtMTM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jPTUxOT12b2lkIGVmeF9tY2RpX21vbl9yZW1vdmUoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9tb24uYy01MjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9tb24uYzo1MzA6I2VuZGlmIC8qIENPTkZJR19TRkNfTUNESV9NT04gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oPTEwMTc9c3RydWN0IGVmeF9uaWMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTEwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmg6MTEwNjojaWZkZWYgQ09ORklHX1NGQ19NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTEwNy1cdHN0cnVjdCBsaXN0X2hlYWQgbXRkX2xpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxMTY3OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTExNjgtXHR1bnNpZ25lZCB2Zl9jb3VudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTExOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oOjEyMDA6I2lmZGVmIENPTkZJR19TRkNfQ1hMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTEyMDEtc3RydWN0IGVmeF9jeGw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaD0xMjExPXN0cnVjdCBlZnhfcHJvYmVfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMjEzLVx0c3RydWN0IGVmeF9uaWMgZWZ4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxMjE0OiNpZmRlZiBDT05GSUdfU0ZDX0NYTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMjE1LVx0c3RydWN0IGVmeF9jeGwgKmN4bDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oPTE0MDI9c3RydWN0IGVmeF9uaWNfdHlwZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xNTExLSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxNTEyOiNpZmRlZiBDT05GSUdfU0ZDX01URFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xNTEzLVx0aW50ICgqbXRkX3Byb2JlKShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmljLmg9MTczPXN0cnVjdCBlZnhfZWYxMF9uaWNfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25pYy5oLTE5Ny1cdHU4IHBvcnRfaWRbRVRIX0FMRU5dO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25pYy5oOjE5ODojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25pYy5oLTE5OS1cdHVuc2lnbmVkIGludCB2Zl9pbmRleDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvTWFrZWZpbGU9Mj1zZmMtc2llbmEteVx0XHQmIzQzOz0gZmFyY2gubyBzaWVuYS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlLTctXHRcdFx0ICAgbWNkaV9tb24ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlOjg6c2ZjLXNpZW5hLSQoQ09ORklHX1NGQ19TSUVOQV9NVEQpXHQmIzQzOz0gbXRkLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9NYWtlZmlsZTo5OnNmYy1zaWVuYS0kKENPTkZJR19TRkNfU0lFTkFfU1JJT1YpXHQmIzQzOz0gc2llbmFfc3Jpb3Yub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlOjExOm9iai0kKENPTkZJR19TRkNfU0lFTkEpXHQmIzQzOz0gc2ZjLXNpZW5hLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzMtI2luY2x1ZGUgXCYjMzQ7c3Jpb3YuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jOjM0OiNpZmRlZiBDT05GSUdfU0ZDX1NJRU5BX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzUtI2luY2x1ZGUgXCYjMzQ7c2llbmFfc3Jpb3YuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYz0zNDI9c3RhdGljIGludCBlZnhfcHJvYmVfYWxsKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jLTM2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYzozNjQ6I2lmZGVmIENPTkZJR19TRkNfU0lFTkFfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zNjUtXHRyYyA9IGVmeC1cdTAwM2V0eXBlLVx1MDAzZXZzd2l0Y2hpbmdfcHJvYmUoZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzg3LSBmYWlsNDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYzozODg6I2lmZGVmIENPTkZJR19TRkNfU0lFTkFfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zODktXHRlZngtXHUwMDNldHlwZS1cdTAwM2V2c3dpdGNoaW5nX3JlbW92ZShlZngpO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMDI6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY0OTcKCQkJCQkJCW91dHB1dDogMTExCgkJCQkJCQl0aG91Z2h0czogMzc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIEZ1enppbmcgU3VpdGFiaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIHRoZSBjcml0ZXJpYS4gU2VjdGlvbiAyLCB0aGUgJiMzNDtuZWdhdGl2ZSYjMzQ7IGNyaXRlcmlhLCBhcmUga2V5LiBJJiMzOTttIGxvb2tpbmcgZm9yIHR3byB0aGluZ3M6IGNoYW5nZXMgdGhhdCBhcmVuJiMzOTt0IHRvIGtlcm5lbCBjb2RlIGFuZCBhcmVuJiMzOTt0IGV4ZWN1dGFibGUgKGxpa2UgY2hhbmdlcyB0byBsb2dnaW5nLCB0cmFjZXBvaW50cywgdGhhdCBkb24mIzM5O3QgYWx0ZXIgY29udHJvbCBmbG93KSwgYW5kIGFueXRoaW5nIHRpZWQgdG8gaGFyZHdhcmUgSSBjYW4mIzM5O3QgZWFzaWx5IGVtdWxhdGUuCgpUaGlzIHBhdGNoIHRvdWNoZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmNgLiBJbnRlcmVzdGluZy4gSSBzZWUgaXQgZGVmaW5lcyBhIG1hcHBpbmcgYmV0d2VlbiBmaXJtd2FyZSBJRHMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcywgYGVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZWAuIE9rYXksIGFuZCB0aGVuIGEgYHBjaV9pbmZvKClgIGNhbGwgaXMgYWRkZWQgdG8gcHJpbnQgb3V0IGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQgbmFtZXMgYW5kIElEcyB3aXRoaW4gYGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcygpYC4KCk5vdywgZG9lcyB0aGlzIGZhbGwgdW5kZXIgb3VyIG5lZ2F0aXZlIGNyaXRlcmlhPyBBYnNvbHV0ZWx5LiBGaXJzdCwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9gIGlzIHRoZSBTb2xhcmZsYXJlIEVGMTAgZXRoZXJuZXQgZHJpdmVyLiBUaGF0JiMzOTtzIHZlbmRvci1zcGVjaWZpYywgYSBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZCwgYW5kIGRlZmluaXRlbHkgKm5vdCogc29tZXRoaW5nIHRoYXQmIzM5O3MgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gU2Vjb25kLCB0aGlzIGNoYW5nZSBpcyBwdXJlIGRlY29yYXRpdmUgbG9nZ2luZy4gQSBgcGNpX2luZm9gIG91dHB1dC4gSXQmIzM5O3MgcHJpbnRpbmcgaW5mb3JtYXRpb24sIG5vdCBhbHRlcmluZyBjb250cm9sIGZsb3csIGRhdGEgc3RydWN0dXJlcywgb3IgdGhlIHN0YXRlIG9mIHRoZSBzeXN0ZW0gaW4gYW55IGZ1bmN0aW9uYWwgd2F5LgoKVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzICpub3QqIGEgZ29vZCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEkgaGF2ZSB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgaW4gdGhpcyB0aGF0IGFyZSByZWxldmFudCBmb3IgZnV6emluZywgc28gYEZvY3VzU3ltYm9sc2Agc3RheXMgZW1wdHksIGFuZCBgRW5hYmxlQ29uZmlnc2AgcmVtYWlucyBlbXB0eSAob3IgbnVsbCkuCgpJJiMzOTttIGRvaW5nIGEgc2FuaXR5IGNoZWNrOiBgV29ydGhGdXp6aW5nOiBmYWxzZWAsIGBGb2N1c1N5bWJvbHM6IFtdYCwgYEVuYWJsZUNvbmZpZ3M6IFtdYC4gVGhlIHJlYXNvbmluZyBpcyBjb25jaXNlIGFuZCBhY2N1cmF0ZSwgYmFzZWQgb24gdGhlIGRvY3VtZW50ZWQgY3JpdGVyaWEgYW5kIHRoZSBjb2RlIGNoYW5nZXMuIE5vdywgSSYjMzk7bGwgY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNvbGFyZmxhcmUgRUYxMCBldGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMpIHRvIGFkZCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIHZpYSBwY2lfaW5mbygpIGRlc2NyaWJpbmcgdGhlIGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQuIFRoaXMgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgYW5kIHRoZSBjaGFuZ2UgZG9lcyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU29sYXJmbGFyZSBFRjEwIGV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYykgdG8gYWRkIHB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgdmlhIHBjaV9pbmZvKCkgZGVzY3JpYmluZyB0aGUgZGF0YXBhdGggZmlybXdhcmUgdmFyaWFudC4gVGhpcyBkcml2ZXIgb3BlcmF0ZXMgb24gdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBhbmQgdGhlIGNoYW5nZSBkb2VzIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3Iga2VybmVsIGRhdGEgc3RydWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMDI6NDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDAyOjQ1OjU3LjE0MDQ2NDAwOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3NDY3ODk3MjM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNvbGFyZmxhcmUgRUYxMCBldGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMpIHRvIGFkZCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIHZpYSBwY2lfaW5mbygpIGRlc2NyaWJpbmcgdGhlIGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQuIFRoaXMgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgYW5kIHRoZSBjaGFuZ2UgZG9lcyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMjo0NTo1Ny4xNDA0NjgyNzhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4MTEwNDIyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGI2YzZhMWY5N2MxZjg5YTA2Y2NjOTIwN2MxNTI0M2MwYzA0MjU4ZmJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBTZXAgNCAwMjo0NTo1NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuY1xcbmluZGV4IDczYmMwNjQ5MjlmNjMuLjNiOTJlOTU1MzJjNTQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmNcXG5AQCAtMTA1LDYgKzEwNSwyNiBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2dldF92Zl9pbmRleChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbiB9XFxuICNlbmRpZlxcbiBcXG4rc3RhdGljIGNvbnN0IGNoYXIgKmVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZSh1MTYgZHBjcHVfaWQpXFxuK3tcXG4rXFx0c3dpdGNoIChkcGNwdV9pZCkge1xcbitcXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQOlxcbitcXHRcXHRyZXR1cm4gXFxcImZ1bGwtZmVhdHVyZVxcXCI7XFxuK1xcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYRFBfTE9XX0xBVEVOQ1k6XFxuK1xcdFxcdHJldHVybiBcXFwibG93LWxhdGVuY3lcXFwiO1xcbitcXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1BBQ0tFRF9TVFJFQU06XFxuK1xcdFxcdHJldHVybiBcXFwicGFja2VkLXN0cmVhbVxcXCI7XFxuK1xcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1RYRFBfSElHSF9QQUNLRVRfUkFURTpcXG4rXFx0XFx0cmV0dXJuIFxcXCJoaWdoLXR4LXJhdGVcXFwiO1xcbitcXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1JVTEVTX0VOR0lORTpcXG4rXFx0XFx0cmV0dXJuIFxcXCJydWxlcy1lbmdpbmVcXFwiO1xcbitcXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX0RQREs6XFxuK1xcdFxcdHJldHVybiBcXFwiZHBka1xcXCI7XFxuK1xcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldHVybiBcXFwidW5rbm93blxcXCI7XFxuK1xcdH1cXG4rfVxcbitcXG4gc3RhdGljIGludCBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHMoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4ge1xcbiBcXHRNQ0RJX0RFQ0xBUkVfQlVGKG91dGJ1ZiwgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfVjdfT1VUX0xFTik7XFxuQEAgLTE0NCw2ICsxNjQsMTMgQEAgc3RhdGljIGludCBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHMoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4gXFx0bmljX2RhdGEtXFx1MDAzZXR4X2RwY3B1X2Z3X2lkID1cXG4gXFx0XFx0TUNESV9XT1JEKG91dGJ1ZiwgR0VUX0NBUEFCSUxJVElFU19PVVRfVFhfRFBDUFVfRldfSUQpO1xcbiBcXG4rXFx0cGNpX2luZm8oZWZ4LVxcdTAwM2VwY2lfZGV2LFxcbitcXHRcXHQgXFxcIkRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQ6IHJ4PSVzICgweCV4KSB0eD0lcyAoMHgleClcXFxcblxcXCIsXFxuK1xcdFxcdCBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWUobmljX2RhdGEtXFx1MDAzZXJ4X2RwY3B1X2Z3X2lkKSxcXG4rXFx0XFx0IG5pY19kYXRhLVxcdTAwM2VyeF9kcGNwdV9md19pZCxcXG4rXFx0XFx0IGVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZShuaWNfZGF0YS1cXHUwMDNldHhfZHBjcHVfZndfaWQpLFxcbitcXHRcXHQgbmljX2RhdGEtXFx1MDAzZXR4X2RwY3B1X2Z3X2lkKTtcXG4rXFxuIFxcdGlmICghKG5pY19kYXRhLVxcdTAwM2VkYXRhcGF0aF9jYXBzIFxcdTAwMjZcXG4gXFx0ICAgICAgKDEgXFx1MDAzY1xcdTAwM2MgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYX1BSRUZJWF9MRU5fMTRfTEJOKSkpIHtcXG4gXFx0XFx0bmV0aWZfZXJyKGVmeCwgcHJvYmUsIGVmeC1cXHUwMDNlbmV0X2RldixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDU6NTcuNTIyMjExODUyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozNzA4NjEzNzE5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNvbGFyZmxhcmUgRUYxMCBldGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMpIHRvIGFkZCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIHZpYSBwY2lfaW5mbygpIGRlc2NyaWJpbmcgdGhlIGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQuIFRoaXMgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgYW5kIHRoZSBjaGFuZ2UgZG9lcyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGI2YzZhMWY5N2MxZjg5YTA2Y2NjOTIwN2MxNTI0M2MwYzA0MjU4ZmJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIFNlcCA0IDAyOjQ1OjU2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmNcbmluZGV4IDczYmMwNjQ5MjlmNjMuLjNiOTJlOTU1MzJjNTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jXG5AQCAtMTA1LDYgKzEwNSwyNiBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2dldF92Zl9pbmRleChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuIH1cbiAjZW5kaWZcbiBcbitzdGF0aWMgY29uc3QgY2hhciAqZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKHUxNiBkcGNwdV9pZClcbit7XG4rXHRzd2l0Y2ggKGRwY3B1X2lkKSB7XG4rXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQOlxuK1x0XHRyZXR1cm4gXCJmdWxsLWZlYXR1cmVcIjtcbitcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYRFBfTE9XX0xBVEVOQ1k6XG4rXHRcdHJldHVybiBcImxvdy1sYXRlbmN5XCI7XG4rXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1BBQ0tFRF9TVFJFQU06XG4rXHRcdHJldHVybiBcInBhY2tlZC1zdHJlYW1cIjtcbitcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1RYRFBfSElHSF9QQUNLRVRfUkFURTpcbitcdFx0cmV0dXJuIFwiaGlnaC10eC1yYXRlXCI7XG4rXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1JVTEVTX0VOR0lORTpcbitcdFx0cmV0dXJuIFwicnVsZXMtZW5naW5lXCI7XG4rXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX0RQREs6XG4rXHRcdHJldHVybiBcImRwZGtcIjtcbitcdGRlZmF1bHQ6XG4rXHRcdHJldHVybiBcInVua25vd25cIjtcbitcdH1cbit9XG4rXG4gc3RhdGljIGludCBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHMoc3RydWN0IGVmeF9uaWMgKmVmeClcbiB7XG4gXHRNQ0RJX0RFQ0xBUkVfQlVGKG91dGJ1ZiwgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfVjdfT1VUX0xFTik7XG5AQCAtMTQ0LDYgKzE2NCwxMyBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuIFx0bmljX2RhdGEtXHUwMDNldHhfZHBjcHVfZndfaWQgPVxuIFx0XHRNQ0RJX1dPUkQob3V0YnVmLCBHRVRfQ0FQQUJJTElUSUVTX09VVF9UWF9EUENQVV9GV19JRCk7XG4gXG4rXHRwY2lfaW5mbyhlZngtXHUwMDNlcGNpX2RldixcbitcdFx0IFwiRGF0YXBhdGggZmlybXdhcmUgdmFyaWFudDogcng9JXMgKDB4JXgpIHR4PSVzICgweCV4KVxcblwiLFxuK1x0XHQgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKG5pY19kYXRhLVx1MDAzZXJ4X2RwY3B1X2Z3X2lkKSxcbitcdFx0IG5pY19kYXRhLVx1MDAzZXJ4X2RwY3B1X2Z3X2lkLFxuK1x0XHQgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKG5pY19kYXRhLVx1MDAzZXR4X2RwY3B1X2Z3X2lkKSxcbitcdFx0IG5pY19kYXRhLVx1MDAzZXR4X2RwY3B1X2Z3X2lkKTtcbitcbiBcdGlmICghKG5pY19kYXRhLVx1MDAzZWRhdGFwYXRoX2NhcHMgXHUwMDI2XG4gXHQgICAgICAoMSBcdTAwM2NcdTAwM2MgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYX1BSRUZJWF9MRU5fMTRfTEJOKSkpIHtcbiBcdFx0bmV0aWZfZXJyKGVmeCwgcHJvYmUsIGVmeC1cdTAwM2VuZXRfZGV2LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDU6NTcuNTIyMjEzNDYyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTIwMDU2MDQyNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTb2xhcmZsYXJlIEVGMTAgRHJpdmVyIFVwZGF0ZSoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIGRpZmYuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgYmVlbiBtb2RpZmllZCwgc28gSSdsbCB6ZXJvIGluIG9uIHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jYC4gQWgsIHRoZXkndmUgYWRkZWQgYSBuZXcgZnVuY3Rpb24sIGBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWVgLCBhbmQgYSBjYWxsIHRvIGBwY2lfaW5mb2Agd2l0aGluIGBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHNgLiBJbnRlcmVzdGluZy5cblxuTm93LCBsZXQncyBzdGVwIGJhY2sgYW5kIGNvbnNpZGVyIHRoZSBjb250ZXh0LiBUaGlzIGlzIHRoZSBTb2xhcmZsYXJlIChTRkMpIEVGMTAgZXRoZXJuZXQgZHJpdmVyLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgdGhlc2UgYXJlIHBoeXNpY2FsIFBDSSBldGhlcm5ldCBkZXZpY2VzOyB5b3UgZG9uJ3QgdHlwaWNhbGx5IHNlZSBTRkMgTklDcyBydW5uaW5nIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGV5IGFyZSBkZXNpZ25lZCBmb3IgYmFyZS1tZXRhbCwgaGlnaC1wZXJmb3JtYW5jZSBhcHBsaWNhdGlvbnMuIFNvLCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoaXMgY29kZSBpcyBldmVuIHJlbGV2YW50IGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZywgb3IgaWYgaXQncyBwdXJlbHkgZm9yIHBoeXNpY2FsIGhhcmR3YXJlLlxuXG5Mb29raW5nIG1vcmUgY2xvc2VseSBhdCB0aGUgY29kZSBjaGFuZ2UsIGl0IGFwcGVhcnMgdGhpcyBuZXcgZnVuY3Rpb24sIGBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWVgLCBpcyBqdXN0IGEgaGVscGVyIHRoYXQgcmV0dXJucyBhIHN0cmluZyBjb25zdGFudCBiYXNlZCBvbiBzb21lIElELiBBbmQsIGBwY2lfaW5mb2AgaXMgYmVpbmcgdXNlZCB0byBsb2cgdGhpcyBpbmZvcm1hdGlvbiBkdXJpbmcgdGhlIHByb2JlIHByb2Nlc3MuXG5cbkdpdmVuIGFsbCBvZiB0aGlzLCBteSBpbW1lZGlhdGUgYXNzZXNzbWVudCBpcyB0aGF0OiAxKSBUaGlzIGNoYW5nZSBpcyBoYXBwZW5pbmcgd2l0aGluIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZXRoZXJuZXQgZHJpdmVyIOKAkyBTb2xhcmZsYXJlIOKAkyB3aGljaCBhbG1vc3QgY2VydGFpbmx5IHJlcXVpcmVzIHRoZSBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgYW5kIGlzbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLiAyKSBUaGUgbG9nZ2luZyB1c2luZyBgcGNpX2luZm9gIGlzIHB1cmVseSBkZWNvcmF0aXZlLiBUaGVyZSBpcyBubyBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmUgbWFuaXB1bGF0aW9uIGhlcmUsIHdoaWNoIGlzIHdoYXQgSSdtIGxvb2tpbmcgZm9yLlxuXG5JJ2xsIHF1aWNrbHkgdmVyaWZ5IHRoZXNlIGFzc3VtcHRpb25zLiBMZXQncyBtYWtlIHN1cmUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9gIGlzIGluZGVlZCB3aGF0IEkgdGhpbmsgaXQgaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MzMsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMjo0NjowOS41Mjc4MjA1NjFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI3MTU3NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19TRkNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgODQ2IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU9Mj1zZmMteVxcdFxcdFxcdCs9IGVmeC5vIGVmeF9jb21tb24ubyBlZnhfY2hhbm5lbHMubyBuaWMubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGUtMTAtXFx0XFx0XFx0ICAgZWZ4X2RldmxpbmsubyBlZnhfcmVmbGFzaC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjExOnNmYy0kKENPTkZJR19TRkNfTVREKVxcdCs9IG10ZC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjEyOnNmYy0kKENPTkZJR19TRkNfU1JJT1YpXFx0Kz0gc3Jpb3YubyBlZjEwX3NyaW92Lm8gZWYxMDBfc3Jpb3YubyBlZjEwMF9yZXAubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlLTEzLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hZS5vIHRjLm8gdGNfYmluZGluZ3MubyB0Y19jb3VudGVycy5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9NYWtlZmlsZS0xNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU6MTY6c2ZjLSQoQ09ORklHX1NGQ19DWEwpXFx0Kz0gZWZ4X2N4bC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjE3Om9iai0kKENPTkZJR19TRkMpXFx0Kz0gc2ZjLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGUtMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjE5Om9iai0kKENPTkZJR19TRkNfRkFMQ09OKSArPSBmYWxjb24vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19TRkNfU0lFTkEpICs9IHNpZW5hL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz04Mz1zdGF0aWMgYm9vbCBlZnhfZWYxMF9pc192ZihzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy04Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjg4OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy04OS1zdGF0aWMgaW50IGVmeF9lZjEwX2dldF92Zl9pbmRleChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz01NTk9c3RhdGljIGludCBlZnhfZWYxMF9wcm9iZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy02ODQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo2ODU6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTY4Ni1cXHRpZiAoKGVmeC1cXHUwMDNlcGNpX2Rldi1cXHUwMDNlcGh5c2ZuKSBcXHUwMDI2XFx1MDAyNiAoIWVmeC1cXHUwMDNlcGNpX2Rldi1cXHUwMDNlaXNfcGh5c2ZuKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz05NTM9c3RhdGljIHZvaWQgZWZ4X2VmMTBfcmVtb3ZlKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTk1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjk1ODojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtOTU5LVxcdHN0cnVjdCBlZnhfZWYxMF9uaWNfZGF0YSAqbmljX2RhdGFfcGY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTEwODY9aW50IGVmeF9lZjEwX3Zwb3J0X2RlbF9tYWMoc3RydWN0IGVmeF9uaWMgKmVmeCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTA5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjEwOTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTEwOTktc3RhdGljIGludCBlZnhfZWYxMF9wcm9iZV92ZihzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0xMTcwPXN0YXRpYyBpbnQgZWZ4X2VmMTBfZGltZW5zaW9uX3Jlc291cmNlcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0xMTc2LVxcdHVuc2lnbmVkIGludCB1Y19tZW1fbWFwX3NpemUsIHdjX21lbV9tYXBfc2l6ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjExNzc6I2lmZGVmIENPTkZJR19TRkNfQ1hMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0xMTc4LVxcdHN0cnVjdCBlZnhfcHJvYmVfZGF0YSAqcHJvYmVfZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTMwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjEzMDg6I2lmZGVmIENPTkZJR19TRkNfQ1hMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0xMzA5LVxcdHByb2JlX2RhdGEgPSBjb250YWluZXJfb2YoZWZ4LCBzdHJ1Y3QgZWZ4X3Byb2JlX2RhdGEsIGVmeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTE0NDE9c3RhdGljIHZvaWQgZWZ4X2VmMTBfdGFibGVfcmVzZXRfbWNfYWxsb2NhdGlvbnMoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ0My1cXHRzdHJ1Y3QgZWZ4X2VmMTBfbmljX2RhdGEgKm5pY19kYXRhID0gZWZ4LVxcdTAwM2VuaWNfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjE0NDQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTE0NDUtXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTE0NTctXFx0ZWZ4LVxcdTAwM2V2cG9ydF9pZCA9IEVWQl9QT1JUX0lEX0FTU0lHTkVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6MTQ1ODojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ1OS1cXHRpZiAobmljX2RhdGEtXFx1MDAzZXZmKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0zMzU3PXN0YXRpYyBpbnQgZWZ4X2VmMTBfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTMzNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzozMzYzOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0zMzY0LVxcdC8qIElmIHRoaXMgZnVuY3Rpb24gaXMgYSBWRiBhbmQgd2UgaGF2ZSBhY2Nlc3MgdG8gdGhlIHBhcmVudCBQRixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9MzQ5Nz1lZnhfZWYxMF90ZXN0X2NoaXAoc3RydWN0IGVmeF9uaWMgKmVmeCwgc3RydWN0IGVmeF9zZWxmX3Rlc3RzICp0ZXN0cylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMzUxOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjM1MjA6I2lmZGVmIENPTkZJR19TRkNfTVREXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0zNTIxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0zNjI0PXN0YXRpYyBpbnQgZWZ4X2VmMTBfbXRkX3Byb2JlKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTM2NzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzozNjc3OiNlbmRpZiAvKiBDT05GSUdfU0ZDX01URCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMzY3OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9NDExND1jb25zdCBzdHJ1Y3QgZWZ4X25pY190eXBlIGVmeF9odW50X2EwX3ZmX25pY190eXBlID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MTg4LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6NDE4OTojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQxOTAtXFx0Lm10ZF9wcm9iZSA9IGVmeF9wb3J0X2R1bW15X29wX2ludCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDE5NS1cXHQudmxhbl9yeF9raWxsX3ZpZCA9IGVmeF9lZjEwX3ZsYW5fcnhfa2lsbF92aWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0MTk2OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MTk3LVxcdC52c3dpdGNoaW5nX3Byb2JlID0gZWZ4X2VmMTBfdnN3aXRjaGluZ19wcm9iZV92ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9NDIyNj1jb25zdCBzdHJ1Y3QgZWZ4X25pY190eXBlIGVmeF9odW50X2EwX25pY190eXBlID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MzA1LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6NDMwNjojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQzMDctXFx0Lm10ZF9wcm9iZSA9IGVmeF9lZjEwX210ZF9wcm9iZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDMyMC1cXHQudWRwX3RubF9oYXNfcG9ydCA9IGVmeF9lZjEwX3VkcF90bmxfaGFzX3BvcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0MzIxOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MzIyLVxcdC5zcmlvdl9jb25maWd1cmUgPSBlZnhfZWYxMF9zcmlvdl9jb25maWd1cmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTQzNjI9Y29uc3Qgc3RydWN0IGVmeF9uaWNfdHlwZSBlZnhfeDRfbmljX3R5cGUgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQ0MzgtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0NDM5OiNpZmRlZiBDT05GSUdfU0ZDX01URFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDQ0MC1cXHQubXRkX3Byb2JlID0gZWZ4X2VmMTBfbXRkX3Byb2JlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00NDUzLVxcdC51ZHBfdG5sX2hhc19wb3J0ID0gZWZ4X2VmMTBfdWRwX3RubF9oYXNfcG9ydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjQ0NTQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQ0NTUtXFx0LyogY3VycmVudGx5IHNldCB0byB0aGUgVkYgdmVyc2lvbnMgb2YgdGhlc2UgZnVuY3Rpb25zXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYz00MjM9c3RhdGljIHZvaWQgZWYxMDBfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTQzMi1cXHRlZjEwMF9yZW1vdmVfbmV0ZGV2KHByb2JlX2RhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jOjQzMzojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTQzNC1cXHRlZnhfZmluaV9zdHJ1Y3RfdGMoZWZ4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jPTQ0Nz1zdGF0aWMgaW50IGVmMTAwX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTUyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYzo1MjE6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYy01MjItc3RhdGljIGludCBlZjEwMF9wY2lfc3Jpb3ZfY29uZmlndXJlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBudW1fdmZzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwLmM9NTQ3PXN0cnVjdCBwY2lfZHJpdmVyIGVmMTAwX3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYy01NTEtXFx0LnJlbW92ZSAgICAgICAgID0gZWYxMDBfcGNpX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYzo1NTI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYy01NTMtXFx0LnNyaW92X2NvbmZpZ3VyZSA9IGVmMTAwX3BjaV9zcmlvdl9jb25maWd1cmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmM9Mjc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgZWYxMDBfbmV0ZGV2X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy0yOTEtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jOjI5MjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy0yOTMtXFx0Lm5kb19zZXR1cF90Y1xcdFxcdD0gZWZ4X3RjX3NldHVwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jPTM4Mz12b2lkIGVmMTAwX3JlbW92ZV9uZXRkZXYoc3RydWN0IGVmeF9wcm9iZV9kYXRhICpwcm9iZV9kYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTM5NS1cXHR1bnJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFxcdTAwMjZlZngtXFx1MDAzZW5ldGV2ZW50X25vdGlmaWVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmM6Mzk2OiNpZiBkZWZpbmVkKENPTkZJR19TRkNfU1JJT1YpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTM5Ny1cXHRpZiAoIWVmeC1cXHUwMDNldHlwZS1cXHUwMDNlaXNfdmYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmMtNDAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzo0MDQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmMtNDA1LVxcdGVmMTAwX3BmX3Vuc2V0X2RldmxpbmtfcG9ydChlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jPTQyMz1pbnQgZWYxMDBfcHJvYmVfbmV0ZGV2KHN0cnVjdCBlZnhfcHJvYmVfZGF0YSAqcHJvYmVfZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MDEtXFx0XFx0XFx0Z290byBmYWlsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzo1MDI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmMtNTAzLVxcdFxcdGVmMTAwX3BmX3NldF9kZXZsaW5rX3BvcnQoZWZ4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MjUtZmFpbDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmM6NTI2OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTUyNy1cXHQvKiByZW1vdmUgZGV2bGluayBwb3J0IGlmIGRvZXMgZXhpc3QgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz0zOTE9c3RhdGljIGludCBlZjEwMF9maWx0ZXJfdGFibGVfdXAoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy00MDYtXFx0dXBfd3JpdGUoXFx1MDAyNmVmeC1cXHUwMDNlZmlsdGVyX3NlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jOjQwNzpcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfU0ZDX1NSSU9WKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtNDA4LVxcdFxcdHJjID0gZWZ4X3RjX2luc2VydF9yZXBfZmlsdGVycyhlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jPTQyNT1zdGF0aWMgdm9pZCBlZjEwMF9maWx0ZXJfdGFibGVfZG93bihzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy00MjYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYzo0Mjc6XFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1NGQ19TUklPVikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTQyOC1cXHRcXHRlZnhfdGNfcmVtb3ZlX3JlcF9maWx0ZXJzKGVmeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmM9MTE0OT1pbnQgZWYxMDBfcHJvYmVfbmV0ZGV2X3BmKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtMTE1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmM6MTE1NTpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1NGQ19TUklPVikgfHwgIW5pY19kYXRhLVxcdTAwM2VncnBfbWFlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy0xMTU2LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jPTEyMDA9dm9pZCBlZjEwMF9yZW1vdmUoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy0xMjAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYzoxMjA0OlxcdGlmIChJU19FTkFCTEVEKENPTkZJR19TRkNfU1JJT1YpIFxcdTAwMjZcXHUwMDI2IGVmeC1cXHUwMDNlbWFlKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTEyMDUtXFx0XFx0ZWZ4X2VmMTAwX2ZpbmlfcmVwcyhlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jPTEyMjQ9Y29uc3Qgc3RydWN0IGVmeF9uaWNfdHlwZSBlZjEwMF9wZl9uaWNfdHlwZSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy0xMzAwLVxcdC5zdG9wX3N0YXRzID0gZWZ4X21jZGlfbWFjX3N0b3Bfc3RhdHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jOjEzMDE6XFx0LnNyaW92X2NvbmZpZ3VyZSA9IElTX0VOQUJMRUQoQ09ORklHX1NGQ19TUklPVikgP1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy0xMzAyLVxcdFxcdGVmeF9lZjEwMF9zcmlvdl9jb25maWd1cmUgOiBOVUxMLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX3J4LmM9NTY9dm9pZCBfX2VmMTAwX3J4X3BhY2tldChzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfcnguYy05NC1cXHRpZiAobmljX2RhdGEtXFx1MDAzZWhhdmVfbXBvcnQgXFx1MDAyNlxcdTAwMjYgaW5nX3BvcnQgIT0gbmljX2RhdGEtXFx1MDAzZWJhc2VfbXBvcnQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfcnguYzo5NTojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9yeC5jLTk2LVxcdFxcdHN0cnVjdCBlZnhfcmVwICplZnY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9MzM0PXN0YXRpYyBpbnQgZWZ4X3Byb2JlX2FsbChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTM1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6MzU2OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTM1Ny1cXHRyYyA9IGVmeC1cXHUwMDNldHlwZS1cXHUwMDNldnN3aXRjaGluZ19wcm9iZShlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTM4MS0gZmFpbDQ6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jOjM4MjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0zODMtXFx0ZWZ4LVxcdTAwM2V0eXBlLVxcdTAwM2V2c3dpdGNoaW5nX3JlbW92ZShlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jPTM5Mz1zdGF0aWMgdm9pZCBlZnhfcmVtb3ZlX2FsbChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTQwMC1cXHRlZnhfcmVtb3ZlX2ZpbHRlcnMoZWZ4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6NDAxOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTQwMi1cXHRlZngtXFx1MDAzZXR5cGUtXFx1MDAzZXZzd2l0Y2hpbmdfcmVtb3ZlKGVmeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9NTY4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgZWZ4X25ldGRldl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNTgzLVxcdC5uZG9faHd0c3RhbXBfZ2V0XFx0PSBlZnhfaHd0c3RhbXBfZ2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYzo1ODQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNTg1LVxcdC5uZG9fc2V0X3ZmX21hY1xcdFxcdD0gZWZ4X3NyaW92X3NldF92Zl9tYWMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9MTE1Mz1zdGF0aWMgaW50IGVmeF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtMTI2MS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6MTI2MjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0xMjYzLXN0YXRpYyBpbnQgZWZ4X3BjaV9zcmlvdl9jb25maWd1cmUoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG51bV92ZnMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9MTQwOD1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgZWZ4X3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtMTQxNS1cXHQuZXJyX2hhbmRsZXJcXHQ9IFxcdTAwMjZlZnhfZXJyX2hhbmRsZXJzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYzoxNDE2OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTE0MTctXFx0LnNyaW92X2NvbmZpZ3VyZSA9IGVmeF9wY2lfc3Jpb3ZfY29uZmlndXJlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oPTE3OD12b2lkIGVmeF91cGRhdGVfc3dfc3RhdHMoc3RydWN0IGVmeF9uaWMgKmVmeCwgdTY0ICpzdGF0cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmgtMTgwLS8qIE1URCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaDoxODE6I2lmZGVmIENPTkZJR19TRkNfTVREXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oLTE4Mi1pbnQgZWZ4X210ZF9hZGQoc3RydWN0IGVmeF9uaWMgKmVmeCwgc3RydWN0IGVmeF9tdGRfcGFydGl0aW9uICpwYXJ0cyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaD0xOTM9c3RhdGljIGlubGluZSB2b2lkIGVmeF9tdGRfcmVtb3ZlKHN0cnVjdCBlZnhfbmljICplZngpIHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmgtMTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaDoxOTY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmgtMTk3LXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGVmeF92Zl9zaXplKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmM9ODM9c3RhdGljIHVuc2lnbmVkIGludCBlZnhfd2FudGVkX3BhcmFsbGVsaXNtKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmMtMTA2LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY2hhbm5lbHMuYzoxMDc6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmMtMTA4LVxcdGlmIChlZngtXFx1MDAzZXR5cGUtXFx1MDAzZXNyaW92X3dhbnRlZCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jPTI0Nz1pbnQgZWZ4X3Byb2JlX2ludGVycnVwdHMoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY2hhbm5lbHMuYy0zNDgtXFx0LyogUlNTIG1pZ2h0IGJlIHVzYWJsZSBvbiBWRnMgZXZlbiBpZiBpdCBpcyBkaXNhYmxlZCBvbiB0aGUgUEYgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmM6MzQ5OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jLTM1MC1cXHRpZiAoZWZ4LVxcdTAwM2V0eXBlLVxcdTAwM2Vzcmlvdl93YW50ZWQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmM9NzIzPWludCBlZnhfcmVzZXRfdXAoc3RydWN0IGVmeF9uaWMgKmVmeCwgZW51bSByZXNldF90eXBlIG1ldGhvZCwgYm9vbCBvaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmMtNzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmM6NzU0OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy03NTUtXFx0cmMgPSBlZngtXFx1MDAzZXR5cGUtXFx1MDAzZXZzd2l0Y2hpbmdfcmVzdG9yZShlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYz05NjE9aW50IGVmeF9pbml0X3N0cnVjdChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmMtOTY4LVxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZlZngtXFx1MDAzZWJpdV9sb2NrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jOjk2OTojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTk3MC1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2ZWZ4LVxcdTAwM2VtdGRfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jPTExMTc9dm9pZCBlZnhfZmluaV9pbyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy0xMTM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmM6MTEzNzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTExMzgtc3RhdGljIHNzaXplX3QgbWNkaV9sb2dnaW5nX3Nob3coc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uaD04MT1zdGF0aWMgaW5saW5lIHZvaWQgZWZ4X3NjaGVkdWxlX2NoYW5uZWxfaXJxKHN0cnVjdCBlZnhfY2hhbm5lbCAqY2hhbm5lbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmgtODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uaDo4NzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5oLTg4LXZvaWQgZWZ4X2luaXRfbWNkaV9sb2dnaW5nKHN0cnVjdCBlZnhfbmljICplZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jeGwuaC0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2N4bC5oOjE0OiNpZmRlZiBDT05GSUdfU0ZDX0NYTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY3hsLmgtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0xNy0jaW5jbHVkZSBcXFwibWNkaV9wY29sLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM6MTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0xOS0jaW5jbHVkZSBcXFwibWFlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYz0yND1zdHJ1Y3QgZWZ4X2Rldmxpbmsge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM6Mjg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0yOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5jPTYyOT1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIHNmY19kZXZsaW5rX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5jLTYzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYzo2MzU6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy02MzYtc3RhdGljIHN0cnVjdCBkZXZsaW5rX3BvcnQgKmVmMTAwX3NldF9kZXZsaW5rX3BvcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgdTMyIGlkeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oPTM3PXZvaWQgZWZ4X2ZpbmlfZGV2bGlua19hbmRfdW5sb2NrKHN0cnVjdCBlZnhfbmljICplZngpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oLTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oOjM5OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmgtNDAtc3RydWN0IGVmeF9yZXA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlPTI9c2ZjLWZhbGNvbi15XFx0XFx0Kz0gZWZ4Lm8gbmljLm8gZmFyY2gubyBmYWxjb24ubyB0eC5vIHJ4Lm8gc2VsZnRlc3QubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9NYWtlZmlsZTo2OnNmYy1mYWxjb24tJChDT05GSUdfU0ZDX0ZBTENPTl9NVEQpXFx0Kz0gbXRkLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX1NGQ19GQUxDT04pXFx0XFx0Kz0gc2ZjLWZhbGNvbi5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2VmeC5jPTI2MTU9c3RhdGljIGludCBlZjRfaW5pdF9zdHJ1Y3Qoc3RydWN0IGVmNF9uaWMgKmVmeCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4LmMtMjYyMy1cXHRzcGluX2xvY2tfaW5pdChcXHUwMDI2ZWZ4LVxcdTAwM2ViaXVfbG9jayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguYzoyNjI0OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2VmeC5jLTI2MjUtXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNmVmeC1cXHUwMDNlbXRkX2xpc3QpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguaD0yMTQ9dm9pZCBlZjRfdXBkYXRlX3N3X3N0YXRzKHN0cnVjdCBlZjRfbmljICplZngsIHU2NCAqc3RhdHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguaC0yMTYtLyogTVREICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguaDoyMTc6I2lmZGVmIENPTkZJR19TRkNfRkFMQ09OX01URFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4LmgtMjE4LWludCBlZjRfbXRkX2FkZChzdHJ1Y3QgZWY0X25pYyAqZWZ4LCBzdHJ1Y3QgZWY0X210ZF9wYXJ0aXRpb24gKnBhcnRzLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYz02MTY9ZmFsY29uX3NwaV9yZWFkKHN0cnVjdCBlZjRfbmljICplZngsIGNvbnN0IHN0cnVjdCBmYWxjb25fc3BpX2RldmljZSAqc3BpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYy02NDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzo2NDY6I2lmZGVmIENPTkZJR19TRkNfRkFMQ09OX01URFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtNjQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYz05MjE9c3RhdGljIGludCBmYWxjb25fbXRkX3Byb2JlKHN0cnVjdCBlZjRfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTk3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jOjk3MTojZW5kaWYgLyogQ09ORklHX1NGQ19GQUxDT05fTVREICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYy05NzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jPTI3MDg9Y29uc3Qgc3RydWN0IGVmNF9uaWNfdHlwZSBmYWxjb25fYTFfbmljX3R5cGUgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI3ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzoyNzgyOiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI3ODMtXFx0Lm10ZF9wcm9iZSA9IGZhbGNvbl9tdGRfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jPTI4MDU9Y29uc3Qgc3RydWN0IGVmNF9uaWNfdHlwZSBmYWxjb25fYjBfbmljX3R5cGUgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI4NzgtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzoyODc5OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI4ODAtXFx0Lm10ZF9wcm9iZSA9IGZhbGNvbl9tdGRfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaD03NjM9c3RydWN0IGVmNF9uaWMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmgtODM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vbmV0X2RyaXZlci5oOjgzODojaWZkZWYgQ09ORklHX1NGQ19GQUxDT05fTVREXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmgtODM5LVxcdHN0cnVjdCBsaXN0X2hlYWQgbXRkX2xpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaD0xMDQwPXN0cnVjdCBlZjRfbmljX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmgtMTEyNy0jZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaDoxMTI4OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaC0xMTI5LVxcdGludCAoKm10ZF9wcm9iZSkoc3RydWN0IGVmNF9uaWMgKmVmeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTUyPXN0YXRpYyB2b2lkIGVmeF9tY2RpX2FiYW5kb24oc3RydWN0IGVmeF9uaWMgKmVmeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy01My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjU0OiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtNTUtc3RhdGljIGJvb2wgbWNkaV9sb2dnaW5nX2RlZmF1bHQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTYxPWludCBlZnhfbWNkaV9pbml0KHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTcyLVxcdG1jZGktXFx1MDAzZWVmeCA9IGVmeDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjczOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtNzQtXFx0LyogY29uc3VtaW5nIGNvZGUgYXNzdW1lcyBidWZmZXIgaXMgcGFnZS1zaXplZCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0xMTQtZmFpbDI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoxMTU6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0xMTYtXFx0a2ZyZWUobWNkaS1cXHUwMDNlbG9nZ2luZ19idWZmZXIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0xMzY9dm9pZCBlZnhfbWNkaV9maW5pKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjE0MTojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE0Mi1cXHRrZnJlZShlZngtXFx1MDAzZW1jZGktXFx1MDAzZWlmYWNlLmxvZ2dpbmdfYnVmZmVyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM9MTQ4PXN0YXRpYyB2b2lkIGVmeF9tY2RpX3NlbmRfcmVxdWVzdChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCB1bnNpZ25lZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE1MS1cXHRzdHJ1Y3QgZWZ4X21jZGlfaWZhY2UgKm1jZGkgPSBlZnhfbWNkaShlZngpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MTUyOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMTUzLVxcdGNoYXIgKmJ1ZiA9IG1jZGktXFx1MDAzZWxvZ2dpbmdfYnVmZmVyOyAvKiBwYWdlLXNpemVkICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjE5OTojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIwMC1cXHRpZiAobWNkaS1cXHUwMDNlbG9nZ2luZ19lbmFibGVkIFxcdTAwMjZcXHUwMDI2ICFXQVJOX09OX09OQ0UoIWJ1ZikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM9MjYzPXN0YXRpYyB2b2lkIGVmeF9tY2RpX3JlYWRfcmVzcG9uc2VfaGVhZGVyKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTI2Ni1cXHR1bnNpZ25lZCBpbnQgcmVzcHNlcSwgcmVzcGNtZCwgZXJyb3I7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoyNjc6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yNjgtXFx0Y2hhciAqYnVmID0gbWNkaS1cXHUwMDNlbG9nZ2luZ19idWZmZXI7IC8qIHBhZ2Utc2l6ZWQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6Mjg3OiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjg4LVxcdGlmIChtY2RpLVxcdTAwM2Vsb2dnaW5nX2VuYWJsZWQgXFx1MDAyNlxcdTAwMjYgIVdBUk5fT05fT05DRSghYnVmKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yMTc4PWludCBlZnhfbWNkaV9udnJhbV91cGRhdGVfc3RhcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgdW5zaWduZWQgaW50IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIxOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoyMTk2OiNpZmRlZiBDT05GSUdfU0ZDX01URFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjE5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTIxOTg9c3RhdGljIGludCBlZnhfbWNkaV9udnJhbV9yZWFkKHN0cnVjdCBlZnhfbmljICplZngsIHVuc2lnbmVkIGludCB0eXBlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yMjIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MjIyMjojZW5kaWYgLyogQ09ORklHX1NGQ19NVEQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIyMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTIzNDI9aW50IGVmeF9tY2RpX252cmFtX3VwZGF0ZV9maW5pc2hfcG9sbGVkKHN0cnVjdCBlZnhfbmljICplZngsIHVuc2lnbmVkIGludCB0eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MjM3MjojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIzNzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTI0NzQ9dm9pZCBlZnhfbWNkaV9tdGRfcmVuYW1lKHN0cnVjdCBlZnhfbXRkX3BhcnRpdGlvbiAqcGFydClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjQ4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjI0ODQ6I2VuZGlmIC8qIENPTkZJR19TRkNfTVREICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oPTY3PXN0cnVjdCBlZnhfbWNkaV9pZmFjZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTgyLVxcdHN0cnVjdCB0aW1lcl9saXN0IGFzeW5jX3RpbWVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg6ODM6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaC04NC1cXHRjaGFyICpsb2dnaW5nX2J1ZmZlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg9MTE5PXN0cnVjdCBlZnhfbWNkaV9kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEyMC1cXHRzdHJ1Y3QgZWZ4X21jZGlfaWZhY2UgaWZhY2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDoxMjE6I2lmZGVmIENPTkZJR19TRkNfTUNESV9NT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEyMi1cXHRzdHJ1Y3QgZWZ4X21jZGlfbW9uIGh3bW9uO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaD0xMjc9c3RhdGljIGlubGluZSBzdHJ1Y3QgZWZ4X21jZGlfaWZhY2UgKmVmeF9tY2RpKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oOjEzMzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX01PTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtMTM0LXN0YXRpYyBpbmxpbmUgc3RydWN0IGVmeF9tY2RpX21vbiAqZWZ4X21jZGlfbW9uKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oPTQxNz1pbnQgZWZ4X21jZGlfZ2V0X3ByaXZpbGVnZV9tYXNrKHN0cnVjdCBlZnhfbmljICplZngsIHUzMiAqbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaC00MTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDo0MTk6I2lmZGVmIENPTkZJR19TRkNfTUNESV9NT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTQyMC1pbnQgZWZ4X21jZGlfbW9uX3Byb2JlKHN0cnVjdCBlZnhfbmljICplZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaD00NDU9aW50IGVmeF9tY2RpX252cmFtX3VwZGF0ZV9maW5pc2hfcG9sbGVkKHN0cnVjdCBlZnhfbmljICplZngsIHVuc2lnbmVkIGludCB0eXBlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTQ0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oOjQ0NzojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTQ0OC1pbnQgZWZ4X21jZGlfbXRkX3JlYWQoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBzdGFydCwgc2l6ZV90IGxlbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jPTEwMz12b2lkIGVmeF9tY2RpX3NlbnNvcl9ldmVudChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBlZnhfcXdvcmRfdCAqZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9tb24uYy0xMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmM6MTMzOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTU9OXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmMtMTM0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmM9NTE5PXZvaWQgZWZ4X21jZGlfbW9uX3JlbW92ZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmMtNTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jOjUzMDojZW5kaWYgLyogQ09ORklHX1NGQ19NQ0RJX01PTiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaD0xMDE3PXN0cnVjdCBlZnhfbmljIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTEwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oOjExMDY6I2lmZGVmIENPTkZJR19TRkNfTVREXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMTA3LVxcdHN0cnVjdCBsaXN0X2hlYWQgbXRkX2xpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTExNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxMTY3OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMTY4LVxcdHVuc2lnbmVkIHZmX2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmg6MTIwMDojaWZkZWYgQ09ORklHX1NGQ19DWExcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTEyMDEtc3RydWN0IGVmeF9jeGw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oPTEyMTE9c3RydWN0IGVmeF9wcm9iZV9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTIxMy1cXHRzdHJ1Y3QgZWZ4X25pYyBlZng7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxMjE0OiNpZmRlZiBDT05GSUdfU0ZDX0NYTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTIxNS1cXHRzdHJ1Y3QgZWZ4X2N4bCAqY3hsO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaD0xNDAyPXN0cnVjdCBlZnhfbmljX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xNTExLSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmg6MTUxMjojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTE1MTMtXFx0aW50ICgqbXRkX3Byb2JlKShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uaWMuaD0xNzM9c3RydWN0IGVmeF9lZjEwX25pY19kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uaWMuaC0xOTctXFx0dTggcG9ydF9pZFtFVEhfQUxFTl07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25pYy5oOjE5ODojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uaWMuaC0xOTktXFx0dW5zaWduZWQgaW50IHZmX2luZGV4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlPTI9c2ZjLXNpZW5hLXlcXHRcXHQrPSBmYXJjaC5vIHNpZW5hLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlLTctXFx0XFx0XFx0ICAgbWNkaV9tb24ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9NYWtlZmlsZTo4OnNmYy1zaWVuYS0kKENPTkZJR19TRkNfU0lFTkFfTVREKVxcdCs9IG10ZC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlOjk6c2ZjLXNpZW5hLSQoQ09ORklHX1NGQ19TSUVOQV9TUklPVilcXHQrPSBzaWVuYV9zcmlvdi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9NYWtlZmlsZToxMTpvYmotJChDT05GSUdfU0ZDX1NJRU5BKVxcdCs9IHNmYy1zaWVuYS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzMtI2luY2x1ZGUgXFxcInNyaW92LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jOjM0OiNpZmRlZiBDT05GSUdfU0ZDX1NJRU5BX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jLTM1LSNpbmNsdWRlIFxcXCJzaWVuYV9zcmlvdi5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jPTM0Mj1zdGF0aWMgaW50IGVmeF9wcm9iZV9hbGwoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zNjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jOjM2NDojaWZkZWYgQ09ORklHX1NGQ19TSUVOQV9TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zNjUtXFx0cmMgPSBlZngtXFx1MDAzZXR5cGUtXFx1MDAzZXZzd2l0Y2hpbmdfcHJvYmUoZWZ4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zODctIGZhaWw0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYzozODg6I2lmZGVmIENPTkZJR19TRkNfU0lFTkFfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzg5LVxcdGVmeC1cXHUwMDNldHlwZS1cXHUwMDNldnN3aXRjaGluZ19yZW1vdmUoZWZ4KTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDY6MDkuODU0OTgxOTc3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjQ3NTMzNDE3MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFN1aXRhYmlsaXR5KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgdGhlIGNyaXRlcmlhLiBTZWN0aW9uIDIsIHRoZSBcIm5lZ2F0aXZlXCIgY3JpdGVyaWEsIGFyZSBrZXkuIEknbSBsb29raW5nIGZvciB0d28gdGhpbmdzOiBjaGFuZ2VzIHRoYXQgYXJlbid0IHRvIGtlcm5lbCBjb2RlIGFuZCBhcmVuJ3QgZXhlY3V0YWJsZSAobGlrZSBjaGFuZ2VzIHRvIGxvZ2dpbmcsIHRyYWNlcG9pbnRzLCB0aGF0IGRvbid0IGFsdGVyIGNvbnRyb2wgZmxvdyksIGFuZCBhbnl0aGluZyB0aWVkIHRvIGhhcmR3YXJlIEkgY2FuJ3QgZWFzaWx5IGVtdWxhdGUuXG5cblRoaXMgcGF0Y2ggdG91Y2hlcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuY2AuIEludGVyZXN0aW5nLiBJIHNlZSBpdCBkZWZpbmVzIGEgbWFwcGluZyBiZXR3ZWVuIGZpcm13YXJlIElEcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzLCBgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lYC4gT2theSwgYW5kIHRoZW4gYSBgcGNpX2luZm8oKWAgY2FsbCBpcyBhZGRlZCB0byBwcmludCBvdXQgZGF0YXBhdGggZmlybXdhcmUgdmFyaWFudCBuYW1lcyBhbmQgSURzIHdpdGhpbiBgZWZ4X2VmMTBfaW5pdF9kYXRhcGF0aF9jYXBzKClgLlxuXG5Ob3csIGRvZXMgdGhpcyBmYWxsIHVuZGVyIG91ciBuZWdhdGl2ZSBjcml0ZXJpYT8gQWJzb2x1dGVseS4gRmlyc3QsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvYCBpcyB0aGUgU29sYXJmbGFyZSBFRjEwIGV0aGVybmV0IGRyaXZlci4gVGhhdCdzIHZlbmRvci1zcGVjaWZpYywgYSBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZCwgYW5kIGRlZmluaXRlbHkgKm5vdCogc29tZXRoaW5nIHRoYXQncyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBTZWNvbmQsIHRoaXMgY2hhbmdlIGlzIHB1cmUgZGVjb3JhdGl2ZSBsb2dnaW5nLiBBIGBwY2lfaW5mb2Agb3V0cHV0LiBJdCdzIHByaW50aW5nIGluZm9ybWF0aW9uLCBub3QgYWx0ZXJpbmcgY29udHJvbCBmbG93LCBkYXRhIHN0cnVjdHVyZXMsIG9yIHRoZSBzdGF0ZSBvZiB0aGUgc3lzdGVtIGluIGFueSBmdW5jdGlvbmFsIHdheS5cblxuVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzICpub3QqIGEgZ29vZCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEkgaGF2ZSB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgaW4gdGhpcyB0aGF0IGFyZSByZWxldmFudCBmb3IgZnV6emluZywgc28gYEZvY3VzU3ltYm9sc2Agc3RheXMgZW1wdHksIGFuZCBgRW5hYmxlQ29uZmlnc2AgcmVtYWlucyBlbXB0eSAob3IgbnVsbCkuXG5cbkknbSBkb2luZyBhIHNhbml0eSBjaGVjazogYFdvcnRoRnV6emluZzogZmFsc2VgLCBgRm9jdXNTeW1ib2xzOiBbXWAsIGBFbmFibGVDb25maWdzOiBbXWAuIFRoZSByZWFzb25pbmcgaXMgY29uY2lzZSBhbmQgYWNjdXJhdGUsIGJhc2VkIG9uIHRoZSBkb2N1bWVudGVkIGNyaXRlcmlhIGFuZCB0aGUgY29kZSBjaGFuZ2VzLiBOb3csIEknbGwgY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjQ5NywiT3V0cHV0VG9rZW5zIjoxMTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDY6MzQuNjA4MzI2OTM0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDE0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU29sYXJmbGFyZSBFRjEwIGV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYykgdG8gYWRkIHB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgdmlhIHBjaV9pbmZvKCkgZGVzY3JpYmluZyB0aGUgZGF0YXBhdGggZmlybXdhcmUgdmFyaWFudC4gVGhpcyBkcml2ZXIgb3BlcmF0ZXMgb24gdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBhbmQgdGhlIGNoYW5nZSBkb2VzIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3Iga2VybmVsIGRhdGEgc3RydWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTb2xhcmZsYXJlIEVGMTAgZXRoZXJuZXQgZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jKSB0byBhZGQgcHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyB2aWEgcGNpX2luZm8oKSBkZXNjcmliaW5nIHRoZSBkYXRhcGF0aCBmaXJtd2FyZSB2YXJpYW50LiBUaGlzIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMsIGFuZCB0aGUgY2hhbmdlIGRvZXMgbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDY6MzQuNjA4MzUxMDE0WiIsIlNlcSI6NywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowwl4nq[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-04 02:28:25 +0000 UTC FinishedAt: 2026-09-04 02:46: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+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNvbGFyZmxhcmUgRUYxMCBldGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMpIHRvIGFkZCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIHZpYSBwY2lfaW5mbygpIGRlc2NyaWJpbmcgdGhlIGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQuIFRoaXMgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgYW5kIHRoZSBjaGFuZ2UgZG9lcyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ1PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYjZjNmExZjk3YzFmODlhMDZjY2M5MjA3YzE1MjQzYzBjMDQyNThmYlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgU2VwIDQgMDI6NDU6NTYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmNcbmluZGV4IDczYmMwNjQ5MjlmNjMuLjNiOTJlOTU1MzJjNTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jXG5AQCAtMTA1LDYgJiM0MzsxMDUsMjYgQEAgc3RhdGljIGludCBlZnhfZWYxMF9nZXRfdmZfaW5kZXgoc3RydWN0IGVmeF9uaWMgKmVmeClcbiB9XG4gI2VuZGlmXG4gXG4mIzQzO3N0YXRpYyBjb25zdCBjaGFyICplZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWUodTE2IGRwY3B1X2lkKVxuJiM0Mzt7XG4mIzQzO1x0c3dpdGNoIChkcGNwdV9pZCkge1xuJiM0MztcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYRFA6XG4mIzQzO1x0XHRyZXR1cm4gXCYjMzQ7ZnVsbC1mZWF0dXJlXCYjMzQ7O1xuJiM0MztcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYRFBfTE9XX0xBVEVOQ1k6XG4mIzQzO1x0XHRyZXR1cm4gXCYjMzQ7bG93LWxhdGVuY3lcJiMzNDs7XG4mIzQzO1x0Y2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9QQUNLRURfU1RSRUFNOlxuJiM0MztcdFx0cmV0dXJuIFwmIzM0O3BhY2tlZC1zdHJlYW1cJiMzNDs7XG4mIzQzO1x0Y2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfVFhEUF9ISUdIX1BBQ0tFVF9SQVRFOlxuJiM0MztcdFx0cmV0dXJuIFwmIzM0O2hpZ2gtdHgtcmF0ZVwmIzM0OztcbiYjNDM7XHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1JVTEVTX0VOR0lORTpcbiYjNDM7XHRcdHJldHVybiBcJiMzNDtydWxlcy1lbmdpbmVcJiMzNDs7XG4mIzQzO1x0Y2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9EUERLOlxuJiM0MztcdFx0cmV0dXJuIFwmIzM0O2RwZGtcJiMzNDs7XG4mIzQzO1x0ZGVmYXVsdDpcbiYjNDM7XHRcdHJldHVybiBcJiMzNDt1bmtub3duXCYjMzQ7O1xuJiM0MztcdH1cbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgaW50IGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuIHtcbiBcdE1DRElfREVDTEFSRV9CVUYob3V0YnVmLCBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19WN19PVVRfTEVOKTtcbkBAIC0xNDQsNiAmIzQzOzE2NCwxMyBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuIFx0bmljX2RhdGEtXHUwMDNldHhfZHBjcHVfZndfaWQgPVxuIFx0XHRNQ0RJX1dPUkQob3V0YnVmLCBHRVRfQ0FQQUJJTElUSUVTX09VVF9UWF9EUENQVV9GV19JRCk7XG4gXG4mIzQzO1x0cGNpX2luZm8oZWZ4LVx1MDAzZXBjaV9kZXYsXG4mIzQzO1x0XHQgXCYjMzQ7RGF0YXBhdGggZmlybXdhcmUgdmFyaWFudDogcng9JXMgKDB4JXgpIHR4PSVzICgweCV4KVxcblwmIzM0OyxcbiYjNDM7XHRcdCBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWUobmljX2RhdGEtXHUwMDNlcnhfZHBjcHVfZndfaWQpLFxuJiM0MztcdFx0IG5pY19kYXRhLVx1MDAzZXJ4X2RwY3B1X2Z3X2lkLFxuJiM0MztcdFx0IGVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZShuaWNfZGF0YS1cdTAwM2V0eF9kcGNwdV9md19pZCksXG4mIzQzO1x0XHQgbmljX2RhdGEtXHUwMDNldHhfZHBjcHVfZndfaWQpO1xuJiM0MztcbiBcdGlmICghKG5pY19kYXRhLVx1MDAzZWRhdGFwYXRoX2NhcHMgXHUwMDI2XG4gXHQgICAgICAoMSBcdTAwM2NcdTAwM2MgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYX1BSRUZJWF9MRU5fMTRfTEJOKSkpIHtcbiBcdFx0bmV0aWZfZXJyKGVmeCwgcHJvYmUsIGVmeC1cdTAwM2VuZXRfZGV2LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ1PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTb2xhcmZsYXJlIEVGMTAgZXRoZXJuZXQgZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jKSB0byBhZGQgcHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyB2aWEgcGNpX2luZm8oKSBkZXNjcmliaW5nIHRoZSBkYXRhcGF0aCBmaXJtd2FyZSB2YXJpYW50LiBUaGlzIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMsIGFuZCB0aGUgY2hhbmdlIGRvZXMgbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGI2YzZhMWY5N2MxZjg5YTA2Y2NjOTIwN2MxNTI0M2MwYzA0MjU4ZmIKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIFNlcCA0IDAyOjQ1OjU2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMKaW5kZXggNzNiYzA2NDkyOWY2My4uM2I5MmU5NTUzMmM1NCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jCkBAIC0xMDUsNiAmIzQzOzEwNSwyNiBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2dldF92Zl9pbmRleChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQogfQogI2VuZGlmCiAKJiM0MztzdGF0aWMgY29uc3QgY2hhciAqZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKHUxNiBkcGNwdV9pZCkKJiM0Mzt7CiYjNDM7CXN3aXRjaCAoZHBjcHVfaWQpIHsKJiM0MzsJY2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUDoKJiM0MzsJCXJldHVybiAmIzM0O2Z1bGwtZmVhdHVyZSYjMzQ7OwomIzQzOwljYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX0xPV19MQVRFTkNZOgomIzQzOwkJcmV0dXJuICYjMzQ7bG93LWxhdGVuY3kmIzM0OzsKJiM0MzsJY2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9QQUNLRURfU1RSRUFNOgomIzQzOwkJcmV0dXJuICYjMzQ7cGFja2VkLXN0cmVhbSYjMzQ7OwomIzQzOwljYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9UWERQX0hJR0hfUEFDS0VUX1JBVEU6CiYjNDM7CQlyZXR1cm4gJiMzNDtoaWdoLXR4LXJhdGUmIzM0OzsKJiM0MzsJY2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9SVUxFU19FTkdJTkU6CiYjNDM7CQlyZXR1cm4gJiMzNDtydWxlcy1lbmdpbmUmIzM0OzsKJiM0MzsJY2FzZSBNQ19DTURfR0VUX0NBUEFCSUxJVElFU19PVVRfUlhEUF9EUERLOgomIzQzOwkJcmV0dXJuICYjMzQ7ZHBkayYjMzQ7OwomIzQzOwlkZWZhdWx0OgomIzQzOwkJcmV0dXJuICYjMzQ7dW5rbm93biYjMzQ7OwomIzQzOwl9CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHMoc3RydWN0IGVmeF9uaWMgKmVmeCkKIHsKIAlNQ0RJX0RFQ0xBUkVfQlVGKG91dGJ1ZiwgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfVjdfT1VUX0xFTik7CkBAIC0xNDQsNiAmIzQzOzE2NCwxMyBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KQogCW5pY19kYXRhLSZndDt0eF9kcGNwdV9md19pZCA9CiAJCU1DRElfV09SRChvdXRidWYsIEdFVF9DQVBBQklMSVRJRVNfT1VUX1RYX0RQQ1BVX0ZXX0lEKTsKIAomIzQzOwlwY2lfaW5mbyhlZngtJmd0O3BjaV9kZXYsCiYjNDM7CQkgJiMzNDtEYXRhcGF0aCBmaXJtd2FyZSB2YXJpYW50OiByeD0lcyAoMHgleCkgdHg9JXMgKDB4JXgpXG4mIzM0OywKJiM0MzsJCSBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWUobmljX2RhdGEtJmd0O3J4X2RwY3B1X2Z3X2lkKSwKJiM0MzsJCSBuaWNfZGF0YS0mZ3Q7cnhfZHBjcHVfZndfaWQsCiYjNDM7CQkgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKG5pY19kYXRhLSZndDt0eF9kcGNwdV9md19pZCksCiYjNDM7CQkgbmljX2RhdGEtJmd0O3R4X2RwY3B1X2Z3X2lkKTsKJiM0MzsKIAlpZiAoIShuaWNfZGF0YS0mZ3Q7ZGF0YXBhdGhfY2FwcyAmYW1wOwogCSAgICAgICgxICZsdDsmbHQ7IE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWF9QUkVGSVhfTEVOXzE0X0xCTikpKSB7CiAJCW5ldGlmX2VycihlZngsIHByb2JlLCBlZngtJmd0O25ldF9kZXYsCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MzMKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA0MTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTb2xhcmZsYXJlIEVGMTAgRHJpdmVyIFVwZGF0ZSoqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMgZGlmZi4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgYmVlbiBtb2RpZmllZCwgc28gSSYjMzk7bGwgemVybyBpbiBvbiB0aGUgY2hhbmdlcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuY2AuIEFoLCB0aGV5JiMzOTt2ZSBhZGRlZCBhIG5ldyBmdW5jdGlvbiwgYGVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZWAsIGFuZCBhIGNhbGwgdG8gYHBjaV9pbmZvYCB3aXRoaW4gYGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2Fwc2AuIEludGVyZXN0aW5nLgoKTm93LCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBjb25zaWRlciB0aGUgY29udGV4dC4gVGhpcyBpcyB0aGUgU29sYXJmbGFyZSAoU0ZDKSBFRjEwIGV0aGVybmV0IGRyaXZlci4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGF0IHRoZXNlIGFyZSBwaHlzaWNhbCBQQ0kgZXRoZXJuZXQgZGV2aWNlczsgeW91IGRvbiYjMzk7dCB0eXBpY2FsbHkgc2VlIFNGQyBOSUNzIHJ1bm5pbmcgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuIFRoZXkgYXJlIGRlc2lnbmVkIGZvciBiYXJlLW1ldGFsLCBoaWdoLXBlcmZvcm1hbmNlIGFwcGxpY2F0aW9ucy4gU28sIEkgbmVlZCB0byBjb25maXJtIHdoZXRoZXIgdGhpcyBjb2RlIGlzIGV2ZW4gcmVsZXZhbnQgaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nLCBvciBpZiBpdCYjMzk7cyBwdXJlbHkgZm9yIHBoeXNpY2FsIGhhcmR3YXJlLgoKTG9va2luZyBtb3JlIGNsb3NlbHkgYXQgdGhlIGNvZGUgY2hhbmdlLCBpdCBhcHBlYXJzIHRoaXMgbmV3IGZ1bmN0aW9uLCBgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lYCwgaXMganVzdCBhIGhlbHBlciB0aGF0IHJldHVybnMgYSBzdHJpbmcgY29uc3RhbnQgYmFzZWQgb24gc29tZSBJRC4gQW5kLCBgcGNpX2luZm9gIGlzIGJlaW5nIHVzZWQgdG8gbG9nIHRoaXMgaW5mb3JtYXRpb24gZHVyaW5nIHRoZSBwcm9iZSBwcm9jZXNzLgoKR2l2ZW4gYWxsIG9mIHRoaXMsIG15IGltbWVkaWF0ZSBhc3Nlc3NtZW50IGlzIHRoYXQ6IDEpIFRoaXMgY2hhbmdlIGlzIGhhcHBlbmluZyB3aXRoaW4gYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBldGhlcm5ldCBkcml2ZXIg4oCTIFNvbGFyZmxhcmUg4oCTIHdoaWNoIGFsbW9zdCBjZXJ0YWlubHkgcmVxdWlyZXMgdGhlIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBhbmQgaXNuJiMzOTt0IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLiAyKSBUaGUgbG9nZ2luZyB1c2luZyBgcGNpX2luZm9gIGlzIHB1cmVseSBkZWNvcmF0aXZlLiBUaGVyZSBpcyBubyBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmUgbWFuaXB1bGF0aW9uIGhlcmUsIHdoaWNoIGlzIHdoYXQgSSYjMzk7bSBsb29raW5nIGZvci4KCkkmIzM5O2xsIHF1aWNrbHkgdmVyaWZ5IHRoZXNlIGFzc3VtcHRpb25zLiBMZXQmIzM5O3MgbWFrZSBzdXJlIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvYCBpcyBpbmRlZWQgd2hhdCBJIHRoaW5rIGl0IGlzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19TRkMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDg0NiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlPTI9c2ZjLXlcdFx0XHQmIzQzOz0gZWZ4Lm8gZWZ4X2NvbW1vbi5vIGVmeF9jaGFubmVscy5vIG5pYy5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlLTEwLVx0XHRcdCAgIGVmeF9kZXZsaW5rLm8gZWZ4X3JlZmxhc2gub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjExOnNmYy0kKENPTkZJR19TRkNfTVREKVx0JiM0Mzs9IG10ZC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU6MTI6c2ZjLSQoQ09ORklHX1NGQ19TUklPVilcdCYjNDM7PSBzcmlvdi5vIGVmMTBfc3Jpb3YubyBlZjEwMF9zcmlvdi5vIGVmMTAwX3JlcC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGUtMTMtICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFlLm8gdGMubyB0Y19iaW5kaW5ncy5vIHRjX2NvdW50ZXJzLm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGUtMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU6MTY6c2ZjLSQoQ09ORklHX1NGQ19DWEwpXHQmIzQzOz0gZWZ4X2N4bC5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU6MTc6b2JqLSQoQ09ORklHX1NGQylcdCYjNDM7PSBzZmMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlLTE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjE5Om9iai0kKENPTkZJR19TRkNfRkFMQ09OKSAmIzQzOz0gZmFsY29uL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19TRkNfU0lFTkEpICYjNDM7PSBzaWVuYS9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTgzPXN0YXRpYyBib29sIGVmeF9lZjEwX2lzX3ZmKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy04Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6ODg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtODktc3RhdGljIGludCBlZnhfZWYxMF9nZXRfdmZfaW5kZXgoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTU1OT1zdGF0aWMgaW50IGVmeF9lZjEwX3Byb2JlKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy02ODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjY4NTojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy02ODYtXHRpZiAoKGVmeC1cdTAwM2VwY2lfZGV2LVx1MDAzZXBoeXNmbikgXHUwMDI2XHUwMDI2ICghZWZ4LVx1MDAzZXBjaV9kZXYtXHUwMDNlaXNfcGh5c2ZuKSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9OTUzPXN0YXRpYyB2b2lkIGVmeF9lZjEwX3JlbW92ZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtOTU3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo5NTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtOTU5LVx0c3RydWN0IGVmeF9lZjEwX25pY19kYXRhICpuaWNfZGF0YV9wZjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTEwODY9aW50IGVmeF9lZjEwX3Zwb3J0X2RlbF9tYWMoc3RydWN0IGVmeF9uaWMgKmVmeCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTEwOTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjEwOTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTA5OS1zdGF0aWMgaW50IGVmeF9lZjEwX3Byb2JlX3ZmKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0xMTcwPXN0YXRpYyBpbnQgZWZ4X2VmMTBfZGltZW5zaW9uX3Jlc291cmNlcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTE3Ni1cdHVuc2lnbmVkIGludCB1Y19tZW1fbWFwX3NpemUsIHdjX21lbV9tYXBfc2l6ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6MTE3NzojaWZkZWYgQ09ORklHX1NGQ19DWExcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTE3OC1cdHN0cnVjdCBlZnhfcHJvYmVfZGF0YSAqcHJvYmVfZGF0YTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTEzMDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjEzMDg6I2lmZGVmIENPTkZJR19TRkNfQ1hMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTEzMDktXHRwcm9iZV9kYXRhID0gY29udGFpbmVyX29mKGVmeCwgc3RydWN0IGVmeF9wcm9iZV9kYXRhLCBlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9MTQ0MT1zdGF0aWMgdm9pZCBlZnhfZWYxMF90YWJsZV9yZXNldF9tY19hbGxvY2F0aW9ucyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ0My1cdHN0cnVjdCBlZnhfZWYxMF9uaWNfZGF0YSAqbmljX2RhdGEgPSBlZngtXHUwMDNlbmljX2RhdGE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjE0NDQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ0NS1cdHVuc2lnbmVkIGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ1Ny1cdGVmeC1cdTAwM2V2cG9ydF9pZCA9IEVWQl9QT1JUX0lEX0FTU0lHTkVEO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzoxNDU4OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTE0NTktXHRpZiAobmljX2RhdGEtXHUwMDNldmYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0zMzU3PXN0YXRpYyBpbnQgZWZ4X2VmMTBfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0zMzYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzozMzYzOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTMzNjQtXHQvKiBJZiB0aGlzIGZ1bmN0aW9uIGlzIGEgVkYgYW5kIHdlIGhhdmUgYWNjZXNzIHRvIHRoZSBwYXJlbnQgUEYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0zNDk3PWVmeF9lZjEwX3Rlc3RfY2hpcChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBzdHJ1Y3QgZWZ4X3NlbGZfdGVzdHMgKnRlc3RzKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMzUxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6MzUyMDojaWZkZWYgQ09ORklHX1NGQ19NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMzUyMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTM2MjQ9c3RhdGljIGludCBlZnhfZWYxMF9tdGRfcHJvYmUoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTM2NzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjM2Nzc6I2VuZGlmIC8qIENPTkZJR19TRkNfTVREICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTM2NzgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz00MTE0PWNvbnN0IHN0cnVjdCBlZnhfbmljX3R5cGUgZWZ4X2h1bnRfYTBfdmZfbmljX3R5cGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MTg4LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0MTg5OiNpZmRlZiBDT05GSUdfU0ZDX01URFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MTkwLVx0Lm10ZF9wcm9iZSA9IGVmeF9wb3J0X2R1bW15X29wX2ludCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQxOTUtXHQudmxhbl9yeF9raWxsX3ZpZCA9IGVmeF9lZjEwX3ZsYW5fcnhfa2lsbF92aWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjQxOTY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDE5Ny1cdC52c3dpdGNoaW5nX3Byb2JlID0gZWZ4X2VmMTBfdnN3aXRjaGluZ19wcm9iZV92Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTQyMjY9Y29uc3Qgc3RydWN0IGVmeF9uaWNfdHlwZSBlZnhfaHVudF9hMF9uaWNfdHlwZSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQzMDUtI2VuZGlmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjQzMDY6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQzMDctXHQubXRkX3Byb2JlID0gZWZ4X2VmMTBfbXRkX3Byb2JlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDMyMC1cdC51ZHBfdG5sX2hhc19wb3J0ID0gZWZ4X2VmMTBfdWRwX3RubF9oYXNfcG9ydCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6NDMyMTojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MzIyLVx0LnNyaW92X2NvbmZpZ3VyZSA9IGVmeF9lZjEwX3NyaW92X2NvbmZpZ3VyZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTQzNjI9Y29uc3Qgc3RydWN0IGVmeF9uaWNfdHlwZSBlZnhfeDRfbmljX3R5cGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00NDM4LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0NDM5OiNpZmRlZiBDT05GSUdfU0ZDX01URFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00NDQwLVx0Lm10ZF9wcm9iZSA9IGVmeF9lZjEwX210ZF9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQ0NTMtXHQudWRwX3RubF9oYXNfcG9ydCA9IGVmeF9lZjEwX3VkcF90bmxfaGFzX3BvcnQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjQ0NTQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDQ1NS1cdC8qIGN1cnJlbnRseSBzZXQgdG8gdGhlIFZGIHZlcnNpb25zIG9mIHRoZXNlIGZ1bmN0aW9uc1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jPTQyMz1zdGF0aWMgdm9pZCBlZjEwMF9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTQzMi1cdGVmMTAwX3JlbW92ZV9uZXRkZXYocHJvYmVfZGF0YSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYzo0MzM6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTQzNC1cdGVmeF9maW5pX3N0cnVjdF90YyhlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jPTQ0Nz1zdGF0aWMgaW50IGVmMTAwX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGNpX2Rldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYy01MjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYzo1MjE6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTUyMi1zdGF0aWMgaW50IGVmMTAwX3BjaV9zcmlvdl9jb25maWd1cmUoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG51bV92ZnMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwLmM9NTQ3PXN0cnVjdCBwY2lfZHJpdmVyIGVmMTAwX3BjaV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwLmMtNTUxLVx0LnJlbW92ZSAgICAgICAgID0gZWYxMDBfcGNpX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jOjU1MjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwLmMtNTUzLVx0LnNyaW92X2NvbmZpZ3VyZSA9IGVmMTAwX3BjaV9zcmlvdl9jb25maWd1cmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jPTI3Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Vfb3BzIGVmMTAwX25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTI5MS0jZW5kaWZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzoyOTI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy0yOTMtXHQubmRvX3NldHVwX3RjXHRcdD0gZWZ4X3RjX3NldHVwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYz0zODM9dm9pZCBlZjEwMF9yZW1vdmVfbmV0ZGV2KHN0cnVjdCBlZnhfcHJvYmVfZGF0YSAqcHJvYmVfZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmMtMzk1LVx0dW5yZWdpc3Rlcl9uZXRldmVudF9ub3RpZmllcihcdTAwMjZlZngtXHUwMDNlbmV0ZXZlbnRfbm90aWZpZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jOjM5NjojaWYgZGVmaW5lZChDT05GSUdfU0ZDX1NSSU9WKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTM5Ny1cdGlmICghZWZ4LVx1MDAzZXR5cGUtXHUwMDNlaXNfdmYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTQwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzo0MDQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy00MDUtXHRlZjEwMF9wZl91bnNldF9kZXZsaW5rX3BvcnQoZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmM9NDIzPWludCBlZjEwMF9wcm9iZV9uZXRkZXYoc3RydWN0IGVmeF9wcm9iZV9kYXRhICpwcm9iZV9kYXRhKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MDEtXHRcdFx0Z290byBmYWlsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jOjUwMjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTUwMy1cdFx0ZWYxMDBfcGZfc2V0X2RldmxpbmtfcG9ydChlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MjUtZmFpbDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzo1MjY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MjctXHQvKiByZW1vdmUgZGV2bGluayBwb3J0IGlmIGRvZXMgZXhpc3QgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmM9MzkxPXN0YXRpYyBpbnQgZWYxMDBfZmlsdGVyX3RhYmxlX3VwKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTQwNi1cdHVwX3dyaXRlKFx1MDAyNmVmeC1cdTAwM2VmaWx0ZXJfc2VtKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYzo0MDc6XHRpZiAoSVNfRU5BQkxFRChDT05GSUdfU0ZDX1NSSU9WKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy00MDgtXHRcdHJjID0gZWZ4X3RjX2luc2VydF9yZXBfZmlsdGVycyhlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz00MjU9c3RhdGljIHZvaWQgZWYxMDBfZmlsdGVyX3RhYmxlX2Rvd24oc3RydWN0IGVmeF9uaWMgKmVmeClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy00MjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jOjQyNzpcdGlmIChJU19FTkFCTEVEKENPTkZJR19TRkNfU1JJT1YpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTQyOC1cdFx0ZWZ4X3RjX3JlbW92ZV9yZXBfZmlsdGVycyhlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz0xMTQ5PWludCBlZjEwMF9wcm9iZV9uZXRkZXZfcGYoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtMTE1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYzoxMTU1Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19TRkNfU1JJT1YpIHx8ICFuaWNfZGF0YS1cdTAwM2VncnBfbWFlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTExNTYtXHRcdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz0xMjAwPXZvaWQgZWYxMDBfcmVtb3ZlKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTEyMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmM6MTIwNDpcdGlmIChJU19FTkFCTEVEKENPTkZJR19TRkNfU1JJT1YpIFx1MDAyNlx1MDAyNiBlZngtXHUwMDNlbWFlKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtMTIwNS1cdFx0ZWZ4X2VmMTAwX2ZpbmlfcmVwcyhlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz0xMjI0PWNvbnN0IHN0cnVjdCBlZnhfbmljX3R5cGUgZWYxMDBfcGZfbmljX3R5cGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTEzMDAtXHQuc3RvcF9zdGF0cyA9IGVmeF9tY2RpX21hY19zdG9wX3N0YXRzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jOjEzMDE6XHQuc3Jpb3ZfY29uZmlndXJlID0gSVNfRU5BQkxFRChDT05GSUdfU0ZDX1NSSU9WKSA/XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtMTMwMi1cdFx0ZWZ4X2VmMTAwX3NyaW92X2NvbmZpZ3VyZSA6IE5VTEwsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX3J4LmM9NTY9dm9pZCBfX2VmMTAwX3J4X3BhY2tldChzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX3J4LmMtOTQtXHRpZiAobmljX2RhdGEtXHUwMDNlaGF2ZV9tcG9ydCBcdTAwMjZcdTAwMjYgaW5nX3BvcnQgIT0gbmljX2RhdGEtXHUwMDNlYmFzZV9tcG9ydCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX3J4LmM6OTU6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9yeC5jLTk2LVx0XHRzdHJ1Y3QgZWZ4X3JlcCAqZWZ2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYz0zMzQ9c3RhdGljIGludCBlZnhfcHJvYmVfYWxsKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTM1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYzozNTY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0zNTctXHRyYyA9IGVmeC1cdTAwM2V0eXBlLVx1MDAzZXZzd2l0Y2hpbmdfcHJvYmUoZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtMzgxLSBmYWlsNDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYzozODI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0zODMtXHRlZngtXHUwMDNldHlwZS1cdTAwM2V2c3dpdGNoaW5nX3JlbW92ZShlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYz0zOTM9c3RhdGljIHZvaWQgZWZ4X3JlbW92ZV9hbGwoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNDAwLVx0ZWZ4X3JlbW92ZV9maWx0ZXJzKGVmeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6NDAxOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNDAyLVx0ZWZ4LVx1MDAzZXR5cGUtXHUwMDNldnN3aXRjaGluZ19yZW1vdmUoZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9NTY4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgZWZ4X25ldGRldl9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTU4My1cdC5uZG9faHd0c3RhbXBfZ2V0XHQ9IGVmeF9od3RzdGFtcF9nZXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6NTg0OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNTg1LVx0Lm5kb19zZXRfdmZfbWFjXHRcdD0gZWZ4X3NyaW92X3NldF92Zl9tYWMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jPTExNTM9c3RhdGljIGludCBlZnhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwY2lfZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0xMjYxLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jOjEyNjI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0xMjYzLXN0YXRpYyBpbnQgZWZ4X3BjaV9zcmlvdl9jb25maWd1cmUoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG51bV92ZnMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jPTE0MDg9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGVmeF9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0xNDE1LVx0LmVycl9oYW5kbGVyXHQ9IFx1MDAyNmVmeF9lcnJfaGFuZGxlcnMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6MTQxNjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTE0MTctXHQuc3Jpb3ZfY29uZmlndXJlID0gZWZ4X3BjaV9zcmlvdl9jb25maWd1cmUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oPTE3OD12b2lkIGVmeF91cGRhdGVfc3dfc3RhdHMoc3RydWN0IGVmeF9uaWMgKmVmeCwgdTY0ICpzdGF0cyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oLTE4MC0vKiBNVEQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaDoxODE6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmgtMTgyLWludCBlZnhfbXRkX2FkZChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBzdHJ1Y3QgZWZ4X210ZF9wYXJ0aXRpb24gKnBhcnRzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaD0xOTM9c3RhdGljIGlubGluZSB2b2lkIGVmeF9tdGRfcmVtb3ZlKHN0cnVjdCBlZnhfbmljICplZngpIHt9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oLTE5NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaDoxOTY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaC0xOTctc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgZWZ4X3ZmX3NpemUoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmM9ODM9c3RhdGljIHVuc2lnbmVkIGludCBlZnhfd2FudGVkX3BhcmFsbGVsaXNtKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jLTEwNi1cdCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jOjEwNzojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jLTEwOC1cdGlmIChlZngtXHUwMDNldHlwZS1cdTAwM2Vzcmlvdl93YW50ZWQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmM9MjQ3PWludCBlZnhfcHJvYmVfaW50ZXJydXB0cyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY2hhbm5lbHMuYy0zNDgtXHQvKiBSU1MgbWlnaHQgYmUgdXNhYmxlIG9uIFZGcyBldmVuIGlmIGl0IGlzIGRpc2FibGVkIG9uIHRoZSBQRiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jOjM0OTojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jLTM1MC1cdGlmIChlZngtXHUwMDNldHlwZS1cdTAwM2Vzcmlvdl93YW50ZWQpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jPTcyMz1pbnQgZWZ4X3Jlc2V0X3VwKHN0cnVjdCBlZnhfbmljICplZngsIGVudW0gcmVzZXRfdHlwZSBtZXRob2QsIGJvb2wgb2spXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy03NTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jOjc1NDojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy03NTUtXHRyYyA9IGVmeC1cdTAwM2V0eXBlLVx1MDAzZXZzd2l0Y2hpbmdfcmVzdG9yZShlZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmM9OTYxPWludCBlZnhfaW5pdF9zdHJ1Y3Qoc3RydWN0IGVmeF9uaWMgKmVmeCwgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy05NjgtXHRzcGluX2xvY2tfaW5pdChcdTAwMjZlZngtXHUwMDNlYml1X2xvY2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYzo5Njk6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTk3MC1cdElOSVRfTElTVF9IRUFEKFx1MDAyNmVmeC1cdTAwM2VtdGRfbGlzdCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYz0xMTE3PXZvaWQgZWZ4X2ZpbmlfaW8oc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTExMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jOjExMzc6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTExMzgtc3RhdGljIHNzaXplX3QgbWNkaV9sb2dnaW5nX3Nob3coc3RydWN0IGRldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmg9ODE9c3RhdGljIGlubGluZSB2b2lkIGVmeF9zY2hlZHVsZV9jaGFubmVsX2lycShzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uaC04Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmg6ODc6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5oLTg4LXZvaWQgZWZ4X2luaXRfbWNkaV9sb2dnaW5nKHN0cnVjdCBlZnhfbmljICplZngpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY3hsLmgtMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2N4bC5oOjE0OiNpZmRlZiBDT05GSUdfU0ZDX0NYTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jeGwuaC0xNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0xNy0jaW5jbHVkZSBcJiMzNDttY2RpX3Bjb2wuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM6MTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5jLTE5LSNpbmNsdWRlIFwmIzM0O21hZS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM9MjQ9c3RydWN0IGVmeF9kZXZsaW5rIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0yNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5jOjI4OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0yOS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYz02Mjk9c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZsaW5rX29wcyBzZmNfZGV2bGlua19vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmMtNjM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM6NjM1OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy02MzYtc3RhdGljIHN0cnVjdCBkZXZsaW5rX3BvcnQgKmVmMTAwX3NldF9kZXZsaW5rX3BvcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgdTMyIGlkeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuaD0zNz12b2lkIGVmeF9maW5pX2RldmxpbmtfYW5kX3VubG9jayhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oLTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmg6Mzk6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oLTQwLXN0cnVjdCBlZnhfcmVwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vTWFrZWZpbGU9Mj1zZmMtZmFsY29uLXlcdFx0JiM0Mzs9IGVmeC5vIG5pYy5vIGZhcmNoLm8gZmFsY29uLm8gdHgubyByeC5vIHNlbGZ0ZXN0Lm8gXFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlOjY6c2ZjLWZhbGNvbi0kKENPTkZJR19TRkNfRkFMQ09OX01URClcdCYjNDM7PSBtdGQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9NYWtlZmlsZTo3Om9iai0kKENPTkZJR19TRkNfRkFMQ09OKVx0XHQmIzQzOz0gc2ZjLWZhbGNvbi5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguYz0yNjE1PXN0YXRpYyBpbnQgZWY0X2luaXRfc3RydWN0KHN0cnVjdCBlZjRfbmljICplZngsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguYy0yNjIzLVx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2ZWZ4LVx1MDAzZWJpdV9sb2NrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4LmM6MjYyNDojaWZkZWYgQ09ORklHX1NGQ19GQUxDT05fTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2VmeC5jLTI2MjUtXHRJTklUX0xJU1RfSEVBRChcdTAwMjZlZngtXHUwMDNlbXRkX2xpc3QpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4Lmg9MjE0PXZvaWQgZWY0X3VwZGF0ZV9zd19zdGF0cyhzdHJ1Y3QgZWY0X25pYyAqZWZ4LCB1NjQgKnN0YXRzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2VmeC5oLTIxNi0vKiBNVEQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4Lmg6MjE3OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4LmgtMjE4LWludCBlZjRfbXRkX2FkZChzdHJ1Y3QgZWY0X25pYyAqZWZ4LCBzdHJ1Y3QgZWY0X210ZF9wYXJ0aXRpb24gKnBhcnRzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmM9NjE2PWZhbGNvbl9zcGlfcmVhZChzdHJ1Y3QgZWY0X25pYyAqZWZ4LCBjb25zdCBzdHJ1Y3QgZmFsY29uX3NwaV9kZXZpY2UgKnNwaSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTY0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmM6NjQ2OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtNjQ3LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmM9OTIxPXN0YXRpYyBpbnQgZmFsY29uX210ZF9wcm9iZShzdHJ1Y3QgZWY0X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtOTcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzo5NzE6I2VuZGlmIC8qIENPTkZJR19TRkNfRkFMQ09OX01URCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYy05NzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYz0yNzA4PWNvbnN0IHN0cnVjdCBlZjRfbmljX3R5cGUgZmFsY29uX2ExX25pY190eXBlID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtMjc4MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmM6Mjc4MjojaWZkZWYgQ09ORklHX1NGQ19GQUxDT05fTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI3ODMtXHQubXRkX3Byb2JlID0gZmFsY29uX210ZF9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jPTI4MDU9Y29uc3Qgc3RydWN0IGVmNF9uaWNfdHlwZSBmYWxjb25fYjBfbmljX3R5cGUgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYy0yODc4LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzoyODc5OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtMjg4MC1cdC5tdGRfcHJvYmUgPSBmYWxjb25fbXRkX3Byb2JlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vbmV0X2RyaXZlci5oPTc2Mz1zdHJ1Y3QgZWY0X25pYyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmgtODM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmg6ODM4OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vbmV0X2RyaXZlci5oLTgzOS1cdHN0cnVjdCBsaXN0X2hlYWQgbXRkX2xpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmg9MTA0MD1zdHJ1Y3QgZWY0X25pY190eXBlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaC0xMTI3LSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmg6MTEyODojaWZkZWYgQ09ORklHX1NGQ19GQUxDT05fTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaC0xMTI5LVx0aW50ICgqbXRkX3Byb2JlKShzdHJ1Y3QgZWY0X25pYyAqZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTUyPXN0YXRpYyB2b2lkIGVmeF9tY2RpX2FiYW5kb24oc3RydWN0IGVmeF9uaWMgKmVmeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzo1NDojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtNTUtc3RhdGljIGJvb2wgbWNkaV9sb2dnaW5nX2RlZmF1bHQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz02MT1pbnQgZWZ4X21jZGlfaW5pdChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtNzItXHRtY2RpLVx1MDAzZWVmeCA9IGVmeDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6NzM6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTc0LVx0LyogY29uc3VtaW5nIGNvZGUgYXNzdW1lcyBidWZmZXIgaXMgcGFnZS1zaXplZCAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMTE0LWZhaWwyOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoxMTU6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTExNi1cdGtmcmVlKG1jZGktXHUwMDNlbG9nZ2luZ19idWZmZXIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM9MTM2PXZvaWQgZWZ4X21jZGlfZmluaShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMTQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoxNDE6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE0Mi1cdGtmcmVlKGVmeC1cdTAwM2VtY2RpLVx1MDAzZWlmYWNlLmxvZ2dpbmdfYnVmZmVyKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTE0OD1zdGF0aWMgdm9pZCBlZnhfbWNkaV9zZW5kX3JlcXVlc3Qoc3RydWN0IGVmeF9uaWMgKmVmeCwgdW5zaWduZWQgY21kLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMTUxLVx0c3RydWN0IGVmeF9tY2RpX2lmYWNlICptY2RpID0gZWZ4X21jZGkoZWZ4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MTUyOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0xNTMtXHRjaGFyICpidWYgPSBtY2RpLVx1MDAzZWxvZ2dpbmdfYnVmZmVyOyAvKiBwYWdlLXNpemVkICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0xOTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjE5OTojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjAwLVx0aWYgKG1jZGktXHUwMDNlbG9nZ2luZ19lbmFibGVkIFx1MDAyNlx1MDAyNiAhV0FSTl9PTl9PTkNFKCFidWYpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yNjM9c3RhdGljIHZvaWQgZWZ4X21jZGlfcmVhZF9yZXNwb25zZV9oZWFkZXIoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTI2Ni1cdHVuc2lnbmVkIGludCByZXNwc2VxLCByZXNwY21kLCBlcnJvcjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MjY3OiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yNjgtXHRjaGFyICpidWYgPSBtY2RpLVx1MDAzZWxvZ2dpbmdfYnVmZmVyOyAvKiBwYWdlLXNpemVkICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjI4NzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjg4LVx0aWYgKG1jZGktXHUwMDNlbG9nZ2luZ19lbmFibGVkIFx1MDAyNlx1MDAyNiAhV0FSTl9PTl9PTkNFKCFidWYpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yMTc4PWludCBlZnhfbWNkaV9udnJhbV91cGRhdGVfc3RhcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgdW5zaWduZWQgaW50IHR5cGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yMTk1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoyMTk2OiNpZmRlZiBDT05GSUdfU0ZDX01URFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yMTk3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yMTk4PXN0YXRpYyBpbnQgZWZ4X21jZGlfbnZyYW1fcmVhZChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCB1bnNpZ25lZCBpbnQgdHlwZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIyMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjIyMjI6I2VuZGlmIC8qIENPTkZJR19TRkNfTVREICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIyMjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yMzQyPWludCBlZnhfbWNkaV9udnJhbV91cGRhdGVfZmluaXNoX3BvbGxlZChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCB1bnNpZ25lZCBpbnQgdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIzNzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjIzNzI6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIzNzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yNDc0PXZvaWQgZWZ4X21jZGlfbXRkX3JlbmFtZShzdHJ1Y3QgZWZ4X210ZF9wYXJ0aXRpb24gKnBhcnQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yNDgzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoyNDg0OiNlbmRpZiAvKiBDT05GSUdfU0ZDX01URCAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg9Njc9c3RydWN0IGVmeF9tY2RpX2lmYWNlIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTgyLVx0c3RydWN0IHRpbWVyX2xpc3QgYXN5bmNfdGltZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oOjgzOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaC04NC1cdGNoYXIgKmxvZ2dpbmdfYnVmZmVyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg9MTE5PXN0cnVjdCBlZnhfbWNkaV9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtMTIwLVx0c3RydWN0IGVmeF9tY2RpX2lmYWNlIGlmYWNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDoxMjE6I2lmZGVmIENPTkZJR19TRkNfTUNESV9NT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtMTIyLVx0c3RydWN0IGVmeF9tY2RpX21vbiBod21vbjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oPTEyNz1zdGF0aWMgaW5saW5lIHN0cnVjdCBlZnhfbWNkaV9pZmFjZSAqZWZ4X21jZGkoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg6MTMzOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTU9OXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEzNC1zdGF0aWMgaW5saW5lIHN0cnVjdCBlZnhfbWNkaV9tb24gKmVmeF9tY2RpX21vbihzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg9NDE3PWludCBlZnhfbWNkaV9nZXRfcHJpdmlsZWdlX21hc2soc3RydWN0IGVmeF9uaWMgKmVmeCwgdTMyICptYXNrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtNDE4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDo0MTk6I2lmZGVmIENPTkZJR19TRkNfTUNESV9NT05cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtNDIwLWludCBlZnhfbWNkaV9tb25fcHJvYmUoc3RydWN0IGVmeF9uaWMgKmVmeCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaD00NDU9aW50IGVmeF9tY2RpX252cmFtX3VwZGF0ZV9maW5pc2hfcG9sbGVkKHN0cnVjdCBlZnhfbmljICplZngsIHVuc2lnbmVkIGludCB0eXBlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtNDQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDo0NDc6I2lmZGVmIENPTkZJR19TRkNfTVREXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTQ0OC1pbnQgZWZ4X21jZGlfbXRkX3JlYWQoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBzdGFydCwgc2l6ZV90IGxlbixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9tb24uYz0xMDM9dm9pZCBlZnhfbWNkaV9zZW5zb3JfZXZlbnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgZWZ4X3F3b3JkX3QgKmV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jLTEzMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jOjEzMzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX01PTlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmMtMTM0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jPTUxOT12b2lkIGVmeF9tY2RpX21vbl9yZW1vdmUoc3RydWN0IGVmeF9uaWMgKmVmeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9tb24uYy01MjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9tb24uYzo1MzA6I2VuZGlmIC8qIENPTkZJR19TRkNfTUNESV9NT04gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oPTEwMTc9c3RydWN0IGVmeF9uaWMge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTEwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmg6MTEwNjojaWZkZWYgQ09ORklHX1NGQ19NVERcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTEwNy1cdHN0cnVjdCBsaXN0X2hlYWQgbXRkX2xpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxMTY3OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTExNjgtXHR1bnNpZ25lZCB2Zl9jb3VudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTExOTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oOjEyMDA6I2lmZGVmIENPTkZJR19TRkNfQ1hMXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTEyMDEtc3RydWN0IGVmeF9jeGw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaD0xMjExPXN0cnVjdCBlZnhfcHJvYmVfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMjEzLVx0c3RydWN0IGVmeF9uaWMgZWZ4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxMjE0OiNpZmRlZiBDT05GSUdfU0ZDX0NYTFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMjE1LVx0c3RydWN0IGVmeF9jeGwgKmN4bDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oPTE0MDI9c3RydWN0IGVmeF9uaWNfdHlwZSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xNTExLSNlbmRpZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxNTEyOiNpZmRlZiBDT05GSUdfU0ZDX01URFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xNTEzLVx0aW50ICgqbXRkX3Byb2JlKShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmljLmg9MTczPXN0cnVjdCBlZnhfZWYxMF9uaWNfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25pYy5oLTE5Ny1cdHU4IHBvcnRfaWRbRVRIX0FMRU5dO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25pYy5oOjE5ODojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25pYy5oLTE5OS1cdHVuc2lnbmVkIGludCB2Zl9pbmRleDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvTWFrZWZpbGU9Mj1zZmMtc2llbmEteVx0XHQmIzQzOz0gZmFyY2gubyBzaWVuYS5vIFxcXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlLTctXHRcdFx0ICAgbWNkaV9tb24ub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlOjg6c2ZjLXNpZW5hLSQoQ09ORklHX1NGQ19TSUVOQV9NVEQpXHQmIzQzOz0gbXRkLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9NYWtlZmlsZTo5OnNmYy1zaWVuYS0kKENPTkZJR19TRkNfU0lFTkFfU1JJT1YpXHQmIzQzOz0gc2llbmFfc3Jpb3Yub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlOjExOm9iai0kKENPTkZJR19TRkNfU0lFTkEpXHQmIzQzOz0gc2ZjLXNpZW5hLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzMtI2luY2x1ZGUgXCYjMzQ7c3Jpb3YuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jOjM0OiNpZmRlZiBDT05GSUdfU0ZDX1NJRU5BX1NSSU9WXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzUtI2luY2x1ZGUgXCYjMzQ7c2llbmFfc3Jpb3YuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYz0zNDI9c3RhdGljIGludCBlZnhfcHJvYmVfYWxsKHN0cnVjdCBlZnhfbmljICplZngpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jLTM2My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYzozNjQ6I2lmZGVmIENPTkZJR19TRkNfU0lFTkFfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zNjUtXHRyYyA9IGVmeC1cdTAwM2V0eXBlLVx1MDAzZXZzd2l0Y2hpbmdfcHJvYmUoZWZ4KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzg3LSBmYWlsNDpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYzozODg6I2lmZGVmIENPTkZJR19TRkNfU0lFTkFfU1JJT1ZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zODktXHRlZngtXHUwMDNldHlwZS1cdTAwM2V2c3dpdGNoaW5nX3JlbW92ZShlZngpO1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMDI6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY0OTcKCQkJCQkJCW91dHB1dDogMTExCgkJCQkJCQl0aG91Z2h0czogMzc5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJiMzOTtzIEZ1enppbmcgU3VpdGFiaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gRmlyc3QsIHRoZSBjcml0ZXJpYS4gU2VjdGlvbiAyLCB0aGUgJiMzNDtuZWdhdGl2ZSYjMzQ7IGNyaXRlcmlhLCBhcmUga2V5LiBJJiMzOTttIGxvb2tpbmcgZm9yIHR3byB0aGluZ3M6IGNoYW5nZXMgdGhhdCBhcmVuJiMzOTt0IHRvIGtlcm5lbCBjb2RlIGFuZCBhcmVuJiMzOTt0IGV4ZWN1dGFibGUgKGxpa2UgY2hhbmdlcyB0byBsb2dnaW5nLCB0cmFjZXBvaW50cywgdGhhdCBkb24mIzM5O3QgYWx0ZXIgY29udHJvbCBmbG93KSwgYW5kIGFueXRoaW5nIHRpZWQgdG8gaGFyZHdhcmUgSSBjYW4mIzM5O3QgZWFzaWx5IGVtdWxhdGUuCgpUaGlzIHBhdGNoIHRvdWNoZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmNgLiBJbnRlcmVzdGluZy4gSSBzZWUgaXQgZGVmaW5lcyBhIG1hcHBpbmcgYmV0d2VlbiBmaXJtd2FyZSBJRHMgYW5kIHRoZWlyIHN0cmluZyBuYW1lcywgYGVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZWAuIE9rYXksIGFuZCB0aGVuIGEgYHBjaV9pbmZvKClgIGNhbGwgaXMgYWRkZWQgdG8gcHJpbnQgb3V0IGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQgbmFtZXMgYW5kIElEcyB3aXRoaW4gYGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcygpYC4KCk5vdywgZG9lcyB0aGlzIGZhbGwgdW5kZXIgb3VyIG5lZ2F0aXZlIGNyaXRlcmlhPyBBYnNvbHV0ZWx5LiBGaXJzdCwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9gIGlzIHRoZSBTb2xhcmZsYXJlIEVGMTAgZXRoZXJuZXQgZHJpdmVyLiBUaGF0JiMzOTtzIHZlbmRvci1zcGVjaWZpYywgYSBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZCwgYW5kIGRlZmluaXRlbHkgKm5vdCogc29tZXRoaW5nIHRoYXQmIzM5O3MgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4gU2Vjb25kLCB0aGlzIGNoYW5nZSBpcyBwdXJlIGRlY29yYXRpdmUgbG9nZ2luZy4gQSBgcGNpX2luZm9gIG91dHB1dC4gSXQmIzM5O3MgcHJpbnRpbmcgaW5mb3JtYXRpb24sIG5vdCBhbHRlcmluZyBjb250cm9sIGZsb3csIGRhdGEgc3RydWN0dXJlcywgb3IgdGhlIHN0YXRlIG9mIHRoZSBzeXN0ZW0gaW4gYW55IGZ1bmN0aW9uYWwgd2F5LgoKVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzICpub3QqIGEgZ29vZCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEkgaGF2ZSB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgaW4gdGhpcyB0aGF0IGFyZSByZWxldmFudCBmb3IgZnV6emluZywgc28gYEZvY3VzU3ltYm9sc2Agc3RheXMgZW1wdHksIGFuZCBgRW5hYmxlQ29uZmlnc2AgcmVtYWlucyBlbXB0eSAob3IgbnVsbCkuCgpJJiMzOTttIGRvaW5nIGEgc2FuaXR5IGNoZWNrOiBgV29ydGhGdXp6aW5nOiBmYWxzZWAsIGBGb2N1c1N5bWJvbHM6IFtdYCwgYEVuYWJsZUNvbmZpZ3M6IFtdYC4gVGhlIHJlYXNvbmluZyBpcyBjb25jaXNlIGFuZCBhY2N1cmF0ZSwgYmFzZWQgb24gdGhlIGRvY3VtZW50ZWQgY3JpdGVyaWEgYW5kIHRoZSBjb2RlIGNoYW5nZXMuIE5vdywgSSYjMzk7bGwgY2FsbCBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA0IDAyOjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNvbGFyZmxhcmUgRUYxMCBldGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMpIHRvIGFkZCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIHZpYSBwY2lfaW5mbygpIGRlc2NyaWJpbmcgdGhlIGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQuIFRoaXMgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgYW5kIHRoZSBjaGFuZ2UgZG9lcyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU29sYXJmbGFyZSBFRjEwIGV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYykgdG8gYWRkIHB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgdmlhIHBjaV9pbmZvKCkgZGVzY3JpYmluZyB0aGUgZGF0YXBhdGggZmlybXdhcmUgdmFyaWFudC4gVGhpcyBkcml2ZXIgb3BlcmF0ZXMgb24gdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBhbmQgdGhlIGNoYW5nZSBkb2VzIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3Iga2VybmVsIGRhdGEgc3RydWN0dXJlcy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDQgMDI6NDY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA0VDAyOjQ1OjU3LjE0MDQ2NDAwOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3NDY3ODk3MjM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNvbGFyZmxhcmUgRUYxMCBldGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMpIHRvIGFkZCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIHZpYSBwY2lfaW5mbygpIGRlc2NyaWJpbmcgdGhlIGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQuIFRoaXMgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgYW5kIHRoZSBjaGFuZ2UgZG9lcyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMjo0NTo1Ny4xNDA0NjgyNzhaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM4MTEwNDIyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGI2YzZhMWY5N2MxZjg5YTA2Y2NjOTIwN2MxNTI0M2MwYzA0MjU4ZmJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBTZXAgNCAwMjo0NTo1NiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuY1xcbmluZGV4IDczYmMwNjQ5MjlmNjMuLjNiOTJlOTU1MzJjNTQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmNcXG5AQCAtMTA1LDYgKzEwNSwyNiBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2dldF92Zl9pbmRleChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbiB9XFxuICNlbmRpZlxcbiBcXG4rc3RhdGljIGNvbnN0IGNoYXIgKmVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZSh1MTYgZHBjcHVfaWQpXFxuK3tcXG4rXFx0c3dpdGNoIChkcGNwdV9pZCkge1xcbitcXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQOlxcbitcXHRcXHRyZXR1cm4gXFxcImZ1bGwtZmVhdHVyZVxcXCI7XFxuK1xcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYRFBfTE9XX0xBVEVOQ1k6XFxuK1xcdFxcdHJldHVybiBcXFwibG93LWxhdGVuY3lcXFwiO1xcbitcXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1BBQ0tFRF9TVFJFQU06XFxuK1xcdFxcdHJldHVybiBcXFwicGFja2VkLXN0cmVhbVxcXCI7XFxuK1xcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1RYRFBfSElHSF9QQUNLRVRfUkFURTpcXG4rXFx0XFx0cmV0dXJuIFxcXCJoaWdoLXR4LXJhdGVcXFwiO1xcbitcXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1JVTEVTX0VOR0lORTpcXG4rXFx0XFx0cmV0dXJuIFxcXCJydWxlcy1lbmdpbmVcXFwiO1xcbitcXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX0RQREs6XFxuK1xcdFxcdHJldHVybiBcXFwiZHBka1xcXCI7XFxuK1xcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldHVybiBcXFwidW5rbm93blxcXCI7XFxuK1xcdH1cXG4rfVxcbitcXG4gc3RhdGljIGludCBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHMoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4ge1xcbiBcXHRNQ0RJX0RFQ0xBUkVfQlVGKG91dGJ1ZiwgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfVjdfT1VUX0xFTik7XFxuQEAgLTE0NCw2ICsxNjQsMTMgQEAgc3RhdGljIGludCBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHMoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4gXFx0bmljX2RhdGEtXFx1MDAzZXR4X2RwY3B1X2Z3X2lkID1cXG4gXFx0XFx0TUNESV9XT1JEKG91dGJ1ZiwgR0VUX0NBUEFCSUxJVElFU19PVVRfVFhfRFBDUFVfRldfSUQpO1xcbiBcXG4rXFx0cGNpX2luZm8oZWZ4LVxcdTAwM2VwY2lfZGV2LFxcbitcXHRcXHQgXFxcIkRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQ6IHJ4PSVzICgweCV4KSB0eD0lcyAoMHgleClcXFxcblxcXCIsXFxuK1xcdFxcdCBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWUobmljX2RhdGEtXFx1MDAzZXJ4X2RwY3B1X2Z3X2lkKSxcXG4rXFx0XFx0IG5pY19kYXRhLVxcdTAwM2VyeF9kcGNwdV9md19pZCxcXG4rXFx0XFx0IGVmeF9lZjEwX2RwY3B1X2Z3X3ZhcmlhbnRfbmFtZShuaWNfZGF0YS1cXHUwMDNldHhfZHBjcHVfZndfaWQpLFxcbitcXHRcXHQgbmljX2RhdGEtXFx1MDAzZXR4X2RwY3B1X2Z3X2lkKTtcXG4rXFxuIFxcdGlmICghKG5pY19kYXRhLVxcdTAwM2VkYXRhcGF0aF9jYXBzIFxcdTAwMjZcXG4gXFx0ICAgICAgKDEgXFx1MDAzY1xcdTAwM2MgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYX1BSRUZJWF9MRU5fMTRfTEJOKSkpIHtcXG4gXFx0XFx0bmV0aWZfZXJyKGVmeCwgcHJvYmUsIGVmeC1cXHUwMDNlbmV0X2RldixcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDU6NTcuNTIyMjExODUyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiY29yZSIsIkR1cmF0aW9uIjozNzA4NjEzNzE5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNvbGFyZmxhcmUgRUYxMCBldGhlcm5ldCBkcml2ZXIgKGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMpIHRvIGFkZCBwdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIHZpYSBwY2lfaW5mbygpIGRlc2NyaWJpbmcgdGhlIGRhdGFwYXRoIGZpcm13YXJlIHZhcmlhbnQuIFRoaXMgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cywgYW5kIHRoZSBjaGFuZ2UgZG9lcyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGtlcm5lbCBkYXRhIHN0cnVjdHVyZXMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lciBhbmQgc2VjdXJpdHkgZW5naW5lZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzXG50b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsXG5hbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLlxuXG4tIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOlxuICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkXG4gIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUsIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBkZXZpY2VzIGxpa2UgVVNCIGdhZGdldHMsIG5ldGRldiwgdHVuL3RhcCkuXG4gIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCxcbiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLlxuXG4tIERPIE5PVCBCTElORExZIFRSVVNUIFwiTk8gRlVOQ1RJT05BTCBDSEFOR0VcIiAoTkZDSSkgT1IgXCJSRUZBQ1RPUklOR1wiIENMQUlNUzpcbiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyBcImNsZWFudXBzXCIsIFwicmVmYWN0b3JpbmdzXCIsIG9yIHN0YXRlXG4gIFwiTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWRcIi4gRG8gTk9UIHRha2UgdGhlc2UgY2xhaW1zIGF0IGZhY2UgdmFsdWUuXG4gIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudFxuICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy5cbiAgSWYgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSBpcyBtb2RpZmllZCBvciByZWZhY3RvcmVkLCBpdCBNVVNUIGJlIGZ1enplZC5cblxuLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDpcbiAgV2hlbiBhIHBhdGNoIGludHJvZHVjZXMgb3IgbW9kaWZpZXMgcnVudGltZSBjaGVja3Mgb3IgYXNzZXJ0aW9ucyAoZS5nLiwgV0FSTl9PTiosIFZNX1dBUk5fT04qLFxuICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy5cbiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlclxuICBhbiB1bnVzdWFsIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMgY2FuIHZpb2xhdGUgaXQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4yLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9ZmFsc2UgKE5FR0FUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6XG5cbi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczpcbiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuXG4gICogVXNlci1zcGFjZSBkaXJlY3Rvcmllcywgc2VsZi10ZXN0cywgc2FtcGxlcywgb3Igc2NyaXB0cyAoZS5nLiwgdG9vbHMvLCBzYW1wbGVzLywgc2NyaXB0cy8sIHVzci8pXG4gICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLlxuICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzXG4gICAgdGhhdCBkbyBub3QgYWx0ZXIgY29udHJvbCBmbG93IG9yIGRhdGEgc3RydWN0dXJlcy5cbiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuXG4tIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZTpcbiAgKiBWZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOlxuICAqIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKC5yZW1vdmUsIC5zaHV0ZG93biwgcGNpX3VucmVnaXN0ZXJfZHJpdmVyKSBleGVjdXRlZCBvbmx5IGR1cmluZ1xuICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLlxuICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOlxuLSBDb3JlIFN1YnN5c3RlbXM6XG4gICogQW55IGxvZ2ljIG1vZGlmaWNhdGlvbnMgaW4gbWVtb3J5IG1hbmFnZW1lbnQgKG1tLyksIHN5bmNocm9uaXphdGlvbi9sb2NraW5nIChrZXJuZWwvbG9ja2luZy8pLFxuICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy5cbi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOlxuICAqIEFueSByZXN0cnVjdHVyaW5nIG9mIHJlYWNoYWJsZSBkYXRhIHN0cnVjdHVyZXMsIGhlbHBlciBhYnN0cmFjdGlvbnMsIG9yIGFsZ29yaXRobSBmbG93cy5cbi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOlxuICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy5cbi0gUmVhY2hhYmxlIERyaXZlcnMgYW5kIFByb3RvY29sczpcbiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG40LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTilcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5XaGVuIFdvcnRoRnV6emluZz10cnVlLCB5b3UgbXVzdCBleHRyYWN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgaW50byBGb2N1c1N5bWJvbHMgdG8gZ3VpZGUgdGhlIGZ1enplcjpcblxuLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6XG4gIERvIE5PVCBsaXN0IGdlbmVyaWMsIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhbGxlZCBieSBhbG1vc3QgZXZlcnkgcHJvZ3JhbSBpbiB0aGUgY29ycHVzXG4gIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0XG4gIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLlxuICBMaXN0aW5nIHViaXF1aXRvdXMgZnVuY3Rpb25zIGNhdXNlcyB0aGUgZnV6emVyIHRvIGNsYXNzaWZ5IHRob3VzYW5kcyBvZiB1bnJlbGF0ZWQgdGVzdHMgYXMgXCJmb2N1c2VkXCIsXG4gIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy5cblxuLSBUQVJHRVQgU1BFQ0lGSUMgRkVBVFVSRSBMT0dJQyBBTkQgRU5UUllQT0lOVFM6XG4gIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50c1xuICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy5cblxuLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6XG4gIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2tcbiAgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyBpbiB2bWxpbnV4IGFuZCBjYW5ub3QgYmUgdGFyZ2V0ZWQgZGlyZWN0bHkgYnkgc3ltYm9sIGNvdmVyYWdlIGZpbHRlcnMuXG4gIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlclxuICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG41LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZTpcbi0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbi0gQ2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzIG5lZWRlZC5cbi0gU3RyaXAgYW55ICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0XG5cbkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGI2YzZhMWY5N2MxZjg5YTA2Y2NjOTIwN2MxNTI0M2MwYzA0MjU4ZmJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIFNlcCA0IDAyOjQ1OjU2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmNcbmluZGV4IDczYmMwNjQ5MjlmNjMuLjNiOTJlOTU1MzJjNTQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jXG5AQCAtMTA1LDYgKzEwNSwyNiBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2dldF92Zl9pbmRleChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuIH1cbiAjZW5kaWZcbiBcbitzdGF0aWMgY29uc3QgY2hhciAqZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKHUxNiBkcGNwdV9pZClcbit7XG4rXHRzd2l0Y2ggKGRwY3B1X2lkKSB7XG4rXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQOlxuK1x0XHRyZXR1cm4gXCJmdWxsLWZlYXR1cmVcIjtcbitcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYRFBfTE9XX0xBVEVOQ1k6XG4rXHRcdHJldHVybiBcImxvdy1sYXRlbmN5XCI7XG4rXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1BBQ0tFRF9TVFJFQU06XG4rXHRcdHJldHVybiBcInBhY2tlZC1zdHJlYW1cIjtcbitcdGNhc2UgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1RYRFBfSElHSF9QQUNLRVRfUkFURTpcbitcdFx0cmV0dXJuIFwiaGlnaC10eC1yYXRlXCI7XG4rXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX1JVTEVTX0VOR0lORTpcbitcdFx0cmV0dXJuIFwicnVsZXMtZW5naW5lXCI7XG4rXHRjYXNlIE1DX0NNRF9HRVRfQ0FQQUJJTElUSUVTX09VVF9SWERQX0RQREs6XG4rXHRcdHJldHVybiBcImRwZGtcIjtcbitcdGRlZmF1bHQ6XG4rXHRcdHJldHVybiBcInVua25vd25cIjtcbitcdH1cbit9XG4rXG4gc3RhdGljIGludCBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHMoc3RydWN0IGVmeF9uaWMgKmVmeClcbiB7XG4gXHRNQ0RJX0RFQ0xBUkVfQlVGKG91dGJ1ZiwgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfVjdfT1VUX0xFTik7XG5AQCAtMTQ0LDYgKzE2NCwxMyBAQCBzdGF0aWMgaW50IGVmeF9lZjEwX2luaXRfZGF0YXBhdGhfY2FwcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxuIFx0bmljX2RhdGEtXHUwMDNldHhfZHBjcHVfZndfaWQgPVxuIFx0XHRNQ0RJX1dPUkQob3V0YnVmLCBHRVRfQ0FQQUJJTElUSUVTX09VVF9UWF9EUENQVV9GV19JRCk7XG4gXG4rXHRwY2lfaW5mbyhlZngtXHUwMDNlcGNpX2RldixcbitcdFx0IFwiRGF0YXBhdGggZmlybXdhcmUgdmFyaWFudDogcng9JXMgKDB4JXgpIHR4PSVzICgweCV4KVxcblwiLFxuK1x0XHQgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKG5pY19kYXRhLVx1MDAzZXJ4X2RwY3B1X2Z3X2lkKSxcbitcdFx0IG5pY19kYXRhLVx1MDAzZXJ4X2RwY3B1X2Z3X2lkLFxuK1x0XHQgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lKG5pY19kYXRhLVx1MDAzZXR4X2RwY3B1X2Z3X2lkKSxcbitcdFx0IG5pY19kYXRhLVx1MDAzZXR4X2RwY3B1X2Z3X2lkKTtcbitcbiBcdGlmICghKG5pY19kYXRhLVx1MDAzZWRhdGFwYXRoX2NhcHMgXHUwMDI2XG4gXHQgICAgICAoMSBcdTAwM2NcdTAwM2MgTUNfQ01EX0dFVF9DQVBBQklMSVRJRVNfT1VUX1JYX1BSRUZJWF9MRU5fMTRfTEJOKSkpIHtcbiBcdFx0bmV0aWZfZXJyKGVmeCwgcHJvYmUsIGVmeC1cdTAwM2VuZXRfZGV2LFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDU6NTcuNTIyMjEzNDYyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTIwMDU2MDQyNjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTb2xhcmZsYXJlIEVGMTAgRHJpdmVyIFVwZGF0ZSoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIGRpZmYuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0J3MgYmVlbiBtb2RpZmllZCwgc28gSSdsbCB6ZXJvIGluIG9uIHRoZSBjaGFuZ2VzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jYC4gQWgsIHRoZXkndmUgYWRkZWQgYSBuZXcgZnVuY3Rpb24sIGBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWVgLCBhbmQgYSBjYWxsIHRvIGBwY2lfaW5mb2Agd2l0aGluIGBlZnhfZWYxMF9pbml0X2RhdGFwYXRoX2NhcHNgLiBJbnRlcmVzdGluZy5cblxuTm93LCBsZXQncyBzdGVwIGJhY2sgYW5kIGNvbnNpZGVyIHRoZSBjb250ZXh0LiBUaGlzIGlzIHRoZSBTb2xhcmZsYXJlIChTRkMpIEVGMTAgZXRoZXJuZXQgZHJpdmVyLiBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgdGhlc2UgYXJlIHBoeXNpY2FsIFBDSSBldGhlcm5ldCBkZXZpY2VzOyB5b3UgZG9uJ3QgdHlwaWNhbGx5IHNlZSBTRkMgTklDcyBydW5uaW5nIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGV5IGFyZSBkZXNpZ25lZCBmb3IgYmFyZS1tZXRhbCwgaGlnaC1wZXJmb3JtYW5jZSBhcHBsaWNhdGlvbnMuIFNvLCBJIG5lZWQgdG8gY29uZmlybSB3aGV0aGVyIHRoaXMgY29kZSBpcyBldmVuIHJlbGV2YW50IGluIGEgdmlydHVhbGl6ZWQgc2V0dGluZywgb3IgaWYgaXQncyBwdXJlbHkgZm9yIHBoeXNpY2FsIGhhcmR3YXJlLlxuXG5Mb29raW5nIG1vcmUgY2xvc2VseSBhdCB0aGUgY29kZSBjaGFuZ2UsIGl0IGFwcGVhcnMgdGhpcyBuZXcgZnVuY3Rpb24sIGBlZnhfZWYxMF9kcGNwdV9md192YXJpYW50X25hbWVgLCBpcyBqdXN0IGEgaGVscGVyIHRoYXQgcmV0dXJucyBhIHN0cmluZyBjb25zdGFudCBiYXNlZCBvbiBzb21lIElELiBBbmQsIGBwY2lfaW5mb2AgaXMgYmVpbmcgdXNlZCB0byBsb2cgdGhpcyBpbmZvcm1hdGlvbiBkdXJpbmcgdGhlIHByb2JlIHByb2Nlc3MuXG5cbkdpdmVuIGFsbCBvZiB0aGlzLCBteSBpbW1lZGlhdGUgYXNzZXNzbWVudCBpcyB0aGF0OiAxKSBUaGlzIGNoYW5nZSBpcyBoYXBwZW5pbmcgd2l0aGluIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZXRoZXJuZXQgZHJpdmVyIOKAkyBTb2xhcmZsYXJlIOKAkyB3aGljaCBhbG1vc3QgY2VydGFpbmx5IHJlcXVpcmVzIHRoZSBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgYW5kIGlzbid0IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLiAyKSBUaGUgbG9nZ2luZyB1c2luZyBgcGNpX2luZm9gIGlzIHB1cmVseSBkZWNvcmF0aXZlLiBUaGVyZSBpcyBubyBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmUgbWFuaXB1bGF0aW9uIGhlcmUsIHdoaWNoIGlzIHdoYXQgSSdtIGxvb2tpbmcgZm9yLlxuXG5JJ2xsIHF1aWNrbHkgdmVyaWZ5IHRoZXNlIGFzc3VtcHRpb25zLiBMZXQncyBtYWtlIHN1cmUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9gIGlzIGluZGVlZCB3aGF0IEkgdGhpbmsgaXQgaXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM0MzMsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0MTIsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNFQwMjo0NjowOS41Mjc4MjA1NjFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI3MTU3NDU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19TRkNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgODQ2IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU9Mj1zZmMteVxcdFxcdFxcdCs9IGVmeC5vIGVmeF9jb21tb24ubyBlZnhfY2hhbm5lbHMubyBuaWMubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGUtMTAtXFx0XFx0XFx0ICAgZWZ4X2RldmxpbmsubyBlZnhfcmVmbGFzaC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjExOnNmYy0kKENPTkZJR19TRkNfTVREKVxcdCs9IG10ZC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjEyOnNmYy0kKENPTkZJR19TRkNfU1JJT1YpXFx0Kz0gc3Jpb3YubyBlZjEwX3NyaW92Lm8gZWYxMDBfc3Jpb3YubyBlZjEwMF9yZXAubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlLTEzLSAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hZS5vIHRjLm8gdGNfYmluZGluZ3MubyB0Y19jb3VudGVycy5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9NYWtlZmlsZS0xNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGU6MTY6c2ZjLSQoQ09ORklHX1NGQ19DWEwpXFx0Kz0gZWZ4X2N4bC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjE3Om9iai0kKENPTkZJR19TRkMpXFx0Kz0gc2ZjLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvTWFrZWZpbGUtMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjE5Om9iai0kKENPTkZJR19TRkNfRkFMQ09OKSArPSBmYWxjb24vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL01ha2VmaWxlOjIwOm9iai0kKENPTkZJR19TRkNfU0lFTkEpICs9IHNpZW5hL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz04Mz1zdGF0aWMgYm9vbCBlZnhfZWYxMF9pc192ZihzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy04Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjg4OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy04OS1zdGF0aWMgaW50IGVmeF9lZjEwX2dldF92Zl9pbmRleChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz01NTk9c3RhdGljIGludCBlZnhfZWYxMF9wcm9iZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy02ODQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo2ODU6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTY4Ni1cXHRpZiAoKGVmeC1cXHUwMDNlcGNpX2Rldi1cXHUwMDNlcGh5c2ZuKSBcXHUwMDI2XFx1MDAyNiAoIWVmeC1cXHUwMDNlcGNpX2Rldi1cXHUwMDNlaXNfcGh5c2ZuKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz05NTM9c3RhdGljIHZvaWQgZWZ4X2VmMTBfcmVtb3ZlKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTk1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjk1ODojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtOTU5LVxcdHN0cnVjdCBlZnhfZWYxMF9uaWNfZGF0YSAqbmljX2RhdGFfcGY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTEwODY9aW50IGVmeF9lZjEwX3Zwb3J0X2RlbF9tYWMoc3RydWN0IGVmeF9uaWMgKmVmeCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTA5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjEwOTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTEwOTktc3RhdGljIGludCBlZnhfZWYxMF9wcm9iZV92ZihzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0xMTcwPXN0YXRpYyBpbnQgZWZ4X2VmMTBfZGltZW5zaW9uX3Jlc291cmNlcyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0xMTc2LVxcdHVuc2lnbmVkIGludCB1Y19tZW1fbWFwX3NpemUsIHdjX21lbV9tYXBfc2l6ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjExNzc6I2lmZGVmIENPTkZJR19TRkNfQ1hMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0xMTc4LVxcdHN0cnVjdCBlZnhfcHJvYmVfZGF0YSAqcHJvYmVfZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTMwNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjEzMDg6I2lmZGVmIENPTkZJR19TRkNfQ1hMXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0xMzA5LVxcdHByb2JlX2RhdGEgPSBjb250YWluZXJfb2YoZWZ4LCBzdHJ1Y3QgZWZ4X3Byb2JlX2RhdGEsIGVmeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTE0NDE9c3RhdGljIHZvaWQgZWZ4X2VmMTBfdGFibGVfcmVzZXRfbWNfYWxsb2NhdGlvbnMoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ0My1cXHRzdHJ1Y3QgZWZ4X2VmMTBfbmljX2RhdGEgKm5pY19kYXRhID0gZWZ4LVxcdTAwM2VuaWNfZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjE0NDQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTE0NDUtXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTE0NTctXFx0ZWZ4LVxcdTAwM2V2cG9ydF9pZCA9IEVWQl9QT1JUX0lEX0FTU0lHTkVEO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6MTQ1ODojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMTQ1OS1cXHRpZiAobmljX2RhdGEtXFx1MDAzZXZmKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0zMzU3PXN0YXRpYyBpbnQgZWZ4X2VmMTBfc2V0X21hY19hZGRyZXNzKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTMzNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzozMzYzOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0zMzY0LVxcdC8qIElmIHRoaXMgZnVuY3Rpb24gaXMgYSBWRiBhbmQgd2UgaGF2ZSBhY2Nlc3MgdG8gdGhlIHBhcmVudCBQRixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9MzQ5Nz1lZnhfZWYxMF90ZXN0X2NoaXAoc3RydWN0IGVmeF9uaWMgKmVmeCwgc3RydWN0IGVmeF9zZWxmX3Rlc3RzICp0ZXN0cylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMzUxOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjM1MjA6I2lmZGVmIENPTkZJR19TRkNfTVREXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy0zNTIxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYz0zNjI0PXN0YXRpYyBpbnQgZWZ4X2VmMTBfbXRkX3Byb2JlKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTM2NzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzozNjc3OiNlbmRpZiAvKiBDT05GSUdfU0ZDX01URCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtMzY3OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9NDExND1jb25zdCBzdHJ1Y3QgZWZ4X25pY190eXBlIGVmeF9odW50X2EwX3ZmX25pY190eXBlID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MTg4LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6NDE4OTojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQxOTAtXFx0Lm10ZF9wcm9iZSA9IGVmeF9wb3J0X2R1bW15X29wX2ludCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDE5NS1cXHQudmxhbl9yeF9raWxsX3ZpZCA9IGVmeF9lZjEwX3ZsYW5fcnhfa2lsbF92aWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0MTk2OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MTk3LVxcdC52c3dpdGNoaW5nX3Byb2JlID0gZWZ4X2VmMTBfdnN3aXRjaGluZ19wcm9iZV92ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM9NDIyNj1jb25zdCBzdHJ1Y3QgZWZ4X25pY190eXBlIGVmeF9odW50X2EwX25pY190eXBlID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MzA1LSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmM6NDMwNjojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQzMDctXFx0Lm10ZF9wcm9iZSA9IGVmeF9lZjEwX210ZF9wcm9iZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDMyMC1cXHQudWRwX3RubF9oYXNfcG9ydCA9IGVmeF9lZjEwX3VkcF90bmxfaGFzX3BvcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0MzIxOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00MzIyLVxcdC5zcmlvdl9jb25maWd1cmUgPSBlZnhfZWYxMF9zcmlvdl9jb25maWd1cmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jPTQzNjI9Y29uc3Qgc3RydWN0IGVmeF9uaWNfdHlwZSBlZnhfeDRfbmljX3R5cGUgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQ0MzgtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYzo0NDM5OiNpZmRlZiBDT05GSUdfU0ZDX01URFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwLmMtNDQ0MC1cXHQubXRkX3Byb2JlID0gZWZ4X2VmMTBfbXRkX3Byb2JlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYy00NDUzLVxcdC51ZHBfdG5sX2hhc19wb3J0ID0gZWZ4X2VmMTBfdWRwX3RubF9oYXNfcG9ydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jOjQ0NTQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jLTQ0NTUtXFx0LyogY3VycmVudGx5IHNldCB0byB0aGUgVkYgdmVyc2lvbnMgb2YgdGhlc2UgZnVuY3Rpb25zXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYz00MjM9c3RhdGljIHZvaWQgZWYxMDBfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTQzMi1cXHRlZjEwMF9yZW1vdmVfbmV0ZGV2KHByb2JlX2RhdGEpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jOjQzMzojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTQzNC1cXHRlZnhfZmluaV9zdHJ1Y3RfdGMoZWZ4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jPTQ0Nz1zdGF0aWMgaW50IGVmMTAwX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMC5jLTUyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYzo1MjE6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYy01MjItc3RhdGljIGludCBlZjEwMF9wY2lfc3Jpb3ZfY29uZmlndXJlKHN0cnVjdCBwY2lfZGV2ICpkZXYsIGludCBudW1fdmZzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwLmM9NTQ3PXN0cnVjdCBwY2lfZHJpdmVyIGVmMTAwX3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYy01NTEtXFx0LnJlbW92ZSAgICAgICAgID0gZWYxMDBfcGNpX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYzo1NTI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDAuYy01NTMtXFx0LnNyaW92X2NvbmZpZ3VyZSA9IGVmMTAwX3BjaV9zcmlvdl9jb25maWd1cmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmM9Mjc2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgZWYxMDBfbmV0ZGV2X29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy0yOTEtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jOjI5MjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy0yOTMtXFx0Lm5kb19zZXR1cF90Y1xcdFxcdD0gZWZ4X3RjX3NldHVwLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jPTM4Mz12b2lkIGVmMTAwX3JlbW92ZV9uZXRkZXYoc3RydWN0IGVmeF9wcm9iZV9kYXRhICpwcm9iZV9kYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTM5NS1cXHR1bnJlZ2lzdGVyX25ldGV2ZW50X25vdGlmaWVyKFxcdTAwMjZlZngtXFx1MDAzZW5ldGV2ZW50X25vdGlmaWVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmM6Mzk2OiNpZiBkZWZpbmVkKENPTkZJR19TRkNfU1JJT1YpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTM5Ny1cXHRpZiAoIWVmeC1cXHUwMDNldHlwZS1cXHUwMDNlaXNfdmYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmMtNDAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzo0MDQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmMtNDA1LVxcdGVmMTAwX3BmX3Vuc2V0X2RldmxpbmtfcG9ydChlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jPTQyMz1pbnQgZWYxMDBfcHJvYmVfbmV0ZGV2KHN0cnVjdCBlZnhfcHJvYmVfZGF0YSAqcHJvYmVfZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MDEtXFx0XFx0XFx0Z290byBmYWlsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYzo1MDI6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmMtNTAzLVxcdFxcdGVmMTAwX3BmX3NldF9kZXZsaW5rX3BvcnQoZWZ4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uZXRkZXYuYy01MjUtZmFpbDpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmV0ZGV2LmM6NTI2OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25ldGRldi5jLTUyNy1cXHQvKiByZW1vdmUgZGV2bGluayBwb3J0IGlmIGRvZXMgZXhpc3QgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYz0zOTE9c3RhdGljIGludCBlZjEwMF9maWx0ZXJfdGFibGVfdXAoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy00MDYtXFx0dXBfd3JpdGUoXFx1MDAyNmVmeC1cXHUwMDNlZmlsdGVyX3NlbSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jOjQwNzpcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfU0ZDX1NSSU9WKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtNDA4LVxcdFxcdHJjID0gZWZ4X3RjX2luc2VydF9yZXBfZmlsdGVycyhlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jPTQyNT1zdGF0aWMgdm9pZCBlZjEwMF9maWx0ZXJfdGFibGVfZG93bihzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy00MjYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYzo0Mjc6XFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1NGQ19TUklPVikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTQyOC1cXHRcXHRlZnhfdGNfcmVtb3ZlX3JlcF9maWx0ZXJzKGVmeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmM9MTE0OT1pbnQgZWYxMDBfcHJvYmVfbmV0ZGV2X3BmKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmMtMTE1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfbmljLmM6MTE1NTpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1NGQ19TUklPVikgfHwgIW5pY19kYXRhLVxcdTAwM2VncnBfbWFlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy0xMTU2LVxcdFxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jPTEyMDA9dm9pZCBlZjEwMF9yZW1vdmUoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy0xMjAzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYzoxMjA0OlxcdGlmIChJU19FTkFCTEVEKENPTkZJR19TRkNfU1JJT1YpIFxcdTAwMjZcXHUwMDI2IGVmeC1cXHUwMDNlbWFlKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jLTEyMDUtXFx0XFx0ZWZ4X2VmMTAwX2ZpbmlfcmVwcyhlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jPTEyMjQ9Y29uc3Qgc3RydWN0IGVmeF9uaWNfdHlwZSBlZjEwMF9wZl9uaWNfdHlwZSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy0xMzAwLVxcdC5zdG9wX3N0YXRzID0gZWZ4X21jZGlfbWFjX3N0b3Bfc3RhdHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX25pYy5jOjEzMDE6XFx0LnNyaW92X2NvbmZpZ3VyZSA9IElTX0VOQUJMRUQoQ09ORklHX1NGQ19TUklPVikgP1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9uaWMuYy0xMzAyLVxcdFxcdGVmeF9lZjEwMF9zcmlvdl9jb25maWd1cmUgOiBOVUxMLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAwX3J4LmM9NTY9dm9pZCBfX2VmMTAwX3J4X3BhY2tldChzdHJ1Y3QgZWZ4X2NoYW5uZWwgKmNoYW5uZWwpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfcnguYy05NC1cXHRpZiAobmljX2RhdGEtXFx1MDAzZWhhdmVfbXBvcnQgXFx1MDAyNlxcdTAwMjYgaW5nX3BvcnQgIT0gbmljX2RhdGEtXFx1MDAzZWJhc2VfbXBvcnQpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMDBfcnguYzo5NTojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZjEwMF9yeC5jLTk2LVxcdFxcdHN0cnVjdCBlZnhfcmVwICplZnY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9MzM0PXN0YXRpYyBpbnQgZWZ4X3Byb2JlX2FsbChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTM1NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6MzU2OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTM1Ny1cXHRyYyA9IGVmeC1cXHUwMDNldHlwZS1cXHUwMDNldnN3aXRjaGluZ19wcm9iZShlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTM4MS0gZmFpbDQ6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jOjM4MjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0zODMtXFx0ZWZ4LVxcdTAwM2V0eXBlLVxcdTAwM2V2c3dpdGNoaW5nX3JlbW92ZShlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jPTM5Mz1zdGF0aWMgdm9pZCBlZnhfcmVtb3ZlX2FsbChzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTQwMC1cXHRlZnhfcmVtb3ZlX2ZpbHRlcnMoZWZ4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6NDAxOiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTQwMi1cXHRlZngtXFx1MDAzZXR5cGUtXFx1MDAzZXZzd2l0Y2hpbmdfcmVtb3ZlKGVmeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9NTY4PXN0YXRpYyBjb25zdCBzdHJ1Y3QgbmV0X2RldmljZV9vcHMgZWZ4X25ldGRldl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNTgzLVxcdC5uZG9faHd0c3RhbXBfZ2V0XFx0PSBlZnhfaHd0c3RhbXBfZ2V0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYzo1ODQ6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtNTg1LVxcdC5uZG9fc2V0X3ZmX21hY1xcdFxcdD0gZWZ4X3NyaW92X3NldF92Zl9tYWMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9MTE1Mz1zdGF0aWMgaW50IGVmeF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBjaV9kZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtMTI2MS0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM6MTI2MjojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYy0xMjYzLXN0YXRpYyBpbnQgZWZ4X3BjaV9zcmlvdl9jb25maWd1cmUoc3RydWN0IHBjaV9kZXYgKmRldiwgaW50IG51bV92ZnMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmM9MTQwOD1zdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgZWZ4X3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmMtMTQxNS1cXHQuZXJyX2hhbmRsZXJcXHQ9IFxcdTAwMjZlZnhfZXJyX2hhbmRsZXJzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguYzoxNDE2OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5jLTE0MTctXFx0LnNyaW92X2NvbmZpZ3VyZSA9IGVmeF9wY2lfc3Jpb3ZfY29uZmlndXJlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oPTE3OD12b2lkIGVmeF91cGRhdGVfc3dfc3RhdHMoc3RydWN0IGVmeF9uaWMgKmVmeCwgdTY0ICpzdGF0cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmgtMTgwLS8qIE1URCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaDoxODE6I2lmZGVmIENPTkZJR19TRkNfTVREXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeC5oLTE4Mi1pbnQgZWZ4X210ZF9hZGQoc3RydWN0IGVmeF9uaWMgKmVmeCwgc3RydWN0IGVmeF9tdGRfcGFydGl0aW9uICpwYXJ0cyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaD0xOTM9c3RhdGljIGlubGluZSB2b2lkIGVmeF9tdGRfcmVtb3ZlKHN0cnVjdCBlZnhfbmljICplZngpIHt9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmgtMTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnguaDoxOTY6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4LmgtMTk3LXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGVmeF92Zl9zaXplKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmM9ODM9c3RhdGljIHVuc2lnbmVkIGludCBlZnhfd2FudGVkX3BhcmFsbGVsaXNtKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmMtMTA2LVxcdCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY2hhbm5lbHMuYzoxMDc6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmMtMTA4LVxcdGlmIChlZngtXFx1MDAzZXR5cGUtXFx1MDAzZXNyaW92X3dhbnRlZCkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jPTI0Nz1pbnQgZWZ4X3Byb2JlX2ludGVycnVwdHMoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY2hhbm5lbHMuYy0zNDgtXFx0LyogUlNTIG1pZ2h0IGJlIHVzYWJsZSBvbiBWRnMgZXZlbiBpZiBpdCBpcyBkaXNhYmxlZCBvbiB0aGUgUEYgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NoYW5uZWxzLmM6MzQ5OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jaGFubmVscy5jLTM1MC1cXHRpZiAoZWZ4LVxcdTAwM2V0eXBlLVxcdTAwM2Vzcmlvdl93YW50ZWQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmM9NzIzPWludCBlZnhfcmVzZXRfdXAoc3RydWN0IGVmeF9uaWMgKmVmeCwgZW51bSByZXNldF90eXBlIG1ldGhvZCwgYm9vbCBvaylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmMtNzUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmM6NzU0OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy03NTUtXFx0cmMgPSBlZngtXFx1MDAzZXR5cGUtXFx1MDAzZXZzd2l0Y2hpbmdfcmVzdG9yZShlZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYz05NjE9aW50IGVmeF9pbml0X3N0cnVjdChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBzdHJ1Y3QgcGNpX2RldiAqcGNpX2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmMtOTY4LVxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZlZngtXFx1MDAzZWJpdV9sb2NrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jOjk2OTojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTk3MC1cXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2ZWZ4LVxcdTAwM2VtdGRfbGlzdCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jPTExMTc9dm9pZCBlZnhfZmluaV9pbyhzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uYy0xMTM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmM6MTEzNzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5jLTExMzgtc3RhdGljIHNzaXplX3QgbWNkaV9sb2dnaW5nX3Nob3coc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uaD04MT1zdGF0aWMgaW5saW5lIHZvaWQgZWZ4X3NjaGVkdWxlX2NoYW5uZWxfaXJxKHN0cnVjdCBlZnhfY2hhbm5lbCAqY2hhbm5lbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY29tbW9uLmgtODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jb21tb24uaDo4NzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2NvbW1vbi5oLTg4LXZvaWQgZWZ4X2luaXRfbWNkaV9sb2dnaW5nKHN0cnVjdCBlZnhfbmljICplZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9jeGwuaC0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2N4bC5oOjE0OiNpZmRlZiBDT05GSUdfU0ZDX0NYTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfY3hsLmgtMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0xNy0jaW5jbHVkZSBcXFwibWNkaV9wY29sLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM6MTg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0xOS0jaW5jbHVkZSBcXFwibWFlLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYz0yND1zdHJ1Y3QgZWZ4X2Rldmxpbmsge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmM6Mjg6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy0yOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5jPTYyOT1zdGF0aWMgY29uc3Qgc3RydWN0IGRldmxpbmtfb3BzIHNmY19kZXZsaW5rX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5jLTYzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYzo2MzU6I2lmZGVmIENPTkZJR19TRkNfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWZ4X2RldmxpbmsuYy02MzYtc3RhdGljIHN0cnVjdCBkZXZsaW5rX3BvcnQgKmVmMTAwX3NldF9kZXZsaW5rX3BvcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgdTMyIGlkeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oPTM3PXZvaWQgZWZ4X2ZpbmlfZGV2bGlua19hbmRfdW5sb2NrKHN0cnVjdCBlZnhfbmljICplZngpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oLTM4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9lZnhfZGV2bGluay5oOjM5OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmeF9kZXZsaW5rLmgtNDAtc3RydWN0IGVmeF9yZXA7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlPTI9c2ZjLWZhbGNvbi15XFx0XFx0Kz0gZWZ4Lm8gbmljLm8gZmFyY2gubyBmYWxjb24ubyB0eC5vIHJ4Lm8gc2VsZnRlc3QubyBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9NYWtlZmlsZTo2OnNmYy1mYWxjb24tJChDT05GSUdfU0ZDX0ZBTENPTl9NVEQpXFx0Kz0gbXRkLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL01ha2VmaWxlOjc6b2JqLSQoQ09ORklHX1NGQ19GQUxDT04pXFx0XFx0Kz0gc2ZjLWZhbGNvbi5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2VmeC5jPTI2MTU9c3RhdGljIGludCBlZjRfaW5pdF9zdHJ1Y3Qoc3RydWN0IGVmNF9uaWMgKmVmeCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4LmMtMjYyMy1cXHRzcGluX2xvY2tfaW5pdChcXHUwMDI2ZWZ4LVxcdTAwM2ViaXVfbG9jayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguYzoyNjI0OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2VmeC5jLTI2MjUtXFx0SU5JVF9MSVNUX0hFQUQoXFx1MDAyNmVmeC1cXHUwMDNlbXRkX2xpc3QpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguaD0yMTQ9dm9pZCBlZjRfdXBkYXRlX3N3X3N0YXRzKHN0cnVjdCBlZjRfbmljICplZngsIHU2NCAqc3RhdHMpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguaC0yMTYtLyogTVREICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9lZnguaDoyMTc6I2lmZGVmIENPTkZJR19TRkNfRkFMQ09OX01URFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZWZ4LmgtMjE4LWludCBlZjRfbXRkX2FkZChzdHJ1Y3QgZWY0X25pYyAqZWZ4LCBzdHJ1Y3QgZWY0X210ZF9wYXJ0aXRpb24gKnBhcnRzLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYz02MTY9ZmFsY29uX3NwaV9yZWFkKHN0cnVjdCBlZjRfbmljICplZngsIGNvbnN0IHN0cnVjdCBmYWxjb25fc3BpX2RldmljZSAqc3BpLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYy02NDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzo2NDY6I2lmZGVmIENPTkZJR19TRkNfRkFMQ09OX01URFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vZmFsY29uLmMtNjQ3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYz05MjE9c3RhdGljIGludCBmYWxjb25fbXRkX3Byb2JlKHN0cnVjdCBlZjRfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTk3MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jOjk3MTojZW5kaWYgLyogQ09ORklHX1NGQ19GQUxDT05fTVREICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYy05NzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jPTI3MDg9Y29uc3Qgc3RydWN0IGVmNF9uaWNfdHlwZSBmYWxjb25fYTFfbmljX3R5cGUgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI3ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzoyNzgyOiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI3ODMtXFx0Lm10ZF9wcm9iZSA9IGZhbGNvbl9tdGRfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jPTI4MDU9Y29uc3Qgc3RydWN0IGVmNF9uaWNfdHlwZSBmYWxjb25fYjBfbmljX3R5cGUgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI4NzgtI2VuZGlmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9mYWxjb24uYzoyODc5OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL2ZhbGNvbi5jLTI4ODAtXFx0Lm10ZF9wcm9iZSA9IGZhbGNvbl9tdGRfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaD03NjM9c3RydWN0IGVmNF9uaWMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmgtODM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9mYWxjb24vbmV0X2RyaXZlci5oOjgzODojaWZkZWYgQ09ORklHX1NGQ19GQUxDT05fTVREXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmgtODM5LVxcdHN0cnVjdCBsaXN0X2hlYWQgbXRkX2xpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaD0xMDQwPXN0cnVjdCBlZjRfbmljX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2ZhbGNvbi9uZXRfZHJpdmVyLmgtMTEyNy0jZW5kaWZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaDoxMTI4OiNpZmRlZiBDT05GSUdfU0ZDX0ZBTENPTl9NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZmFsY29uL25ldF9kcml2ZXIuaC0xMTI5LVxcdGludCAoKm10ZF9wcm9iZSkoc3RydWN0IGVmNF9uaWMgKmVmeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTUyPXN0YXRpYyB2b2lkIGVmeF9tY2RpX2FiYW5kb24oc3RydWN0IGVmeF9uaWMgKmVmeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy01My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjU0OiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtNTUtc3RhdGljIGJvb2wgbWNkaV9sb2dnaW5nX2RlZmF1bHQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTYxPWludCBlZnhfbWNkaV9pbml0KHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTcyLVxcdG1jZGktXFx1MDAzZWVmeCA9IGVmeDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjczOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtNzQtXFx0LyogY29uc3VtaW5nIGNvZGUgYXNzdW1lcyBidWZmZXIgaXMgcGFnZS1zaXplZCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0xMTQtZmFpbDI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoxMTU6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0xMTYtXFx0a2ZyZWUobWNkaS1cXHUwMDNlbG9nZ2luZ19idWZmZXIpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0xMzY9dm9pZCBlZnhfbWNkaV9maW5pKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjE0MTojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE0Mi1cXHRrZnJlZShlZngtXFx1MDAzZW1jZGktXFx1MDAzZWlmYWNlLmxvZ2dpbmdfYnVmZmVyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM9MTQ4PXN0YXRpYyB2b2lkIGVmeF9tY2RpX3NlbmRfcmVxdWVzdChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCB1bnNpZ25lZCBjbWQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE1MS1cXHRzdHJ1Y3QgZWZ4X21jZGlfaWZhY2UgKm1jZGkgPSBlZnhfbWNkaShlZngpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MTUyOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMTUzLVxcdGNoYXIgKmJ1ZiA9IG1jZGktXFx1MDAzZWxvZ2dpbmdfYnVmZmVyOyAvKiBwYWdlLXNpemVkICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTE5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjE5OTojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX0xPR0dJTkdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIwMC1cXHRpZiAobWNkaS1cXHUwMDNlbG9nZ2luZ19lbmFibGVkIFxcdTAwMjZcXHUwMDI2ICFXQVJOX09OX09OQ0UoIWJ1ZikpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM9MjYzPXN0YXRpYyB2b2lkIGVmeF9tY2RpX3JlYWRfcmVzcG9uc2VfaGVhZGVyKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTI2Ni1cXHR1bnNpZ25lZCBpbnQgcmVzcHNlcSwgcmVzcGNtZCwgZXJyb3I7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoyNjc6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yNjgtXFx0Y2hhciAqYnVmID0gbWNkaS1cXHUwMDNlbG9nZ2luZ19idWZmZXI7IC8qIHBhZ2Utc2l6ZWQgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6Mjg3OiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTE9HR0lOR1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjg4LVxcdGlmIChtY2RpLVxcdTAwM2Vsb2dnaW5nX2VuYWJsZWQgXFx1MDAyNlxcdTAwMjYgIVdBUk5fT05fT05DRSghYnVmKSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYz0yMTc4PWludCBlZnhfbWNkaV9udnJhbV91cGRhdGVfc3RhcnQoc3RydWN0IGVmeF9uaWMgKmVmeCwgdW5zaWduZWQgaW50IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIxOTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYzoyMTk2OiNpZmRlZiBDT05GSUdfU0ZDX01URFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjE5Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTIxOTg9c3RhdGljIGludCBlZnhfbWNkaV9udnJhbV9yZWFkKHN0cnVjdCBlZnhfbmljICplZngsIHVuc2lnbmVkIGludCB0eXBlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yMjIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MjIyMjojZW5kaWYgLyogQ09ORklHX1NGQ19NVEQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIyMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTIzNDI9aW50IGVmeF9tY2RpX252cmFtX3VwZGF0ZV9maW5pc2hfcG9sbGVkKHN0cnVjdCBlZnhfbmljICplZngsIHVuc2lnbmVkIGludCB0eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuYy0yMzcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmM6MjM3MjojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jLTIzNzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jPTI0NzQ9dm9pZCBlZnhfbWNkaV9tdGRfcmVuYW1lKHN0cnVjdCBlZnhfbXRkX3BhcnRpdGlvbiAqcGFydClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmMtMjQ4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5jOjI0ODQ6I2VuZGlmIC8qIENPTkZJR19TRkNfTVREICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oPTY3PXN0cnVjdCBlZnhfbWNkaV9pZmFjZSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTgyLVxcdHN0cnVjdCB0aW1lcl9saXN0IGFzeW5jX3RpbWVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg6ODM6I2lmZGVmIENPTkZJR19TRkNfTUNESV9MT0dHSU5HXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaC04NC1cXHRjaGFyICpsb2dnaW5nX2J1ZmZlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmg9MTE5PXN0cnVjdCBlZnhfbWNkaV9kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEyMC1cXHRzdHJ1Y3QgZWZ4X21jZGlfaWZhY2UgaWZhY2U7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDoxMjE6I2lmZGVmIENPTkZJR19TRkNfTUNESV9NT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEyMi1cXHRzdHJ1Y3QgZWZ4X21jZGlfbW9uIGh3bW9uO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaD0xMjc9c3RhdGljIGlubGluZSBzdHJ1Y3QgZWZ4X21jZGlfaWZhY2UgKmVmeF9tY2RpKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTEzMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oOjEzMzojaWZkZWYgQ09ORklHX1NGQ19NQ0RJX01PTlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpLmgtMTM0LXN0YXRpYyBpbmxpbmUgc3RydWN0IGVmeF9tY2RpX21vbiAqZWZ4X21jZGlfbW9uKHN0cnVjdCBlZnhfbmljICplZngpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oPTQxNz1pbnQgZWZ4X21jZGlfZ2V0X3ByaXZpbGVnZV9tYXNrKHN0cnVjdCBlZnhfbmljICplZngsIHUzMiAqbWFzayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaC00MTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaDo0MTk6I2lmZGVmIENPTkZJR19TRkNfTUNESV9NT05cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTQyMC1pbnQgZWZ4X21jZGlfbW9uX3Byb2JlKHN0cnVjdCBlZnhfbmljICplZngpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGkuaD00NDU9aW50IGVmeF9tY2RpX252cmFtX3VwZGF0ZV9maW5pc2hfcG9sbGVkKHN0cnVjdCBlZnhfbmljICplZngsIHVuc2lnbmVkIGludCB0eXBlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTQ0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oOjQ0NzojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaS5oLTQ0OC1pbnQgZWZ4X21jZGlfbXRkX3JlYWQoc3RydWN0IG10ZF9pbmZvICptdGQsIGxvZmZfdCBzdGFydCwgc2l6ZV90IGxlbixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jPTEwMz12b2lkIGVmeF9tY2RpX3NlbnNvcl9ldmVudChzdHJ1Y3QgZWZ4X25pYyAqZWZ4LCBlZnhfcXdvcmRfdCAqZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbWNkaV9tb24uYy0xMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmM6MTMzOiNpZmRlZiBDT05GSUdfU0ZDX01DRElfTU9OXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmMtMTM0LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmM9NTE5PXZvaWQgZWZ4X21jZGlfbW9uX3JlbW92ZShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL21jZGlfbW9uLmMtNTI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9tY2RpX21vbi5jOjUzMDojZW5kaWYgLyogQ09ORklHX1NGQ19NQ0RJX01PTiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaD0xMDE3PXN0cnVjdCBlZnhfbmljIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTEwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oOjExMDY6I2lmZGVmIENPTkZJR19TRkNfTVREXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMTA3LVxcdHN0cnVjdCBsaXN0X2hlYWQgbXRkX2xpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTExNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxMTY3OiNpZmRlZiBDT05GSUdfU0ZDX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMTY4LVxcdHVuc2lnbmVkIHZmX2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xMTk5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmg6MTIwMDojaWZkZWYgQ09ORklHX1NGQ19DWExcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTEyMDEtc3RydWN0IGVmeF9jeGw7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oPTEyMTE9c3RydWN0IGVmeF9wcm9iZV9kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTIxMy1cXHRzdHJ1Y3QgZWZ4X25pYyBlZng7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaDoxMjE0OiNpZmRlZiBDT05GSUdfU0ZDX0NYTFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmgtMTIxNS1cXHRzdHJ1Y3QgZWZ4X2N4bCAqY3hsO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaD0xNDAyPXN0cnVjdCBlZnhfbmljX3R5cGUge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25ldF9kcml2ZXIuaC0xNTExLSNlbmRpZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uZXRfZHJpdmVyLmg6MTUxMjojaWZkZWYgQ09ORklHX1NGQ19NVERcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvbmV0X2RyaXZlci5oLTE1MTMtXFx0aW50ICgqbXRkX3Byb2JlKShzdHJ1Y3QgZWZ4X25pYyAqZWZ4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uaWMuaD0xNzM9c3RydWN0IGVmeF9lZjEwX25pY19kYXRhIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uaWMuaC0xOTctXFx0dTggcG9ydF9pZFtFVEhfQUxFTl07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL25pYy5oOjE5ODojaWZkZWYgQ09ORklHX1NGQ19TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9uaWMuaC0xOTktXFx0dW5zaWduZWQgaW50IHZmX2luZGV4O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlPTI9c2ZjLXNpZW5hLXlcXHRcXHQrPSBmYXJjaC5vIHNpZW5hLm8gXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlLTctXFx0XFx0XFx0ICAgbWNkaV9tb24ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9NYWtlZmlsZTo4OnNmYy1zaWVuYS0kKENPTkZJR19TRkNfU0lFTkFfTVREKVxcdCs9IG10ZC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlOjk6c2ZjLXNpZW5hLSQoQ09ORklHX1NGQ19TSUVOQV9TUklPVilcXHQrPSBzaWVuYV9zcmlvdi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL01ha2VmaWxlLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9NYWtlZmlsZToxMTpvYmotJChDT05GSUdfU0ZDX1NJRU5BKVxcdCs9IHNmYy1zaWVuYS5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzMtI2luY2x1ZGUgXFxcInNyaW92LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jOjM0OiNpZmRlZiBDT05GSUdfU0ZDX1NJRU5BX1NSSU9WXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jLTM1LSNpbmNsdWRlIFxcXCJzaWVuYV9zcmlvdi5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jPTM0Mj1zdGF0aWMgaW50IGVmeF9wcm9iZV9hbGwoc3RydWN0IGVmeF9uaWMgKmVmeClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zNjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL3NpZW5hL2VmeC5jOjM2NDojaWZkZWYgQ09ORklHX1NGQ19TSUVOQV9TUklPVlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zNjUtXFx0cmMgPSBlZngtXFx1MDAzZXR5cGUtXFx1MDAzZXZzd2l0Y2hpbmdfcHJvYmUoZWZ4KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYy0zODctIGZhaWw0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3NmYy9zaWVuYS9lZnguYzozODg6I2lmZGVmIENPTkZJR19TRkNfU0lFTkFfU1JJT1ZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvc2llbmEvZWZ4LmMtMzg5LVxcdGVmeC1cXHUwMDNldHlwZS1cXHUwMDNldnN3aXRjaGluZ19yZW1vdmUoZWZ4KTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDY6MDkuODU0OTgxOTc3WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjQ3NTMzNDE3MDcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gncyBGdXp6aW5nIFN1aXRhYmlsaXR5KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgdGhlIGNyaXRlcmlhLiBTZWN0aW9uIDIsIHRoZSBcIm5lZ2F0aXZlXCIgY3JpdGVyaWEsIGFyZSBrZXkuIEknbSBsb29raW5nIGZvciB0d28gdGhpbmdzOiBjaGFuZ2VzIHRoYXQgYXJlbid0IHRvIGtlcm5lbCBjb2RlIGFuZCBhcmVuJ3QgZXhlY3V0YWJsZSAobGlrZSBjaGFuZ2VzIHRvIGxvZ2dpbmcsIHRyYWNlcG9pbnRzLCB0aGF0IGRvbid0IGFsdGVyIGNvbnRyb2wgZmxvdyksIGFuZCBhbnl0aGluZyB0aWVkIHRvIGhhcmR3YXJlIEkgY2FuJ3QgZWFzaWx5IGVtdWxhdGUuXG5cblRoaXMgcGF0Y2ggdG91Y2hlcyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuY2AuIEludGVyZXN0aW5nLiBJIHNlZSBpdCBkZWZpbmVzIGEgbWFwcGluZyBiZXR3ZWVuIGZpcm13YXJlIElEcyBhbmQgdGhlaXIgc3RyaW5nIG5hbWVzLCBgZWZ4X2VmMTBfZHBjcHVfZndfdmFyaWFudF9uYW1lYC4gT2theSwgYW5kIHRoZW4gYSBgcGNpX2luZm8oKWAgY2FsbCBpcyBhZGRlZCB0byBwcmludCBvdXQgZGF0YXBhdGggZmlybXdhcmUgdmFyaWFudCBuYW1lcyBhbmQgSURzIHdpdGhpbiBgZWZ4X2VmMTBfaW5pdF9kYXRhcGF0aF9jYXBzKClgLlxuXG5Ob3csIGRvZXMgdGhpcyBmYWxsIHVuZGVyIG91ciBuZWdhdGl2ZSBjcml0ZXJpYT8gQWJzb2x1dGVseS4gRmlyc3QsIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvYCBpcyB0aGUgU29sYXJmbGFyZSBFRjEwIGV0aGVybmV0IGRyaXZlci4gVGhhdCdzIHZlbmRvci1zcGVjaWZpYywgYSBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZCwgYW5kIGRlZmluaXRlbHkgKm5vdCogc29tZXRoaW5nIHRoYXQncyBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBTZWNvbmQsIHRoaXMgY2hhbmdlIGlzIHB1cmUgZGVjb3JhdGl2ZSBsb2dnaW5nLiBBIGBwY2lfaW5mb2Agb3V0cHV0LiBJdCdzIHByaW50aW5nIGluZm9ybWF0aW9uLCBub3QgYWx0ZXJpbmcgY29udHJvbCBmbG93LCBkYXRhIHN0cnVjdHVyZXMsIG9yIHRoZSBzdGF0ZSBvZiB0aGUgc3lzdGVtIGluIGFueSBmdW5jdGlvbmFsIHdheS5cblxuVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzICpub3QqIGEgZ29vZCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIEkgaGF2ZSB0byBzZXQgYFdvcnRoRnV6emluZ2AgdG8gYGZhbHNlYC4gVGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgaW4gdGhpcyB0aGF0IGFyZSByZWxldmFudCBmb3IgZnV6emluZywgc28gYEZvY3VzU3ltYm9sc2Agc3RheXMgZW1wdHksIGFuZCBgRW5hYmxlQ29uZmlnc2AgcmVtYWlucyBlbXB0eSAob3IgbnVsbCkuXG5cbkknbSBkb2luZyBhIHNhbml0eSBjaGVjazogYFdvcnRoRnV6emluZzogZmFsc2VgLCBgRm9jdXNTeW1ib2xzOiBbXWAsIGBFbmFibGVDb25maWdzOiBbXWAuIFRoZSByZWFzb25pbmcgaXMgY29uY2lzZSBhbmQgYWNjdXJhdGUsIGJhc2VkIG9uIHRoZSBkb2N1bWVudGVkIGNyaXRlcmlhIGFuZCB0aGUgY29kZSBjaGFuZ2VzLiBOb3csIEknbGwgY2FsbCBgc2V0LXJlc3VsdHNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNjQ5NywiT3V0cHV0VG9rZW5zIjoxMTEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDY6MzQuNjA4MzI2OTM0WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDE0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU29sYXJmbGFyZSBFRjEwIGV0aGVybmV0IGRyaXZlciAoZHJpdmVycy9uZXQvZXRoZXJuZXQvc2ZjL2VmMTAuYykgdG8gYWRkIHB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgdmlhIHBjaV9pbmZvKCkgZGVzY3JpYmluZyB0aGUgZGF0YXBhdGggZmlybXdhcmUgdmFyaWFudC4gVGhpcyBkcml2ZXIgb3BlcmF0ZXMgb24gdmVuZG9yLXNwZWNpZmljIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzLCBhbmQgdGhlIGNoYW5nZSBkb2VzIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3Iga2VybmVsIGRhdGEgc3RydWN0dXJlcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTb2xhcmZsYXJlIEVGMTAgZXRoZXJuZXQgZHJpdmVyIChkcml2ZXJzL25ldC9ldGhlcm5ldC9zZmMvZWYxMC5jKSB0byBhZGQgcHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyB2aWEgcGNpX2luZm8oKSBkZXNjcmliaW5nIHRoZSBkYXRhcGF0aCBmaXJtd2FyZSB2YXJpYW50LiBUaGlzIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMsIGFuZCB0aGUgY2hhbmdlIGRvZXMgbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBrZXJuZWwgZGF0YSBzdHJ1Y3R1cmVzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDRUMDI6NDY6MzQuNjA4MzUxMDE0WiIsIlNlcSI6NywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowwl4nq[1] Phase: Running StartedAt: 2026-09-04 02:46:44 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwl4nq[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-04 02:46:44 +0000 UTC FinishedAt: 2026-09-04 02:46:49 +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,}