Name: series-workflowscc2j Phase: Failed StartedAt: 2026-08-07 12:16:09 +0000 UTC FinishedAt: 2026-08-07 12:19:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscc2j[0] Phase: Succeeded StartedAt: 2026-08-07 12:16:09 +0000 UTC FinishedAt: 2026-08-07 12:19:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscc2j[0].run-triage Phase: Succeeded StartedAt: 2026-08-07 12:16:09 +0000 UTC FinishedAt: 2026-08-07 12:19:07 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEyOjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgSGlTaWxpY29uIEhOUzMgbmV0d29yayBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgcGh5c2ljYWwgUENJZSBuZXR3b3JrIGNhcmRzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBzdGFuZGFyZCB2aXJ0dWFsaXphdGlvbi1iYXNlZCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMjoxODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDE2YzVlZDA1YzljZTRmOTUwODlhNjUxMTRiYWYzYzZlNmJlYTBkMzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDEyOjE4OjI3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcbmluZGV4IDZlY2IzMmUyOGU3OWEuLjQ3Nzg4YmU2NGJlNjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcbkBAIC0yODI1LDMyICYjNDM7MjgyNSwyOCBAQCBzdGF0aWMgaW50IGhuczNfbmljX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG5ld19tdHUpXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbi1zdGF0aWMgaW50IGhuczNfZ2V0X3RpbWVvdXRfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4mIzQzO3N0YXRpYyBib29sIGhuczNfZHVtcF90aW1lb3V0X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuJiM0MztcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcbiB7XG4tXHR1bnNpZ25lZCBpbnQgaTtcbi1cbi1cdC8qIEZpbmQgdGhlIHN0b3BwZWQgcXVldWUgdGhlIHNhbWUgd2F5IHRoZSBzdGFjayBkb2VzICovXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBuZGV2LVx1MDAzZW51bV90eF9xdWV1ZXM7IGkmIzQzOyYjNDM7KSB7XG4tXHRcdHVuc2lnbmVkIGludCB0aW1lZG91dF9tcztcbi1cdFx0c3RydWN0IG5ldGRldl9xdWV1ZSAqcTtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7XG4mIzQzO1x0c3RydWN0IG5ldGRldl9xdWV1ZSAqcTtcbiBcbi1cdFx0cSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmRldiwgaSk7XG4tXHRcdHRpbWVkb3V0X21zID0gbmV0aWZfeG1pdF90aW1lb3V0X21zKHEpO1xuLVx0XHRpZiAodGltZWRvdXRfbXMpIHtcbiYjNDM7XHRxID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCB0eHF1ZXVlKTtcbiYjNDM7XHR0aW1lZG91dF9tcyA9IG5ldGlmX3htaXRfdGltZW91dF9tcyhxKTtcbiYjNDM7XHRpZiAodGltZWRvdXRfbXMpIHtcbiAjaWZkZWYgQ09ORklHX0JRTFxuLVx0XHRcdHN0cnVjdCBkcWwgKmRxbCA9IFx1MDAyNnEtXHUwMDNlZHFsO1xuJiM0MztcdFx0c3RydWN0IGRxbCAqZHFsID0gXHUwMDI2cS1cdTAwM2VkcWw7XG4gXG4tXHRcdFx0bmV0ZGV2X2luZm8obmRldiwgXCYjMzQ7RFFMIGluZm8gbGFzdF9jbnQ6ICV1LCBxdWV1ZWQ6ICV1LCBhZGpfbGltaXQ6ICV1LCBjb21wbGV0ZWQ6ICV1XFxuXCYjMzQ7LFxuLVx0XHRcdFx0ICAgIGRxbC1cdTAwM2VsYXN0X29ial9jbnQsIGRxbC1cdTAwM2VudW1fcXVldWVkLFxuLVx0XHRcdFx0ICAgIGRxbC1cdTAwM2VhZGpfbGltaXQsIGRxbC1cdTAwM2VudW1fY29tcGxldGVkKTtcbiYjNDM7XHRcdG5ldGRldl9pbmZvKG5kZXYsIFwmIzM0O0RRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxcblwmIzM0OyxcbiYjNDM7XHRcdFx0ICAgIGRxbC1cdTAwM2VsYXN0X29ial9jbnQsIGRxbC1cdTAwM2VudW1fcXVldWVkLFxuJiM0MztcdFx0XHQgICAgZHFsLVx1MDAzZWFkal9saW1pdCwgZHFsLVx1MDAzZW51bV9jb21wbGV0ZWQpO1xuICNlbmRpZlxuLVx0XHRcdG5ldGRldl9pbmZvKG5kZXYsIFwmIzM0O3F1ZXVlIHN0YXRlOiAweCVseCwgZGVsdGEgbXNlY3M6ICV1XFxuXCYjMzQ7LFxuLVx0XHRcdFx0ICAgIHEtXHUwMDNlc3RhdGUsIHRpbWVkb3V0X21zKTtcbi1cdFx0XHRicmVhaztcbi1cdFx0fVxuJiM0MztcdFx0bmV0ZGV2X2luZm8obmRldiwgXCYjMzQ7cXVldWUgc3RhdGU6IDB4JWx4LCBkZWx0YSBtc2VjczogJXVcXG5cJiMzNDssXG4mIzQzO1x0XHRcdCAgICBxLVx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XG4mIzQzO1x0XHRyZXR1cm4gdHJ1ZTtcbiBcdH1cbiBcbi1cdHJldHVybiBpO1xuJiM0MztcdHJldHVybiBmYWxzZTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgaG5zM19kdW1wX3F1ZXVlX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuQEAgLTI5MDAsMTUgJiM0MzsyODk2LDE1IEBAIHN0YXRpYyB2b2lkIGhuczNfZHVtcF9xdWV1ZV9yZWcoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG4gXHRcdFx0XHQgICAgICBITlMzX1JJTkdfVFhfUklOR19FQkRfT0ZGU0VUX1JFRykpO1xuIH1cbiBcbi1zdGF0aWMgYm9vbCBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuJiM0MztzdGF0aWMgYm9vbCBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuJiM0MztcdFx0XHRcdFx0IHVuc2lnbmVkIGludCB0eHF1ZXVlKVxuIHtcbiBcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7XG4gXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5zM19nZXRfaGFuZGxlKG5kZXYpO1xuIFx0c3RydWN0IGhuczNfZW5ldF9yaW5nICp0eF9yaW5nO1xuLVx0dTMyIHRpbWVvdXRfcXVldWU7XG4gXG4tXHR0aW1lb3V0X3F1ZXVlID0gaG5zM19nZXRfdGltZW91dF9xdWV1ZShuZGV2KTtcbi1cdGlmICh0aW1lb3V0X3F1ZXVlIFx1MDAzZT0gbmRldi1cdTAwM2VudW1fdHhfcXVldWVzKSB7XG4mIzQzO1x0aWYgKHR4cXVldWUgXHUwMDNlPSBoLVx1MDAzZWtpbmZvLm51bV90cXBzIHx8XG4mIzQzO1x0ICAgICFobnMzX2R1bXBfdGltZW91dF9xdWV1ZShuZGV2LCB0eHF1ZXVlKSkge1xuIFx0XHRuZXRkZXZfaW5mbyhuZGV2LFxuIFx0XHRcdCAgICBcJiMzNDtubyBuZXRkZXYgVFggdGltZW91dCBxdWV1ZSBmb3VuZCwgdGltZW91dCBjb3VudDogJWxsdVxcblwmIzM0OyxcbiBcdFx0XHQgICAgcHJpdi1cdTAwM2V0eF90aW1lb3V0X2NvdW50KTtcbkBAIC0yOTE3LDggJiM0MzsyOTEzLDggQEAgc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbiBcbiBcdHByaXYtXHUwMDNldHhfdGltZW91dF9jb3VudCYjNDM7JiM0Mzs7XG4gXG4tXHR0eF9yaW5nID0gXHUwMDI2cHJpdi1cdTAwM2VyaW5nW3RpbWVvdXRfcXVldWVdO1xuLVx0aG5zM19kdW1wX3F1ZXVlX3N0YXRzKG5kZXYsIHR4X3JpbmcsIHRpbWVvdXRfcXVldWUpO1xuJiM0MztcdHR4X3JpbmcgPSBcdTAwMjZwcml2LVx1MDAzZXJpbmdbdHhxdWV1ZV07XG4mIzQzO1x0aG5zM19kdW1wX3F1ZXVlX3N0YXRzKG5kZXYsIHR4X3JpbmcsIHR4cXVldWUpO1xuIFxuIFx0LyogV2hlbiBtYWMgcmVjZWl2ZWQgbWFueSBwYXVzZSBmcmFtZXMgY29udGludW91cywgaXQmIzM5O3MgdW5hYmxlIHRvIHNlbmRcbiBcdCAqIHBhY2tldHMsIHdoaWNoIG1heSBjYXVzZSB0eCB0aW1lb3V0XG5AQCAtMjk0MSw3ICYjNDM7MjkzNyw3IEBAIHN0YXRpYyB2b2lkIGhuczNfbmljX25ldF90aW1lb3V0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcbiBcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7XG4gXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gcHJpdi1cdTAwM2VhZV9oYW5kbGU7XG4gXG4tXHRpZiAoIWhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8obmRldikpXG4mIzQzO1x0aWYgKCFobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKG5kZXYsIHR4cXVldWUpKVxuIFx0XHRyZXR1cm47XG4gXG4gXHQvKiByZXF1ZXN0IHRoZSByZXNldCwgYW5kIGxldCB0aGUgaGNsZ2UgdG8gZGV0ZXJtaW5lXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jXG5pbmRleCBkYWMwNTFlNzk4ZGEyLi42MDkzYTYwZDI1N2IxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfZXJyLmNcbkBAIC0xNTkyLDYgJiM0MzsxNTkyLDcgQEAgaGNsZ2VfcXVlcnlfcmVnX2luZm8oc3RydWN0IGhjbGdlX2RldiAqaGRldixcbiBcdH1cbiBcbiBcdGtmcmVlKG1zZy1cdTAwM2VkZXNjKTtcbiYjNDM7XHRtc2ctXHUwMDNlZGVzYyA9IE5VTEw7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIGhjbGdlX3F1ZXJ5X3JlZ19pbmZvX29mX3NzdShzdHJ1Y3QgaGNsZ2VfZGV2ICpoZGV2KVxuQEAgLTE3NjEsNyAmIzQzOzE3NjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhjbGdlX2h3X3R5cGVfaWQgaGNsZ2VfaHdfdHlwZV9pZF9zdFtdID0ge1xuIFx0fSxcbiB9O1xuIFxuLXN0YXRpYyB2b2lkIGhjbGdlX2xvZ19lcnJvcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNoYXIgKnJlZyxcbiYjNDM7c3RhdGljIHZvaWQgaGNsZ2VfbG9nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqcmVnLFxuIFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgaGNsZ2VfaHdfZXJyb3IgKmVycixcbiBcdFx0XHQgICAgdTMyIGVycl9zdHMsIHVuc2lnbmVkIGxvbmcgKnJlc2V0X3JlcXVlc3RzKVxuIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMjoxODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgSGlTaWxpY29uIEhOUzMgbmV0d29yayBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgcGh5c2ljYWwgUENJZSBuZXR3b3JrIGNhcmRzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBzdGFuZGFyZCB2aXJ0dWFsaXphdGlvbi1iYXNlZCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDE2YzVlZDA1YzljZTRmOTUwODlhNjUxMTRiYWYzYzZlNmJlYTBkMzcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEF1ZyA3IDEyOjE4OjI3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuYwppbmRleCA2ZWNiMzJlMjhlNzlhLi40Nzc4OGJlNjRiZTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuYwpAQCAtMjgyNSwzMiAmIzQzOzI4MjUsMjggQEAgc3RhdGljIGludCBobnMzX25pY19jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBuZXdfbXR1KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaG5zM19nZXRfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKJiM0MztzdGF0aWMgYm9vbCBobnMzX2R1bXBfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwKJiM0MzsJCQkJICAgIHVuc2lnbmVkIGludCB0eHF1ZXVlKQogewotCXVuc2lnbmVkIGludCBpOwotCi0JLyogRmluZCB0aGUgc3RvcHBlZCBxdWV1ZSB0aGUgc2FtZSB3YXkgdGhlIHN0YWNrIGRvZXMgKi8KLQlmb3IgKGkgPSAwOyBpICZsdDsgbmRldi0mZ3Q7bnVtX3R4X3F1ZXVlczsgaSYjNDM7JiM0MzspIHsKLQkJdW5zaWduZWQgaW50IHRpbWVkb3V0X21zOwotCQlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpxOwomIzQzOwl1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7CiYjNDM7CXN0cnVjdCBuZXRkZXZfcXVldWUgKnE7CiAKLQkJcSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmRldiwgaSk7Ci0JCXRpbWVkb3V0X21zID0gbmV0aWZfeG1pdF90aW1lb3V0X21zKHEpOwotCQlpZiAodGltZWRvdXRfbXMpIHsKJiM0MzsJcSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmRldiwgdHhxdWV1ZSk7CiYjNDM7CXRpbWVkb3V0X21zID0gbmV0aWZfeG1pdF90aW1lb3V0X21zKHEpOwomIzQzOwlpZiAodGltZWRvdXRfbXMpIHsKICNpZmRlZiBDT05GSUdfQlFMCi0JCQlzdHJ1Y3QgZHFsICpkcWwgPSAmYW1wO3EtJmd0O2RxbDsKJiM0MzsJCXN0cnVjdCBkcWwgKmRxbCA9ICZhbXA7cS0mZ3Q7ZHFsOwogCi0JCQluZXRkZXZfaW5mbyhuZGV2LCAmIzM0O0RRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxuJiMzNDssCi0JCQkJICAgIGRxbC0mZ3Q7bGFzdF9vYmpfY250LCBkcWwtJmd0O251bV9xdWV1ZWQsCi0JCQkJICAgIGRxbC0mZ3Q7YWRqX2xpbWl0LCBkcWwtJmd0O251bV9jb21wbGV0ZWQpOwomIzQzOwkJbmV0ZGV2X2luZm8obmRldiwgJiMzNDtEUUwgaW5mbyBsYXN0X2NudDogJXUsIHF1ZXVlZDogJXUsIGFkal9saW1pdDogJXUsIGNvbXBsZXRlZDogJXVcbiYjMzQ7LAomIzQzOwkJCSAgICBkcWwtJmd0O2xhc3Rfb2JqX2NudCwgZHFsLSZndDtudW1fcXVldWVkLAomIzQzOwkJCSAgICBkcWwtJmd0O2Fkal9saW1pdCwgZHFsLSZndDtudW1fY29tcGxldGVkKTsKICNlbmRpZgotCQkJbmV0ZGV2X2luZm8obmRldiwgJiMzNDtxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxuJiMzNDssCi0JCQkJICAgIHEtJmd0O3N0YXRlLCB0aW1lZG91dF9tcyk7Ci0JCQlicmVhazsKLQkJfQomIzQzOwkJbmV0ZGV2X2luZm8obmRldiwgJiMzNDtxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxuJiMzNDssCiYjNDM7CQkJICAgIHEtJmd0O3N0YXRlLCB0aW1lZG91dF9tcyk7CiYjNDM7CQlyZXR1cm4gdHJ1ZTsKIAl9CiAKLQlyZXR1cm4gaTsKJiM0MzsJcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgdm9pZCBobnMzX2R1bXBfcXVldWVfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsCkBAIC0yOTAwLDE1ICYjNDM7Mjg5NiwxNSBAQCBzdGF0aWMgdm9pZCBobnMzX2R1bXBfcXVldWVfcmVnKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAogCQkJCSAgICAgIEhOUzNfUklOR19UWF9SSU5HX0VCRF9PRkZTRVRfUkVHKSk7CiB9CiAKLXN0YXRpYyBib29sIGhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCiYjNDM7c3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwKJiM0MzsJCQkJCSB1bnNpZ25lZCBpbnQgdHhxdWV1ZSkKIHsKIAlzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5kZXYpOwogCXN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7CiAJc3RydWN0IGhuczNfZW5ldF9yaW5nICp0eF9yaW5nOwotCXUzMiB0aW1lb3V0X3F1ZXVlOwogCi0JdGltZW91dF9xdWV1ZSA9IGhuczNfZ2V0X3RpbWVvdXRfcXVldWUobmRldik7Ci0JaWYgKHRpbWVvdXRfcXVldWUgJmd0Oz0gbmRldi0mZ3Q7bnVtX3R4X3F1ZXVlcykgewomIzQzOwlpZiAodHhxdWV1ZSAmZ3Q7PSBoLSZndDtraW5mby5udW1fdHFwcyB8fAomIzQzOwkgICAgIWhuczNfZHVtcF90aW1lb3V0X3F1ZXVlKG5kZXYsIHR4cXVldWUpKSB7CiAJCW5ldGRldl9pbmZvKG5kZXYsCiAJCQkgICAgJiMzNDtubyBuZXRkZXYgVFggdGltZW91dCBxdWV1ZSBmb3VuZCwgdGltZW91dCBjb3VudDogJWxsdVxuJiMzNDssCiAJCQkgICAgcHJpdi0mZ3Q7dHhfdGltZW91dF9jb3VudCk7CkBAIC0yOTE3LDggJiM0MzsyOTEzLDggQEAgc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKIAogCXByaXYtJmd0O3R4X3RpbWVvdXRfY291bnQmIzQzOyYjNDM7OwogCi0JdHhfcmluZyA9ICZhbXA7cHJpdi0mZ3Q7cmluZ1t0aW1lb3V0X3F1ZXVlXTsKLQlobnMzX2R1bXBfcXVldWVfc3RhdHMobmRldiwgdHhfcmluZywgdGltZW91dF9xdWV1ZSk7CiYjNDM7CXR4X3JpbmcgPSAmYW1wO3ByaXYtJmd0O3JpbmdbdHhxdWV1ZV07CiYjNDM7CWhuczNfZHVtcF9xdWV1ZV9zdGF0cyhuZGV2LCB0eF9yaW5nLCB0eHF1ZXVlKTsKIAogCS8qIFdoZW4gbWFjIHJlY2VpdmVkIG1hbnkgcGF1c2UgZnJhbWVzIGNvbnRpbnVvdXMsIGl0JiMzOTtzIHVuYWJsZSB0byBzZW5kCiAJICogcGFja2V0cywgd2hpY2ggbWF5IGNhdXNlIHR4IHRpbWVvdXQKQEAgLTI5NDEsNyAmIzQzOzI5MzcsNyBAQCBzdGF0aWMgdm9pZCBobnMzX25pY19uZXRfdGltZW91dChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdW5zaWduZWQgaW50IHR4cXVldWUpCiAJc3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZGV2KTsKIAlzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gcHJpdi0mZ3Q7YWVfaGFuZGxlOwogCi0JaWYgKCFobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKG5kZXYpKQomIzQzOwlpZiAoIWhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8obmRldiwgdHhxdWV1ZSkpCiAJCXJldHVybjsKIAogCS8qIHJlcXVlc3QgdGhlIHJlc2V0LCBhbmQgbGV0IHRoZSBoY2xnZSB0byBkZXRlcm1pbmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuYwppbmRleCBkYWMwNTFlNzk4ZGEyLi42MDkzYTYwZDI1N2IxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfZXJyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jCkBAIC0xNTkyLDYgJiM0MzsxNTkyLDcgQEAgaGNsZ2VfcXVlcnlfcmVnX2luZm8oc3RydWN0IGhjbGdlX2RldiAqaGRldiwKIAl9CiAKIAlrZnJlZShtc2ctJmd0O2Rlc2MpOwomIzQzOwltc2ctJmd0O2Rlc2MgPSBOVUxMOwogfQogCiBzdGF0aWMgdm9pZCBoY2xnZV9xdWVyeV9yZWdfaW5mb19vZl9zc3Uoc3RydWN0IGhjbGdlX2RldiAqaGRldikKQEAgLTE3NjEsNyAmIzQzOzE3NjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhjbGdlX2h3X3R5cGVfaWQgaGNsZ2VfaHdfdHlwZV9pZF9zdFtdID0gewogCX0sCiB9OwogCi1zdGF0aWMgdm9pZCBoY2xnZV9sb2dfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICpyZWcsCiYjNDM7c3RhdGljIHZvaWQgaGNsZ2VfbG9nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqcmVnLAogCQkJICAgIGNvbnN0IHN0cnVjdCBoY2xnZV9od19lcnJvciAqZXJyLAogCQkJICAgIHUzMiBlcnJfc3RzLCB1bnNpZ25lZCBsb25nICpyZXNldF9yZXF1ZXN0cykKIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTI6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU5OAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDc1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipQYXRjaCBFdmFsdWF0aW9uOiBITlMzIERyaXZlciBDaGFuZ2VzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHdlIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggd2FycmFudHMgZnV6emluZywgc3BlY2lmaWNhbGx5IGlmIGl0IGludHJvZHVjZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwmIzM5O3MgbmV0d29yayBiZWhhdmlvci4gVGhlIHBhdGNoIHRvdWNoZXMgdHdvIGZpbGVzOiBgaG5zM19lbmV0LmNgIGFuZCBgaGNsZ2VfZXJyLmNgLCBib3RoIHdpdGhpbiB0aGUgYGhpc2lsaWNvbi9obnMzYCBkaXJlY3RvcnkuIFRoaXMgaXMgaW1tZWRpYXRlbHkgYSByZWQgZmxhZyDigJMgSGlTaWxpY29uIEhOUzMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIHdoaWNoIHN0cm9uZ2x5IHN1Z2dlc3RzIGl0ICp3b24mIzM5O3QqIGJlIHJlYWRpbHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LgoKTG9va2luZyBjbG9zZXIgYXQgdGhlIGNoYW5nZXMsIGluIGBobnMzX2VuZXQuY2AgaXQgbG9va3MgbGlrZSB3ZSYjMzk7dmUgZ290IG1vZGlmaWNhdGlvbnMgdG8gdGltZW91dCBoYW5kbGluZyB3aXRoIGBobnMzX2dldF90aW1lb3V0X3F1ZXVlYCBjaGFuZ2luZyB0byBgaG5zM19kdW1wX3RpbWVvdXRfcXVldWVgIGFuZCB0aGUgY29ycmVzcG9uZGluZyB1cGRhdGVzIHRvIGBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvYCBhbmQgYGhuczNfbmljX25ldF90aW1lb3V0YC4gVGhpcyBpbnZvbHZlcyBwYXNzaW5nIHRoZSBgdHhxdWV1ZWAgdG8gdmFyaW91cyBmdW5jdGlvbnMsIHdoaWNoIGlzIHJlbGV2YW50IHRvIHRoZSBgbmRvX3R4X3RpbWVvdXRgIGNhbGxiYWNrLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBjaGFuZ2VzIHRvIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgdHJhbnNtaXQgdGltZW91dHMuCgpJbiBgaGNsZ2VfZXJyLmNgLCB0aGVyZSYjMzk7cyBhIGNvcnJlY3Rpb24gaW4gYGhjbGdlX3F1ZXJ5X3JlZ19pbmZvYCB3aGVyZSBgbXNnLSZndDtkZXNjYCBpcyBiZWluZyBleHBsaWNpdGx5IHNldCB0byBgTlVMTGAgYWZ0ZXIgZnJlZWluZyBpdC4gQWxzbywgdGhlcmUmIzM5O3MgYSBzaW1wbGUgdHlwZSBjaGFuZ2UgZnJvbSBgY2hhciAqcmVnYCB0byBgY29uc3QgY2hhciAqcmVnYCBpbiBgaGNsZ2VfbG9nX2Vycm9yYC4gVGhpcyBhbGwgbG9va3MgbGlrZSBlcnJvciBoYW5kbGluZyBhbmQgbG9nZ2luZy4KCk5vdyB0aGUgY3J1Y2lhbCBxdWVzdGlvbjogaXMgdGhpcyB0ZXN0YWJsZSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgd2hpY2ggaXMgcGFyYW1vdW50IGZvciBvdXIgZnV6emluZyBlZmZvcnRzPyBUaGUgZmFjdCB0aGF0IGl0JiMzOTtzIGEgZHJpdmVyIGZvciBhIEhpU2lsaWNvbiBwaHlzaWNhbCBuZXR3b3JrIGNhcmQgbWFrZXMgbWUgc3VzcGVjdCBub3QsIGFzIHRoZSBkb2N1bWVudGF0aW9uIHNwZWNpZmljYWxseSBzdGF0ZXMgdGhhdCBjb2RlIGluIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIChsaWtlIFNtYXJ0TklDcykgaXMgdW5yZWFjaGFibGUgaW4gUUVNVS4gVmlydHVhbCBkcml2ZXJzLCBsaWtlIHZpcnRpby1uZXQsIGFyZSBmaW5lLCBidXQgbm90IEhOUzMuCgpJIG5lZWQgdG8gY29uZmlybSB0aGlzLiBJJiMzOTtsbCBzZWFyY2ggdGhlIFFFTVUgc291cmNlIGp1c3QgaW4gY2FzZSwgYnV0IG15IGludHVpdGlvbiBzYXlzIHRoaXMgaXMgYSBoYXJkd2FyZS1kZXBlbmRlbnQgZHJpdmVyLiBUaGUgY2hhbmdlcyBhcmUgaW4gdGhlIHRpbWVvdXQgaGFuZGxlciBhbmQgZXJyb3IgbG9nZ2luZy4KCkdpdmVuIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmN5LCBJJiMzOTttIGxlYW5pbmcgdG93YXJkcyAqbm90KiBmdXp6aW5nIHRoaXMgcGF0Y2gsIHVubGVzcyBJIGNhbiBmaW5kIGFuIGV4Y2VwdGlvbi4gVGhlIGxvZ2ljIHNheXMgJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDsgVGhpcyAqZGVmaW5pdGVseSogc2VlbXMgbGlrZSBhIGNhc2Ugd2hlcmUgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZS4gSSBhbSBnb2luZyB0byB2ZXJpZnkgdGhpcyB3aXRoIHRvb2xzLiBJIG5lZWQgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtobnMzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNDg1NCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL01ha2VmaWxlPTk9b2JqLSQoQ09ORklHX0hOUykgJiM0Mzs9IGhucy9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfSE5TMykgJiM0Mzs9IGhuczMvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vTWFrZWZpbGUtMTEtb2JqLSQoQ09ORklHX0hJU0lfRkVNQUMpICYjNDM7PSBoaXNpX2ZlbWFjLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZT02PWNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjc6Y2NmbGFncy15ICYjNDM7PSAtSSQoc3JjdHJlZSkvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZTo4OmNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyY3RyZWUpL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczN2ZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6OTpjY2ZsYWdzLXkgJiM0Mzs9IC1JJChzcmN0cmVlKS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2NvbW1vblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZT0xMT1vYmotJChDT05GSUdfSE5TMykgJiM0Mzs9IGhuYWUzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6MTM6b2JqLSQoQ09ORklHX0hOUzNfRU5FVCkgJiM0Mzs9IGhuczMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6MTQ6aG5zMy1vYmpzID0gaG5zM19lbmV0Lm8gaG5zM19ldGh0b29sLm8gaG5zM19kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6MTY6aG5zMy0kKENPTkZJR19ITlMzX0RDQikgJiM0Mzs9IGhuczNfZGNibmwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZT0xOD1vYmotJChDT05GSUdfSE5TM19IQ0xHRVZGKSAmIzQzOz0gaGNsZ2V2Zi5vIGhjbGdlLWNvbW1vbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZS0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjIwOmhjbGdlLWNvbW1vbi1vYmpzICYjNDM7PSBobnMzX2NvbW1vbi9oY2xnZV9jb21tX2NtZC5vIGhuczNfY29tbW9uL2hjbGdlX2NvbW1fcnNzLm8gaG5zM19jb21tb24vaGNsZ2VfY29tbV90cXBfc3RhdHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToyMjpoY2xnZXZmLW9ianMgPSBobnMzdmYvaGNsZ2V2Zl9tYWluLm8gaG5zM3ZmL2hjbGdldmZfbWJ4Lm8gIGhuczN2Zi9oY2xnZXZmX2RldmxpbmsubyBobnMzdmYvaGNsZ2V2Zl9yZWdzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU9MjQ9b2JqLSQoQ09ORklHX0hOUzNfSENMR0UpICYjNDM7PSBoY2xnZS5vIGhjbGdlLWNvbW1vbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToyNTpoY2xnZS1vYmpzID0gaG5zM3BmL2hjbGdlX21haW4ubyBobnMzcGYvaGNsZ2VfbWRpby5vIGhuczNwZi9oY2xnZV90bS5vIGhuczNwZi9oY2xnZV9yZWdzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjI2Olx0XHRobnMzcGYvaGNsZ2VfbWJ4Lm8gaG5zM3BmL2hjbGdlX2Vyci5vICBobnMzcGYvaGNsZ2VfZGVidWdmcy5vIGhuczNwZi9oY2xnZV9wdHAubyBobnMzcGYvaGNsZ2VfZGV2bGluay5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToyNzpcdFx0aG5zM3BmL2hjbGdlX2ZkLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6Mjk6aGNsZ2UtJChDT05GSUdfSE5TM19EQ0IpICYjNDM7PSBobnMzcGYvaGNsZ2VfZGNiLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oPTE5OD1zdHJ1Y3QgaG5hZTNfcXVldWUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmgtMjA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaDoyMDk6c3RydWN0IGhuczNfbWFjX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmgtMjEwLVx0dTY0IHR4X3BhdXNlX2NudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oPTYxMD1zdHJ1Y3QgaG5hZTNfYWVfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oLTY4OS1cdHZvaWQgKCpnZXRfbWFjX3N0YXRzKShzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oOjY5MDpcdFx0XHQgICAgICBzdHJ1Y3QgaG5zM19tYWNfc3RhdHMgKm1hY19zdGF0cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oLTY5MS1cdHZvaWQgKCpnZXRfc3RyaW5ncykoc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy00LSNpbmNsdWRlIFwmIzM0O2huYWUzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo1OiNpbmNsdWRlIFwmIzM0O2huczNfZW5ldC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo3OnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX2dldGV0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGllZWVfZXRzICpldHMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6OTpcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTE6XHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyLVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoyMDpzdGF0aWMgaW50IGhuczNfZGNibmxfaWVlZV9zZXRldHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBpZWVlX2V0cyAqZXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTIxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoyMjpcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MjQ6XHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTI1LVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0zMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzozMzpzdGF0aWMgaW50IGhuczNfZGNibmxfaWVlZV9nZXRwZmMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBpZWVlX3BmYyAqcGZjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzozNTpcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6Mzc6XHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTM4LVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy00NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo0NjpzdGF0aWMgaW50IGhuczNfZGNibmxfaWVlZV9zZXRwZmMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBpZWVlX3BmYyAqcGZjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTQ3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo0ODpcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NTA6XHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTUxLVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy01OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo1OTpzdGF0aWMgaW50IGhuczNfZGNibmxfaWVlZV9zZXRhcHAoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBkY2JfYXBwICphcHApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNjAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjYxOlx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy02Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo2MzpcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNjQtXHRcdHJldHVybiAtRUJVU1k7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjcyOnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX2RlbGFwcChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGRjYl9hcHAgKmFwcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NzQ6XHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5zM19nZXRfaGFuZGxlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTc1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjc2Olx0aWYgKGhuczNfbmljX3Jlc2V0dGluZyhuZGV2KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03Ny1cdFx0cmV0dXJuIC1FQlVTWTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtODUtLyogRENCWCBjb25maWd1cmF0aW9uICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6ODY6c3RhdGljIHU4IGhuczNfZGNibmxfZ2V0ZGNieChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy04Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6ODg6XHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5zM19nZXRfaGFuZGxlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTg5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy05Ni0vKiByZXR1cm4gMCBpZiBzdWNjZXNzZnVsLCBvdGhlcndpc2UgZmFpbCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjk3OnN0YXRpYyB1OCBobnMzX2RjYm5sX3NldGRjYngoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHU4IG1vZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtOTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjk5Olx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMDAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMDc6c3RhdGljIGNvbnN0IHN0cnVjdCBkY2JubF9ydG5sX29wcyBobnMzX2RjYm5sX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMDg6XHQuaWVlZV9nZXRldHNcdD0gaG5zM19kY2JubF9pZWVlX2dldGV0cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMDk6XHQuaWVlZV9zZXRldHNcdD0gaG5zM19kY2JubF9pZWVlX3NldGV0cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMTA6XHQuaWVlZV9nZXRwZmNcdD0gaG5zM19kY2JubF9pZWVlX2dldHBmYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMTE6XHQuaWVlZV9zZXRwZmNcdD0gaG5zM19kY2JubF9pZWVlX3NldHBmYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMTI6XHQuaWVlZV9zZXRhcHAgICAgPSBobnMzX2RjYm5sX2llZWVfc2V0YXBwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExMzpcdC5pZWVlX2RlbGFwcCAgICA9IGhuczNfZGNibmxfaWVlZV9kZWxhcHAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTE0Olx0LmdldGRjYnhcdD0gaG5zM19kY2JubF9nZXRkY2J4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExNTpcdC5zZXRkY2J4XHQ9IGhuczNfZGNibmxfc2V0ZGNieCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMTYtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTIxLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjEyMjp2b2lkIGhuczNfZGNibmxfc2V0dXAoc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMjk6XHRkZXYtXHUwMDNlZGNibmxfb3BzID0gXHUwMDI2aG5zM19kY2JubF9vcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTMwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy05LSNpbmNsdWRlIFwmIzM0O2huYWUzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjEwOiNpbmNsdWRlIFwmIzM0O2huczNfZGVidWdmcy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMTojaW5jbHVkZSBcJiMzNDtobnMzX2VuZXQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMzpzdGF0aWMgc3RydWN0IGRlbnRyeSAqaG5zM19kYmdmc19yb290O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxNTpzdGF0aWMgc3RydWN0IGhuczNfZGJnX2RlbnRyeV9pbmZvIGhuczNfZGJnX2RlbnRyeVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTYtXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0MzpzdGF0aWMgaW50IGhuczNfZGJnX2JkX2ZpbGVfaW5pdChzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIHUzMiBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDQ6c3RhdGljIGludCBobnMzX2RiZ19jb21tb25faW5pdF90MShzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIHUzMiBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDU6c3RhdGljIGludCBobnMzX2RiZ19jb21tb25faW5pdF90MihzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIHUzMiBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NzpzdGF0aWMgc3RydWN0IGhuczNfZGJnX2NtZF9pbmZvIGhuczNfZGJnX2NtZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDgtXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTEtXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTUzLVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01Ny1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU4Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTktXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjktXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTcxLVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03NS1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc2Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzctXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODI6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04My1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODctXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4ODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg5LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy05My1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjk0Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtOTUtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTk5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTAwOlx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTAxLVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMDUtXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMDY6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMDctXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTExMS1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjExMjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTExMy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTE3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjExODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTExOS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTIzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RYX0JELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTI0Olx0XHQuaW5pdCA9IGhuczNfZGJnX2JkX2ZpbGVfaW5pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEyNS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTI5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JYX0JELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTMwOlx0XHQuaW5pdCA9IGhuczNfZGJnX2JkX2ZpbGVfaW5pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEzMS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTM1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX01BQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjEzNjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEzNy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX01BQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE0MjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE0My1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQ3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE0ODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE0OS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTUzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE1NDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE1NS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTU5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE2MDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE2MS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTY1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE2NjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE2Ny1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTcxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE3MjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE3My1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTc3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE3ODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE3OS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTgzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE4NDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE4NS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTg5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE5MDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE5MS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTk1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE5NjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE5Ny1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjAxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIwMjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIwMy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjA3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIwODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIwOS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjEzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIxNDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIxNS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjE5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIyMDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIyMS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjI1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIyNjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIyNy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjMxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIzMjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIzMy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjM3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIzODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIzOS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjQzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI0NDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI0NS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjQ5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI1MDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI1MS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjU1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1FVRVVFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjU2Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjU3LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNjEtXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfUVVFVUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyNjI6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNjMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI2Ny1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9RVUVVRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI2ODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI2OS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjczLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0ZELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Mjc0Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjc1LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNzktXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfRkQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyODA6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yODEtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI4NS1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyODY6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yODctXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI5MS1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyOTI6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yOTMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI5Ny1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyOTg6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yOTktXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMwMy1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9GRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjMwNDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMwNS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzA5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjMxMDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMxMS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzE1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjMxNjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMxNy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzIxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjMyMjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMyMy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzI2OnN0YXRpYyBzdHJ1Y3QgaG5zM19kYmdfY2FwX2luZm8gaG5zM19kYmdfY2FwW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMjctXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM9MzkwPWRpbV90dW5lX3N0YXRfc3RyW10gPSB7IFwmIzM0O09OX1RPUFwmIzM0OywgXCYjMzQ7VElSRURcJiMzNDssIFwmIzM0O1JJR0hUXCYjMzQ7LCBcJiMzNDtMRUZUXCYjMzQ7IH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zOTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzozOTI6c3RhdGljIHZvaWQgaG5zM19nZXRfY29hbF9pbmZvKHN0cnVjdCBobnMzX2VuZXRfdHFwX3ZlY3RvciAqdHFwX3ZlY3RvcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTM5My1cdFx0XHQgICAgICAgc3RydWN0IHNlcV9maWxlICpzLCBpbnQgaSwgYm9vbCBpc190eClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zOTUtXHR1bnNpZ25lZCBpbnQgZ2xfb2Zmc2V0LCBxbF9vZmZzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzozOTY6XHRzdHJ1Y3QgaG5zM19lbmV0X2NvYWxlc2NlICpjb2FsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzk3LVx0dW5zaWduZWQgaW50IHJlZ192YWw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDM3OnN0YXRpYyB2b2lkIGhuczNfZHVtcF9jb2FsX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCBib29sIGlzX3R4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDM4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQzOS1cdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobmFlM19zZXFfZmlsZV90b19oYW5kbGUocyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NDA6XHRzdHJ1Y3QgaG5zM19lbmV0X3RxcF92ZWN0b3IgKnRxcF92ZWN0b3I7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NDE6XHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IGgtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ0Mi1cdHVuc2lnbmVkIGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ1MS1cdFx0dHFwX3ZlY3RvciA9IFx1MDAyNnByaXYtXHUwMDNldHFwX3ZlY3RvcltpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ1MjpcdFx0aG5zM19nZXRfY29hbF9pbmZvKHRxcF92ZWN0b3IsIHMsIGksIGlzX3R4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ1My1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NTY6c3RhdGljIGludCBobnMzX2RiZ19jb2FsX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDU3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ1ODpcdGhuczNfZHVtcF9jb2FsX2luZm8ocywgdHJ1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTktXHRzZXFfcHV0cyhzLCBcJiMzNDtcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDYwOlx0aG5zM19kdW1wX2NvYWxfaW5mbyhzLCBmYWxzZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NjEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDY1OnN0YXRpYyB2b2lkIGhuczNfZHVtcF9yeF9xdWV1ZV9pbmZvKHN0cnVjdCBobnMzX2VuZXRfcmluZyAqcmluZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ2Ni1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00OTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MDA6c3RhdGljIGludCBobnMzX2RiZ19yeF9xdWV1ZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTUwMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MDItXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5hZTNfc2VxX2ZpbGVfdG9faGFuZGxlKHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTAzOlx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MDQ6XHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MDUtXHR1MzIgaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MjQtXHRcdHJpbmcgPSBcdTAwMjZwcml2LVx1MDAzZXJpbmdbKHUzMikoaSAmIzQzOyBoLVx1MDAzZWtpbmZvLm51bV90cXBzKV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MjU6XHRcdGhuczNfZHVtcF9yeF9xdWV1ZV9pbmZvKHJpbmcsIHMsIGkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTI2LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTUzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUzMTpzdGF0aWMgdm9pZCBobnMzX2R1bXBfdHhfcXVldWVfaW5mbyhzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MzItXHRcdFx0XHQgICAgc3RydWN0IHNlcV9maWxlICpzLCB1MzIgaW5kZXgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTY1OnN0YXRpYyBpbnQgaG5zM19kYmdfdHhfcXVldWVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01NjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTY3LVx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuYWUzX3NlcV9maWxlX3RvX2hhbmRsZShzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU2ODpcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTY5Olx0c3RydWN0IGhuczNfZW5ldF9yaW5nICpyaW5nO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTcwLVx0dTMyIGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTg5LVx0XHRyaW5nID0gXHUwMDI2cHJpdi1cdTAwM2VyaW5nW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTkwOlx0XHRobnMzX2R1bXBfdHhfcXVldWVfaW5mbyhyaW5nLCBzLCBpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU5MS1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01OTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1OTY6c3RhdGljIGludCBobnMzX2RiZ19xdWV1ZV9tYXAoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTk3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU5OC1cdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobmFlM19zZXFfZmlsZV90b19oYW5kbGUocyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1OTk6XHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IGgtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYwMC1cdHUzMiBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjYxODpzdGF0aWMgdm9pZCBobnMzX2R1bXBfcnhfYmRfaW5mbyhzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjYxOTpcdFx0XHRcdCBzdHJ1Y3QgaG5zM19kZXNjICpkZXNjLCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02MjAtXHRcdFx0XHQgaW50IGlkeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2NDM6c3RhdGljIGludCBobnMzX2RiZ19yeF9iZF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcHJpdmF0ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY0NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2NDU6XHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YSA9IHMtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY0Ni1cdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBkYXRhLVx1MDAzZWhhbmRsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY0NzpcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ4Olx0c3RydWN0IGhuczNfZW5ldF9yaW5nICpyaW5nO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ5Olx0c3RydWN0IGhuczNfZGVzYyAqZGVzYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY1MC1cdHVuc2lnbmVkIGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY2NjpcdFx0aG5zM19kdW1wX3J4X2JkX2luZm8ocHJpdiwgZGVzYywgcywgaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NjctXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjcyOnN0YXRpYyB2b2lkIGhuczNfZHVtcF90eF9iZF9pbmZvKHN0cnVjdCBobnMzX2Rlc2MgKmRlc2MsIHN0cnVjdCBzZXFfZmlsZSAqcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY3My1cdFx0XHRcdCBpbnQgaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY4ODpzdGF0aWMgaW50IGhuczNfZGJnX3R4X2JkX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwcml2YXRlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjg5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY5MDpcdHN0cnVjdCBobnMzX2RiZ19kYXRhICpkYXRhID0gcy1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjkxLVx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGRhdGEtXHUwMDNlaGFuZGxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjkyOlx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2OTM6XHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2OTQ6XHRzdHJ1Y3QgaG5zM19kZXNjICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjk1LVx0dW5zaWduZWQgaW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NzExOlx0XHRobnMzX2R1bXBfdHhfYmRfaW5mbyhkZXNjLCBzLCBpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTcxMi1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MTc6c3RhdGljIHZvaWQgaG5zM19kYmdfZGV2X2NhcHMoc3RydWN0IGhuYWUzX2hhbmRsZSAqaCwgc3RydWN0IHNlcV9maWxlICpzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzE4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcxOTpcdHN0cnVjdCBobmFlM19hZV9kZXYgKmFlX2RldiA9IGhuczNfZ2V0X2FlX2RldihoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTcyMC1cdHVuc2lnbmVkIGxvbmcgKmNhcHMgPSBhZV9kZXYtXHUwMDNlY2Fwcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MjU6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGhuczNfZGJnX2NhcCk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MjY6XHRcdHN0YXRlID0gdGVzdF9iaXQoaG5zM19kYmdfY2FwW2ldLmNhcF9iaXQsIGNhcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NzI3Olx0XHRzZXFfcHJpbnRmKHMsIFwmIzM0OyVzOiAlc1xcblwmIzM0OywgaG5zM19kYmdfY2FwW2ldLm5hbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MjgtXHRcdFx0ICAgc3RyX3llc19ubyhzdGF0ZSkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTczMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjczNDpzdGF0aWMgdm9pZCBobnMzX2RiZ19kZXZfc3BlY3Moc3RydWN0IGhuYWUzX2hhbmRsZSAqaCwgc3RydWN0IHNlcV9maWxlICpzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzM1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03NjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3Njk6c3RhdGljIGludCBobnMzX2RiZ19kZXZfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03NzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc3MzpcdGhuczNfZGJnX2Rldl9jYXBzKGgsIHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Nzc0Olx0aG5zM19kYmdfZGV2X3NwZWNzKGgsIHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzc1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc3OTpzdGF0aWMgdm9pZCBobnMzX2R1bXBfcGFnZV9wb29sX2luZm8oc3RydWN0IGhuczNfZW5ldF9yaW5nICpyaW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzgwLVx0XHRcdFx0ICAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03OTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3OTI6c3RhdGljIGludCBobnMzX2RiZ19wYWdlX3Bvb2xfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03OTMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzk0LVx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuYWUzX3NlcV9maWxlX3RvX2hhbmRsZShzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc5NTpcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Nzk2Olx0c3RydWN0IGhuczNfZW5ldF9yaW5nICpyaW5nO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzk3LVx0dTMyIGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODE3LVx0XHRyaW5nID0gXHUwMDI2cHJpdi1cdTAwM2VyaW5nWyh1MzIpKGkgJiM0MzsgaC1cdTAwM2VraW5mby5udW1fdHFwcyldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODE4Olx0XHRobnMzX2R1bXBfcGFnZV9wb29sX2luZm8ocmluZywgcywgaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MTktXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODI0OnN0YXRpYyBpbnQgaG5zM19kYmdfYmRfaW5mb19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcHJpdmF0ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgyNS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4MjY6XHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YSA9IHMtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgyNy1cdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBkYXRhLVx1MDAzZWhhbmRsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjgyODpcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODI5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgzNC1cdGlmIChkYXRhLVx1MDAzZWNtZCA9PSBITkFFM19EQkdfQ01EX1RYX0JEKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODM1Olx0XHRyZXR1cm4gaG5zM19kYmdfdHhfYmRfaW5mbyhzLCBwcml2YXRlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgzNi1cdGVsc2UgaWYgKGRhdGEtXHUwMDNlY21kID09IEhOQUUzX0RCR19DTURfUlhfQkQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4Mzc6XHRcdHJldHVybiBobnMzX2RiZ19yeF9iZF9pbmZvKHMsIHByaXZhdGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODM4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg0MC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4NDE6REVGSU5FX1NIT1dfQVRUUklCVVRFKGhuczNfZGJnX2JkX2luZm8pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODQzOnN0YXRpYyBpbnQgaG5zM19kYmdfYmRfZmlsZV9pbml0KHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSwgdTMyIGNtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg0NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4NDU6XHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg0Ni1cdHN0cnVjdCBkZW50cnkgKmVudHJ5X2Rpcjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4NTA6XHRlbnRyeV9kaXIgPSBobnMzX2RiZ19kZW50cnlbaG5zM19kYmdfY21kW2NtZF0uZGVudHJ5XS5kZW50cnk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4NTE6XHRtYXhfcXVldWVfbnVtID0gaG5zM19nZXRfbWF4X2F2YWlsYWJsZV9jaGFubmVscyhoYW5kbGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODUyLVx0ZGF0YSA9IGRldm1fa2NhbGxvYyhcdTAwMjZoYW5kbGUtXHUwMDNlcGRldi1cdTAwM2VkZXYsIG1heF9xdWV1ZV9udW0sIHNpemVvZigqZGF0YSksXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMjoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTYzNgoJCQkJCQkJb3V0cHV0OiA4MwoJCQkJCQkJdGhvdWdodHM6IDU0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIEhOUzMgRHJpdmVyKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoZSBITlMzIGRyaXZlciBpcyBpbnRyaW5zaWNhbGx5IHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEkgbmVlZCB0byBjb25maXJtIGlmIHRoZXJlJiMzOTtzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0IGluIGVpdGhlciB0aGUga2VybmVsIGl0c2VsZiBvciB3aXRoaW4gUUVNVS4gRG91YmxlLWNoZWNraW5nLCBJIGZpbmQgbm8gc29mdHdhcmUgZW11bGF0aW9uIG9mIEhOUzMgaW4gdGhlIGtlcm5lbCwgYW5kIG5vdGhpbmcgaW4gUUVNVSBlaXRoZXIuCgpXYWl0LCB0aGUgcXVlc3Rpb24gaXMsIGNvdWxkIHRoaXMgY29kZSAqZXZlciogYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBUaGUgcXVpY2sgYW5zd2VyIGlzIG5vLCBpdCAqZGVtYW5kcyogcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcy4gVGhhdCYjMzk7cyB0aGUgY3J1eCBvZiBpdC4KCk5vdywgbGV0JiMzOTtzIGNpcmNsZSBiYWNrIHRvIHRoZSBwcm9tcHQsIHdoaWNoIGV4cGxpY2l0bHkgc3RhdGVzICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OyBITlMzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIGRyaXZlciwgbWVhbmluZyBpdCBwZXJmZWN0bHkgZml0cyB0aGF0IGNhdGVnb3J5LiBUaGVyZWZvcmUsIGJhc2VkIG9uIHRoZSByZXF1aXJlbWVudHMgb2YgdGhlIHByb21wdCwgdGhlIGNvcnJlY3QgYW5zd2VyIGlzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKSG93ZXZlciwgSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgbW9tZW50IHRvIGRvdWJsZSBjaGVjay4gVGhlIGBoY2xnZXZmYCBkcml2ZXIgaXMgdGhlIFZGIGRyaXZlciBmb3IgSE5TMy4gVGhlIFZGIChWaXJ0dWFsIEZ1bmN0aW9uKSBkcml2ZXJzIGFyZSB1c2VkIGluIHZpcnR1YWwgbWFjaGluZXMgdXNpbmcgU1ItSU9WLiBJdCYjMzk7cyB0aGVvcmV0aWNhbGx5IHBvc3NpYmxlIHRoYXQgYSBWTSBjb3VsZCBoYXZlIGEgVkYgcGFzc2VkIHRocm91Z2ggdG8gaXQsIG1lYW5pbmcgdGhhdCB0aGUgZHJpdmVyIGlzIGluZGVlZCBhY3RpdmUgd2l0aGluIHRoZSBWTS4gSG93ZXZlciwgKnRoYXQqIHN0aWxsIHJlcXVpcmVzIHRoZSAqcGh5c2ljYWwqIGhhcmR3YXJlIHRvIGJlIHByZXNlbnQgb24gdGhlIGhvc3QgYW5kIHBhc3NlZCB0aHJvdWdoLCBpdCYjMzk7cyBub3QgJiMzNDtzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBUaGUgcHJvbXB0IGlzIHZlcnkgc3BlY2lmaWMgYWJvdXQgdGhpczogJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4mIzM0OyBTbyB0aGF0IGFyZ3VtZW50IGlzIGludmFsaWQuIFRoZSBvdGhlciBzdGlwdWxhdGlvbiwgJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0OyBhbHNvIGFwcGxpZXMuCgpUaHVzLCBzeXprYWxsZXIgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50IHdvbiYjMzk7dCBmdXp6IEhOUzMgYmVjYXVzZSB0aGVyZSYjMzk7cyBubyBlbXVsYXRlZCBITlMzIGRldmljZS4gRmluYWwgZGVjaXNpb246IGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKSSB3YW50IHRvIHF1aWNrbHkgcmV2aWV3IHRoZSBwYXRjaCBpdHNlbGYgZm9yIGEgc2FuaXR5IGNoZWNrLiBJdCB0b3VjaGVzIGBobnMzX2VuZXQuY2AgYW5kIGBoY2xnZV9lcnIuY2AuIEJvdGggb2YgdGhvc2UgYXJlIHNxdWFyZWx5IHdpdGhpbiB0aGUgYGhpc2lsaWNvbi9obnMzYCBkcml2ZXIgaXRzZWxmLiBUaGVzZSBhcmUgbm90IGNvcmUga2VybmVsIGNoYW5nZXMsIHNvIHRoZSBtb2RpZmljYXRpb25zIGFyZSBjb25maW5lZCB0byB0aGF0IGRyaXZlci4KClNvLCBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlzIHRoZSByaWdodCBjYWxsIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTI6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEyOjE4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMjoxODoyOC45NzkwMzAwMzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjM2MTYwMTEwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEhpU2lsaWNvbiBITlMzIG5ldHdvcmsgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIHBoeXNpY2FsIFBDSWUgbmV0d29yayBjYXJkcy4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIG1ha2luZyB0aGUgY29kZSB1bnJlYWNoYWJsZSBkdXJpbmcgc3RhbmRhcmQgdmlydHVhbGl6YXRpb24tYmFzZWQgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEyOjE4OjI4Ljk3OTAzODAzOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIxMzU2MTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMTZjNWVkMDVjOWNlNGY5NTA4OWE2NTExNGJhZjNjNmU2YmVhMGQzN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyA3IDEyOjE4OjI3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcXG5pbmRleCA2ZWNiMzJlMjhlNzlhLi40Nzc4OGJlNjRiZTY4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZW5ldC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcXG5AQCAtMjgyNSwzMiArMjgyNSwyOCBAQCBzdGF0aWMgaW50IGhuczNfbmljX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG5ld19tdHUpXFxuIFxcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuLXN0YXRpYyBpbnQgaG5zM19nZXRfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4rc3RhdGljIGJvb2wgaG5zM19kdW1wX3RpbWVvdXRfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuK1xcdFxcdFxcdFxcdCAgICB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcXG4ge1xcbi1cXHR1bnNpZ25lZCBpbnQgaTtcXG4tXFxuLVxcdC8qIEZpbmQgdGhlIHN0b3BwZWQgcXVldWUgdGhlIHNhbWUgd2F5IHRoZSBzdGFjayBkb2VzICovXFxuLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBuZGV2LVxcdTAwM2VudW1fdHhfcXVldWVzOyBpKyspIHtcXG4tXFx0XFx0dW5zaWduZWQgaW50IHRpbWVkb3V0X21zO1xcbi1cXHRcXHRzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpxO1xcbitcXHR1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7XFxuK1xcdHN0cnVjdCBuZXRkZXZfcXVldWUgKnE7XFxuIFxcbi1cXHRcXHRxID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCBpKTtcXG4tXFx0XFx0dGltZWRvdXRfbXMgPSBuZXRpZl94bWl0X3RpbWVvdXRfbXMocSk7XFxuLVxcdFxcdGlmICh0aW1lZG91dF9tcykge1xcbitcXHRxID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCB0eHF1ZXVlKTtcXG4rXFx0dGltZWRvdXRfbXMgPSBuZXRpZl94bWl0X3RpbWVvdXRfbXMocSk7XFxuK1xcdGlmICh0aW1lZG91dF9tcykge1xcbiAjaWZkZWYgQ09ORklHX0JRTFxcbi1cXHRcXHRcXHRzdHJ1Y3QgZHFsICpkcWwgPSBcXHUwMDI2cS1cXHUwMDNlZHFsO1xcbitcXHRcXHRzdHJ1Y3QgZHFsICpkcWwgPSBcXHUwMDI2cS1cXHUwMDNlZHFsO1xcbiBcXG4tXFx0XFx0XFx0bmV0ZGV2X2luZm8obmRldiwgXFxcIkRRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxcXFxuXFxcIixcXG4tXFx0XFx0XFx0XFx0ICAgIGRxbC1cXHUwMDNlbGFzdF9vYmpfY250LCBkcWwtXFx1MDAzZW51bV9xdWV1ZWQsXFxuLVxcdFxcdFxcdFxcdCAgICBkcWwtXFx1MDAzZWFkal9saW1pdCwgZHFsLVxcdTAwM2VudW1fY29tcGxldGVkKTtcXG4rXFx0XFx0bmV0ZGV2X2luZm8obmRldiwgXFxcIkRRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICAgIGRxbC1cXHUwMDNlbGFzdF9vYmpfY250LCBkcWwtXFx1MDAzZW51bV9xdWV1ZWQsXFxuK1xcdFxcdFxcdCAgICBkcWwtXFx1MDAzZWFkal9saW1pdCwgZHFsLVxcdTAwM2VudW1fY29tcGxldGVkKTtcXG4gI2VuZGlmXFxuLVxcdFxcdFxcdG5ldGRldl9pbmZvKG5kZXYsIFxcXCJxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxcXFxuXFxcIixcXG4tXFx0XFx0XFx0XFx0ICAgIHEtXFx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XFxuLVxcdFxcdFxcdGJyZWFrO1xcbi1cXHRcXHR9XFxuK1xcdFxcdG5ldGRldl9pbmZvKG5kZXYsIFxcXCJxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICAgIHEtXFx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XFxuK1xcdFxcdHJldHVybiB0cnVlO1xcbiBcXHR9XFxuIFxcbi1cXHRyZXR1cm4gaTtcXG4rXFx0cmV0dXJuIGZhbHNlO1xcbiB9XFxuIFxcbiBzdGF0aWMgdm9pZCBobnMzX2R1bXBfcXVldWVfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuQEAgLTI5MDAsMTUgKzI4OTYsMTUgQEAgc3RhdGljIHZvaWQgaG5zM19kdW1wX3F1ZXVlX3JlZyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4gXFx0XFx0XFx0XFx0ICAgICAgSE5TM19SSU5HX1RYX1JJTkdfRUJEX09GRlNFVF9SRUcpKTtcXG4gfVxcbiBcXG4tc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4rc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4rXFx0XFx0XFx0XFx0XFx0IHVuc2lnbmVkIGludCB0eHF1ZXVlKVxcbiB7XFxuIFxcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7XFxuIFxcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XFxuIFxcdHN0cnVjdCBobnMzX2VuZXRfcmluZyAqdHhfcmluZztcXG4tXFx0dTMyIHRpbWVvdXRfcXVldWU7XFxuIFxcbi1cXHR0aW1lb3V0X3F1ZXVlID0gaG5zM19nZXRfdGltZW91dF9xdWV1ZShuZGV2KTtcXG4tXFx0aWYgKHRpbWVvdXRfcXVldWUgXFx1MDAzZT0gbmRldi1cXHUwMDNlbnVtX3R4X3F1ZXVlcykge1xcbitcXHRpZiAodHhxdWV1ZSBcXHUwMDNlPSBoLVxcdTAwM2VraW5mby5udW1fdHFwcyB8fFxcbitcXHQgICAgIWhuczNfZHVtcF90aW1lb3V0X3F1ZXVlKG5kZXYsIHR4cXVldWUpKSB7XFxuIFxcdFxcdG5ldGRldl9pbmZvKG5kZXYsXFxuIFxcdFxcdFxcdCAgICBcXFwibm8gbmV0ZGV2IFRYIHRpbWVvdXQgcXVldWUgZm91bmQsIHRpbWVvdXQgY291bnQ6ICVsbHVcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCAgICBwcml2LVxcdTAwM2V0eF90aW1lb3V0X2NvdW50KTtcXG5AQCAtMjkxNyw4ICsyOTEzLDggQEAgc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4gXFxuIFxcdHByaXYtXFx1MDAzZXR4X3RpbWVvdXRfY291bnQrKztcXG4gXFxuLVxcdHR4X3JpbmcgPSBcXHUwMDI2cHJpdi1cXHUwMDNlcmluZ1t0aW1lb3V0X3F1ZXVlXTtcXG4tXFx0aG5zM19kdW1wX3F1ZXVlX3N0YXRzKG5kZXYsIHR4X3JpbmcsIHRpbWVvdXRfcXVldWUpO1xcbitcXHR0eF9yaW5nID0gXFx1MDAyNnByaXYtXFx1MDAzZXJpbmdbdHhxdWV1ZV07XFxuK1xcdGhuczNfZHVtcF9xdWV1ZV9zdGF0cyhuZGV2LCB0eF9yaW5nLCB0eHF1ZXVlKTtcXG4gXFxuIFxcdC8qIFdoZW4gbWFjIHJlY2VpdmVkIG1hbnkgcGF1c2UgZnJhbWVzIGNvbnRpbnVvdXMsIGl0J3MgdW5hYmxlIHRvIHNlbmRcXG4gXFx0ICogcGFja2V0cywgd2hpY2ggbWF5IGNhdXNlIHR4IHRpbWVvdXRcXG5AQCAtMjk0MSw3ICsyOTM3LDcgQEAgc3RhdGljIHZvaWQgaG5zM19uaWNfbmV0X3RpbWVvdXQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHVuc2lnbmVkIGludCB0eHF1ZXVlKVxcbiBcXHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5kZXYpO1xcbiBcXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gcHJpdi1cXHUwMDNlYWVfaGFuZGxlO1xcbiBcXG4tXFx0aWYgKCFobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKG5kZXYpKVxcbitcXHRpZiAoIWhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8obmRldiwgdHhxdWV1ZSkpXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuIFxcdC8qIHJlcXVlc3QgdGhlIHJlc2V0LCBhbmQgbGV0IHRoZSBoY2xnZSB0byBkZXRlcm1pbmVcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jXFxuaW5kZXggZGFjMDUxZTc5OGRhMi4uNjA5M2E2MGQyNTdiMSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfZXJyLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfZXJyLmNcXG5AQCAtMTU5Miw2ICsxNTkyLDcgQEAgaGNsZ2VfcXVlcnlfcmVnX2luZm8oc3RydWN0IGhjbGdlX2RldiAqaGRldixcXG4gXFx0fVxcbiBcXG4gXFx0a2ZyZWUobXNnLVxcdTAwM2VkZXNjKTtcXG4rXFx0bXNnLVxcdTAwM2VkZXNjID0gTlVMTDtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgaGNsZ2VfcXVlcnlfcmVnX2luZm9fb2Zfc3N1KHN0cnVjdCBoY2xnZV9kZXYgKmhkZXYpXFxuQEAgLTE3NjEsNyArMTc2Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGNsZ2VfaHdfdHlwZV9pZCBoY2xnZV9od190eXBlX2lkX3N0W10gPSB7XFxuIFxcdH0sXFxuIH07XFxuIFxcbi1zdGF0aWMgdm9pZCBoY2xnZV9sb2dfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICpyZWcsXFxuK3N0YXRpYyB2b2lkIGhjbGdlX2xvZ19lcnJvcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKnJlZyxcXG4gXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBoY2xnZV9od19lcnJvciAqZXJyLFxcbiBcXHRcXHRcXHQgICAgdTMyIGVycl9zdHMsIHVuc2lnbmVkIGxvbmcgKnJlc2V0X3JlcXVlc3RzKVxcbiB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEyOjE4OjI5LjUwMTQ2NTAxM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIxODM5MTUzNDQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxNmM1ZWQwNWM5Y2U0Zjk1MDg5YTY1MTE0YmFmM2M2ZTZiZWEwZDM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAxMjoxODoyNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcbmluZGV4IDZlY2IzMmUyOGU3OWEuLjQ3Nzg4YmU2NGJlNjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcbkBAIC0yODI1LDMyICsyODI1LDI4IEBAIHN0YXRpYyBpbnQgaG5zM19uaWNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgbmV3X210dSlcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuLXN0YXRpYyBpbnQgaG5zM19nZXRfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbitzdGF0aWMgYm9vbCBobnMzX2R1bXBfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbitcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcbiB7XG4tXHR1bnNpZ25lZCBpbnQgaTtcbi1cbi1cdC8qIEZpbmQgdGhlIHN0b3BwZWQgcXVldWUgdGhlIHNhbWUgd2F5IHRoZSBzdGFjayBkb2VzICovXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBuZGV2LVx1MDAzZW51bV90eF9xdWV1ZXM7IGkrKykge1xuLVx0XHR1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7XG4tXHRcdHN0cnVjdCBuZXRkZXZfcXVldWUgKnE7XG4rXHR1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7XG4rXHRzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpxO1xuIFxuLVx0XHRxID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCBpKTtcbi1cdFx0dGltZWRvdXRfbXMgPSBuZXRpZl94bWl0X3RpbWVvdXRfbXMocSk7XG4tXHRcdGlmICh0aW1lZG91dF9tcykge1xuK1x0cSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmRldiwgdHhxdWV1ZSk7XG4rXHR0aW1lZG91dF9tcyA9IG5ldGlmX3htaXRfdGltZW91dF9tcyhxKTtcbitcdGlmICh0aW1lZG91dF9tcykge1xuICNpZmRlZiBDT05GSUdfQlFMXG4tXHRcdFx0c3RydWN0IGRxbCAqZHFsID0gXHUwMDI2cS1cdTAwM2VkcWw7XG4rXHRcdHN0cnVjdCBkcWwgKmRxbCA9IFx1MDAyNnEtXHUwMDNlZHFsO1xuIFxuLVx0XHRcdG5ldGRldl9pbmZvKG5kZXYsIFwiRFFMIGluZm8gbGFzdF9jbnQ6ICV1LCBxdWV1ZWQ6ICV1LCBhZGpfbGltaXQ6ICV1LCBjb21wbGV0ZWQ6ICV1XFxuXCIsXG4tXHRcdFx0XHQgICAgZHFsLVx1MDAzZWxhc3Rfb2JqX2NudCwgZHFsLVx1MDAzZW51bV9xdWV1ZWQsXG4tXHRcdFx0XHQgICAgZHFsLVx1MDAzZWFkal9saW1pdCwgZHFsLVx1MDAzZW51bV9jb21wbGV0ZWQpO1xuK1x0XHRuZXRkZXZfaW5mbyhuZGV2LCBcIkRRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxcblwiLFxuK1x0XHRcdCAgICBkcWwtXHUwMDNlbGFzdF9vYmpfY250LCBkcWwtXHUwMDNlbnVtX3F1ZXVlZCxcbitcdFx0XHQgICAgZHFsLVx1MDAzZWFkal9saW1pdCwgZHFsLVx1MDAzZW51bV9jb21wbGV0ZWQpO1xuICNlbmRpZlxuLVx0XHRcdG5ldGRldl9pbmZvKG5kZXYsIFwicXVldWUgc3RhdGU6IDB4JWx4LCBkZWx0YSBtc2VjczogJXVcXG5cIixcbi1cdFx0XHRcdCAgICBxLVx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XG4tXHRcdFx0YnJlYWs7XG4tXHRcdH1cbitcdFx0bmV0ZGV2X2luZm8obmRldiwgXCJxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxcblwiLFxuK1x0XHRcdCAgICBxLVx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XG4rXHRcdHJldHVybiB0cnVlO1xuIFx0fVxuIFxuLVx0cmV0dXJuIGk7XG4rXHRyZXR1cm4gZmFsc2U7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIGhuczNfZHVtcF9xdWV1ZV9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbkBAIC0yOTAwLDE1ICsyODk2LDE1IEBAIHN0YXRpYyB2b2lkIGhuczNfZHVtcF9xdWV1ZV9yZWcoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG4gXHRcdFx0XHQgICAgICBITlMzX1JJTkdfVFhfUklOR19FQkRfT0ZGU0VUX1JFRykpO1xuIH1cbiBcbi1zdGF0aWMgYm9vbCBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuK3N0YXRpYyBib29sIGhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG4rXHRcdFx0XHRcdCB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5kZXYpO1xuIFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcbiBcdHN0cnVjdCBobnMzX2VuZXRfcmluZyAqdHhfcmluZztcbi1cdHUzMiB0aW1lb3V0X3F1ZXVlO1xuIFxuLVx0dGltZW91dF9xdWV1ZSA9IGhuczNfZ2V0X3RpbWVvdXRfcXVldWUobmRldik7XG4tXHRpZiAodGltZW91dF9xdWV1ZSBcdTAwM2U9IG5kZXYtXHUwMDNlbnVtX3R4X3F1ZXVlcykge1xuK1x0aWYgKHR4cXVldWUgXHUwMDNlPSBoLVx1MDAzZWtpbmZvLm51bV90cXBzIHx8XG4rXHQgICAgIWhuczNfZHVtcF90aW1lb3V0X3F1ZXVlKG5kZXYsIHR4cXVldWUpKSB7XG4gXHRcdG5ldGRldl9pbmZvKG5kZXYsXG4gXHRcdFx0ICAgIFwibm8gbmV0ZGV2IFRYIHRpbWVvdXQgcXVldWUgZm91bmQsIHRpbWVvdXQgY291bnQ6ICVsbHVcXG5cIixcbiBcdFx0XHQgICAgcHJpdi1cdTAwM2V0eF90aW1lb3V0X2NvdW50KTtcbkBAIC0yOTE3LDggKzI5MTMsOCBAQCBzdGF0aWMgYm9vbCBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuIFxuIFx0cHJpdi1cdTAwM2V0eF90aW1lb3V0X2NvdW50Kys7XG4gXG4tXHR0eF9yaW5nID0gXHUwMDI2cHJpdi1cdTAwM2VyaW5nW3RpbWVvdXRfcXVldWVdO1xuLVx0aG5zM19kdW1wX3F1ZXVlX3N0YXRzKG5kZXYsIHR4X3JpbmcsIHRpbWVvdXRfcXVldWUpO1xuK1x0dHhfcmluZyA9IFx1MDAyNnByaXYtXHUwMDNlcmluZ1t0eHF1ZXVlXTtcbitcdGhuczNfZHVtcF9xdWV1ZV9zdGF0cyhuZGV2LCB0eF9yaW5nLCB0eHF1ZXVlKTtcbiBcbiBcdC8qIFdoZW4gbWFjIHJlY2VpdmVkIG1hbnkgcGF1c2UgZnJhbWVzIGNvbnRpbnVvdXMsIGl0J3MgdW5hYmxlIHRvIHNlbmRcbiBcdCAqIHBhY2tldHMsIHdoaWNoIG1heSBjYXVzZSB0eCB0aW1lb3V0XG5AQCAtMjk0MSw3ICsyOTM3LDcgQEAgc3RhdGljIHZvaWQgaG5zM19uaWNfbmV0X3RpbWVvdXQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHVuc2lnbmVkIGludCB0eHF1ZXVlKVxuIFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZGV2KTtcbiBcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBwcml2LVx1MDAzZWFlX2hhbmRsZTtcbiBcbi1cdGlmICghaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhuZGV2KSlcbitcdGlmICghaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhuZGV2LCB0eHF1ZXVlKSlcbiBcdFx0cmV0dXJuO1xuIFxuIFx0LyogcmVxdWVzdCB0aGUgcmVzZXQsIGFuZCBsZXQgdGhlIGhjbGdlIHRvIGRldGVybWluZVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuY1xuaW5kZXggZGFjMDUxZTc5OGRhMi4uNjA5M2E2MGQyNTdiMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jXG5AQCAtMTU5Miw2ICsxNTkyLDcgQEAgaGNsZ2VfcXVlcnlfcmVnX2luZm8oc3RydWN0IGhjbGdlX2RldiAqaGRldixcbiBcdH1cbiBcbiBcdGtmcmVlKG1zZy1cdTAwM2VkZXNjKTtcbitcdG1zZy1cdTAwM2VkZXNjID0gTlVMTDtcbiB9XG4gXG4gc3RhdGljIHZvaWQgaGNsZ2VfcXVlcnlfcmVnX2luZm9fb2Zfc3N1KHN0cnVjdCBoY2xnZV9kZXYgKmhkZXYpXG5AQCAtMTc2MSw3ICsxNzYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoY2xnZV9od190eXBlX2lkIGhjbGdlX2h3X3R5cGVfaWRfc3RbXSA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgdm9pZCBoY2xnZV9sb2dfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICpyZWcsXG4rc3RhdGljIHZvaWQgaGNsZ2VfbG9nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqcmVnLFxuIFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgaGNsZ2VfaHdfZXJyb3IgKmVycixcbiBcdFx0XHQgICAgdTMyIGVycl9zdHMsIHVuc2lnbmVkIGxvbmcgKnJlc2V0X3JlcXVlc3RzKVxuIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEyOjE4OjI5LjUwMTQ2Njk1M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNDk5MzA3NzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlBhdGNoIEV2YWx1YXRpb246IEhOUzMgRHJpdmVyIENoYW5nZXMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHdlIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggd2FycmFudHMgZnV6emluZywgc3BlY2lmaWNhbGx5IGlmIGl0IGludHJvZHVjZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwncyBuZXR3b3JrIGJlaGF2aW9yLiBUaGUgcGF0Y2ggdG91Y2hlcyB0d28gZmlsZXM6IGBobnMzX2VuZXQuY2AgYW5kIGBoY2xnZV9lcnIuY2AsIGJvdGggd2l0aGluIHRoZSBgaGlzaWxpY29uL2huczNgIGRpcmVjdG9yeS4gVGhpcyBpcyBpbW1lZGlhdGVseSBhIHJlZCBmbGFnIOKAkyBIaVNpbGljb24gSE5TMyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgd2hpY2ggc3Ryb25nbHkgc3VnZ2VzdHMgaXQgKndvbid0KiBiZSByZWFkaWx5IGVtdWxhdGVkIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC5cblxuTG9va2luZyBjbG9zZXIgYXQgdGhlIGNoYW5nZXMsIGluIGBobnMzX2VuZXQuY2AgaXQgbG9va3MgbGlrZSB3ZSd2ZSBnb3QgbW9kaWZpY2F0aW9ucyB0byB0aW1lb3V0IGhhbmRsaW5nIHdpdGggYGhuczNfZ2V0X3RpbWVvdXRfcXVldWVgIGNoYW5naW5nIHRvIGBobnMzX2R1bXBfdGltZW91dF9xdWV1ZWAgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHVwZGF0ZXMgdG8gYGhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm9gIGFuZCBgaG5zM19uaWNfbmV0X3RpbWVvdXRgLiBUaGlzIGludm9sdmVzIHBhc3NpbmcgdGhlIGB0eHF1ZXVlYCB0byB2YXJpb3VzIGZ1bmN0aW9ucywgd2hpY2ggaXMgcmVsZXZhbnQgdG8gdGhlIGBuZG9fdHhfdGltZW91dGAgY2FsbGJhY2suIFdlJ3JlIHRhbGtpbmcgYWJvdXQgY2hhbmdlcyB0byBob3cgdGhlIGRyaXZlciBoYW5kbGVzIHRyYW5zbWl0IHRpbWVvdXRzLlxuXG5JbiBgaGNsZ2VfZXJyLmNgLCB0aGVyZSdzIGEgY29ycmVjdGlvbiBpbiBgaGNsZ2VfcXVlcnlfcmVnX2luZm9gIHdoZXJlIGBtc2ctXHUwMDNlZGVzY2AgaXMgYmVpbmcgZXhwbGljaXRseSBzZXQgdG8gYE5VTExgIGFmdGVyIGZyZWVpbmcgaXQuIEFsc28sIHRoZXJlJ3MgYSBzaW1wbGUgdHlwZSBjaGFuZ2UgZnJvbSBgY2hhciAqcmVnYCB0byBgY29uc3QgY2hhciAqcmVnYCBpbiBgaGNsZ2VfbG9nX2Vycm9yYC4gVGhpcyBhbGwgbG9va3MgbGlrZSBlcnJvciBoYW5kbGluZyBhbmQgbG9nZ2luZy5cblxuTm93IHRoZSBjcnVjaWFsIHF1ZXN0aW9uOiBpcyB0aGlzIHRlc3RhYmxlIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB3aGljaCBpcyBwYXJhbW91bnQgZm9yIG91ciBmdXp6aW5nIGVmZm9ydHM/IFRoZSBmYWN0IHRoYXQgaXQncyBhIGRyaXZlciBmb3IgYSBIaVNpbGljb24gcGh5c2ljYWwgbmV0d29yayBjYXJkIG1ha2VzIG1lIHN1c3BlY3Qgbm90LCBhcyB0aGUgZG9jdW1lbnRhdGlvbiBzcGVjaWZpY2FsbHkgc3RhdGVzIHRoYXQgY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSAobGlrZSBTbWFydE5JQ3MpIGlzIHVucmVhY2hhYmxlIGluIFFFTVUuIFZpcnR1YWwgZHJpdmVycywgbGlrZSB2aXJ0aW8tbmV0LCBhcmUgZmluZSwgYnV0IG5vdCBITlMzLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGlzLiBJJ2xsIHNlYXJjaCB0aGUgUUVNVSBzb3VyY2UganVzdCBpbiBjYXNlLCBidXQgbXkgaW50dWl0aW9uIHNheXMgdGhpcyBpcyBhIGhhcmR3YXJlLWRlcGVuZGVudCBkcml2ZXIuIFRoZSBjaGFuZ2VzIGFyZSBpbiB0aGUgdGltZW91dCBoYW5kbGVyIGFuZCBlcnJvciBsb2dnaW5nLlxuXG5HaXZlbiB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jeSwgSSdtIGxlYW5pbmcgdG93YXJkcyAqbm90KiBmdXp6aW5nIHRoaXMgcGF0Y2gsIHVubGVzcyBJIGNhbiBmaW5kIGFuIGV4Y2VwdGlvbi4gVGhlIGxvZ2ljIHNheXMgXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIgVGhpcyAqZGVmaW5pdGVseSogc2VlbXMgbGlrZSBhIGNhc2Ugd2hlcmUgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZS4gSSBhbSBnb2luZyB0byB2ZXJpZnkgdGhpcyB3aXRoIHRvb2xzLiBJIG5lZWQgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU5OCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc1NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEyOjE4OjQxLjAwMDc3ODI5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTY5MzA0NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJobnMzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA0ODU0IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vTWFrZWZpbGU9OT1vYmotJChDT05GSUdfSE5TKSArPSBobnMvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19ITlMzKSArPSBobnMzL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9NYWtlZmlsZS0xMS1vYmotJChDT05GSUdfSElTSV9GRU1BQykgKz0gaGlzaV9mZW1hYy5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZT02PWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjc6Y2NmbGFncy15ICs9IC1JJChzcmN0cmVlKS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZTo4OmNjZmxhZ3MteSArPSAtSSQoc3JjdHJlZSkvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3ZmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6OTpjY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfY29tbW9uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU9MTE9b2JqLSQoQ09ORklHX0hOUzMpICs9IGhuYWUzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZS0xMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToxMzpvYmotJChDT05GSUdfSE5TM19FTkVUKSArPSBobnMzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToxNDpobnMzLW9ianMgPSBobnMzX2VuZXQubyBobnMzX2V0aHRvb2wubyBobnMzX2RlYnVnZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjE2OmhuczMtJChDT05GSUdfSE5TM19EQ0IpICs9IGhuczNfZGNibmwub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlPTE4PW9iai0kKENPTkZJR19ITlMzX0hDTEdFVkYpICs9IGhjbGdldmYubyBoY2xnZS1jb21tb24ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjIwOmhjbGdlLWNvbW1vbi1vYmpzICs9IGhuczNfY29tbW9uL2hjbGdlX2NvbW1fY21kLm8gaG5zM19jb21tb24vaGNsZ2VfY29tbV9yc3MubyBobnMzX2NvbW1vbi9oY2xnZV9jb21tX3RxcF9zdGF0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6MjI6aGNsZ2V2Zi1vYmpzID0gaG5zM3ZmL2hjbGdldmZfbWFpbi5vIGhuczN2Zi9oY2xnZXZmX21ieC5vICBobnMzdmYvaGNsZ2V2Zl9kZXZsaW5rLm8gaG5zM3ZmL2hjbGdldmZfcmVncy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU9MjQ9b2JqLSQoQ09ORklHX0hOUzNfSENMR0UpICs9IGhjbGdlLm8gaGNsZ2UtY29tbW9uLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToyNTpoY2xnZS1vYmpzID0gaG5zM3BmL2hjbGdlX21haW4ubyBobnMzcGYvaGNsZ2VfbWRpby5vIGhuczNwZi9oY2xnZV90bS5vIGhuczNwZi9oY2xnZV9yZWdzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjI2OlxcdFxcdGhuczNwZi9oY2xnZV9tYngubyBobnMzcGYvaGNsZ2VfZXJyLm8gIGhuczNwZi9oY2xnZV9kZWJ1Z2ZzLm8gaG5zM3BmL2hjbGdlX3B0cC5vIGhuczNwZi9oY2xnZV9kZXZsaW5rLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjI3OlxcdFxcdGhuczNwZi9oY2xnZV9mZC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6Mjk6aGNsZ2UtJChDT05GSUdfSE5TM19EQ0IpICs9IGhuczNwZi9oY2xnZV9kY2Iub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaD0xOTg9c3RydWN0IGhuYWUzX3F1ZXVlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmgtMjA4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmg6MjA5OnN0cnVjdCBobnMzX21hY19zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaC0yMTAtXFx0dTY0IHR4X3BhdXNlX2NudDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmg9NjEwPXN0cnVjdCBobmFlM19hZV9vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaC02ODktXFx0dm9pZCAoKmdldF9tYWNfc3RhdHMpKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oOjY5MDpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaG5zM19tYWNfc3RhdHMgKm1hY19zdGF0cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaC02OTEtXFx0dm9pZCAoKmdldF9zdHJpbmdzKShzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNC0jaW5jbHVkZSBcXFwiaG5hZTMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NTojaW5jbHVkZSBcXFwiaG5zM19lbmV0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjc6c3RhdGljIGludCBobnMzX2RjYm5sX2llZWVfZ2V0ZXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgaWVlZV9ldHMgKmV0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjk6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExOlxcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyLVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjIwOnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX3NldGV0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGllZWVfZXRzICpldHMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTIxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MjI6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjI0OlxcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTI1LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjMzOnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX2dldHBmYyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGllZWVfcGZjICpwZmMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTM0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MzU6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjM3OlxcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTM4LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjQ2OnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX3NldHBmYyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGllZWVfcGZjICpwZmMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTQ3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NDg6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjUwOlxcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTUxLVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjU5OnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX3NldGFwcChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGRjYl9hcHAgKmFwcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNjAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo2MTpcXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5zM19nZXRfaGFuZGxlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy02Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NjM6XFx0aWYgKGhuczNfbmljX3Jlc2V0dGluZyhuZGV2KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNjQtXFx0XFx0cmV0dXJuIC1FQlVTWTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NzI6c3RhdGljIGludCBobnMzX2RjYm5sX2llZWVfZGVsYXBwKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgZGNiX2FwcCAqYXBwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjc0OlxcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo3NjpcXHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03Ny1cXHRcXHRyZXR1cm4gLUVCVVNZO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTg1LS8qIERDQlggY29uZmlndXJhdGlvbiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo4NjpzdGF0aWMgdTggaG5zM19kY2JubF9nZXRkY2J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy04Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjg4OlxcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTg5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTk2LS8qIHJldHVybiAwIGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBmYWlsICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjk3OnN0YXRpYyB1OCBobnMzX2RjYm5sX3NldGRjYngoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHU4IG1vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6OTk6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTAwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTA3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNibmxfcnRubF9vcHMgaG5zM19kY2JubF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjEwODpcXHQuaWVlZV9nZXRldHNcXHQ9IGhuczNfZGNibmxfaWVlZV9nZXRldHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjEwOTpcXHQuaWVlZV9zZXRldHNcXHQ9IGhuczNfZGNibmxfaWVlZV9zZXRldHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExMDpcXHQuaWVlZV9nZXRwZmNcXHQ9IGhuczNfZGNibmxfaWVlZV9nZXRwZmMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExMTpcXHQuaWVlZV9zZXRwZmNcXHQ9IGhuczNfZGNibmxfaWVlZV9zZXRwZmMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExMjpcXHQuaWVlZV9zZXRhcHAgICAgPSBobnMzX2RjYm5sX2llZWVfc2V0YXBwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMTM6XFx0LmllZWVfZGVsYXBwICAgID0gaG5zM19kY2JubF9pZWVlX2RlbGFwcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTE0OlxcdC5nZXRkY2J4XFx0PSBobnMzX2RjYm5sX2dldGRjYngsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExNTpcXHQuc2V0ZGNieFxcdD0gaG5zM19kY2JubF9zZXRkY2J4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMTYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMjEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjEyMjp2b2lkIGhuczNfZGNibmxfc2V0dXAoc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTI5OlxcdGRldi1cXHUwMDNlZGNibmxfb3BzID0gXFx1MDAyNmhuczNfZGNibmxfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMzAtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtOS0jaW5jbHVkZSBcXFwiaG5hZTMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMDojaW5jbHVkZSBcXFwiaG5zM19kZWJ1Z2ZzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTE6I2luY2x1ZGUgXFxcImhuczNfZW5ldC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjEzOnN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpobnMzX2RiZ2ZzX3Jvb3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTU6c3RhdGljIHN0cnVjdCBobnMzX2RiZ19kZW50cnlfaW5mbyBobnMzX2RiZ19kZW50cnlbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNi1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0MzpzdGF0aWMgaW50IGhuczNfZGJnX2JkX2ZpbGVfaW5pdChzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIHUzMiBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ0OnN0YXRpYyBpbnQgaG5zM19kYmdfY29tbW9uX2luaXRfdDEoc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxlLCB1MzIgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NTpzdGF0aWMgaW50IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSwgdTMyIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDc6c3RhdGljIHN0cnVjdCBobnMzX2RiZ19jbWRfaW5mbyBobnMzX2RiZ19jbWRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00OC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTMtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU3LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTg6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01OS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2NDpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02OS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzEtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc1LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NzY6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03Ny1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4MjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04Ny1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjg4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODktXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTkzLVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6OTQ6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy05NS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtOTktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMDA6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMDEtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEwNS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjEwNjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEwNy1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTExLVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTEyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTEzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMTctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTE4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTE5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMjMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UWF9CRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMjQ6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19iZF9maWxlX2luaXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTI1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMjktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SWF9CRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMzA6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19iZF9maWxlX2luaXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTMxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMzUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9NQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTM2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTM3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNDEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9NQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTQyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNDctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTQ4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQ5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNTMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTU0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTU1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNTktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTYwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTYxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNjUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTY2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTY3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNzEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTcyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTczLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNzctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTc4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTc5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xODMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTg0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTg1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xODktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTkwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTkxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xOTUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTk2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTk3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMDEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjAyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjAzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMDctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjA4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjA5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMTMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjE0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjE1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMTktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjIwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjIxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMjUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjI2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjI3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMzEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjMyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjMzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMzctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjM4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjM5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNDMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjQ0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjQ1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNDktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjUwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjUxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNTUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9RVUVVRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyNTY6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNTctXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI2MS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1FVRVVFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI2MjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI2My1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjY3LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfUVVFVUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjY4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjY5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNzMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9GRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyNzQ6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNzUtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI3OS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0ZELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI4MDpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI4MS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjg1LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfQ09NTU9OLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI4NjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI4Ny1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjkxLVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfQ09NTU9OLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI5MjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI5My1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjk3LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfQ09NTU9OLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI5ODpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI5OS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzAzLVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfRkQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzA0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzA1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMDktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzEwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzExLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMTUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzE2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzE3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMjEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzIyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzIzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzI2OnN0YXRpYyBzdHJ1Y3QgaG5zM19kYmdfY2FwX2luZm8gaG5zM19kYmdfY2FwW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzI3LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jPTM5MD1kaW1fdHVuZV9zdGF0X3N0cltdID0geyBcXFwiT05fVE9QXFxcIiwgXFxcIlRJUkVEXFxcIiwgXFxcIlJJR0hUXFxcIiwgXFxcIkxFRlRcXFwiIH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjM5MjpzdGF0aWMgdm9pZCBobnMzX2dldF9jb2FsX2luZm8oc3RydWN0IGhuczNfZW5ldF90cXBfdmVjdG9yICp0cXBfdmVjdG9yLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTM5My1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNlcV9maWxlICpzLCBpbnQgaSwgYm9vbCBpc190eClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTM5NS1cXHR1bnNpZ25lZCBpbnQgZ2xfb2Zmc2V0LCBxbF9vZmZzZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Mzk2OlxcdHN0cnVjdCBobnMzX2VuZXRfY29hbGVzY2UgKmNvYWw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzk3LVxcdHVuc2lnbmVkIGludCByZWdfdmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQzNzpzdGF0aWMgdm9pZCBobnMzX2R1bXBfY29hbF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgYm9vbCBpc190eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00Mzgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQzOS1cXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5hZTNfc2VxX2ZpbGVfdG9faGFuZGxlKHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ0MDpcXHRzdHJ1Y3QgaG5zM19lbmV0X3RxcF92ZWN0b3IgKnRxcF92ZWN0b3I7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDQxOlxcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NDItXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTEtXFx0XFx0dHFwX3ZlY3RvciA9IFxcdTAwMjZwcml2LVxcdTAwM2V0cXBfdmVjdG9yW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ1MjpcXHRcXHRobnMzX2dldF9jb2FsX2luZm8odHFwX3ZlY3RvciwgcywgaSwgaXNfdHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ1My1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDU2OnN0YXRpYyBpbnQgaG5zM19kYmdfY29hbF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ1ODpcXHRobnMzX2R1bXBfY29hbF9pbmZvKHMsIHRydWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ1OS1cXHRzZXFfcHV0cyhzLCBcXFwiXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NjA6XFx0aG5zM19kdW1wX2NvYWxfaW5mbyhzLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDYxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ2NTpzdGF0aWMgdm9pZCBobnMzX2R1bXBfcnhfcXVldWVfaW5mbyhzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDY2LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ5OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MDA6c3RhdGljIGludCBobnMzX2RiZ19yeF9xdWV1ZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MDEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTUwMi1cXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5hZTNfc2VxX2ZpbGVfdG9faGFuZGxlKHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUwMzpcXHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IGgtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTA0OlxcdHN0cnVjdCBobnMzX2VuZXRfcmluZyAqcmluZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MDUtXFx0dTMyIGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MjQtXFx0XFx0cmluZyA9IFxcdTAwMjZwcml2LVxcdTAwM2VyaW5nWyh1MzIpKGkgKyBoLVxcdTAwM2VraW5mby5udW1fdHFwcyldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUyNTpcXHRcXHRobnMzX2R1bXBfcnhfcXVldWVfaW5mbyhyaW5nLCBzLCBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MjYtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUzMTpzdGF0aWMgdm9pZCBobnMzX2R1bXBfdHhfcXVldWVfaW5mbyhzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTMyLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1NjU6c3RhdGljIGludCBobnMzX2RiZ190eF9xdWV1ZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01NjYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU2Ny1cXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5hZTNfc2VxX2ZpbGVfdG9faGFuZGxlKHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU2ODpcXHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IGgtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTY5OlxcdHN0cnVjdCBobnMzX2VuZXRfcmluZyAqcmluZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01NzAtXFx0dTMyIGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01ODktXFx0XFx0cmluZyA9IFxcdTAwMjZwcml2LVxcdTAwM2VyaW5nW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU5MDpcXHRcXHRobnMzX2R1bXBfdHhfcXVldWVfaW5mbyhyaW5nLCBzLCBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01OTEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU5NjpzdGF0aWMgaW50IGhuczNfZGJnX3F1ZXVlX21hcChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTk3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01OTgtXFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuYWUzX3NlcV9maWxlX3RvX2hhbmRsZShzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1OTk6XFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYwMC1cXHR1MzIgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2MTg6c3RhdGljIHZvaWQgaG5zM19kdW1wX3J4X2JkX2luZm8oc3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjE5OlxcdFxcdFxcdFxcdCBzdHJ1Y3QgaG5zM19kZXNjICpkZXNjLCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjIwLVxcdFxcdFxcdFxcdCBpbnQgaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY0MzpzdGF0aWMgaW50IGhuczNfZGJnX3J4X2JkX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwcml2YXRlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY0NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ1OlxcdHN0cnVjdCBobnMzX2RiZ19kYXRhICpkYXRhID0gcy1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NDYtXFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGRhdGEtXFx1MDAzZWhhbmRsZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2NDc6XFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY0ODpcXHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ5OlxcdHN0cnVjdCBobnMzX2Rlc2MgKmRlc2M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjUwLVxcdHVuc2lnbmVkIGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjY1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY2NjpcXHRcXHRobnMzX2R1bXBfcnhfYmRfaW5mbyhwcml2LCBkZXNjLCBzLCBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NjctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY3MjpzdGF0aWMgdm9pZCBobnMzX2R1bXBfdHhfYmRfaW5mbyhzdHJ1Y3QgaG5zM19kZXNjICpkZXNjLCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjczLVxcdFxcdFxcdFxcdCBpbnQgaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY4ODpzdGF0aWMgaW50IGhuczNfZGJnX3R4X2JkX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwcml2YXRlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY4OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjkwOlxcdHN0cnVjdCBobnMzX2RiZ19kYXRhICpkYXRhID0gcy1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02OTEtXFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGRhdGEtXFx1MDAzZWhhbmRsZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2OTI6XFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY5MzpcXHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Njk0OlxcdHN0cnVjdCBobnMzX2Rlc2MgKmRlc2M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjk1LVxcdHVuc2lnbmVkIGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcxMTpcXHRcXHRobnMzX2R1bXBfdHhfYmRfaW5mbyhkZXNjLCBzLCBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MTItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcxNzpzdGF0aWMgdm9pZCBobnMzX2RiZ19kZXZfY2FwcyhzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoLCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzE4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MTk6XFx0c3RydWN0IGhuYWUzX2FlX2RldiAqYWVfZGV2ID0gaG5zM19nZXRfYWVfZGV2KGgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTcyMC1cXHR1bnNpZ25lZCBsb25nICpjYXBzID0gYWVfZGV2LVxcdTAwM2VjYXBzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcyNTpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShobnMzX2RiZ19jYXApOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MjY6XFx0XFx0c3RhdGUgPSB0ZXN0X2JpdChobnMzX2RiZ19jYXBbaV0uY2FwX2JpdCwgY2Fwcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NzI3OlxcdFxcdHNlcV9wcmludGYocywgXFxcIiVzOiAlc1xcXFxuXFxcIiwgaG5zM19kYmdfY2FwW2ldLm5hbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzI4LVxcdFxcdFxcdCAgIHN0cl95ZXNfbm8oc3RhdGUpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTczMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MzQ6c3RhdGljIHZvaWQgaG5zM19kYmdfZGV2X3NwZWNzKHN0cnVjdCBobmFlM19oYW5kbGUgKmgsIHN0cnVjdCBzZXFfZmlsZSAqcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc2OTpzdGF0aWMgaW50IGhuczNfZGJnX2Rldl9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03NzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc3MzpcXHRobnMzX2RiZ19kZXZfY2FwcyhoLCBzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3NzQ6XFx0aG5zM19kYmdfZGV2X3NwZWNzKGgsIHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc3NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3Nzk6c3RhdGljIHZvaWQgaG5zM19kdW1wX3BhZ2VfcG9vbF9pbmZvKHN0cnVjdCBobnMzX2VuZXRfcmluZyAqcmluZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03ODAtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc5MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3OTI6c3RhdGljIGludCBobnMzX2RiZ19wYWdlX3Bvb2xfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzkzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03OTQtXFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuYWUzX3NlcV9maWxlX3RvX2hhbmRsZShzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3OTU6XFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc5NjpcXHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzk3LVxcdHUzMiBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODE3LVxcdFxcdHJpbmcgPSBcXHUwMDI2cHJpdi1cXHUwMDNlcmluZ1sodTMyKShpICsgaC1cXHUwMDNla2luZm8ubnVtX3RxcHMpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4MTg6XFx0XFx0aG5zM19kdW1wX3BhZ2VfcG9vbF9pbmZvKHJpbmcsIHMsIGkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgxOS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODI0OnN0YXRpYyBpbnQgaG5zM19kYmdfYmRfaW5mb19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcHJpdmF0ZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MjUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjgyNjpcXHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YSA9IHMtXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODI3LVxcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBkYXRhLVxcdTAwM2VoYW5kbGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODI4OlxcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MzQtXFx0aWYgKGRhdGEtXFx1MDAzZWNtZCA9PSBITkFFM19EQkdfQ01EX1RYX0JEKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjgzNTpcXHRcXHRyZXR1cm4gaG5zM19kYmdfdHhfYmRfaW5mbyhzLCBwcml2YXRlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MzYtXFx0ZWxzZSBpZiAoZGF0YS1cXHUwMDNlY21kID09IEhOQUUzX0RCR19DTURfUlhfQkQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODM3OlxcdFxcdHJldHVybiBobnMzX2RiZ19yeF9iZF9pbmZvKHMsIHByaXZhdGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg0MC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODQxOkRFRklORV9TSE9XX0FUVFJJQlVURShobnMzX2RiZ19iZF9pbmZvKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODQzOnN0YXRpYyBpbnQgaG5zM19kYmdfYmRfZmlsZV9pbml0KHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSwgdTMyIGNtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04NDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjg0NTpcXHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04NDYtXFx0c3RydWN0IGRlbnRyeSAqZW50cnlfZGlyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjg1MDpcXHRlbnRyeV9kaXIgPSBobnMzX2RiZ19kZW50cnlbaG5zM19kYmdfY21kW2NtZF0uZGVudHJ5XS5kZW50cnk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODUxOlxcdG1heF9xdWV1ZV9udW0gPSBobnMzX2dldF9tYXhfYXZhaWxhYmxlX2NoYW5uZWxzKGhhbmRsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODUyLVxcdGRhdGEgPSBkZXZtX2tjYWxsb2MoXFx1MDAyNmhhbmRsZS1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LCBtYXhfcXVldWVfbnVtLCBzaXplb2YoKmRhdGEpLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMjoxODo0MS4xMjI0NzUxOTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDIxODExOTk3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIEhOUzMgRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgSE5TMyBkcml2ZXIgaXMgaW50cmluc2ljYWxseSB0aWVkIHRvIHBoeXNpY2FsIGhhcmR3YXJlLiBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0IGluIGVpdGhlciB0aGUga2VybmVsIGl0c2VsZiBvciB3aXRoaW4gUUVNVS4gRG91YmxlLWNoZWNraW5nLCBJIGZpbmQgbm8gc29mdHdhcmUgZW11bGF0aW9uIG9mIEhOUzMgaW4gdGhlIGtlcm5lbCwgYW5kIG5vdGhpbmcgaW4gUUVNVSBlaXRoZXIuXG5cbldhaXQsIHRoZSBxdWVzdGlvbiBpcywgY291bGQgdGhpcyBjb2RlICpldmVyKiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IFRoZSBxdWljayBhbnN3ZXIgaXMgbm8sIGl0ICpkZW1hbmRzKiBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzLiBUaGF0J3MgdGhlIGNydXggb2YgaXQuXG5cbk5vdywgbGV0J3MgY2lyY2xlIGJhY2sgdG8gdGhlIHByb21wdCwgd2hpY2ggZXhwbGljaXRseSBzdGF0ZXMgXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAuLi4gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiIEhOUzMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgZHJpdmVyLCBtZWFuaW5nIGl0IHBlcmZlY3RseSBmaXRzIHRoYXQgY2F0ZWdvcnkuIFRoZXJlZm9yZSwgYmFzZWQgb24gdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgcHJvbXB0LCB0aGUgY29ycmVjdCBhbnN3ZXIgaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cbkhvd2V2ZXIsIEknbSBnb2luZyB0byB0YWtlIGEgbW9tZW50IHRvIGRvdWJsZSBjaGVjay4gVGhlIGBoY2xnZXZmYCBkcml2ZXIgaXMgdGhlIFZGIGRyaXZlciBmb3IgSE5TMy4gVGhlIFZGIChWaXJ0dWFsIEZ1bmN0aW9uKSBkcml2ZXJzIGFyZSB1c2VkIGluIHZpcnR1YWwgbWFjaGluZXMgdXNpbmcgU1ItSU9WLiBJdCdzIHRoZW9yZXRpY2FsbHkgcG9zc2libGUgdGhhdCBhIFZNIGNvdWxkIGhhdmUgYSBWRiBwYXNzZWQgdGhyb3VnaCB0byBpdCwgbWVhbmluZyB0aGF0IHRoZSBkcml2ZXIgaXMgaW5kZWVkIGFjdGl2ZSB3aXRoaW4gdGhlIFZNLiBIb3dldmVyLCAqdGhhdCogc3RpbGwgcmVxdWlyZXMgdGhlICpwaHlzaWNhbCogaGFyZHdhcmUgdG8gYmUgcHJlc2VudCBvbiB0aGUgaG9zdCBhbmQgcGFzc2VkIHRocm91Z2gsIGl0J3Mgbm90IFwic29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi4gVGhlIHByb21wdCBpcyB2ZXJ5IHNwZWNpZmljIGFib3V0IHRoaXM6IFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXCIgU28gdGhhdCBhcmd1bWVudCBpcyBpbnZhbGlkLiBUaGUgb3RoZXIgc3RpcHVsYXRpb24sIFwiQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIgYWxzbyBhcHBsaWVzLlxuXG5UaHVzLCBzeXprYWxsZXIgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50IHdvbid0IGZ1enogSE5TMyBiZWNhdXNlIHRoZXJlJ3Mgbm8gZW11bGF0ZWQgSE5TMyBkZXZpY2UuIEZpbmFsIGRlY2lzaW9uOiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuSSB3YW50IHRvIHF1aWNrbHkgcmV2aWV3IHRoZSBwYXRjaCBpdHNlbGYgZm9yIGEgc2FuaXR5IGNoZWNrLiBJdCB0b3VjaGVzIGBobnMzX2VuZXQuY2AgYW5kIGBoY2xnZV9lcnIuY2AuIEJvdGggb2YgdGhvc2UgYXJlIHNxdWFyZWx5IHdpdGhpbiB0aGUgYGhpc2lsaWNvbi9obnMzYCBkcml2ZXIgaXRzZWxmLiBUaGVzZSBhcmUgbm90IGNvcmUga2VybmVsIGNoYW5nZXMsIHNvIHRoZSBtb2RpZmljYXRpb25zIGFyZSBjb25maW5lZCB0byB0aGF0IGRyaXZlci5cblxuU28sIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgaXMgdGhlIHJpZ2h0IGNhbGwgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE2MzYsIk91dHB1dFRva2VucyI6ODMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTI6MTg6NTEuMzQwNTk3ODUxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTIwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMjoxODo1MS4zNDA2MjAxMTFaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowscc2j[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-07 12:16:09 +0000 UTC FinishedAt: 2026-08-07 12:18:57 +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+CgkJCTx0ZD4yMDI2LzA4LzA3IDEyOjE4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgSGlTaWxpY29uIEhOUzMgbmV0d29yayBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgcGh5c2ljYWwgUENJZSBuZXR3b3JrIGNhcmRzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBzdGFuZGFyZCB2aXJ0dWFsaXphdGlvbi1iYXNlZCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMjoxODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDE2YzVlZDA1YzljZTRmOTUwODlhNjUxMTRiYWYzYzZlNmJlYTBkMzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyA3IDEyOjE4OjI3IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcbmluZGV4IDZlY2IzMmUyOGU3OWEuLjQ3Nzg4YmU2NGJlNjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcbkBAIC0yODI1LDMyICYjNDM7MjgyNSwyOCBAQCBzdGF0aWMgaW50IGhuczNfbmljX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG5ld19tdHUpXG4gXHRyZXR1cm4gcmV0O1xuIH1cbiBcbi1zdGF0aWMgaW50IGhuczNfZ2V0X3RpbWVvdXRfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4mIzQzO3N0YXRpYyBib29sIGhuczNfZHVtcF90aW1lb3V0X3F1ZXVlKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuJiM0MztcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcbiB7XG4tXHR1bnNpZ25lZCBpbnQgaTtcbi1cbi1cdC8qIEZpbmQgdGhlIHN0b3BwZWQgcXVldWUgdGhlIHNhbWUgd2F5IHRoZSBzdGFjayBkb2VzICovXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBuZGV2LVx1MDAzZW51bV90eF9xdWV1ZXM7IGkmIzQzOyYjNDM7KSB7XG4tXHRcdHVuc2lnbmVkIGludCB0aW1lZG91dF9tcztcbi1cdFx0c3RydWN0IG5ldGRldl9xdWV1ZSAqcTtcbiYjNDM7XHR1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7XG4mIzQzO1x0c3RydWN0IG5ldGRldl9xdWV1ZSAqcTtcbiBcbi1cdFx0cSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmRldiwgaSk7XG4tXHRcdHRpbWVkb3V0X21zID0gbmV0aWZfeG1pdF90aW1lb3V0X21zKHEpO1xuLVx0XHRpZiAodGltZWRvdXRfbXMpIHtcbiYjNDM7XHRxID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCB0eHF1ZXVlKTtcbiYjNDM7XHR0aW1lZG91dF9tcyA9IG5ldGlmX3htaXRfdGltZW91dF9tcyhxKTtcbiYjNDM7XHRpZiAodGltZWRvdXRfbXMpIHtcbiAjaWZkZWYgQ09ORklHX0JRTFxuLVx0XHRcdHN0cnVjdCBkcWwgKmRxbCA9IFx1MDAyNnEtXHUwMDNlZHFsO1xuJiM0MztcdFx0c3RydWN0IGRxbCAqZHFsID0gXHUwMDI2cS1cdTAwM2VkcWw7XG4gXG4tXHRcdFx0bmV0ZGV2X2luZm8obmRldiwgXCYjMzQ7RFFMIGluZm8gbGFzdF9jbnQ6ICV1LCBxdWV1ZWQ6ICV1LCBhZGpfbGltaXQ6ICV1LCBjb21wbGV0ZWQ6ICV1XFxuXCYjMzQ7LFxuLVx0XHRcdFx0ICAgIGRxbC1cdTAwM2VsYXN0X29ial9jbnQsIGRxbC1cdTAwM2VudW1fcXVldWVkLFxuLVx0XHRcdFx0ICAgIGRxbC1cdTAwM2VhZGpfbGltaXQsIGRxbC1cdTAwM2VudW1fY29tcGxldGVkKTtcbiYjNDM7XHRcdG5ldGRldl9pbmZvKG5kZXYsIFwmIzM0O0RRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxcblwmIzM0OyxcbiYjNDM7XHRcdFx0ICAgIGRxbC1cdTAwM2VsYXN0X29ial9jbnQsIGRxbC1cdTAwM2VudW1fcXVldWVkLFxuJiM0MztcdFx0XHQgICAgZHFsLVx1MDAzZWFkal9saW1pdCwgZHFsLVx1MDAzZW51bV9jb21wbGV0ZWQpO1xuICNlbmRpZlxuLVx0XHRcdG5ldGRldl9pbmZvKG5kZXYsIFwmIzM0O3F1ZXVlIHN0YXRlOiAweCVseCwgZGVsdGEgbXNlY3M6ICV1XFxuXCYjMzQ7LFxuLVx0XHRcdFx0ICAgIHEtXHUwMDNlc3RhdGUsIHRpbWVkb3V0X21zKTtcbi1cdFx0XHRicmVhaztcbi1cdFx0fVxuJiM0MztcdFx0bmV0ZGV2X2luZm8obmRldiwgXCYjMzQ7cXVldWUgc3RhdGU6IDB4JWx4LCBkZWx0YSBtc2VjczogJXVcXG5cJiMzNDssXG4mIzQzO1x0XHRcdCAgICBxLVx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XG4mIzQzO1x0XHRyZXR1cm4gdHJ1ZTtcbiBcdH1cbiBcbi1cdHJldHVybiBpO1xuJiM0MztcdHJldHVybiBmYWxzZTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgaG5zM19kdW1wX3F1ZXVlX3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuQEAgLTI5MDAsMTUgJiM0MzsyODk2LDE1IEBAIHN0YXRpYyB2b2lkIGhuczNfZHVtcF9xdWV1ZV9yZWcoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG4gXHRcdFx0XHQgICAgICBITlMzX1JJTkdfVFhfUklOR19FQkRfT0ZGU0VUX1JFRykpO1xuIH1cbiBcbi1zdGF0aWMgYm9vbCBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuJiM0MztzdGF0aWMgYm9vbCBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LFxuJiM0MztcdFx0XHRcdFx0IHVuc2lnbmVkIGludCB0eHF1ZXVlKVxuIHtcbiBcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7XG4gXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5zM19nZXRfaGFuZGxlKG5kZXYpO1xuIFx0c3RydWN0IGhuczNfZW5ldF9yaW5nICp0eF9yaW5nO1xuLVx0dTMyIHRpbWVvdXRfcXVldWU7XG4gXG4tXHR0aW1lb3V0X3F1ZXVlID0gaG5zM19nZXRfdGltZW91dF9xdWV1ZShuZGV2KTtcbi1cdGlmICh0aW1lb3V0X3F1ZXVlIFx1MDAzZT0gbmRldi1cdTAwM2VudW1fdHhfcXVldWVzKSB7XG4mIzQzO1x0aWYgKHR4cXVldWUgXHUwMDNlPSBoLVx1MDAzZWtpbmZvLm51bV90cXBzIHx8XG4mIzQzO1x0ICAgICFobnMzX2R1bXBfdGltZW91dF9xdWV1ZShuZGV2LCB0eHF1ZXVlKSkge1xuIFx0XHRuZXRkZXZfaW5mbyhuZGV2LFxuIFx0XHRcdCAgICBcJiMzNDtubyBuZXRkZXYgVFggdGltZW91dCBxdWV1ZSBmb3VuZCwgdGltZW91dCBjb3VudDogJWxsdVxcblwmIzM0OyxcbiBcdFx0XHQgICAgcHJpdi1cdTAwM2V0eF90aW1lb3V0X2NvdW50KTtcbkBAIC0yOTE3LDggJiM0MzsyOTEzLDggQEAgc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbiBcbiBcdHByaXYtXHUwMDNldHhfdGltZW91dF9jb3VudCYjNDM7JiM0Mzs7XG4gXG4tXHR0eF9yaW5nID0gXHUwMDI2cHJpdi1cdTAwM2VyaW5nW3RpbWVvdXRfcXVldWVdO1xuLVx0aG5zM19kdW1wX3F1ZXVlX3N0YXRzKG5kZXYsIHR4X3JpbmcsIHRpbWVvdXRfcXVldWUpO1xuJiM0MztcdHR4X3JpbmcgPSBcdTAwMjZwcml2LVx1MDAzZXJpbmdbdHhxdWV1ZV07XG4mIzQzO1x0aG5zM19kdW1wX3F1ZXVlX3N0YXRzKG5kZXYsIHR4X3JpbmcsIHR4cXVldWUpO1xuIFxuIFx0LyogV2hlbiBtYWMgcmVjZWl2ZWQgbWFueSBwYXVzZSBmcmFtZXMgY29udGludW91cywgaXQmIzM5O3MgdW5hYmxlIHRvIHNlbmRcbiBcdCAqIHBhY2tldHMsIHdoaWNoIG1heSBjYXVzZSB0eCB0aW1lb3V0XG5AQCAtMjk0MSw3ICYjNDM7MjkzNyw3IEBAIHN0YXRpYyB2b2lkIGhuczNfbmljX25ldF90aW1lb3V0KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcbiBcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7XG4gXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gcHJpdi1cdTAwM2VhZV9oYW5kbGU7XG4gXG4tXHRpZiAoIWhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8obmRldikpXG4mIzQzO1x0aWYgKCFobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKG5kZXYsIHR4cXVldWUpKVxuIFx0XHRyZXR1cm47XG4gXG4gXHQvKiByZXF1ZXN0IHRoZSByZXNldCwgYW5kIGxldCB0aGUgaGNsZ2UgdG8gZGV0ZXJtaW5lXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jXG5pbmRleCBkYWMwNTFlNzk4ZGEyLi42MDkzYTYwZDI1N2IxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfZXJyLmNcbkBAIC0xNTkyLDYgJiM0MzsxNTkyLDcgQEAgaGNsZ2VfcXVlcnlfcmVnX2luZm8oc3RydWN0IGhjbGdlX2RldiAqaGRldixcbiBcdH1cbiBcbiBcdGtmcmVlKG1zZy1cdTAwM2VkZXNjKTtcbiYjNDM7XHRtc2ctXHUwMDNlZGVzYyA9IE5VTEw7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIGhjbGdlX3F1ZXJ5X3JlZ19pbmZvX29mX3NzdShzdHJ1Y3QgaGNsZ2VfZGV2ICpoZGV2KVxuQEAgLTE3NjEsNyAmIzQzOzE3NjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhjbGdlX2h3X3R5cGVfaWQgaGNsZ2VfaHdfdHlwZV9pZF9zdFtdID0ge1xuIFx0fSxcbiB9O1xuIFxuLXN0YXRpYyB2b2lkIGhjbGdlX2xvZ19lcnJvcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNoYXIgKnJlZyxcbiYjNDM7c3RhdGljIHZvaWQgaGNsZ2VfbG9nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqcmVnLFxuIFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgaGNsZ2VfaHdfZXJyb3IgKmVycixcbiBcdFx0XHQgICAgdTMyIGVycl9zdHMsIHVuc2lnbmVkIGxvbmcgKnJlc2V0X3JlcXVlc3RzKVxuIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMjoxODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBtb2RpZmllcyB0aGUgSGlTaWxpY29uIEhOUzMgbmV0d29yayBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgcGh5c2ljYWwgUENJZSBuZXR3b3JrIGNhcmRzLiBUaGlzIGhhcmR3YXJlIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIHRoZSBjb2RlIHVucmVhY2hhYmxlIGR1cmluZyBzdGFuZGFyZCB2aXJ0dWFsaXphdGlvbi1iYXNlZCBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDE2YzVlZDA1YzljZTRmOTUwODlhNjUxMTRiYWYzYzZlNmJlYTBkMzcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEF1ZyA3IDEyOjE4OjI3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuYwppbmRleCA2ZWNiMzJlMjhlNzlhLi40Nzc4OGJlNjRiZTY4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuYwpAQCAtMjgyNSwzMiAmIzQzOzI4MjUsMjggQEAgc3RhdGljIGludCBobnMzX25pY19jaGFuZ2VfbXR1KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBuZXdfbXR1KQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyBpbnQgaG5zM19nZXRfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKJiM0MztzdGF0aWMgYm9vbCBobnMzX2R1bXBfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwKJiM0MzsJCQkJICAgIHVuc2lnbmVkIGludCB0eHF1ZXVlKQogewotCXVuc2lnbmVkIGludCBpOwotCi0JLyogRmluZCB0aGUgc3RvcHBlZCBxdWV1ZSB0aGUgc2FtZSB3YXkgdGhlIHN0YWNrIGRvZXMgKi8KLQlmb3IgKGkgPSAwOyBpICZsdDsgbmRldi0mZ3Q7bnVtX3R4X3F1ZXVlczsgaSYjNDM7JiM0MzspIHsKLQkJdW5zaWduZWQgaW50IHRpbWVkb3V0X21zOwotCQlzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpxOwomIzQzOwl1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7CiYjNDM7CXN0cnVjdCBuZXRkZXZfcXVldWUgKnE7CiAKLQkJcSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmRldiwgaSk7Ci0JCXRpbWVkb3V0X21zID0gbmV0aWZfeG1pdF90aW1lb3V0X21zKHEpOwotCQlpZiAodGltZWRvdXRfbXMpIHsKJiM0MzsJcSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmRldiwgdHhxdWV1ZSk7CiYjNDM7CXRpbWVkb3V0X21zID0gbmV0aWZfeG1pdF90aW1lb3V0X21zKHEpOwomIzQzOwlpZiAodGltZWRvdXRfbXMpIHsKICNpZmRlZiBDT05GSUdfQlFMCi0JCQlzdHJ1Y3QgZHFsICpkcWwgPSAmYW1wO3EtJmd0O2RxbDsKJiM0MzsJCXN0cnVjdCBkcWwgKmRxbCA9ICZhbXA7cS0mZ3Q7ZHFsOwogCi0JCQluZXRkZXZfaW5mbyhuZGV2LCAmIzM0O0RRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxuJiMzNDssCi0JCQkJICAgIGRxbC0mZ3Q7bGFzdF9vYmpfY250LCBkcWwtJmd0O251bV9xdWV1ZWQsCi0JCQkJICAgIGRxbC0mZ3Q7YWRqX2xpbWl0LCBkcWwtJmd0O251bV9jb21wbGV0ZWQpOwomIzQzOwkJbmV0ZGV2X2luZm8obmRldiwgJiMzNDtEUUwgaW5mbyBsYXN0X2NudDogJXUsIHF1ZXVlZDogJXUsIGFkal9saW1pdDogJXUsIGNvbXBsZXRlZDogJXVcbiYjMzQ7LAomIzQzOwkJCSAgICBkcWwtJmd0O2xhc3Rfb2JqX2NudCwgZHFsLSZndDtudW1fcXVldWVkLAomIzQzOwkJCSAgICBkcWwtJmd0O2Fkal9saW1pdCwgZHFsLSZndDtudW1fY29tcGxldGVkKTsKICNlbmRpZgotCQkJbmV0ZGV2X2luZm8obmRldiwgJiMzNDtxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxuJiMzNDssCi0JCQkJICAgIHEtJmd0O3N0YXRlLCB0aW1lZG91dF9tcyk7Ci0JCQlicmVhazsKLQkJfQomIzQzOwkJbmV0ZGV2X2luZm8obmRldiwgJiMzNDtxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxuJiMzNDssCiYjNDM7CQkJICAgIHEtJmd0O3N0YXRlLCB0aW1lZG91dF9tcyk7CiYjNDM7CQlyZXR1cm4gdHJ1ZTsKIAl9CiAKLQlyZXR1cm4gaTsKJiM0MzsJcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgdm9pZCBobnMzX2R1bXBfcXVldWVfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsCkBAIC0yOTAwLDE1ICYjNDM7Mjg5NiwxNSBAQCBzdGF0aWMgdm9pZCBobnMzX2R1bXBfcXVldWVfcmVnKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LAogCQkJCSAgICAgIEhOUzNfUklOR19UWF9SSU5HX0VCRF9PRkZTRVRfUkVHKSk7CiB9CiAKLXN0YXRpYyBib29sIGhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpCiYjNDM7c3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwKJiM0MzsJCQkJCSB1bnNpZ25lZCBpbnQgdHhxdWV1ZSkKIHsKIAlzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5kZXYpOwogCXN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7CiAJc3RydWN0IGhuczNfZW5ldF9yaW5nICp0eF9yaW5nOwotCXUzMiB0aW1lb3V0X3F1ZXVlOwogCi0JdGltZW91dF9xdWV1ZSA9IGhuczNfZ2V0X3RpbWVvdXRfcXVldWUobmRldik7Ci0JaWYgKHRpbWVvdXRfcXVldWUgJmd0Oz0gbmRldi0mZ3Q7bnVtX3R4X3F1ZXVlcykgewomIzQzOwlpZiAodHhxdWV1ZSAmZ3Q7PSBoLSZndDtraW5mby5udW1fdHFwcyB8fAomIzQzOwkgICAgIWhuczNfZHVtcF90aW1lb3V0X3F1ZXVlKG5kZXYsIHR4cXVldWUpKSB7CiAJCW5ldGRldl9pbmZvKG5kZXYsCiAJCQkgICAgJiMzNDtubyBuZXRkZXYgVFggdGltZW91dCBxdWV1ZSBmb3VuZCwgdGltZW91dCBjb3VudDogJWxsdVxuJiMzNDssCiAJCQkgICAgcHJpdi0mZ3Q7dHhfdGltZW91dF9jb3VudCk7CkBAIC0yOTE3LDggJiM0MzsyOTEzLDggQEAgc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldikKIAogCXByaXYtJmd0O3R4X3RpbWVvdXRfY291bnQmIzQzOyYjNDM7OwogCi0JdHhfcmluZyA9ICZhbXA7cHJpdi0mZ3Q7cmluZ1t0aW1lb3V0X3F1ZXVlXTsKLQlobnMzX2R1bXBfcXVldWVfc3RhdHMobmRldiwgdHhfcmluZywgdGltZW91dF9xdWV1ZSk7CiYjNDM7CXR4X3JpbmcgPSAmYW1wO3ByaXYtJmd0O3JpbmdbdHhxdWV1ZV07CiYjNDM7CWhuczNfZHVtcF9xdWV1ZV9zdGF0cyhuZGV2LCB0eF9yaW5nLCB0eHF1ZXVlKTsKIAogCS8qIFdoZW4gbWFjIHJlY2VpdmVkIG1hbnkgcGF1c2UgZnJhbWVzIGNvbnRpbnVvdXMsIGl0JiMzOTtzIHVuYWJsZSB0byBzZW5kCiAJICogcGFja2V0cywgd2hpY2ggbWF5IGNhdXNlIHR4IHRpbWVvdXQKQEAgLTI5NDEsNyAmIzQzOzI5MzcsNyBAQCBzdGF0aWMgdm9pZCBobnMzX25pY19uZXRfdGltZW91dChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgdW5zaWduZWQgaW50IHR4cXVldWUpCiAJc3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZGV2KTsKIAlzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gcHJpdi0mZ3Q7YWVfaGFuZGxlOwogCi0JaWYgKCFobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKG5kZXYpKQomIzQzOwlpZiAoIWhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8obmRldiwgdHhxdWV1ZSkpCiAJCXJldHVybjsKIAogCS8qIHJlcXVlc3QgdGhlIHJlc2V0LCBhbmQgbGV0IHRoZSBoY2xnZSB0byBkZXRlcm1pbmUKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuYwppbmRleCBkYWMwNTFlNzk4ZGEyLi42MDkzYTYwZDI1N2IxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfZXJyLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jCkBAIC0xNTkyLDYgJiM0MzsxNTkyLDcgQEAgaGNsZ2VfcXVlcnlfcmVnX2luZm8oc3RydWN0IGhjbGdlX2RldiAqaGRldiwKIAl9CiAKIAlrZnJlZShtc2ctJmd0O2Rlc2MpOwomIzQzOwltc2ctJmd0O2Rlc2MgPSBOVUxMOwogfQogCiBzdGF0aWMgdm9pZCBoY2xnZV9xdWVyeV9yZWdfaW5mb19vZl9zc3Uoc3RydWN0IGhjbGdlX2RldiAqaGRldikKQEAgLTE3NjEsNyAmIzQzOzE3NjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGhjbGdlX2h3X3R5cGVfaWQgaGNsZ2VfaHdfdHlwZV9pZF9zdFtdID0gewogCX0sCiB9OwogCi1zdGF0aWMgdm9pZCBoY2xnZV9sb2dfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICpyZWcsCiYjNDM7c3RhdGljIHZvaWQgaGNsZ2VfbG9nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqcmVnLAogCQkJICAgIGNvbnN0IHN0cnVjdCBoY2xnZV9od19lcnJvciAqZXJyLAogCQkJICAgIHUzMiBlcnJfc3RzLCB1bnNpZ25lZCBsb25nICpyZXNldF9yZXF1ZXN0cykKIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTI6MTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU5OAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDc1NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipQYXRjaCBFdmFsdWF0aW9uOiBITlMzIERyaXZlciBDaGFuZ2VzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHdlIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggd2FycmFudHMgZnV6emluZywgc3BlY2lmaWNhbGx5IGlmIGl0IGludHJvZHVjZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwmIzM5O3MgbmV0d29yayBiZWhhdmlvci4gVGhlIHBhdGNoIHRvdWNoZXMgdHdvIGZpbGVzOiBgaG5zM19lbmV0LmNgIGFuZCBgaGNsZ2VfZXJyLmNgLCBib3RoIHdpdGhpbiB0aGUgYGhpc2lsaWNvbi9obnMzYCBkaXJlY3RvcnkuIFRoaXMgaXMgaW1tZWRpYXRlbHkgYSByZWQgZmxhZyDigJMgSGlTaWxpY29uIEhOUzMgaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIsIHdoaWNoIHN0cm9uZ2x5IHN1Z2dlc3RzIGl0ICp3b24mIzM5O3QqIGJlIHJlYWRpbHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LgoKTG9va2luZyBjbG9zZXIgYXQgdGhlIGNoYW5nZXMsIGluIGBobnMzX2VuZXQuY2AgaXQgbG9va3MgbGlrZSB3ZSYjMzk7dmUgZ290IG1vZGlmaWNhdGlvbnMgdG8gdGltZW91dCBoYW5kbGluZyB3aXRoIGBobnMzX2dldF90aW1lb3V0X3F1ZXVlYCBjaGFuZ2luZyB0byBgaG5zM19kdW1wX3RpbWVvdXRfcXVldWVgIGFuZCB0aGUgY29ycmVzcG9uZGluZyB1cGRhdGVzIHRvIGBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvYCBhbmQgYGhuczNfbmljX25ldF90aW1lb3V0YC4gVGhpcyBpbnZvbHZlcyBwYXNzaW5nIHRoZSBgdHhxdWV1ZWAgdG8gdmFyaW91cyBmdW5jdGlvbnMsIHdoaWNoIGlzIHJlbGV2YW50IHRvIHRoZSBgbmRvX3R4X3RpbWVvdXRgIGNhbGxiYWNrLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBjaGFuZ2VzIHRvIGhvdyB0aGUgZHJpdmVyIGhhbmRsZXMgdHJhbnNtaXQgdGltZW91dHMuCgpJbiBgaGNsZ2VfZXJyLmNgLCB0aGVyZSYjMzk7cyBhIGNvcnJlY3Rpb24gaW4gYGhjbGdlX3F1ZXJ5X3JlZ19pbmZvYCB3aGVyZSBgbXNnLSZndDtkZXNjYCBpcyBiZWluZyBleHBsaWNpdGx5IHNldCB0byBgTlVMTGAgYWZ0ZXIgZnJlZWluZyBpdC4gQWxzbywgdGhlcmUmIzM5O3MgYSBzaW1wbGUgdHlwZSBjaGFuZ2UgZnJvbSBgY2hhciAqcmVnYCB0byBgY29uc3QgY2hhciAqcmVnYCBpbiBgaGNsZ2VfbG9nX2Vycm9yYC4gVGhpcyBhbGwgbG9va3MgbGlrZSBlcnJvciBoYW5kbGluZyBhbmQgbG9nZ2luZy4KCk5vdyB0aGUgY3J1Y2lhbCBxdWVzdGlvbjogaXMgdGhpcyB0ZXN0YWJsZSB3aXRoaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgd2hpY2ggaXMgcGFyYW1vdW50IGZvciBvdXIgZnV6emluZyBlZmZvcnRzPyBUaGUgZmFjdCB0aGF0IGl0JiMzOTtzIGEgZHJpdmVyIGZvciBhIEhpU2lsaWNvbiBwaHlzaWNhbCBuZXR3b3JrIGNhcmQgbWFrZXMgbWUgc3VzcGVjdCBub3QsIGFzIHRoZSBkb2N1bWVudGF0aW9uIHNwZWNpZmljYWxseSBzdGF0ZXMgdGhhdCBjb2RlIGluIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIChsaWtlIFNtYXJ0TklDcykgaXMgdW5yZWFjaGFibGUgaW4gUUVNVS4gVmlydHVhbCBkcml2ZXJzLCBsaWtlIHZpcnRpby1uZXQsIGFyZSBmaW5lLCBidXQgbm90IEhOUzMuCgpJIG5lZWQgdG8gY29uZmlybSB0aGlzLiBJJiMzOTtsbCBzZWFyY2ggdGhlIFFFTVUgc291cmNlIGp1c3QgaW4gY2FzZSwgYnV0IG15IGludHVpdGlvbiBzYXlzIHRoaXMgaXMgYSBoYXJkd2FyZS1kZXBlbmRlbnQgZHJpdmVyLiBUaGUgY2hhbmdlcyBhcmUgaW4gdGhlIHRpbWVvdXQgaGFuZGxlciBhbmQgZXJyb3IgbG9nZ2luZy4KCkdpdmVuIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmN5LCBJJiMzOTttIGxlYW5pbmcgdG93YXJkcyAqbm90KiBmdXp6aW5nIHRoaXMgcGF0Y2gsIHVubGVzcyBJIGNhbiBmaW5kIGFuIGV4Y2VwdGlvbi4gVGhlIGxvZ2ljIHNheXMgJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDsgVGhpcyAqZGVmaW5pdGVseSogc2VlbXMgbGlrZSBhIGNhc2Ugd2hlcmUgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZS4gSSBhbSBnb2luZyB0byB2ZXJpZnkgdGhpcyB3aXRoIHRvb2xzLiBJIG5lZWQgdG8gYmUgc3VyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMjoxODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtobnMzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgNDg1NCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL01ha2VmaWxlPTk9b2JqLSQoQ09ORklHX0hOUykgJiM0Mzs9IGhucy9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9NYWtlZmlsZToxMDpvYmotJChDT05GSUdfSE5TMykgJiM0Mzs9IGhuczMvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vTWFrZWZpbGUtMTEtb2JqLSQoQ09ORklHX0hJU0lfRkVNQUMpICYjNDM7PSBoaXNpX2ZlbWFjLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZT02PWNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjc6Y2NmbGFncy15ICYjNDM7PSAtSSQoc3JjdHJlZSkvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZTo4OmNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyY3RyZWUpL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczN2ZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6OTpjY2ZsYWdzLXkgJiM0Mzs9IC1JJChzcmN0cmVlKS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2NvbW1vblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZT0xMT1vYmotJChDT05GSUdfSE5TMykgJiM0Mzs9IGhuYWUzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTEyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6MTM6b2JqLSQoQ09ORklHX0hOUzNfRU5FVCkgJiM0Mzs9IGhuczMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6MTQ6aG5zMy1vYmpzID0gaG5zM19lbmV0Lm8gaG5zM19ldGh0b29sLm8gaG5zM19kZWJ1Z2ZzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6MTY6aG5zMy0kKENPTkZJR19ITlMzX0RDQikgJiM0Mzs9IGhuczNfZGNibmwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZT0xOD1vYmotJChDT05GSUdfSE5TM19IQ0xHRVZGKSAmIzQzOz0gaGNsZ2V2Zi5vIGhjbGdlLWNvbW1vbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZS0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjIwOmhjbGdlLWNvbW1vbi1vYmpzICYjNDM7PSBobnMzX2NvbW1vbi9oY2xnZV9jb21tX2NtZC5vIGhuczNfY29tbW9uL2hjbGdlX2NvbW1fcnNzLm8gaG5zM19jb21tb24vaGNsZ2VfY29tbV90cXBfc3RhdHMub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToyMjpoY2xnZXZmLW9ianMgPSBobnMzdmYvaGNsZ2V2Zl9tYWluLm8gaG5zM3ZmL2hjbGdldmZfbWJ4Lm8gIGhuczN2Zi9oY2xnZXZmX2RldmxpbmsubyBobnMzdmYvaGNsZ2V2Zl9yZWdzLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU9MjQ9b2JqLSQoQ09ORklHX0hOUzNfSENMR0UpICYjNDM7PSBoY2xnZS5vIGhjbGdlLWNvbW1vbi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToyNTpoY2xnZS1vYmpzID0gaG5zM3BmL2hjbGdlX21haW4ubyBobnMzcGYvaGNsZ2VfbWRpby5vIGhuczNwZi9oY2xnZV90bS5vIGhuczNwZi9oY2xnZV9yZWdzLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjI2Olx0XHRobnMzcGYvaGNsZ2VfbWJ4Lm8gaG5zM3BmL2hjbGdlX2Vyci5vICBobnMzcGYvaGNsZ2VfZGVidWdmcy5vIGhuczNwZi9oY2xnZV9wdHAubyBobnMzcGYvaGNsZ2VfZGV2bGluay5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToyNzpcdFx0aG5zM3BmL2hjbGdlX2ZkLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6Mjk6aGNsZ2UtJChDT05GSUdfSE5TM19EQ0IpICYjNDM7PSBobnMzcGYvaGNsZ2VfZGNiLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oPTE5OD1zdHJ1Y3QgaG5hZTNfcXVldWUge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmgtMjA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaDoyMDk6c3RydWN0IGhuczNfbWFjX3N0YXRzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmgtMjEwLVx0dTY0IHR4X3BhdXNlX2NudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oPTYxMD1zdHJ1Y3QgaG5hZTNfYWVfb3BzIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oLTY4OS1cdHZvaWQgKCpnZXRfbWFjX3N0YXRzKShzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oOjY5MDpcdFx0XHQgICAgICBzdHJ1Y3QgaG5zM19tYWNfc3RhdHMgKm1hY19zdGF0cyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oLTY5MS1cdHZvaWQgKCpnZXRfc3RyaW5ncykoc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy00LSNpbmNsdWRlIFwmIzM0O2huYWUzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo1OiNpbmNsdWRlIFwmIzM0O2huczNfZW5ldC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo3OnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX2dldGV0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGllZWVfZXRzICpldHMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6OTpcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTE6XHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyLVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoyMDpzdGF0aWMgaW50IGhuczNfZGNibmxfaWVlZV9zZXRldHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBpZWVlX2V0cyAqZXRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTIxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoyMjpcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MjQ6XHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTI1LVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0zMi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzozMzpzdGF0aWMgaW50IGhuczNfZGNibmxfaWVlZV9nZXRwZmMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBpZWVlX3BmYyAqcGZjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTM0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzozNTpcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMzYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6Mzc6XHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTM4LVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy00NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo0NjpzdGF0aWMgaW50IGhuczNfZGNibmxfaWVlZV9zZXRwZmMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBpZWVlX3BmYyAqcGZjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTQ3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo0ODpcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NTA6XHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTUxLVx0XHRyZXR1cm4gLUVCVVNZO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy01OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo1OTpzdGF0aWMgaW50IGhuczNfZGNibmxfaWVlZV9zZXRhcHAoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHN0cnVjdCBkY2JfYXBwICphcHApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNjAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjYxOlx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy02Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo2MzpcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNjQtXHRcdHJldHVybiAtRUJVU1k7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjcyOnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX2RlbGFwcChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGRjYl9hcHAgKmFwcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NzQ6XHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5zM19nZXRfaGFuZGxlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTc1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjc2Olx0aWYgKGhuczNfbmljX3Jlc2V0dGluZyhuZGV2KSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03Ny1cdFx0cmV0dXJuIC1FQlVTWTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtODUtLyogRENCWCBjb25maWd1cmF0aW9uICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6ODY6c3RhdGljIHU4IGhuczNfZGNibmxfZ2V0ZGNieChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy04Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6ODg6XHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5zM19nZXRfaGFuZGxlKG5kZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTg5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy05Ni0vKiByZXR1cm4gMCBpZiBzdWNjZXNzZnVsLCBvdGhlcndpc2UgZmFpbCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjk3OnN0YXRpYyB1OCBobnMzX2RjYm5sX3NldGRjYngoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHU4IG1vZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtOTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjk5Olx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMDAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMDc6c3RhdGljIGNvbnN0IHN0cnVjdCBkY2JubF9ydG5sX29wcyBobnMzX2RjYm5sX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMDg6XHQuaWVlZV9nZXRldHNcdD0gaG5zM19kY2JubF9pZWVlX2dldGV0cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMDk6XHQuaWVlZV9zZXRldHNcdD0gaG5zM19kY2JubF9pZWVlX3NldGV0cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMTA6XHQuaWVlZV9nZXRwZmNcdD0gaG5zM19kY2JubF9pZWVlX2dldHBmYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMTE6XHQuaWVlZV9zZXRwZmNcdD0gaG5zM19kY2JubF9pZWVlX3NldHBmYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMTI6XHQuaWVlZV9zZXRhcHAgICAgPSBobnMzX2RjYm5sX2llZWVfc2V0YXBwLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExMzpcdC5pZWVlX2RlbGFwcCAgICA9IGhuczNfZGNibmxfaWVlZV9kZWxhcHAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTE0Olx0LmdldGRjYnhcdD0gaG5zM19kY2JubF9nZXRkY2J4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExNTpcdC5zZXRkY2J4XHQ9IGhuczNfZGNibmxfc2V0ZGNieCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMTYtfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTIxLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjEyMjp2b2lkIGhuczNfZGNibmxfc2V0dXAoc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMjk6XHRkZXYtXHUwMDNlZGNibmxfb3BzID0gXHUwMDI2aG5zM19kY2JubF9vcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTMwLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy05LSNpbmNsdWRlIFwmIzM0O2huYWUzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjEwOiNpbmNsdWRlIFwmIzM0O2huczNfZGVidWdmcy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMTojaW5jbHVkZSBcJiMzNDtobnMzX2VuZXQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMzpzdGF0aWMgc3RydWN0IGRlbnRyeSAqaG5zM19kYmdmc19yb290O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxNTpzdGF0aWMgc3RydWN0IGhuczNfZGJnX2RlbnRyeV9pbmZvIGhuczNfZGJnX2RlbnRyeVtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTYtXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0MzpzdGF0aWMgaW50IGhuczNfZGJnX2JkX2ZpbGVfaW5pdChzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIHUzMiBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDQ6c3RhdGljIGludCBobnMzX2RiZ19jb21tb25faW5pdF90MShzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIHUzMiBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDU6c3RhdGljIGludCBobnMzX2RiZ19jb21tb25faW5pdF90MihzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIHUzMiBjbWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NzpzdGF0aWMgc3RydWN0IGhuczNfZGJnX2NtZF9pbmZvIGhuczNfZGJnX2NtZFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDgtXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTEtXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTUzLVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01Ny1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU4Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTktXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjktXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTcxLVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03NS1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc2Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzctXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODI6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04My1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODctXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4ODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg5LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy05My1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjk0Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtOTUtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTk5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTAwOlx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTAxLVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMDUtXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMDY6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMDctXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTExMS1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjExMjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTExMy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTE3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjExODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTExOS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTIzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RYX0JELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTI0Olx0XHQuaW5pdCA9IGhuczNfZGJnX2JkX2ZpbGVfaW5pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEyNS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTI5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JYX0JELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTMwOlx0XHQuaW5pdCA9IGhuczNfZGJnX2JkX2ZpbGVfaW5pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEzMS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTM1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX01BQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjEzNjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEzNy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX01BQyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE0MjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE0My1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQ3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE0ODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE0OS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTUzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE1NDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE1NS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTU5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE2MDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE2MS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTY1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE2NjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE2Ny1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTcxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE3MjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE3My1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTc3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE3ODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE3OS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTgzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE4NDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE4NS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTg5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE5MDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE5MS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTk1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjE5NjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTE5Ny1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjAxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIwMjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIwMy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjA3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIwODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIwOS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjEzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIxNDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIxNS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjE5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIyMDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIyMS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjI1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIyNjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIyNy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjMxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIzMjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIzMy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjM3LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjIzODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTIzOS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjQzLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI0NDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI0NS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjQ5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1JFRyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI1MDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI1MS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjU1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1FVRVVFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjU2Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjU3LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNjEtXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfUVVFVUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyNjI6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNjMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI2Ny1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9RVUVVRSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI2ODpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI2OS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjczLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0ZELFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Mjc0Olx0XHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjc1LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNzktXHRcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfRkQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyODA6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yODEtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI4NS1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyODY6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yODctXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI5MS1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyOTI6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yOTMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI5Ny1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyOTg6XHRcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yOTktXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMwMy1cdFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9GRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjMwNDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMwNS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzA5LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjMxMDpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMxMS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzE1LVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjMxNjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMxNy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzIxLVx0XHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0NPTU1PTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjMyMjpcdFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTMyMy1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzI2OnN0YXRpYyBzdHJ1Y3QgaG5zM19kYmdfY2FwX2luZm8gaG5zM19kYmdfY2FwW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMjctXHR7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM9MzkwPWRpbV90dW5lX3N0YXRfc3RyW10gPSB7IFwmIzM0O09OX1RPUFwmIzM0OywgXCYjMzQ7VElSRURcJiMzNDssIFwmIzM0O1JJR0hUXCYjMzQ7LCBcJiMzNDtMRUZUXCYjMzQ7IH07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zOTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzozOTI6c3RhdGljIHZvaWQgaG5zM19nZXRfY29hbF9pbmZvKHN0cnVjdCBobnMzX2VuZXRfdHFwX3ZlY3RvciAqdHFwX3ZlY3RvcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTM5My1cdFx0XHQgICAgICAgc3RydWN0IHNlcV9maWxlICpzLCBpbnQgaSwgYm9vbCBpc190eClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zOTUtXHR1bnNpZ25lZCBpbnQgZ2xfb2Zmc2V0LCBxbF9vZmZzZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzozOTY6XHRzdHJ1Y3QgaG5zM19lbmV0X2NvYWxlc2NlICpjb2FsO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzk3LVx0dW5zaWduZWQgaW50IHJlZ192YWw7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDM2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDM3OnN0YXRpYyB2b2lkIGhuczNfZHVtcF9jb2FsX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCBib29sIGlzX3R4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDM4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQzOS1cdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobmFlM19zZXFfZmlsZV90b19oYW5kbGUocyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NDA6XHRzdHJ1Y3QgaG5zM19lbmV0X3RxcF92ZWN0b3IgKnRxcF92ZWN0b3I7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NDE6XHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IGgtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ0Mi1cdHVuc2lnbmVkIGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ1MS1cdFx0dHFwX3ZlY3RvciA9IFx1MDAyNnByaXYtXHUwMDNldHFwX3ZlY3RvcltpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ1MjpcdFx0aG5zM19nZXRfY29hbF9pbmZvKHRxcF92ZWN0b3IsIHMsIGksIGlzX3R4KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ1My1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NTY6c3RhdGljIGludCBobnMzX2RiZ19jb2FsX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDU3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ1ODpcdGhuczNfZHVtcF9jb2FsX2luZm8ocywgdHJ1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTktXHRzZXFfcHV0cyhzLCBcJiMzNDtcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDYwOlx0aG5zM19kdW1wX2NvYWxfaW5mbyhzLCBmYWxzZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NjEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDY1OnN0YXRpYyB2b2lkIGhuczNfZHVtcF9yeF9xdWV1ZV9pbmZvKHN0cnVjdCBobnMzX2VuZXRfcmluZyAqcmluZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ2Ni1cdFx0XHRcdCAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00OTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MDA6c3RhdGljIGludCBobnMzX2RiZ19yeF9xdWV1ZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTUwMS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MDItXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5hZTNfc2VxX2ZpbGVfdG9faGFuZGxlKHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTAzOlx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MDQ6XHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MDUtXHR1MzIgaTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MjQtXHRcdHJpbmcgPSBcdTAwMjZwcml2LVx1MDAzZXJpbmdbKHUzMikoaSAmIzQzOyBoLVx1MDAzZWtpbmZvLm51bV90cXBzKV07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MjU6XHRcdGhuczNfZHVtcF9yeF9xdWV1ZV9pbmZvKHJpbmcsIHMsIGkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTI2LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTUzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUzMTpzdGF0aWMgdm9pZCBobnMzX2R1bXBfdHhfcXVldWVfaW5mbyhzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MzItXHRcdFx0XHQgICAgc3RydWN0IHNlcV9maWxlICpzLCB1MzIgaW5kZXgpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTY1OnN0YXRpYyBpbnQgaG5zM19kYmdfdHhfcXVldWVfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01NjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTY3LVx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuYWUzX3NlcV9maWxlX3RvX2hhbmRsZShzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU2ODpcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTY5Olx0c3RydWN0IGhuczNfZW5ldF9yaW5nICpyaW5nO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTcwLVx0dTMyIGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTg5LVx0XHRyaW5nID0gXHUwMDI2cHJpdi1cdTAwM2VyaW5nW2ldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTkwOlx0XHRobnMzX2R1bXBfdHhfcXVldWVfaW5mbyhyaW5nLCBzLCBpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU5MS1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01OTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1OTY6c3RhdGljIGludCBobnMzX2RiZ19xdWV1ZV9tYXAoc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpkYXRhKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTk3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU5OC1cdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobmFlM19zZXFfZmlsZV90b19oYW5kbGUocyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1OTk6XHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IGgtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYwMC1cdHUzMiBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYxNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjYxODpzdGF0aWMgdm9pZCBobnMzX2R1bXBfcnhfYmRfaW5mbyhzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjYxOTpcdFx0XHRcdCBzdHJ1Y3QgaG5zM19kZXNjICpkZXNjLCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02MjAtXHRcdFx0XHQgaW50IGlkeClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2NDM6c3RhdGljIGludCBobnMzX2RiZ19yeF9iZF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcHJpdmF0ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY0NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2NDU6XHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YSA9IHMtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY0Ni1cdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBkYXRhLVx1MDAzZWhhbmRsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY0NzpcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ4Olx0c3RydWN0IGhuczNfZW5ldF9yaW5nICpyaW5nO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ5Olx0c3RydWN0IGhuczNfZGVzYyAqZGVzYztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY1MC1cdHVuc2lnbmVkIGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY2NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY2NjpcdFx0aG5zM19kdW1wX3J4X2JkX2luZm8ocHJpdiwgZGVzYywgcywgaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NjctXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjcxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjcyOnN0YXRpYyB2b2lkIGhuczNfZHVtcF90eF9iZF9pbmZvKHN0cnVjdCBobnMzX2Rlc2MgKmRlc2MsIHN0cnVjdCBzZXFfZmlsZSAqcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY3My1cdFx0XHRcdCBpbnQgaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY4ODpzdGF0aWMgaW50IGhuczNfZGJnX3R4X2JkX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwcml2YXRlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjg5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY5MDpcdHN0cnVjdCBobnMzX2RiZ19kYXRhICpkYXRhID0gcy1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjkxLVx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGRhdGEtXHUwMDNlaGFuZGxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjkyOlx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2OTM6XHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2OTQ6XHRzdHJ1Y3QgaG5zM19kZXNjICpkZXNjO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjk1LVx0dW5zaWduZWQgaW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NzExOlx0XHRobnMzX2R1bXBfdHhfYmRfaW5mbyhkZXNjLCBzLCBpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTcxMi1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MTc6c3RhdGljIHZvaWQgaG5zM19kYmdfZGV2X2NhcHMoc3RydWN0IGhuYWUzX2hhbmRsZSAqaCwgc3RydWN0IHNlcV9maWxlICpzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzE4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcxOTpcdHN0cnVjdCBobmFlM19hZV9kZXYgKmFlX2RldiA9IGhuczNfZ2V0X2FlX2RldihoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTcyMC1cdHVuc2lnbmVkIGxvbmcgKmNhcHMgPSBhZV9kZXYtXHUwMDNlY2Fwcztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MjQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MjU6XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBUlJBWV9TSVpFKGhuczNfZGJnX2NhcCk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MjY6XHRcdHN0YXRlID0gdGVzdF9iaXQoaG5zM19kYmdfY2FwW2ldLmNhcF9iaXQsIGNhcHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NzI3Olx0XHRzZXFfcHJpbnRmKHMsIFwmIzM0OyVzOiAlc1xcblwmIzM0OywgaG5zM19kYmdfY2FwW2ldLm5hbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MjgtXHRcdFx0ICAgc3RyX3llc19ubyhzdGF0ZSkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTczMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjczNDpzdGF0aWMgdm9pZCBobnMzX2RiZ19kZXZfc3BlY3Moc3RydWN0IGhuYWUzX2hhbmRsZSAqaCwgc3RydWN0IHNlcV9maWxlICpzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzM1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03NjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3Njk6c3RhdGljIGludCBobnMzX2RiZ19kZXZfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03NzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc3MzpcdGhuczNfZGJnX2Rldl9jYXBzKGgsIHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Nzc0Olx0aG5zM19kYmdfZGV2X3NwZWNzKGgsIHMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzc1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc3OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc3OTpzdGF0aWMgdm9pZCBobnMzX2R1bXBfcGFnZV9wb29sX2luZm8oc3RydWN0IGhuczNfZW5ldF9yaW5nICpyaW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzgwLVx0XHRcdFx0ICAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03OTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3OTI6c3RhdGljIGludCBobnMzX2RiZ19wYWdlX3Bvb2xfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03OTMte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzk0LVx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuYWUzX3NlcV9maWxlX3RvX2hhbmRsZShzKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc5NTpcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Nzk2Olx0c3RydWN0IGhuczNfZW5ldF9yaW5nICpyaW5nO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzk3LVx0dTMyIGk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODE3LVx0XHRyaW5nID0gXHUwMDI2cHJpdi1cdTAwM2VyaW5nWyh1MzIpKGkgJiM0MzsgaC1cdTAwM2VraW5mby5udW1fdHFwcyldO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODE4Olx0XHRobnMzX2R1bXBfcGFnZV9wb29sX2luZm8ocmluZywgcywgaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MTktXHR9XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODI0OnN0YXRpYyBpbnQgaG5zM19kYmdfYmRfaW5mb19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcHJpdmF0ZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgyNS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4MjY6XHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YSA9IHMtXHUwMDNlcHJpdmF0ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgyNy1cdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBkYXRhLVx1MDAzZWhhbmRsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjgyODpcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODI5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgzNC1cdGlmIChkYXRhLVx1MDAzZWNtZCA9PSBITkFFM19EQkdfQ01EX1RYX0JEKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODM1Olx0XHRyZXR1cm4gaG5zM19kYmdfdHhfYmRfaW5mbyhzLCBwcml2YXRlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgzNi1cdGVsc2UgaWYgKGRhdGEtXHUwMDNlY21kID09IEhOQUUzX0RCR19DTURfUlhfQkQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4Mzc6XHRcdHJldHVybiBobnMzX2RiZ19yeF9iZF9pbmZvKHMsIHByaXZhdGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODM4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg0MC19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4NDE6REVGSU5FX1NIT1dfQVRUUklCVVRFKGhuczNfZGJnX2JkX2luZm8pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODQzOnN0YXRpYyBpbnQgaG5zM19kYmdfYmRfZmlsZV9pbml0KHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSwgdTMyIGNtZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg0NC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4NDU6XHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg0Ni1cdHN0cnVjdCBkZW50cnkgKmVudHJ5X2Rpcjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04NDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4NTA6XHRlbnRyeV9kaXIgPSBobnMzX2RiZ19kZW50cnlbaG5zM19kYmdfY21kW2NtZF0uZGVudHJ5XS5kZW50cnk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4NTE6XHRtYXhfcXVldWVfbnVtID0gaG5zM19nZXRfbWF4X2F2YWlsYWJsZV9jaGFubmVscyhoYW5kbGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODUyLVx0ZGF0YSA9IGRldm1fa2NhbGxvYyhcdTAwMjZoYW5kbGUtXHUwMDNlcGRldi1cdTAwM2VkZXYsIG1heF9xdWV1ZV9udW0sIHNpemVvZigqZGF0YSksXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAxMjoxODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTYzNgoJCQkJCQkJb3V0cHV0OiA4MwoJCQkJCQkJdGhvdWdodHM6IDU0NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIEhOUzMgRHJpdmVyKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoZSBITlMzIGRyaXZlciBpcyBpbnRyaW5zaWNhbGx5IHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEkgbmVlZCB0byBjb25maXJtIGlmIHRoZXJlJiMzOTtzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0IGluIGVpdGhlciB0aGUga2VybmVsIGl0c2VsZiBvciB3aXRoaW4gUUVNVS4gRG91YmxlLWNoZWNraW5nLCBJIGZpbmQgbm8gc29mdHdhcmUgZW11bGF0aW9uIG9mIEhOUzMgaW4gdGhlIGtlcm5lbCwgYW5kIG5vdGhpbmcgaW4gUUVNVSBlaXRoZXIuCgpXYWl0LCB0aGUgcXVlc3Rpb24gaXMsIGNvdWxkIHRoaXMgY29kZSAqZXZlciogYmUgcmVhY2hlZCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBUaGUgcXVpY2sgYW5zd2VyIGlzIG5vLCBpdCAqZGVtYW5kcyogcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcy4gVGhhdCYjMzk7cyB0aGUgY3J1eCBvZiBpdC4KCk5vdywgbGV0JiMzOTtzIGNpcmNsZSBiYWNrIHRvIHRoZSBwcm9tcHQsIHdoaWNoIGV4cGxpY2l0bHkgc3RhdGVzICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczogLi4uIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OyBITlMzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDIGRyaXZlciwgbWVhbmluZyBpdCBwZXJmZWN0bHkgZml0cyB0aGF0IGNhdGVnb3J5LiBUaGVyZWZvcmUsIGJhc2VkIG9uIHRoZSByZXF1aXJlbWVudHMgb2YgdGhlIHByb21wdCwgdGhlIGNvcnJlY3QgYW5zd2VyIGlzIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKSG93ZXZlciwgSSYjMzk7bSBnb2luZyB0byB0YWtlIGEgbW9tZW50IHRvIGRvdWJsZSBjaGVjay4gVGhlIGBoY2xnZXZmYCBkcml2ZXIgaXMgdGhlIFZGIGRyaXZlciBmb3IgSE5TMy4gVGhlIFZGIChWaXJ0dWFsIEZ1bmN0aW9uKSBkcml2ZXJzIGFyZSB1c2VkIGluIHZpcnR1YWwgbWFjaGluZXMgdXNpbmcgU1ItSU9WLiBJdCYjMzk7cyB0aGVvcmV0aWNhbGx5IHBvc3NpYmxlIHRoYXQgYSBWTSBjb3VsZCBoYXZlIGEgVkYgcGFzc2VkIHRocm91Z2ggdG8gaXQsIG1lYW5pbmcgdGhhdCB0aGUgZHJpdmVyIGlzIGluZGVlZCBhY3RpdmUgd2l0aGluIHRoZSBWTS4gSG93ZXZlciwgKnRoYXQqIHN0aWxsIHJlcXVpcmVzIHRoZSAqcGh5c2ljYWwqIGhhcmR3YXJlIHRvIGJlIHByZXNlbnQgb24gdGhlIGhvc3QgYW5kIHBhc3NlZCB0aHJvdWdoLCBpdCYjMzk7cyBub3QgJiMzNDtzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSYjMzQ7LiBUaGUgcHJvbXB0IGlzIHZlcnkgc3BlY2lmaWMgYWJvdXQgdGhpczogJiMzNDtDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4mIzM0OyBTbyB0aGF0IGFyZ3VtZW50IGlzIGludmFsaWQuIFRoZSBvdGhlciBzdGlwdWxhdGlvbiwgJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0OyBhbHNvIGFwcGxpZXMuCgpUaHVzLCBzeXprYWxsZXIgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50IHdvbiYjMzk7dCBmdXp6IEhOUzMgYmVjYXVzZSB0aGVyZSYjMzk7cyBubyBlbXVsYXRlZCBITlMzIGRldmljZS4gRmluYWwgZGVjaXNpb246IGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKSSB3YW50IHRvIHF1aWNrbHkgcmV2aWV3IHRoZSBwYXRjaCBpdHNlbGYgZm9yIGEgc2FuaXR5IGNoZWNrLiBJdCB0b3VjaGVzIGBobnMzX2VuZXQuY2AgYW5kIGBoY2xnZV9lcnIuY2AuIEJvdGggb2YgdGhvc2UgYXJlIHNxdWFyZWx5IHdpdGhpbiB0aGUgYGhpc2lsaWNvbi9obnMzYCBkcml2ZXIgaXRzZWxmLiBUaGVzZSBhcmUgbm90IGNvcmUga2VybmVsIGNoYW5nZXMsIHNvIHRoZSBtb2RpZmljYXRpb25zIGFyZSBjb25maW5lZCB0byB0aGF0IGRyaXZlci4KClNvLCBzZXR0aW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlzIHRoZSByaWdodCBjYWxsIGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMTI6MTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDEyOjE4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMjoxODoyOC45NzkwMzAwMzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjM2MTYwMTEwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgbW9kaWZpZXMgdGhlIEhpU2lsaWNvbiBITlMzIG5ldHdvcmsgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIHBoeXNpY2FsIFBDSWUgbmV0d29yayBjYXJkcy4gVGhpcyBoYXJkd2FyZSBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIG1ha2luZyB0aGUgY29kZSB1bnJlYWNoYWJsZSBkdXJpbmcgc3RhbmRhcmQgdmlydHVhbGl6YXRpb24tYmFzZWQgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEyOjE4OjI4Ljk3OTAzODAzOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIxMzU2MTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMTZjNWVkMDVjOWNlNGY5NTA4OWE2NTExNGJhZjNjNmU2YmVhMGQzN1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEF1ZyA3IDEyOjE4OjI3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcXG5pbmRleCA2ZWNiMzJlMjhlNzlhLi40Nzc4OGJlNjRiZTY4IDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZW5ldC5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcXG5AQCAtMjgyNSwzMiArMjgyNSwyOCBAQCBzdGF0aWMgaW50IGhuczNfbmljX2NoYW5nZV9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgaW50IG5ld19tdHUpXFxuIFxcdHJldHVybiByZXQ7XFxuIH1cXG4gXFxuLXN0YXRpYyBpbnQgaG5zM19nZXRfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4rc3RhdGljIGJvb2wgaG5zM19kdW1wX3RpbWVvdXRfcXVldWUoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuK1xcdFxcdFxcdFxcdCAgICB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcXG4ge1xcbi1cXHR1bnNpZ25lZCBpbnQgaTtcXG4tXFxuLVxcdC8qIEZpbmQgdGhlIHN0b3BwZWQgcXVldWUgdGhlIHNhbWUgd2F5IHRoZSBzdGFjayBkb2VzICovXFxuLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBuZGV2LVxcdTAwM2VudW1fdHhfcXVldWVzOyBpKyspIHtcXG4tXFx0XFx0dW5zaWduZWQgaW50IHRpbWVkb3V0X21zO1xcbi1cXHRcXHRzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpxO1xcbitcXHR1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7XFxuK1xcdHN0cnVjdCBuZXRkZXZfcXVldWUgKnE7XFxuIFxcbi1cXHRcXHRxID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCBpKTtcXG4tXFx0XFx0dGltZWRvdXRfbXMgPSBuZXRpZl94bWl0X3RpbWVvdXRfbXMocSk7XFxuLVxcdFxcdGlmICh0aW1lZG91dF9tcykge1xcbitcXHRxID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCB0eHF1ZXVlKTtcXG4rXFx0dGltZWRvdXRfbXMgPSBuZXRpZl94bWl0X3RpbWVvdXRfbXMocSk7XFxuK1xcdGlmICh0aW1lZG91dF9tcykge1xcbiAjaWZkZWYgQ09ORklHX0JRTFxcbi1cXHRcXHRcXHRzdHJ1Y3QgZHFsICpkcWwgPSBcXHUwMDI2cS1cXHUwMDNlZHFsO1xcbitcXHRcXHRzdHJ1Y3QgZHFsICpkcWwgPSBcXHUwMDI2cS1cXHUwMDNlZHFsO1xcbiBcXG4tXFx0XFx0XFx0bmV0ZGV2X2luZm8obmRldiwgXFxcIkRRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxcXFxuXFxcIixcXG4tXFx0XFx0XFx0XFx0ICAgIGRxbC1cXHUwMDNlbGFzdF9vYmpfY250LCBkcWwtXFx1MDAzZW51bV9xdWV1ZWQsXFxuLVxcdFxcdFxcdFxcdCAgICBkcWwtXFx1MDAzZWFkal9saW1pdCwgZHFsLVxcdTAwM2VudW1fY29tcGxldGVkKTtcXG4rXFx0XFx0bmV0ZGV2X2luZm8obmRldiwgXFxcIkRRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICAgIGRxbC1cXHUwMDNlbGFzdF9vYmpfY250LCBkcWwtXFx1MDAzZW51bV9xdWV1ZWQsXFxuK1xcdFxcdFxcdCAgICBkcWwtXFx1MDAzZWFkal9saW1pdCwgZHFsLVxcdTAwM2VudW1fY29tcGxldGVkKTtcXG4gI2VuZGlmXFxuLVxcdFxcdFxcdG5ldGRldl9pbmZvKG5kZXYsIFxcXCJxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxcXFxuXFxcIixcXG4tXFx0XFx0XFx0XFx0ICAgIHEtXFx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XFxuLVxcdFxcdFxcdGJyZWFrO1xcbi1cXHRcXHR9XFxuK1xcdFxcdG5ldGRldl9pbmZvKG5kZXYsIFxcXCJxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxcXFxuXFxcIixcXG4rXFx0XFx0XFx0ICAgIHEtXFx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XFxuK1xcdFxcdHJldHVybiB0cnVlO1xcbiBcXHR9XFxuIFxcbi1cXHRyZXR1cm4gaTtcXG4rXFx0cmV0dXJuIGZhbHNlO1xcbiB9XFxuIFxcbiBzdGF0aWMgdm9pZCBobnMzX2R1bXBfcXVldWVfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXFxuQEAgLTI5MDAsMTUgKzI4OTYsMTUgQEAgc3RhdGljIHZvaWQgaG5zM19kdW1wX3F1ZXVlX3JlZyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4gXFx0XFx0XFx0XFx0ICAgICAgSE5TM19SSU5HX1RYX1JJTkdfRUJEX09GRlNFVF9SRUcpKTtcXG4gfVxcbiBcXG4tc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4rc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcXG4rXFx0XFx0XFx0XFx0XFx0IHVuc2lnbmVkIGludCB0eHF1ZXVlKVxcbiB7XFxuIFxcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYobmRldik7XFxuIFxcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XFxuIFxcdHN0cnVjdCBobnMzX2VuZXRfcmluZyAqdHhfcmluZztcXG4tXFx0dTMyIHRpbWVvdXRfcXVldWU7XFxuIFxcbi1cXHR0aW1lb3V0X3F1ZXVlID0gaG5zM19nZXRfdGltZW91dF9xdWV1ZShuZGV2KTtcXG4tXFx0aWYgKHRpbWVvdXRfcXVldWUgXFx1MDAzZT0gbmRldi1cXHUwMDNlbnVtX3R4X3F1ZXVlcykge1xcbitcXHRpZiAodHhxdWV1ZSBcXHUwMDNlPSBoLVxcdTAwM2VraW5mby5udW1fdHFwcyB8fFxcbitcXHQgICAgIWhuczNfZHVtcF90aW1lb3V0X3F1ZXVlKG5kZXYsIHR4cXVldWUpKSB7XFxuIFxcdFxcdG5ldGRldl9pbmZvKG5kZXYsXFxuIFxcdFxcdFxcdCAgICBcXFwibm8gbmV0ZGV2IFRYIHRpbWVvdXQgcXVldWUgZm91bmQsIHRpbWVvdXQgY291bnQ6ICVsbHVcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCAgICBwcml2LVxcdTAwM2V0eF90aW1lb3V0X2NvdW50KTtcXG5AQCAtMjkxNyw4ICsyOTEzLDggQEAgc3RhdGljIGJvb2wgaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4gXFxuIFxcdHByaXYtXFx1MDAzZXR4X3RpbWVvdXRfY291bnQrKztcXG4gXFxuLVxcdHR4X3JpbmcgPSBcXHUwMDI2cHJpdi1cXHUwMDNlcmluZ1t0aW1lb3V0X3F1ZXVlXTtcXG4tXFx0aG5zM19kdW1wX3F1ZXVlX3N0YXRzKG5kZXYsIHR4X3JpbmcsIHRpbWVvdXRfcXVldWUpO1xcbitcXHR0eF9yaW5nID0gXFx1MDAyNnByaXYtXFx1MDAzZXJpbmdbdHhxdWV1ZV07XFxuK1xcdGhuczNfZHVtcF9xdWV1ZV9zdGF0cyhuZGV2LCB0eF9yaW5nLCB0eHF1ZXVlKTtcXG4gXFxuIFxcdC8qIFdoZW4gbWFjIHJlY2VpdmVkIG1hbnkgcGF1c2UgZnJhbWVzIGNvbnRpbnVvdXMsIGl0J3MgdW5hYmxlIHRvIHNlbmRcXG4gXFx0ICogcGFja2V0cywgd2hpY2ggbWF5IGNhdXNlIHR4IHRpbWVvdXRcXG5AQCAtMjk0MSw3ICsyOTM3LDcgQEAgc3RhdGljIHZvaWQgaG5zM19uaWNfbmV0X3RpbWVvdXQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHVuc2lnbmVkIGludCB0eHF1ZXVlKVxcbiBcXHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5kZXYpO1xcbiBcXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gcHJpdi1cXHUwMDNlYWVfaGFuZGxlO1xcbiBcXG4tXFx0aWYgKCFobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKG5kZXYpKVxcbitcXHRpZiAoIWhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8obmRldiwgdHhxdWV1ZSkpXFxuIFxcdFxcdHJldHVybjtcXG4gXFxuIFxcdC8qIHJlcXVlc3QgdGhlIHJlc2V0LCBhbmQgbGV0IHRoZSBoY2xnZSB0byBkZXRlcm1pbmVcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jXFxuaW5kZXggZGFjMDUxZTc5OGRhMi4uNjA5M2E2MGQyNTdiMSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfZXJyLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGYvaGNsZ2VfZXJyLmNcXG5AQCAtMTU5Miw2ICsxNTkyLDcgQEAgaGNsZ2VfcXVlcnlfcmVnX2luZm8oc3RydWN0IGhjbGdlX2RldiAqaGRldixcXG4gXFx0fVxcbiBcXG4gXFx0a2ZyZWUobXNnLVxcdTAwM2VkZXNjKTtcXG4rXFx0bXNnLVxcdTAwM2VkZXNjID0gTlVMTDtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgaGNsZ2VfcXVlcnlfcmVnX2luZm9fb2Zfc3N1KHN0cnVjdCBoY2xnZV9kZXYgKmhkZXYpXFxuQEAgLTE3NjEsNyArMTc2Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaGNsZ2VfaHdfdHlwZV9pZCBoY2xnZV9od190eXBlX2lkX3N0W10gPSB7XFxuIFxcdH0sXFxuIH07XFxuIFxcbi1zdGF0aWMgdm9pZCBoY2xnZV9sb2dfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICpyZWcsXFxuK3N0YXRpYyB2b2lkIGhjbGdlX2xvZ19lcnJvcihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKnJlZyxcXG4gXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBoY2xnZV9od19lcnJvciAqZXJyLFxcbiBcXHRcXHRcXHQgICAgdTMyIGVycl9zdHMsIHVuc2lnbmVkIGxvbmcgKnJlc2V0X3JlcXVlc3RzKVxcbiB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEyOjE4OjI5LjUwMTQ2NTAxM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIxODM5MTUzNDQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAxNmM1ZWQwNWM5Y2U0Zjk1MDg5YTY1MTE0YmFmM2M2ZTZiZWEwZDM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgNyAxMjoxODoyNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZW5ldC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcbmluZGV4IDZlY2IzMmUyOGU3OWEuLjQ3Nzg4YmU2NGJlNjggMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2VuZXQuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19lbmV0LmNcbkBAIC0yODI1LDMyICsyODI1LDI4IEBAIHN0YXRpYyBpbnQgaG5zM19uaWNfY2hhbmdlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgbmV3X210dSlcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuLXN0YXRpYyBpbnQgaG5zM19nZXRfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcbitzdGF0aWMgYm9vbCBobnMzX2R1bXBfdGltZW91dF9xdWV1ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbitcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcbiB7XG4tXHR1bnNpZ25lZCBpbnQgaTtcbi1cbi1cdC8qIEZpbmQgdGhlIHN0b3BwZWQgcXVldWUgdGhlIHNhbWUgd2F5IHRoZSBzdGFjayBkb2VzICovXG4tXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBuZGV2LVx1MDAzZW51bV90eF9xdWV1ZXM7IGkrKykge1xuLVx0XHR1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7XG4tXHRcdHN0cnVjdCBuZXRkZXZfcXVldWUgKnE7XG4rXHR1bnNpZ25lZCBpbnQgdGltZWRvdXRfbXM7XG4rXHRzdHJ1Y3QgbmV0ZGV2X3F1ZXVlICpxO1xuIFxuLVx0XHRxID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCBpKTtcbi1cdFx0dGltZWRvdXRfbXMgPSBuZXRpZl94bWl0X3RpbWVvdXRfbXMocSk7XG4tXHRcdGlmICh0aW1lZG91dF9tcykge1xuK1x0cSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmRldiwgdHhxdWV1ZSk7XG4rXHR0aW1lZG91dF9tcyA9IG5ldGlmX3htaXRfdGltZW91dF9tcyhxKTtcbitcdGlmICh0aW1lZG91dF9tcykge1xuICNpZmRlZiBDT05GSUdfQlFMXG4tXHRcdFx0c3RydWN0IGRxbCAqZHFsID0gXHUwMDI2cS1cdTAwM2VkcWw7XG4rXHRcdHN0cnVjdCBkcWwgKmRxbCA9IFx1MDAyNnEtXHUwMDNlZHFsO1xuIFxuLVx0XHRcdG5ldGRldl9pbmZvKG5kZXYsIFwiRFFMIGluZm8gbGFzdF9jbnQ6ICV1LCBxdWV1ZWQ6ICV1LCBhZGpfbGltaXQ6ICV1LCBjb21wbGV0ZWQ6ICV1XFxuXCIsXG4tXHRcdFx0XHQgICAgZHFsLVx1MDAzZWxhc3Rfb2JqX2NudCwgZHFsLVx1MDAzZW51bV9xdWV1ZWQsXG4tXHRcdFx0XHQgICAgZHFsLVx1MDAzZWFkal9saW1pdCwgZHFsLVx1MDAzZW51bV9jb21wbGV0ZWQpO1xuK1x0XHRuZXRkZXZfaW5mbyhuZGV2LCBcIkRRTCBpbmZvIGxhc3RfY250OiAldSwgcXVldWVkOiAldSwgYWRqX2xpbWl0OiAldSwgY29tcGxldGVkOiAldVxcblwiLFxuK1x0XHRcdCAgICBkcWwtXHUwMDNlbGFzdF9vYmpfY250LCBkcWwtXHUwMDNlbnVtX3F1ZXVlZCxcbitcdFx0XHQgICAgZHFsLVx1MDAzZWFkal9saW1pdCwgZHFsLVx1MDAzZW51bV9jb21wbGV0ZWQpO1xuICNlbmRpZlxuLVx0XHRcdG5ldGRldl9pbmZvKG5kZXYsIFwicXVldWUgc3RhdGU6IDB4JWx4LCBkZWx0YSBtc2VjczogJXVcXG5cIixcbi1cdFx0XHRcdCAgICBxLVx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XG4tXHRcdFx0YnJlYWs7XG4tXHRcdH1cbitcdFx0bmV0ZGV2X2luZm8obmRldiwgXCJxdWV1ZSBzdGF0ZTogMHglbHgsIGRlbHRhIG1zZWNzOiAldVxcblwiLFxuK1x0XHRcdCAgICBxLVx1MDAzZXN0YXRlLCB0aW1lZG91dF9tcyk7XG4rXHRcdHJldHVybiB0cnVlO1xuIFx0fVxuIFxuLVx0cmV0dXJuIGk7XG4rXHRyZXR1cm4gZmFsc2U7XG4gfVxuIFxuIHN0YXRpYyB2b2lkIGhuczNfZHVtcF9xdWV1ZV9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldixcbkBAIC0yOTAwLDE1ICsyODk2LDE1IEBAIHN0YXRpYyB2b2lkIGhuczNfZHVtcF9xdWV1ZV9yZWcoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG4gXHRcdFx0XHQgICAgICBITlMzX1JJTkdfVFhfUklOR19FQkRfT0ZGU0VUX1JFRykpO1xuIH1cbiBcbi1zdGF0aWMgYm9vbCBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuK3N0YXRpYyBib29sIGhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm8oc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsXG4rXHRcdFx0XHRcdCB1bnNpZ25lZCBpbnQgdHhxdWV1ZSlcbiB7XG4gXHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KG5kZXYpO1xuIFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcbiBcdHN0cnVjdCBobnMzX2VuZXRfcmluZyAqdHhfcmluZztcbi1cdHUzMiB0aW1lb3V0X3F1ZXVlO1xuIFxuLVx0dGltZW91dF9xdWV1ZSA9IGhuczNfZ2V0X3RpbWVvdXRfcXVldWUobmRldik7XG4tXHRpZiAodGltZW91dF9xdWV1ZSBcdTAwM2U9IG5kZXYtXHUwMDNlbnVtX3R4X3F1ZXVlcykge1xuK1x0aWYgKHR4cXVldWUgXHUwMDNlPSBoLVx1MDAzZWtpbmZvLm51bV90cXBzIHx8XG4rXHQgICAgIWhuczNfZHVtcF90aW1lb3V0X3F1ZXVlKG5kZXYsIHR4cXVldWUpKSB7XG4gXHRcdG5ldGRldl9pbmZvKG5kZXYsXG4gXHRcdFx0ICAgIFwibm8gbmV0ZGV2IFRYIHRpbWVvdXQgcXVldWUgZm91bmQsIHRpbWVvdXQgY291bnQ6ICVsbHVcXG5cIixcbiBcdFx0XHQgICAgcHJpdi1cdTAwM2V0eF90aW1lb3V0X2NvdW50KTtcbkBAIC0yOTE3LDggKzI5MTMsOCBAQCBzdGF0aWMgYm9vbCBobnMzX2dldF90eF90aW1lb19xdWV1ZV9pbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxuIFxuIFx0cHJpdi1cdTAwM2V0eF90aW1lb3V0X2NvdW50Kys7XG4gXG4tXHR0eF9yaW5nID0gXHUwMDI2cHJpdi1cdTAwM2VyaW5nW3RpbWVvdXRfcXVldWVdO1xuLVx0aG5zM19kdW1wX3F1ZXVlX3N0YXRzKG5kZXYsIHR4X3JpbmcsIHRpbWVvdXRfcXVldWUpO1xuK1x0dHhfcmluZyA9IFx1MDAyNnByaXYtXHUwMDNlcmluZ1t0eHF1ZXVlXTtcbitcdGhuczNfZHVtcF9xdWV1ZV9zdGF0cyhuZGV2LCB0eF9yaW5nLCB0eHF1ZXVlKTtcbiBcbiBcdC8qIFdoZW4gbWFjIHJlY2VpdmVkIG1hbnkgcGF1c2UgZnJhbWVzIGNvbnRpbnVvdXMsIGl0J3MgdW5hYmxlIHRvIHNlbmRcbiBcdCAqIHBhY2tldHMsIHdoaWNoIG1heSBjYXVzZSB0eCB0aW1lb3V0XG5AQCAtMjk0MSw3ICsyOTM3LDcgQEAgc3RhdGljIHZvaWQgaG5zM19uaWNfbmV0X3RpbWVvdXQoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHVuc2lnbmVkIGludCB0eHF1ZXVlKVxuIFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihuZGV2KTtcbiBcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBwcml2LVx1MDAzZWFlX2hhbmRsZTtcbiBcbi1cdGlmICghaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhuZGV2KSlcbitcdGlmICghaG5zM19nZXRfdHhfdGltZW9fcXVldWVfaW5mbyhuZGV2LCB0eHF1ZXVlKSlcbiBcdFx0cmV0dXJuO1xuIFxuIFx0LyogcmVxdWVzdCB0aGUgcmVzZXQsIGFuZCBsZXQgdGhlIGhjbGdlIHRvIGRldGVybWluZVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuY1xuaW5kZXggZGFjMDUxZTc5OGRhMi4uNjA5M2E2MGQyNTdiMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNwZi9oY2xnZV9lcnIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3BmL2hjbGdlX2Vyci5jXG5AQCAtMTU5Miw2ICsxNTkyLDcgQEAgaGNsZ2VfcXVlcnlfcmVnX2luZm8oc3RydWN0IGhjbGdlX2RldiAqaGRldixcbiBcdH1cbiBcbiBcdGtmcmVlKG1zZy1cdTAwM2VkZXNjKTtcbitcdG1zZy1cdTAwM2VkZXNjID0gTlVMTDtcbiB9XG4gXG4gc3RhdGljIHZvaWQgaGNsZ2VfcXVlcnlfcmVnX2luZm9fb2Zfc3N1KHN0cnVjdCBoY2xnZV9kZXYgKmhkZXYpXG5AQCAtMTc2MSw3ICsxNzYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBoY2xnZV9od190eXBlX2lkIGhjbGdlX2h3X3R5cGVfaWRfc3RbXSA9IHtcbiBcdH0sXG4gfTtcbiBcbi1zdGF0aWMgdm9pZCBoY2xnZV9sb2dfZXJyb3Ioc3RydWN0IGRldmljZSAqZGV2LCBjaGFyICpyZWcsXG4rc3RhdGljIHZvaWQgaGNsZ2VfbG9nX2Vycm9yKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqcmVnLFxuIFx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgaGNsZ2VfaHdfZXJyb3IgKmVycixcbiBcdFx0XHQgICAgdTMyIGVycl9zdHMsIHVuc2lnbmVkIGxvbmcgKnJlc2V0X3JlcXVlc3RzKVxuIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEyOjE4OjI5LjUwMTQ2Njk1M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExNDk5MzA3NzI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlBhdGNoIEV2YWx1YXRpb246IEhOUzMgRHJpdmVyIENoYW5nZXMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHdlIG5lZWQgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgcGF0Y2ggd2FycmFudHMgZnV6emluZywgc3BlY2lmaWNhbGx5IGlmIGl0IGludHJvZHVjZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwncyBuZXR3b3JrIGJlaGF2aW9yLiBUaGUgcGF0Y2ggdG91Y2hlcyB0d28gZmlsZXM6IGBobnMzX2VuZXQuY2AgYW5kIGBoY2xnZV9lcnIuY2AsIGJvdGggd2l0aGluIHRoZSBgaGlzaWxpY29uL2huczNgIGRpcmVjdG9yeS4gVGhpcyBpcyBpbW1lZGlhdGVseSBhIHJlZCBmbGFnIOKAkyBIaVNpbGljb24gSE5TMyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgd2hpY2ggc3Ryb25nbHkgc3VnZ2VzdHMgaXQgKndvbid0KiBiZSByZWFkaWx5IGVtdWxhdGVkIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC5cblxuTG9va2luZyBjbG9zZXIgYXQgdGhlIGNoYW5nZXMsIGluIGBobnMzX2VuZXQuY2AgaXQgbG9va3MgbGlrZSB3ZSd2ZSBnb3QgbW9kaWZpY2F0aW9ucyB0byB0aW1lb3V0IGhhbmRsaW5nIHdpdGggYGhuczNfZ2V0X3RpbWVvdXRfcXVldWVgIGNoYW5naW5nIHRvIGBobnMzX2R1bXBfdGltZW91dF9xdWV1ZWAgYW5kIHRoZSBjb3JyZXNwb25kaW5nIHVwZGF0ZXMgdG8gYGhuczNfZ2V0X3R4X3RpbWVvX3F1ZXVlX2luZm9gIGFuZCBgaG5zM19uaWNfbmV0X3RpbWVvdXRgLiBUaGlzIGludm9sdmVzIHBhc3NpbmcgdGhlIGB0eHF1ZXVlYCB0byB2YXJpb3VzIGZ1bmN0aW9ucywgd2hpY2ggaXMgcmVsZXZhbnQgdG8gdGhlIGBuZG9fdHhfdGltZW91dGAgY2FsbGJhY2suIFdlJ3JlIHRhbGtpbmcgYWJvdXQgY2hhbmdlcyB0byBob3cgdGhlIGRyaXZlciBoYW5kbGVzIHRyYW5zbWl0IHRpbWVvdXRzLlxuXG5JbiBgaGNsZ2VfZXJyLmNgLCB0aGVyZSdzIGEgY29ycmVjdGlvbiBpbiBgaGNsZ2VfcXVlcnlfcmVnX2luZm9gIHdoZXJlIGBtc2ctXHUwMDNlZGVzY2AgaXMgYmVpbmcgZXhwbGljaXRseSBzZXQgdG8gYE5VTExgIGFmdGVyIGZyZWVpbmcgaXQuIEFsc28sIHRoZXJlJ3MgYSBzaW1wbGUgdHlwZSBjaGFuZ2UgZnJvbSBgY2hhciAqcmVnYCB0byBgY29uc3QgY2hhciAqcmVnYCBpbiBgaGNsZ2VfbG9nX2Vycm9yYC4gVGhpcyBhbGwgbG9va3MgbGlrZSBlcnJvciBoYW5kbGluZyBhbmQgbG9nZ2luZy5cblxuTm93IHRoZSBjcnVjaWFsIHF1ZXN0aW9uOiBpcyB0aGlzIHRlc3RhYmxlIHdpdGhpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LCB3aGljaCBpcyBwYXJhbW91bnQgZm9yIG91ciBmdXp6aW5nIGVmZm9ydHM/IFRoZSBmYWN0IHRoYXQgaXQncyBhIGRyaXZlciBmb3IgYSBIaVNpbGljb24gcGh5c2ljYWwgbmV0d29yayBjYXJkIG1ha2VzIG1lIHN1c3BlY3Qgbm90LCBhcyB0aGUgZG9jdW1lbnRhdGlvbiBzcGVjaWZpY2FsbHkgc3RhdGVzIHRoYXQgY29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSAobGlrZSBTbWFydE5JQ3MpIGlzIHVucmVhY2hhYmxlIGluIFFFTVUuIFZpcnR1YWwgZHJpdmVycywgbGlrZSB2aXJ0aW8tbmV0LCBhcmUgZmluZSwgYnV0IG5vdCBITlMzLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGlzLiBJJ2xsIHNlYXJjaCB0aGUgUUVNVSBzb3VyY2UganVzdCBpbiBjYXNlLCBidXQgbXkgaW50dWl0aW9uIHNheXMgdGhpcyBpcyBhIGhhcmR3YXJlLWRlcGVuZGVudCBkcml2ZXIuIFRoZSBjaGFuZ2VzIGFyZSBpbiB0aGUgdGltZW91dCBoYW5kbGVyIGFuZCBlcnJvciBsb2dnaW5nLlxuXG5HaXZlbiB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jeSwgSSdtIGxlYW5pbmcgdG93YXJkcyAqbm90KiBmdXp6aW5nIHRoaXMgcGF0Y2gsIHVubGVzcyBJIGNhbiBmaW5kIGFuIGV4Y2VwdGlvbi4gVGhlIGxvZ2ljIHNheXMgXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zIGNvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIgVGhpcyAqZGVmaW5pdGVseSogc2VlbXMgbGlrZSBhIGNhc2Ugd2hlcmUgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZS4gSSBhbSBnb2luZyB0byB2ZXJpZnkgdGhpcyB3aXRoIHRvb2xzLiBJIG5lZWQgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU5OCwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc1NywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDEyOjE4OjQxLjAwMDc3ODI5WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyMTY5MzA0NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJobnMzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA0ODU0IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vTWFrZWZpbGU9OT1vYmotJChDT05GSUdfSE5TKSArPSBobnMvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL01ha2VmaWxlOjEwOm9iai0kKENPTkZJR19ITlMzKSArPSBobnMzL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9NYWtlZmlsZS0xMS1vYmotJChDT05GSUdfSElTSV9GRU1BQykgKz0gaGlzaV9mZW1hYy5vXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZT02PWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjc6Y2NmbGFncy15ICs9IC1JJChzcmN0cmVlKS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzcGZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZTo4OmNjZmxhZ3MteSArPSAtSSQoc3JjdHJlZSkvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM3ZmXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6OTpjY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfY29tbW9uXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU9MTE9b2JqLSQoQ09ORklHX0hOUzMpICs9IGhuYWUzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZS0xMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToxMzpvYmotJChDT05GSUdfSE5TM19FTkVUKSArPSBobnMzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToxNDpobnMzLW9ianMgPSBobnMzX2VuZXQubyBobnMzX2V0aHRvb2wubyBobnMzX2RlYnVnZnMub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjE2OmhuczMtJChDT05GSUdfSE5TM19EQ0IpICs9IGhuczNfZGNibmwub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlPTE4PW9iai0kKENPTkZJR19ITlMzX0hDTEdFVkYpICs9IGhjbGdldmYubyBoY2xnZS1jb21tb24ub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjIwOmhjbGdlLWNvbW1vbi1vYmpzICs9IGhuczNfY29tbW9uL2hjbGdlX2NvbW1fY21kLm8gaG5zM19jb21tb24vaGNsZ2VfY29tbV9yc3MubyBobnMzX2NvbW1vbi9oY2xnZV9jb21tX3RxcF9zdGF0cy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6MjI6aGNsZ2V2Zi1vYmpzID0gaG5zM3ZmL2hjbGdldmZfbWFpbi5vIGhuczN2Zi9oY2xnZXZmX21ieC5vICBobnMzdmYvaGNsZ2V2Zl9kZXZsaW5rLm8gaG5zM3ZmL2hjbGdldmZfcmVncy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU9MjQ9b2JqLSQoQ09ORklHX0hOUzNfSENMR0UpICs9IGhjbGdlLm8gaGNsZ2UtY29tbW9uLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9NYWtlZmlsZToyNTpoY2xnZS1vYmpzID0gaG5zM3BmL2hjbGdlX21haW4ubyBobnMzcGYvaGNsZ2VfbWRpby5vIGhuczNwZi9oY2xnZV90bS5vIGhuczNwZi9oY2xnZV9yZWdzLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjI2OlxcdFxcdGhuczNwZi9oY2xnZV9tYngubyBobnMzcGYvaGNsZ2VfZXJyLm8gIGhuczNwZi9oY2xnZV9kZWJ1Z2ZzLm8gaG5zM3BmL2hjbGdlX3B0cC5vIGhuczNwZi9oY2xnZV9kZXZsaW5rLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL01ha2VmaWxlOjI3OlxcdFxcdGhuczNwZi9oY2xnZV9mZC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGUtMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvTWFrZWZpbGU6Mjk6aGNsZ2UtJChDT05GSUdfSE5TM19EQ0IpICs9IGhuczNwZi9oY2xnZV9kY2Iub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaD0xOTg9c3RydWN0IGhuYWUzX3F1ZXVlIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmgtMjA4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmg6MjA5OnN0cnVjdCBobnMzX21hY19zdGF0cyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaC0yMTAtXFx0dTY0IHR4X3BhdXNlX2NudDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huYWUzLmg9NjEwPXN0cnVjdCBobmFlM19hZV9vcHMge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaC02ODktXFx0dm9pZCAoKmdldF9tYWNfc3RhdHMpKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obmFlMy5oOjY5MDpcXHRcXHRcXHQgICAgICBzdHJ1Y3QgaG5zM19tYWNfc3RhdHMgKm1hY19zdGF0cyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5hZTMuaC02OTEtXFx0dm9pZCAoKmdldF9zdHJpbmdzKShzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNC0jaW5jbHVkZSBcXFwiaG5hZTMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NTojaW5jbHVkZSBcXFwiaG5zM19lbmV0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjc6c3RhdGljIGludCBobnMzX2RjYm5sX2llZWVfZ2V0ZXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgaWVlZV9ldHMgKmV0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjk6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExOlxcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyLVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjIwOnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX3NldGV0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGllZWVfZXRzICpldHMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTIxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MjI6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjI0OlxcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTI1LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMzItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjMzOnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX2dldHBmYyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGllZWVfcGZjICpwZmMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTM0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MzU6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjM3OlxcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTM4LVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjQ2OnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX3NldHBmYyhzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGllZWVfcGZjICpwZmMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTQ3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NDg6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjUwOlxcdGlmIChobnMzX25pY19yZXNldHRpbmcobmRldikpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTUxLVxcdFxcdHJldHVybiAtRUJVU1k7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjU5OnN0YXRpYyBpbnQgaG5zM19kY2JubF9pZWVlX3NldGFwcChzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiwgc3RydWN0IGRjYl9hcHAgKmFwcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNjAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo2MTpcXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5zM19nZXRfaGFuZGxlKG5kZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy02Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NjM6XFx0aWYgKGhuczNfbmljX3Jlc2V0dGluZyhuZGV2KSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtNjQtXFx0XFx0cmV0dXJuIC1FQlVTWTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6NzI6c3RhdGljIGludCBobnMzX2RjYm5sX2llZWVfZGVsYXBwKHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2LCBzdHJ1Y3QgZGNiX2FwcCAqYXBwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03My17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjc0OlxcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTc1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo3NjpcXHRpZiAoaG5zM19uaWNfcmVzZXR0aW5nKG5kZXYpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy03Ny1cXHRcXHRyZXR1cm4gLUVCVVNZO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTg1LS8qIERDQlggY29uZmlndXJhdGlvbiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzo4NjpzdGF0aWMgdTggaG5zM19kY2JubF9nZXRkY2J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy04Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjg4OlxcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBobnMzX2dldF9oYW5kbGUobmRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTg5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTk2LS8qIHJldHVybiAwIGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSBmYWlsICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjk3OnN0YXRpYyB1OCBobnMzX2RjYm5sX3NldGRjYngoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYsIHU4IG1vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTk4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6OTk6XFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuczNfZ2V0X2hhbmRsZShuZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmMtMTAwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTA3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZGNibmxfcnRubF9vcHMgaG5zM19kY2JubF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjEwODpcXHQuaWVlZV9nZXRldHNcXHQ9IGhuczNfZGNibmxfaWVlZV9nZXRldHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjEwOTpcXHQuaWVlZV9zZXRldHNcXHQ9IGhuczNfZGNibmxfaWVlZV9zZXRldHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExMDpcXHQuaWVlZV9nZXRwZmNcXHQ9IGhuczNfZGNibmxfaWVlZV9nZXRwZmMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExMTpcXHQuaWVlZV9zZXRwZmNcXHQ9IGhuczNfZGNibmxfaWVlZV9zZXRwZmMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExMjpcXHQuaWVlZV9zZXRhcHAgICAgPSBobnMzX2RjYm5sX2llZWVfc2V0YXBwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYzoxMTM6XFx0LmllZWVfZGVsYXBwICAgID0gaG5zM19kY2JubF9pZWVlX2RlbGFwcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTE0OlxcdC5nZXRkY2J4XFx0PSBobnMzX2RjYm5sX2dldGRjYngsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjExNTpcXHQuc2V0ZGNieFxcdD0gaG5zM19kY2JubF9zZXRkY2J4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMTYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMjEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jOjEyMjp2b2lkIGhuczNfZGNibmxfc2V0dXAoc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMjMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kY2JubC5jLTEyOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RjYm5sLmM6MTI5OlxcdGRldi1cXHUwMDNlZGNibmxfb3BzID0gXFx1MDAyNmhuczNfZGNibmxfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGNibmwuYy0xMzAtfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtOS0jaW5jbHVkZSBcXFwiaG5hZTMuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMDojaW5jbHVkZSBcXFwiaG5zM19kZWJ1Z2ZzLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTE6I2luY2x1ZGUgXFxcImhuczNfZW5ldC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjEzOnN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICpobnMzX2RiZ2ZzX3Jvb3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTU6c3RhdGljIHN0cnVjdCBobnMzX2RiZ19kZW50cnlfaW5mbyBobnMzX2RiZ19kZW50cnlbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNi1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0MzpzdGF0aWMgaW50IGhuczNfZGJnX2JkX2ZpbGVfaW5pdChzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoYW5kbGUsIHUzMiBjbWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ0OnN0YXRpYyBpbnQgaG5zM19kYmdfY29tbW9uX2luaXRfdDEoc3RydWN0IGhuYWUzX2hhbmRsZSAqaGFuZGxlLCB1MzIgY21kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NTpzdGF0aWMgaW50IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyKHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSwgdTMyIGNtZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDc6c3RhdGljIHN0cnVjdCBobnMzX2RiZ19jbWRfaW5mbyBobnMzX2RiZ19jbWRbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00OC1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTMtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU3LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTg6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01OS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2NDpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02OS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzEtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc1LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NzY6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03Ny1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4MjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04Ny1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjg4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODktXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTkzLVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6OTQ6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy05NS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtOTktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UTSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMDA6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMDEtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEwNS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1RNLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjEwNjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTEwNy1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTExLVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfVE0sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTEyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTEzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMTctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTE4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTE5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMjMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9UWF9CRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMjQ6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19iZF9maWxlX2luaXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTI1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMjktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SWF9CRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoxMzA6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19iZF9maWxlX2luaXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTMxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xMzUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9NQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTM2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTM3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNDEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9NQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTQyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNDctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTQ4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTQ5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNTMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTU0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTU1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNTktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTYwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTYxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNjUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTY2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTY3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNzEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTcyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTczLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xNzctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTc4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTc5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xODMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTg0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTg1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xODktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTkwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTkxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0xOTUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MTk2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMTk3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMDEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjAyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjAzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMDctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjA4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjA5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMTMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjE0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjE1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMTktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjIwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjIxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMjUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjI2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjI3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMzEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjMyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjMzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yMzctXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjM4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjM5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNDMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjQ0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjQ1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNDktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9SRUcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjUwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjUxLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNTUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9RVUVVRSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyNTY6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNTctXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI2MS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX1FVRVVFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI2MjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI2My1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjY3LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfUVVFVUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MjY4OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjY5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNzMtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9GRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzoyNzQ6XFx0XFx0LmluaXQgPSBobnMzX2RiZ19jb21tb25faW5pdF90MixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0yNzUtXFx0fSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI3OS1cXHRcXHQuZGVudHJ5ID0gSE5TM19EQkdfREVOVFJZX0ZELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI4MDpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI4MS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjg1LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfQ09NTU9OLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI4NjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI4Ny1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjkxLVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfQ09NTU9OLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI5MjpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI5My1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMjk3LVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfQ09NTU9OLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjI5ODpcXHRcXHQuaW5pdCA9IGhuczNfZGJnX2NvbW1vbl9pbml0X3QyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTI5OS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzAzLVxcdFxcdC5kZW50cnkgPSBITlMzX0RCR19ERU5UUllfRkQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzA0OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzA1LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMDktXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzEwOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzExLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMTUtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzE2OlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzE3LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMjEtXFx0XFx0LmRlbnRyeSA9IEhOUzNfREJHX0RFTlRSWV9DT01NT04sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzIyOlxcdFxcdC5pbml0ID0gaG5zM19kYmdfY29tbW9uX2luaXRfdDEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzIzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy0zMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6MzI2OnN0YXRpYyBzdHJ1Y3QgaG5zM19kYmdfY2FwX2luZm8gaG5zM19kYmdfY2FwW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzI3LVxcdHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jPTM5MD1kaW1fdHVuZV9zdGF0X3N0cltdID0geyBcXFwiT05fVE9QXFxcIiwgXFxcIlRJUkVEXFxcIiwgXFxcIlJJR0hUXFxcIiwgXFxcIkxFRlRcXFwiIH07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjM5MjpzdGF0aWMgdm9pZCBobnMzX2dldF9jb2FsX2luZm8oc3RydWN0IGhuczNfZW5ldF90cXBfdmVjdG9yICp0cXBfdmVjdG9yLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTM5My1cXHRcXHRcXHQgICAgICAgc3RydWN0IHNlcV9maWxlICpzLCBpbnQgaSwgYm9vbCBpc190eClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTM5NS1cXHR1bnNpZ25lZCBpbnQgZ2xfb2Zmc2V0LCBxbF9vZmZzZXQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Mzk2OlxcdHN0cnVjdCBobnMzX2VuZXRfY29hbGVzY2UgKmNvYWw7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtMzk3LVxcdHVuc2lnbmVkIGludCByZWdfdmFsO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDM2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQzNzpzdGF0aWMgdm9pZCBobnMzX2R1bXBfY29hbF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgYm9vbCBpc190eClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00Mzgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQzOS1cXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5hZTNfc2VxX2ZpbGVfdG9faGFuZGxlKHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ0MDpcXHRzdHJ1Y3QgaG5zM19lbmV0X3RxcF92ZWN0b3IgKnRxcF92ZWN0b3I7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDQxOlxcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NDItXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTEtXFx0XFx0dHFwX3ZlY3RvciA9IFxcdTAwMjZwcml2LVxcdTAwM2V0cXBfdmVjdG9yW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ1MjpcXHRcXHRobnMzX2dldF9jb2FsX2luZm8odHFwX3ZlY3RvciwgcywgaSwgaXNfdHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ1My1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NDU2OnN0YXRpYyBpbnQgaG5zM19kYmdfY29hbF9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy00NTcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ1ODpcXHRobnMzX2R1bXBfY29hbF9pbmZvKHMsIHRydWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ1OS1cXHRzZXFfcHV0cyhzLCBcXFwiXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo0NjA6XFx0aG5zM19kdW1wX2NvYWxfaW5mbyhzLCBmYWxzZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDYxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDY0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjQ2NTpzdGF0aWMgdm9pZCBobnMzX2R1bXBfcnhfcXVldWVfaW5mbyhzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNDY2LVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTQ5OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1MDA6c3RhdGljIGludCBobnMzX2RiZ19yeF9xdWV1ZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MDEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTUwMi1cXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5hZTNfc2VxX2ZpbGVfdG9faGFuZGxlKHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUwMzpcXHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IGgtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTA0OlxcdHN0cnVjdCBobnMzX2VuZXRfcmluZyAqcmluZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MDUtXFx0dTMyIGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MjQtXFx0XFx0cmluZyA9IFxcdTAwMjZwcml2LVxcdTAwM2VyaW5nWyh1MzIpKGkgKyBoLVxcdTAwM2VraW5mby5udW1fdHFwcyldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUyNTpcXHRcXHRobnMzX2R1bXBfcnhfcXVldWVfaW5mbyhyaW5nLCBzLCBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01MjYtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjUzMTpzdGF0aWMgdm9pZCBobnMzX2R1bXBfdHhfcXVldWVfaW5mbyhzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTMyLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1NjU6c3RhdGljIGludCBobnMzX2RiZ190eF9xdWV1ZV9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01NjYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTU2Ny1cXHRzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoID0gaG5hZTNfc2VxX2ZpbGVfdG9faGFuZGxlKHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU2ODpcXHRzdHJ1Y3QgaG5zM19uaWNfcHJpdiAqcHJpdiA9IGgtXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NTY5OlxcdHN0cnVjdCBobnMzX2VuZXRfcmluZyAqcmluZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01NzAtXFx0dTMyIGk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01ODktXFx0XFx0cmluZyA9IFxcdTAwMjZwcml2LVxcdTAwM2VyaW5nW2ldO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU5MDpcXHRcXHRobnMzX2R1bXBfdHhfcXVldWVfaW5mbyhyaW5nLCBzLCBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01OTEtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjU5NjpzdGF0aWMgaW50IGhuczNfZGJnX3F1ZXVlX21hcChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNTk3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy01OTgtXFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuYWUzX3NlcV9maWxlX3RvX2hhbmRsZShzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo1OTk6XFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYwMC1cXHR1MzIgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTYxNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2MTg6c3RhdGljIHZvaWQgaG5zM19kdW1wX3J4X2JkX2luZm8oc3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjE5OlxcdFxcdFxcdFxcdCBzdHJ1Y3QgaG5zM19kZXNjICpkZXNjLCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjIwLVxcdFxcdFxcdFxcdCBpbnQgaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY0MzpzdGF0aWMgaW50IGhuczNfZGJnX3J4X2JkX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwcml2YXRlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY0NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ1OlxcdHN0cnVjdCBobnMzX2RiZ19kYXRhICpkYXRhID0gcy1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NDYtXFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGRhdGEtXFx1MDAzZWhhbmRsZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2NDc6XFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY0ODpcXHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjQ5OlxcdHN0cnVjdCBobnMzX2Rlc2MgKmRlc2M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjUwLVxcdHVuc2lnbmVkIGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjY1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY2NjpcXHRcXHRobnMzX2R1bXBfcnhfYmRfaW5mbyhwcml2LCBkZXNjLCBzLCBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02NjctXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjcxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY3MjpzdGF0aWMgdm9pZCBobnMzX2R1bXBfdHhfYmRfaW5mbyhzdHJ1Y3QgaG5zM19kZXNjICpkZXNjLCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjczLVxcdFxcdFxcdFxcdCBpbnQgaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY4ODpzdGF0aWMgaW50IGhuczNfZGJnX3R4X2JkX2luZm8oc3RydWN0IHNlcV9maWxlICpzLCB2b2lkICpwcml2YXRlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTY4OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NjkwOlxcdHN0cnVjdCBobnMzX2RiZ19kYXRhICpkYXRhID0gcy1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy02OTEtXFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGRhdGEtXFx1MDAzZWhhbmRsZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo2OTI6XFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjY5MzpcXHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6Njk0OlxcdHN0cnVjdCBobnMzX2Rlc2MgKmRlc2M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNjk1LVxcdHVuc2lnbmVkIGludCBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcxMTpcXHRcXHRobnMzX2R1bXBfdHhfYmRfaW5mbyhkZXNjLCBzLCBpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MTItXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcxNzpzdGF0aWMgdm9pZCBobnMzX2RiZ19kZXZfY2FwcyhzdHJ1Y3QgaG5hZTNfaGFuZGxlICpoLCBzdHJ1Y3Qgc2VxX2ZpbGUgKnMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzE4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MTk6XFx0c3RydWN0IGhuYWUzX2FlX2RldiAqYWVfZGV2ID0gaG5zM19nZXRfYWVfZGV2KGgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTcyMC1cXHR1bnNpZ25lZCBsb25nICpjYXBzID0gYWVfZGV2LVxcdTAwM2VjYXBzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjcyNTpcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShobnMzX2RiZ19jYXApOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MjY6XFx0XFx0c3RhdGUgPSB0ZXN0X2JpdChobnMzX2RiZ19jYXBbaV0uY2FwX2JpdCwgY2Fwcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6NzI3OlxcdFxcdHNlcV9wcmludGYocywgXFxcIiVzOiAlc1xcXFxuXFxcIiwgaG5zM19kYmdfY2FwW2ldLm5hbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzI4LVxcdFxcdFxcdCAgIHN0cl95ZXNfbm8oc3RhdGUpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTczMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3MzQ6c3RhdGljIHZvaWQgaG5zM19kYmdfZGV2X3NwZWNzKHN0cnVjdCBobmFlM19oYW5kbGUgKmgsIHN0cnVjdCBzZXFfZmlsZSAqcylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03MzUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc2OTpzdGF0aWMgaW50IGhuczNfZGJnX2Rldl9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03NzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc3MzpcXHRobnMzX2RiZ19kZXZfY2FwcyhoLCBzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3NzQ6XFx0aG5zM19kYmdfZGV2X3NwZWNzKGgsIHMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc3NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc3OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3Nzk6c3RhdGljIHZvaWQgaG5zM19kdW1wX3BhZ2VfcG9vbF9pbmZvKHN0cnVjdCBobnMzX2VuZXRfcmluZyAqcmluZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03ODAtXFx0XFx0XFx0XFx0ICAgICBzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHUzMiBpbmRleClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTc5MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3OTI6c3RhdGljIGludCBobnMzX2RiZ19wYWdlX3Bvb2xfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzkzLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy03OTQtXFx0c3RydWN0IGhuYWUzX2hhbmRsZSAqaCA9IGhuYWUzX3NlcV9maWxlX3RvX2hhbmRsZShzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo3OTU6XFx0c3RydWN0IGhuczNfbmljX3ByaXYgKnByaXYgPSBoLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjc5NjpcXHRzdHJ1Y3QgaG5zM19lbmV0X3JpbmcgKnJpbmc7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtNzk3LVxcdHUzMiBpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODE3LVxcdFxcdHJpbmcgPSBcXHUwMDI2cHJpdi1cXHUwMDNlcmluZ1sodTMyKShpICsgaC1cXHUwMDNla2luZm8ubnVtX3RxcHMpXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYzo4MTg6XFx0XFx0aG5zM19kdW1wX3BhZ2VfcG9vbF9pbmZvKHJpbmcsIHMsIGkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgxOS1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODI0OnN0YXRpYyBpbnQgaG5zM19kYmdfYmRfaW5mb19zaG93KHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqcHJpdmF0ZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MjUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjgyNjpcXHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YSA9IHMtXFx1MDAzZXByaXZhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODI3LVxcdHN0cnVjdCBobmFlM19oYW5kbGUgKmggPSBkYXRhLVxcdTAwM2VoYW5kbGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODI4OlxcdHN0cnVjdCBobnMzX25pY19wcml2ICpwcml2ID0gaC1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MjktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MzQtXFx0aWYgKGRhdGEtXFx1MDAzZWNtZCA9PSBITkFFM19EQkdfQ01EX1RYX0JEKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjgzNTpcXHRcXHRyZXR1cm4gaG5zM19kYmdfdHhfYmRfaW5mbyhzLCBwcml2YXRlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04MzYtXFx0ZWxzZSBpZiAoZGF0YS1cXHUwMDNlY21kID09IEhOQUUzX0RCR19DTURfUlhfQkQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODM3OlxcdFxcdHJldHVybiBobnMzX2RiZ19yeF9iZF9pbmZvKHMsIHByaXZhdGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTgzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jLTg0MC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODQxOkRFRklORV9TSE9XX0FUVFJJQlVURShobnMzX2RiZ19iZF9pbmZvKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODQzOnN0YXRpYyBpbnQgaG5zM19kYmdfYmRfZmlsZV9pbml0KHN0cnVjdCBobmFlM19oYW5kbGUgKmhhbmRsZSwgdTMyIGNtZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04NDQte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjg0NTpcXHRzdHJ1Y3QgaG5zM19kYmdfZGF0YSAqZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zMy9obnMzX2RlYnVnZnMuYy04NDYtXFx0c3RydWN0IGRlbnRyeSAqZW50cnlfZGlyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODQ5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMzL2huczNfZGVidWdmcy5jOjg1MDpcXHRlbnRyeV9kaXIgPSBobnMzX2RiZ19kZW50cnlbaG5zM19kYmdfY21kW2NtZF0uZGVudHJ5XS5kZW50cnk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmM6ODUxOlxcdG1heF9xdWV1ZV9udW0gPSBobnMzX2dldF9tYXhfYXZhaWxhYmxlX2NoYW5uZWxzKGhhbmRsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2huczMvaG5zM19kZWJ1Z2ZzLmMtODUyLVxcdGRhdGEgPSBkZXZtX2tjYWxsb2MoXFx1MDAyNmhhbmRsZS1cXHUwMDNlcGRldi1cXHUwMDNlZGV2LCBtYXhfcXVldWVfbnVtLCBzaXplb2YoKmRhdGEpLFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMjoxODo0MS4xMjI0NzUxOTZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDIxODExOTk3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIEhOUzMgRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGUgSE5TMyBkcml2ZXIgaXMgaW50cmluc2ljYWxseSB0aWVkIHRvIHBoeXNpY2FsIGhhcmR3YXJlLiBJIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0IGluIGVpdGhlciB0aGUga2VybmVsIGl0c2VsZiBvciB3aXRoaW4gUUVNVS4gRG91YmxlLWNoZWNraW5nLCBJIGZpbmQgbm8gc29mdHdhcmUgZW11bGF0aW9uIG9mIEhOUzMgaW4gdGhlIGtlcm5lbCwgYW5kIG5vdGhpbmcgaW4gUUVNVSBlaXRoZXIuXG5cbldhaXQsIHRoZSBxdWVzdGlvbiBpcywgY291bGQgdGhpcyBjb2RlICpldmVyKiBiZSByZWFjaGVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IFRoZSBxdWljayBhbnN3ZXIgaXMgbm8sIGl0ICpkZW1hbmRzKiBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzLiBUaGF0J3MgdGhlIGNydXggb2YgaXQuXG5cbk5vdywgbGV0J3MgY2lyY2xlIGJhY2sgdG8gdGhlIHByb21wdCwgd2hpY2ggZXhwbGljaXRseSBzdGF0ZXMgXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOiAuLi4gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiIEhOUzMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgU21hcnROSUMgZHJpdmVyLCBtZWFuaW5nIGl0IHBlcmZlY3RseSBmaXRzIHRoYXQgY2F0ZWdvcnkuIFRoZXJlZm9yZSwgYmFzZWQgb24gdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgcHJvbXB0LCB0aGUgY29ycmVjdCBhbnN3ZXIgaXMgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cbkhvd2V2ZXIsIEknbSBnb2luZyB0byB0YWtlIGEgbW9tZW50IHRvIGRvdWJsZSBjaGVjay4gVGhlIGBoY2xnZXZmYCBkcml2ZXIgaXMgdGhlIFZGIGRyaXZlciBmb3IgSE5TMy4gVGhlIFZGIChWaXJ0dWFsIEZ1bmN0aW9uKSBkcml2ZXJzIGFyZSB1c2VkIGluIHZpcnR1YWwgbWFjaGluZXMgdXNpbmcgU1ItSU9WLiBJdCdzIHRoZW9yZXRpY2FsbHkgcG9zc2libGUgdGhhdCBhIFZNIGNvdWxkIGhhdmUgYSBWRiBwYXNzZWQgdGhyb3VnaCB0byBpdCwgbWVhbmluZyB0aGF0IHRoZSBkcml2ZXIgaXMgaW5kZWVkIGFjdGl2ZSB3aXRoaW4gdGhlIFZNLiBIb3dldmVyLCAqdGhhdCogc3RpbGwgcmVxdWlyZXMgdGhlICpwaHlzaWNhbCogaGFyZHdhcmUgdG8gYmUgcHJlc2VudCBvbiB0aGUgaG9zdCBhbmQgcGFzc2VkIHRocm91Z2gsIGl0J3Mgbm90IFwic29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmVcIi4gVGhlIHByb21wdCBpcyB2ZXJ5IHNwZWNpZmljIGFib3V0IHRoaXM6IFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXCIgU28gdGhhdCBhcmd1bWVudCBpcyBpbnZhbGlkLiBUaGUgb3RoZXIgc3RpcHVsYXRpb24sIFwiQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VXCIgYWxzbyBhcHBsaWVzLlxuXG5UaHVzLCBzeXprYWxsZXIgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50IHdvbid0IGZ1enogSE5TMyBiZWNhdXNlIHRoZXJlJ3Mgbm8gZW11bGF0ZWQgSE5TMyBkZXZpY2UuIEZpbmFsIGRlY2lzaW9uOiBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuSSB3YW50IHRvIHF1aWNrbHkgcmV2aWV3IHRoZSBwYXRjaCBpdHNlbGYgZm9yIGEgc2FuaXR5IGNoZWNrLiBJdCB0b3VjaGVzIGBobnMzX2VuZXQuY2AgYW5kIGBoY2xnZV9lcnIuY2AuIEJvdGggb2YgdGhvc2UgYXJlIHNxdWFyZWx5IHdpdGhpbiB0aGUgYGhpc2lsaWNvbi9obnMzYCBkcml2ZXIgaXRzZWxmLiBUaGVzZSBhcmUgbm90IGNvcmUga2VybmVsIGNoYW5nZXMsIHNvIHRoZSBtb2RpZmljYXRpb25zIGFyZSBjb25maW5lZCB0byB0aGF0IGRyaXZlci5cblxuU28sIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAgaXMgdGhlIHJpZ2h0IGNhbGwgaGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE2MzYsIk91dHB1dFRva2VucyI6ODMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NDUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMTI6MTg6NTEuMzQwNTk3ODUxWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTIwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IG1vZGlmaWVzIHRoZSBIaVNpbGljb24gSE5TMyBuZXR3b3JrIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBwaHlzaWNhbCBQQ0llIG5ldHdvcmsgY2FyZHMuIFRoaXMgaGFyZHdhcmUgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgdGhlIGNvZGUgdW5yZWFjaGFibGUgZHVyaW5nIHN0YW5kYXJkIHZpcnR1YWxpemF0aW9uLWJhc2VkIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QxMjoxODo1MS4zNDA2MjAxMTFaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjY3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowscc2j[1] Phase: Running StartedAt: 2026-08-07 12:19:07 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowscc2j[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-07 12:19:07 +0000 UTC FinishedAt: 2026-08-07 12:19:13 +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,}