Name: series-workflowwp2ws Phase: Failed StartedAt: 2026-09-14 23:37:18 +0000 UTC FinishedAt: 2026-09-14 23:59:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwp2ws[0] Phase: Succeeded StartedAt: 2026-09-14 23:37:18 +0000 UTC FinishedAt: 2026-09-14 23:59:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwp2ws[0].run-triage Phase: Succeeded StartedAt: 2026-09-14 23:37:18 +0000 UTC FinishedAt: 2026-09-14 23:59:23 +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+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYywgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gVGhpcyBoYXJkd2FyZSBpcyBzcGVjaWZpYyB0byBDb3J0aW5hIEdlbWluaSBBUk0gcGxhdGZvcm1zIGFuZCBpcyBuZWl0aGVyIHByZXNlbnQgbm9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIG9uIGFtZDY0LiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0MDFmYTBiYzhmMzk5ZDIwMTA3ODg3YTYxYzEwNTIwNzdiNTJiYjFkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgMTQgMjM6NTg6MzUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNcbmluZGV4IGYwOGRlNjIzZTZmN2MuLjJmZTdmZDAyMDJkMjYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jXG5AQCAtMTYsNiAmIzQzOzE2LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2luaXQuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L25ldC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zcGlubG9jay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG5AQCAtNzM2LDcgJiM0Mzs3MzcsOCBAQCBnbWFjX2dldF9xdWV1ZV9wYWdlKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgsXG4gXHRtYXBwaW5nID0gYWRkciBcdTAwMjYgUEFHRV9NQVNLO1xuIFxuIFx0aWYgKCFnZXRoLVx1MDAzZWZyZWVxX3BhZ2VzKSB7XG4tXHRcdGRldl9lcnIoZ2V0aC1cdTAwM2VkZXYsIFwmIzM0O3RyeSB0byBnZXQgcGFnZSB3aXRoIG5vIHBhZ2UgbGlzdFxcblwmIzM0Oyk7XG4mIzQzO1x0XHRkZXZfZXJyX3JhdGVsaW1pdGVkKGdldGgtXHUwMDNlZGV2LFxuJiM0MztcdFx0XHRcdCAgICBcJiMzNDt0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXG5cJiMzNDspO1xuIFx0XHRyZXR1cm4gTlVMTDtcbiBcdH1cbiBcbkBAIC0xNDQxLDcgJiM0MzsxNDQzLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpnbWFjX3NrYl9pZl9nb29kX2ZyYW1lKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCxcbiB9XG4gXG4gc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4tXHRcdFx0ICAgIHVuc2lnbmVkIGludCAqZnJlZXFfY29uc3VtZWQpXG4mIzQzO1x0XHRcdCAgICB1bnNpZ25lZCBpbnQgKmZyZWVxX2NvbnN1bWVkLCBib29sICpyZXNjaGVkdWxlKVxuIHtcbiBcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXHUwMDNjXHUwMDNjIHBvcnQtXHUwMDNlcnhxX29yZGVyKSAtIDE7XG5AQCAtMTQ0OSw2ICYjNDM7MTQ1MSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxuIFx0dm9pZCBfX2lvbWVtICpwdHJfcmVnID0gcG9ydC1cdTAwM2VyeHFfcndwdHI7XG4gXHR1bnNpZ25lZCBpbnQgZnJhZ19uciA9IHBvcnQtXHUwMDNlcnhfZnJhZ19ucjtcbiBcdHN0cnVjdCBza19idWZmICpza2IgPSBwb3J0LVx1MDAzZXJ4X3NrYjtcbiYjNDM7XHQvKiBCb3VuZCBtYWxmb3JtZWQgY2hhaW5zIHdoaWxlIGFsbG93aW5nIG1heGltdW0gZnJhZ21lbnRzIHBlciBmcmFtZS4gKi9cbiYjNDM7XHR1bnNpZ25lZCBpbnQgZGVzY19saW1pdCA9IGJ1ZGdldCAqIE1BWF9TS0JfRlJBR1M7XG4gXHR1bnNpZ25lZCBpbnQgY29uc3VtZWQgPSAwO1xuIFx0dW5zaWduZWQgaW50IGZyYW1lX2xlbiwgZnJhZ19sZW47XG4gXHRzdHJ1Y3QgZ21hY19yeGRlc2MgKnJ4ID0gTlVMTDtcbkBAIC0xNDc1LDcgJiM0MzsxNDc5LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRyID0gcncuYml0cy5ycHRyO1xuIFx0dyA9IHJ3LmJpdHMud3B0cjtcbiBcbi1cdHdoaWxlIChidWRnZXQgXHUwMDI2XHUwMDI2IHcgIT0gcikge1xuJiM0MztcdHdoaWxlIChidWRnZXQgXHUwMDI2XHUwMDI2IGNvbnN1bWVkIFx1MDAzYyBkZXNjX2xpbWl0IFx1MDAyNlx1MDAyNiB3ICE9IHIpIHtcbiBcdFx0cGFnZSA9IE5VTEw7XG4gXHRcdHJ4ID0gcG9ydC1cdTAwM2VyeHFfcmluZyAmIzQzOyByO1xuIFx0XHR3b3JkMCA9IHJ4LVx1MDAzZXdvcmQwO1xuQEAgLTE1MDIsMTUgJiM0MzsxNTA2LDE4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxuIFx0XHR9XG4gXG4gXHRcdGlmICghbWFwcGluZykge1xuLVx0XHRcdG5ldGRldl9lcnIobmV0ZGV2LFxuLVx0XHRcdFx0ICAgXCYjMzQ7cnhxWyV1XTogSFcgQlVHOiB6ZXJvIERNQSBkZXNjXFxuXCYjMzQ7LCByKTtcbiYjNDM7XHRcdFx0aWYgKG5ldF9yYXRlbGltaXQoKSlcbiYjNDM7XHRcdFx0XHRuZXRkZXZfZXJyKG5ldGRldixcbiYjNDM7XHRcdFx0XHRcdCAgIFwmIzM0O3J4cVsldV06IEhXIEJVRzogemVybyBETUEgZGVzY1xcblwmIzM0OyxcbiYjNDM7XHRcdFx0XHRcdCAgIHIpO1xuIFx0XHRcdGdvdG8gZXJyX2Ryb3A7XG4gXHRcdH1cbiBcbiBcdFx0LyogRnJlZXEgcG9pbnRlcnMgYXJlIG9uZSBwYWdlIG9mZiAqL1xuIFx0XHRncGFnZSA9IGdtYWNfZ2V0X3F1ZXVlX3BhZ2UoZ2V0aCwgcG9ydCwgbWFwcGluZyAmIzQzOyBQQUdFX1NJWkUpO1xuIFx0XHRpZiAoIWdwYWdlKSB7XG4tXHRcdFx0ZGV2X2VycihnZXRoLVx1MDAzZWRldiwgXCYjMzQ7Y291bGQgbm90IGZpbmQgbWFwcGluZ1xcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoZ2V0aC1cdTAwM2VkZXYsXG4mIzQzO1x0XHRcdFx0XHQgICAgXCYjMzQ7Y291bGQgbm90IGZpbmQgbWFwcGluZ1xcblwmIzM0Oyk7XG4gXHRcdFx0Z290byBlcnJfZHJvcDtcbiBcdFx0fVxuIFx0XHRwYWdlID0gZ3BhZ2UtXHUwMDNlcGFnZTtcbkBAIC0xNTM1LDcgJiM0MzsxNTQyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRcdGlmIChmcmFnX25yID09IE1BWF9TS0JfRlJBR1MpXG4gXHRcdFx0Z290byBlcnJfZHJvcDtcbiBcbi1cdFx0aWYgKGZyYWdfbGVuID09IDApXG4mIzQzO1x0XHRpZiAoZnJhZ19sZW4gPT0gMCBcdTAwMjZcdTAwMjYgbmV0X3JhdGVsaW1pdCgpKVxuIFx0XHRcdG5ldGRldl9lcnIobmV0ZGV2LCBcJiMzNDtSZWNlaXZlZCBmcmFnbWVudCB3aXRoIGxlbiA9IDBcXG5cJiMzNDspO1xuIFxuIFx0XHRza2JfZmlsbF9wYWdlX2Rlc2Moc2tiLCBmcmFnX25yLCBwYWdlLCBwYWdlX29mZnMsIGZyYWdfbGVuKTtcbkBAIC0xNTc5LDYgJiM0MzsxNTg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRwb3J0LVx1MDAzZXJ4X2ZyYWdfbnIgPSBmcmFnX25yO1xuIFx0cG9ydC1cdTAwM2VyeF9kcm9wcGluZyA9IGRyb3BwaW5nO1xuIFx0KmZyZWVxX2NvbnN1bWVkID0gY29uc3VtZWQ7XG4mIzQzO1x0KnJlc2NoZWR1bGUgPSBidWRnZXQgXHUwMDI2XHUwMDI2IHcgIT0gcjtcbiBcdHdyaXRldyhyLCBwdHJfcmVnKTtcbiBcdHJldHVybiByZWNlaXZlZDtcbiB9XG5AQCAtMTU5MCwxMiAmIzQzOzE1OTgsMTMgQEAgc3RhdGljIGludCBnbWFjX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4gXHR1bnNpZ25lZCBpbnQgZnJlZXFfdGhyZXNob2xkO1xuIFx0dW5zaWduZWQgaW50IGZyZWVxX2NvbnN1bWVkO1xuIFx0dW5zaWduZWQgaW50IHJlY2VpdmVkO1xuJiM0MztcdGJvb2wgcmVzY2hlZHVsZTtcbiBcbiBcdGZyZWVxX3RocmVzaG9sZCA9IDEgXHUwMDNjXHUwMDNjIChnZXRoLVx1MDAzZWZyZWVxX29yZGVyIC0gMSk7XG4gXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnBvcnQtXHUwMDNlcnhfc3RhdHNfc3luY3ApO1xuIFxuLVx0cmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktXHUwMDNlZGV2LCBidWRnZXQsIFx1MDAyNmZyZWVxX2NvbnN1bWVkKTtcbi1cdGlmIChyZWNlaXZlZCBcdTAwM2MgYnVkZ2V0KVxuJiM0MztcdHJlY2VpdmVkID0gZ21hY19yeChuYXBpLVx1MDAzZWRldiwgYnVkZ2V0LCBcdTAwMjZmcmVlcV9jb25zdW1lZCwgXHUwMDI2cmVzY2hlZHVsZSk7XG4mIzQzO1x0aWYgKCFyZXNjaGVkdWxlIFx1MDAyNlx1MDAyNiByZWNlaXZlZCBcdTAwM2MgYnVkZ2V0KVxuIFx0XHQmIzQzOyYjNDM7cG9ydC1cdTAwM2VyeF9uYXBpX2V4aXRzO1xuIFxuIFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXHUwMDI2cG9ydC1cdTAwM2VyeF9zdGF0c19zeW5jcCk7XG5AQCAtMTYwNiwxMCAmIzQzOzE2MTUsMTEgQEAgc3RhdGljIGludCBnbWFjX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4gXHRcdGdldGhfZmlsbF9mcmVlcShnZXRoLCB0cnVlKTtcbiBcdH1cbiBcbi1cdGlmIChyZWNlaXZlZCBcdTAwM2MgYnVkZ2V0IFx1MDAyNlx1MDAyNiBuYXBpX2NvbXBsZXRlX2RvbmUobmFwaSwgcmVjZWl2ZWQpKVxuJiM0MztcdGlmICghcmVzY2hlZHVsZSBcdTAwMjZcdTAwMjYgcmVjZWl2ZWQgXHUwMDNjIGJ1ZGdldCBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgbmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHJlY2VpdmVkKSlcbiBcdFx0Z21hY19lbmFibGVfcnhfaXJxKG5hcGktXHUwMDNlZGV2LCAxKTtcbiBcbi1cdHJldHVybiByZWNlaXZlZDtcbiYjNDM7XHRyZXR1cm4gcmVzY2hlZHVsZSA/IGJ1ZGdldCA6IHJlY2VpdmVkO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBnbWFjX2R1bXBfZG1hX3N0YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5AQCAtMTc5OCw3ICYjNDM7MTgwOCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnbWFjX2lycShpbnQgaXJxLCB2b2lkICpkYXRhKVxuIFxuIFx0aWYgKHZhbCBcdTAwMjYgKEdNQUMwX1JYX09WRVJSVU5fSU5UX0JJVCBcdTAwM2NcdTAwM2MgKG5ldGRldi1cdTAwM2VkZXZfaWQgKiA4KSkpIHtcbiBcdFx0c3Bpbl9sb2NrKFx1MDAyNmdldGgtXHUwMDNlaXJxX2xvY2spO1xuLVx0XHR3cml0ZWwoR01BQzBfUlhERVJSX0lOVF9CSVQgXHUwMDNjXHUwMDNjIChuZXRkZXYtXHUwMDNlZGV2X2lkICogOCksXG4mIzQzO1x0XHR3cml0ZWwoR01BQzBfUlhfT1ZFUlJVTl9JTlRfQklUIFx1MDAzY1x1MDAzYyAobmV0ZGV2LVx1MDAzZWRldl9pZCAqIDgpLFxuIFx0XHQgICAgICAgZ2V0aC1cdTAwM2ViYXNlICYjNDM7IEdMT0JBTF9JTlRFUlJVUFRfU1RBVFVTXzRfUkVHKTtcbiBcdFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZwb3J0LVx1MDAzZWlyX3N0YXRzX3N5bmNwKTtcbiBcdFx0JiM0MzsmIzQzO3BvcnQtXHUwMDNlc3RhdHMucnhfZmlmb19lcnJvcnM7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYywgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gVGhpcyBoYXJkd2FyZSBpcyBzcGVjaWZpYyB0byBDb3J0aW5hIEdlbWluaSBBUk0gcGxhdGZvcm1zIGFuZCBpcyBuZWl0aGVyIHByZXNlbnQgbm9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIG9uIGFtZDY0LiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0MDFmYTBiYzhmMzk5ZDIwMTA3ODg3YTYxYzEwNTIwNzdiNTJiYjFkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBTZXAgMTQgMjM6NTg6MzUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYwppbmRleCBmMDhkZTYyM2U2ZjdjLi4yZmU3ZmQwMjAyZDI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMKQEAgLTE2LDYgJiM0MzsxNiw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgva2VybmVsLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvaW5pdC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L21vZHVsZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9uZXQuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9zcGlubG9jay5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NsYWIuaCZndDsKQEAgLTczNiw3ICYjNDM7NzM3LDggQEAgZ21hY19nZXRfcXVldWVfcGFnZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoLAogCW1hcHBpbmcgPSBhZGRyICZhbXA7IFBBR0VfTUFTSzsKIAogCWlmICghZ2V0aC0mZ3Q7ZnJlZXFfcGFnZXMpIHsKLQkJZGV2X2VycihnZXRoLSZndDtkZXYsICYjMzQ7dHJ5IHRvIGdldCBwYWdlIHdpdGggbm8gcGFnZSBsaXN0XG4mIzM0Oyk7CiYjNDM7CQlkZXZfZXJyX3JhdGVsaW1pdGVkKGdldGgtJmd0O2RldiwKJiM0MzsJCQkJICAgICYjMzQ7dHJ5IHRvIGdldCBwYWdlIHdpdGggbm8gcGFnZSBsaXN0XG4mIzM0Oyk7CiAJCXJldHVybiBOVUxMOwogCX0KIApAQCAtMTQ0MSw3ICYjNDM7MTQ0Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZ21hY19za2JfaWZfZ29vZF9mcmFtZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQsCiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LAotCQkJICAgIHVuc2lnbmVkIGludCAqZnJlZXFfY29uc3VtZWQpCiYjNDM7CQkJICAgIHVuc2lnbmVkIGludCAqZnJlZXFfY29uc3VtZWQsIGJvb2wgKnJlc2NoZWR1bGUpCiB7CiAJc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAl1bnNpZ25lZCBzaG9ydCBtID0gKDEgJmx0OyZsdDsgcG9ydC0mZ3Q7cnhxX29yZGVyKSAtIDE7CkBAIC0xNDQ5LDYgJiM0MzsxNDUxLDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsCiAJdm9pZCBfX2lvbWVtICpwdHJfcmVnID0gcG9ydC0mZ3Q7cnhxX3J3cHRyOwogCXVuc2lnbmVkIGludCBmcmFnX25yID0gcG9ydC0mZ3Q7cnhfZnJhZ19ucjsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gcG9ydC0mZ3Q7cnhfc2tiOwomIzQzOwkvKiBCb3VuZCBtYWxmb3JtZWQgY2hhaW5zIHdoaWxlIGFsbG93aW5nIG1heGltdW0gZnJhZ21lbnRzIHBlciBmcmFtZS4gKi8KJiM0MzsJdW5zaWduZWQgaW50IGRlc2NfbGltaXQgPSBidWRnZXQgKiBNQVhfU0tCX0ZSQUdTOwogCXVuc2lnbmVkIGludCBjb25zdW1lZCA9IDA7CiAJdW5zaWduZWQgaW50IGZyYW1lX2xlbiwgZnJhZ19sZW47CiAJc3RydWN0IGdtYWNfcnhkZXNjICpyeCA9IE5VTEw7CkBAIC0xNDc1LDcgJiM0MzsxNDc5LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsCiAJciA9IHJ3LmJpdHMucnB0cjsKIAl3ID0gcncuYml0cy53cHRyOwogCi0Jd2hpbGUgKGJ1ZGdldCAmYW1wOyZhbXA7IHcgIT0gcikgewomIzQzOwl3aGlsZSAoYnVkZ2V0ICZhbXA7JmFtcDsgY29uc3VtZWQgJmx0OyBkZXNjX2xpbWl0ICZhbXA7JmFtcDsgdyAhPSByKSB7CiAJCXBhZ2UgPSBOVUxMOwogCQlyeCA9IHBvcnQtJmd0O3J4cV9yaW5nICYjNDM7IHI7CiAJCXdvcmQwID0gcngtJmd0O3dvcmQwOwpAQCAtMTUwMiwxNSAmIzQzOzE1MDYsMTggQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsCiAJCX0KIAogCQlpZiAoIW1hcHBpbmcpIHsKLQkJCW5ldGRldl9lcnIobmV0ZGV2LAotCQkJCSAgICYjMzQ7cnhxWyV1XTogSFcgQlVHOiB6ZXJvIERNQSBkZXNjXG4mIzM0Oywgcik7CiYjNDM7CQkJaWYgKG5ldF9yYXRlbGltaXQoKSkKJiM0MzsJCQkJbmV0ZGV2X2VycihuZXRkZXYsCiYjNDM7CQkJCQkgICAmIzM0O3J4cVsldV06IEhXIEJVRzogemVybyBETUEgZGVzY1xuJiMzNDssCiYjNDM7CQkJCQkgICByKTsKIAkJCWdvdG8gZXJyX2Ryb3A7CiAJCX0KIAogCQkvKiBGcmVlcSBwb2ludGVycyBhcmUgb25lIHBhZ2Ugb2ZmICovCiAJCWdwYWdlID0gZ21hY19nZXRfcXVldWVfcGFnZShnZXRoLCBwb3J0LCBtYXBwaW5nICYjNDM7IFBBR0VfU0laRSk7CiAJCWlmICghZ3BhZ2UpIHsKLQkJCWRldl9lcnIoZ2V0aC0mZ3Q7ZGV2LCAmIzM0O2NvdWxkIG5vdCBmaW5kIG1hcHBpbmdcbiYjMzQ7KTsKJiM0MzsJCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGdldGgtJmd0O2RldiwKJiM0MzsJCQkJCSAgICAmIzM0O2NvdWxkIG5vdCBmaW5kIG1hcHBpbmdcbiYjMzQ7KTsKIAkJCWdvdG8gZXJyX2Ryb3A7CiAJCX0KIAkJcGFnZSA9IGdwYWdlLSZndDtwYWdlOwpAQCAtMTUzNSw3ICYjNDM7MTU0Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LAogCQlpZiAoZnJhZ19uciA9PSBNQVhfU0tCX0ZSQUdTKQogCQkJZ290byBlcnJfZHJvcDsKIAotCQlpZiAoZnJhZ19sZW4gPT0gMCkKJiM0MzsJCWlmIChmcmFnX2xlbiA9PSAwICZhbXA7JmFtcDsgbmV0X3JhdGVsaW1pdCgpKQogCQkJbmV0ZGV2X2VycihuZXRkZXYsICYjMzQ7UmVjZWl2ZWQgZnJhZ21lbnQgd2l0aCBsZW4gPSAwXG4mIzM0Oyk7CiAKIAkJc2tiX2ZpbGxfcGFnZV9kZXNjKHNrYiwgZnJhZ19uciwgcGFnZSwgcGFnZV9vZmZzLCBmcmFnX2xlbik7CkBAIC0xNTc5LDYgJiM0MzsxNTg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsCiAJcG9ydC0mZ3Q7cnhfZnJhZ19uciA9IGZyYWdfbnI7CiAJcG9ydC0mZ3Q7cnhfZHJvcHBpbmcgPSBkcm9wcGluZzsKIAkqZnJlZXFfY29uc3VtZWQgPSBjb25zdW1lZDsKJiM0MzsJKnJlc2NoZWR1bGUgPSBidWRnZXQgJmFtcDsmYW1wOyB3ICE9IHI7CiAJd3JpdGV3KHIsIHB0cl9yZWcpOwogCXJldHVybiByZWNlaXZlZDsKIH0KQEAgLTE1OTAsMTIgJiM0MzsxNTk4LDEzIEBAIHN0YXRpYyBpbnQgZ21hY19uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogCXVuc2lnbmVkIGludCBmcmVlcV90aHJlc2hvbGQ7CiAJdW5zaWduZWQgaW50IGZyZWVxX2NvbnN1bWVkOwogCXVuc2lnbmVkIGludCByZWNlaXZlZDsKJiM0MzsJYm9vbCByZXNjaGVkdWxlOwogCiAJZnJlZXFfdGhyZXNob2xkID0gMSAmbHQ7Jmx0OyAoZ2V0aC0mZ3Q7ZnJlZXFfb3JkZXIgLSAxKTsKIAl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZhbXA7cG9ydC0mZ3Q7cnhfc3RhdHNfc3luY3ApOwogCi0JcmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktJmd0O2RldiwgYnVkZ2V0LCAmYW1wO2ZyZWVxX2NvbnN1bWVkKTsKLQlpZiAocmVjZWl2ZWQgJmx0OyBidWRnZXQpCiYjNDM7CXJlY2VpdmVkID0gZ21hY19yeChuYXBpLSZndDtkZXYsIGJ1ZGdldCwgJmFtcDtmcmVlcV9jb25zdW1lZCwgJmFtcDtyZXNjaGVkdWxlKTsKJiM0MzsJaWYgKCFyZXNjaGVkdWxlICZhbXA7JmFtcDsgcmVjZWl2ZWQgJmx0OyBidWRnZXQpCiAJCSYjNDM7JiM0Mztwb3J0LSZndDtyeF9uYXBpX2V4aXRzOwogCiAJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJmFtcDtwb3J0LSZndDtyeF9zdGF0c19zeW5jcCk7CkBAIC0xNjA2LDEwICYjNDM7MTYxNSwxMSBAQCBzdGF0aWMgaW50IGdtYWNfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAkJZ2V0aF9maWxsX2ZyZWVxKGdldGgsIHRydWUpOwogCX0KIAotCWlmIChyZWNlaXZlZCAmbHQ7IGJ1ZGdldCAmYW1wOyZhbXA7IG5hcGlfY29tcGxldGVfZG9uZShuYXBpLCByZWNlaXZlZCkpCiYjNDM7CWlmICghcmVzY2hlZHVsZSAmYW1wOyZhbXA7IHJlY2VpdmVkICZsdDsgYnVkZ2V0ICZhbXA7JmFtcDsKJiM0MzsJICAgIG5hcGlfY29tcGxldGVfZG9uZShuYXBpLCByZWNlaXZlZCkpCiAJCWdtYWNfZW5hYmxlX3J4X2lycShuYXBpLSZndDtkZXYsIDEpOwogCi0JcmV0dXJuIHJlY2VpdmVkOwomIzQzOwlyZXR1cm4gcmVzY2hlZHVsZSA/IGJ1ZGdldCA6IHJlY2VpdmVkOwogfQogCiBzdGF0aWMgdm9pZCBnbWFjX2R1bXBfZG1hX3N0YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCkBAIC0xNzk4LDcgJiM0MzsxODA4LDcgQEAgc3RhdGljIGlycXJldHVybl90IGdtYWNfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpCiAKIAlpZiAodmFsICZhbXA7IChHTUFDMF9SWF9PVkVSUlVOX0lOVF9CSVQgJmx0OyZsdDsgKG5ldGRldi0mZ3Q7ZGV2X2lkICogOCkpKSB7CiAJCXNwaW5fbG9jaygmYW1wO2dldGgtJmd0O2lycV9sb2NrKTsKLQkJd3JpdGVsKEdNQUMwX1JYREVSUl9JTlRfQklUICZsdDsmbHQ7IChuZXRkZXYtJmd0O2Rldl9pZCAqIDgpLAomIzQzOwkJd3JpdGVsKEdNQUMwX1JYX09WRVJSVU5fSU5UX0JJVCAmbHQ7Jmx0OyAobmV0ZGV2LSZndDtkZXZfaWQgKiA4KSwKIAkJICAgICAgIGdldGgtJmd0O2Jhc2UgJiM0MzsgR0xPQkFMX0lOVEVSUlVQVF9TVEFUVVNfNF9SRUcpOwogCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZhbXA7cG9ydC0mZ3Q7aXJfc3RhdHNfc3luY3ApOwogCQkmIzQzOyYjNDM7cG9ydC0mZ3Q7c3RhdHMucnhfZmlmb19lcnJvcnM7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1NDQKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgaGl0dGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY2AuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIGxldCYjMzk7cyBkaXZlIGludG8gaXQuIEZpcnN0IHRoaW5nJiMzOTtzIGZpcnN0OiBuZWVkIHRvIGNvbmZpcm0gdGhlIGFyY2hpdGVjdHVyZSB0aGlzIHRhcmdldHMuIEFoLCBhbWQ2NCDigJMgZ29vZCwgbmFycm93cyB0aGluZ3MgZG93biBhIGJpdC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgS2NvbmZpZyBpbXBsaWNhdGlvbnMgZm9yIGBnZW1pbmkuY2AuIExldCYjMzk7cyBzZWUgd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCwgZGlzYWJsZWQsIGFuZCBjb25maWd1cmFibGUuIEZpbmFsbHksIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBNYWtlZmlsZSBhbmQgS2NvbmZpZyBmaWxlcyBmb3IgdGhhdCBtb2R1bGUsIHNvIEkmIzM5O2xsIHNlYXJjaCBmb3IgYGdlbWluaS5jYCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvYCB0byBlbnN1cmUgSSBoYXZlIHRoZSBmdWxsIHBpY3R1cmUuIFdhbnQgdG8gYmUgdGhvcm91Z2gsIGVzcGVjaWFsbHkgd2l0aCBuZXR3b3JrIGRyaXZlcnMuIEdvdHRhIG1ha2Ugc3VyZSB0aGlzIGNoYW5nZSBpcyBjbGVhbmx5IGludGVncmF0ZWQgYW5kIGRvZXNuJiMzOTt0IGNhdXNlIGFueSB1bmV4cGVjdGVkIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2dlbWluaSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9NYWtlZmlsZS0zLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19HRU1JTklfRVRIRVJORVQpICYjNDM7PSBnZW1pbmkub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjQ2OiNpbmNsdWRlIFwmIzM0O2dlbWluaS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo0ODojZGVmaW5lIERSVl9OQU1FXHRcdFwmIzM0O2dtYWMtZ2VtaW5pXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9OTc9c3RydWN0IGdtYWNfdHhxIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTA0OnN0cnVjdCBnZW1pbmlfZXRoZXJuZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTA2OnN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwNy1cdHU4IGlkOyAvKiAwIG9yIDEgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMDk6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTAtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTU6c3RydWN0IGdlbWluaV9ldGhlcm5ldCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE1Ni1cdHN0cnVjdCBkZXZpY2UgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTU3LVx0dm9pZCBfX2lvbWVtICpiYXNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTk6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNjAtXHRib29sIGluaXRpYWxpemVkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjMwPXN0YXRpYyB2b2lkIGdtYWNfdXBkYXRlX2NvbmZpZzBfcmVnKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzM6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzQtXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjQ2PXN0YXRpYyB2b2lkIGdtYWNfZW5hYmxlX3R4X3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0ODpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0OS1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNjE9c3RhdGljIHZvaWQgZ21hY19kaXNhYmxlX3R4X3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MzpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2NC1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNzg9c3RhdGljIHZvaWQgZ21hY19zZXRfZmxvd19jb250cm9sKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGJvb2wgdHgsIGJvb2wgcngpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI4MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI4MS1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yOTc9c3RhdGljIHZvaWQgZ21hY19hZGp1c3RfbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yOTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyOTk6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0zMDAtXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gbmV0ZGV2LVx1MDAzZXBoeWRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTM2Mj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTM2My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjM2NDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTM2NS1cdHVuaW9uIGdtYWNfc3RhdHVzIHN0YXR1cyA9IHsgLmJpdHMzMiA9IDAgfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTQ2Nj1zdGF0aWMgaW50IGdtYWNfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy00Njcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo0Njg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy00NjktXHR1bmlvbiBnbWFjX2NvbmZpZzAgY29uZmlnMCA9IHsgLmJpdHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz01NDY9c3RhdGljIGludCBnbWFjX3NldHVwX3R4cXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNTQ3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NTQ4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNTQ5LVx0dW5zaWduZWQgaW50IG5fdHhxID0gbmV0ZGV2LVx1MDAzZW51bV90eF9xdWV1ZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjU1MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVx1MDAzZWdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTU1MS1cdHNpemVfdCBlbnRyaWVzID0gMSBcdTAwM2NcdTAwM2MgcG9ydC1cdTAwM2V0eHFfb3JkZXI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz02MDQ9c3RhdGljIHZvaWQgZ21hY19jbGVhbl90eHEoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IGdtYWNfdHhxICp0eHEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02MDYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2MDc6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02MDgtXHR1bnNpZ25lZCBpbnQgbSA9ICgxIFx1MDAzY1x1MDAzYyBwb3J0LVx1MDAzZXR4cV9vcmRlcikgLSAxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2MDk6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02MTAtXHR1bnNpZ25lZCBpbnQgYyA9IHR4cS1cdTAwM2VjcHRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9Njc2PXN0YXRpYyB2b2lkIGdtYWNfY2xlYW51cF90eHFzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTY3Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjY3ODpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTY3OS1cdHVuc2lnbmVkIGludCBuX3R4cSA9IG5ldGRldi1cdTAwM2VudW1fdHhfcXVldWVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2ODA6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02ODEtXHR2b2lkIF9faW9tZW0gKnJ3cHRyX3JlZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTcwMj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfcnhxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTcwMy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjcwNDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjcwNTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVx1MDAzZWdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTcwNi1cdHN0cnVjdCBub250b2VfcWhkciBfX2lvbWVtICpxaGRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9NzI3PXN0YXRpYyBzdHJ1Y3QgZ21hY19xdWV1ZV9wYWdlICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NzI4OmdtYWNfZ2V0X3F1ZXVlX3BhZ2Uoc3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NzI5Olx0XHQgICAgc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03MzAtXHRcdCAgICBkbWFfYWRkcl90IGFkZHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz03NTU9c3RhdGljIHZvaWQgZ21hY19jbGVhbnVwX3J4cShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03NTYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3NTc6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3NTg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03NTktXHRzdHJ1Y3QgZ21hY19yeGRlc2MgKnJ4ZCA9IHBvcnQtXHUwMDNlcnhxX3Jpbmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04MDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjgwNTpzdGF0aWMgc3RydWN0IHBhZ2UgKmdldGhfZnJlZXFfYWxsb2NfbWFwX3BhZ2Uoc3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtODA2LVx0XHRcdFx0XHQgICAgICBpbnQgcG4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04NzEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjg3MjpzdGF0aWMgdW5zaWduZWQgaW50IGdldGhfZmlsbF9mcmVlcShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoLCBib29sIHJlZmlsbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtODczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTkyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6OTI3OnN0YXRpYyBpbnQgZ2V0aF9zZXR1cF9mcmVlcShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy05Mjgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtOTk4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo5OTk6c3RhdGljIHZvaWQgZ2V0aF9jbGVhbnVwX2ZyZWVxKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwMDAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTAzOC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTAzOTpzdGF0aWMgaW50IGdldGhfcmVzaXplX2ZyZWVxKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTA0MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwNDE6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDQyLVx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiA9IHBvcnQtXHUwMDNlbmV0ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMDQzOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpvdGhlcl9wb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDQ0LVx0c3RydWN0IG5ldF9kZXZpY2UgKm90aGVyX25ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTExMDc9c3RhdGljIHZvaWQgZ21hY190eF9pcnFfZW5hYmxlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTA5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTExMDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjExMTE6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTEyLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTExMzk9c3RhdGljIGludCBnbWFjX21hcF90eF9idWZzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTQxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTE0MjpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTExNDMtXHRzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvICpza2Jfc2kgPSAgc2tiX3NoaW5mbyhza2IpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTE0NS1cdHNob3J0IGZyYWcsIGxhc3RfZnJhZyA9IHNrYl9zaS1cdTAwM2Vucl9mcmFncyAtIDE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjExNDY6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTQ3LVx0dW5zaWduZWQgaW50IHdvcmQxLCB3b3JkMywgYnVmbGVuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTI3Nz1zdGF0aWMgbmV0ZGV2X3R4X3QgZ21hY19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMjc5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTI4MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEyODEtXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXHUwMDNjXHUwMDNjIHBvcnQtXHUwMDNldHhxX29yZGVyKSAtIDE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xMzU3PXN0YXRpYyB2b2lkIGdtYWNfZW5hYmxlX2lycShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgZW5hYmxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzU4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTM1OTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzNjA6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzYxLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTEzODY9c3RhdGljIHZvaWQgZ21hY19lbmFibGVfcnhfaXJxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBlbmFibGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEzODcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMzg4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTM4OTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVx1MDAzZWdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEzOTAtXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTQwNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTQwNTpzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmdtYWNfc2tiX2lmX2dvb2RfZnJhbWUoc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNDA2LVx0XHRcdFx0XHQgICAgICB1bmlvbiBnbWFjX3J4ZGVzY18wIHdvcmQwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTQ0NT1zdGF0aWMgdW5zaWduZWQgaW50IGdtYWNfcngoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdW5zaWduZWQgaW50IGJ1ZGdldCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE0NDcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNDQ4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTQ0OS1cdHVuc2lnbmVkIHNob3J0IG0gPSAoMSBcdTAwM2NcdTAwM2MgcG9ydC1cdTAwM2VyeHFfb3JkZXIpIC0gMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTQ1MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVx1MDAzZWdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE0NTEtXHR2b2lkIF9faW9tZW0gKnB0cl9yZWcgPSBwb3J0LVx1MDAzZXJ4cV9yd3B0cjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE1OTQ9c3RhdGljIGludCBnbWFjX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE1OTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTk2Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmFwaS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTk3Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXHUwMDNlZ2V0aDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTU5OC1cdHVuc2lnbmVkIGludCBmcmVlcV90aHJlc2hvbGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xNjI1PXN0YXRpYyB2b2lkIGdtYWNfZHVtcF9kbWFfc3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTYyNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE2Mjc6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNjI4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXHUwMDNlZ2V0aDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTYyOS1cdHZvaWQgX19pb21lbSAqcHRyX3JlZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE2OTY9c3RhdGljIHZvaWQgZ21hY191cGRhdGVfaHdfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTY5Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE2OTg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNjk5LVx0dW5zaWduZWQgaW50IHJ4X2Rpc2NhcmRzLCByeF9tY2FzdCwgcnhfYmNhc3Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3MDA6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzAxLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE3MzI9c3RhdGljIHUzMiBnbWFjX2dldF9pbnRyX2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzMzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTczNDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3MzU6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzM2LVx0dm9pZCBfX2lvbWVtICppcnFpZl9yZWcsICppcnFlbl9yZWc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xNzUwPXN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBnbWFjX2NvYWxlc2NlX2RlbGF5X2V4cGlyZWQoc3RydWN0IGhydGltZXIgKnRpbWVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzUxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTc1MjpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3NTM6XHRcdGNvbnRhaW5lcl9vZih0aW1lciwgc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzU0LVx0XHRcdCAgICAgcnhfY29hbGVzY2VfdGltZXIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTc2MD1zdGF0aWMgaXJxcmV0dXJuX3QgZ21hY19pcnEoaW50IGlycSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTc2MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3NjI6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NjMtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTc2NDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NjUtXHR1MzIgdmFsLCBvcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTgyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTgyMjpzdGF0aWMgdm9pZCBnbWFjX3N0YXJ0X2RtYShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE4MjMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTg0MzpzdGF0aWMgdm9pZCBnbWFjX3N0b3BfZG1hKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg0NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xODU0PXN0YXRpYyBpbnQgZ21hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE4NTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxODU2Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg1Ny1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xOTExPXN0YXRpYyBpbnQgZ21hY19zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5MTIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxOTEzOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTkxNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE5MzU9c3RhdGljIHZvaWQgZ21hY19zZXRfcnhfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTM2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTkzNzpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5MzgtXHR1bmlvbiBnbWFjX3J4X2ZsdHIgZmlsdGVyID0geyAuYml0cyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE5NzA9c3RhdGljIHZvaWQgZ21hY193cml0ZV9tYWNfYWRkcmVzcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTcxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTk3MjpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5NzMtXHRfX2xlMzIgYWRkclszXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE5OTM9c3RhdGljIHZvaWQgZ21hY19jbGVhcl9od19zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTk0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTk5NTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5OTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMDA1PXN0YXRpYyB2b2lkIGdtYWNfZ2V0X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIwMDcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMDA4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjAwOS1cdHVuc2lnbmVkIGludCBzdGFydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIwNzQ9c3RhdGljIGludCBnbWFjX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjA3Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIwNzc6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMDc4LVx0aW50IGVuYWJsZSA9IGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX1JYQ1NVTTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIxMDU9c3RhdGljIHZvaWQgZ21hY19nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjEwNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIxMDg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMTA5LVx0dW5zaWduZWQgaW50IHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjE4MD1zdGF0aWMgdm9pZCBnbWFjX2dldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMTgyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjE4MzpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIxODQtXHR1bmlvbiBnbWFjX2NvbmZpZzAgY29uZmlnMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIyMDY9c3RhdGljIHZvaWQgZ21hY19nZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjEwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjIxMTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyMTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMjI2PXN0YXRpYyBpbnQgZ21hY19zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjMwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjIzMTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyMzItXHRpbnQgZXJyID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIyNDk9c3RhdGljIGludCBnbWFjX2dldF9jb2FsZXNjZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI1My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIyNTQ6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI2Mz1zdGF0aWMgaW50IGdtYWNfc2V0X2NvYWxlc2NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjY3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjI2ODpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyNjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMjgxPXN0YXRpYyB1MzIgZ21hY19nZXRfbXNnbGV2ZWwoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI4Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIyODM6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjg0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI4OD1zdGF0aWMgdm9pZCBnbWFjX3NldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1MzIgbGV2ZWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyODkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMjkwOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIzMTU9c3RhdGljIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBnbWFjXzM1MXhfZXRodG9vbF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzM2OnN0YXRpYyBpcnFyZXR1cm5fdCBnZW1pbmlfcG9ydF9pcnFfdGhyZWFkKGludCBpcnEsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzMzcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzM4LVx0dW5zaWduZWQgbG9uZyBpcnFtYXNrID0gU1dGUV9FTVBUWV9JTlRfQklUO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzM5Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjM0MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzNDEtXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjM1ODpzdGF0aWMgaXJxcmV0dXJuX3QgZ2VtaW5pX3BvcnRfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzNTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzYwOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjM2MTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzNjItXHRpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzODc6c3RhdGljIHZvaWQgZ2VtaW5pX3BvcnRfcmVtb3ZlKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM4OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzk3OnN0YXRpYyB2b2lkIGdlbWluaV9ldGhlcm5ldF9pbml0KHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzOTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjQ0OTpzdGF0aWMgdm9pZCBnZW1pbmlfcG9ydF9zYXZlX21hY19hZGRyKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ1MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNDU5OnN0YXRpYyBpbnQgZ2VtaW5pX2V0aGVybmV0X3BvcnRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ2MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDYyLVx0c3RydWN0IGRldmljZV9ub2RlICpucCA9IHBkZXYtXHUwMDNlZGV2Lm9mX25vZGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0NjM6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0NjQtXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwZGV2LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjQ2NTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0NjYtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjUyOS1cdC8qIE1heWJlIHRoZXJlIGlzIGEgbmljZSBldGhlcm5ldCBhZGRyZXNzIHdlIHNob3VsZCB1c2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjUzMDpcdGdlbWluaV9wb3J0X3NhdmVfbWFjX2FkZHIocG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI1MzEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNTQ4LVx0LyogVGhpcyB3aWxsIGp1c3QgYmUgZG9uZSBvbmNlIGJvdGggcG9ydHMgYXJlIHVwIGFuZCByZXNldCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNTQ5Olx0Z2VtaW5pX2V0aGVybmV0X2luaXQoZ2V0aCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI1NTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNTkyLVx0XHRcdFx0XHRwb3J0LVx1MDAzZWlycSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjU5MzpcdFx0XHRcdFx0Z2VtaW5pX3BvcnRfaXJxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNTk0Olx0XHRcdFx0XHRnZW1pbmlfcG9ydF9pcnFfdGhyZWFkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNTk1LVx0XHRcdFx0XHRJUlFGX1NIQVJFRCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MTk6c3RhdGljIHZvaWQgZ2VtaW5pX2V0aGVybmV0X3BvcnRfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MjAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjIxOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MjM6XHRnZW1pbmlfcG9ydF9yZW1vdmUocG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MjQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MjctXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2Mjg6XHRcdC5jb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyOS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjMxLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MzI6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZ2VtaW5pX2V0aGVybmV0X3BvcnRfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjM0OnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGdlbWluaV9ldGhlcm5ldF9wb3J0X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYzNS1cdC5kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MzY6XHRcdC5uYW1lID0gXCYjMzQ7Z2VtaW5pLWV0aGVybmV0LXBvcnRcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2Mzc6XHRcdC5vZl9tYXRjaF90YWJsZSA9IGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjM4LVx0fSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYzOTpcdC5wcm9iZSA9IGdlbWluaV9ldGhlcm5ldF9wb3J0X3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjQwOlx0LnJlbW92ZSA9IGdlbWluaV9ldGhlcm5ldF9wb3J0X3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY0MS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjQzOnN0YXRpYyBpbnQgZ2VtaW5pX2V0aGVybmV0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2NDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQ1LVx0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2NDY6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQ3LVx0dW5zaWduZWQgaW50IHJldHJ5ID0gNTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2ODI6c3RhdGljIHZvaWQgZ2VtaW5pX2V0aGVybmV0X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjgzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY4NDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY4NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZ2VtaW5pX2V0aGVybmV0X29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTEtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2OTI6XHRcdC5jb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXRcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY5NS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjk2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2OTg6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ2VtaW5pX2V0aGVybmV0X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY5OS1cdC5kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MDAtXHRcdC5uYW1lID0gRFJWX05BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MDE6XHRcdC5vZl9tYXRjaF90YWJsZSA9IGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcwMi1cdH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MDM6XHQucHJvYmUgPSBnZW1pbmlfZXRoZXJuZXRfcHJvYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MDQ6XHQucmVtb3ZlID0gZ2VtaW5pX2V0aGVybmV0X3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcwNS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzA3OnN0YXRpYyBpbnQgX19pbml0IGdlbWluaV9ldGhlcm5ldF9tb2R1bGVfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzA4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MTE6XHRyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoXHUwMDI2Z2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcxMi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzE1Olx0cmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKFx1MDAyNmdlbWluaV9ldGhlcm5ldF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzE2LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzE3Olx0XHRwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcihcdTAwMjZnZW1pbmlfZXRoZXJuZXRfcG9ydF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzE4LVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcyMi19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MjM6bW9kdWxlX2luaXQoZ2VtaW5pX2V0aGVybmV0X21vZHVsZV9pbml0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcyNTpzdGF0aWMgdm9pZCBfX2V4aXQgZ2VtaW5pX2V0aGVybmV0X21vZHVsZV9leGl0KHZvaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzI3Olx0cGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoXHUwMDI2Z2VtaW5pX2V0aGVybmV0X2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3Mjg6XHRwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcihcdTAwMjZnZW1pbmlfZXRoZXJuZXRfcG9ydF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzI5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjczMDptb2R1bGVfZXhpdChnZW1pbmlfZXRoZXJuZXRfbW9kdWxlX2V4aXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzMxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE1OTE3CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyBHZW1pbmkgRXRoZXJuZXQgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgYmVmb3JlIEkgZGl2ZSBpbiBhbnkgZnVydGhlciwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnN0cmFpbnRzIG9uIGBDT05GSUdfR0VNSU5JX0VUSEVSTkVUYC4gVG8gZ2V0IGEgaGFuZGxlIG9uIHRoYXQsIEkmIzM5O20gZ29pbmcgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIEtjb25maWcgZmlsZSBmb3IgQ29ydGluYSBFdGhlcm5ldCBkcml2ZXJzLiBJIHN1c3BlY3QgaXQmIzM5O3MgaW4gdGhlIHVzdWFsIHBsYWNlOiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnYC4gVGhpcyBzaG91bGQgcmV2ZWFsIHRoZSBkZXBlbmRlbmNpZXMuIEkgZXhwZWN0IHRvIHNlZSB0aGUgdHlwaWNhbCBoYXJkd2FyZSBmZWF0dXJlIGRlcGVuZGVuY2llcywgbGlrZSBhIHNwZWNpZmljIFBIWSBvciBNQUMgY29uZmlndXJhdGlvbi4gSXQgY291bGQgYWxzbyBkZXBlbmQgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMsIHBlcmhhcHMgc29tZSBzcGVjaWZpYyBwbGF0Zm9ybSBzdXBwb3J0LiBMZXQmIzM5O3MgZGlnIGluIGFuZCBmaWd1cmUgb3V0IGV4YWN0bHkgd2hhdCBuZWVkcyB0byBiZSBlbmFibGVkIG9yIGluIHBsYWNlIGZvciB0aGlzIGRyaXZlciB0byBiZWNvbWUgYXZhaWxhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0dFTUlOSV9FVEhFUk5FVCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnPTEyPWlmIE5FVF9WRU5ET1JfQ09SVElOQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnOjE0OmNvbmZpZyBHRU1JTklfRVRIRVJORVRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvS2NvbmZpZy0xNS1cdHRyaXN0YXRlIFwmIzM0O0dlbWluaSBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL01ha2VmaWxlLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0dFTUlOSV9FVEhFUk5FVCkgJiM0Mzs9IGdlbWluaS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuaC04LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuaDo5OiNpZm5kZWYgX0dFTUlOSV9FVEhFUk5FVF9IXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjEwOiNkZWZpbmUgX0dFTUlOSV9FVEhFUk5FVF9IXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oLTExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmg9OTUzPXN0cnVjdCBub250b2VfcWhkciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuaC05NTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjk1ODojZW5kaWYgLyogX0dFTUlOSV9FVEhFUk5FVF9IICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY0ODAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBiYXNlZCBvbiB0aGUgZmlsZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnYDoKCioqRGl2aW5nIGludG8gdGhlIENvcnRpbmEgRXRoZXJuZXQgS2NvbmZpZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIEtjb25maWcgZm9yIHRoZSBDb3J0aW5hIEV0aGVybmV0IGRyaXZlcnMuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWZpbmVkIGZvciBpbnRlZ3JhdGluZyB0aGVzZSBQSFlzL01BQ3MgaW50byB0aGUga2VybmVsLiBUaGUgc3RydWN0dXJlIGlzIHByZXR0eSBzdGFuZGFyZCwgYXMgZXhwZWN0ZWQuIEkmIzM5O20gcXVpY2tseSBzY2FubmluZyBmb3IgdGhlIHVzdWFsIHN1c3BlY3RzOiBtb2R1bGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHN0YXRlcywgYW5kIHZpc2liaWxpdHkgYmFzZWQgb24gcGxhdGZvcm0gb3Igb3RoZXIgZHJpdmVyIGZlYXR1cmVzLgoKSSYjMzk7bSBjaGVja2luZyBob3cgdGhlIENvcnRpbmEgZHJpdmVycyBhcmUgYnJva2VuIGRvd247IGxpa2VseSB0aGVyZSBhcmUgc2VwYXJhdGUgb3B0aW9ucyBmb3IgdGhlIGRpZmZlcmVudCBDb3J0aW5hIFNvQ3Mgb3IgUEhZIGZhbWlsaWVzIHRoYXQgYXJlIHN1cHBvcnRlZC4gSSYjMzk7bGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBgc2VsZWN0YCBzdGF0ZW1lbnRzLCB3aGljaCBpbmRpY2F0ZSBkZXBlbmRlbmNpZXMgb24gb3RoZXIgY29yZSBuZXR3b3JraW5nIGNvbXBvbmVudHMuIEFyZSB0aGV5IHVzaW5nIHRoZSBzdGFuZGFyZCBQSFkgaW50ZXJmYWNlcywgb3IgaGF2ZSB0aGV5IGJ1aWx0IHNvbWUgcHJvcHJpZXRhcnkgb25lcz8gQXJlIHRoZXJlIHBsYXRmb3JtLXNwZWNpZmljIGRlcGVuZGVuY2llcyBoZXJlPyBBbnkgdW51c3VhbCBoYXJkd2FyZSBmZWF0dXJlcyBlbmFibGVkIGhlcmU/CgpJJiMzOTttIGFsc28gbG9va2luZyBmb3IgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzLiBBcmUgdGhlcmUgYW55IGZlYXR1cmVzIHdoaWNoIGFyZSBlbmFibGVkIGJhc2VkIG9uIGhhdmluZyBvdGhlciBkcml2ZXJzIGNvbXBpbGVkIGluLCBvciBvbiB0aGUgcGxhdGZvcm0/IFdoYXQgYWJvdXQgb3B0aW9uYWwgcG93ZXIgbWFuYWdlbWVudCBzdXBwb3J0IG9yIHNwZWNpZmljIGNsb2NrIGNvbmZpZ3VyYXRpb24/IFRoYXQmIzM5O3MgYWx3YXlzIGEgZ29vZCBzaWduIG9mIHdlbGwtaW50ZWdyYXRlZCBjb2RlLgoKSSYjMzk7bGwgYmUgY2hlY2tpbmcgdGhlIGhlbHAgdGV4dCBmb3IgZWFjaCBvcHRpb24uIFRoaXMgd2lsbCBxdWlja2x5IGdpdmUgbWUgYW4gb3ZlcnZpZXcgb2YgdGhlIHB1cnBvc2Ugb2YgZWFjaCBvZiB0aGUgY29uZmlncy4gVGhpcyBpcyBhbiBpbXBvcnRhbnQgcGFydCBvZiB0aGUgcmV2aWV3IHByb2Nlc3MuIElmIHRoZSBkb2N1bWVudGF0aW9uIGlzIGNsZWFyIGFuZCBhY2N1cmF0ZSwgaXQgc2F2ZXMgYSBsb3Qgb2YgdGltZS4gSWYgbm90LCBpdCBtZWFucyBJJiMzOTtsbCBoYXZlIHRvIGRlbHZlIGRlZXBlciBpbnRvIHRoZSBjb2RlIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyByZWFsbHkgZ29pbmcgb24uIEkmIzM5O2xsIGJlIG1ha2luZyBhIG1lbnRhbCBub3RlIG9mIGFueSByZWQgZmxhZ3MgSSBzZWUsIGxpa2UgdW5jbGVhciBvcHRpb24gZGVzY3JpcHRpb25zIG9yIGNvbnZvbHV0ZWQgZGVwZW5kZW5jaWVzLiBPdmVyYWxsLCBJIGV4cGVjdCB0byBzZWUgYSB3ZWxsLXN0cnVjdHVyZWQgS2NvbmZpZyB0aGF0IHJlZmxlY3RzIGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgYW5kIGludGVncmF0aW9uIHdpdGggdGhlIExpbnV4IGtlcm5lbCYjMzk7cyBuZXR3b3JraW5nIHN0YWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuICAgMjpcdCMgQ29ydGluYSBldGhlcm5ldCBkZXZpY2VzXG4gICAzOlx0XG4gICA0Olx0Y29uZmlnIE5FVF9WRU5ET1JfQ09SVElOQVxuICAgNTpcdFx0Ym9vbCBcJiMzNDtDb3J0aW5hIEdlbWluaSBkZXZpY2VzXCYjMzQ7XG4gICA2Olx0XHRkZWZhdWx0IHlcbiAgIDc6XHRcdGhlbHBcbiAgIDg6XHRcdCAgSWYgeW91IGhhdmUgYSBuZXR3b3JrIChFdGhlcm5ldCkgY2FyZCBiZWxvbmdpbmcgdG8gdGhpcyBjbGFzcywgc2F5IFlcbiAgIDk6XHRcdCAgYW5kIHJlYWQgdGhlIEV0aGVybmV0LUhPV1RPLCBhdmFpbGFibGUgZnJvbVxuICAxMDpcdFx0ICBcdTAwM2NodHRwczovL3d3dy50bGRwLm9yZy9kb2NzLmh0bWwjaG93dG9cdTAwM2UuXG4gIDExOlx0XG4gIDEyOlx0aWYgTkVUX1ZFTkRPUl9DT1JUSU5BXG4gIDEzOlx0XG4gIDE0Olx0Y29uZmlnIEdFTUlOSV9FVEhFUk5FVFxuICAxNTpcdFx0dHJpc3RhdGUgXCYjMzQ7R2VtaW5pIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFwmIzM0O1xuICAxNjpcdFx0ZGVwZW5kcyBvbiBPRlxuICAxNzpcdFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU1cbiAgMTg6XHRcdHNlbGVjdCBQSFlMSUJcbiAgMTk6XHRcdHNlbGVjdCBDUkMzMlxuICAyMDpcdFx0aGVscFxuICAyMTpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBTdG9yTGluayBTTDM1MXggKEdlbWluaSkgZHVhbCBHaWdhYml0IEV0aGVybmV0LlxuICAyMjpcdFxuICAyMzpcdGVuZGlmICMgTkVUX1ZFTkRPUl9DT1JUSU5BXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTcyMzEKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxMDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBHZW1pbmkgRXRoZXJuZXQgRHJpdmVyKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBgR0VNSU5JX0VUSEVSTkVUYCwgd2hpY2ggZnJvbSB0aGUgc291bmQgb2YgaXQsIGlzIGFuIFNvQyBFdGhlcm5ldCBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgZm9yIHRoZSAmIzM0O1N0b3JMaW5rIFNMMzUxeCAoR2VtaW5pKSBkdWFsIEdpZ2FiaXQgRXRoZXJuZXQuJiMzNDsgQW5kIGl0IGFwcGVhcnMgdG8gYmUgYSBwbGF0Zm9ybSBkcml2ZXIsIGJhc2VkIG9uIERldmljZSBUcmVlIGluc3RhbnRpYXRpb24uIE9rYXksIHNvIGZhciwgc28gZ29vZCDigJMgd2UmIzM5O3JlIGxvb2tpbmcgYXQgYGNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0YCBhbmQgYGNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRgLiBCdXQgd2FpdCBhIG1pbnV0ZS4uLiB0aGUgU3RvckxpbmsgU0wzNTF4IEdlbWluaSBpcyBhbiAqQVJNKiBTb0MsIGlzbiYjMzk7dCBpdD8gSSBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSB3aGV0aGVyICYjMzQ7R2VtaW5pJiMzNDsgaXMgZGlyZWN0bHkgdGllZCB0byBhIHNwZWNpZmljIEFSTSBhcmNoaXRlY3R1cmUgb3IgcGxhdGZvcm0uIFRoaXMgaXMgaW1wb3J0YW50IHRvIGRldGVybWluZSBpdHMgY29tcGF0aWJpbGl0eSBhbmQgd2hlcmUgaXQgZml0cyB3aXRoaW4gbXkgZXhpc3Rpbmcga25vd2xlZGdlIGJhc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1NMMzUxeHxjb3J0aW5hLGdlbWluaSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cz0xMD0vIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHMtMTEtXHRtb2RlbCA9IFwmIzM0O0QtTGluayBESVItNjg1IFh0cmVtZSBOIFN0b3JhZ2UgUm91dGVyXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0czoxMjpcdGNvbXBhdGlibGUgPSBcJiMzNDtkbGluayxkaXItNjg1XCYjMzQ7LCBcJiMzNDtjb3J0aW5hLGdlbWluaVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHMtMTMtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cz00MjQ9XHRcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0czo0MjU6XHRcdFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcdTAwM2MwXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0czo0MjY6XHRcdFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cy00MjctXHRcdFx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTEyPS8ge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0cy0xMy1cdG1vZGVsID0gXCYjMzQ7RC1MaW5rIEROUy0zMTMgMS1CYXkgTmV0d29yayBTdG9yYWdlIEVuY2xvc3VyZVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHM6MTQ6XHRjb21wYXRpYmxlID0gXCYjMzQ7ZGxpbmssZG5zLTMxM1wmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTE1LVx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHM9MTY4PVx0XHRmbGFzaEAzMDAwMDAwMCB7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0cy0xNzItXHRcdFx0ICovXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzOjE3MzpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZmxhc2hcJiMzNDssIFwmIzM0O2plZGVjLWZsYXNoXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0cy0xNzQtXHRcdFx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTI4Mj1cdFx0c2F0YTogc2F0YUA0NjAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTI4My1cdFx0XHQvKiBUaGUgUk9NIHVzZXMgdGhpcyBtdXhtb2RlICovXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzOjI4NDpcdFx0XHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFx1MDAzYzBcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzOjI4NTpcdFx0XHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTI4Ni1cdFx0XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzPTEyPS8ge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjEwYi5kdHMtMTMtXHRtb2RlbCA9IFwmIzM0O1JhaWRzb25pYyBOQVMgSUItNDIxMC1CXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjEwYi5kdHM6MTQ6XHRjb21wYXRpYmxlID0gXCYjMzQ7cmFpZHNvbmljLGliLTQyMTAtYlwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0cy0xNS1cdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0cz0xNjE9XHRcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjEwYi5kdHM6MTYyOlx0XHRcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXHUwMDNjMFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzOjE2MzpcdFx0XHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0cy0xNjQtXHRcdFx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cz0xMT0vIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIyMGIuZHRzLTEyLVx0bW9kZWwgPSBcJiMzNDtSYWlkc29uaWMgTkFTIElCLTQyMjAtQlwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIyMGIuZHRzOjEzOlx0Y29tcGF0aWJsZSA9IFwmIzM0O3JhaWRzb25pYyxpYi00MjIwLWJcJiMzNDssIFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHMtMTQtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHM9MTUxPVx0XHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIyMGIuZHRzOjE1MjpcdFx0XHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFx1MDAzYzBcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0czoxNTM6XHRcdFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHMtMTU0LVx0XHRcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzPTExPS8ge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzLTEyLVx0bW9kZWwgPSBcJiMzNDtFZGltYXggTlMtMjUwMlwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0czoxMzpcdGNvbXBhdGlibGUgPSBcJiMzNDtlZGltYXgsbnMtMjUwMlwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5zMjUwMi5kdHMtMTQtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzPTgzPVx1MDAyNnNhdGEge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzOjg0Olx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcdTAwM2MzXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzOjg1Olx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzLTg2LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHM9MTE9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHMtMTItXHRtb2RlbCA9IFwmIzM0O1RlbHRvbmlrYSBSVVQxeHhcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHM6MTM6XHRjb21wYXRpYmxlID0gXCYjMzQ7dGVsdG9uaWthLHJ1dDF4eFwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHMtMTQtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM9MTQ9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNsOTM1MTJyLmR0cy0xNS1cdG1vZGVsID0gXCYjMzQ7U3RvcmxpbmsgU2VtaWNvbmR1Y3RvciBHZW1pbmkzMjQgRVYtQm9hcmQgLyBTdG9ybSBTZW1pY29uZHVjdG9yIFNMOTM1MTJSX0JSRFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzOjE2Olx0Y29tcGF0aWJsZSA9IFwmIzM0O3N0b3JsaW5rLGdlbWluaTMyNFwmIzM0OywgXCYjMzQ7c3Rvcm0sc2w5MzUxMnJcJiMzNDssIFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHMtMTctXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM9MjQxPVx0XHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzOjI0MjpcdFx0XHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFx1MDAzYzBcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNsOTM1MTJyLmR0czoyNDM6XHRcdFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHMtMjQ0LVx0XHRcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zcTIwMS5kdHM9MTE9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cy0xMi1cdG1vZGVsID0gXCYjMzQ7SVRpYW4gU3F1YXJlIE9uZSBTUTIwMVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzOjEzOlx0Y29tcGF0aWJsZSA9IFwmIzM0O2l0aWFuLHNxMjAxXCYjMzQ7LCBcJiMzNDtjb3J0aW5hLGdlbWluaVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzLTE0LVx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzPTIzNz1cdFx0c2F0YTogc2F0YUA0NjAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0czoyMzg6XHRcdFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcdTAwM2MwXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zcTIwMS5kdHM6MjM5Olx0XHRcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzLTI0MC1cdFx0XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHM9MTE9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzLTEyLVx0bW9kZWwgPSBcJiMzNDtTU0kgMTMyOFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHM6MTM6XHRjb21wYXRpYmxlID0gXCYjMzQ7c3NpLDEzMjhcJiMzNDssIFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zc2kxMzI4LmR0cy0xNC1cdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzPTkzPVx1MDAyNnNhdGEge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zc2kxMzI4LmR0czo5NDpcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXHUwMDNjMFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHM6OTU6XHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzLTk2LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cz0xMz0vIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktdmVyYmF0aW0tczA4djE5MDEtZDEuZHRzLTE0LVx0bW9kZWwgPSBcJiMzNDtWZXJiYXRpbSBHaWdhYml0IEV0aGVybmV0IEhhcmQgRHJpdmUgUzA4VjE5MDEtRDFcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0czoxNTpcdGNvbXBhdGlibGUgPSBcJiMzNDt2ZXJiYXRpbSxzMDh2MTkwMS1kMVwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cy0xNi1cdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cz0xNzU9XHRcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS12ZXJiYXRpbS1zMDh2MTkwMS1kMS5kdHM6MTc2Olx0XHRcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXHUwMDNjMFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktdmVyYmF0aW0tczA4djE5MDEtZDEuZHRzOjE3NzpcdFx0XHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cy0xNzgtXHRcdFx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXdiZDExMS5kdHM9MTE9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXdiZDExMS5kdHMtMTItXHRtb2RlbCA9IFwmIzM0O1dpbGlib2FyZCBXQkQtMTExXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzOjEzOlx0Y29tcGF0aWJsZSA9IFwmIzM0O3dpbGlnZWFyLHdpbGlib2FyZC13YmQxMTFcJiMzNDssIFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzLTE0LVx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktd2JkMjIyLmR0cz0xMT0vIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktd2JkMjIyLmR0cy0xMi1cdG1vZGVsID0gXCYjMzQ7V2lsaWJvYXJkIFdCRC0yMjJcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXdiZDIyMi5kdHM6MTM6XHRjb21wYXRpYmxlID0gXCYjMzQ7d2lsaWdlYXIsd2lsaWJvYXJkLXdiZDIyMlwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXdiZDIyMi5kdHMtMTQtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTYtI2luY2x1ZGUgXHUwMDNjZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvaXJxLmhcdTAwM2VcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo3OiNpbmNsdWRlIFx1MDAzY2R0LWJpbmRpbmdzL2Nsb2NrL2NvcnRpbmEsZ2VtaW5pLWNsb2NrLmhcdTAwM2VcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo4OiNpbmNsdWRlIFx1MDAzY2R0LWJpbmRpbmdzL3Jlc2V0L2NvcnRpbmEsZ2VtaW5pLXJlc2V0LmhcdTAwM2VcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS05LSNpbmNsdWRlIFx1MDAzY2R0LWJpbmRpbmdzL2dwaW8vZ3Bpby5oXHUwMDNlXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTE5PVx0XHRmbGFzaDogZmxhc2hAMzAwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjIwOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS1mbGFzaFwmIzM0OywgXCYjMzQ7Y2ZpLWZsYXNoXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTIxLVx0XHRcdHN5c2NvbiA9IFx1MDAzY1x1MDAyNnN5c2Nvblx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9Mjg9XHRcdHN5c2Nvbjogc3lzY29uQDQwMDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyOTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktc3lzY29uXCYjMzQ7LFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTMwLVx0XHRcdFx0ICAgICBcJiMzNDtzeXNjb25cJiMzNDssIFwmIzM0O3NpbXBsZS1tZmRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQ0PVx0XHRcdHBpbmN0cmwge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjQ1Olx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLXBpbmN0cmxcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDYtXHRcdFx0XHRyZWdtYXAgPSBcdTAwM2NcdTAwMjZzeXNjb25cdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTE2Mz1cdFx0d2F0Y2hkb2dANDEwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjE2NDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktd2F0Y2hkb2dcJiMzNDssIFwmIzM0O2ZhcmFkYXksZnR3ZHQwMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMTY1LVx0XHRcdHJlZyA9IFx1MDAzYzB4NDEwMDAwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0xOTc9XHRcdHJ0Y0A0NTAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MTk4Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS1ydGNcJiMzNDssIFwmIzM0O2ZhcmFkYXksZnRydGMwMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMTk5LVx0XHRcdHJlZyA9IFx1MDAzYzB4NDUwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTIwOD1cdFx0c2F0YTogc2F0YUA0NjAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MjA5Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS1zYXRhLWJyaWRnZVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0yMTAtXHRcdFx0cmVnID0gXHUwMDNjMHg0NjAwMDAwMCAweDEwMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MjQ4PVx0XHRwb3dlci1jb250cm9sbGVyQDRiMDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyNDk6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLXBvd2VyLWNvbnRyb2xsZXJcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjUwLVx0XHRcdHJlZyA9IFx1MDAzYzB4NGIwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTI1Nj1cdFx0Z3BpbzA6IGdwaW9ANGQwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjI1NzpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZ3Bpb1wmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdGdwaW8wMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjU4LVx0XHRcdHJlZyA9IFx1MDAzYzB4NGQwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTI2OD1cdFx0Z3BpbzE6IGdwaW9ANGUwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjI2OTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZ3Bpb1wmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdGdwaW8wMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjcwLVx0XHRcdHJlZyA9IFx1MDAzYzB4NGUwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTI4MD1cdFx0Z3BpbzI6IGdwaW9ANGYwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjI4MTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZ3Bpb1wmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdGdwaW8wMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjgyLVx0XHRcdHJlZyA9IFx1MDAzYzB4NGYwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTI5Mj1cdFx0cGNpQDUwMDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyOTM6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLXBjaVwmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdHBjaTEwMFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0yOTQtXHRcdFx0Lypcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MzU5PVx0XHRldGhlcm5ldDogZXRoZXJuZXRANjAwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjM2MDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzYxLVx0XHRcdHJlZyA9IFx1MDAzYzB4NjAwMDAwMDAgMHg0MDAwXHUwMDNlLCAvKiBHbG9iYWwgcmVnaXN0ZXJzLCBxdWV1ZSAqL1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zNzE9XHRcdFx0Z21hYzA6IGV0aGVybmV0LXBvcnRAMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzcyOlx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzczLVx0XHRcdFx0cmVnID0gXHUwMDNjMHg2MDAwODAwMCAweDIwMDBcdTAwM2UsIC8qIFBvcnQgMCBETUEvVE9FICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM4Mj1cdFx0XHRnbWFjMTogZXRoZXJuZXQtcG9ydEAxIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTozODM6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zODQtXHRcdFx0XHRyZWcgPSBcdTAwM2MweDYwMDBjMDAwIDB4MjAwMFx1MDAzZSwgLyogUG9ydCAxIERNQS9UT0UgKi9cbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9NDAyPVx0XHRpZGUwOiBpZGVANjMwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjQwMzpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktcGF0YVwmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdGlkZTAxMFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS00MDQtXHRcdFx0cmVnID0gXHUwMDNjMHg2MzAwMDAwMCAweDEwMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQxNT1cdFx0aWRlMTogaWRlQDYzNDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo0MTY6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLXBhdGFcJiMzNDssIFwmIzM0O2ZhcmFkYXksZnRpZGUwMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDE3LVx0XHRcdHJlZyA9IFx1MDAzYzB4NjM0MDAwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT00NDU9XHRcdGRpc3BsYXktY29udHJvbGxlckA2YTAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6NDQ2Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS10dmNcJiMzNDssIFwmIzM0O2ZhcmFkYXksdHZlMjAwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTQ0Ny1cdFx0XHRyZWcgPSBcdTAwM2MweDZhMDAwMDAwIDB4MTAwMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9NDU4PVx0XHR1c2IwOiB1c2JANjgwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjQ1OTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktdXNiXCYjMzQ7LCBcJiMzNDtmYXJhZGF5LGZvdGcyMDBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDYwLVx0XHRcdHJlZyA9IFx1MDAzYzB4NjgwMDAwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT00ODE9XHRcdHVzYjE6IHVzYkA2OTAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6NDgyOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS11c2JcJiMzNDssIFwmIzM0O2ZhcmFkYXksZm90ZzIwMFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS00ODMtXHRcdFx0cmVnID0gXHUwMDNjMHg2OTAwMDAwMCAweDEwMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vbWFjaC1nZW1pbmkvYm9hcmQtZHQuYz01NT1zdGF0aWMgY29uc3QgY2hhciAqZ2VtaW5pX2JvYXJkX2NvbXBhdFtdID0ge1xuYXJjaC9hcm0vbWFjaC1nZW1pbmkvYm9hcmQtZHQuYzo1NjpcdFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7LFxuYXJjaC9hcm0vbWFjaC1nZW1pbmkvYm9hcmQtZHQuYy01Ny1cdE5VTEwsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzOTI4CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMTA5OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbnJlYWNoYWJsZSBDb2RlIEFuYWx5c2lzOiBDb3J0aW5hIEdlbWluaSBFdGhlcm5ldCBvbiBhbWQ2NCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBDb3J0aW5hIEdlbWluaSBFdGhlcm5ldCBkcml2ZXIgY2hhbmdlIHRvIGFuYWx5emUuIFRoZSBjb2RlIGxvb2tzIGxpa2UgaXQmIzM5O3Mgc3BlY2lmaWNhbGx5IGZvciB0aGUgYGFyY2gvYXJtL21hY2gtZ2VtaW5pYCBhbmQgYGFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9gIEFSTSBwbGF0Zm9ybS4gTXkgaW1tZWRpYXRlIGNvbmNlcm4sIGdpdmVuIHRoZSAmIzM0O1RhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0JiMzNDsgaW5zdHJ1Y3Rpb24sIGlzIHdoZXRoZXIgdGhpcyBjb2RlIGlzIGV2ZW4gKnJlYWNoYWJsZSogaW4gYSBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50LgoKSSBjaGVjayB0aGUgS2NvbmZpZyBhbmQgc2VlIHRoYXQgYEdFTUlOSV9FVEhFUk5FVGAgZGVwZW5kcyBvbiBgT0ZgIChEZXZpY2UgVHJlZSkgYW5kIGBIQVNfSU9NRU1gLiBhbWQ2NCAqY2FuKiBoYXZlIGBPRmAgZW5hYmxlZCwgYnV0IGl0JiMzOTtzIG5vdCB0eXBpY2FsIHVubGVzcyBzcGVjaWZpY2FsbHkgY29uZmlndXJlZCBmb3IgaXQsIGxpa2UgdGhyb3VnaCBgT0ZfVU5JVFRFU1RgLiBSZWdhcmRsZXNzLCBldmVuIGlmIEkgY291bGQgY29tcGlsZSB0aGlzIG9uIGFtZDY0LCB0aGUgcmVhbCBpc3N1ZSBpcyB0aGUgaGFyZHdhcmUuCgpUaGUgaW5zdHJ1Y3Rpb25zIGFyZSBjbGVhcjogKnJlYWNoYWJpbGl0eSogaXMgdGhlIHByaW1hcnkgZ2F0ZS4gSSByZXZpc2l0IFNlY3Rpb25zIDEgYW5kIDIgb2YgdGhlIGd1aWRlbGluZXMuIFRoZXkgc3RhdGUgdGhhdCBmdXp6aW5nIGlzIG9ubHkgdmFsdWFibGUgZm9yIGNvZGUgdGhhdCBjYW4gKmV4ZWN1dGUqIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUpLCBlbXVsYXRpbmcgc29mdHdhcmUgZGV2aWNlcyBsaWtlIG5ldGRldiBvciB0dW4vdGFwLgoKUmVhZGluZyB0aHJvdWdoIHRoZSBpbnN0cnVjdGlvbnMsIHRoaXMgaXMgYSBjbGVhciBjYXNlIG9mICYjMzQ7c3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlJiMzNDsuICBUaGUgQ29ydGluYSBHZW1pbmkgaXMgYW4gb24tY2hpcCBFdGhlcm5ldCBjb250cm9sbGVyIGZvciB0aGUgQ29ydGluYSBTTDM1MXggQVJNIFNvQywgdXNpbmcgRGV2aWNlIFRyZWUgKGBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldGApLiBUaGlzIG1lYW5zIGl0IHJlbGllcyBvbiAqc3BlY2lmaWMqIHBoeXNpY2FsIGhhcmR3YXJlLCBvciAqdmVyeSogc3BlY2lmaWMgZW11bGF0aW9uIG9mIHRoZSBBUk0gU29DLiBTdGFuZGFyZCBRRU1VIG9yIEdDRSB2aXJ0dWFsIG1hY2hpbmVzIGZvciBhbWQ2NCAqZG8gbm90KiBlbXVsYXRlIHRoZSBHZW1pbmkgR2lnYWJpdCBFdGhlcm5ldCBoYXJkd2FyZS4gRXZlbiBpZiBJIGNvdWxkIHNvbWVob3cgZW5hYmxlIGBHRU1JTklfRVRIRVJORVRgIG9uIGFtZDY0LCB0aGUgZHJpdmVyIHdvdWxkIG5ldmVyIGJlIGFibGUgdG8gcmVhY2ggYW55IG9mIHRoZSBoYXJkd2FyZSByZWdpc3RlcnMuCgpBbmQganVzdCB0byByZWl0ZXJhdGU6IFRoZSBpbnN0cnVjdGlvbnMgYXJlIHF1aXRlIGV4cGxpY2l0LiBUaGUgcHJvdmlkZWQgY2hhbmdlcyBtb2RpZnkgYGdtYWNfZ2V0X3F1ZXVlX3BhZ2VgLCBgZ21hY19yeGAsIGBnbWFjX25hcGlfcG9sbGAsIGFuZCBgZ21hY19pcnFgIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY2AuIFRoYXQmIzM5O3MgdGhlIGRyaXZlciBmb3IgdGhpcyB2ZXJ5IHNwZWNpZmljIEFSTS1iYXNlZCBjb250cm9sbGVyLiBUaGVzZSBjaGFuZ2VzIGFyZSBzcXVhcmVseSBpbiAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IGFuZCAmIzM0O0NvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSYjMzQ7IGNhdGVnb3JpZXMuICBUaGVyZSYjMzk7cyBubyBwb2ludCBpbiBmdXp6aW5nIHRoaXMgb24gYW1kNjQuICBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgaWYgdGhlcmUmIzM5O3MgKmFueSogdmlydHVhbCBidXMgb3IgdGVzdCBkcml2ZXIgZm9yIGNvcnRpbmEgZ2VtaW5pIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBidXQgSSYjMzk7bSBjb25maWRlbnQgaW4gbXkgYXNzZXNzbWVudC4gSSYjMzk7bGwgZ3JlcCBmb3IgJiMzNDtnZW1pbmktZXRoZXJuZXQmIzM0OyBqdXN0IHRvIG1ha2Ugc3VyZS4gSSYjMzk7bSByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2dlbWluaS1ldGhlcm5ldCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw9MTc9cHJvcGVydGllczpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xOC0gIGNvbXBhdGlibGU6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw6MTk6ICAgIGNvbnN0OiBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTIwLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbD0zNz1wYXR0ZXJuUHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNDUtICAgICAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbDo0NjogICAgICAgIGNvbnN0OiBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldC1wb3J0XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNDctXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sPTg1PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xMDMtICAgIGV0aGVybmV0QDYwMDAwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbDoxMDQ6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXRcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTA1LSAgICAgICAgcmVnID0gXHUwMDNjMHg2MDAwMDAwMCAweDQwMDBcdTAwM2UsIC8qIEdsb2JhbCByZWdpc3RlcnMsIHF1ZXVlICovXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTExMi0gICAgICAgIGdtYWMwOiBldGhlcm5ldC1wb3J0QDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sOjExMzogICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTE0LSAgICAgICAgICAgICAgICByZWcgPSBcdTAwM2MweDYwMDA4MDAwIDB4MjAwMFx1MDAzZSwgLyogUG9ydCAwIERNQS9UT0UgKi9cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTI1LSAgICAgICAgZ21hYzE6IGV0aGVybmV0LXBvcnRAMSB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw6MTI2OiAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xMjctICAgICAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4NjAwMGMwMDAgMHgyMDAwXHUwMDNlLCAvKiBQb3J0IDEgRE1BL1RPRSAqL1xuLS1cbk1BSU5UQUlORVJTPTI4ODI9RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vZ2VtaW5pLnlhbWxcbk1BSU5UQUlORVJTOjI4ODM6RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbFxuTUFJTlRBSU5FUlMtMjg4NC1GOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvY29ydGluYSxnZW1pbmktcGluY3RybC50eHRcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MzU5PVx0XHRldGhlcm5ldDogZXRoZXJuZXRANjAwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjM2MDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzYxLVx0XHRcdHJlZyA9IFx1MDAzYzB4NjAwMDAwMDAgMHg0MDAwXHUwMDNlLCAvKiBHbG9iYWwgcmVnaXN0ZXJzLCBxdWV1ZSAqL1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zNzE9XHRcdFx0Z21hYzA6IGV0aGVybmV0LXBvcnRAMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzcyOlx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzczLVx0XHRcdFx0cmVnID0gXHUwMDNjMHg2MDAwODAwMCAweDIwMDBcdTAwM2UsIC8qIFBvcnQgMCBETUEvVE9FICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM4Mj1cdFx0XHRnbWFjMTogZXRoZXJuZXQtcG9ydEAxIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTozODM6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zODQtXHRcdFx0XHRyZWcgPSBcdTAwM2MweDYwMDBjMDAwIDB4MjAwMFx1MDAzZSwgLyogUG9ydCAxIERNQS9UT0UgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI2MjY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZ2VtaW5pX2V0aGVybmV0X3BvcnRfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyNy1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYyODpcdFx0LmNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS1ldGhlcm5ldC1wb3J0XCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI5LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI2MzQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjM1LVx0LmRyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYzNjpcdFx0Lm5hbWUgPSBcJiMzNDtnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYzNy1cdFx0Lm9mX21hdGNoX3RhYmxlID0gZ2VtaW5pX2V0aGVybmV0X3BvcnRfb2ZfbWF0Y2gsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNjkwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjkxLVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjkyOlx0XHQuY29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0XCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjkzLVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjczMzAKCQkJCQkJCW91dHB1dDogMTE5CgkJCQkJCQl0aG91Z2h0czogMjQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIENvcnRpbmEgR2VtaW5pIEV0aGVybmV0IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTt2ZSBleGFtaW5lZCB0aGlzIHBhdGNoLCBhbmQgaGVyZSYjMzk7cyBteSB0YWtlLiBJdCYjMzk7cyBmb2N1c2VkIGVudGlyZWx5IG9uIHRoZSBDb3J0aW5hIFN5c3RlbXMgR2VtaW5pIChTTDM1MXgpIEFSTSBTb0MgZXRoZXJuZXQgY29udHJvbGxlci4gTm90aGluZyBlbHNlIGluIHRoZSBlbnZpcm9ubWVudCBzZWVtcyB0byBiZSByZWxhdGVkIHRvIGl0LCB3aGljaCBpcyBhbiBpbXBvcnRhbnQgZmlyc3QgY2hlY2suIENydWNpYWxseSwgSSBrbm93IHRoYXQgdGhpcyBkcml2ZXIgaXMgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLCB3aGljaCBtZWFucyBpdCByZWxpZXMgb24gc3BlY2lmaWMsIHBoeXNpY2FsIGhhcmR3YXJlLCBzcGVjaWZpY2FsbHkgYW4gQVJNIFNvQy4gSXQmIzM5O3Mgbm90IHNvbWV0aGluZyBJIGNhbiBqdXN0IHNwaW4gdXAgYW5kIHRlc3QgaW4gYSBzdGFuZGFyZCwgdmlydHVhbGl6ZWQgYW1kNjQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLiBUaGF0JiMzOTtzIGEgZGVhbGJyZWFrZXIuCgpMb29raW5nIGF0IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSwgaXQgcGVyZmVjdGx5IGZpdHM6IHVucmVhY2hhYmxlIGhhcmR3YXJlLCBiZWNhdXNlIGl0JiMzOTtzIHRpZWQgdG8gYW4gQVNJQyBvciBTb0MgdGhhdCYjMzk7cyBub3QgZW11bGF0ZWQgaGVyZS4gQW5kIHRoZSBjb2RlIHBhdGhzIGFyZSBleGNsdXNpdmUgdG8gQVJNLCB3aGlsZSBteSB0ZXN0aW5nIGVudmlyb25tZW50IGlzIGFtZDY0LgoKVGhlcmVmb3JlLCBgV29ydGhGdXp6aW5nYCBoYXMgdG8gYmUgYGZhbHNlYC4gTm8gcG9pbnQgc3BlbmRpbmcgdGhlIGN5Y2xlcyBvbiBzb21ldGhpbmcgSSBjYW4mIzM5O3QgZXZlbiBnZXQgdG8gcnVuLgoKTm93LCBJIG5lZWQgdG8gcmVjb3JkIG15IHJlYXNvbmluZyBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0ZXN0IHJlc3VsdHMuIExldCBtZSBzZXQgdGhlc2UgcGFyYW1ldGVyczoKCiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYAoqICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAgKGVtcHR5IGxpc3QsIGJlY2F1c2UgdGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgdGhhdCBuZWVkIHRvIGJlIGZvY3VzZWQgb24pCiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKGFsc28gZW1wdHksIGFzIHRoZXJlIGFyZSBubyBrZXJuZWwgY29uZmlndXJhdGlvbnMgdGhhdCB3b3VsZCBtYWtlIGl0IG1vcmUgdGVzdGFibGUpCiogICBgUmVhc29uaW5nYDogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNgLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRldmljZSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gSXQgcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgQVJNIFNvQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBpcyB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSAoYW1kNjQpLiYjMzQ7CgpPa2F5LCBJJiMzOTttIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYCBhbmQgbG9nIHRoZXNlIGZpbmRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNCAyMzo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMsIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciB0aGUgQ29ydGluYSBHZW1pbmkgKFNMMzUxeCkgQVJNIFNvQyBHaWdhYml0IEV0aGVybmV0IGNvbnRyb2xsZXIuIFRoaXMgaGFyZHdhcmUgaXMgc3BlY2lmaWMgdG8gQ29ydGluYSBHZW1pbmkgQVJNIHBsYXRmb3JtcyBhbmQgaXMgbmVpdGhlciBwcmVzZW50IG5vciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSBvbiBhbWQ2NC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgdGhlIENvcnRpbmEgR2VtaW5pIChTTDM1MXgpIEFSTSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBjb250cm9sbGVyLiBUaGlzIGhhcmR3YXJlIGlzIHNwZWNpZmljIHRvIENvcnRpbmEgR2VtaW5pIEFSTSBwbGF0Zm9ybXMgYW5kIGlzIG5laXRoZXIgcHJlc2VudCBub3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgb24gYW1kNjQuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjM1LjkzNTE1NDkyOVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3NDUwNjY0NDY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYywgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gVGhpcyBoYXJkd2FyZSBpcyBzcGVjaWZpYyB0byBDb3J0aW5hIEdlbWluaSBBUk0gcGxhdGZvcm1zIGFuZCBpcyBuZWl0aGVyIHByZXNlbnQgbm9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIG9uIGFtZDY0LiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjM1LjkzNTE2MDMzOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTEwNDIzMTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNDAxZmEwYmM4ZjM5OWQyMDEwNzg4N2E2MWMxMDUyMDc3YjUyYmIxZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIFNlcCAxNCAyMzo1ODozNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY1xcbmluZGV4IGYwOGRlNjIzZTZmN2MuLjJmZTdmZDAyMDJkMjYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNcXG5AQCAtMTYsNiArMTYsNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9pbml0LmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9tb2R1bGUuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L25ldC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zcGlubG9jay5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvc2xhYi5oXFx1MDAzZVxcbkBAIC03MzYsNyArNzM3LDggQEAgZ21hY19nZXRfcXVldWVfcGFnZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoLFxcbiBcXHRtYXBwaW5nID0gYWRkciBcXHUwMDI2IFBBR0VfTUFTSztcXG4gXFxuIFxcdGlmICghZ2V0aC1cXHUwMDNlZnJlZXFfcGFnZXMpIHtcXG4tXFx0XFx0ZGV2X2VycihnZXRoLVxcdTAwM2VkZXYsIFxcXCJ0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXFxcblxcXCIpO1xcbitcXHRcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKGdldGgtXFx1MDAzZWRldixcXG4rXFx0XFx0XFx0XFx0ICAgIFxcXCJ0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXFxcblxcXCIpO1xcbiBcXHRcXHRyZXR1cm4gTlVMTDtcXG4gXFx0fVxcbiBcXG5AQCAtMTQ0MSw3ICsxNDQzLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpnbWFjX3NrYl9pZl9nb29kX2ZyYW1lKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCxcXG4gfVxcbiBcXG4gc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXFxuLVxcdFxcdFxcdCAgICB1bnNpZ25lZCBpbnQgKmZyZWVxX2NvbnN1bWVkKVxcbitcXHRcXHRcXHQgICAgdW5zaWduZWQgaW50ICpmcmVlcV9jb25zdW1lZCwgYm9vbCAqcmVzY2hlZHVsZSlcXG4ge1xcbiBcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbiBcXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXFx1MDAzY1xcdTAwM2MgcG9ydC1cXHUwMDNlcnhxX29yZGVyKSAtIDE7XFxuQEAgLTE0NDksNiArMTQ1MSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxcbiBcXHR2b2lkIF9faW9tZW0gKnB0cl9yZWcgPSBwb3J0LVxcdTAwM2VyeHFfcndwdHI7XFxuIFxcdHVuc2lnbmVkIGludCBmcmFnX25yID0gcG9ydC1cXHUwMDNlcnhfZnJhZ19ucjtcXG4gXFx0c3RydWN0IHNrX2J1ZmYgKnNrYiA9IHBvcnQtXFx1MDAzZXJ4X3NrYjtcXG4rXFx0LyogQm91bmQgbWFsZm9ybWVkIGNoYWlucyB3aGlsZSBhbGxvd2luZyBtYXhpbXVtIGZyYWdtZW50cyBwZXIgZnJhbWUuICovXFxuK1xcdHVuc2lnbmVkIGludCBkZXNjX2xpbWl0ID0gYnVkZ2V0ICogTUFYX1NLQl9GUkFHUztcXG4gXFx0dW5zaWduZWQgaW50IGNvbnN1bWVkID0gMDtcXG4gXFx0dW5zaWduZWQgaW50IGZyYW1lX2xlbiwgZnJhZ19sZW47XFxuIFxcdHN0cnVjdCBnbWFjX3J4ZGVzYyAqcnggPSBOVUxMO1xcbkBAIC0xNDc1LDcgKzE0NzksNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGdtYWNfcngoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdW5zaWduZWQgaW50IGJ1ZGdldCxcXG4gXFx0ciA9IHJ3LmJpdHMucnB0cjtcXG4gXFx0dyA9IHJ3LmJpdHMud3B0cjtcXG4gXFxuLVxcdHdoaWxlIChidWRnZXQgXFx1MDAyNlxcdTAwMjYgdyAhPSByKSB7XFxuK1xcdHdoaWxlIChidWRnZXQgXFx1MDAyNlxcdTAwMjYgY29uc3VtZWQgXFx1MDAzYyBkZXNjX2xpbWl0IFxcdTAwMjZcXHUwMDI2IHcgIT0gcikge1xcbiBcXHRcXHRwYWdlID0gTlVMTDtcXG4gXFx0XFx0cnggPSBwb3J0LVxcdTAwM2VyeHFfcmluZyArIHI7XFxuIFxcdFxcdHdvcmQwID0gcngtXFx1MDAzZXdvcmQwO1xcbkBAIC0xNTAyLDE1ICsxNTA2LDE4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxcbiBcXHRcXHR9XFxuIFxcbiBcXHRcXHRpZiAoIW1hcHBpbmcpIHtcXG4tXFx0XFx0XFx0bmV0ZGV2X2VycihuZXRkZXYsXFxuLVxcdFxcdFxcdFxcdCAgIFxcXCJyeHFbJXVdOiBIVyBCVUc6IHplcm8gRE1BIGRlc2NcXFxcblxcXCIsIHIpO1xcbitcXHRcXHRcXHRpZiAobmV0X3JhdGVsaW1pdCgpKVxcbitcXHRcXHRcXHRcXHRuZXRkZXZfZXJyKG5ldGRldixcXG4rXFx0XFx0XFx0XFx0XFx0ICAgXFxcInJ4cVsldV06IEhXIEJVRzogemVybyBETUEgZGVzY1xcXFxuXFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0ICAgcik7XFxuIFxcdFxcdFxcdGdvdG8gZXJyX2Ryb3A7XFxuIFxcdFxcdH1cXG4gXFxuIFxcdFxcdC8qIEZyZWVxIHBvaW50ZXJzIGFyZSBvbmUgcGFnZSBvZmYgKi9cXG4gXFx0XFx0Z3BhZ2UgPSBnbWFjX2dldF9xdWV1ZV9wYWdlKGdldGgsIHBvcnQsIG1hcHBpbmcgKyBQQUdFX1NJWkUpO1xcbiBcXHRcXHRpZiAoIWdwYWdlKSB7XFxuLVxcdFxcdFxcdGRldl9lcnIoZ2V0aC1cXHUwMDNlZGV2LCBcXFwiY291bGQgbm90IGZpbmQgbWFwcGluZ1xcXFxuXFxcIik7XFxuK1xcdFxcdFxcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoZ2V0aC1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRcXHRcXHQgICAgXFxcImNvdWxkIG5vdCBmaW5kIG1hcHBpbmdcXFxcblxcXCIpO1xcbiBcXHRcXHRcXHRnb3RvIGVycl9kcm9wO1xcbiBcXHRcXHR9XFxuIFxcdFxcdHBhZ2UgPSBncGFnZS1cXHUwMDNlcGFnZTtcXG5AQCAtMTUzNSw3ICsxNTQyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXFxuIFxcdFxcdGlmIChmcmFnX25yID09IE1BWF9TS0JfRlJBR1MpXFxuIFxcdFxcdFxcdGdvdG8gZXJyX2Ryb3A7XFxuIFxcbi1cXHRcXHRpZiAoZnJhZ19sZW4gPT0gMClcXG4rXFx0XFx0aWYgKGZyYWdfbGVuID09IDAgXFx1MDAyNlxcdTAwMjYgbmV0X3JhdGVsaW1pdCgpKVxcbiBcXHRcXHRcXHRuZXRkZXZfZXJyKG5ldGRldiwgXFxcIlJlY2VpdmVkIGZyYWdtZW50IHdpdGggbGVuID0gMFxcXFxuXFxcIik7XFxuIFxcbiBcXHRcXHRza2JfZmlsbF9wYWdlX2Rlc2Moc2tiLCBmcmFnX25yLCBwYWdlLCBwYWdlX29mZnMsIGZyYWdfbGVuKTtcXG5AQCAtMTU3OSw2ICsxNTg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXFxuIFxcdHBvcnQtXFx1MDAzZXJ4X2ZyYWdfbnIgPSBmcmFnX25yO1xcbiBcXHRwb3J0LVxcdTAwM2VyeF9kcm9wcGluZyA9IGRyb3BwaW5nO1xcbiBcXHQqZnJlZXFfY29uc3VtZWQgPSBjb25zdW1lZDtcXG4rXFx0KnJlc2NoZWR1bGUgPSBidWRnZXQgXFx1MDAyNlxcdTAwMjYgdyAhPSByO1xcbiBcXHR3cml0ZXcociwgcHRyX3JlZyk7XFxuIFxcdHJldHVybiByZWNlaXZlZDtcXG4gfVxcbkBAIC0xNTkwLDEyICsxNTk4LDEzIEBAIHN0YXRpYyBpbnQgZ21hY19uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbiBcXHR1bnNpZ25lZCBpbnQgZnJlZXFfdGhyZXNob2xkO1xcbiBcXHR1bnNpZ25lZCBpbnQgZnJlZXFfY29uc3VtZWQ7XFxuIFxcdHVuc2lnbmVkIGludCByZWNlaXZlZDtcXG4rXFx0Ym9vbCByZXNjaGVkdWxlO1xcbiBcXG4gXFx0ZnJlZXFfdGhyZXNob2xkID0gMSBcXHUwMDNjXFx1MDAzYyAoZ2V0aC1cXHUwMDNlZnJlZXFfb3JkZXIgLSAxKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2cG9ydC1cXHUwMDNlcnhfc3RhdHNfc3luY3ApO1xcbiBcXG4tXFx0cmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktXFx1MDAzZWRldiwgYnVkZ2V0LCBcXHUwMDI2ZnJlZXFfY29uc3VtZWQpO1xcbi1cXHRpZiAocmVjZWl2ZWQgXFx1MDAzYyBidWRnZXQpXFxuK1xcdHJlY2VpdmVkID0gZ21hY19yeChuYXBpLVxcdTAwM2VkZXYsIGJ1ZGdldCwgXFx1MDAyNmZyZWVxX2NvbnN1bWVkLCBcXHUwMDI2cmVzY2hlZHVsZSk7XFxuK1xcdGlmICghcmVzY2hlZHVsZSBcXHUwMDI2XFx1MDAyNiByZWNlaXZlZCBcXHUwMDNjIGJ1ZGdldClcXG4gXFx0XFx0Kytwb3J0LVxcdTAwM2VyeF9uYXBpX2V4aXRzO1xcbiBcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXFx1MDAyNnBvcnQtXFx1MDAzZXJ4X3N0YXRzX3N5bmNwKTtcXG5AQCAtMTYwNiwxMCArMTYxNSwxMSBAQCBzdGF0aWMgaW50IGdtYWNfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4gXFx0XFx0Z2V0aF9maWxsX2ZyZWVxKGdldGgsIHRydWUpO1xcbiBcXHR9XFxuIFxcbi1cXHRpZiAocmVjZWl2ZWQgXFx1MDAzYyBidWRnZXQgXFx1MDAyNlxcdTAwMjYgbmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHJlY2VpdmVkKSlcXG4rXFx0aWYgKCFyZXNjaGVkdWxlIFxcdTAwMjZcXHUwMDI2IHJlY2VpdmVkIFxcdTAwM2MgYnVkZ2V0IFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBuYXBpX2NvbXBsZXRlX2RvbmUobmFwaSwgcmVjZWl2ZWQpKVxcbiBcXHRcXHRnbWFjX2VuYWJsZV9yeF9pcnEobmFwaS1cXHUwMDNlZGV2LCAxKTtcXG4gXFxuLVxcdHJldHVybiByZWNlaXZlZDtcXG4rXFx0cmV0dXJuIHJlc2NoZWR1bGUgPyBidWRnZXQgOiByZWNlaXZlZDtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgZ21hY19kdW1wX2RtYV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbkBAIC0xNzk4LDcgKzE4MDgsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ21hY19pcnEoaW50IGlycSwgdm9pZCAqZGF0YSlcXG4gXFxuIFxcdGlmICh2YWwgXFx1MDAyNiAoR01BQzBfUlhfT1ZFUlJVTl9JTlRfQklUIFxcdTAwM2NcXHUwMDNjIChuZXRkZXYtXFx1MDAzZWRldl9pZCAqIDgpKSkge1xcbiBcXHRcXHRzcGluX2xvY2soXFx1MDAyNmdldGgtXFx1MDAzZWlycV9sb2NrKTtcXG4tXFx0XFx0d3JpdGVsKEdNQUMwX1JYREVSUl9JTlRfQklUIFxcdTAwM2NcXHUwMDNjIChuZXRkZXYtXFx1MDAzZWRldl9pZCAqIDgpLFxcbitcXHRcXHR3cml0ZWwoR01BQzBfUlhfT1ZFUlJVTl9JTlRfQklUIFxcdTAwM2NcXHUwMDNjIChuZXRkZXYtXFx1MDAzZWRldl9pZCAqIDgpLFxcbiBcXHRcXHQgICAgICAgZ2V0aC1cXHUwMDNlYmFzZSArIEdMT0JBTF9JTlRFUlJVUFRfU1RBVFVTXzRfUkVHKTtcXG4gXFx0XFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2cG9ydC1cXHUwMDNlaXJfc3RhdHNfc3luY3ApO1xcbiBcXHRcXHQrK3BvcnQtXFx1MDAzZXN0YXRzLnJ4X2ZpZm9fZXJyb3JzO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNFQyMzo1ODozNi40NDYyOTQ3MDFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjM2OTM5NTExNzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgdGhlIENvcnRpbmEgR2VtaW5pIChTTDM1MXgpIEFSTSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBjb250cm9sbGVyLiBUaGlzIGhhcmR3YXJlIGlzIHNwZWNpZmljIHRvIENvcnRpbmEgR2VtaW5pIEFSTSBwbGF0Zm9ybXMgYW5kIGlzIG5laXRoZXIgcHJlc2VudCBub3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgb24gYW1kNjQuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0MDFmYTBiYzhmMzk5ZDIwMTA3ODg3YTYxYzEwNTIwNzdiNTJiYjFkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgMTQgMjM6NTg6MzUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY1xuaW5kZXggZjA4ZGU2MjNlNmY3Yy4uMmZlN2ZkMDIwMmQyNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNcbkBAIC0xNiw2ICsxNiw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva2VybmVsLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9pbml0LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGUuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L25ldC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zcGlubG9jay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG5AQCAtNzM2LDcgKzczNyw4IEBAIGdtYWNfZ2V0X3F1ZXVlX3BhZ2Uoc3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCxcbiBcdG1hcHBpbmcgPSBhZGRyIFx1MDAyNiBQQUdFX01BU0s7XG4gXG4gXHRpZiAoIWdldGgtXHUwMDNlZnJlZXFfcGFnZXMpIHtcbi1cdFx0ZGV2X2VycihnZXRoLVx1MDAzZWRldiwgXCJ0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXG5cIik7XG4rXHRcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoZ2V0aC1cdTAwM2VkZXYsXG4rXHRcdFx0XHQgICAgXCJ0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXG5cIik7XG4gXHRcdHJldHVybiBOVUxMO1xuIFx0fVxuIFxuQEAgLTE0NDEsNyArMTQ0Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZ21hY19za2JfaWZfZ29vZF9mcmFtZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQsXG4gfVxuIFxuIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxuLVx0XHRcdCAgICB1bnNpZ25lZCBpbnQgKmZyZWVxX2NvbnN1bWVkKVxuK1x0XHRcdCAgICB1bnNpZ25lZCBpbnQgKmZyZWVxX2NvbnN1bWVkLCBib29sICpyZXNjaGVkdWxlKVxuIHtcbiBcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXHUwMDNjXHUwMDNjIHBvcnQtXHUwMDNlcnhxX29yZGVyKSAtIDE7XG5AQCAtMTQ0OSw2ICsxNDUxLDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHR2b2lkIF9faW9tZW0gKnB0cl9yZWcgPSBwb3J0LVx1MDAzZXJ4cV9yd3B0cjtcbiBcdHVuc2lnbmVkIGludCBmcmFnX25yID0gcG9ydC1cdTAwM2VyeF9mcmFnX25yO1xuIFx0c3RydWN0IHNrX2J1ZmYgKnNrYiA9IHBvcnQtXHUwMDNlcnhfc2tiO1xuK1x0LyogQm91bmQgbWFsZm9ybWVkIGNoYWlucyB3aGlsZSBhbGxvd2luZyBtYXhpbXVtIGZyYWdtZW50cyBwZXIgZnJhbWUuICovXG4rXHR1bnNpZ25lZCBpbnQgZGVzY19saW1pdCA9IGJ1ZGdldCAqIE1BWF9TS0JfRlJBR1M7XG4gXHR1bnNpZ25lZCBpbnQgY29uc3VtZWQgPSAwO1xuIFx0dW5zaWduZWQgaW50IGZyYW1lX2xlbiwgZnJhZ19sZW47XG4gXHRzdHJ1Y3QgZ21hY19yeGRlc2MgKnJ4ID0gTlVMTDtcbkBAIC0xNDc1LDcgKzE0NzksNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGdtYWNfcngoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdW5zaWduZWQgaW50IGJ1ZGdldCxcbiBcdHIgPSBydy5iaXRzLnJwdHI7XG4gXHR3ID0gcncuYml0cy53cHRyO1xuIFxuLVx0d2hpbGUgKGJ1ZGdldCBcdTAwMjZcdTAwMjYgdyAhPSByKSB7XG4rXHR3aGlsZSAoYnVkZ2V0IFx1MDAyNlx1MDAyNiBjb25zdW1lZCBcdTAwM2MgZGVzY19saW1pdCBcdTAwMjZcdTAwMjYgdyAhPSByKSB7XG4gXHRcdHBhZ2UgPSBOVUxMO1xuIFx0XHRyeCA9IHBvcnQtXHUwMDNlcnhxX3JpbmcgKyByO1xuIFx0XHR3b3JkMCA9IHJ4LVx1MDAzZXdvcmQwO1xuQEAgLTE1MDIsMTUgKzE1MDYsMTggQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRcdH1cbiBcbiBcdFx0aWYgKCFtYXBwaW5nKSB7XG4tXHRcdFx0bmV0ZGV2X2VycihuZXRkZXYsXG4tXHRcdFx0XHQgICBcInJ4cVsldV06IEhXIEJVRzogemVybyBETUEgZGVzY1xcblwiLCByKTtcbitcdFx0XHRpZiAobmV0X3JhdGVsaW1pdCgpKVxuK1x0XHRcdFx0bmV0ZGV2X2VycihuZXRkZXYsXG4rXHRcdFx0XHRcdCAgIFwicnhxWyV1XTogSFcgQlVHOiB6ZXJvIERNQSBkZXNjXFxuXCIsXG4rXHRcdFx0XHRcdCAgIHIpO1xuIFx0XHRcdGdvdG8gZXJyX2Ryb3A7XG4gXHRcdH1cbiBcbiBcdFx0LyogRnJlZXEgcG9pbnRlcnMgYXJlIG9uZSBwYWdlIG9mZiAqL1xuIFx0XHRncGFnZSA9IGdtYWNfZ2V0X3F1ZXVlX3BhZ2UoZ2V0aCwgcG9ydCwgbWFwcGluZyArIFBBR0VfU0laRSk7XG4gXHRcdGlmICghZ3BhZ2UpIHtcbi1cdFx0XHRkZXZfZXJyKGdldGgtXHUwMDNlZGV2LCBcImNvdWxkIG5vdCBmaW5kIG1hcHBpbmdcXG5cIik7XG4rXHRcdFx0ZGV2X2Vycl9yYXRlbGltaXRlZChnZXRoLVx1MDAzZWRldixcbitcdFx0XHRcdFx0ICAgIFwiY291bGQgbm90IGZpbmQgbWFwcGluZ1xcblwiKTtcbiBcdFx0XHRnb3RvIGVycl9kcm9wO1xuIFx0XHR9XG4gXHRcdHBhZ2UgPSBncGFnZS1cdTAwM2VwYWdlO1xuQEAgLTE1MzUsNyArMTU0Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxuIFx0XHRpZiAoZnJhZ19uciA9PSBNQVhfU0tCX0ZSQUdTKVxuIFx0XHRcdGdvdG8gZXJyX2Ryb3A7XG4gXG4tXHRcdGlmIChmcmFnX2xlbiA9PSAwKVxuK1x0XHRpZiAoZnJhZ19sZW4gPT0gMCBcdTAwMjZcdTAwMjYgbmV0X3JhdGVsaW1pdCgpKVxuIFx0XHRcdG5ldGRldl9lcnIobmV0ZGV2LCBcIlJlY2VpdmVkIGZyYWdtZW50IHdpdGggbGVuID0gMFxcblwiKTtcbiBcbiBcdFx0c2tiX2ZpbGxfcGFnZV9kZXNjKHNrYiwgZnJhZ19uciwgcGFnZSwgcGFnZV9vZmZzLCBmcmFnX2xlbik7XG5AQCAtMTU3OSw2ICsxNTg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRwb3J0LVx1MDAzZXJ4X2ZyYWdfbnIgPSBmcmFnX25yO1xuIFx0cG9ydC1cdTAwM2VyeF9kcm9wcGluZyA9IGRyb3BwaW5nO1xuIFx0KmZyZWVxX2NvbnN1bWVkID0gY29uc3VtZWQ7XG4rXHQqcmVzY2hlZHVsZSA9IGJ1ZGdldCBcdTAwMjZcdTAwMjYgdyAhPSByO1xuIFx0d3JpdGV3KHIsIHB0cl9yZWcpO1xuIFx0cmV0dXJuIHJlY2VpdmVkO1xuIH1cbkBAIC0xNTkwLDEyICsxNTk4LDEzIEBAIHN0YXRpYyBpbnQgZ21hY19uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuIFx0dW5zaWduZWQgaW50IGZyZWVxX3RocmVzaG9sZDtcbiBcdHVuc2lnbmVkIGludCBmcmVlcV9jb25zdW1lZDtcbiBcdHVuc2lnbmVkIGludCByZWNlaXZlZDtcbitcdGJvb2wgcmVzY2hlZHVsZTtcbiBcbiBcdGZyZWVxX3RocmVzaG9sZCA9IDEgXHUwMDNjXHUwMDNjIChnZXRoLVx1MDAzZWZyZWVxX29yZGVyIC0gMSk7XG4gXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnBvcnQtXHUwMDNlcnhfc3RhdHNfc3luY3ApO1xuIFxuLVx0cmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktXHUwMDNlZGV2LCBidWRnZXQsIFx1MDAyNmZyZWVxX2NvbnN1bWVkKTtcbi1cdGlmIChyZWNlaXZlZCBcdTAwM2MgYnVkZ2V0KVxuK1x0cmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktXHUwMDNlZGV2LCBidWRnZXQsIFx1MDAyNmZyZWVxX2NvbnN1bWVkLCBcdTAwMjZyZXNjaGVkdWxlKTtcbitcdGlmICghcmVzY2hlZHVsZSBcdTAwMjZcdTAwMjYgcmVjZWl2ZWQgXHUwMDNjIGJ1ZGdldClcbiBcdFx0Kytwb3J0LVx1MDAzZXJ4X25hcGlfZXhpdHM7XG4gXG4gXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcdTAwMjZwb3J0LVx1MDAzZXJ4X3N0YXRzX3N5bmNwKTtcbkBAIC0xNjA2LDEwICsxNjE1LDExIEBAIHN0YXRpYyBpbnQgZ21hY19uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuIFx0XHRnZXRoX2ZpbGxfZnJlZXEoZ2V0aCwgdHJ1ZSk7XG4gXHR9XG4gXG4tXHRpZiAocmVjZWl2ZWQgXHUwMDNjIGJ1ZGdldCBcdTAwMjZcdTAwMjYgbmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHJlY2VpdmVkKSlcbitcdGlmICghcmVzY2hlZHVsZSBcdTAwMjZcdTAwMjYgcmVjZWl2ZWQgXHUwMDNjIGJ1ZGdldCBcdTAwMjZcdTAwMjZcbitcdCAgICBuYXBpX2NvbXBsZXRlX2RvbmUobmFwaSwgcmVjZWl2ZWQpKVxuIFx0XHRnbWFjX2VuYWJsZV9yeF9pcnEobmFwaS1cdTAwM2VkZXYsIDEpO1xuIFxuLVx0cmV0dXJuIHJlY2VpdmVkO1xuK1x0cmV0dXJuIHJlc2NoZWR1bGUgPyBidWRnZXQgOiByZWNlaXZlZDtcbiB9XG4gXG4gc3RhdGljIHZvaWQgZ21hY19kdW1wX2RtYV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuQEAgLTE3OTgsNyArMTgwOCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnbWFjX2lycShpbnQgaXJxLCB2b2lkICpkYXRhKVxuIFxuIFx0aWYgKHZhbCBcdTAwMjYgKEdNQUMwX1JYX09WRVJSVU5fSU5UX0JJVCBcdTAwM2NcdTAwM2MgKG5ldGRldi1cdTAwM2VkZXZfaWQgKiA4KSkpIHtcbiBcdFx0c3Bpbl9sb2NrKFx1MDAyNmdldGgtXHUwMDNlaXJxX2xvY2spO1xuLVx0XHR3cml0ZWwoR01BQzBfUlhERVJSX0lOVF9CSVQgXHUwMDNjXHUwMDNjIChuZXRkZXYtXHUwMDNlZGV2X2lkICogOCksXG4rXHRcdHdyaXRlbChHTUFDMF9SWF9PVkVSUlVOX0lOVF9CSVQgXHUwMDNjXHUwMDNjIChuZXRkZXYtXHUwMDNlZGV2X2lkICogOCksXG4gXHRcdCAgICAgICBnZXRoLVx1MDAzZWJhc2UgKyBHTE9CQUxfSU5URVJSVVBUX1NUQVRVU180X1JFRyk7XG4gXHRcdHU2NF9zdGF0c191cGRhdGVfYmVnaW4oXHUwMDI2cG9ydC1cdTAwM2Vpcl9zdGF0c19zeW5jcCk7XG4gXHRcdCsrcG9ydC1cdTAwM2VzdGF0cy5yeF9maWZvX2Vycm9ycztcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjM2LjQ0NjI5NjM3MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjY1NjgwNDM1MjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGhpdHRpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNgLiBUaGF0J3MgaW50ZXJlc3RpbmcsIGxldCdzIGRpdmUgaW50byBpdC4gRmlyc3QgdGhpbmcncyBmaXJzdDogbmVlZCB0byBjb25maXJtIHRoZSBhcmNoaXRlY3R1cmUgdGhpcyB0YXJnZXRzLiBBaCwgYW1kNjQg4oCTIGdvb2QsIG5hcnJvd3MgdGhpbmdzIGRvd24gYSBiaXQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIEtjb25maWcgaW1wbGljYXRpb25zIGZvciBgZ2VtaW5pLmNgLiBMZXQncyBzZWUgd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCwgZGlzYWJsZWQsIGFuZCBjb25maWd1cmFibGUuIEZpbmFsbHksIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIE1ha2VmaWxlIGFuZCBLY29uZmlnIGZpbGVzIGZvciB0aGF0IG1vZHVsZSwgc28gSSdsbCBzZWFyY2ggZm9yIGBnZW1pbmkuY2Agd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2AgdG8gZW5zdXJlIEkgaGF2ZSB0aGUgZnVsbCBwaWN0dXJlLiBXYW50IHRvIGJlIHRob3JvdWdoLCBlc3BlY2lhbGx5IHdpdGggbmV0d29yayBkcml2ZXJzLiBHb3R0YSBtYWtlIHN1cmUgdGhpcyBjaGFuZ2UgaXMgY2xlYW5seSBpbnRlZ3JhdGVkIGFuZCBkb2Vzbid0IGNhdXNlIGFueSB1bmV4cGVjdGVkIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTQ0LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNFQyMzo1ODo0My4wMTQzNDMxMTJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODc1MDYyNDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZ2VtaW5pXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfR0VNSU5JX0VUSEVSTkVUKSArPSBnZW1pbmkub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy00NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjQ2OiNpbmNsdWRlIFxcXCJnZW1pbmkuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NDg6I2RlZmluZSBEUlZfTkFNRVxcdFxcdFxcXCJnbWFjLWdlbWluaVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz05Nz1zdHJ1Y3QgZ21hY190eHEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMDQ6c3RydWN0IGdlbWluaV9ldGhlcm5ldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwNjpzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTA3LVxcdHU4IGlkOyAvKiAwIG9yIDEgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwOTpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTEwLVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE1NTpzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE1Ni1cXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNTctXFx0dm9pZCBfX2lvbWVtICpiYXNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTU4OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydDA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0MTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE2MC1cXHRib29sIGluaXRpYWxpemVkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMzA9c3RhdGljIHZvaWQgZ21hY191cGRhdGVfY29uZmlnMF9yZWcoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjMyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzMzpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM0LVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI0Nj1zdGF0aWMgdm9pZCBnbWFjX2VuYWJsZV90eF9yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ5LVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI2MT1zdGF0aWMgdm9pZCBnbWFjX2Rpc2FibGVfdHhfcngoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2Mi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjM6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2NC1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNzg9c3RhdGljIHZvaWQgZ21hY19zZXRfZmxvd19jb250cm9sKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGJvb2wgdHgsIGJvb2wgcngpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjgwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yODEtXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9Mjk3PXN0YXRpYyB2b2lkIGdtYWNfYWRqdXN0X2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI5OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyOTk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTMwMC1cXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gbmV0ZGV2LVxcdTAwM2VwaHlkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTM2Mj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0zNjMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MzY0OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0zNjUtXFx0dW5pb24gZ21hY19zdGF0dXMgc3RhdHVzID0geyAuYml0czMyID0gMCB9O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz00NjY9c3RhdGljIGludCBnbWFjX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ2Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo0Njg6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ2OS1cXHR1bmlvbiBnbWFjX2NvbmZpZzAgY29uZmlnMCA9IHsgLmJpdHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTU0Nj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfdHhxcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNTQ3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjU0ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNTQ5LVxcdHVuc2lnbmVkIGludCBuX3R4cSA9IG5ldGRldi1cXHUwMDNlbnVtX3R4X3F1ZXVlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjU1MDpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cXHUwMDNlZ2V0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTU1MS1cXHRzaXplX3QgZW50cmllcyA9IDEgXFx1MDAzY1xcdTAwM2MgcG9ydC1cXHUwMDNldHhxX29yZGVyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz02MDQ9c3RhdGljIHZvaWQgZ21hY19jbGVhbl90eHEoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IGdtYWNfdHhxICp0eHEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTYwNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2MDc6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTYwOC1cXHR1bnNpZ25lZCBpbnQgbSA9ICgxIFxcdTAwM2NcXHUwMDNjIHBvcnQtXFx1MDAzZXR4cV9vcmRlcikgLSAxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NjA5OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNjEwLVxcdHVuc2lnbmVkIGludCBjID0gdHhxLVxcdTAwM2VjcHRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz02NzY9c3RhdGljIHZvaWQgZ21hY19jbGVhbnVwX3R4cXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTY3Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2Nzg6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTY3OS1cXHR1bnNpZ25lZCBpbnQgbl90eHEgPSBuZXRkZXYtXFx1MDAzZW51bV90eF9xdWV1ZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2ODA6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02ODEtXFx0dm9pZCBfX2lvbWVtICpyd3B0cl9yZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTcwMj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfcnhxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03MDMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NzA0OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3MDU6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03MDYtXFx0c3RydWN0IG5vbnRvZV9xaGRyIF9faW9tZW0gKnFoZHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTcyNz1zdGF0aWMgc3RydWN0IGdtYWNfcXVldWVfcGFnZSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3Mjg6Z21hY19nZXRfcXVldWVfcGFnZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NzI5OlxcdFxcdCAgICBzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03MzAtXFx0XFx0ICAgIGRtYV9hZGRyX3QgYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9NzU1PXN0YXRpYyB2b2lkIGdtYWNfY2xlYW51cF9yeHEoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTc1Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3NTc6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjc1ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cXHUwMDNlZ2V0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTc1OS1cXHRzdHJ1Y3QgZ21hY19yeGRlc2MgKnJ4ZCA9IHBvcnQtXFx1MDAzZXJ4cV9yaW5nO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04MDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo4MDU6c3RhdGljIHN0cnVjdCBwYWdlICpnZXRoX2ZyZWVxX2FsbG9jX21hcF9wYWdlKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04MDYtXFx0XFx0XFx0XFx0XFx0ICAgICAgaW50IHBuKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04NzEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo4NzI6c3RhdGljIHVuc2lnbmVkIGludCBnZXRoX2ZpbGxfZnJlZXEoc3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCwgYm9vbCByZWZpbGwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04NzMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy05MjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo5Mjc6c3RhdGljIGludCBnZXRoX3NldHVwX2ZyZWVxKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy05Mjgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy05OTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo5OTk6c3RhdGljIHZvaWQgZ2V0aF9jbGVhbnVwX2ZyZWVxKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDAwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTAzOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwMzk6c3RhdGljIGludCBnZXRoX3Jlc2l6ZV9mcmVlcShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDQwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwNDE6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDQyLVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYgPSBwb3J0LVxcdTAwM2VuZXRkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMDQzOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqb3RoZXJfcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwNDQtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm90aGVyX25ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTEwNz1zdGF0aWMgdm9pZCBnbWFjX3R4X2lycV9lbmFibGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTEwOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMTEwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMTExOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTExMi1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xMTM5PXN0YXRpYyBpbnQgZ21hY19tYXBfdHhfYnVmcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTQxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjExNDI6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTExNDMtXFx0c3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2tiX3NpID0gIHNrYl9zaGluZm8oc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTE0NS1cXHRzaG9ydCBmcmFnLCBsYXN0X2ZyYWcgPSBza2Jfc2ktXFx1MDAzZW5yX2ZyYWdzIC0gMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjExNDY6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTQ3LVxcdHVuc2lnbmVkIGludCB3b3JkMSwgd29yZDMsIGJ1ZmxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTI3Nz1zdGF0aWMgbmV0ZGV2X3R4X3QgZ21hY19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEyNzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTI4MDpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTI4MS1cXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXFx1MDAzY1xcdTAwM2MgcG9ydC1cXHUwMDNldHhxX29yZGVyKSAtIDE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTEzNTc9c3RhdGljIHZvaWQgZ21hY19lbmFibGVfaXJxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzNTk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzNjA6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzYxLVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTEzODY9c3RhdGljIHZvaWQgZ21hY19lbmFibGVfcnhfaXJxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzg3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzODg6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzODk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzkwLVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE0MDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNDA1OnN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZ21hY19za2JfaWZfZ29vZF9mcmFtZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNDA2LVxcdFxcdFxcdFxcdFxcdCAgICAgIHVuaW9uIGdtYWNfcnhkZXNjXzAgd29yZDAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE0NDU9c3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE0NDcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTQ0ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTQ0OS1cXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXFx1MDAzY1xcdTAwM2MgcG9ydC1cXHUwMDNlcnhxX29yZGVyKSAtIDE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNDUwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTQ1MS1cXHR2b2lkIF9faW9tZW0gKnB0cl9yZWcgPSBwb3J0LVxcdTAwM2VyeHFfcndwdHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE1OTQ9c3RhdGljIGludCBnbWFjX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNTk1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE1OTY6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmFwaS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE1OTc6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNTk4LVxcdHVuc2lnbmVkIGludCBmcmVlcV90aHJlc2hvbGQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE2MjU9c3RhdGljIHZvaWQgZ21hY19kdW1wX2RtYV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTYyNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNjI3OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNjI4OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTYyOS1cXHR2b2lkIF9faW9tZW0gKnB0cl9yZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE2OTY9c3RhdGljIHZvaWQgZ21hY191cGRhdGVfaHdfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE2OTcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTY5ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTY5OS1cXHR1bnNpZ25lZCBpbnQgcnhfZGlzY2FyZHMsIHJ4X21jYXN0LCByeF9iY2FzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3MDA6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzAxLVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE3MzI9c3RhdGljIHUzMiBnbWFjX2dldF9pbnRyX2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTczMy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNzM0OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNzM1OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTczNi1cXHR2b2lkIF9faW9tZW0gKmlycWlmX3JlZywgKmlycWVuX3JlZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTc1MD1zdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgZ21hY19jb2FsZXNjZV9kZWxheV9leHBpcmVkKHN0cnVjdCBocnRpbWVyICp0aW1lcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTc1MjpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTc1MzpcXHRcXHRjb250YWluZXJfb2YodGltZXIsIHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NTQtXFx0XFx0XFx0ICAgICByeF9jb2FsZXNjZV90aW1lcik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE3NjA9c3RhdGljIGlycXJldHVybl90IGdtYWNfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzYxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3NjI6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTc2My1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3NjQ6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NjUtXFx0dTMyIHZhbCwgb3JyID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTgyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE4MjI6c3RhdGljIHZvaWQgZ21hY19zdGFydF9kbWEoc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTgyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE4NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxODQzOnN0YXRpYyB2b2lkIGdtYWNfc3RvcF9kbWEoc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg0NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE4NTQ9c3RhdGljIGludCBnbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE4NTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTg1NjpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg1Ny1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xOTExPXN0YXRpYyBpbnQgZ21hY19zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTEyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE5MTM6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5MTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE5MzU9c3RhdGljIHZvaWQgZ21hY19zZXRfcnhfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTkzNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxOTM3OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTM4LVxcdHVuaW9uIGdtYWNfcnhfZmx0ciBmaWx0ZXIgPSB7IC5iaXRzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xOTcwPXN0YXRpYyB2b2lkIGdtYWNfd3JpdGVfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5NzEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTk3MjpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTk3My1cXHRfX2xlMzIgYWRkclszXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTk5Mz1zdGF0aWMgdm9pZCBnbWFjX2NsZWFyX2h3X3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTk0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE5OTU6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5OTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIwMDU9c3RhdGljIHZvaWQgZ21hY19nZXRfc3RhdHM2NChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMDA3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIwMDg6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIwMDktXFx0dW5zaWduZWQgaW50IHN0YXJ0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMDc0PXN0YXRpYyBpbnQgZ21hY19zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjA3Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMDc3OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMDc4LVxcdGludCBlbmFibGUgPSBmZWF0dXJlcyBcXHUwMDI2IE5FVElGX0ZfUlhDU1VNO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMTA1PXN0YXRpYyB2b2lkIGdtYWNfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjEwNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMTA4OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMTA5LVxcdHVuc2lnbmVkIGludCBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjE4MD1zdGF0aWMgdm9pZCBnbWFjX2dldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIxODIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjE4MzpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjE4NC1cXHR1bmlvbiBnbWFjX2NvbmZpZzAgY29uZmlnMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjIwNj1zdGF0aWMgdm9pZCBnbWFjX2dldF9yaW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjIxMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMjExOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMjI2PXN0YXRpYyBpbnQgZ21hY19zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyMzAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjIzMTpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjIzMi1cXHRpbnQgZXJyID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI0OT1zdGF0aWMgaW50IGdtYWNfZ2V0X2NvYWxlc2NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyNTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjI1NDpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI2Mz1zdGF0aWMgaW50IGdtYWNfc2V0X2NvYWxlc2NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyNjcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjI2ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI4MT1zdGF0aWMgdTMyIGdtYWNfZ2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjgyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIyODM6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyODQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIyODg9c3RhdGljIHZvaWQgZ21hY19zZXRfbXNnbGV2ZWwoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdTMyIGxldmVsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI4OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMjkwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMzE1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgZ21hY18zNTF4X2V0aHRvb2xfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjMzNjpzdGF0aWMgaXJxcmV0dXJuX3QgZ2VtaW5pX3BvcnRfaXJxX3RocmVhZChpbnQgaXJxLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjMzNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzM4LVxcdHVuc2lnbmVkIGxvbmcgaXJxbWFzayA9IFNXRlFfRU1QVFlfSU5UX0JJVDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzMzk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzNDA6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzNDEtXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzNTg6c3RhdGljIGlycXJldHVybl90IGdlbWluaV9wb3J0X2lycShpbnQgaXJxLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM1OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzYwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IGRhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzYxOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzYyLVxcdGlycXJldHVybl90IHJldCA9IElSUV9OT05FO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjM4NzpzdGF0aWMgdm9pZCBnZW1pbmlfcG9ydF9yZW1vdmUoc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM4OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzk3OnN0YXRpYyB2b2lkIGdlbWluaV9ldGhlcm5ldF9pbml0KHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzk4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0NDk6c3RhdGljIHZvaWQgZ2VtaW5pX3BvcnRfc2F2ZV9tYWNfYWRkcihzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0NTk6c3RhdGljIGludCBnZW1pbmlfZXRoZXJuZXRfcG9ydF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ2MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0NjItXFx0c3RydWN0IGRldmljZV9ub2RlICpucCA9IHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjQ2MzpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDY0LVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNDY1OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDY2LVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI1MjktXFx0LyogTWF5YmUgdGhlcmUgaXMgYSBuaWNlIGV0aGVybmV0IGFkZHJlc3Mgd2Ugc2hvdWxkIHVzZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjUzMDpcXHRnZW1pbmlfcG9ydF9zYXZlX21hY19hZGRyKHBvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjUzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjU0OC1cXHQvKiBUaGlzIHdpbGwganVzdCBiZSBkb25lIG9uY2UgYm90aCBwb3J0cyBhcmUgdXAgYW5kIHJlc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNTQ5OlxcdGdlbWluaV9ldGhlcm5ldF9pbml0KGdldGgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjU1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjU5Mi1cXHRcXHRcXHRcXHRcXHRwb3J0LVxcdTAwM2VpcnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNTkzOlxcdFxcdFxcdFxcdFxcdGdlbWluaV9wb3J0X2lycSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI1OTQ6XFx0XFx0XFx0XFx0XFx0Z2VtaW5pX3BvcnRfaXJxX3RocmVhZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI1OTUtXFx0XFx0XFx0XFx0XFx0SVJRRl9TSEFSRUQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjE5OnN0YXRpYyB2b2lkIGdlbWluaV9ldGhlcm5ldF9wb3J0X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjIxOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MjM6XFx0Z2VtaW5pX3BvcnRfcmVtb3ZlKHBvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyNC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYyNjpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBnZW1pbmlfZXRoZXJuZXRfcG9ydF9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyNy1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjI4OlxcdFxcdC5jb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyOS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjMxLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjMyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjM0OnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGdlbWluaV9ldGhlcm5ldF9wb3J0X2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MzUtXFx0LmRyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MzY6XFx0XFx0Lm5hbWUgPSBcXFwiZ2VtaW5pLWV0aGVybmV0LXBvcnRcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYzNzpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBnZW1pbmlfZXRoZXJuZXRfcG9ydF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MzgtXFx0fSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2Mzk6XFx0LnByb2JlID0gZ2VtaW5pX2V0aGVybmV0X3BvcnRfcHJvYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjQwOlxcdC5yZW1vdmUgPSBnZW1pbmlfZXRoZXJuZXRfcG9ydF9yZW1vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQxLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY0MzpzdGF0aWMgaW50IGdlbWluaV9ldGhlcm5ldF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY0NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQ1LVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjQ2OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQ3LVxcdHVuc2lnbmVkIGludCByZXRyeSA9IDU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjgyOnN0YXRpYyB2b2lkIGdlbWluaV9ldGhlcm5ldF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2ODMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY4NDpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjg1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY5MDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBnZW1pbmlfZXRoZXJuZXRfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTEtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY5MjpcXHRcXHQuY29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ldGhlcm5ldFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjkzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTUtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2OTY6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZ2VtaW5pX2V0aGVybmV0X29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjk4OnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGdlbWluaV9ldGhlcm5ldF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjk5LVxcdC5kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzAwLVxcdFxcdC5uYW1lID0gRFJWX05BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzAxOlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MDItXFx0fSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MDM6XFx0LnByb2JlID0gZ2VtaW5pX2V0aGVybmV0X3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcwNDpcXHQucmVtb3ZlID0gZ2VtaW5pX2V0aGVybmV0X3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MDUtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzA3OnN0YXRpYyBpbnQgX19pbml0IGdlbWluaV9ldGhlcm5ldF9tb2R1bGVfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzExOlxcdHJldCA9IHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcihcXHUwMDI2Z2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTItXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MTU6XFx0cmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKFxcdTAwMjZnZW1pbmlfZXRoZXJuZXRfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTYtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcxNzpcXHRcXHRwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcihcXHUwMDI2Z2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTgtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcyMi19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzIzOm1vZHVsZV9pbml0KGdlbWluaV9ldGhlcm5ldF9tb2R1bGVfaW5pdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcyNTpzdGF0aWMgdm9pZCBfX2V4aXQgZ2VtaW5pX2V0aGVybmV0X21vZHVsZV9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzI2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3Mjc6XFx0cGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoXFx1MDAyNmdlbWluaV9ldGhlcm5ldF9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcyODpcXHRwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcihcXHUwMDI2Z2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MjktfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjczMDptb2R1bGVfZXhpdChnZW1pbmlfZXRoZXJuZXRfbW9kdWxlX2V4aXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjczMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTg6NDMuMTAxODU2NzdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjozNTU0MzkyNDY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIEdlbWluaSBFdGhlcm5ldCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIGJlZm9yZSBJIGRpdmUgaW4gYW55IGZ1cnRoZXIsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25zdHJhaW50cyBvbiBgQ09ORklHX0dFTUlOSV9FVEhFUk5FVGAuIFRvIGdldCBhIGhhbmRsZSBvbiB0aGF0LCBJJ20gZ29pbmcgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIEtjb25maWcgZmlsZSBmb3IgQ29ydGluYSBFdGhlcm5ldCBkcml2ZXJzLiBJIHN1c3BlY3QgaXQncyBpbiB0aGUgdXN1YWwgcGxhY2U6IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL0tjb25maWdgLiBUaGlzIHNob3VsZCByZXZlYWwgdGhlIGRlcGVuZGVuY2llcy4gSSBleHBlY3QgdG8gc2VlIHRoZSB0eXBpY2FsIGhhcmR3YXJlIGZlYXR1cmUgZGVwZW5kZW5jaWVzLCBsaWtlIGEgc3BlY2lmaWMgUEhZIG9yIE1BQyBjb25maWd1cmF0aW9uLiBJdCBjb3VsZCBhbHNvIGRlcGVuZCBvbiBvdGhlciBrZXJuZWwgY29tcG9uZW50cywgcGVyaGFwcyBzb21lIHNwZWNpZmljIHBsYXRmb3JtIHN1cHBvcnQuIExldCdzIGRpZyBpbiBhbmQgZmlndXJlIG91dCBleGFjdGx5IHdoYXQgbmVlZHMgdG8gYmUgZW5hYmxlZCBvciBpbiBwbGFjZSBmb3IgdGhpcyBkcml2ZXIgdG8gYmVjb21lIGF2YWlsYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU5MTcsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNFQyMzo1ODo0Ni42NTYyNTIyNTdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMxNTk1MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiR0VNSU5JX0VUSEVSTkVUXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnPTEyPWlmIE5FVF9WRU5ET1JfQ09SVElOQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvS2NvbmZpZy0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL0tjb25maWc6MTQ6Y29uZmlnIEdFTUlOSV9FVEhFUk5FVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvS2NvbmZpZy0xNS1cXHR0cmlzdGF0ZSBcXFwiR2VtaW5pIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvTWFrZWZpbGUtMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0dFTUlOSV9FVEhFUk5FVCkgKz0gZ2VtaW5pLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmgtOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjk6I2lmbmRlZiBfR0VNSU5JX0VUSEVSTkVUX0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjEwOiNkZWZpbmUgX0dFTUlOSV9FVEhFUk5FVF9IXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuaC0xMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmg9OTUzPXN0cnVjdCBub250b2VfcWhkciB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oLTk1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjk1ODojZW5kaWYgLyogX0dFTUlOSV9FVEhFUk5FVF9IICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjQ2LjcwOTQyNTYzNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjY2OTY2ODgxOTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBiYXNlZCBvbiB0aGUgZmlsZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnYDpcblxuKipEaXZpbmcgaW50byB0aGUgQ29ydGluYSBFdGhlcm5ldCBLY29uZmlnKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIEtjb25maWcgZm9yIHRoZSBDb3J0aW5hIEV0aGVybmV0IGRyaXZlcnMuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWZpbmVkIGZvciBpbnRlZ3JhdGluZyB0aGVzZSBQSFlzL01BQ3MgaW50byB0aGUga2VybmVsLiBUaGUgc3RydWN0dXJlIGlzIHByZXR0eSBzdGFuZGFyZCwgYXMgZXhwZWN0ZWQuIEknbSBxdWlja2x5IHNjYW5uaW5nIGZvciB0aGUgdXN1YWwgc3VzcGVjdHM6IG1vZHVsZSBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgc3RhdGVzLCBhbmQgdmlzaWJpbGl0eSBiYXNlZCBvbiBwbGF0Zm9ybSBvciBvdGhlciBkcml2ZXIgZmVhdHVyZXMuXG5cbkknbSBjaGVja2luZyBob3cgdGhlIENvcnRpbmEgZHJpdmVycyBhcmUgYnJva2VuIGRvd247IGxpa2VseSB0aGVyZSBhcmUgc2VwYXJhdGUgb3B0aW9ucyBmb3IgdGhlIGRpZmZlcmVudCBDb3J0aW5hIFNvQ3Mgb3IgUEhZIGZhbWlsaWVzIHRoYXQgYXJlIHN1cHBvcnRlZC4gSSdsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGBzZWxlY3RgIHN0YXRlbWVudHMsIHdoaWNoIGluZGljYXRlIGRlcGVuZGVuY2llcyBvbiBvdGhlciBjb3JlIG5ldHdvcmtpbmcgY29tcG9uZW50cy4gQXJlIHRoZXkgdXNpbmcgdGhlIHN0YW5kYXJkIFBIWSBpbnRlcmZhY2VzLCBvciBoYXZlIHRoZXkgYnVpbHQgc29tZSBwcm9wcmlldGFyeSBvbmVzPyBBcmUgdGhlcmUgcGxhdGZvcm0tc3BlY2lmaWMgZGVwZW5kZW5jaWVzIGhlcmU/IEFueSB1bnVzdWFsIGhhcmR3YXJlIGZlYXR1cmVzIGVuYWJsZWQgaGVyZT9cblxuSSdtIGFsc28gbG9va2luZyBmb3IgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzLiBBcmUgdGhlcmUgYW55IGZlYXR1cmVzIHdoaWNoIGFyZSBlbmFibGVkIGJhc2VkIG9uIGhhdmluZyBvdGhlciBkcml2ZXJzIGNvbXBpbGVkIGluLCBvciBvbiB0aGUgcGxhdGZvcm0/IFdoYXQgYWJvdXQgb3B0aW9uYWwgcG93ZXIgbWFuYWdlbWVudCBzdXBwb3J0IG9yIHNwZWNpZmljIGNsb2NrIGNvbmZpZ3VyYXRpb24/IFRoYXQncyBhbHdheXMgYSBnb29kIHNpZ24gb2Ygd2VsbC1pbnRlZ3JhdGVkIGNvZGUuXG5cbkknbGwgYmUgY2hlY2tpbmcgdGhlIGhlbHAgdGV4dCBmb3IgZWFjaCBvcHRpb24uIFRoaXMgd2lsbCBxdWlja2x5IGdpdmUgbWUgYW4gb3ZlcnZpZXcgb2YgdGhlIHB1cnBvc2Ugb2YgZWFjaCBvZiB0aGUgY29uZmlncy4gVGhpcyBpcyBhbiBpbXBvcnRhbnQgcGFydCBvZiB0aGUgcmV2aWV3IHByb2Nlc3MuIElmIHRoZSBkb2N1bWVudGF0aW9uIGlzIGNsZWFyIGFuZCBhY2N1cmF0ZSwgaXQgc2F2ZXMgYSBsb3Qgb2YgdGltZS4gSWYgbm90LCBpdCBtZWFucyBJJ2xsIGhhdmUgdG8gZGVsdmUgZGVlcGVyIGludG8gdGhlIGNvZGUgdG8gdW5kZXJzdGFuZCB3aGF0J3MgcmVhbGx5IGdvaW5nIG9uLiBJJ2xsIGJlIG1ha2luZyBhIG1lbnRhbCBub3RlIG9mIGFueSByZWQgZmxhZ3MgSSBzZWUsIGxpa2UgdW5jbGVhciBvcHRpb24gZGVzY3JpcHRpb25zIG9yIGNvbnZvbHV0ZWQgZGVwZW5kZW5jaWVzLiBPdmVyYWxsLCBJIGV4cGVjdCB0byBzZWUgYSB3ZWxsLXN0cnVjdHVyZWQgS2NvbmZpZyB0aGF0IHJlZmxlY3RzIGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgYW5kIGludGVncmF0aW9uIHdpdGggdGhlIExpbnV4IGtlcm5lbCdzIG5ldHdvcmtpbmcgc3RhY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2NDgwLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTg6NTMuNDA2MTE2NjQ2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk0MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbiAgIDI6XFx0IyBDb3J0aW5hIGV0aGVybmV0IGRldmljZXNcXG4gICAzOlxcdFxcbiAgIDQ6XFx0Y29uZmlnIE5FVF9WRU5ET1JfQ09SVElOQVxcbiAgIDU6XFx0XFx0Ym9vbCBcXFwiQ29ydGluYSBHZW1pbmkgZGV2aWNlc1xcXCJcXG4gICA2OlxcdFxcdGRlZmF1bHQgeVxcbiAgIDc6XFx0XFx0aGVscFxcbiAgIDg6XFx0XFx0ICBJZiB5b3UgaGF2ZSBhIG5ldHdvcmsgKEV0aGVybmV0KSBjYXJkIGJlbG9uZ2luZyB0byB0aGlzIGNsYXNzLCBzYXkgWVxcbiAgIDk6XFx0XFx0ICBhbmQgcmVhZCB0aGUgRXRoZXJuZXQtSE9XVE8sIGF2YWlsYWJsZSBmcm9tXFxuICAxMDpcXHRcXHQgIFxcdTAwM2NodHRwczovL3d3dy50bGRwLm9yZy9kb2NzLmh0bWwjaG93dG9cXHUwMDNlLlxcbiAgMTE6XFx0XFxuICAxMjpcXHRpZiBORVRfVkVORE9SX0NPUlRJTkFcXG4gIDEzOlxcdFxcbiAgMTQ6XFx0Y29uZmlnIEdFTUlOSV9FVEhFUk5FVFxcbiAgMTU6XFx0XFx0dHJpc3RhdGUgXFxcIkdlbWluaSBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuICAxNjpcXHRcXHRkZXBlbmRzIG9uIE9GXFxuICAxNzpcXHRcXHRkZXBlbmRzIG9uIEhBU19JT01FTVxcbiAgMTg6XFx0XFx0c2VsZWN0IFBIWUxJQlxcbiAgMTk6XFx0XFx0c2VsZWN0IENSQzMyXFxuICAyMDpcXHRcXHRoZWxwXFxuICAyMTpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIFN0b3JMaW5rIFNMMzUxeCAoR2VtaW5pKSBkdWFsIEdpZ2FiaXQgRXRoZXJuZXQuXFxuICAyMjpcXHRcXG4gIDIzOlxcdGVuZGlmICMgTkVUX1ZFTkRPUl9DT1JUSU5BXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjUzLjQwNjE3NzkzNloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjUwNDQ4NjA1MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBHZW1pbmkgRXRoZXJuZXQgRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgd2UncmUgdGFsa2luZyBhYm91dCBgR0VNSU5JX0VUSEVSTkVUYCwgd2hpY2ggZnJvbSB0aGUgc291bmQgb2YgaXQsIGlzIGFuIFNvQyBFdGhlcm5ldCBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQncyBmb3IgdGhlIFwiU3RvckxpbmsgU0wzNTF4IChHZW1pbmkpIGR1YWwgR2lnYWJpdCBFdGhlcm5ldC5cIiBBbmQgaXQgYXBwZWFycyB0byBiZSBhIHBsYXRmb3JtIGRyaXZlciwgYmFzZWQgb24gRGV2aWNlIFRyZWUgaW5zdGFudGlhdGlvbi4gT2theSwgc28gZmFyLCBzbyBnb29kIOKAkyB3ZSdyZSBsb29raW5nIGF0IGBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldGAgYW5kIGBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldC1wb3J0YC4gQnV0IHdhaXQgYSBtaW51dGUuLi4gdGhlIFN0b3JMaW5rIFNMMzUxeCBHZW1pbmkgaXMgYW4gKkFSTSogU29DLCBpc24ndCBpdD8gSSBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSB3aGV0aGVyIFwiR2VtaW5pXCIgaXMgZGlyZWN0bHkgdGllZCB0byBhIHNwZWNpZmljIEFSTSBhcmNoaXRlY3R1cmUgb3IgcGxhdGZvcm0uIFRoaXMgaXMgaW1wb3J0YW50IHRvIGRldGVybWluZSBpdHMgY29tcGF0aWJpbGl0eSBhbmQgd2hlcmUgaXQgZml0cyB3aXRoaW4gbXkgZXhpc3Rpbmcga25vd2xlZGdlIGJhc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3MjMxLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTg6NTguNDUxMDQxNTMxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MTA2NjI3MzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiU0wzNTF4fGNvcnRpbmEsZ2VtaW5pXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cz0xMD0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRpci02ODUuZHRzLTExLVxcdG1vZGVsID0gXFxcIkQtTGluayBESVItNjg1IFh0cmVtZSBOIFN0b3JhZ2UgUm91dGVyXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRpci02ODUuZHRzOjEyOlxcdGNvbXBhdGlibGUgPSBcXFwiZGxpbmssZGlyLTY4NVxcXCIsIFxcXCJjb3J0aW5hLGdlbWluaVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cy0xMy1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHM9NDI0PVxcdFxcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHM6NDI1OlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXFx1MDAzYzBcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHM6NDI2OlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRpci02ODUuZHRzLTQyNy1cXHRcXHRcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTEyPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHMtMTMtXFx0bW9kZWwgPSBcXFwiRC1MaW5rIEROUy0zMTMgMS1CYXkgTmV0d29yayBTdG9yYWdlIEVuY2xvc3VyZVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0czoxNDpcXHRjb21wYXRpYmxlID0gXFxcImRsaW5rLGRucy0zMTNcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHMtMTUtXFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTE2OD1cXHRcXHRmbGFzaEAzMDAwMDAwMCB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTE3Mi1cXHRcXHRcXHQgKi9cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzOjE3MzpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWZsYXNoXFxcIiwgXFxcImplZGVjLWZsYXNoXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTE3NC1cXHRcXHRcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTI4Mj1cXHRcXHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTI4My1cXHRcXHRcXHQvKiBUaGUgUk9NIHVzZXMgdGhpcyBtdXhtb2RlICovXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0czoyODQ6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0czoyODU6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHMtMjg2LVxcdFxcdFxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzPTEyPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzLTEzLVxcdG1vZGVsID0gXFxcIlJhaWRzb25pYyBOQVMgSUItNDIxMC1CXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0czoxNDpcXHRjb21wYXRpYmxlID0gXFxcInJhaWRzb25pYyxpYi00MjEwLWJcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzLTE1LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjEwYi5kdHM9MTYxPVxcdFxcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzOjE2MjpcXHRcXHRcXHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFxcdTAwM2MwXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0czoxNjM6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzLTE2NC1cXHRcXHRcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cz0xMT0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJSYWlkc29uaWMgTkFTIElCLTQyMjAtQlxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHM6MTM6XFx0Y29tcGF0aWJsZSA9IFxcXCJyYWlkc29uaWMsaWItNDIyMC1iXFxcIiwgXFxcImNvcnRpbmEsZ2VtaW5pXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cy0xNC1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIyMGIuZHRzPTE1MT1cXHRcXHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0czoxNTI6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHM6MTUzOlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cy0xNTQtXFx0XFx0XFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzPTExPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJFZGltYXggTlMtMjUwMlxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwiZWRpbWF4LG5zLTI1MDJcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0cy0xNC1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0cz04Mz1cXHUwMDI2c2F0YSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzOjg0OlxcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXFx1MDAzYzNcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0czo4NTpcXHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzLTg2LVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktcnV0MXh4LmR0cz0xMT0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHMtMTItXFx0bW9kZWwgPSBcXFwiVGVsdG9uaWthIFJVVDF4eFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1ydXQxeHguZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwidGVsdG9uaWthLHJ1dDF4eFxcXCIsIFxcXCJjb3J0aW5hLGdlbWluaVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1ydXQxeHguZHRzLTE0LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM9MTQ9LyB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHMtMTUtXFx0bW9kZWwgPSBcXFwiU3RvcmxpbmsgU2VtaWNvbmR1Y3RvciBHZW1pbmkzMjQgRVYtQm9hcmQgLyBTdG9ybSBTZW1pY29uZHVjdG9yIFNMOTM1MTJSX0JSRFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM6MTY6XFx0Y29tcGF0aWJsZSA9IFxcXCJzdG9ybGluayxnZW1pbmkzMjRcXFwiLCBcXFwic3Rvcm0sc2w5MzUxMnJcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzLTE3LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM9MjQxPVxcdFxcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzOjI0MjpcXHRcXHRcXHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFxcdTAwM2MwXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNsOTM1MTJyLmR0czoyNDM6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzLTI0NC1cXHRcXHRcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cz0xMT0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJJVGlhbiBTcXVhcmUgT25lIFNRMjAxXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0czoxMzpcXHRjb21wYXRpYmxlID0gXFxcIml0aWFuLHNxMjAxXFxcIiwgXFxcImNvcnRpbmEsZ2VtaW5pXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cy0xNC1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzPTIzNz1cXHRcXHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0czoyMzg6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zcTIwMS5kdHM6MjM5OlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cy0yNDAtXFx0XFx0XFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zc2kxMzI4LmR0cz0xMT0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzLTEyLVxcdG1vZGVsID0gXFxcIlNTSSAxMzI4XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwic3NpLDEzMjhcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHMtMTQtXFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzPTkzPVxcdTAwMjZzYXRhIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzOjk0OlxcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXFx1MDAzYzBcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHM6OTU6XFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHMtOTYtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS12ZXJiYXRpbS1zMDh2MTkwMS1kMS5kdHM9MTM9LyB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS12ZXJiYXRpbS1zMDh2MTkwMS1kMS5kdHMtMTQtXFx0bW9kZWwgPSBcXFwiVmVyYmF0aW0gR2lnYWJpdCBFdGhlcm5ldCBIYXJkIERyaXZlIFMwOFYxOTAxLUQxXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0czoxNTpcXHRjb21wYXRpYmxlID0gXFxcInZlcmJhdGltLHMwOHYxOTAxLWQxXFxcIiwgXFxcImNvcnRpbmEsZ2VtaW5pXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cy0xNi1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktdmVyYmF0aW0tczA4djE5MDEtZDEuZHRzPTE3NT1cXHRcXHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0czoxNzY6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS12ZXJiYXRpbS1zMDh2MTkwMS1kMS5kdHM6MTc3OlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cy0xNzgtXFx0XFx0XFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzPTExPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktd2JkMTExLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJXaWxpYm9hcmQgV0JELTExMVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwid2lsaWdlYXIsd2lsaWJvYXJkLXdiZDExMVxcXCIsIFxcXCJjb3J0aW5hLGdlbWluaVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzLTE0LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQyMjIuZHRzPTExPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktd2JkMjIyLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJXaWxpYm9hcmQgV0JELTIyMlxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQyMjIuZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwid2lsaWdlYXIsd2lsaWJvYXJkLXdiZDIyMlxcXCIsIFxcXCJjb3J0aW5hLGdlbWluaVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQyMjIuZHRzLTE0LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTYtI2luY2x1ZGUgXFx1MDAzY2R0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2lycS5oXFx1MDAzZVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo3OiNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9jbG9jay9jb3J0aW5hLGdlbWluaS1jbG9jay5oXFx1MDAzZVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo4OiNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9yZXNldC9jb3J0aW5hLGdlbWluaS1yZXNldC5oXFx1MDAzZVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS05LSNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9ncGlvL2dwaW8uaFxcdTAwM2VcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0xOT1cXHRcXHRmbGFzaDogZmxhc2hAMzAwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyMDpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWZsYXNoXFxcIiwgXFxcImNmaS1mbGFzaFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTIxLVxcdFxcdFxcdHN5c2NvbiA9IFxcdTAwM2NcXHUwMDI2c3lzY29uXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yOD1cXHRcXHRzeXNjb246IHN5c2NvbkA0MDAwMDAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjI5OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktc3lzY29uXFxcIixcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzAtXFx0XFx0XFx0XFx0ICAgICBcXFwic3lzY29uXFxcIiwgXFxcInNpbXBsZS1tZmRcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQ0PVxcdFxcdFxcdHBpbmN0cmwge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo0NTpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLXBpbmN0cmxcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS00Ni1cXHRcXHRcXHRcXHRyZWdtYXAgPSBcXHUwMDNjXFx1MDAyNnN5c2NvblxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MTYzPVxcdFxcdHdhdGNoZG9nQDQxMDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MTY0OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktd2F0Y2hkb2dcXFwiLCBcXFwiZmFyYWRheSxmdHdkdDAxMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTE2NS1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg0MTAwMDAwMCAweDEwMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTE5Nz1cXHRcXHRydGNANDUwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToxOTg6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ydGNcXFwiLCBcXFwiZmFyYWRheSxmdHJ0YzAxMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTE5OS1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg0NTAwMDAwMCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MjA4PVxcdFxcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyMDk6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1zYXRhLWJyaWRnZVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTIxMC1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg0NjAwMDAwMCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MjQ4PVxcdFxcdHBvd2VyLWNvbnRyb2xsZXJANGIwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyNDk6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1wb3dlci1jb250cm9sbGVyXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjUwLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDRiMDAwMDAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yNTY9XFx0XFx0Z3BpbzA6IGdwaW9ANGQwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyNTc6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ncGlvXFxcIiwgXFxcImZhcmFkYXksZnRncGlvMDEwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjU4LVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDRkMDAwMDAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yNjg9XFx0XFx0Z3BpbzE6IGdwaW9ANGUwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyNjk6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ncGlvXFxcIiwgXFxcImZhcmFkYXksZnRncGlvMDEwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjcwLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDRlMDAwMDAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yODA9XFx0XFx0Z3BpbzI6IGdwaW9ANGYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyODE6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ncGlvXFxcIiwgXFxcImZhcmFkYXksZnRncGlvMDEwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjgyLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDRmMDAwMDAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yOTI9XFx0XFx0cGNpQDUwMDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MjkzOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktcGNpXFxcIiwgXFxcImZhcmFkYXksZnRwY2kxMDBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0yOTQtXFx0XFx0XFx0LypcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zNTk9XFx0XFx0ZXRoZXJuZXQ6IGV0aGVybmV0QDYwMDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzYwOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zNjEtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NjAwMDAwMDAgMHg0MDAwXFx1MDAzZSwgLyogR2xvYmFsIHJlZ2lzdGVycywgcXVldWUgKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zNzE9XFx0XFx0XFx0Z21hYzA6IGV0aGVybmV0LXBvcnRAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjM3MjpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zNzMtXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NjAwMDgwMDAgMHgyMDAwXFx1MDAzZSwgLyogUG9ydCAwIERNQS9UT0UgKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zODI9XFx0XFx0XFx0Z21hYzE6IGV0aGVybmV0LXBvcnRAMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjM4MzpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zODQtXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NjAwMGMwMDAgMHgyMDAwXFx1MDAzZSwgLyogUG9ydCAxIERNQS9UT0UgKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT00MDI9XFx0XFx0aWRlMDogaWRlQDYzMDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6NDAzOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktcGF0YVxcXCIsIFxcXCJmYXJhZGF5LGZ0aWRlMDEwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDA0LVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDYzMDAwMDAwIDB4MTAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9NDE1PVxcdFxcdGlkZTE6IGlkZUA2MzQwMDAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjQxNjpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLXBhdGFcXFwiLCBcXFwiZmFyYWRheSxmdGlkZTAxMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTQxNy1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MzQwMDAwMCAweDEwMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQ0NT1cXHRcXHRkaXNwbGF5LWNvbnRyb2xsZXJANmEwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo0NDY6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS10dmNcXFwiLCBcXFwiZmFyYWRheSx0dmUyMDBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS00NDctXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NmEwMDAwMDAgMHgxMDAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT00NTg9XFx0XFx0dXNiMDogdXNiQDY4MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6NDU5OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktdXNiXFxcIiwgXFxcImZhcmFkYXksZm90ZzIwMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTQ2MC1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2ODAwMDAwMCAweDEwMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQ4MT1cXHRcXHR1c2IxOiB1c2JANjkwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo0ODI6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS11c2JcXFwiLCBcXFwiZmFyYWRheSxmb3RnMjAwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDgzLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDY5MDAwMDAwIDB4MTAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9tYWNoLWdlbWluaS9ib2FyZC1kdC5jPTU1PXN0YXRpYyBjb25zdCBjaGFyICpnZW1pbmlfYm9hcmRfY29tcGF0W10gPSB7XFxuYXJjaC9hcm0vbWFjaC1nZW1pbmkvYm9hcmQtZHQuYzo1NjpcXHRcXFwiY29ydGluYSxnZW1pbmlcXFwiLFxcbmFyY2gvYXJtL21hY2gtZ2VtaW5pL2JvYXJkLWR0LmMtNTctXFx0TlVMTCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTg6NTguODYxNzE4MjU1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjgyMzIyOTY4ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5yZWFjaGFibGUgQ29kZSBBbmFseXNpczogQ29ydGluYSBHZW1pbmkgRXRoZXJuZXQgb24gYW1kNjQqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIENvcnRpbmEgR2VtaW5pIEV0aGVybmV0IGRyaXZlciBjaGFuZ2UgdG8gYW5hbHl6ZS4gVGhlIGNvZGUgbG9va3MgbGlrZSBpdCdzIHNwZWNpZmljYWxseSBmb3IgdGhlIGBhcmNoL2FybS9tYWNoLWdlbWluaWAgYW5kIGBhcmNoL2FybS9ib290L2R0cy9nZW1pbmkvYCBBUk0gcGxhdGZvcm0uIE15IGltbWVkaWF0ZSBjb25jZXJuLCBnaXZlbiB0aGUgXCJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFwiIGluc3RydWN0aW9uLCBpcyB3aGV0aGVyIHRoaXMgY29kZSBpcyBldmVuICpyZWFjaGFibGUqIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuSSBjaGVjayB0aGUgS2NvbmZpZyBhbmQgc2VlIHRoYXQgYEdFTUlOSV9FVEhFUk5FVGAgZGVwZW5kcyBvbiBgT0ZgIChEZXZpY2UgVHJlZSkgYW5kIGBIQVNfSU9NRU1gLiBhbWQ2NCAqY2FuKiBoYXZlIGBPRmAgZW5hYmxlZCwgYnV0IGl0J3Mgbm90IHR5cGljYWwgdW5sZXNzIHNwZWNpZmljYWxseSBjb25maWd1cmVkIGZvciBpdCwgbGlrZSB0aHJvdWdoIGBPRl9VTklUVEVTVGAuIFJlZ2FyZGxlc3MsIGV2ZW4gaWYgSSBjb3VsZCBjb21waWxlIHRoaXMgb24gYW1kNjQsIHRoZSByZWFsIGlzc3VlIGlzIHRoZSBoYXJkd2FyZS5cblxuVGhlIGluc3RydWN0aW9ucyBhcmUgY2xlYXI6ICpyZWFjaGFiaWxpdHkqIGlzIHRoZSBwcmltYXJ5IGdhdGUuIEkgcmV2aXNpdCBTZWN0aW9ucyAxIGFuZCAyIG9mIHRoZSBndWlkZWxpbmVzLiBUaGV5IHN0YXRlIHRoYXQgZnV6emluZyBpcyBvbmx5IHZhbHVhYmxlIGZvciBjb2RlIHRoYXQgY2FuICpleGVjdXRlKiBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VKSwgZW11bGF0aW5nIHNvZnR3YXJlIGRldmljZXMgbGlrZSBuZXRkZXYgb3IgdHVuL3RhcC5cblxuUmVhZGluZyB0aHJvdWdoIHRoZSBpbnN0cnVjdGlvbnMsIHRoaXMgaXMgYSBjbGVhciBjYXNlIG9mIFwic3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlXCIuICBUaGUgQ29ydGluYSBHZW1pbmkgaXMgYW4gb24tY2hpcCBFdGhlcm5ldCBjb250cm9sbGVyIGZvciB0aGUgQ29ydGluYSBTTDM1MXggQVJNIFNvQywgdXNpbmcgRGV2aWNlIFRyZWUgKGBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldGApLiBUaGlzIG1lYW5zIGl0IHJlbGllcyBvbiAqc3BlY2lmaWMqIHBoeXNpY2FsIGhhcmR3YXJlLCBvciAqdmVyeSogc3BlY2lmaWMgZW11bGF0aW9uIG9mIHRoZSBBUk0gU29DLiBTdGFuZGFyZCBRRU1VIG9yIEdDRSB2aXJ0dWFsIG1hY2hpbmVzIGZvciBhbWQ2NCAqZG8gbm90KiBlbXVsYXRlIHRoZSBHZW1pbmkgR2lnYWJpdCBFdGhlcm5ldCBoYXJkd2FyZS4gRXZlbiBpZiBJIGNvdWxkIHNvbWVob3cgZW5hYmxlIGBHRU1JTklfRVRIRVJORVRgIG9uIGFtZDY0LCB0aGUgZHJpdmVyIHdvdWxkIG5ldmVyIGJlIGFibGUgdG8gcmVhY2ggYW55IG9mIHRoZSBoYXJkd2FyZSByZWdpc3RlcnMuXG5cbkFuZCBqdXN0IHRvIHJlaXRlcmF0ZTogVGhlIGluc3RydWN0aW9ucyBhcmUgcXVpdGUgZXhwbGljaXQuIFRoZSBwcm92aWRlZCBjaGFuZ2VzIG1vZGlmeSBgZ21hY19nZXRfcXVldWVfcGFnZWAsIGBnbWFjX3J4YCwgYGdtYWNfbmFwaV9wb2xsYCwgYW5kIGBnbWFjX2lycWAgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jYC4gVGhhdCdzIHRoZSBkcml2ZXIgZm9yIHRoaXMgdmVyeSBzcGVjaWZpYyBBUk0tYmFzZWQgY29udHJvbGxlci4gVGhlc2UgY2hhbmdlcyBhcmUgc3F1YXJlbHkgaW4gXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmVcIiBhbmQgXCJDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmVcIiBjYXRlZ29yaWVzLiAgVGhlcmUncyBubyBwb2ludCBpbiBmdXp6aW5nIHRoaXMgb24gYW1kNjQuICBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgaWYgdGhlcmUncyAqYW55KiB2aXJ0dWFsIGJ1cyBvciB0ZXN0IGRyaXZlciBmb3IgY29ydGluYSBnZW1pbmkganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGJ1dCBJJ20gY29uZmlkZW50IGluIG15IGFzc2Vzc21lbnQuIEknbGwgZ3JlcCBmb3IgXCJnZW1pbmktZXRoZXJuZXRcIiBqdXN0IHRvIG1ha2Ugc3VyZS4gSSdtIHJldHVybmluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM5MjgsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDk4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU5OjA3LjA5NDAxODE3M1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcwMTg2NDI3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJnZW1pbmktZXRoZXJuZXRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbD0xNz1wcm9wZXJ0aWVzOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xOC0gIGNvbXBhdGlibGU6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sOjE5OiAgICBjb25zdDogY29ydGluYSxnZW1pbmktZXRoZXJuZXRcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMjAtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw9Mzc9cGF0dGVyblByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNDUtICAgICAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw6NDY6ICAgICAgICBjb25zdDogY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC00Ny1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbD04NT1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xMDMtICAgIGV0aGVybmV0QDYwMDAwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw6MTA0OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ldGhlcm5ldFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTEwNS0gICAgICAgIHJlZyA9IFxcdTAwM2MweDYwMDAwMDAwIDB4NDAwMFxcdTAwM2UsIC8qIEdsb2JhbCByZWdpc3RlcnMsIHF1ZXVlICovXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTEyLSAgICAgICAgZ21hYzA6IGV0aGVybmV0LXBvcnRAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sOjExMzogICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ldGhlcm5ldC1wb3J0XFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTE0LSAgICAgICAgICAgICAgICByZWcgPSBcXHUwMDNjMHg2MDAwODAwMCAweDIwMDBcXHUwMDNlLCAvKiBQb3J0IDAgRE1BL1RPRSAqL1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTEyNS0gICAgICAgIGdtYWMxOiBldGhlcm5ldC1wb3J0QDEge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbDoxMjY6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTEyNy0gICAgICAgICAgICAgICAgcmVnID0gXFx1MDAzYzB4NjAwMGMwMDAgMHgyMDAwXFx1MDAzZSwgLyogUG9ydCAxIERNQS9UT0UgKi9cXG4tLVxcbk1BSU5UQUlORVJTPTI4ODI9RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2dlbWluaS55YW1sXFxuTUFJTlRBSU5FUlM6Mjg4MzpGOlxcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbFxcbk1BSU5UQUlORVJTLTI4ODQtRjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9jb3J0aW5hLGdlbWluaS1waW5jdHJsLnR4dFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM1OT1cXHRcXHRldGhlcm5ldDogZXRoZXJuZXRANjAwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTozNjA6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ldGhlcm5ldFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTM2MS1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MDAwMDAwMCAweDQwMDBcXHUwMDNlLCAvKiBHbG9iYWwgcmVnaXN0ZXJzLCBxdWV1ZSAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM3MT1cXHRcXHRcXHRnbWFjMDogZXRoZXJuZXQtcG9ydEAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzcyOlxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTM3My1cXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MDAwODAwMCAweDIwMDBcXHUwMDNlLCAvKiBQb3J0IDAgRE1BL1RPRSAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM4Mj1cXHRcXHRcXHRnbWFjMTogZXRoZXJuZXQtcG9ydEAxIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzgzOlxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTM4NC1cXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MDAwYzAwMCAweDIwMDBcXHUwMDNlLCAvKiBQb3J0IDEgRE1BL1RPRSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNjI2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI3LVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2Mjg6XFx0XFx0LmNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI2MzQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYzNS1cXHQuZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYzNjpcXHRcXHQubmFtZSA9IFxcXCJnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjM3LVxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNjkwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY5MS1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjkyOlxcdFxcdC5jb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0XFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTMtXFx0fSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTk6MDguNzk1ODg3OTU2WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjQ1ODk4ODc3MjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQ29ydGluYSBHZW1pbmkgRXRoZXJuZXQgRHJpdmVyKipcblxuT2theSwgc28gSSd2ZSBleGFtaW5lZCB0aGlzIHBhdGNoLCBhbmQgaGVyZSdzIG15IHRha2UuIEl0J3MgZm9jdXNlZCBlbnRpcmVseSBvbiB0aGUgQ29ydGluYSBTeXN0ZW1zIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIGV0aGVybmV0IGNvbnRyb2xsZXIuIE5vdGhpbmcgZWxzZSBpbiB0aGUgZW52aXJvbm1lbnQgc2VlbXMgdG8gYmUgcmVsYXRlZCB0byBpdCwgd2hpY2ggaXMgYW4gaW1wb3J0YW50IGZpcnN0IGNoZWNrLiBDcnVjaWFsbHksIEkga25vdyB0aGF0IHRoaXMgZHJpdmVyIGlzIGEgcGxhdGZvcm0gZGV2aWNlIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQgcmVsaWVzIG9uIHNwZWNpZmljLCBwaHlzaWNhbCBoYXJkd2FyZSwgc3BlY2lmaWNhbGx5IGFuIEFSTSBTb0MuIEl0J3Mgbm90IHNvbWV0aGluZyBJIGNhbiBqdXN0IHNwaW4gdXAgYW5kIHRlc3QgaW4gYSBzdGFuZGFyZCwgdmlydHVhbGl6ZWQgYW1kNjQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLiBUaGF0J3MgYSBkZWFsYnJlYWtlci5cblxuTG9va2luZyBhdCB0aGUgbmVnYXRpdmUgY3JpdGVyaWEsIGl0IHBlcmZlY3RseSBmaXRzOiB1bnJlYWNoYWJsZSBoYXJkd2FyZSwgYmVjYXVzZSBpdCdzIHRpZWQgdG8gYW4gQVNJQyBvciBTb0MgdGhhdCdzIG5vdCBlbXVsYXRlZCBoZXJlLiBBbmQgdGhlIGNvZGUgcGF0aHMgYXJlIGV4Y2x1c2l2ZSB0byBBUk0sIHdoaWxlIG15IHRlc3RpbmcgZW52aXJvbm1lbnQgaXMgYW1kNjQuXG5cblRoZXJlZm9yZSwgYFdvcnRoRnV6emluZ2AgaGFzIHRvIGJlIGBmYWxzZWAuIE5vIHBvaW50IHNwZW5kaW5nIHRoZSBjeWNsZXMgb24gc29tZXRoaW5nIEkgY2FuJ3QgZXZlbiBnZXQgdG8gcnVuLlxuXG5Ob3csIEkgbmVlZCB0byByZWNvcmQgbXkgcmVhc29uaW5nIGFuZCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRlc3QgcmVzdWx0cy4gTGV0IG1lIHNldCB0aGVzZSBwYXJhbWV0ZXJzOlxuXG4qICAgYFdvcnRoRnV6emluZ2A6IGBmYWxzZWBcbiogICBgRm9jdXNTeW1ib2xzYDogYFtdYCAoZW1wdHkgbGlzdCwgYmVjYXVzZSB0aGVyZSBhcmUgbm8gc3BlY2lmaWMgc3ltYm9scyB0aGF0IG5lZWQgdG8gYmUgZm9jdXNlZCBvbilcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKGFsc28gZW1wdHksIGFzIHRoZXJlIGFyZSBubyBrZXJuZWwgY29uZmlndXJhdGlvbnMgdGhhdCB3b3VsZCBtYWtlIGl0IG1vcmUgdGVzdGFibGUpXG4qICAgYFJlYXNvbmluZ2A6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jYCwgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyIGZvciB0aGUgQ29ydGluYSBHZW1pbmkgKFNMMzUxeCkgQVJNIFNvQyBHaWdhYml0IEV0aGVybmV0IGNvbnRyb2xsZXIuIEl0IHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIEFSTSBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgaXMgdW5yZWFjaGFibGUgb24gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUgKGFtZDY0KS5cIlxuXG5Pa2F5LCBJJ20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgIGFuZCBsb2cgdGhlc2UgZmluZGluZ3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MzMwLCJPdXRwdXRUb2tlbnMiOjExOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNFQyMzo1OToxMy4zODU3Nzg3MjdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTUzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgdGhlIENvcnRpbmEgR2VtaW5pIChTTDM1MXgpIEFSTSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBjb250cm9sbGVyLiBUaGlzIGhhcmR3YXJlIGlzIHNwZWNpZmljIHRvIENvcnRpbmEgR2VtaW5pIEFSTSBwbGF0Zm9ybXMgYW5kIGlzIG5laXRoZXIgcHJlc2VudCBub3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgb24gYW1kNjQuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYywgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gVGhpcyBoYXJkd2FyZSBpcyBzcGVjaWZpYyB0byBDb3J0aW5hIEdlbWluaSBBUk0gcGxhdGZvcm1zIGFuZCBpcyBuZWl0aGVyIHByZXNlbnQgbm9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIG9uIGFtZDY0LiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU5OjEzLjM4NTgwODk2N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowwp2ws[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-14 23:37:18 +0000 UTC FinishedAt: 2026-09-14 23:59:13 +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+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYywgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gVGhpcyBoYXJkd2FyZSBpcyBzcGVjaWZpYyB0byBDb3J0aW5hIEdlbWluaSBBUk0gcGxhdGZvcm1zIGFuZCBpcyBuZWl0aGVyIHByZXNlbnQgbm9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIG9uIGFtZDY0LiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0MDFmYTBiYzhmMzk5ZDIwMTA3ODg3YTYxYzEwNTIwNzdiNTJiYjFkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgMTQgMjM6NTg6MzUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNcbmluZGV4IGYwOGRlNjIzZTZmN2MuLjJmZTdmZDAyMDJkMjYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jXG5AQCAtMTYsNiAmIzQzOzE2LDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2luaXQuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L25ldC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zcGlubG9jay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG5AQCAtNzM2LDcgJiM0Mzs3MzcsOCBAQCBnbWFjX2dldF9xdWV1ZV9wYWdlKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgsXG4gXHRtYXBwaW5nID0gYWRkciBcdTAwMjYgUEFHRV9NQVNLO1xuIFxuIFx0aWYgKCFnZXRoLVx1MDAzZWZyZWVxX3BhZ2VzKSB7XG4tXHRcdGRldl9lcnIoZ2V0aC1cdTAwM2VkZXYsIFwmIzM0O3RyeSB0byBnZXQgcGFnZSB3aXRoIG5vIHBhZ2UgbGlzdFxcblwmIzM0Oyk7XG4mIzQzO1x0XHRkZXZfZXJyX3JhdGVsaW1pdGVkKGdldGgtXHUwMDNlZGV2LFxuJiM0MztcdFx0XHRcdCAgICBcJiMzNDt0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXG5cJiMzNDspO1xuIFx0XHRyZXR1cm4gTlVMTDtcbiBcdH1cbiBcbkBAIC0xNDQxLDcgJiM0MzsxNDQzLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpnbWFjX3NrYl9pZl9nb29kX2ZyYW1lKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCxcbiB9XG4gXG4gc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4tXHRcdFx0ICAgIHVuc2lnbmVkIGludCAqZnJlZXFfY29uc3VtZWQpXG4mIzQzO1x0XHRcdCAgICB1bnNpZ25lZCBpbnQgKmZyZWVxX2NvbnN1bWVkLCBib29sICpyZXNjaGVkdWxlKVxuIHtcbiBcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXHUwMDNjXHUwMDNjIHBvcnQtXHUwMDNlcnhxX29yZGVyKSAtIDE7XG5AQCAtMTQ0OSw2ICYjNDM7MTQ1MSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxuIFx0dm9pZCBfX2lvbWVtICpwdHJfcmVnID0gcG9ydC1cdTAwM2VyeHFfcndwdHI7XG4gXHR1bnNpZ25lZCBpbnQgZnJhZ19uciA9IHBvcnQtXHUwMDNlcnhfZnJhZ19ucjtcbiBcdHN0cnVjdCBza19idWZmICpza2IgPSBwb3J0LVx1MDAzZXJ4X3NrYjtcbiYjNDM7XHQvKiBCb3VuZCBtYWxmb3JtZWQgY2hhaW5zIHdoaWxlIGFsbG93aW5nIG1heGltdW0gZnJhZ21lbnRzIHBlciBmcmFtZS4gKi9cbiYjNDM7XHR1bnNpZ25lZCBpbnQgZGVzY19saW1pdCA9IGJ1ZGdldCAqIE1BWF9TS0JfRlJBR1M7XG4gXHR1bnNpZ25lZCBpbnQgY29uc3VtZWQgPSAwO1xuIFx0dW5zaWduZWQgaW50IGZyYW1lX2xlbiwgZnJhZ19sZW47XG4gXHRzdHJ1Y3QgZ21hY19yeGRlc2MgKnJ4ID0gTlVMTDtcbkBAIC0xNDc1LDcgJiM0MzsxNDc5LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRyID0gcncuYml0cy5ycHRyO1xuIFx0dyA9IHJ3LmJpdHMud3B0cjtcbiBcbi1cdHdoaWxlIChidWRnZXQgXHUwMDI2XHUwMDI2IHcgIT0gcikge1xuJiM0MztcdHdoaWxlIChidWRnZXQgXHUwMDI2XHUwMDI2IGNvbnN1bWVkIFx1MDAzYyBkZXNjX2xpbWl0IFx1MDAyNlx1MDAyNiB3ICE9IHIpIHtcbiBcdFx0cGFnZSA9IE5VTEw7XG4gXHRcdHJ4ID0gcG9ydC1cdTAwM2VyeHFfcmluZyAmIzQzOyByO1xuIFx0XHR3b3JkMCA9IHJ4LVx1MDAzZXdvcmQwO1xuQEAgLTE1MDIsMTUgJiM0MzsxNTA2LDE4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxuIFx0XHR9XG4gXG4gXHRcdGlmICghbWFwcGluZykge1xuLVx0XHRcdG5ldGRldl9lcnIobmV0ZGV2LFxuLVx0XHRcdFx0ICAgXCYjMzQ7cnhxWyV1XTogSFcgQlVHOiB6ZXJvIERNQSBkZXNjXFxuXCYjMzQ7LCByKTtcbiYjNDM7XHRcdFx0aWYgKG5ldF9yYXRlbGltaXQoKSlcbiYjNDM7XHRcdFx0XHRuZXRkZXZfZXJyKG5ldGRldixcbiYjNDM7XHRcdFx0XHRcdCAgIFwmIzM0O3J4cVsldV06IEhXIEJVRzogemVybyBETUEgZGVzY1xcblwmIzM0OyxcbiYjNDM7XHRcdFx0XHRcdCAgIHIpO1xuIFx0XHRcdGdvdG8gZXJyX2Ryb3A7XG4gXHRcdH1cbiBcbiBcdFx0LyogRnJlZXEgcG9pbnRlcnMgYXJlIG9uZSBwYWdlIG9mZiAqL1xuIFx0XHRncGFnZSA9IGdtYWNfZ2V0X3F1ZXVlX3BhZ2UoZ2V0aCwgcG9ydCwgbWFwcGluZyAmIzQzOyBQQUdFX1NJWkUpO1xuIFx0XHRpZiAoIWdwYWdlKSB7XG4tXHRcdFx0ZGV2X2VycihnZXRoLVx1MDAzZWRldiwgXCYjMzQ7Y291bGQgbm90IGZpbmQgbWFwcGluZ1xcblwmIzM0Oyk7XG4mIzQzO1x0XHRcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoZ2V0aC1cdTAwM2VkZXYsXG4mIzQzO1x0XHRcdFx0XHQgICAgXCYjMzQ7Y291bGQgbm90IGZpbmQgbWFwcGluZ1xcblwmIzM0Oyk7XG4gXHRcdFx0Z290byBlcnJfZHJvcDtcbiBcdFx0fVxuIFx0XHRwYWdlID0gZ3BhZ2UtXHUwMDNlcGFnZTtcbkBAIC0xNTM1LDcgJiM0MzsxNTQyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRcdGlmIChmcmFnX25yID09IE1BWF9TS0JfRlJBR1MpXG4gXHRcdFx0Z290byBlcnJfZHJvcDtcbiBcbi1cdFx0aWYgKGZyYWdfbGVuID09IDApXG4mIzQzO1x0XHRpZiAoZnJhZ19sZW4gPT0gMCBcdTAwMjZcdTAwMjYgbmV0X3JhdGVsaW1pdCgpKVxuIFx0XHRcdG5ldGRldl9lcnIobmV0ZGV2LCBcJiMzNDtSZWNlaXZlZCBmcmFnbWVudCB3aXRoIGxlbiA9IDBcXG5cJiMzNDspO1xuIFxuIFx0XHRza2JfZmlsbF9wYWdlX2Rlc2Moc2tiLCBmcmFnX25yLCBwYWdlLCBwYWdlX29mZnMsIGZyYWdfbGVuKTtcbkBAIC0xNTc5LDYgJiM0MzsxNTg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRwb3J0LVx1MDAzZXJ4X2ZyYWdfbnIgPSBmcmFnX25yO1xuIFx0cG9ydC1cdTAwM2VyeF9kcm9wcGluZyA9IGRyb3BwaW5nO1xuIFx0KmZyZWVxX2NvbnN1bWVkID0gY29uc3VtZWQ7XG4mIzQzO1x0KnJlc2NoZWR1bGUgPSBidWRnZXQgXHUwMDI2XHUwMDI2IHcgIT0gcjtcbiBcdHdyaXRldyhyLCBwdHJfcmVnKTtcbiBcdHJldHVybiByZWNlaXZlZDtcbiB9XG5AQCAtMTU5MCwxMiAmIzQzOzE1OTgsMTMgQEAgc3RhdGljIGludCBnbWFjX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4gXHR1bnNpZ25lZCBpbnQgZnJlZXFfdGhyZXNob2xkO1xuIFx0dW5zaWduZWQgaW50IGZyZWVxX2NvbnN1bWVkO1xuIFx0dW5zaWduZWQgaW50IHJlY2VpdmVkO1xuJiM0MztcdGJvb2wgcmVzY2hlZHVsZTtcbiBcbiBcdGZyZWVxX3RocmVzaG9sZCA9IDEgXHUwMDNjXHUwMDNjIChnZXRoLVx1MDAzZWZyZWVxX29yZGVyIC0gMSk7XG4gXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnBvcnQtXHUwMDNlcnhfc3RhdHNfc3luY3ApO1xuIFxuLVx0cmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktXHUwMDNlZGV2LCBidWRnZXQsIFx1MDAyNmZyZWVxX2NvbnN1bWVkKTtcbi1cdGlmIChyZWNlaXZlZCBcdTAwM2MgYnVkZ2V0KVxuJiM0MztcdHJlY2VpdmVkID0gZ21hY19yeChuYXBpLVx1MDAzZWRldiwgYnVkZ2V0LCBcdTAwMjZmcmVlcV9jb25zdW1lZCwgXHUwMDI2cmVzY2hlZHVsZSk7XG4mIzQzO1x0aWYgKCFyZXNjaGVkdWxlIFx1MDAyNlx1MDAyNiByZWNlaXZlZCBcdTAwM2MgYnVkZ2V0KVxuIFx0XHQmIzQzOyYjNDM7cG9ydC1cdTAwM2VyeF9uYXBpX2V4aXRzO1xuIFxuIFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXHUwMDI2cG9ydC1cdTAwM2VyeF9zdGF0c19zeW5jcCk7XG5AQCAtMTYwNiwxMCAmIzQzOzE2MTUsMTEgQEAgc3RhdGljIGludCBnbWFjX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG4gXHRcdGdldGhfZmlsbF9mcmVlcShnZXRoLCB0cnVlKTtcbiBcdH1cbiBcbi1cdGlmIChyZWNlaXZlZCBcdTAwM2MgYnVkZ2V0IFx1MDAyNlx1MDAyNiBuYXBpX2NvbXBsZXRlX2RvbmUobmFwaSwgcmVjZWl2ZWQpKVxuJiM0MztcdGlmICghcmVzY2hlZHVsZSBcdTAwMjZcdTAwMjYgcmVjZWl2ZWQgXHUwMDNjIGJ1ZGdldCBcdTAwMjZcdTAwMjZcbiYjNDM7XHQgICAgbmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHJlY2VpdmVkKSlcbiBcdFx0Z21hY19lbmFibGVfcnhfaXJxKG5hcGktXHUwMDNlZGV2LCAxKTtcbiBcbi1cdHJldHVybiByZWNlaXZlZDtcbiYjNDM7XHRyZXR1cm4gcmVzY2hlZHVsZSA/IGJ1ZGdldCA6IHJlY2VpdmVkO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBnbWFjX2R1bXBfZG1hX3N0YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5AQCAtMTc5OCw3ICYjNDM7MTgwOCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnbWFjX2lycShpbnQgaXJxLCB2b2lkICpkYXRhKVxuIFxuIFx0aWYgKHZhbCBcdTAwMjYgKEdNQUMwX1JYX09WRVJSVU5fSU5UX0JJVCBcdTAwM2NcdTAwM2MgKG5ldGRldi1cdTAwM2VkZXZfaWQgKiA4KSkpIHtcbiBcdFx0c3Bpbl9sb2NrKFx1MDAyNmdldGgtXHUwMDNlaXJxX2xvY2spO1xuLVx0XHR3cml0ZWwoR01BQzBfUlhERVJSX0lOVF9CSVQgXHUwMDNjXHUwMDNjIChuZXRkZXYtXHUwMDNlZGV2X2lkICogOCksXG4mIzQzO1x0XHR3cml0ZWwoR01BQzBfUlhfT1ZFUlJVTl9JTlRfQklUIFx1MDAzY1x1MDAzYyAobmV0ZGV2LVx1MDAzZWRldl9pZCAqIDgpLFxuIFx0XHQgICAgICAgZ2V0aC1cdTAwM2ViYXNlICYjNDM7IEdMT0JBTF9JTlRFUlJVUFRfU1RBVFVTXzRfUkVHKTtcbiBcdFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcdTAwMjZwb3J0LVx1MDAzZWlyX3N0YXRzX3N5bmNwKTtcbiBcdFx0JiM0MzsmIzQzO3BvcnQtXHUwMDNlc3RhdHMucnhfZmlmb19lcnJvcnM7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYywgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gVGhpcyBoYXJkd2FyZSBpcyBzcGVjaWZpYyB0byBDb3J0aW5hIEdlbWluaSBBUk0gcGxhdGZvcm1zIGFuZCBpcyBuZWl0aGVyIHByZXNlbnQgbm9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIG9uIGFtZDY0LiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzcwp0b29scyB0byBpbnNwZWN0IHRoZSBhY3R1YWwgc291cmNlIGNvZGUsIGNhbGxlcnMsIGFuZCBzdXJyb3VuZGluZyBjb250ZXh0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMS4gQ09SRSBUUklBR0UgUEhJTE9TT1BIWQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpUaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLAphbmQgbmV3bHkgdHJpZ2dlcmVkIGFzc2VydGlvbnMgaW50cm9kdWNlZCBieSB0aGUgcGF0Y2ggc2VyaWVzLgoKLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURToKICBGdXp6aW5nIGNhbiBvbmx5IGRpc2NvdmVyIGJ1Z3MgaW4gY29kZSB0aGF0IGNhbiBhY3R1YWxseSBleGVjdXRlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkCiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS4KICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsCiAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGl0IGFkZHMgYXNzZXJ0aW9ucyBvciBjb21wbGV4IGxvZ2ljLgoKLSBETyBOT1QgQkxJTkRMWSBUUlVTVCAmIzM0O05PIEZVTkNUSU9OQUwgQ0hBTkdFJiMzNDsgKE5GQ0kpIE9SICYjMzQ7UkVGQUNUT1JJTkcmIzM0OyBDTEFJTVM6CiAgUGF0Y2ggYXV0aG9ycyByb3V0aW5lbHkgbGFiZWwgY2hhbmdlcyBhcyAmIzM0O2NsZWFudXBzJiMzNDssICYjMzQ7cmVmYWN0b3JpbmdzJiMzNDssIG9yIHN0YXRlCiAgJiMzNDtObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZCYjMzQ7LiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS4KICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnQKICBpbiBjb3JlIHN1YnN5c3RlbXMgZnJlcXVlbnRseSBpbnRyb2R1Y2Ugc3VidGxlIHNlbWFudGljIHNoaWZ0cyBvciB1bmNvdmVyIGxhdGVudCBrZXJuZWwgYnVncy4KICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLgoKLSBORVcgT1IgTU9ESUZJRUQgQVNTRVJUSU9OUyBJTiBSRUFDSEFCTEUgQ09ERSBNVVNUIEJFIEZVWlpFRDoKICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosCiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuCiAgRXZlbiBpZiB0aGUgYXV0aG9yIGJlbGlldmVzIHRoZSBpbnZhcmlhbnQgYWx3YXlzIGhvbGRzLCBmdXp6aW5nIGlzIGVzc2VudGlhbCB0byB2ZXJpZnkgd2hldGhlcgogIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgT05MWSBJRiBhbGwgbW9kaWZpZWQgY29kZSBmYWxscyBzdHJpY3RseSBpbnRvIG9uZSBvciBtb3JlIG9mIHRoZXNlIGNhdGVnb3JpZXM6CgotIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6CiAgKiBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBjb21tZW50cywgb3Igc3BlbGxpbmcgZml4ZXMuCiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLykKICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy4KICAqIFB1cmVseSBkZWNvcmF0aXZlIGxvZ2dpbmcgKGUuZy4sIG1lc3NhZ2Ugc3RyaW5ncyBpbiBwcl9lcnIsIHByaW50aywgZGV2X2luZm8pIG9yIHRyYWNlcG9pbnRzCiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLgogICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLgotIFN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZToKICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gVW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzOgogICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nCiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy4KICAqIENvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjMuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz10cnVlIChQT1NJVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzoKLSBDb3JlIFN1YnN5c3RlbXM6CiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksCiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuCi0gUmVmYWN0b3JpbmdzIGFuZCBDb2RlIENsZWFudXBzOgogICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLgotIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczoKICAqIEFueSBpbnRyb2R1Y3Rpb24gb3IgYWx0ZXJhdGlvbiBvZiBhc3NlcnRpb25zIChXQVJOX09OKiwgVk1fV0FSTl9PTiosIEJVR19PTiosIGV0Yy4pIGluIHJlYWNoYWJsZSBwYXRocy4KLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOgogICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOgoKLSBBVk9JRCBVQklRVUlUT1VTIExJRkVDWUNMRSBIT1QtUEFUSFM6CiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXMKICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdAogIGFuZCB0cmFwIGhhbmRsZXJzLCBvciBjb3JlIHN5bmNocm9uaXphdGlvbiBwcmltaXRpdmVzOyB0aGlzIGlzIG5vdCBhbiBleGhhdXN0aXZlIGxpc3QpLgogIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyAmIzM0O2ZvY3VzZWQmIzM0OywKICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuCgotIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzoKICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHMKICBmb3IgdGhlIHN1YnN5c3RlbSBmZWF0dXJlIHVuZGVyIHJldmlldy4KCi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOgogIENvbXBpbGVyLWlubGluZWQgc3RhdGljIGZ1bmN0aW9ucyAoc3VjaCBhcyBzdGF0aWMgaW5saW5lcyBpbiBtbS8qLmggb3IgaW5jbHVkZS9saW51eC8qLmgpIGxhY2sKICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy4KICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXIKICBmdW5jdGlvbnMgaW4gLmMgZmlsZXMgdGhhdCBleGVyY2lzZSB0aGVtIChhdm9pZGluZyB1YmlxdWl0b3VzIGxpZmVjeWNsZSB3cmFwcGVycykuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo1LiBJREVOVElGWUlORyBFbmFibGVDb25maWdzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6Ci0gSW5zcGVjdCBLY29uZmlnIGZpbGVzIGFuZCAjaWZkZWYgZ3VhcmRzOyBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KLSBDaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLgotIFN0cmlwIGFueSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5UYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NAoKRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA0MDFmYTBiYzhmMzk5ZDIwMTA3ODg3YTYxYzEwNTIwNzdiNTJiYjFkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBTZXAgMTQgMjM6NTg6MzUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYwppbmRleCBmMDhkZTYyM2U2ZjdjLi4yZmU3ZmQwMjAyZDI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMKQEAgLTE2LDYgJiM0MzsxNiw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgva2VybmVsLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvaW5pdC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L21vZHVsZS5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9uZXQuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9zcGlubG9jay5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NsYWIuaCZndDsKQEAgLTczNiw3ICYjNDM7NzM3LDggQEAgZ21hY19nZXRfcXVldWVfcGFnZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoLAogCW1hcHBpbmcgPSBhZGRyICZhbXA7IFBBR0VfTUFTSzsKIAogCWlmICghZ2V0aC0mZ3Q7ZnJlZXFfcGFnZXMpIHsKLQkJZGV2X2VycihnZXRoLSZndDtkZXYsICYjMzQ7dHJ5IHRvIGdldCBwYWdlIHdpdGggbm8gcGFnZSBsaXN0XG4mIzM0Oyk7CiYjNDM7CQlkZXZfZXJyX3JhdGVsaW1pdGVkKGdldGgtJmd0O2RldiwKJiM0MzsJCQkJICAgICYjMzQ7dHJ5IHRvIGdldCBwYWdlIHdpdGggbm8gcGFnZSBsaXN0XG4mIzM0Oyk7CiAJCXJldHVybiBOVUxMOwogCX0KIApAQCAtMTQ0MSw3ICYjNDM7MTQ0Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZ21hY19za2JfaWZfZ29vZF9mcmFtZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQsCiB9CiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LAotCQkJICAgIHVuc2lnbmVkIGludCAqZnJlZXFfY29uc3VtZWQpCiYjNDM7CQkJICAgIHVuc2lnbmVkIGludCAqZnJlZXFfY29uc3VtZWQsIGJvb2wgKnJlc2NoZWR1bGUpCiB7CiAJc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTsKIAl1bnNpZ25lZCBzaG9ydCBtID0gKDEgJmx0OyZsdDsgcG9ydC0mZ3Q7cnhxX29yZGVyKSAtIDE7CkBAIC0xNDQ5LDYgJiM0MzsxNDUxLDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsCiAJdm9pZCBfX2lvbWVtICpwdHJfcmVnID0gcG9ydC0mZ3Q7cnhxX3J3cHRyOwogCXVuc2lnbmVkIGludCBmcmFnX25yID0gcG9ydC0mZ3Q7cnhfZnJhZ19ucjsKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gcG9ydC0mZ3Q7cnhfc2tiOwomIzQzOwkvKiBCb3VuZCBtYWxmb3JtZWQgY2hhaW5zIHdoaWxlIGFsbG93aW5nIG1heGltdW0gZnJhZ21lbnRzIHBlciBmcmFtZS4gKi8KJiM0MzsJdW5zaWduZWQgaW50IGRlc2NfbGltaXQgPSBidWRnZXQgKiBNQVhfU0tCX0ZSQUdTOwogCXVuc2lnbmVkIGludCBjb25zdW1lZCA9IDA7CiAJdW5zaWduZWQgaW50IGZyYW1lX2xlbiwgZnJhZ19sZW47CiAJc3RydWN0IGdtYWNfcnhkZXNjICpyeCA9IE5VTEw7CkBAIC0xNDc1LDcgJiM0MzsxNDc5LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsCiAJciA9IHJ3LmJpdHMucnB0cjsKIAl3ID0gcncuYml0cy53cHRyOwogCi0Jd2hpbGUgKGJ1ZGdldCAmYW1wOyZhbXA7IHcgIT0gcikgewomIzQzOwl3aGlsZSAoYnVkZ2V0ICZhbXA7JmFtcDsgY29uc3VtZWQgJmx0OyBkZXNjX2xpbWl0ICZhbXA7JmFtcDsgdyAhPSByKSB7CiAJCXBhZ2UgPSBOVUxMOwogCQlyeCA9IHBvcnQtJmd0O3J4cV9yaW5nICYjNDM7IHI7CiAJCXdvcmQwID0gcngtJmd0O3dvcmQwOwpAQCAtMTUwMiwxNSAmIzQzOzE1MDYsMTggQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsCiAJCX0KIAogCQlpZiAoIW1hcHBpbmcpIHsKLQkJCW5ldGRldl9lcnIobmV0ZGV2LAotCQkJCSAgICYjMzQ7cnhxWyV1XTogSFcgQlVHOiB6ZXJvIERNQSBkZXNjXG4mIzM0Oywgcik7CiYjNDM7CQkJaWYgKG5ldF9yYXRlbGltaXQoKSkKJiM0MzsJCQkJbmV0ZGV2X2VycihuZXRkZXYsCiYjNDM7CQkJCQkgICAmIzM0O3J4cVsldV06IEhXIEJVRzogemVybyBETUEgZGVzY1xuJiMzNDssCiYjNDM7CQkJCQkgICByKTsKIAkJCWdvdG8gZXJyX2Ryb3A7CiAJCX0KIAogCQkvKiBGcmVlcSBwb2ludGVycyBhcmUgb25lIHBhZ2Ugb2ZmICovCiAJCWdwYWdlID0gZ21hY19nZXRfcXVldWVfcGFnZShnZXRoLCBwb3J0LCBtYXBwaW5nICYjNDM7IFBBR0VfU0laRSk7CiAJCWlmICghZ3BhZ2UpIHsKLQkJCWRldl9lcnIoZ2V0aC0mZ3Q7ZGV2LCAmIzM0O2NvdWxkIG5vdCBmaW5kIG1hcHBpbmdcbiYjMzQ7KTsKJiM0MzsJCQlkZXZfZXJyX3JhdGVsaW1pdGVkKGdldGgtJmd0O2RldiwKJiM0MzsJCQkJCSAgICAmIzM0O2NvdWxkIG5vdCBmaW5kIG1hcHBpbmdcbiYjMzQ7KTsKIAkJCWdvdG8gZXJyX2Ryb3A7CiAJCX0KIAkJcGFnZSA9IGdwYWdlLSZndDtwYWdlOwpAQCAtMTUzNSw3ICYjNDM7MTU0Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LAogCQlpZiAoZnJhZ19uciA9PSBNQVhfU0tCX0ZSQUdTKQogCQkJZ290byBlcnJfZHJvcDsKIAotCQlpZiAoZnJhZ19sZW4gPT0gMCkKJiM0MzsJCWlmIChmcmFnX2xlbiA9PSAwICZhbXA7JmFtcDsgbmV0X3JhdGVsaW1pdCgpKQogCQkJbmV0ZGV2X2VycihuZXRkZXYsICYjMzQ7UmVjZWl2ZWQgZnJhZ21lbnQgd2l0aCBsZW4gPSAwXG4mIzM0Oyk7CiAKIAkJc2tiX2ZpbGxfcGFnZV9kZXNjKHNrYiwgZnJhZ19uciwgcGFnZSwgcGFnZV9vZmZzLCBmcmFnX2xlbik7CkBAIC0xNTc5LDYgJiM0MzsxNTg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsCiAJcG9ydC0mZ3Q7cnhfZnJhZ19uciA9IGZyYWdfbnI7CiAJcG9ydC0mZ3Q7cnhfZHJvcHBpbmcgPSBkcm9wcGluZzsKIAkqZnJlZXFfY29uc3VtZWQgPSBjb25zdW1lZDsKJiM0MzsJKnJlc2NoZWR1bGUgPSBidWRnZXQgJmFtcDsmYW1wOyB3ICE9IHI7CiAJd3JpdGV3KHIsIHB0cl9yZWcpOwogCXJldHVybiByZWNlaXZlZDsKIH0KQEAgLTE1OTAsMTIgJiM0MzsxNTk4LDEzIEBAIHN0YXRpYyBpbnQgZ21hY19uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KQogCXVuc2lnbmVkIGludCBmcmVlcV90aHJlc2hvbGQ7CiAJdW5zaWduZWQgaW50IGZyZWVxX2NvbnN1bWVkOwogCXVuc2lnbmVkIGludCByZWNlaXZlZDsKJiM0MzsJYm9vbCByZXNjaGVkdWxlOwogCiAJZnJlZXFfdGhyZXNob2xkID0gMSAmbHQ7Jmx0OyAoZ2V0aC0mZ3Q7ZnJlZXFfb3JkZXIgLSAxKTsKIAl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZhbXA7cG9ydC0mZ3Q7cnhfc3RhdHNfc3luY3ApOwogCi0JcmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktJmd0O2RldiwgYnVkZ2V0LCAmYW1wO2ZyZWVxX2NvbnN1bWVkKTsKLQlpZiAocmVjZWl2ZWQgJmx0OyBidWRnZXQpCiYjNDM7CXJlY2VpdmVkID0gZ21hY19yeChuYXBpLSZndDtkZXYsIGJ1ZGdldCwgJmFtcDtmcmVlcV9jb25zdW1lZCwgJmFtcDtyZXNjaGVkdWxlKTsKJiM0MzsJaWYgKCFyZXNjaGVkdWxlICZhbXA7JmFtcDsgcmVjZWl2ZWQgJmx0OyBidWRnZXQpCiAJCSYjNDM7JiM0Mztwb3J0LSZndDtyeF9uYXBpX2V4aXRzOwogCiAJdTY0X3N0YXRzX3VwZGF0ZV9lbmQoJmFtcDtwb3J0LSZndDtyeF9zdGF0c19zeW5jcCk7CkBAIC0xNjA2LDEwICYjNDM7MTYxNSwxMSBAQCBzdGF0aWMgaW50IGdtYWNfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldCkKIAkJZ2V0aF9maWxsX2ZyZWVxKGdldGgsIHRydWUpOwogCX0KIAotCWlmIChyZWNlaXZlZCAmbHQ7IGJ1ZGdldCAmYW1wOyZhbXA7IG5hcGlfY29tcGxldGVfZG9uZShuYXBpLCByZWNlaXZlZCkpCiYjNDM7CWlmICghcmVzY2hlZHVsZSAmYW1wOyZhbXA7IHJlY2VpdmVkICZsdDsgYnVkZ2V0ICZhbXA7JmFtcDsKJiM0MzsJICAgIG5hcGlfY29tcGxldGVfZG9uZShuYXBpLCByZWNlaXZlZCkpCiAJCWdtYWNfZW5hYmxlX3J4X2lycShuYXBpLSZndDtkZXYsIDEpOwogCi0JcmV0dXJuIHJlY2VpdmVkOwomIzQzOwlyZXR1cm4gcmVzY2hlZHVsZSA/IGJ1ZGdldCA6IHJlY2VpdmVkOwogfQogCiBzdGF0aWMgdm9pZCBnbWFjX2R1bXBfZG1hX3N0YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpCkBAIC0xNzk4LDcgJiM0MzsxODA4LDcgQEAgc3RhdGljIGlycXJldHVybl90IGdtYWNfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpCiAKIAlpZiAodmFsICZhbXA7IChHTUFDMF9SWF9PVkVSUlVOX0lOVF9CSVQgJmx0OyZsdDsgKG5ldGRldi0mZ3Q7ZGV2X2lkICogOCkpKSB7CiAJCXNwaW5fbG9jaygmYW1wO2dldGgtJmd0O2lycV9sb2NrKTsKLQkJd3JpdGVsKEdNQUMwX1JYREVSUl9JTlRfQklUICZsdDsmbHQ7IChuZXRkZXYtJmd0O2Rldl9pZCAqIDgpLAomIzQzOwkJd3JpdGVsKEdNQUMwX1JYX09WRVJSVU5fSU5UX0JJVCAmbHQ7Jmx0OyAobmV0ZGV2LSZndDtkZXZfaWQgKiA4KSwKIAkJICAgICAgIGdldGgtJmd0O2Jhc2UgJiM0MzsgR0xPQkFMX0lOVEVSUlVQVF9TVEFUVVNfNF9SRUcpOwogCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZhbXA7cG9ydC0mZ3Q7aXJfc3RhdHNfc3luY3ApOwogCQkmIzQzOyYjNDM7cG9ydC0mZ3Q7c3RhdHMucnhfZmlmb19lcnJvcnM7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1NDQKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiA5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgaGl0dGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY2AuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIGxldCYjMzk7cyBkaXZlIGludG8gaXQuIEZpcnN0IHRoaW5nJiMzOTtzIGZpcnN0OiBuZWVkIHRvIGNvbmZpcm0gdGhlIGFyY2hpdGVjdHVyZSB0aGlzIHRhcmdldHMuIEFoLCBhbWQ2NCDigJMgZ29vZCwgbmFycm93cyB0aGluZ3MgZG93biBhIGJpdC4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgS2NvbmZpZyBpbXBsaWNhdGlvbnMgZm9yIGBnZW1pbmkuY2AuIExldCYjMzk7cyBzZWUgd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCwgZGlzYWJsZWQsIGFuZCBjb25maWd1cmFibGUuIEZpbmFsbHksIEkmIzM5O2xsIG5lZWQgdG8gZG91YmxlIGNoZWNrIHRoZSBNYWtlZmlsZSBhbmQgS2NvbmZpZyBmaWxlcyBmb3IgdGhhdCBtb2R1bGUsIHNvIEkmIzM5O2xsIHNlYXJjaCBmb3IgYGdlbWluaS5jYCB3aXRoaW4gYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvYCB0byBlbnN1cmUgSSBoYXZlIHRoZSBmdWxsIHBpY3R1cmUuIFdhbnQgdG8gYmUgdGhvcm91Z2gsIGVzcGVjaWFsbHkgd2l0aCBuZXR3b3JrIGRyaXZlcnMuIEdvdHRhIG1ha2Ugc3VyZSB0aGlzIGNoYW5nZSBpcyBjbGVhbmx5IGludGVncmF0ZWQgYW5kIGRvZXNuJiMzOTt0IGNhdXNlIGFueSB1bmV4cGVjdGVkIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2dlbWluaSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9NYWtlZmlsZS0zLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9NYWtlZmlsZTo0Om9iai0kKENPTkZJR19HRU1JTklfRVRIRVJORVQpICYjNDM7PSBnZW1pbmkub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjQ2OiNpbmNsdWRlIFwmIzM0O2dlbWluaS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo0ODojZGVmaW5lIERSVl9OQU1FXHRcdFwmIzM0O2dtYWMtZ2VtaW5pXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9OTc9c3RydWN0IGdtYWNfdHhxIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTA0OnN0cnVjdCBnZW1pbmlfZXRoZXJuZXQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTA2OnN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwNy1cdHU4IGlkOyAvKiAwIG9yIDEgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMDk6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTAtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTU6c3RydWN0IGdlbWluaV9ldGhlcm5ldCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE1Ni1cdHN0cnVjdCBkZXZpY2UgKmRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTU3LVx0dm9pZCBfX2lvbWVtICpiYXNlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQwO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTk6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNjAtXHRib29sIGluaXRpYWxpemVkO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjMwPXN0YXRpYyB2b2lkIGdtYWNfdXBkYXRlX2NvbmZpZzBfcmVnKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzM6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzQtXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjQ2PXN0YXRpYyB2b2lkIGdtYWNfZW5hYmxlX3R4X3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0ODpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0OS1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNjE9c3RhdGljIHZvaWQgZ21hY19kaXNhYmxlX3R4X3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MzpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2NC1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNzg9c3RhdGljIHZvaWQgZ21hY19zZXRfZmxvd19jb250cm9sKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGJvb2wgdHgsIGJvb2wgcngpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3OS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI4MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI4MS1cdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yOTc9c3RhdGljIHZvaWQgZ21hY19hZGp1c3RfbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yOTgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyOTk6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0zMDAtXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gbmV0ZGV2LVx1MDAzZXBoeWRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTM2Mj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTM2My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjM2NDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTM2NS1cdHVuaW9uIGdtYWNfc3RhdHVzIHN0YXR1cyA9IHsgLmJpdHMzMiA9IDAgfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTQ2Nj1zdGF0aWMgaW50IGdtYWNfaW5pdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy00Njcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo0Njg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy00NjktXHR1bmlvbiBnbWFjX2NvbmZpZzAgY29uZmlnMCA9IHsgLmJpdHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz01NDY9c3RhdGljIGludCBnbWFjX3NldHVwX3R4cXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNTQ3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NTQ4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNTQ5LVx0dW5zaWduZWQgaW50IG5fdHhxID0gbmV0ZGV2LVx1MDAzZW51bV90eF9xdWV1ZXM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjU1MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVx1MDAzZWdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTU1MS1cdHNpemVfdCBlbnRyaWVzID0gMSBcdTAwM2NcdTAwM2MgcG9ydC1cdTAwM2V0eHFfb3JkZXI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz02MDQ9c3RhdGljIHZvaWQgZ21hY19jbGVhbl90eHEoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IGdtYWNfdHhxICp0eHEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02MDYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2MDc6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02MDgtXHR1bnNpZ25lZCBpbnQgbSA9ICgxIFx1MDAzY1x1MDAzYyBwb3J0LVx1MDAzZXR4cV9vcmRlcikgLSAxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2MDk6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02MTAtXHR1bnNpZ25lZCBpbnQgYyA9IHR4cS1cdTAwM2VjcHRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9Njc2PXN0YXRpYyB2b2lkIGdtYWNfY2xlYW51cF90eHFzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTY3Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjY3ODpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTY3OS1cdHVuc2lnbmVkIGludCBuX3R4cSA9IG5ldGRldi1cdTAwM2VudW1fdHhfcXVldWVzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2ODA6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02ODEtXHR2b2lkIF9faW9tZW0gKnJ3cHRyX3JlZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTcwMj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfcnhxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTcwMy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjcwNDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjcwNTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVx1MDAzZWdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTcwNi1cdHN0cnVjdCBub250b2VfcWhkciBfX2lvbWVtICpxaGRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9NzI3PXN0YXRpYyBzdHJ1Y3QgZ21hY19xdWV1ZV9wYWdlICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NzI4OmdtYWNfZ2V0X3F1ZXVlX3BhZ2Uoc3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NzI5Olx0XHQgICAgc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03MzAtXHRcdCAgICBkbWFfYWRkcl90IGFkZHIpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz03NTU9c3RhdGljIHZvaWQgZ21hY19jbGVhbnVwX3J4cShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03NTYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3NTc6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3NTg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03NTktXHRzdHJ1Y3QgZ21hY19yeGRlc2MgKnJ4ZCA9IHBvcnQtXHUwMDNlcnhxX3Jpbmc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04MDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjgwNTpzdGF0aWMgc3RydWN0IHBhZ2UgKmdldGhfZnJlZXFfYWxsb2NfbWFwX3BhZ2Uoc3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtODA2LVx0XHRcdFx0XHQgICAgICBpbnQgcG4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04NzEtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjg3MjpzdGF0aWMgdW5zaWduZWQgaW50IGdldGhfZmlsbF9mcmVlcShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoLCBib29sIHJlZmlsbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtODczLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTkyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6OTI3OnN0YXRpYyBpbnQgZ2V0aF9zZXR1cF9mcmVlcShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy05Mjgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtOTk4LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo5OTk6c3RhdGljIHZvaWQgZ2V0aF9jbGVhbnVwX2ZyZWVxKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwMDAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTAzOC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTAzOTpzdGF0aWMgaW50IGdldGhfcmVzaXplX2ZyZWVxKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTA0MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwNDE6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDQyLVx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiA9IHBvcnQtXHUwMDNlbmV0ZGV2O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMDQzOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpvdGhlcl9wb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDQ0LVx0c3RydWN0IG5ldF9kZXZpY2UgKm90aGVyX25ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTExMDc9c3RhdGljIHZvaWQgZ21hY190eF9pcnFfZW5hYmxlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTA5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTExMDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjExMTE6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTEyLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTExMzk9c3RhdGljIGludCBnbWFjX21hcF90eF9idWZzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTQxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTE0MjpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTExNDMtXHRzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvICpza2Jfc2kgPSAgc2tiX3NoaW5mbyhza2IpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTE0NS1cdHNob3J0IGZyYWcsIGxhc3RfZnJhZyA9IHNrYl9zaS1cdTAwM2Vucl9mcmFncyAtIDE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjExNDY6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTQ3LVx0dW5zaWduZWQgaW50IHdvcmQxLCB3b3JkMywgYnVmbGVuO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTI3Nz1zdGF0aWMgbmV0ZGV2X3R4X3QgZ21hY19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMjc5LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTI4MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEyODEtXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXHUwMDNjXHUwMDNjIHBvcnQtXHUwMDNldHhxX29yZGVyKSAtIDE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xMzU3PXN0YXRpYyB2b2lkIGdtYWNfZW5hYmxlX2lycShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBpbnQgZW5hYmxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzU4LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTM1OTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzNjA6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzYxLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTEzODY9c3RhdGljIHZvaWQgZ21hY19lbmFibGVfcnhfaXJxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBlbmFibGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEzODcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMzg4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTM4OTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVx1MDAzZWdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEzOTAtXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTQwNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTQwNTpzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmdtYWNfc2tiX2lmX2dvb2RfZnJhbWUoc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNDA2LVx0XHRcdFx0XHQgICAgICB1bmlvbiBnbWFjX3J4ZGVzY18wIHdvcmQwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTQ0NT1zdGF0aWMgdW5zaWduZWQgaW50IGdtYWNfcngoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdW5zaWduZWQgaW50IGJ1ZGdldCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE0NDcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNDQ4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTQ0OS1cdHVuc2lnbmVkIHNob3J0IG0gPSAoMSBcdTAwM2NcdTAwM2MgcG9ydC1cdTAwM2VyeHFfb3JkZXIpIC0gMTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTQ1MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVx1MDAzZWdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE0NTEtXHR2b2lkIF9faW9tZW0gKnB0cl9yZWcgPSBwb3J0LVx1MDAzZXJ4cV9yd3B0cjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE1OTQ9c3RhdGljIGludCBnbWFjX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE1OTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTk2Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmFwaS1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTk3Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXHUwMDNlZ2V0aDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTU5OC1cdHVuc2lnbmVkIGludCBmcmVlcV90aHJlc2hvbGQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xNjI1PXN0YXRpYyB2b2lkIGdtYWNfZHVtcF9kbWFfc3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTYyNi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE2Mjc6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNjI4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXHUwMDNlZ2V0aDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTYyOS1cdHZvaWQgX19pb21lbSAqcHRyX3JlZztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE2OTY9c3RhdGljIHZvaWQgZ21hY191cGRhdGVfaHdfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTY5Ny17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE2OTg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNjk5LVx0dW5zaWduZWQgaW50IHJ4X2Rpc2NhcmRzLCByeF9tY2FzdCwgcnhfYmNhc3Q7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3MDA6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzAxLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE3MzI9c3RhdGljIHUzMiBnbWFjX2dldF9pbnRyX2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzMzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTczNDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3MzU6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cdTAwM2VnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzM2LVx0dm9pZCBfX2lvbWVtICppcnFpZl9yZWcsICppcnFlbl9yZWc7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xNzUwPXN0YXRpYyBlbnVtIGhydGltZXJfcmVzdGFydCBnbWFjX2NvYWxlc2NlX2RlbGF5X2V4cGlyZWQoc3RydWN0IGhydGltZXIgKnRpbWVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzUxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTc1MjpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3NTM6XHRcdGNvbnRhaW5lcl9vZih0aW1lciwgc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzU0LVx0XHRcdCAgICAgcnhfY29hbGVzY2VfdGltZXIpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTc2MD1zdGF0aWMgaXJxcmV0dXJuX3QgZ21hY19pcnEoaW50IGlycSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTc2MS17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3NjI6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NjMtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTc2NDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NjUtXHR1MzIgdmFsLCBvcnIgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTgyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTgyMjpzdGF0aWMgdm9pZCBnbWFjX3N0YXJ0X2RtYShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE4MjMte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg0Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTg0MzpzdGF0aWMgdm9pZCBnbWFjX3N0b3BfZG1hKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg0NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xODU0PXN0YXRpYyBpbnQgZ21hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE4NTUte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxODU2Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg1Ny1cdGludCBlcnI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xOTExPXN0YXRpYyBpbnQgZ21hY19zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5MTIte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxOTEzOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTkxNC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE5MzU9c3RhdGljIHZvaWQgZ21hY19zZXRfcnhfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTM2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTkzNzpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5MzgtXHR1bmlvbiBnbWFjX3J4X2ZsdHIgZmlsdGVyID0geyAuYml0cyA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE5NzA9c3RhdGljIHZvaWQgZ21hY193cml0ZV9tYWNfYWRkcmVzcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTcxLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTk3MjpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5NzMtXHRfX2xlMzIgYWRkclszXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE5OTM9c3RhdGljIHZvaWQgZ21hY19jbGVhcl9od19zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTk0LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTk5NTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5OTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMDA1PXN0YXRpYyB2b2lkIGdtYWNfZ2V0X3N0YXRzNjQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIwMDcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMDA4Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjAwOS1cdHVuc2lnbmVkIGludCBzdGFydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIwNzQ9c3RhdGljIGludCBnbWFjX3NldF9mZWF0dXJlcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjA3Ni17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIwNzc6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMDc4LVx0aW50IGVuYWJsZSA9IGZlYXR1cmVzIFx1MDAyNiBORVRJRl9GX1JYQ1NVTTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIxMDU9c3RhdGljIHZvaWQgZ21hY19nZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjEwNy17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIxMDg6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMTA5LVx0dW5zaWduZWQgaW50IHN0YXJ0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjE4MD1zdGF0aWMgdm9pZCBnbWFjX2dldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMTgyLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjE4MzpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIxODQtXHR1bmlvbiBnbWFjX2NvbmZpZzAgY29uZmlnMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIyMDY9c3RhdGljIHZvaWQgZ21hY19nZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjEwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjIxMTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyMTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMjI2PXN0YXRpYyBpbnQgZ21hY19zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjMwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjIzMTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyMzItXHRpbnQgZXJyID0gMDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIyNDk9c3RhdGljIGludCBnbWFjX2dldF9jb2FsZXNjZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI1My17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIyNTQ6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjU1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI2Mz1zdGF0aWMgaW50IGdtYWNfc2V0X2NvYWxlc2NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjY3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjI2ODpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyNjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMjgxPXN0YXRpYyB1MzIgZ21hY19nZXRfbXNnbGV2ZWwoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI4Mi17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIyODM6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjg0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI4OD1zdGF0aWMgdm9pZCBnbWFjX3NldF9tc2dsZXZlbChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1MzIgbGV2ZWwpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyODkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMjkwOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIzMTU9c3RhdGljIGNvbnN0IHN0cnVjdCBldGh0b29sX29wcyBnbWFjXzM1MXhfZXRodG9vbF9vcHMgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzM1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzM2OnN0YXRpYyBpcnFyZXR1cm5fdCBnZW1pbmlfcG9ydF9pcnFfdGhyZWFkKGludCBpcnEsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzMzcte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzM4LVx0dW5zaWduZWQgbG9uZyBpcnFtYXNrID0gU1dGUV9FTVBUWV9JTlRfQklUO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzM5Olx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjM0MDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzNDEtXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM1Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjM1ODpzdGF0aWMgaXJxcmV0dXJuX3QgZ2VtaW5pX3BvcnRfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzNTkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzYwOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gZGF0YTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjM2MTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzNjItXHRpcnFyZXR1cm5fdCByZXQgPSBJUlFfTk9ORTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzODYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzODc6c3RhdGljIHZvaWQgZ2VtaW5pX3BvcnRfcmVtb3ZlKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM4OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzk3OnN0YXRpYyB2b2lkIGdlbWluaV9ldGhlcm5ldF9pbml0KHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzOTgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjQ0OTpzdGF0aWMgdm9pZCBnZW1pbmlfcG9ydF9zYXZlX21hY19hZGRyKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ1MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNDU5OnN0YXRpYyBpbnQgZ2VtaW5pX2V0aGVybmV0X3BvcnRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ2MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDYyLVx0c3RydWN0IGRldmljZV9ub2RlICpucCA9IHBkZXYtXHUwMDNlZGV2Lm9mX25vZGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0NjM6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0NjQtXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZwZGV2LVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjQ2NTpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0NjYtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjUyOS1cdC8qIE1heWJlIHRoZXJlIGlzIGEgbmljZSBldGhlcm5ldCBhZGRyZXNzIHdlIHNob3VsZCB1c2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjUzMDpcdGdlbWluaV9wb3J0X3NhdmVfbWFjX2FkZHIocG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI1MzEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNTQ4LVx0LyogVGhpcyB3aWxsIGp1c3QgYmUgZG9uZSBvbmNlIGJvdGggcG9ydHMgYXJlIHVwIGFuZCByZXNldCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNTQ5Olx0Z2VtaW5pX2V0aGVybmV0X2luaXQoZ2V0aCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI1NTAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNTkyLVx0XHRcdFx0XHRwb3J0LVx1MDAzZWlycSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjU5MzpcdFx0XHRcdFx0Z2VtaW5pX3BvcnRfaXJxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNTk0Olx0XHRcdFx0XHRnZW1pbmlfcG9ydF9pcnFfdGhyZWFkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNTk1LVx0XHRcdFx0XHRJUlFGX1NIQVJFRCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MTk6c3RhdGljIHZvaWQgZ2VtaW5pX2V0aGVybmV0X3BvcnRfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MjAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjIxOlx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MjM6XHRnZW1pbmlfcG9ydF9yZW1vdmUocG9ydCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MjQtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjI2OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MjctXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2Mjg6XHRcdC5jb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyOS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjMxLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MzI6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZ2VtaW5pX2V0aGVybmV0X3BvcnRfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjMzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjM0OnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGdlbWluaV9ldGhlcm5ldF9wb3J0X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYzNS1cdC5kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MzY6XHRcdC5uYW1lID0gXCYjMzQ7Z2VtaW5pLWV0aGVybmV0LXBvcnRcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2Mzc6XHRcdC5vZl9tYXRjaF90YWJsZSA9IGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjM4LVx0fSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYzOTpcdC5wcm9iZSA9IGdlbWluaV9ldGhlcm5ldF9wb3J0X3Byb2JlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjQwOlx0LnJlbW92ZSA9IGdlbWluaV9ldGhlcm5ldF9wb3J0X3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY0MS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjQzOnN0YXRpYyBpbnQgZ2VtaW5pX2V0aGVybmV0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2NDQte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQ1LVx0c3RydWN0IGRldmljZSAqZGV2ID0gXHUwMDI2cGRldi1cdTAwM2VkZXY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2NDY6XHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQ3LVx0dW5zaWduZWQgaW50IHJldHJ5ID0gNTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2ODEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2ODI6c3RhdGljIHZvaWQgZ2VtaW5pX2V0aGVybmV0X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjgzLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY4NDpcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY4NS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2ODktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2OTA6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZ2VtaW5pX2V0aGVybmV0X29mX21hdGNoW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTEtXHR7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2OTI6XHRcdC5jb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXRcJiMzNDssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTMtXHR9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY5NS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjk2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2OTg6c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ2VtaW5pX2V0aGVybmV0X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY5OS1cdC5kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MDAtXHRcdC5uYW1lID0gRFJWX05BTUUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MDE6XHRcdC5vZl9tYXRjaF90YWJsZSA9IGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcwMi1cdH0sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MDM6XHQucHJvYmUgPSBnZW1pbmlfZXRoZXJuZXRfcHJvYmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MDQ6XHQucmVtb3ZlID0gZ2VtaW5pX2V0aGVybmV0X3JlbW92ZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcwNS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzA3OnN0YXRpYyBpbnQgX19pbml0IGdlbWluaV9ldGhlcm5ldF9tb2R1bGVfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzA4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MTE6XHRyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoXHUwMDI2Z2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcxMi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzE0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzE1Olx0cmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKFx1MDAyNmdlbWluaV9ldGhlcm5ldF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzE2LVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzE3Olx0XHRwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcihcdTAwMjZnZW1pbmlfZXRoZXJuZXRfcG9ydF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzE4LVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcyMi19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MjM6bW9kdWxlX2luaXQoZ2VtaW5pX2V0aGVybmV0X21vZHVsZV9pbml0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcyNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcyNTpzdGF0aWMgdm9pZCBfX2V4aXQgZ2VtaW5pX2V0aGVybmV0X21vZHVsZV9leGl0KHZvaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MjYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzI3Olx0cGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoXHUwMDI2Z2VtaW5pX2V0aGVybmV0X2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3Mjg6XHRwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcihcdTAwMjZnZW1pbmlfZXRoZXJuZXRfcG9ydF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzI5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjczMDptb2R1bGVfZXhpdChnZW1pbmlfZXRoZXJuZXRfbW9kdWxlX2V4aXQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzMxLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE1OTE3CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqSW52ZXN0aWdhdGluZyBHZW1pbmkgRXRoZXJuZXQgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXMqKgoKQWxyaWdodCwgYmVmb3JlIEkgZGl2ZSBpbiBhbnkgZnVydGhlciwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnN0cmFpbnRzIG9uIGBDT05GSUdfR0VNSU5JX0VUSEVSTkVUYC4gVG8gZ2V0IGEgaGFuZGxlIG9uIHRoYXQsIEkmIzM5O20gZ29pbmcgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIEtjb25maWcgZmlsZSBmb3IgQ29ydGluYSBFdGhlcm5ldCBkcml2ZXJzLiBJIHN1c3BlY3QgaXQmIzM5O3MgaW4gdGhlIHVzdWFsIHBsYWNlOiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnYC4gVGhpcyBzaG91bGQgcmV2ZWFsIHRoZSBkZXBlbmRlbmNpZXMuIEkgZXhwZWN0IHRvIHNlZSB0aGUgdHlwaWNhbCBoYXJkd2FyZSBmZWF0dXJlIGRlcGVuZGVuY2llcywgbGlrZSBhIHNwZWNpZmljIFBIWSBvciBNQUMgY29uZmlndXJhdGlvbi4gSXQgY291bGQgYWxzbyBkZXBlbmQgb24gb3RoZXIga2VybmVsIGNvbXBvbmVudHMsIHBlcmhhcHMgc29tZSBzcGVjaWZpYyBwbGF0Zm9ybSBzdXBwb3J0LiBMZXQmIzM5O3MgZGlnIGluIGFuZCBmaWd1cmUgb3V0IGV4YWN0bHkgd2hhdCBuZWVkcyB0byBiZSBlbmFibGVkIG9yIGluIHBsYWNlIGZvciB0aGlzIGRyaXZlciB0byBiZWNvbWUgYXZhaWxhYmxlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0dFTUlOSV9FVEhFUk5FVCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnPTEyPWlmIE5FVF9WRU5ET1JfQ09SVElOQVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnOjE0OmNvbmZpZyBHRU1JTklfRVRIRVJORVRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvS2NvbmZpZy0xNS1cdHRyaXN0YXRlIFwmIzM0O0dlbWluaSBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL01ha2VmaWxlLTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0dFTUlOSV9FVEhFUk5FVCkgJiM0Mzs9IGdlbWluaS5vXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuaC04LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuaDo5OiNpZm5kZWYgX0dFTUlOSV9FVEhFUk5FVF9IXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjEwOiNkZWZpbmUgX0dFTUlOSV9FVEhFUk5FVF9IXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oLTExLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmg9OTUzPXN0cnVjdCBub250b2VfcWhkciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuaC05NTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjk1ODojZW5kaWYgLyogX0dFTUlOSV9FVEhFUk5FVF9IICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTY0ODAKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBiYXNlZCBvbiB0aGUgZmlsZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnYDoKCioqRGl2aW5nIGludG8gdGhlIENvcnRpbmEgRXRoZXJuZXQgS2NvbmZpZyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIEtjb25maWcgZm9yIHRoZSBDb3J0aW5hIEV0aGVybmV0IGRyaXZlcnMuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWZpbmVkIGZvciBpbnRlZ3JhdGluZyB0aGVzZSBQSFlzL01BQ3MgaW50byB0aGUga2VybmVsLiBUaGUgc3RydWN0dXJlIGlzIHByZXR0eSBzdGFuZGFyZCwgYXMgZXhwZWN0ZWQuIEkmIzM5O20gcXVpY2tseSBzY2FubmluZyBmb3IgdGhlIHVzdWFsIHN1c3BlY3RzOiBtb2R1bGUgZGVwZW5kZW5jaWVzLCBkZWZhdWx0IHN0YXRlcywgYW5kIHZpc2liaWxpdHkgYmFzZWQgb24gcGxhdGZvcm0gb3Igb3RoZXIgZHJpdmVyIGZlYXR1cmVzLgoKSSYjMzk7bSBjaGVja2luZyBob3cgdGhlIENvcnRpbmEgZHJpdmVycyBhcmUgYnJva2VuIGRvd247IGxpa2VseSB0aGVyZSBhcmUgc2VwYXJhdGUgb3B0aW9ucyBmb3IgdGhlIGRpZmZlcmVudCBDb3J0aW5hIFNvQ3Mgb3IgUEhZIGZhbWlsaWVzIHRoYXQgYXJlIHN1cHBvcnRlZC4gSSYjMzk7bGwgbmVlZCB0byBwYXkgY2xvc2UgYXR0ZW50aW9uIHRvIHRoZSBgc2VsZWN0YCBzdGF0ZW1lbnRzLCB3aGljaCBpbmRpY2F0ZSBkZXBlbmRlbmNpZXMgb24gb3RoZXIgY29yZSBuZXR3b3JraW5nIGNvbXBvbmVudHMuIEFyZSB0aGV5IHVzaW5nIHRoZSBzdGFuZGFyZCBQSFkgaW50ZXJmYWNlcywgb3IgaGF2ZSB0aGV5IGJ1aWx0IHNvbWUgcHJvcHJpZXRhcnkgb25lcz8gQXJlIHRoZXJlIHBsYXRmb3JtLXNwZWNpZmljIGRlcGVuZGVuY2llcyBoZXJlPyBBbnkgdW51c3VhbCBoYXJkd2FyZSBmZWF0dXJlcyBlbmFibGVkIGhlcmU/CgpJJiMzOTttIGFsc28gbG9va2luZyBmb3IgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzLiBBcmUgdGhlcmUgYW55IGZlYXR1cmVzIHdoaWNoIGFyZSBlbmFibGVkIGJhc2VkIG9uIGhhdmluZyBvdGhlciBkcml2ZXJzIGNvbXBpbGVkIGluLCBvciBvbiB0aGUgcGxhdGZvcm0/IFdoYXQgYWJvdXQgb3B0aW9uYWwgcG93ZXIgbWFuYWdlbWVudCBzdXBwb3J0IG9yIHNwZWNpZmljIGNsb2NrIGNvbmZpZ3VyYXRpb24/IFRoYXQmIzM5O3MgYWx3YXlzIGEgZ29vZCBzaWduIG9mIHdlbGwtaW50ZWdyYXRlZCBjb2RlLgoKSSYjMzk7bGwgYmUgY2hlY2tpbmcgdGhlIGhlbHAgdGV4dCBmb3IgZWFjaCBvcHRpb24uIFRoaXMgd2lsbCBxdWlja2x5IGdpdmUgbWUgYW4gb3ZlcnZpZXcgb2YgdGhlIHB1cnBvc2Ugb2YgZWFjaCBvZiB0aGUgY29uZmlncy4gVGhpcyBpcyBhbiBpbXBvcnRhbnQgcGFydCBvZiB0aGUgcmV2aWV3IHByb2Nlc3MuIElmIHRoZSBkb2N1bWVudGF0aW9uIGlzIGNsZWFyIGFuZCBhY2N1cmF0ZSwgaXQgc2F2ZXMgYSBsb3Qgb2YgdGltZS4gSWYgbm90LCBpdCBtZWFucyBJJiMzOTtsbCBoYXZlIHRvIGRlbHZlIGRlZXBlciBpbnRvIHRoZSBjb2RlIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyByZWFsbHkgZ29pbmcgb24uIEkmIzM5O2xsIGJlIG1ha2luZyBhIG1lbnRhbCBub3RlIG9mIGFueSByZWQgZmxhZ3MgSSBzZWUsIGxpa2UgdW5jbGVhciBvcHRpb24gZGVzY3JpcHRpb25zIG9yIGNvbnZvbHV0ZWQgZGVwZW5kZW5jaWVzLiBPdmVyYWxsLCBJIGV4cGVjdCB0byBzZWUgYSB3ZWxsLXN0cnVjdHVyZWQgS2NvbmZpZyB0aGF0IHJlZmxlY3RzIGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgYW5kIGludGVncmF0aW9uIHdpdGggdGhlIExpbnV4IGtlcm5lbCYjMzk7cyBuZXR3b3JraW5nIHN0YWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuICAgMjpcdCMgQ29ydGluYSBldGhlcm5ldCBkZXZpY2VzXG4gICAzOlx0XG4gICA0Olx0Y29uZmlnIE5FVF9WRU5ET1JfQ09SVElOQVxuICAgNTpcdFx0Ym9vbCBcJiMzNDtDb3J0aW5hIEdlbWluaSBkZXZpY2VzXCYjMzQ7XG4gICA2Olx0XHRkZWZhdWx0IHlcbiAgIDc6XHRcdGhlbHBcbiAgIDg6XHRcdCAgSWYgeW91IGhhdmUgYSBuZXR3b3JrIChFdGhlcm5ldCkgY2FyZCBiZWxvbmdpbmcgdG8gdGhpcyBjbGFzcywgc2F5IFlcbiAgIDk6XHRcdCAgYW5kIHJlYWQgdGhlIEV0aGVybmV0LUhPV1RPLCBhdmFpbGFibGUgZnJvbVxuICAxMDpcdFx0ICBcdTAwM2NodHRwczovL3d3dy50bGRwLm9yZy9kb2NzLmh0bWwjaG93dG9cdTAwM2UuXG4gIDExOlx0XG4gIDEyOlx0aWYgTkVUX1ZFTkRPUl9DT1JUSU5BXG4gIDEzOlx0XG4gIDE0Olx0Y29uZmlnIEdFTUlOSV9FVEhFUk5FVFxuICAxNTpcdFx0dHJpc3RhdGUgXCYjMzQ7R2VtaW5pIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFwmIzM0O1xuICAxNjpcdFx0ZGVwZW5kcyBvbiBPRlxuICAxNzpcdFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU1cbiAgMTg6XHRcdHNlbGVjdCBQSFlMSUJcbiAgMTk6XHRcdHNlbGVjdCBDUkMzMlxuICAyMDpcdFx0aGVscFxuICAyMTpcdFx0ICBUaGlzIGRyaXZlciBzdXBwb3J0cyBTdG9yTGluayBTTDM1MXggKEdlbWluaSkgZHVhbCBHaWdhYml0IEV0aGVybmV0LlxuICAyMjpcdFxuICAyMzpcdGVuZGlmICMgTkVUX1ZFTkRPUl9DT1JUSU5BXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTcyMzEKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAxMDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBHZW1pbmkgRXRoZXJuZXQgRHJpdmVyKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBgR0VNSU5JX0VUSEVSTkVUYCwgd2hpY2ggZnJvbSB0aGUgc291bmQgb2YgaXQsIGlzIGFuIFNvQyBFdGhlcm5ldCBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQmIzM5O3MgZm9yIHRoZSAmIzM0O1N0b3JMaW5rIFNMMzUxeCAoR2VtaW5pKSBkdWFsIEdpZ2FiaXQgRXRoZXJuZXQuJiMzNDsgQW5kIGl0IGFwcGVhcnMgdG8gYmUgYSBwbGF0Zm9ybSBkcml2ZXIsIGJhc2VkIG9uIERldmljZSBUcmVlIGluc3RhbnRpYXRpb24uIE9rYXksIHNvIGZhciwgc28gZ29vZCDigJMgd2UmIzM5O3JlIGxvb2tpbmcgYXQgYGNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0YCBhbmQgYGNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRgLiBCdXQgd2FpdCBhIG1pbnV0ZS4uLiB0aGUgU3RvckxpbmsgU0wzNTF4IEdlbWluaSBpcyBhbiAqQVJNKiBTb0MsIGlzbiYjMzk7dCBpdD8gSSBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSB3aGV0aGVyICYjMzQ7R2VtaW5pJiMzNDsgaXMgZGlyZWN0bHkgdGllZCB0byBhIHNwZWNpZmljIEFSTSBhcmNoaXRlY3R1cmUgb3IgcGxhdGZvcm0uIFRoaXMgaXMgaW1wb3J0YW50IHRvIGRldGVybWluZSBpdHMgY29tcGF0aWJpbGl0eSBhbmQgd2hlcmUgaXQgZml0cyB3aXRoaW4gbXkgZXhpc3Rpbmcga25vd2xlZGdlIGJhc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1NMMzUxeHxjb3J0aW5hLGdlbWluaSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cz0xMD0vIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHMtMTEtXHRtb2RlbCA9IFwmIzM0O0QtTGluayBESVItNjg1IFh0cmVtZSBOIFN0b3JhZ2UgUm91dGVyXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0czoxMjpcdGNvbXBhdGlibGUgPSBcJiMzNDtkbGluayxkaXItNjg1XCYjMzQ7LCBcJiMzNDtjb3J0aW5hLGdlbWluaVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHMtMTMtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cz00MjQ9XHRcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0czo0MjU6XHRcdFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcdTAwM2MwXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0czo0MjY6XHRcdFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cy00MjctXHRcdFx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTEyPS8ge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0cy0xMy1cdG1vZGVsID0gXCYjMzQ7RC1MaW5rIEROUy0zMTMgMS1CYXkgTmV0d29yayBTdG9yYWdlIEVuY2xvc3VyZVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHM6MTQ6XHRjb21wYXRpYmxlID0gXCYjMzQ7ZGxpbmssZG5zLTMxM1wmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTE1LVx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHM9MTY4PVx0XHRmbGFzaEAzMDAwMDAwMCB7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0cy0xNzItXHRcdFx0ICovXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzOjE3MzpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZmxhc2hcJiMzNDssIFwmIzM0O2plZGVjLWZsYXNoXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0cy0xNzQtXHRcdFx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTI4Mj1cdFx0c2F0YTogc2F0YUA0NjAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTI4My1cdFx0XHQvKiBUaGUgUk9NIHVzZXMgdGhpcyBtdXhtb2RlICovXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzOjI4NDpcdFx0XHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFx1MDAzYzBcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzOjI4NTpcdFx0XHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTI4Ni1cdFx0XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzPTEyPS8ge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjEwYi5kdHMtMTMtXHRtb2RlbCA9IFwmIzM0O1JhaWRzb25pYyBOQVMgSUItNDIxMC1CXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjEwYi5kdHM6MTQ6XHRjb21wYXRpYmxlID0gXCYjMzQ7cmFpZHNvbmljLGliLTQyMTAtYlwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0cy0xNS1cdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0cz0xNjE9XHRcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjEwYi5kdHM6MTYyOlx0XHRcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXHUwMDNjMFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzOjE2MzpcdFx0XHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0cy0xNjQtXHRcdFx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cz0xMT0vIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIyMGIuZHRzLTEyLVx0bW9kZWwgPSBcJiMzNDtSYWlkc29uaWMgTkFTIElCLTQyMjAtQlwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIyMGIuZHRzOjEzOlx0Y29tcGF0aWJsZSA9IFwmIzM0O3JhaWRzb25pYyxpYi00MjIwLWJcJiMzNDssIFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHMtMTQtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHM9MTUxPVx0XHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIyMGIuZHRzOjE1MjpcdFx0XHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFx1MDAzYzBcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0czoxNTM6XHRcdFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHMtMTU0LVx0XHRcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzPTExPS8ge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzLTEyLVx0bW9kZWwgPSBcJiMzNDtFZGltYXggTlMtMjUwMlwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0czoxMzpcdGNvbXBhdGlibGUgPSBcJiMzNDtlZGltYXgsbnMtMjUwMlwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5zMjUwMi5kdHMtMTQtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzPTgzPVx1MDAyNnNhdGEge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzOjg0Olx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcdTAwM2MzXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzOjg1Olx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzLTg2LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHM9MTE9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHMtMTItXHRtb2RlbCA9IFwmIzM0O1RlbHRvbmlrYSBSVVQxeHhcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHM6MTM6XHRjb21wYXRpYmxlID0gXCYjMzQ7dGVsdG9uaWthLHJ1dDF4eFwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHMtMTQtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM9MTQ9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNsOTM1MTJyLmR0cy0xNS1cdG1vZGVsID0gXCYjMzQ7U3RvcmxpbmsgU2VtaWNvbmR1Y3RvciBHZW1pbmkzMjQgRVYtQm9hcmQgLyBTdG9ybSBTZW1pY29uZHVjdG9yIFNMOTM1MTJSX0JSRFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzOjE2Olx0Y29tcGF0aWJsZSA9IFwmIzM0O3N0b3JsaW5rLGdlbWluaTMyNFwmIzM0OywgXCYjMzQ7c3Rvcm0sc2w5MzUxMnJcJiMzNDssIFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHMtMTctXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM9MjQxPVx0XHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzOjI0MjpcdFx0XHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFx1MDAzYzBcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNsOTM1MTJyLmR0czoyNDM6XHRcdFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHMtMjQ0LVx0XHRcdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zcTIwMS5kdHM9MTE9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cy0xMi1cdG1vZGVsID0gXCYjMzQ7SVRpYW4gU3F1YXJlIE9uZSBTUTIwMVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzOjEzOlx0Y29tcGF0aWJsZSA9IFwmIzM0O2l0aWFuLHNxMjAxXCYjMzQ7LCBcJiMzNDtjb3J0aW5hLGdlbWluaVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzLTE0LVx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzPTIzNz1cdFx0c2F0YTogc2F0YUA0NjAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0czoyMzg6XHRcdFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcdTAwM2MwXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zcTIwMS5kdHM6MjM5Olx0XHRcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzLTI0MC1cdFx0XHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHM9MTE9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzLTEyLVx0bW9kZWwgPSBcJiMzNDtTU0kgMTMyOFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHM6MTM6XHRjb21wYXRpYmxlID0gXCYjMzQ7c3NpLDEzMjhcJiMzNDssIFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zc2kxMzI4LmR0cy0xNC1cdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzPTkzPVx1MDAyNnNhdGEge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zc2kxMzI4LmR0czo5NDpcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXHUwMDNjMFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHM6OTU6XHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzLTk2LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cz0xMz0vIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktdmVyYmF0aW0tczA4djE5MDEtZDEuZHRzLTE0LVx0bW9kZWwgPSBcJiMzNDtWZXJiYXRpbSBHaWdhYml0IEV0aGVybmV0IEhhcmQgRHJpdmUgUzA4VjE5MDEtRDFcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0czoxNTpcdGNvbXBhdGlibGUgPSBcJiMzNDt2ZXJiYXRpbSxzMDh2MTkwMS1kMVwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cy0xNi1cdCNhZGRyZXNzLWNlbGxzID0gXHUwMDNjMVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cz0xNzU9XHRcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS12ZXJiYXRpbS1zMDh2MTkwMS1kMS5kdHM6MTc2Olx0XHRcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXHUwMDNjMFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktdmVyYmF0aW0tczA4djE5MDEtZDEuZHRzOjE3NzpcdFx0XHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cy0xNzgtXHRcdFx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXdiZDExMS5kdHM9MTE9LyB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXdiZDExMS5kdHMtMTItXHRtb2RlbCA9IFwmIzM0O1dpbGlib2FyZCBXQkQtMTExXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzOjEzOlx0Y29tcGF0aWJsZSA9IFwmIzM0O3dpbGlnZWFyLHdpbGlib2FyZC13YmQxMTFcJiMzNDssIFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzLTE0LVx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktd2JkMjIyLmR0cz0xMT0vIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktd2JkMjIyLmR0cy0xMi1cdG1vZGVsID0gXCYjMzQ7V2lsaWJvYXJkIFdCRC0yMjJcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXdiZDIyMi5kdHM6MTM6XHRjb21wYXRpYmxlID0gXCYjMzQ7d2lsaWdlYXIsd2lsaWJvYXJkLXdiZDIyMlwmIzM0OywgXCYjMzQ7Y29ydGluYSxnZW1pbmlcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXdiZDIyMi5kdHMtMTQtXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTYtI2luY2x1ZGUgXHUwMDNjZHQtYmluZGluZ3MvaW50ZXJydXB0LWNvbnRyb2xsZXIvaXJxLmhcdTAwM2VcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo3OiNpbmNsdWRlIFx1MDAzY2R0LWJpbmRpbmdzL2Nsb2NrL2NvcnRpbmEsZ2VtaW5pLWNsb2NrLmhcdTAwM2VcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo4OiNpbmNsdWRlIFx1MDAzY2R0LWJpbmRpbmdzL3Jlc2V0L2NvcnRpbmEsZ2VtaW5pLXJlc2V0LmhcdTAwM2VcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS05LSNpbmNsdWRlIFx1MDAzY2R0LWJpbmRpbmdzL2dwaW8vZ3Bpby5oXHUwMDNlXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTE5PVx0XHRmbGFzaDogZmxhc2hAMzAwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjIwOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS1mbGFzaFwmIzM0OywgXCYjMzQ7Y2ZpLWZsYXNoXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTIxLVx0XHRcdHN5c2NvbiA9IFx1MDAzY1x1MDAyNnN5c2Nvblx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9Mjg9XHRcdHN5c2Nvbjogc3lzY29uQDQwMDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyOTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktc3lzY29uXCYjMzQ7LFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTMwLVx0XHRcdFx0ICAgICBcJiMzNDtzeXNjb25cJiMzNDssIFwmIzM0O3NpbXBsZS1tZmRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQ0PVx0XHRcdHBpbmN0cmwge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjQ1Olx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLXBpbmN0cmxcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDYtXHRcdFx0XHRyZWdtYXAgPSBcdTAwM2NcdTAwMjZzeXNjb25cdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTE2Mz1cdFx0d2F0Y2hkb2dANDEwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjE2NDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktd2F0Y2hkb2dcJiMzNDssIFwmIzM0O2ZhcmFkYXksZnR3ZHQwMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMTY1LVx0XHRcdHJlZyA9IFx1MDAzYzB4NDEwMDAwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0xOTc9XHRcdHJ0Y0A0NTAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MTk4Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS1ydGNcJiMzNDssIFwmIzM0O2ZhcmFkYXksZnRydGMwMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMTk5LVx0XHRcdHJlZyA9IFx1MDAzYzB4NDUwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTIwOD1cdFx0c2F0YTogc2F0YUA0NjAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MjA5Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS1zYXRhLWJyaWRnZVwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0yMTAtXHRcdFx0cmVnID0gXHUwMDNjMHg0NjAwMDAwMCAweDEwMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MjQ4PVx0XHRwb3dlci1jb250cm9sbGVyQDRiMDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyNDk6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLXBvd2VyLWNvbnRyb2xsZXJcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjUwLVx0XHRcdHJlZyA9IFx1MDAzYzB4NGIwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTI1Nj1cdFx0Z3BpbzA6IGdwaW9ANGQwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjI1NzpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZ3Bpb1wmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdGdwaW8wMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjU4LVx0XHRcdHJlZyA9IFx1MDAzYzB4NGQwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTI2OD1cdFx0Z3BpbzE6IGdwaW9ANGUwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjI2OTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZ3Bpb1wmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdGdwaW8wMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjcwLVx0XHRcdHJlZyA9IFx1MDAzYzB4NGUwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTI4MD1cdFx0Z3BpbzI6IGdwaW9ANGYwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjI4MTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZ3Bpb1wmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdGdwaW8wMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjgyLVx0XHRcdHJlZyA9IFx1MDAzYzB4NGYwMDAwMDAgMHgxMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTI5Mj1cdFx0cGNpQDUwMDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyOTM6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLXBjaVwmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdHBjaTEwMFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0yOTQtXHRcdFx0Lypcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MzU5PVx0XHRldGhlcm5ldDogZXRoZXJuZXRANjAwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjM2MDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzYxLVx0XHRcdHJlZyA9IFx1MDAzYzB4NjAwMDAwMDAgMHg0MDAwXHUwMDNlLCAvKiBHbG9iYWwgcmVnaXN0ZXJzLCBxdWV1ZSAqL1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zNzE9XHRcdFx0Z21hYzA6IGV0aGVybmV0LXBvcnRAMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzcyOlx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzczLVx0XHRcdFx0cmVnID0gXHUwMDNjMHg2MDAwODAwMCAweDIwMDBcdTAwM2UsIC8qIFBvcnQgMCBETUEvVE9FICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM4Mj1cdFx0XHRnbWFjMTogZXRoZXJuZXQtcG9ydEAxIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTozODM6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zODQtXHRcdFx0XHRyZWcgPSBcdTAwM2MweDYwMDBjMDAwIDB4MjAwMFx1MDAzZSwgLyogUG9ydCAxIERNQS9UT0UgKi9cbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9NDAyPVx0XHRpZGUwOiBpZGVANjMwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjQwMzpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktcGF0YVwmIzM0OywgXCYjMzQ7ZmFyYWRheSxmdGlkZTAxMFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS00MDQtXHRcdFx0cmVnID0gXHUwMDNjMHg2MzAwMDAwMCAweDEwMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQxNT1cdFx0aWRlMTogaWRlQDYzNDAwMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo0MTY6XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLXBhdGFcJiMzNDssIFwmIzM0O2ZhcmFkYXksZnRpZGUwMTBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDE3LVx0XHRcdHJlZyA9IFx1MDAzYzB4NjM0MDAwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT00NDU9XHRcdGRpc3BsYXktY29udHJvbGxlckA2YTAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6NDQ2Olx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS10dmNcJiMzNDssIFwmIzM0O2ZhcmFkYXksdHZlMjAwXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTQ0Ny1cdFx0XHRyZWcgPSBcdTAwM2MweDZhMDAwMDAwIDB4MTAwMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9NDU4PVx0XHR1c2IwOiB1c2JANjgwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjQ1OTpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktdXNiXCYjMzQ7LCBcJiMzNDtmYXJhZGF5LGZvdGcyMDBcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDYwLVx0XHRcdHJlZyA9IFx1MDAzYzB4NjgwMDAwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT00ODE9XHRcdHVzYjE6IHVzYkA2OTAwMDAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6NDgyOlx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS11c2JcJiMzNDssIFwmIzM0O2ZhcmFkYXksZm90ZzIwMFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS00ODMtXHRcdFx0cmVnID0gXHUwMDNjMHg2OTAwMDAwMCAweDEwMDBcdTAwM2U7XG4tLVxuYXJjaC9hcm0vbWFjaC1nZW1pbmkvYm9hcmQtZHQuYz01NT1zdGF0aWMgY29uc3QgY2hhciAqZ2VtaW5pX2JvYXJkX2NvbXBhdFtdID0ge1xuYXJjaC9hcm0vbWFjaC1nZW1pbmkvYm9hcmQtZHQuYzo1NjpcdFwmIzM0O2NvcnRpbmEsZ2VtaW5pXCYjMzQ7LFxuYXJjaC9hcm0vbWFjaC1nZW1pbmkvYm9hcmQtZHQuYy01Ny1cdE5VTEwsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzOTI4CgkJCQkJCQlvdXRwdXQ6IDE5CgkJCQkJCQl0aG91Z2h0czogMTA5OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipVbnJlYWNoYWJsZSBDb2RlIEFuYWx5c2lzOiBDb3J0aW5hIEdlbWluaSBFdGhlcm5ldCBvbiBhbWQ2NCoqCgpPa2F5LCBzbyBJJiMzOTt2ZSBnb3QgYSBDb3J0aW5hIEdlbWluaSBFdGhlcm5ldCBkcml2ZXIgY2hhbmdlIHRvIGFuYWx5emUuIFRoZSBjb2RlIGxvb2tzIGxpa2UgaXQmIzM5O3Mgc3BlY2lmaWNhbGx5IGZvciB0aGUgYGFyY2gvYXJtL21hY2gtZ2VtaW5pYCBhbmQgYGFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9gIEFSTSBwbGF0Zm9ybS4gTXkgaW1tZWRpYXRlIGNvbmNlcm4sIGdpdmVuIHRoZSAmIzM0O1RhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0JiMzNDsgaW5zdHJ1Y3Rpb24sIGlzIHdoZXRoZXIgdGhpcyBjb2RlIGlzIGV2ZW4gKnJlYWNoYWJsZSogaW4gYSBzdGFuZGFyZCBmdXp6aW5nIGVudmlyb25tZW50LgoKSSBjaGVjayB0aGUgS2NvbmZpZyBhbmQgc2VlIHRoYXQgYEdFTUlOSV9FVEhFUk5FVGAgZGVwZW5kcyBvbiBgT0ZgIChEZXZpY2UgVHJlZSkgYW5kIGBIQVNfSU9NRU1gLiBhbWQ2NCAqY2FuKiBoYXZlIGBPRmAgZW5hYmxlZCwgYnV0IGl0JiMzOTtzIG5vdCB0eXBpY2FsIHVubGVzcyBzcGVjaWZpY2FsbHkgY29uZmlndXJlZCBmb3IgaXQsIGxpa2UgdGhyb3VnaCBgT0ZfVU5JVFRFU1RgLiBSZWdhcmRsZXNzLCBldmVuIGlmIEkgY291bGQgY29tcGlsZSB0aGlzIG9uIGFtZDY0LCB0aGUgcmVhbCBpc3N1ZSBpcyB0aGUgaGFyZHdhcmUuCgpUaGUgaW5zdHJ1Y3Rpb25zIGFyZSBjbGVhcjogKnJlYWNoYWJpbGl0eSogaXMgdGhlIHByaW1hcnkgZ2F0ZS4gSSByZXZpc2l0IFNlY3Rpb25zIDEgYW5kIDIgb2YgdGhlIGd1aWRlbGluZXMuIFRoZXkgc3RhdGUgdGhhdCBmdXp6aW5nIGlzIG9ubHkgdmFsdWFibGUgZm9yIGNvZGUgdGhhdCBjYW4gKmV4ZWN1dGUqIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoR0NFIG9yIFFFTVUpLCBlbXVsYXRpbmcgc29mdHdhcmUgZGV2aWNlcyBsaWtlIG5ldGRldiBvciB0dW4vdGFwLgoKUmVhZGluZyB0aHJvdWdoIHRoZSBpbnN0cnVjdGlvbnMsIHRoaXMgaXMgYSBjbGVhciBjYXNlIG9mICYjMzQ7c3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlJiMzNDsuICBUaGUgQ29ydGluYSBHZW1pbmkgaXMgYW4gb24tY2hpcCBFdGhlcm5ldCBjb250cm9sbGVyIGZvciB0aGUgQ29ydGluYSBTTDM1MXggQVJNIFNvQywgdXNpbmcgRGV2aWNlIFRyZWUgKGBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldGApLiBUaGlzIG1lYW5zIGl0IHJlbGllcyBvbiAqc3BlY2lmaWMqIHBoeXNpY2FsIGhhcmR3YXJlLCBvciAqdmVyeSogc3BlY2lmaWMgZW11bGF0aW9uIG9mIHRoZSBBUk0gU29DLiBTdGFuZGFyZCBRRU1VIG9yIEdDRSB2aXJ0dWFsIG1hY2hpbmVzIGZvciBhbWQ2NCAqZG8gbm90KiBlbXVsYXRlIHRoZSBHZW1pbmkgR2lnYWJpdCBFdGhlcm5ldCBoYXJkd2FyZS4gRXZlbiBpZiBJIGNvdWxkIHNvbWVob3cgZW5hYmxlIGBHRU1JTklfRVRIRVJORVRgIG9uIGFtZDY0LCB0aGUgZHJpdmVyIHdvdWxkIG5ldmVyIGJlIGFibGUgdG8gcmVhY2ggYW55IG9mIHRoZSBoYXJkd2FyZSByZWdpc3RlcnMuCgpBbmQganVzdCB0byByZWl0ZXJhdGU6IFRoZSBpbnN0cnVjdGlvbnMgYXJlIHF1aXRlIGV4cGxpY2l0LiBUaGUgcHJvdmlkZWQgY2hhbmdlcyBtb2RpZnkgYGdtYWNfZ2V0X3F1ZXVlX3BhZ2VgLCBgZ21hY19yeGAsIGBnbWFjX25hcGlfcG9sbGAsIGFuZCBgZ21hY19pcnFgIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY2AuIFRoYXQmIzM5O3MgdGhlIGRyaXZlciBmb3IgdGhpcyB2ZXJ5IHNwZWNpZmljIEFSTS1iYXNlZCBjb250cm9sbGVyLiBUaGVzZSBjaGFuZ2VzIGFyZSBzcXVhcmVseSBpbiAmIzM0O1N0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBoYXJkd2FyZSYjMzQ7IGFuZCAmIzM0O0NvZGUgcGF0aHMgZXhjbHVzaXZlIHRvIGFyY2hpdGVjdHVyZXMgb3RoZXIgdGhhbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSYjMzQ7IGNhdGVnb3JpZXMuICBUaGVyZSYjMzk7cyBubyBwb2ludCBpbiBmdXp6aW5nIHRoaXMgb24gYW1kNjQuICBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgaWYgdGhlcmUmIzM5O3MgKmFueSogdmlydHVhbCBidXMgb3IgdGVzdCBkcml2ZXIgZm9yIGNvcnRpbmEgZ2VtaW5pIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBidXQgSSYjMzk7bSBjb25maWRlbnQgaW4gbXkgYXNzZXNzbWVudC4gSSYjMzk7bGwgZ3JlcCBmb3IgJiMzNDtnZW1pbmktZXRoZXJuZXQmIzM0OyBqdXN0IHRvIG1ha2Ugc3VyZS4gSSYjMzk7bSByZXR1cm5pbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE0IDIzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2dlbWluaS1ldGhlcm5ldCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwjXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw9MTc9cHJvcGVydGllczpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xOC0gIGNvbXBhdGlibGU6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw6MTk6ICAgIGNvbnN0OiBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTIwLVxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbD0zNz1wYXR0ZXJuUHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNDUtICAgICAgY29tcGF0aWJsZTpcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbDo0NjogICAgICAgIGNvbnN0OiBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldC1wb3J0XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNDctXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sPTg1PWV4YW1wbGVzOlxuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xMDMtICAgIGV0aGVybmV0QDYwMDAwMDAwIHtcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbDoxMDQ6ICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXRcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTA1LSAgICAgICAgcmVnID0gXHUwMDNjMHg2MDAwMDAwMCAweDQwMDBcdTAwM2UsIC8qIEdsb2JhbCByZWdpc3RlcnMsIHF1ZXVlICovXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTExMi0gICAgICAgIGdtYWMwOiBldGhlcm5ldC1wb3J0QDAge1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sOjExMzogICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTE0LSAgICAgICAgICAgICAgICByZWcgPSBcdTAwM2MweDYwMDA4MDAwIDB4MjAwMFx1MDAzZSwgLyogUG9ydCAwIERNQS9UT0UgKi9cbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTI1LSAgICAgICAgZ21hYzE6IGV0aGVybmV0LXBvcnRAMSB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw6MTI2OiAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OztcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xMjctICAgICAgICAgICAgICAgIHJlZyA9IFx1MDAzYzB4NjAwMGMwMDAgMHgyMDAwXHUwMDNlLCAvKiBQb3J0IDEgRE1BL1RPRSAqL1xuLS1cbk1BSU5UQUlORVJTPTI4ODI9RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9hcm0vZ2VtaW5pLnlhbWxcbk1BSU5UQUlORVJTOjI4ODM6RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbFxuTUFJTlRBSU5FUlMtMjg4NC1GOlx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3BpbmN0cmwvY29ydGluYSxnZW1pbmktcGluY3RybC50eHRcbi0tXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MzU5PVx0XHRldGhlcm5ldDogZXRoZXJuZXRANjAwMDAwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjM2MDpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzYxLVx0XHRcdHJlZyA9IFx1MDAzYzB4NjAwMDAwMDAgMHg0MDAwXHUwMDNlLCAvKiBHbG9iYWwgcmVnaXN0ZXJzLCBxdWV1ZSAqL1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zNzE9XHRcdFx0Z21hYzA6IGV0aGVybmV0LXBvcnRAMCB7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzcyOlx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzczLVx0XHRcdFx0cmVnID0gXHUwMDNjMHg2MDAwODAwMCAweDIwMDBcdTAwM2UsIC8qIFBvcnQgMCBETUEvVE9FICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM4Mj1cdFx0XHRnbWFjMTogZXRoZXJuZXQtcG9ydEAxIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTozODM6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7Y29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zODQtXHRcdFx0XHRyZWcgPSBcdTAwM2MweDYwMDBjMDAwIDB4MjAwMFx1MDAzZSwgLyogUG9ydCAxIERNQS9UT0UgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI2MjY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZ2VtaW5pX2V0aGVybmV0X3BvcnRfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyNy1cdHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYyODpcdFx0LmNvbXBhdGlibGUgPSBcJiMzNDtjb3J0aW5hLGdlbWluaS1ldGhlcm5ldC1wb3J0XCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI5LVx0fSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI2MzQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjM1LVx0LmRyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYzNjpcdFx0Lm5hbWUgPSBcJiMzNDtnZW1pbmktZXRoZXJuZXQtcG9ydFwmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYzNy1cdFx0Lm9mX21hdGNoX3RhYmxlID0gZ2VtaW5pX2V0aGVybmV0X3BvcnRfb2ZfbWF0Y2gsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNjkwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjkxLVx0e1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjkyOlx0XHQuY29tcGF0aWJsZSA9IFwmIzM0O2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0XCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjkzLVx0fSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjczMzAKCQkJCQkJCW91dHB1dDogMTE5CgkJCQkJCQl0aG91Z2h0czogMjQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIENvcnRpbmEgR2VtaW5pIEV0aGVybmV0IERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTt2ZSBleGFtaW5lZCB0aGlzIHBhdGNoLCBhbmQgaGVyZSYjMzk7cyBteSB0YWtlLiBJdCYjMzk7cyBmb2N1c2VkIGVudGlyZWx5IG9uIHRoZSBDb3J0aW5hIFN5c3RlbXMgR2VtaW5pIChTTDM1MXgpIEFSTSBTb0MgZXRoZXJuZXQgY29udHJvbGxlci4gTm90aGluZyBlbHNlIGluIHRoZSBlbnZpcm9ubWVudCBzZWVtcyB0byBiZSByZWxhdGVkIHRvIGl0LCB3aGljaCBpcyBhbiBpbXBvcnRhbnQgZmlyc3QgY2hlY2suIENydWNpYWxseSwgSSBrbm93IHRoYXQgdGhpcyBkcml2ZXIgaXMgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyLCB3aGljaCBtZWFucyBpdCByZWxpZXMgb24gc3BlY2lmaWMsIHBoeXNpY2FsIGhhcmR3YXJlLCBzcGVjaWZpY2FsbHkgYW4gQVJNIFNvQy4gSXQmIzM5O3Mgbm90IHNvbWV0aGluZyBJIGNhbiBqdXN0IHNwaW4gdXAgYW5kIHRlc3QgaW4gYSBzdGFuZGFyZCwgdmlydHVhbGl6ZWQgYW1kNjQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLiBUaGF0JiMzOTtzIGEgZGVhbGJyZWFrZXIuCgpMb29raW5nIGF0IHRoZSBuZWdhdGl2ZSBjcml0ZXJpYSwgaXQgcGVyZmVjdGx5IGZpdHM6IHVucmVhY2hhYmxlIGhhcmR3YXJlLCBiZWNhdXNlIGl0JiMzOTtzIHRpZWQgdG8gYW4gQVNJQyBvciBTb0MgdGhhdCYjMzk7cyBub3QgZW11bGF0ZWQgaGVyZS4gQW5kIHRoZSBjb2RlIHBhdGhzIGFyZSBleGNsdXNpdmUgdG8gQVJNLCB3aGlsZSBteSB0ZXN0aW5nIGVudmlyb25tZW50IGlzIGFtZDY0LgoKVGhlcmVmb3JlLCBgV29ydGhGdXp6aW5nYCBoYXMgdG8gYmUgYGZhbHNlYC4gTm8gcG9pbnQgc3BlbmRpbmcgdGhlIGN5Y2xlcyBvbiBzb21ldGhpbmcgSSBjYW4mIzM5O3QgZXZlbiBnZXQgdG8gcnVuLgoKTm93LCBJIG5lZWQgdG8gcmVjb3JkIG15IHJlYXNvbmluZyBhbmQgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB0ZXN0IHJlc3VsdHMuIExldCBtZSBzZXQgdGhlc2UgcGFyYW1ldGVyczoKCiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYAoqICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAgKGVtcHR5IGxpc3QsIGJlY2F1c2UgdGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgdGhhdCBuZWVkIHRvIGJlIGZvY3VzZWQgb24pCiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKGFsc28gZW1wdHksIGFzIHRoZXJlIGFyZSBubyBrZXJuZWwgY29uZmlndXJhdGlvbnMgdGhhdCB3b3VsZCBtYWtlIGl0IG1vcmUgdGVzdGFibGUpCiogICBgUmVhc29uaW5nYDogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNgLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRldmljZSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gSXQgcmVxdWlyZXMgc3BlY2lmaWMgcGh5c2ljYWwgQVJNIFNvQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBpcyB1bnJlYWNoYWJsZSBvbiB0aGUgdGFyZ2V0IGFyY2hpdGVjdHVyZSAoYW1kNjQpLiYjMzQ7CgpPa2F5LCBJJiMzOTttIHJlYWR5IHRvIGNhbGwgYHNldC1yZXN1bHRzYCBhbmQgbG9nIHRoZXNlIGZpbmRpbmdzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNCAyMzo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMsIHdoaWNoIGlzIGEgcGxhdGZvcm0gZHJpdmVyIGZvciB0aGUgQ29ydGluYSBHZW1pbmkgKFNMMzUxeCkgQVJNIFNvQyBHaWdhYml0IEV0aGVybmV0IGNvbnRyb2xsZXIuIFRoaXMgaGFyZHdhcmUgaXMgc3BlY2lmaWMgdG8gQ29ydGluYSBHZW1pbmkgQVJNIHBsYXRmb3JtcyBhbmQgaXMgbmVpdGhlciBwcmVzZW50IG5vciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSBvbiBhbWQ2NC4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgdGhlIENvcnRpbmEgR2VtaW5pIChTTDM1MXgpIEFSTSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBjb250cm9sbGVyLiBUaGlzIGhhcmR3YXJlIGlzIHNwZWNpZmljIHRvIENvcnRpbmEgR2VtaW5pIEFSTSBwbGF0Zm9ybXMgYW5kIGlzIG5laXRoZXIgcHJlc2VudCBub3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgb24gYW1kNjQuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTQgMjM6NTk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjM1LjkzNTE1NDkyOVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM3NDUwNjY0NDY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYywgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gVGhpcyBoYXJkd2FyZSBpcyBzcGVjaWZpYyB0byBDb3J0aW5hIEdlbWluaSBBUk0gcGxhdGZvcm1zIGFuZCBpcyBuZWl0aGVyIHByZXNlbnQgbm9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIG9uIGFtZDY0LiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjM1LjkzNTE2MDMzOVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTEwNDIzMTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNDAxZmEwYmM4ZjM5OWQyMDEwNzg4N2E2MWMxMDUyMDc3YjUyYmIxZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIFNlcCAxNCAyMzo1ODozNSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY1xcbmluZGV4IGYwOGRlNjIzZTZmN2MuLjJmZTdmZDAyMDJkMjYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNcXG5AQCAtMTYsNiArMTYsNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9pbml0LmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9tb2R1bGUuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L25ldC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zcGlubG9jay5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvc2xhYi5oXFx1MDAzZVxcbkBAIC03MzYsNyArNzM3LDggQEAgZ21hY19nZXRfcXVldWVfcGFnZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoLFxcbiBcXHRtYXBwaW5nID0gYWRkciBcXHUwMDI2IFBBR0VfTUFTSztcXG4gXFxuIFxcdGlmICghZ2V0aC1cXHUwMDNlZnJlZXFfcGFnZXMpIHtcXG4tXFx0XFx0ZGV2X2VycihnZXRoLVxcdTAwM2VkZXYsIFxcXCJ0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXFxcblxcXCIpO1xcbitcXHRcXHRkZXZfZXJyX3JhdGVsaW1pdGVkKGdldGgtXFx1MDAzZWRldixcXG4rXFx0XFx0XFx0XFx0ICAgIFxcXCJ0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXFxcblxcXCIpO1xcbiBcXHRcXHRyZXR1cm4gTlVMTDtcXG4gXFx0fVxcbiBcXG5AQCAtMTQ0MSw3ICsxNDQzLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpnbWFjX3NrYl9pZl9nb29kX2ZyYW1lKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCxcXG4gfVxcbiBcXG4gc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXFxuLVxcdFxcdFxcdCAgICB1bnNpZ25lZCBpbnQgKmZyZWVxX2NvbnN1bWVkKVxcbitcXHRcXHRcXHQgICAgdW5zaWduZWQgaW50ICpmcmVlcV9jb25zdW1lZCwgYm9vbCAqcmVzY2hlZHVsZSlcXG4ge1xcbiBcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbiBcXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXFx1MDAzY1xcdTAwM2MgcG9ydC1cXHUwMDNlcnhxX29yZGVyKSAtIDE7XFxuQEAgLTE0NDksNiArMTQ1MSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxcbiBcXHR2b2lkIF9faW9tZW0gKnB0cl9yZWcgPSBwb3J0LVxcdTAwM2VyeHFfcndwdHI7XFxuIFxcdHVuc2lnbmVkIGludCBmcmFnX25yID0gcG9ydC1cXHUwMDNlcnhfZnJhZ19ucjtcXG4gXFx0c3RydWN0IHNrX2J1ZmYgKnNrYiA9IHBvcnQtXFx1MDAzZXJ4X3NrYjtcXG4rXFx0LyogQm91bmQgbWFsZm9ybWVkIGNoYWlucyB3aGlsZSBhbGxvd2luZyBtYXhpbXVtIGZyYWdtZW50cyBwZXIgZnJhbWUuICovXFxuK1xcdHVuc2lnbmVkIGludCBkZXNjX2xpbWl0ID0gYnVkZ2V0ICogTUFYX1NLQl9GUkFHUztcXG4gXFx0dW5zaWduZWQgaW50IGNvbnN1bWVkID0gMDtcXG4gXFx0dW5zaWduZWQgaW50IGZyYW1lX2xlbiwgZnJhZ19sZW47XFxuIFxcdHN0cnVjdCBnbWFjX3J4ZGVzYyAqcnggPSBOVUxMO1xcbkBAIC0xNDc1LDcgKzE0NzksNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGdtYWNfcngoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdW5zaWduZWQgaW50IGJ1ZGdldCxcXG4gXFx0ciA9IHJ3LmJpdHMucnB0cjtcXG4gXFx0dyA9IHJ3LmJpdHMud3B0cjtcXG4gXFxuLVxcdHdoaWxlIChidWRnZXQgXFx1MDAyNlxcdTAwMjYgdyAhPSByKSB7XFxuK1xcdHdoaWxlIChidWRnZXQgXFx1MDAyNlxcdTAwMjYgY29uc3VtZWQgXFx1MDAzYyBkZXNjX2xpbWl0IFxcdTAwMjZcXHUwMDI2IHcgIT0gcikge1xcbiBcXHRcXHRwYWdlID0gTlVMTDtcXG4gXFx0XFx0cnggPSBwb3J0LVxcdTAwM2VyeHFfcmluZyArIHI7XFxuIFxcdFxcdHdvcmQwID0gcngtXFx1MDAzZXdvcmQwO1xcbkBAIC0xNTAyLDE1ICsxNTA2LDE4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxcbiBcXHRcXHR9XFxuIFxcbiBcXHRcXHRpZiAoIW1hcHBpbmcpIHtcXG4tXFx0XFx0XFx0bmV0ZGV2X2VycihuZXRkZXYsXFxuLVxcdFxcdFxcdFxcdCAgIFxcXCJyeHFbJXVdOiBIVyBCVUc6IHplcm8gRE1BIGRlc2NcXFxcblxcXCIsIHIpO1xcbitcXHRcXHRcXHRpZiAobmV0X3JhdGVsaW1pdCgpKVxcbitcXHRcXHRcXHRcXHRuZXRkZXZfZXJyKG5ldGRldixcXG4rXFx0XFx0XFx0XFx0XFx0ICAgXFxcInJ4cVsldV06IEhXIEJVRzogemVybyBETUEgZGVzY1xcXFxuXFxcIixcXG4rXFx0XFx0XFx0XFx0XFx0ICAgcik7XFxuIFxcdFxcdFxcdGdvdG8gZXJyX2Ryb3A7XFxuIFxcdFxcdH1cXG4gXFxuIFxcdFxcdC8qIEZyZWVxIHBvaW50ZXJzIGFyZSBvbmUgcGFnZSBvZmYgKi9cXG4gXFx0XFx0Z3BhZ2UgPSBnbWFjX2dldF9xdWV1ZV9wYWdlKGdldGgsIHBvcnQsIG1hcHBpbmcgKyBQQUdFX1NJWkUpO1xcbiBcXHRcXHRpZiAoIWdwYWdlKSB7XFxuLVxcdFxcdFxcdGRldl9lcnIoZ2V0aC1cXHUwMDNlZGV2LCBcXFwiY291bGQgbm90IGZpbmQgbWFwcGluZ1xcXFxuXFxcIik7XFxuK1xcdFxcdFxcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoZ2V0aC1cXHUwMDNlZGV2LFxcbitcXHRcXHRcXHRcXHRcXHQgICAgXFxcImNvdWxkIG5vdCBmaW5kIG1hcHBpbmdcXFxcblxcXCIpO1xcbiBcXHRcXHRcXHRnb3RvIGVycl9kcm9wO1xcbiBcXHRcXHR9XFxuIFxcdFxcdHBhZ2UgPSBncGFnZS1cXHUwMDNlcGFnZTtcXG5AQCAtMTUzNSw3ICsxNTQyLDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXFxuIFxcdFxcdGlmIChmcmFnX25yID09IE1BWF9TS0JfRlJBR1MpXFxuIFxcdFxcdFxcdGdvdG8gZXJyX2Ryb3A7XFxuIFxcbi1cXHRcXHRpZiAoZnJhZ19sZW4gPT0gMClcXG4rXFx0XFx0aWYgKGZyYWdfbGVuID09IDAgXFx1MDAyNlxcdTAwMjYgbmV0X3JhdGVsaW1pdCgpKVxcbiBcXHRcXHRcXHRuZXRkZXZfZXJyKG5ldGRldiwgXFxcIlJlY2VpdmVkIGZyYWdtZW50IHdpdGggbGVuID0gMFxcXFxuXFxcIik7XFxuIFxcbiBcXHRcXHRza2JfZmlsbF9wYWdlX2Rlc2Moc2tiLCBmcmFnX25yLCBwYWdlLCBwYWdlX29mZnMsIGZyYWdfbGVuKTtcXG5AQCAtMTU3OSw2ICsxNTg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXFxuIFxcdHBvcnQtXFx1MDAzZXJ4X2ZyYWdfbnIgPSBmcmFnX25yO1xcbiBcXHRwb3J0LVxcdTAwM2VyeF9kcm9wcGluZyA9IGRyb3BwaW5nO1xcbiBcXHQqZnJlZXFfY29uc3VtZWQgPSBjb25zdW1lZDtcXG4rXFx0KnJlc2NoZWR1bGUgPSBidWRnZXQgXFx1MDAyNlxcdTAwMjYgdyAhPSByO1xcbiBcXHR3cml0ZXcociwgcHRyX3JlZyk7XFxuIFxcdHJldHVybiByZWNlaXZlZDtcXG4gfVxcbkBAIC0xNTkwLDEyICsxNTk4LDEzIEBAIHN0YXRpYyBpbnQgZ21hY19uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbiBcXHR1bnNpZ25lZCBpbnQgZnJlZXFfdGhyZXNob2xkO1xcbiBcXHR1bnNpZ25lZCBpbnQgZnJlZXFfY29uc3VtZWQ7XFxuIFxcdHVuc2lnbmVkIGludCByZWNlaXZlZDtcXG4rXFx0Ym9vbCByZXNjaGVkdWxlO1xcbiBcXG4gXFx0ZnJlZXFfdGhyZXNob2xkID0gMSBcXHUwMDNjXFx1MDAzYyAoZ2V0aC1cXHUwMDNlZnJlZXFfb3JkZXIgLSAxKTtcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2cG9ydC1cXHUwMDNlcnhfc3RhdHNfc3luY3ApO1xcbiBcXG4tXFx0cmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktXFx1MDAzZWRldiwgYnVkZ2V0LCBcXHUwMDI2ZnJlZXFfY29uc3VtZWQpO1xcbi1cXHRpZiAocmVjZWl2ZWQgXFx1MDAzYyBidWRnZXQpXFxuK1xcdHJlY2VpdmVkID0gZ21hY19yeChuYXBpLVxcdTAwM2VkZXYsIGJ1ZGdldCwgXFx1MDAyNmZyZWVxX2NvbnN1bWVkLCBcXHUwMDI2cmVzY2hlZHVsZSk7XFxuK1xcdGlmICghcmVzY2hlZHVsZSBcXHUwMDI2XFx1MDAyNiByZWNlaXZlZCBcXHUwMDNjIGJ1ZGdldClcXG4gXFx0XFx0Kytwb3J0LVxcdTAwM2VyeF9uYXBpX2V4aXRzO1xcbiBcXG4gXFx0dTY0X3N0YXRzX3VwZGF0ZV9lbmQoXFx1MDAyNnBvcnQtXFx1MDAzZXJ4X3N0YXRzX3N5bmNwKTtcXG5AQCAtMTYwNiwxMCArMTYxNSwxMSBAQCBzdGF0aWMgaW50IGdtYWNfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG4gXFx0XFx0Z2V0aF9maWxsX2ZyZWVxKGdldGgsIHRydWUpO1xcbiBcXHR9XFxuIFxcbi1cXHRpZiAocmVjZWl2ZWQgXFx1MDAzYyBidWRnZXQgXFx1MDAyNlxcdTAwMjYgbmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHJlY2VpdmVkKSlcXG4rXFx0aWYgKCFyZXNjaGVkdWxlIFxcdTAwMjZcXHUwMDI2IHJlY2VpdmVkIFxcdTAwM2MgYnVkZ2V0IFxcdTAwMjZcXHUwMDI2XFxuK1xcdCAgICBuYXBpX2NvbXBsZXRlX2RvbmUobmFwaSwgcmVjZWl2ZWQpKVxcbiBcXHRcXHRnbWFjX2VuYWJsZV9yeF9pcnEobmFwaS1cXHUwMDNlZGV2LCAxKTtcXG4gXFxuLVxcdHJldHVybiByZWNlaXZlZDtcXG4rXFx0cmV0dXJuIHJlc2NoZWR1bGUgPyBidWRnZXQgOiByZWNlaXZlZDtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgZ21hY19kdW1wX2RtYV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbkBAIC0xNzk4LDcgKzE4MDgsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgZ21hY19pcnEoaW50IGlycSwgdm9pZCAqZGF0YSlcXG4gXFxuIFxcdGlmICh2YWwgXFx1MDAyNiAoR01BQzBfUlhfT1ZFUlJVTl9JTlRfQklUIFxcdTAwM2NcXHUwMDNjIChuZXRkZXYtXFx1MDAzZWRldl9pZCAqIDgpKSkge1xcbiBcXHRcXHRzcGluX2xvY2soXFx1MDAyNmdldGgtXFx1MDAzZWlycV9sb2NrKTtcXG4tXFx0XFx0d3JpdGVsKEdNQUMwX1JYREVSUl9JTlRfQklUIFxcdTAwM2NcXHUwMDNjIChuZXRkZXYtXFx1MDAzZWRldl9pZCAqIDgpLFxcbitcXHRcXHR3cml0ZWwoR01BQzBfUlhfT1ZFUlJVTl9JTlRfQklUIFxcdTAwM2NcXHUwMDNjIChuZXRkZXYtXFx1MDAzZWRldl9pZCAqIDgpLFxcbiBcXHRcXHQgICAgICAgZ2V0aC1cXHUwMDNlYmFzZSArIEdMT0JBTF9JTlRFUlJVUFRfU1RBVFVTXzRfUkVHKTtcXG4gXFx0XFx0dTY0X3N0YXRzX3VwZGF0ZV9iZWdpbihcXHUwMDI2cG9ydC1cXHUwMDNlaXJfc3RhdHNfc3luY3ApO1xcbiBcXHRcXHQrK3BvcnQtXFx1MDAzZXN0YXRzLnJ4X2ZpZm9fZXJyb3JzO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNFQyMzo1ODozNi40NDYyOTQ3MDFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjM2OTM5NTExNzA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgdGhlIENvcnRpbmEgR2VtaW5pIChTTDM1MXgpIEFSTSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBjb250cm9sbGVyLiBUaGlzIGhhcmR3YXJlIGlzIHNwZWNpZmljIHRvIENvcnRpbmEgR2VtaW5pIEFSTSBwbGF0Zm9ybXMgYW5kIGlzIG5laXRoZXIgcHJlc2VudCBub3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgb24gYW1kNjQuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBldmFsdWF0ZSB3aGV0aGVyIGl0IHdhcnJhbnRzIGZ1enppbmcgd2l0aCBzeXprYWxsZXIuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIGludGVybmFsIGFzc3VtcHRpb25zLiBZb3UgbXVzdCBhY3RpdmVseSB1c2UgeW91ciBjb2RlIGFjY2Vzc1xudG9vbHMgdG8gaW5zcGVjdCB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlLCBjYWxsZXJzLCBhbmQgc3Vycm91bmRpbmcgY29udGV4dC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjEuIENPUkUgVFJJQUdFIFBISUxPU09QSFlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5UaGUgZ29hbCBvZiBwYXRjaCBmdXp6aW5nIGlzIHRvIGRpc2NvdmVyIGNyYXNoZXMsIHJlZ3Jlc3Npb25zLCBleHBvc2VkIGxhdGVudCBidWdzLFxuYW5kIG5ld2x5IHRyaWdnZXJlZCBhc3NlcnRpb25zIGludHJvZHVjZWQgYnkgdGhlIHBhdGNoIHNlcmllcy5cblxuLSBSRUFDSEFCSUxJVFkgSVMgVEhFIFBSSU1BUlkgR0FURTpcbiAgRnV6emluZyBjYW4gb25seSBkaXNjb3ZlciBidWdzIGluIGNvZGUgdGhhdCBjYW4gYWN0dWFsbHkgZXhlY3V0ZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZFxuICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLlxuICBJZiB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgKHNlZSBTZWN0aW9uIDIpLCBpdCBNVVNUIE5PVCBiZSBmdXp6ZWQsXG4gIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBhZGRzIGFzc2VydGlvbnMgb3IgY29tcGxleCBsb2dpYy5cblxuLSBETyBOT1QgQkxJTkRMWSBUUlVTVCBcIk5PIEZVTkNUSU9OQUwgQ0hBTkdFXCIgKE5GQ0kpIE9SIFwiUkVGQUNUT1JJTkdcIiBDTEFJTVM6XG4gIFBhdGNoIGF1dGhvcnMgcm91dGluZWx5IGxhYmVsIGNoYW5nZXMgYXMgXCJjbGVhbnVwc1wiLCBcInJlZmFjdG9yaW5nc1wiLCBvciBzdGF0ZVxuICBcIk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkXCIuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLlxuICBDb2RlIHJlZmFjdG9yaW5ncyB0aGF0IHJlYXJyYW5nZSBsb2dpYywgaW50cm9kdWNlIGhlbHBlciBmdW5jdGlvbnMsIG9yIGFsdGVyIHN0YXRlIG1hbmFnZW1lbnRcbiAgaW4gY29yZSBzdWJzeXN0ZW1zIGZyZXF1ZW50bHkgaW50cm9kdWNlIHN1YnRsZSBzZW1hbnRpYyBzaGlmdHMgb3IgdW5jb3ZlciBsYXRlbnQga2VybmVsIGJ1Z3MuXG4gIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuXG5cbi0gTkVXIE9SIE1PRElGSUVEIEFTU0VSVElPTlMgSU4gUkVBQ0hBQkxFIENPREUgTVVTVCBCRSBGVVpaRUQ6XG4gIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKixcbiAgQlVHX09OKiwgbG9ja2RlcF9hc3NlcnQqKSBpbiByZWFjaGFibGUgY29kZSBwYXRocywgaXQgZW5mb3JjZXMgbmV3IG9yIHN0cmljdGVyIGludmFyaWFudHMuXG4gIEV2ZW4gaWYgdGhlIGF1dGhvciBiZWxpZXZlcyB0aGUgaW52YXJpYW50IGFsd2F5cyBob2xkcywgZnV6emluZyBpcyBlc3NlbnRpYWwgdG8gdmVyaWZ5IHdoZXRoZXJcbiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSlcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIE9OTFkgSUYgYWxsIG1vZGlmaWVkIGNvZGUgZmFsbHMgc3RyaWN0bHkgaW50byBvbmUgb3IgbW9yZSBvZiB0aGVzZSBjYXRlZ29yaWVzOlxuXG4tIE5vbi1rZXJuZWwgYW5kIG5vbi1leGVjdXRhYmxlIGNoYW5nZXM6XG4gICogTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgY29tbWVudHMsIG9yIHNwZWxsaW5nIGZpeGVzLlxuICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKVxuICAgIHRoYXQgZG8gbm90IGFmZmVjdCB0aGUgY29tcGlsZWQga2VybmVsIGltYWdlICh2bWxpbnV4KSBvciBrZXJuZWwgbW9kdWxlcy5cbiAgKiBQdXJlbHkgZGVjb3JhdGl2ZSBsb2dnaW5nIChlLmcuLCBtZXNzYWdlIHN0cmluZ3MgaW4gcHJfZXJyLCBwcmludGssIGRldl9pbmZvKSBvciB0cmFjZXBvaW50c1xuICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuXG4gICogQnVpbGQgc3lzdGVtIG9yIEtjb25maWcgY2hhbmdlcyB0aGF0IGRvIG5vdCBhbHRlciBjb21waWxlZCBDIGxvZ2ljLlxuLSBTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6XG4gICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICAgIGlvbmljLCBhbWRncHUpIHJlcXVpcmluZyBwaHlzaWNhbCBBU0lDL1BDSWUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIFVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRoczpcbiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmdcbiAgICBwaHlzaWNhbCBQQ0kgaG90LXVucGx1ZyBvciBtYW51YWwgc3lzZnMgZHJpdmVyIHVuYmluZGluZy5cbiAgKiBDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4zLiBXSEVOIFRPIFJFVFVSTiBXb3J0aEZ1enppbmc9dHJ1ZSAoUE9TSVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz10cnVlIHdoZW5ldmVyIHRoZSBwYXRjaCB0b3VjaGVzIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUsIGluY2x1ZGluZzpcbi0gQ29yZSBTdWJzeXN0ZW1zOlxuICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSxcbiAgICBCUEYsIHNjaGVkdWxlciwgY29yZSBuZXR3b3JraW5nLCBWRlMsIG9yIHN5c2NhbGwgaGFuZGxpbmcuXG4tIFJlZmFjdG9yaW5ncyBhbmQgQ29kZSBDbGVhbnVwczpcbiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuXG4tIFJ1bnRpbWUgQXNzZXJ0aW9ucyBhbmQgRGVmZW5zaXZlIENoZWNrczpcbiAgKiBBbnkgaW50cm9kdWN0aW9uIG9yIGFsdGVyYXRpb24gb2YgYXNzZXJ0aW9ucyAoV0FSTl9PTiosIFZNX1dBUk5fT04qLCBCVUdfT04qLCBldGMuKSBpbiByZWFjaGFibGUgcGF0aHMuXG4tIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6XG4gICogRHJpdmVycyBhY2Nlc3NpYmxlIHZpYSB2aXJ0dWFsIGJ1c2VzICh2aXJ0aW8sIFVTQiBnYWRnZXQsIGxvb3BiYWNrLCBuZXRsaW5rLCBiaW5kZXIsIHNvY2tldHMsIGV0Yy4pLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNC4gRVhUUkFDVElORyBGb2N1c1N5bWJvbHMgKFBSRVZFTlRJTkcgRElMVVRJT04pXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6XG5cbi0gQVZPSUQgVUJJUVVJVE9VUyBMSUZFQ1lDTEUgSE9ULVBBVEhTOlxuICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1c1xuICAoaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG86IGdlbmVyYWwgbWVtb3J5IGFsbG9jYXRvcnMgYW5kIGRlYWxsb2NhdG9ycywgcGFnZSBmYXVsdFxuICBhbmQgdHJhcCBoYW5kbGVycywgb3IgY29yZSBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlczsgdGhpcyBpcyBub3QgYW4gZXhoYXVzdGl2ZSBsaXN0KS5cbiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzIFwiZm9jdXNlZFwiLFxuICB3aGljaCBzZXZlcmVseSBkaWx1dGVzIGZ1enppbmcgZWZmb3J0IGF3YXkgZnJvbSB0aGUgYWN0dWFsIGNoYW5nZXMuXG5cbi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOlxuICBMaXN0IGZ1bmN0aW9ucyB0aGF0IHNwZWNpZmljYWxseSBpbXBsZW1lbnQgdGhlIGxvZ2ljIGJlaW5nIGFkZGVkIG9yIGFsdGVyZWQsIG9yIGRpcmVjdCBBUEkgZW50cnlwb2ludHNcbiAgZm9yIHRoZSBzdWJzeXN0ZW0gZmVhdHVyZSB1bmRlciByZXZpZXcuXG5cbi0gSEFORExJTkcgU1RBVElDIElOTElORSBGVU5DVElPTlMgSU4gSEVBREVSUyAoLmgpOlxuICBDb21waWxlci1pbmxpbmVkIHN0YXRpYyBmdW5jdGlvbnMgKHN1Y2ggYXMgc3RhdGljIGlubGluZXMgaW4gbW0vKi5oIG9yIGluY2x1ZGUvbGludXgvKi5oKSBsYWNrXG4gIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLlxuICBJZiB0aGUgY2hhbmdlcyBhcmUgcHJpbWFyaWx5IGluIHN0YXRpYyBpbmxpbmUgaGVscGVycywgaWRlbnRpZnkgbm9uLXN0YXRpYywgZmVhdHVyZS1zcGVjaWZpYyBjYWxsZXJcbiAgZnVuY3Rpb25zIGluIC5jIGZpbGVzIHRoYXQgZXhlcmNpc2UgdGhlbSAoYXZvaWRpbmcgdWJpcXVpdG91cyBsaWZlY3ljbGUgd3JhcHBlcnMpLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuNS4gSURFTlRJRllJTkcgRW5hYmxlQ29uZmlnc1xuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbklkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgY29tcGlsZSBhbmQgcmVhY2ggdGhlIG1vZGlmaWVkIGNvZGU6XG4tIEluc3BlY3QgS2NvbmZpZyBmaWxlcyBhbmQgI2lmZGVmIGd1YXJkczsgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4tIENoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuXG4tIFN0cmlwIGFueSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFxuXG5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0MDFmYTBiYzhmMzk5ZDIwMTA3ODg3YTYxYzEwNTIwNzdiNTJiYjFkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBTZXAgMTQgMjM6NTg6MzUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuY1xuaW5kZXggZjA4ZGU2MjNlNmY3Yy4uMmZlN2ZkMDIwMmQyNiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNcbkBAIC0xNiw2ICsxNiw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgva2VybmVsLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9pbml0LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGUuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L25ldC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zcGlubG9jay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2xhYi5oXHUwMDNlXG5AQCAtNzM2LDcgKzczNyw4IEBAIGdtYWNfZ2V0X3F1ZXVlX3BhZ2Uoc3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCxcbiBcdG1hcHBpbmcgPSBhZGRyIFx1MDAyNiBQQUdFX01BU0s7XG4gXG4gXHRpZiAoIWdldGgtXHUwMDNlZnJlZXFfcGFnZXMpIHtcbi1cdFx0ZGV2X2VycihnZXRoLVx1MDAzZWRldiwgXCJ0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXG5cIik7XG4rXHRcdGRldl9lcnJfcmF0ZWxpbWl0ZWQoZ2V0aC1cdTAwM2VkZXYsXG4rXHRcdFx0XHQgICAgXCJ0cnkgdG8gZ2V0IHBhZ2Ugd2l0aCBubyBwYWdlIGxpc3RcXG5cIik7XG4gXHRcdHJldHVybiBOVUxMO1xuIFx0fVxuIFxuQEAgLTE0NDEsNyArMTQ0Myw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZ21hY19za2JfaWZfZ29vZF9mcmFtZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQsXG4gfVxuIFxuIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxuLVx0XHRcdCAgICB1bnNpZ25lZCBpbnQgKmZyZWVxX2NvbnN1bWVkKVxuK1x0XHRcdCAgICB1bnNpZ25lZCBpbnQgKmZyZWVxX2NvbnN1bWVkLCBib29sICpyZXNjaGVkdWxlKVxuIHtcbiBcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XG4gXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXHUwMDNjXHUwMDNjIHBvcnQtXHUwMDNlcnhxX29yZGVyKSAtIDE7XG5AQCAtMTQ0OSw2ICsxNDUxLDggQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHR2b2lkIF9faW9tZW0gKnB0cl9yZWcgPSBwb3J0LVx1MDAzZXJ4cV9yd3B0cjtcbiBcdHVuc2lnbmVkIGludCBmcmFnX25yID0gcG9ydC1cdTAwM2VyeF9mcmFnX25yO1xuIFx0c3RydWN0IHNrX2J1ZmYgKnNrYiA9IHBvcnQtXHUwMDNlcnhfc2tiO1xuK1x0LyogQm91bmQgbWFsZm9ybWVkIGNoYWlucyB3aGlsZSBhbGxvd2luZyBtYXhpbXVtIGZyYWdtZW50cyBwZXIgZnJhbWUuICovXG4rXHR1bnNpZ25lZCBpbnQgZGVzY19saW1pdCA9IGJ1ZGdldCAqIE1BWF9TS0JfRlJBR1M7XG4gXHR1bnNpZ25lZCBpbnQgY29uc3VtZWQgPSAwO1xuIFx0dW5zaWduZWQgaW50IGZyYW1lX2xlbiwgZnJhZ19sZW47XG4gXHRzdHJ1Y3QgZ21hY19yeGRlc2MgKnJ4ID0gTlVMTDtcbkBAIC0xNDc1LDcgKzE0NzksNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGdtYWNfcngoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdW5zaWduZWQgaW50IGJ1ZGdldCxcbiBcdHIgPSBydy5iaXRzLnJwdHI7XG4gXHR3ID0gcncuYml0cy53cHRyO1xuIFxuLVx0d2hpbGUgKGJ1ZGdldCBcdTAwMjZcdTAwMjYgdyAhPSByKSB7XG4rXHR3aGlsZSAoYnVkZ2V0IFx1MDAyNlx1MDAyNiBjb25zdW1lZCBcdTAwM2MgZGVzY19saW1pdCBcdTAwMjZcdTAwMjYgdyAhPSByKSB7XG4gXHRcdHBhZ2UgPSBOVUxMO1xuIFx0XHRyeCA9IHBvcnQtXHUwMDNlcnhxX3JpbmcgKyByO1xuIFx0XHR3b3JkMCA9IHJ4LVx1MDAzZXdvcmQwO1xuQEAgLTE1MDIsMTUgKzE1MDYsMTggQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRcdH1cbiBcbiBcdFx0aWYgKCFtYXBwaW5nKSB7XG4tXHRcdFx0bmV0ZGV2X2VycihuZXRkZXYsXG4tXHRcdFx0XHQgICBcInJ4cVsldV06IEhXIEJVRzogemVybyBETUEgZGVzY1xcblwiLCByKTtcbitcdFx0XHRpZiAobmV0X3JhdGVsaW1pdCgpKVxuK1x0XHRcdFx0bmV0ZGV2X2VycihuZXRkZXYsXG4rXHRcdFx0XHRcdCAgIFwicnhxWyV1XTogSFcgQlVHOiB6ZXJvIERNQSBkZXNjXFxuXCIsXG4rXHRcdFx0XHRcdCAgIHIpO1xuIFx0XHRcdGdvdG8gZXJyX2Ryb3A7XG4gXHRcdH1cbiBcbiBcdFx0LyogRnJlZXEgcG9pbnRlcnMgYXJlIG9uZSBwYWdlIG9mZiAqL1xuIFx0XHRncGFnZSA9IGdtYWNfZ2V0X3F1ZXVlX3BhZ2UoZ2V0aCwgcG9ydCwgbWFwcGluZyArIFBBR0VfU0laRSk7XG4gXHRcdGlmICghZ3BhZ2UpIHtcbi1cdFx0XHRkZXZfZXJyKGdldGgtXHUwMDNlZGV2LCBcImNvdWxkIG5vdCBmaW5kIG1hcHBpbmdcXG5cIik7XG4rXHRcdFx0ZGV2X2Vycl9yYXRlbGltaXRlZChnZXRoLVx1MDAzZWRldixcbitcdFx0XHRcdFx0ICAgIFwiY291bGQgbm90IGZpbmQgbWFwcGluZ1xcblwiKTtcbiBcdFx0XHRnb3RvIGVycl9kcm9wO1xuIFx0XHR9XG4gXHRcdHBhZ2UgPSBncGFnZS1cdTAwM2VwYWdlO1xuQEAgLTE1MzUsNyArMTU0Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ21hY19yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCB1bnNpZ25lZCBpbnQgYnVkZ2V0LFxuIFx0XHRpZiAoZnJhZ19uciA9PSBNQVhfU0tCX0ZSQUdTKVxuIFx0XHRcdGdvdG8gZXJyX2Ryb3A7XG4gXG4tXHRcdGlmIChmcmFnX2xlbiA9PSAwKVxuK1x0XHRpZiAoZnJhZ19sZW4gPT0gMCBcdTAwMjZcdTAwMjYgbmV0X3JhdGVsaW1pdCgpKVxuIFx0XHRcdG5ldGRldl9lcnIobmV0ZGV2LCBcIlJlY2VpdmVkIGZyYWdtZW50IHdpdGggbGVuID0gMFxcblwiKTtcbiBcbiBcdFx0c2tiX2ZpbGxfcGFnZV9kZXNjKHNrYiwgZnJhZ19uciwgcGFnZSwgcGFnZV9vZmZzLCBmcmFnX2xlbik7XG5AQCAtMTU3OSw2ICsxNTg2LDcgQEAgc3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXG4gXHRwb3J0LVx1MDAzZXJ4X2ZyYWdfbnIgPSBmcmFnX25yO1xuIFx0cG9ydC1cdTAwM2VyeF9kcm9wcGluZyA9IGRyb3BwaW5nO1xuIFx0KmZyZWVxX2NvbnN1bWVkID0gY29uc3VtZWQ7XG4rXHQqcmVzY2hlZHVsZSA9IGJ1ZGdldCBcdTAwMjZcdTAwMjYgdyAhPSByO1xuIFx0d3JpdGV3KHIsIHB0cl9yZWcpO1xuIFx0cmV0dXJuIHJlY2VpdmVkO1xuIH1cbkBAIC0xNTkwLDEyICsxNTk4LDEzIEBAIHN0YXRpYyBpbnQgZ21hY19uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuIFx0dW5zaWduZWQgaW50IGZyZWVxX3RocmVzaG9sZDtcbiBcdHVuc2lnbmVkIGludCBmcmVlcV9jb25zdW1lZDtcbiBcdHVuc2lnbmVkIGludCByZWNlaXZlZDtcbitcdGJvb2wgcmVzY2hlZHVsZTtcbiBcbiBcdGZyZWVxX3RocmVzaG9sZCA9IDEgXHUwMDNjXHUwMDNjIChnZXRoLVx1MDAzZWZyZWVxX29yZGVyIC0gMSk7XG4gXHR1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKFx1MDAyNnBvcnQtXHUwMDNlcnhfc3RhdHNfc3luY3ApO1xuIFxuLVx0cmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktXHUwMDNlZGV2LCBidWRnZXQsIFx1MDAyNmZyZWVxX2NvbnN1bWVkKTtcbi1cdGlmIChyZWNlaXZlZCBcdTAwM2MgYnVkZ2V0KVxuK1x0cmVjZWl2ZWQgPSBnbWFjX3J4KG5hcGktXHUwMDNlZGV2LCBidWRnZXQsIFx1MDAyNmZyZWVxX2NvbnN1bWVkLCBcdTAwMjZyZXNjaGVkdWxlKTtcbitcdGlmICghcmVzY2hlZHVsZSBcdTAwMjZcdTAwMjYgcmVjZWl2ZWQgXHUwMDNjIGJ1ZGdldClcbiBcdFx0Kytwb3J0LVx1MDAzZXJ4X25hcGlfZXhpdHM7XG4gXG4gXHR1NjRfc3RhdHNfdXBkYXRlX2VuZChcdTAwMjZwb3J0LVx1MDAzZXJ4X3N0YXRzX3N5bmNwKTtcbkBAIC0xNjA2LDEwICsxNjE1LDExIEBAIHN0YXRpYyBpbnQgZ21hY19uYXBpX3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxuIFx0XHRnZXRoX2ZpbGxfZnJlZXEoZ2V0aCwgdHJ1ZSk7XG4gXHR9XG4gXG4tXHRpZiAocmVjZWl2ZWQgXHUwMDNjIGJ1ZGdldCBcdTAwMjZcdTAwMjYgbmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHJlY2VpdmVkKSlcbitcdGlmICghcmVzY2hlZHVsZSBcdTAwMjZcdTAwMjYgcmVjZWl2ZWQgXHUwMDNjIGJ1ZGdldCBcdTAwMjZcdTAwMjZcbitcdCAgICBuYXBpX2NvbXBsZXRlX2RvbmUobmFwaSwgcmVjZWl2ZWQpKVxuIFx0XHRnbWFjX2VuYWJsZV9yeF9pcnEobmFwaS1cdTAwM2VkZXYsIDEpO1xuIFxuLVx0cmV0dXJuIHJlY2VpdmVkO1xuK1x0cmV0dXJuIHJlc2NoZWR1bGUgPyBidWRnZXQgOiByZWNlaXZlZDtcbiB9XG4gXG4gc3RhdGljIHZvaWQgZ21hY19kdW1wX2RtYV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxuQEAgLTE3OTgsNyArMTgwOCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBnbWFjX2lycShpbnQgaXJxLCB2b2lkICpkYXRhKVxuIFxuIFx0aWYgKHZhbCBcdTAwMjYgKEdNQUMwX1JYX09WRVJSVU5fSU5UX0JJVCBcdTAwM2NcdTAwM2MgKG5ldGRldi1cdTAwM2VkZXZfaWQgKiA4KSkpIHtcbiBcdFx0c3Bpbl9sb2NrKFx1MDAyNmdldGgtXHUwMDNlaXJxX2xvY2spO1xuLVx0XHR3cml0ZWwoR01BQzBfUlhERVJSX0lOVF9CSVQgXHUwMDNjXHUwMDNjIChuZXRkZXYtXHUwMDNlZGV2X2lkICogOCksXG4rXHRcdHdyaXRlbChHTUFDMF9SWF9PVkVSUlVOX0lOVF9CSVQgXHUwMDNjXHUwMDNjIChuZXRkZXYtXHUwMDNlZGV2X2lkICogOCksXG4gXHRcdCAgICAgICBnZXRoLVx1MDAzZWJhc2UgKyBHTE9CQUxfSU5URVJSVVBUX1NUQVRVU180X1JFRyk7XG4gXHRcdHU2NF9zdGF0c191cGRhdGVfYmVnaW4oXHUwMDI2cG9ydC1cdTAwM2Vpcl9zdGF0c19zeW5jcCk7XG4gXHRcdCsrcG9ydC1cdTAwM2VzdGF0cy5yeF9maWZvX2Vycm9ycztcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjM2LjQ0NjI5NjM3MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjY1NjgwNDM1MjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCdzIGhpdHRpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmNgLiBUaGF0J3MgaW50ZXJlc3RpbmcsIGxldCdzIGRpdmUgaW50byBpdC4gRmlyc3QgdGhpbmcncyBmaXJzdDogbmVlZCB0byBjb25maXJtIHRoZSBhcmNoaXRlY3R1cmUgdGhpcyB0YXJnZXRzLiBBaCwgYW1kNjQg4oCTIGdvb2QsIG5hcnJvd3MgdGhpbmdzIGRvd24gYSBiaXQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIEtjb25maWcgaW1wbGljYXRpb25zIGZvciBgZ2VtaW5pLmNgLiBMZXQncyBzZWUgd2hhdCBmZWF0dXJlcyBhcmUgZW5hYmxlZCwgZGlzYWJsZWQsIGFuZCBjb25maWd1cmFibGUuIEZpbmFsbHksIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIE1ha2VmaWxlIGFuZCBLY29uZmlnIGZpbGVzIGZvciB0aGF0IG1vZHVsZSwgc28gSSdsbCBzZWFyY2ggZm9yIGBnZW1pbmkuY2Agd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2AgdG8gZW5zdXJlIEkgaGF2ZSB0aGUgZnVsbCBwaWN0dXJlLiBXYW50IHRvIGJlIHRob3JvdWdoLCBlc3BlY2lhbGx5IHdpdGggbmV0d29yayBkcml2ZXJzLiBHb3R0YSBtYWtlIHN1cmUgdGhpcyBjaGFuZ2UgaXMgY2xlYW5seSBpbnRlZ3JhdGVkIGFuZCBkb2Vzbid0IGNhdXNlIGFueSB1bmV4cGVjdGVkIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGNvbmZpZ3VyYXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NTQ0LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNFQyMzo1ODo0My4wMTQzNDMxMTJaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODc1MDYyNDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZ2VtaW5pXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9NYWtlZmlsZS0zLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvTWFrZWZpbGU6NDpvYmotJChDT05GSUdfR0VNSU5JX0VUSEVSTkVUKSArPSBnZW1pbmkub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy00NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjQ2OiNpbmNsdWRlIFxcXCJnZW1pbmkuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NDg6I2RlZmluZSBEUlZfTkFNRVxcdFxcdFxcXCJnbWFjLWdlbWluaVxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz05Nz1zdHJ1Y3QgZ21hY190eHEge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMDQ6c3RydWN0IGdlbWluaV9ldGhlcm5ldDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwNjpzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTA3LVxcdHU4IGlkOyAvKiAwIG9yIDEgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwOTpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTEwLVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE1NTpzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE1Ni1cXHRzdHJ1Y3QgZGV2aWNlICpkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNTctXFx0dm9pZCBfX2lvbWVtICpiYXNlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTU4OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydDA7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNTk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0MTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE2MC1cXHRib29sIGluaXRpYWxpemVkO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMzA9c3RhdGljIHZvaWQgZ21hY191cGRhdGVfY29uZmlnMF9yZWcoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjMyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzMzpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM0LVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI0Nj1zdGF0aWMgdm9pZCBnbWFjX2VuYWJsZV90eF9yeChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ5LVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI2MT1zdGF0aWMgdm9pZCBnbWFjX2Rpc2FibGVfdHhfcngoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2Mi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjM6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2NC1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNzg9c3RhdGljIHZvaWQgZ21hY19zZXRfZmxvd19jb250cm9sKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGJvb2wgdHgsIGJvb2wgcngpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjgwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yODEtXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9Mjk3PXN0YXRpYyB2b2lkIGdtYWNfYWRqdXN0X2xpbmsoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI5OC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyOTk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTMwMC1cXHRzdHJ1Y3QgcGh5X2RldmljZSAqcGh5ZGV2ID0gbmV0ZGV2LVxcdTAwM2VwaHlkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTM2Mj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfcGh5KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0zNjMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MzY0OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0zNjUtXFx0dW5pb24gZ21hY19zdGF0dXMgc3RhdHVzID0geyAuYml0czMyID0gMCB9O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz00NjY9c3RhdGljIGludCBnbWFjX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ2Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo0Njg6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTQ2OS1cXHR1bmlvbiBnbWFjX2NvbmZpZzAgY29uZmlnMCA9IHsgLmJpdHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTU0Nj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfdHhxcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNTQ3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjU0ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNTQ5LVxcdHVuc2lnbmVkIGludCBuX3R4cSA9IG5ldGRldi1cXHUwMDNlbnVtX3R4X3F1ZXVlcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjU1MDpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cXHUwMDNlZ2V0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTU1MS1cXHRzaXplX3QgZW50cmllcyA9IDEgXFx1MDAzY1xcdTAwM2MgcG9ydC1cXHUwMDNldHhxX29yZGVyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz02MDQ9c3RhdGljIHZvaWQgZ21hY19jbGVhbl90eHEoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgc3RydWN0IGdtYWNfdHhxICp0eHEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTYwNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2MDc6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTYwOC1cXHR1bnNpZ25lZCBpbnQgbSA9ICgxIFxcdTAwM2NcXHUwMDNjIHBvcnQtXFx1MDAzZXR4cV9vcmRlcikgLSAxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NjA5OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtNjEwLVxcdHVuc2lnbmVkIGludCBjID0gdHhxLVxcdTAwM2VjcHRyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz02NzY9c3RhdGljIHZvaWQgZ21hY19jbGVhbnVwX3R4cXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTY3Ny17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2Nzg6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTY3OS1cXHR1bnNpZ25lZCBpbnQgbl90eHEgPSBuZXRkZXYtXFx1MDAzZW51bV90eF9xdWV1ZXM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo2ODA6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy02ODEtXFx0dm9pZCBfX2lvbWVtICpyd3B0cl9yZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTcwMj1zdGF0aWMgaW50IGdtYWNfc2V0dXBfcnhxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03MDMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NzA0OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3MDU6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03MDYtXFx0c3RydWN0IG5vbnRvZV9xaGRyIF9faW9tZW0gKnFoZHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTcyNz1zdGF0aWMgc3RydWN0IGdtYWNfcXVldWVfcGFnZSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3Mjg6Z21hY19nZXRfcXVldWVfcGFnZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6NzI5OlxcdFxcdCAgICBzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy03MzAtXFx0XFx0ICAgIGRtYV9hZGRyX3QgYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9NzU1PXN0YXRpYyB2b2lkIGdtYWNfY2xlYW51cF9yeHEoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTc1Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo3NTc6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjc1ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcG9ydC1cXHUwMDNlZ2V0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTc1OS1cXHRzdHJ1Y3QgZ21hY19yeGRlc2MgKnJ4ZCA9IHBvcnQtXFx1MDAzZXJ4cV9yaW5nO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04MDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo4MDU6c3RhdGljIHN0cnVjdCBwYWdlICpnZXRoX2ZyZWVxX2FsbG9jX21hcF9wYWdlKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04MDYtXFx0XFx0XFx0XFx0XFx0ICAgICAgaW50IHBuKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04NzEtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo4NzI6c3RhdGljIHVuc2lnbmVkIGludCBnZXRoX2ZpbGxfZnJlZXEoc3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCwgYm9vbCByZWZpbGwpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy04NzMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy05MjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo5Mjc6c3RhdGljIGludCBnZXRoX3NldHVwX2ZyZWVxKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy05Mjgte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy05OTgtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzo5OTk6c3RhdGljIHZvaWQgZ2V0aF9jbGVhbnVwX2ZyZWVxKHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDAwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTAzOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwMzk6c3RhdGljIGludCBnZXRoX3Jlc2l6ZV9mcmVlcShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDQwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEwNDE6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMDQyLVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYgPSBwb3J0LVxcdTAwM2VuZXRkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMDQzOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqb3RoZXJfcG9ydDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEwNDQtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm90aGVyX25ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTEwNz1zdGF0aWMgdm9pZCBnbWFjX3R4X2lycV9lbmFibGUoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTEwOS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMTEwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxMTExOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTExMi1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xMTM5PXN0YXRpYyBpbnQgZ21hY19tYXBfdHhfYnVmcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTQxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjExNDI6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTExNDMtXFx0c3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2tiX3NpID0gIHNrYl9zaGluZm8oc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTE0NS1cXHRzaG9ydCBmcmFnLCBsYXN0X2ZyYWcgPSBza2Jfc2ktXFx1MDAzZW5yX2ZyYWdzIC0gMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjExNDY6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMTQ3LVxcdHVuc2lnbmVkIGludCB3b3JkMSwgd29yZDMsIGJ1ZmxlbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTI3Nz1zdGF0aWMgbmV0ZGV2X3R4X3QgZ21hY19zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTEyNzkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTI4MDpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTI4MS1cXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXFx1MDAzY1xcdTAwM2MgcG9ydC1cXHUwMDNldHhxX29yZGVyKSAtIDE7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTEzNTc9c3RhdGljIHZvaWQgZ21hY19lbmFibGVfaXJxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzU4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzNTk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzNjA6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzYxLVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTEzODY9c3RhdGljIHZvaWQgZ21hY19lbmFibGVfcnhfaXJxKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzg3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzODg6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjEzODk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xMzkwLVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE0MDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNDA1OnN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZ21hY19za2JfaWZfZ29vZF9mcmFtZShzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNDA2LVxcdFxcdFxcdFxcdFxcdCAgICAgIHVuaW9uIGdtYWNfcnhkZXNjXzAgd29yZDAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE0NDU9c3RhdGljIHVuc2lnbmVkIGludCBnbWFjX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIHVuc2lnbmVkIGludCBidWRnZXQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE0NDcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTQ0ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTQ0OS1cXHR1bnNpZ25lZCBzaG9ydCBtID0gKDEgXFx1MDAzY1xcdTAwM2MgcG9ydC1cXHUwMDNlcnhxX29yZGVyKSAtIDE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNDUwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTQ1MS1cXHR2b2lkIF9faW9tZW0gKnB0cl9yZWcgPSBwb3J0LVxcdTAwM2VyeHFfcndwdHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE1OTQ9c3RhdGljIGludCBnbWFjX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNTk1LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE1OTY6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmFwaS1cXHUwMDNlZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE1OTc6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNTk4LVxcdHVuc2lnbmVkIGludCBmcmVlcV90aHJlc2hvbGQ7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE2MjU9c3RhdGljIHZvaWQgZ21hY19kdW1wX2RtYV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTYyNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNjI3OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNjI4OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTYyOS1cXHR2b2lkIF9faW9tZW0gKnB0cl9yZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE2OTY9c3RhdGljIHZvaWQgZ21hY191cGRhdGVfaHdfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE2OTcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTY5ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTY5OS1cXHR1bnNpZ25lZCBpbnQgcnhfZGlzY2FyZHMsIHJ4X21jYXN0LCByeF9iY2FzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3MDA6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aCA9IHBvcnQtXFx1MDAzZWdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzAxLVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE3MzI9c3RhdGljIHUzMiBnbWFjX2dldF9pbnRyX2ZsYWdzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsIGludCBpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTczMy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNzM0OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxNzM1OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGggPSBwb3J0LVxcdTAwM2VnZXRoO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTczNi1cXHR2b2lkIF9faW9tZW0gKmlycWlmX3JlZywgKmlycWVuX3JlZztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTc1MD1zdGF0aWMgZW51bSBocnRpbWVyX3Jlc3RhcnQgZ21hY19jb2FsZXNjZV9kZWxheV9leHBpcmVkKHN0cnVjdCBocnRpbWVyICp0aW1lcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NTEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTc1MjpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTc1MzpcXHRcXHRjb250YWluZXJfb2YodGltZXIsIHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NTQtXFx0XFx0XFx0ICAgICByeF9jb2FsZXNjZV90aW1lcik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE3NjA9c3RhdGljIGlycXJldHVybl90IGdtYWNfaXJxKGludCBpcnEsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xNzYxLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3NjI6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTc2My1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE3NjQ6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE3NjUtXFx0dTMyIHZhbCwgb3JyID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTgyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE4MjI6c3RhdGljIHZvaWQgZ21hY19zdGFydF9kbWEoc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTgyMy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE4NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxODQzOnN0YXRpYyB2b2lkIGdtYWNfc3RvcF9kbWEoc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg0NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE4NTQ9c3RhdGljIGludCBnbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE4NTUte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTg1NjpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTg1Ny1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xOTExPXN0YXRpYyBpbnQgZ21hY19zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTEyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE5MTM6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5MTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTE5MzU9c3RhdGljIHZvaWQgZ21hY19zZXRfcnhfbW9kZShzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTkzNi17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoxOTM3OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTM4LVxcdHVuaW9uIGdtYWNfcnhfZmx0ciBmaWx0ZXIgPSB7IC5iaXRzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0xOTcwPXN0YXRpYyB2b2lkIGdtYWNfd3JpdGVfbWFjX2FkZHJlc3Moc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5NzEte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MTk3MjpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMTk3My1cXHRfX2xlMzIgYWRkclszXTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MTk5Mz1zdGF0aWMgdm9pZCBnbWFjX2NsZWFyX2h3X3N0YXRzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0xOTk0LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjE5OTU6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTE5OTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIwMDU9c3RhdGljIHZvaWQgZ21hY19nZXRfc3RhdHM2NChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMDA3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIwMDg6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIwMDktXFx0dW5zaWduZWQgaW50IHN0YXJ0O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMDc0PXN0YXRpYyBpbnQgZ21hY19zZXRfZmVhdHVyZXMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjA3Ni17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMDc3OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMDc4LVxcdGludCBlbmFibGUgPSBmZWF0dXJlcyBcXHUwMDI2IE5FVElGX0ZfUlhDU1VNO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMTA1PXN0YXRpYyB2b2lkIGdtYWNfZ2V0X2V0aHRvb2xfc3RhdHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjEwNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMTA4OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMTA5LVxcdHVuc2lnbmVkIGludCBzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjE4MD1zdGF0aWMgdm9pZCBnbWFjX2dldF9wYXVzZXBhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIxODIte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjE4MzpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjE4NC1cXHR1bmlvbiBnbWFjX2NvbmZpZzAgY29uZmlnMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjIwNj1zdGF0aWMgdm9pZCBnbWFjX2dldF9yaW5ncGFyYW0oc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjIxMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMjExOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMjI2PXN0YXRpYyBpbnQgZ21hY19zZXRfcmluZ3BhcmFtKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyMzAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjIzMTpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjIzMi1cXHRpbnQgZXJyID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI0OT1zdGF0aWMgaW50IGdtYWNfZ2V0X2NvYWxlc2NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyNTMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjI1NDpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI2Mz1zdGF0aWMgaW50IGdtYWNfc2V0X2NvYWxlc2NlKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyNjcte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjI2ODpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQgPSBuZXRkZXZfcHJpdihuZXRkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM9MjI4MT1zdGF0aWMgdTMyIGdtYWNfZ2V0X21zZ2xldmVsKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjgyLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIyODM6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIyODQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTIyODg9c3RhdGljIHZvaWQgZ21hY19zZXRfbXNnbGV2ZWwoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwgdTMyIGxldmVsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjI4OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMjkwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IG5ldGRldl9wcml2KG5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMjkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yMzE1PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZXRodG9vbF9vcHMgZ21hY18zNTF4X2V0aHRvb2xfb3BzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjMzNjpzdGF0aWMgaXJxcmV0dXJuX3QgZ2VtaW5pX3BvcnRfaXJxX3RocmVhZChpbnQgaXJxLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjMzNy17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzM4LVxcdHVuc2lnbmVkIGxvbmcgaXJxbWFzayA9IFNXRlFfRU1QVFlfSU5UX0JJVDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzMzk6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0ID0gZGF0YTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzNDA6XFx0c3RydWN0IGdlbWluaV9ldGhlcm5ldCAqZ2V0aDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzNDEtXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjIzNTg6c3RhdGljIGlycXJldHVybl90IGdlbWluaV9wb3J0X2lycShpbnQgaXJxLCB2b2lkICpkYXRhKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM1OS17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzYwOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IGRhdGE7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzYxOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzYyLVxcdGlycXJldHVybl90IHJldCA9IElSUV9OT05FO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzg2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjM4NzpzdGF0aWMgdm9pZCBnZW1pbmlfcG9ydF9yZW1vdmUoc3RydWN0IGdlbWluaV9ldGhlcm5ldF9wb3J0ICpwb3J0KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjM4OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTIzOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyMzk3OnN0YXRpYyB2b2lkIGdlbWluaV9ldGhlcm5ldF9pbml0KHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGgpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yMzk4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0NDk6c3RhdGljIHZvaWQgZ2VtaW5pX3BvcnRfc2F2ZV9tYWNfYWRkcihzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI0NTk6c3RhdGljIGludCBnZW1pbmlfZXRoZXJuZXRfcG9ydF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjQ2MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI0NjItXFx0c3RydWN0IGRldmljZV9ub2RlICpucCA9IHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjQ2MzpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0X3BvcnQgKnBvcnQ7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDY0LVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNDY1OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNDY2LVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI1MjktXFx0LyogTWF5YmUgdGhlcmUgaXMgYSBuaWNlIGV0aGVybmV0IGFkZHJlc3Mgd2Ugc2hvdWxkIHVzZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjUzMDpcXHRnZW1pbmlfcG9ydF9zYXZlX21hY19hZGRyKHBvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjUzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjU0OC1cXHQvKiBUaGlzIHdpbGwganVzdCBiZSBkb25lIG9uY2UgYm90aCBwb3J0cyBhcmUgdXAgYW5kIHJlc2V0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNTQ5OlxcdGdlbWluaV9ldGhlcm5ldF9pbml0KGdldGgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjU1MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjU5Mi1cXHRcXHRcXHRcXHRcXHRwb3J0LVxcdTAwM2VpcnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNTkzOlxcdFxcdFxcdFxcdFxcdGdlbWluaV9wb3J0X2lycSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI1OTQ6XFx0XFx0XFx0XFx0XFx0Z2VtaW5pX3BvcnRfaXJxX3RocmVhZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI1OTUtXFx0XFx0XFx0XFx0XFx0SVJRRl9TSEFSRUQsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjE5OnN0YXRpYyB2b2lkIGdlbWluaV9ldGhlcm5ldF9wb3J0X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyMC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjIxOlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXRfcG9ydCAqcG9ydCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MjM6XFx0Z2VtaW5pX3BvcnRfcmVtb3ZlKHBvcnQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyNC19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYyNjpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBnZW1pbmlfZXRoZXJuZXRfcG9ydF9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyNy1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjI4OlxcdFxcdC5jb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYyOS1cXHR9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjMxLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjMyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjM0OnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGdlbWluaV9ldGhlcm5ldF9wb3J0X2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MzUtXFx0LmRyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2MzY6XFx0XFx0Lm5hbWUgPSBcXFwiZ2VtaW5pLWV0aGVybmV0LXBvcnRcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYzNzpcXHRcXHQub2ZfbWF0Y2hfdGFibGUgPSBnZW1pbmlfZXRoZXJuZXRfcG9ydF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2MzgtXFx0fSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2Mzk6XFx0LnByb2JlID0gZ2VtaW5pX2V0aGVybmV0X3BvcnRfcHJvYmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjQwOlxcdC5yZW1vdmUgPSBnZW1pbmlfZXRoZXJuZXRfcG9ydF9yZW1vdmUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQxLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY0MzpzdGF0aWMgaW50IGdlbWluaV9ldGhlcm5ldF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY0NC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQ1LVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZwZGV2LVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjQ2OlxcdHN0cnVjdCBnZW1pbmlfZXRoZXJuZXQgKmdldGg7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjQ3LVxcdHVuc2lnbmVkIGludCByZXRyeSA9IDU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjgyOnN0YXRpYyB2b2lkIGdlbWluaV9ldGhlcm5ldF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2ODMte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY4NDpcXHRzdHJ1Y3QgZ2VtaW5pX2V0aGVybmV0ICpnZXRoID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjg1LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY5MDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBnZW1pbmlfZXRoZXJuZXRfb2ZfbWF0Y2hbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTEtXFx0e1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjY5MjpcXHRcXHQuY29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ldGhlcm5ldFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjkzLVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTUtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2OTY6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZ2VtaW5pX2V0aGVybmV0X29mX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjk4OnN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGdlbWluaV9ldGhlcm5ldF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjk5LVxcdC5kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzAwLVxcdFxcdC5uYW1lID0gRFJWX05BTUUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzAxOlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MDItXFx0fSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MDM6XFx0LnByb2JlID0gZ2VtaW5pX2V0aGVybmV0X3Byb2JlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcwNDpcXHQucmVtb3ZlID0gZ2VtaW5pX2V0aGVybmV0X3JlbW92ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MDUtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzA3OnN0YXRpYyBpbnQgX19pbml0IGdlbWluaV9ldGhlcm5ldF9tb2R1bGVfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcwOC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzExOlxcdHJldCA9IHBsYXRmb3JtX2RyaXZlcl9yZWdpc3RlcihcXHUwMDI2Z2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTItXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3MTU6XFx0cmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKFxcdTAwMjZnZW1pbmlfZXRoZXJuZXRfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTYtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcxNzpcXHRcXHRwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcihcXHUwMDI2Z2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MTgtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjcyMi19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNzIzOm1vZHVsZV9pbml0KGdlbWluaV9ldGhlcm5ldF9tb2R1bGVfaW5pdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzI0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcyNTpzdGF0aWMgdm9pZCBfX2V4aXQgZ2VtaW5pX2V0aGVybmV0X21vZHVsZV9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNzI2LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI3Mjc6XFx0cGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoXFx1MDAyNmdlbWluaV9ldGhlcm5ldF9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjcyODpcXHRwbGF0Zm9ybV9kcml2ZXJfdW5yZWdpc3RlcihcXHUwMDI2Z2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI3MjktfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjczMDptb2R1bGVfZXhpdChnZW1pbmlfZXRoZXJuZXRfbW9kdWxlX2V4aXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjczMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTg6NDMuMTAxODU2NzdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjozNTU0MzkyNDY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIEdlbWluaSBFdGhlcm5ldCBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqXG5cbkFscmlnaHQsIGJlZm9yZSBJIGRpdmUgaW4gYW55IGZ1cnRoZXIsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25zdHJhaW50cyBvbiBgQ09ORklHX0dFTUlOSV9FVEhFUk5FVGAuIFRvIGdldCBhIGhhbmRsZSBvbiB0aGF0LCBJJ20gZ29pbmcgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIEtjb25maWcgZmlsZSBmb3IgQ29ydGluYSBFdGhlcm5ldCBkcml2ZXJzLiBJIHN1c3BlY3QgaXQncyBpbiB0aGUgdXN1YWwgcGxhY2U6IGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL0tjb25maWdgLiBUaGlzIHNob3VsZCByZXZlYWwgdGhlIGRlcGVuZGVuY2llcy4gSSBleHBlY3QgdG8gc2VlIHRoZSB0eXBpY2FsIGhhcmR3YXJlIGZlYXR1cmUgZGVwZW5kZW5jaWVzLCBsaWtlIGEgc3BlY2lmaWMgUEhZIG9yIE1BQyBjb25maWd1cmF0aW9uLiBJdCBjb3VsZCBhbHNvIGRlcGVuZCBvbiBvdGhlciBrZXJuZWwgY29tcG9uZW50cywgcGVyaGFwcyBzb21lIHNwZWNpZmljIHBsYXRmb3JtIHN1cHBvcnQuIExldCdzIGRpZyBpbiBhbmQgZmlndXJlIG91dCBleGFjdGx5IHdoYXQgbmVlZHMgdG8gYmUgZW5hYmxlZCBvciBpbiBwbGFjZSBmb3IgdGhpcyBkcml2ZXIgdG8gYmVjb21lIGF2YWlsYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTU5MTcsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNFQyMzo1ODo0Ni42NTYyNTIyNTdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMxNTk1MjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiR0VNSU5JX0VUSEVSTkVUXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnPTEyPWlmIE5FVF9WRU5ET1JfQ09SVElOQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvS2NvbmZpZy0xMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL0tjb25maWc6MTQ6Y29uZmlnIEdFTUlOSV9FVEhFUk5FVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvS2NvbmZpZy0xNS1cXHR0cmlzdGF0ZSBcXFwiR2VtaW5pIEdpZ2FiaXQgRXRoZXJuZXQgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvTWFrZWZpbGUtMy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0dFTUlOSV9FVEhFUk5FVCkgKz0gZ2VtaW5pLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmgtOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjk6I2lmbmRlZiBfR0VNSU5JX0VUSEVSTkVUX0hcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjEwOiNkZWZpbmUgX0dFTUlOSV9FVEhFUk5FVF9IXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuaC0xMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmg9OTUzPXN0cnVjdCBub250b2VfcWhkciB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oLTk1Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5oOjk1ODojZW5kaWYgLyogX0dFTUlOSV9FVEhFUk5FVF9IICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjQ2LjcwOTQyNTYzNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjY2OTY2ODgxOTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5LCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBiYXNlZCBvbiB0aGUgZmlsZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnYDpcblxuKipEaXZpbmcgaW50byB0aGUgQ29ydGluYSBFdGhlcm5ldCBLY29uZmlnKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIEtjb25maWcgZm9yIHRoZSBDb3J0aW5hIEV0aGVybmV0IGRyaXZlcnMuIFJpZ2h0IGF3YXksIEkgc2VlIHRoaXMgaXMgd2hlcmUgdGhlIGNvcmUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFyZSBkZWZpbmVkIGZvciBpbnRlZ3JhdGluZyB0aGVzZSBQSFlzL01BQ3MgaW50byB0aGUga2VybmVsLiBUaGUgc3RydWN0dXJlIGlzIHByZXR0eSBzdGFuZGFyZCwgYXMgZXhwZWN0ZWQuIEknbSBxdWlja2x5IHNjYW5uaW5nIGZvciB0aGUgdXN1YWwgc3VzcGVjdHM6IG1vZHVsZSBkZXBlbmRlbmNpZXMsIGRlZmF1bHQgc3RhdGVzLCBhbmQgdmlzaWJpbGl0eSBiYXNlZCBvbiBwbGF0Zm9ybSBvciBvdGhlciBkcml2ZXIgZmVhdHVyZXMuXG5cbkknbSBjaGVja2luZyBob3cgdGhlIENvcnRpbmEgZHJpdmVycyBhcmUgYnJva2VuIGRvd247IGxpa2VseSB0aGVyZSBhcmUgc2VwYXJhdGUgb3B0aW9ucyBmb3IgdGhlIGRpZmZlcmVudCBDb3J0aW5hIFNvQ3Mgb3IgUEhZIGZhbWlsaWVzIHRoYXQgYXJlIHN1cHBvcnRlZC4gSSdsbCBuZWVkIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGBzZWxlY3RgIHN0YXRlbWVudHMsIHdoaWNoIGluZGljYXRlIGRlcGVuZGVuY2llcyBvbiBvdGhlciBjb3JlIG5ldHdvcmtpbmcgY29tcG9uZW50cy4gQXJlIHRoZXkgdXNpbmcgdGhlIHN0YW5kYXJkIFBIWSBpbnRlcmZhY2VzLCBvciBoYXZlIHRoZXkgYnVpbHQgc29tZSBwcm9wcmlldGFyeSBvbmVzPyBBcmUgdGhlcmUgcGxhdGZvcm0tc3BlY2lmaWMgZGVwZW5kZW5jaWVzIGhlcmU/IEFueSB1bnVzdWFsIGhhcmR3YXJlIGZlYXR1cmVzIGVuYWJsZWQgaGVyZT9cblxuSSdtIGFsc28gbG9va2luZyBmb3IgY29uZGl0aW9uYWwgZGVwZW5kZW5jaWVzLiBBcmUgdGhlcmUgYW55IGZlYXR1cmVzIHdoaWNoIGFyZSBlbmFibGVkIGJhc2VkIG9uIGhhdmluZyBvdGhlciBkcml2ZXJzIGNvbXBpbGVkIGluLCBvciBvbiB0aGUgcGxhdGZvcm0/IFdoYXQgYWJvdXQgb3B0aW9uYWwgcG93ZXIgbWFuYWdlbWVudCBzdXBwb3J0IG9yIHNwZWNpZmljIGNsb2NrIGNvbmZpZ3VyYXRpb24/IFRoYXQncyBhbHdheXMgYSBnb29kIHNpZ24gb2Ygd2VsbC1pbnRlZ3JhdGVkIGNvZGUuXG5cbkknbGwgYmUgY2hlY2tpbmcgdGhlIGhlbHAgdGV4dCBmb3IgZWFjaCBvcHRpb24uIFRoaXMgd2lsbCBxdWlja2x5IGdpdmUgbWUgYW4gb3ZlcnZpZXcgb2YgdGhlIHB1cnBvc2Ugb2YgZWFjaCBvZiB0aGUgY29uZmlncy4gVGhpcyBpcyBhbiBpbXBvcnRhbnQgcGFydCBvZiB0aGUgcmV2aWV3IHByb2Nlc3MuIElmIHRoZSBkb2N1bWVudGF0aW9uIGlzIGNsZWFyIGFuZCBhY2N1cmF0ZSwgaXQgc2F2ZXMgYSBsb3Qgb2YgdGltZS4gSWYgbm90LCBpdCBtZWFucyBJJ2xsIGhhdmUgdG8gZGVsdmUgZGVlcGVyIGludG8gdGhlIGNvZGUgdG8gdW5kZXJzdGFuZCB3aGF0J3MgcmVhbGx5IGdvaW5nIG9uLiBJJ2xsIGJlIG1ha2luZyBhIG1lbnRhbCBub3RlIG9mIGFueSByZWQgZmxhZ3MgSSBzZWUsIGxpa2UgdW5jbGVhciBvcHRpb24gZGVzY3JpcHRpb25zIG9yIGNvbnZvbHV0ZWQgZGVwZW5kZW5jaWVzLiBPdmVyYWxsLCBJIGV4cGVjdCB0byBzZWUgYSB3ZWxsLXN0cnVjdHVyZWQgS2NvbmZpZyB0aGF0IHJlZmxlY3RzIGEgZ29vZCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBoYXJkd2FyZSBjYXBhYmlsaXRpZXMgYW5kIGludGVncmF0aW9uIHdpdGggdGhlIExpbnV4IGtlcm5lbCdzIG5ldHdvcmtpbmcgc3RhY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2NDgwLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTg6NTMuNDA2MTE2NjQ2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTk0MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbiAgIDI6XFx0IyBDb3J0aW5hIGV0aGVybmV0IGRldmljZXNcXG4gICAzOlxcdFxcbiAgIDQ6XFx0Y29uZmlnIE5FVF9WRU5ET1JfQ09SVElOQVxcbiAgIDU6XFx0XFx0Ym9vbCBcXFwiQ29ydGluYSBHZW1pbmkgZGV2aWNlc1xcXCJcXG4gICA2OlxcdFxcdGRlZmF1bHQgeVxcbiAgIDc6XFx0XFx0aGVscFxcbiAgIDg6XFx0XFx0ICBJZiB5b3UgaGF2ZSBhIG5ldHdvcmsgKEV0aGVybmV0KSBjYXJkIGJlbG9uZ2luZyB0byB0aGlzIGNsYXNzLCBzYXkgWVxcbiAgIDk6XFx0XFx0ICBhbmQgcmVhZCB0aGUgRXRoZXJuZXQtSE9XVE8sIGF2YWlsYWJsZSBmcm9tXFxuICAxMDpcXHRcXHQgIFxcdTAwM2NodHRwczovL3d3dy50bGRwLm9yZy9kb2NzLmh0bWwjaG93dG9cXHUwMDNlLlxcbiAgMTE6XFx0XFxuICAxMjpcXHRpZiBORVRfVkVORE9SX0NPUlRJTkFcXG4gIDEzOlxcdFxcbiAgMTQ6XFx0Y29uZmlnIEdFTUlOSV9FVEhFUk5FVFxcbiAgMTU6XFx0XFx0dHJpc3RhdGUgXFxcIkdlbWluaSBHaWdhYml0IEV0aGVybmV0IHN1cHBvcnRcXFwiXFxuICAxNjpcXHRcXHRkZXBlbmRzIG9uIE9GXFxuICAxNzpcXHRcXHRkZXBlbmRzIG9uIEhBU19JT01FTVxcbiAgMTg6XFx0XFx0c2VsZWN0IFBIWUxJQlxcbiAgMTk6XFx0XFx0c2VsZWN0IENSQzMyXFxuICAyMDpcXHRcXHRoZWxwXFxuICAyMTpcXHRcXHQgIFRoaXMgZHJpdmVyIHN1cHBvcnRzIFN0b3JMaW5rIFNMMzUxeCAoR2VtaW5pKSBkdWFsIEdpZ2FiaXQgRXRoZXJuZXQuXFxuICAyMjpcXHRcXG4gIDIzOlxcdGVuZGlmICMgTkVUX1ZFTkRPUl9DT1JUSU5BXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU4OjUzLjQwNjE3NzkzNloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjUwNDQ4NjA1MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBHZW1pbmkgRXRoZXJuZXQgRHJpdmVyKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgd2UncmUgdGFsa2luZyBhYm91dCBgR0VNSU5JX0VUSEVSTkVUYCwgd2hpY2ggZnJvbSB0aGUgc291bmQgb2YgaXQsIGlzIGFuIFNvQyBFdGhlcm5ldCBkcml2ZXIuIFNwZWNpZmljYWxseSwgaXQncyBmb3IgdGhlIFwiU3RvckxpbmsgU0wzNTF4IChHZW1pbmkpIGR1YWwgR2lnYWJpdCBFdGhlcm5ldC5cIiBBbmQgaXQgYXBwZWFycyB0byBiZSBhIHBsYXRmb3JtIGRyaXZlciwgYmFzZWQgb24gRGV2aWNlIFRyZWUgaW5zdGFudGlhdGlvbi4gT2theSwgc28gZmFyLCBzbyBnb29kIOKAkyB3ZSdyZSBsb29raW5nIGF0IGBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldGAgYW5kIGBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldC1wb3J0YC4gQnV0IHdhaXQgYSBtaW51dGUuLi4gdGhlIFN0b3JMaW5rIFNMMzUxeCBHZW1pbmkgaXMgYW4gKkFSTSogU29DLCBpc24ndCBpdD8gSSBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSB3aGV0aGVyIFwiR2VtaW5pXCIgaXMgZGlyZWN0bHkgdGllZCB0byBhIHNwZWNpZmljIEFSTSBhcmNoaXRlY3R1cmUgb3IgcGxhdGZvcm0uIFRoaXMgaXMgaW1wb3J0YW50IHRvIGRldGVybWluZSBpdHMgY29tcGF0aWJpbGl0eSBhbmQgd2hlcmUgaXQgZml0cyB3aXRoaW4gbXkgZXhpc3Rpbmcga25vd2xlZGdlIGJhc2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3MjMxLCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAxLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTg6NTguNDUxMDQxNTMxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MTA2NjI3MzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiU0wzNTF4fGNvcnRpbmEsZ2VtaW5pXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cz0xMD0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRpci02ODUuZHRzLTExLVxcdG1vZGVsID0gXFxcIkQtTGluayBESVItNjg1IFh0cmVtZSBOIFN0b3JhZ2UgUm91dGVyXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRpci02ODUuZHRzOjEyOlxcdGNvbXBhdGlibGUgPSBcXFwiZGxpbmssZGlyLTY4NVxcXCIsIFxcXCJjb3J0aW5hLGdlbWluaVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kaXItNjg1LmR0cy0xMy1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHM9NDI0PVxcdFxcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHM6NDI1OlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXFx1MDAzYzBcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZGlyLTY4NS5kdHM6NDI2OlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRpci02ODUuZHRzLTQyNy1cXHRcXHRcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTEyPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHMtMTMtXFx0bW9kZWwgPSBcXFwiRC1MaW5rIEROUy0zMTMgMS1CYXkgTmV0d29yayBTdG9yYWdlIEVuY2xvc3VyZVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0czoxNDpcXHRjb21wYXRpYmxlID0gXFxcImRsaW5rLGRucy0zMTNcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHMtMTUtXFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTE2OD1cXHRcXHRmbGFzaEAzMDAwMDAwMCB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTE3Mi1cXHRcXHRcXHQgKi9cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzOjE3MzpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWZsYXNoXFxcIiwgXFxcImplZGVjLWZsYXNoXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTE3NC1cXHRcXHRcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzPTI4Mj1cXHRcXHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLWRsaW5rLWRucy0zMTMuZHRzLTI4My1cXHRcXHRcXHQvKiBUaGUgUk9NIHVzZXMgdGhpcyBtdXhtb2RlICovXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0czoyODQ6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1kbGluay1kbnMtMzEzLmR0czoyODU6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktZGxpbmstZG5zLTMxMy5kdHMtMjg2LVxcdFxcdFxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzPTEyPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzLTEzLVxcdG1vZGVsID0gXFxcIlJhaWRzb25pYyBOQVMgSUItNDIxMC1CXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0czoxNDpcXHRjb21wYXRpYmxlID0gXFxcInJhaWRzb25pYyxpYi00MjEwLWJcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzLTE1LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjEwYi5kdHM9MTYxPVxcdFxcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzOjE2MjpcXHRcXHRcXHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFxcdTAwM2MwXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMTBiLmR0czoxNjM6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIxMGIuZHRzLTE2NC1cXHRcXHRcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cz0xMT0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJSYWlkc29uaWMgTkFTIElCLTQyMjAtQlxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHM6MTM6XFx0Y29tcGF0aWJsZSA9IFxcXCJyYWlkc29uaWMsaWItNDIyMC1iXFxcIiwgXFxcImNvcnRpbmEsZ2VtaW5pXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cy0xNC1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbmFzNDIyMGIuZHRzPTE1MT1cXHRcXHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0czoxNTI6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uYXM0MjIwYi5kdHM6MTUzOlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLW5hczQyMjBiLmR0cy0xNTQtXFx0XFx0XFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzPTExPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJFZGltYXggTlMtMjUwMlxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwiZWRpbWF4LG5zLTI1MDJcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0cy0xNC1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0cz04Mz1cXHUwMDI2c2F0YSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzOjg0OlxcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXFx1MDAzYzNcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktbnMyNTAyLmR0czo4NTpcXHRjb3J0aW5hLGdlbWluaS1lbmFibGUtc2F0YS1icmlkZ2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1uczI1MDIuZHRzLTg2LVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktcnV0MXh4LmR0cz0xMT0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXJ1dDF4eC5kdHMtMTItXFx0bW9kZWwgPSBcXFwiVGVsdG9uaWthIFJVVDF4eFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1ydXQxeHguZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwidGVsdG9uaWthLHJ1dDF4eFxcXCIsIFxcXCJjb3J0aW5hLGdlbWluaVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1ydXQxeHguZHRzLTE0LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM9MTQ9LyB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHMtMTUtXFx0bW9kZWwgPSBcXFwiU3RvcmxpbmsgU2VtaWNvbmR1Y3RvciBHZW1pbmkzMjQgRVYtQm9hcmQgLyBTdG9ybSBTZW1pY29uZHVjdG9yIFNMOTM1MTJSX0JSRFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM6MTY6XFx0Y29tcGF0aWJsZSA9IFxcXCJzdG9ybGluayxnZW1pbmkzMjRcXFwiLCBcXFwic3Rvcm0sc2w5MzUxMnJcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzLTE3LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zbDkzNTEyci5kdHM9MjQxPVxcdFxcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzOjI0MjpcXHRcXHRcXHRjb3J0aW5hLGdlbWluaS1hdGEtbXV4bW9kZSA9IFxcdTAwM2MwXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNsOTM1MTJyLmR0czoyNDM6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc2w5MzUxMnIuZHRzLTI0NC1cXHRcXHRcXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cz0xMT0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJJVGlhbiBTcXVhcmUgT25lIFNRMjAxXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0czoxMzpcXHRjb21wYXRpYmxlID0gXFxcIml0aWFuLHNxMjAxXFxcIiwgXFxcImNvcnRpbmEsZ2VtaW5pXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cy0xNC1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3EyMDEuZHRzPTIzNz1cXHRcXHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0czoyMzg6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zcTIwMS5kdHM6MjM5OlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNxMjAxLmR0cy0yNDAtXFx0XFx0XFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS1zc2kxMzI4LmR0cz0xMT0vIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzLTEyLVxcdG1vZGVsID0gXFxcIlNTSSAxMzI4XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwic3NpLDEzMjhcXFwiLCBcXFwiY29ydGluYSxnZW1pbmlcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHMtMTQtXFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzPTkzPVxcdTAwMjZzYXRhIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXNzaTEzMjguZHRzOjk0OlxcdGNvcnRpbmEsZ2VtaW5pLWF0YS1tdXhtb2RlID0gXFx1MDAzYzBcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHM6OTU6XFx0Y29ydGluYSxnZW1pbmktZW5hYmxlLXNhdGEtYnJpZGdlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktc3NpMTMyOC5kdHMtOTYtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS12ZXJiYXRpbS1zMDh2MTkwMS1kMS5kdHM9MTM9LyB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS12ZXJiYXRpbS1zMDh2MTkwMS1kMS5kdHMtMTQtXFx0bW9kZWwgPSBcXFwiVmVyYmF0aW0gR2lnYWJpdCBFdGhlcm5ldCBIYXJkIERyaXZlIFMwOFYxOTAxLUQxXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0czoxNTpcXHRjb21wYXRpYmxlID0gXFxcInZlcmJhdGltLHMwOHYxOTAxLWQxXFxcIiwgXFxcImNvcnRpbmEsZ2VtaW5pXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cy0xNi1cXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktdmVyYmF0aW0tczA4djE5MDEtZDEuZHRzPTE3NT1cXHRcXHRzYXRhOiBzYXRhQDQ2MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0czoxNzY6XFx0XFx0XFx0Y29ydGluYSxnZW1pbmktYXRhLW11eG1vZGUgPSBcXHUwMDNjMFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS12ZXJiYXRpbS1zMDh2MTkwMS1kMS5kdHM6MTc3OlxcdFxcdFxcdGNvcnRpbmEsZ2VtaW5pLWVuYWJsZS1zYXRhLWJyaWRnZTtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLXZlcmJhdGltLXMwOHYxOTAxLWQxLmR0cy0xNzgtXFx0XFx0XFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzPTExPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktd2JkMTExLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJXaWxpYm9hcmQgV0JELTExMVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwid2lsaWdlYXIsd2lsaWJvYXJkLXdiZDExMVxcXCIsIFxcXCJjb3J0aW5hLGdlbWluaVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQxMTEuZHRzLTE0LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQyMjIuZHRzPTExPS8ge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmktd2JkMjIyLmR0cy0xMi1cXHRtb2RlbCA9IFxcXCJXaWxpYm9hcmQgV0JELTIyMlxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQyMjIuZHRzOjEzOlxcdGNvbXBhdGlibGUgPSBcXFwid2lsaWdlYXIsd2lsaWJvYXJkLXdiZDIyMlxcXCIsIFxcXCJjb3J0aW5hLGdlbWluaVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS13YmQyMjIuZHRzLTE0LVxcdCNhZGRyZXNzLWNlbGxzID0gXFx1MDAzYzFcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTYtI2luY2x1ZGUgXFx1MDAzY2R0LWJpbmRpbmdzL2ludGVycnVwdC1jb250cm9sbGVyL2lycS5oXFx1MDAzZVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo3OiNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9jbG9jay9jb3J0aW5hLGdlbWluaS1jbG9jay5oXFx1MDAzZVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo4OiNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9yZXNldC9jb3J0aW5hLGdlbWluaS1yZXNldC5oXFx1MDAzZVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS05LSNpbmNsdWRlIFxcdTAwM2NkdC1iaW5kaW5ncy9ncGlvL2dwaW8uaFxcdTAwM2VcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0xOT1cXHRcXHRmbGFzaDogZmxhc2hAMzAwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyMDpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWZsYXNoXFxcIiwgXFxcImNmaS1mbGFzaFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTIxLVxcdFxcdFxcdHN5c2NvbiA9IFxcdTAwM2NcXHUwMDI2c3lzY29uXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yOD1cXHRcXHRzeXNjb246IHN5c2NvbkA0MDAwMDAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjI5OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktc3lzY29uXFxcIixcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMzAtXFx0XFx0XFx0XFx0ICAgICBcXFwic3lzY29uXFxcIiwgXFxcInNpbXBsZS1tZmRcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQ0PVxcdFxcdFxcdHBpbmN0cmwge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo0NTpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLXBpbmN0cmxcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS00Ni1cXHRcXHRcXHRcXHRyZWdtYXAgPSBcXHUwMDNjXFx1MDAyNnN5c2NvblxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MTYzPVxcdFxcdHdhdGNoZG9nQDQxMDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MTY0OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktd2F0Y2hkb2dcXFwiLCBcXFwiZmFyYWRheSxmdHdkdDAxMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTE2NS1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg0MTAwMDAwMCAweDEwMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTE5Nz1cXHRcXHRydGNANDUwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToxOTg6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ydGNcXFwiLCBcXFwiZmFyYWRheSxmdHJ0YzAxMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTE5OS1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg0NTAwMDAwMCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MjA4PVxcdFxcdHNhdGE6IHNhdGFANDYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyMDk6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1zYXRhLWJyaWRnZVxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTIxMC1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg0NjAwMDAwMCAweDEwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9MjQ4PVxcdFxcdHBvd2VyLWNvbnRyb2xsZXJANGIwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyNDk6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1wb3dlci1jb250cm9sbGVyXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjUwLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDRiMDAwMDAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yNTY9XFx0XFx0Z3BpbzA6IGdwaW9ANGQwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyNTc6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ncGlvXFxcIiwgXFxcImZhcmFkYXksZnRncGlvMDEwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjU4LVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDRkMDAwMDAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yNjg9XFx0XFx0Z3BpbzE6IGdwaW9ANGUwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyNjk6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ncGlvXFxcIiwgXFxcImZhcmFkYXksZnRncGlvMDEwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjcwLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDRlMDAwMDAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yODA9XFx0XFx0Z3BpbzI6IGdwaW9ANGYwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaToyODE6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ncGlvXFxcIiwgXFxcImZhcmFkYXksZnRncGlvMDEwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktMjgyLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDRmMDAwMDAwIDB4MTAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0yOTI9XFx0XFx0cGNpQDUwMDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MjkzOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktcGNpXFxcIiwgXFxcImZhcmFkYXksZnRwY2kxMDBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0yOTQtXFx0XFx0XFx0LypcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zNTk9XFx0XFx0ZXRoZXJuZXQ6IGV0aGVybmV0QDYwMDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzYwOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zNjEtXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NjAwMDAwMDAgMHg0MDAwXFx1MDAzZSwgLyogR2xvYmFsIHJlZ2lzdGVycywgcXVldWUgKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zNzE9XFx0XFx0XFx0Z21hYzA6IGV0aGVybmV0LXBvcnRAMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjM3MjpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zNzMtXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NjAwMDgwMDAgMHgyMDAwXFx1MDAzZSwgLyogUG9ydCAwIERNQS9UT0UgKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT0zODI9XFx0XFx0XFx0Z21hYzE6IGV0aGVybmV0LXBvcnRAMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjM4MzpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LXBvcnRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS0zODQtXFx0XFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NjAwMGMwMDAgMHgyMDAwXFx1MDAzZSwgLyogUG9ydCAxIERNQS9UT0UgKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT00MDI9XFx0XFx0aWRlMDogaWRlQDYzMDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6NDAzOlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktcGF0YVxcXCIsIFxcXCJmYXJhZGF5LGZ0aWRlMDEwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDA0LVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDYzMDAwMDAwIDB4MTAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k9NDE1PVxcdFxcdGlkZTE6IGlkZUA2MzQwMDAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpOjQxNjpcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLXBhdGFcXFwiLCBcXFwiZmFyYWRheSxmdGlkZTAxMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTQxNy1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MzQwMDAwMCAweDEwMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQ0NT1cXHRcXHRkaXNwbGF5LWNvbnRyb2xsZXJANmEwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo0NDY6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS10dmNcXFwiLCBcXFwiZmFyYWRheSx0dmUyMDBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaS00NDctXFx0XFx0XFx0cmVnID0gXFx1MDAzYzB4NmEwMDAwMDAgMHgxMDAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaT00NTg9XFx0XFx0dXNiMDogdXNiQDY4MDAwMDAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6NDU5OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktdXNiXFxcIiwgXFxcImZhcmFkYXksZm90ZzIwMFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTQ2MC1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2ODAwMDAwMCAweDEwMDBcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTQ4MT1cXHRcXHR1c2IxOiB1c2JANjkwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTo0ODI6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS11c2JcXFwiLCBcXFwiZmFyYWRheSxmb3RnMjAwXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2ktNDgzLVxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDY5MDAwMDAwIDB4MTAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9tYWNoLWdlbWluaS9ib2FyZC1kdC5jPTU1PXN0YXRpYyBjb25zdCBjaGFyICpnZW1pbmlfYm9hcmRfY29tcGF0W10gPSB7XFxuYXJjaC9hcm0vbWFjaC1nZW1pbmkvYm9hcmQtZHQuYzo1NjpcXHRcXFwiY29ydGluYSxnZW1pbmlcXFwiLFxcbmFyY2gvYXJtL21hY2gtZ2VtaW5pL2JvYXJkLWR0LmMtNTctXFx0TlVMTCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTg6NTguODYxNzE4MjU1WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjgyMzIyOTY4ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqVW5yZWFjaGFibGUgQ29kZSBBbmFseXNpczogQ29ydGluYSBHZW1pbmkgRXRoZXJuZXQgb24gYW1kNjQqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCBhIENvcnRpbmEgR2VtaW5pIEV0aGVybmV0IGRyaXZlciBjaGFuZ2UgdG8gYW5hbHl6ZS4gVGhlIGNvZGUgbG9va3MgbGlrZSBpdCdzIHNwZWNpZmljYWxseSBmb3IgdGhlIGBhcmNoL2FybS9tYWNoLWdlbWluaWAgYW5kIGBhcmNoL2FybS9ib290L2R0cy9nZW1pbmkvYCBBUk0gcGxhdGZvcm0uIE15IGltbWVkaWF0ZSBjb25jZXJuLCBnaXZlbiB0aGUgXCJUYXJnZXQgYXJjaGl0ZWN0dXJlOiBhbWQ2NFwiIGluc3RydWN0aW9uLCBpcyB3aGV0aGVyIHRoaXMgY29kZSBpcyBldmVuICpyZWFjaGFibGUqIGluIGEgc3RhbmRhcmQgZnV6emluZyBlbnZpcm9ubWVudC5cblxuSSBjaGVjayB0aGUgS2NvbmZpZyBhbmQgc2VlIHRoYXQgYEdFTUlOSV9FVEhFUk5FVGAgZGVwZW5kcyBvbiBgT0ZgIChEZXZpY2UgVHJlZSkgYW5kIGBIQVNfSU9NRU1gLiBhbWQ2NCAqY2FuKiBoYXZlIGBPRmAgZW5hYmxlZCwgYnV0IGl0J3Mgbm90IHR5cGljYWwgdW5sZXNzIHNwZWNpZmljYWxseSBjb25maWd1cmVkIGZvciBpdCwgbGlrZSB0aHJvdWdoIGBPRl9VTklUVEVTVGAuIFJlZ2FyZGxlc3MsIGV2ZW4gaWYgSSBjb3VsZCBjb21waWxlIHRoaXMgb24gYW1kNjQsIHRoZSByZWFsIGlzc3VlIGlzIHRoZSBoYXJkd2FyZS5cblxuVGhlIGluc3RydWN0aW9ucyBhcmUgY2xlYXI6ICpyZWFjaGFiaWxpdHkqIGlzIHRoZSBwcmltYXJ5IGdhdGUuIEkgcmV2aXNpdCBTZWN0aW9ucyAxIGFuZCAyIG9mIHRoZSBndWlkZWxpbmVzLiBUaGV5IHN0YXRlIHRoYXQgZnV6emluZyBpcyBvbmx5IHZhbHVhYmxlIGZvciBjb2RlIHRoYXQgY2FuICpleGVjdXRlKiBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VKSwgZW11bGF0aW5nIHNvZnR3YXJlIGRldmljZXMgbGlrZSBuZXRkZXYgb3IgdHVuL3RhcC5cblxuUmVhZGluZyB0aHJvdWdoIHRoZSBpbnN0cnVjdGlvbnMsIHRoaXMgaXMgYSBjbGVhciBjYXNlIG9mIFwic3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlXCIuICBUaGUgQ29ydGluYSBHZW1pbmkgaXMgYW4gb24tY2hpcCBFdGhlcm5ldCBjb250cm9sbGVyIGZvciB0aGUgQ29ydGluYSBTTDM1MXggQVJNIFNvQywgdXNpbmcgRGV2aWNlIFRyZWUgKGBjb3J0aW5hLGdlbWluaS1ldGhlcm5ldGApLiBUaGlzIG1lYW5zIGl0IHJlbGllcyBvbiAqc3BlY2lmaWMqIHBoeXNpY2FsIGhhcmR3YXJlLCBvciAqdmVyeSogc3BlY2lmaWMgZW11bGF0aW9uIG9mIHRoZSBBUk0gU29DLiBTdGFuZGFyZCBRRU1VIG9yIEdDRSB2aXJ0dWFsIG1hY2hpbmVzIGZvciBhbWQ2NCAqZG8gbm90KiBlbXVsYXRlIHRoZSBHZW1pbmkgR2lnYWJpdCBFdGhlcm5ldCBoYXJkd2FyZS4gRXZlbiBpZiBJIGNvdWxkIHNvbWVob3cgZW5hYmxlIGBHRU1JTklfRVRIRVJORVRgIG9uIGFtZDY0LCB0aGUgZHJpdmVyIHdvdWxkIG5ldmVyIGJlIGFibGUgdG8gcmVhY2ggYW55IG9mIHRoZSBoYXJkd2FyZSByZWdpc3RlcnMuXG5cbkFuZCBqdXN0IHRvIHJlaXRlcmF0ZTogVGhlIGluc3RydWN0aW9ucyBhcmUgcXVpdGUgZXhwbGljaXQuIFRoZSBwcm92aWRlZCBjaGFuZ2VzIG1vZGlmeSBgZ21hY19nZXRfcXVldWVfcGFnZWAsIGBnbWFjX3J4YCwgYGdtYWNfbmFwaV9wb2xsYCwgYW5kIGBnbWFjX2lycWAgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jYC4gVGhhdCdzIHRoZSBkcml2ZXIgZm9yIHRoaXMgdmVyeSBzcGVjaWZpYyBBUk0tYmFzZWQgY29udHJvbGxlci4gVGhlc2UgY2hhbmdlcyBhcmUgc3F1YXJlbHkgaW4gXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmVcIiBhbmQgXCJDb2RlIHBhdGhzIGV4Y2x1c2l2ZSB0byBhcmNoaXRlY3R1cmVzIG90aGVyIHRoYW4gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmVcIiBjYXRlZ29yaWVzLiAgVGhlcmUncyBubyBwb2ludCBpbiBmdXp6aW5nIHRoaXMgb24gYW1kNjQuICBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgaWYgdGhlcmUncyAqYW55KiB2aXJ0dWFsIGJ1cyBvciB0ZXN0IGRyaXZlciBmb3IgY29ydGluYSBnZW1pbmkganVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGJ1dCBJJ20gY29uZmlkZW50IGluIG15IGFzc2Vzc21lbnQuIEknbGwgZ3JlcCBmb3IgXCJnZW1pbmktZXRoZXJuZXRcIiBqdXN0IHRvIG1ha2Ugc3VyZS4gSSdtIHJldHVybmluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM5MjgsIk91dHB1dFRva2VucyI6MTksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMDk4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU5OjA3LjA5NDAxODE3M1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTcwMTg2NDI3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJnZW1pbmktZXRoZXJuZXRcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbCNcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbD0xNz1wcm9wZXJ0aWVzOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xOC0gIGNvbXBhdGlibGU6XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sOjE5OiAgICBjb25zdDogY29ydGluYSxnZW1pbmktZXRoZXJuZXRcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMjAtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw9Mzc9cGF0dGVyblByb3BlcnRpZXM6XFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtNDUtICAgICAgY29tcGF0aWJsZTpcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw6NDY6ICAgICAgICBjb25zdDogY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC00Ny1cXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbD04NT1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbC0xMDMtICAgIGV0aGVybmV0QDYwMDAwMDAwIHtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWw6MTA0OiAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ldGhlcm5ldFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTEwNS0gICAgICAgIHJlZyA9IFxcdTAwM2MweDYwMDAwMDAwIDB4NDAwMFxcdTAwM2UsIC8qIEdsb2JhbCByZWdpc3RlcnMsIHF1ZXVlICovXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTEyLSAgICAgICAgZ21hYzA6IGV0aGVybmV0LXBvcnRAMCB7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sOjExMzogICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ldGhlcm5ldC1wb3J0XFxcIjtcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2NvcnRpbmEsZ2VtaW5pLWV0aGVybmV0LnlhbWwtMTE0LSAgICAgICAgICAgICAgICByZWcgPSBcXHUwMDNjMHg2MDAwODAwMCAweDIwMDBcXHUwMDNlLCAvKiBQb3J0IDAgRE1BL1RPRSAqL1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTEyNS0gICAgICAgIGdtYWMxOiBldGhlcm5ldC1wb3J0QDEge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbDoxMjY6ICAgICAgICAgICAgICAgIGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCI7XFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9jb3J0aW5hLGdlbWluaS1ldGhlcm5ldC55YW1sLTEyNy0gICAgICAgICAgICAgICAgcmVnID0gXFx1MDAzYzB4NjAwMGMwMDAgMHgyMDAwXFx1MDAzZSwgLyogUG9ydCAxIERNQS9UT0UgKi9cXG4tLVxcbk1BSU5UQUlORVJTPTI4ODI9RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL2dlbWluaS55YW1sXFxuTUFJTlRBSU5FUlM6Mjg4MzpGOlxcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvY29ydGluYSxnZW1pbmktZXRoZXJuZXQueWFtbFxcbk1BSU5UQUlORVJTLTI4ODQtRjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvcGluY3RybC9jb3J0aW5hLGdlbWluaS1waW5jdHJsLnR4dFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM1OT1cXHRcXHRldGhlcm5ldDogZXRoZXJuZXRANjAwMDAwMDAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL2dlbWluaS9nZW1pbmkuZHRzaTozNjA6XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJjb3J0aW5hLGdlbWluaS1ldGhlcm5ldFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTM2MS1cXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MDAwMDAwMCAweDQwMDBcXHUwMDNlLCAvKiBHbG9iYWwgcmVnaXN0ZXJzLCBxdWV1ZSAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM3MT1cXHRcXHRcXHRnbWFjMDogZXRoZXJuZXQtcG9ydEAwIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzcyOlxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTM3My1cXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MDAwODAwMCAweDIwMDBcXHUwMDNlLCAvKiBQb3J0IDAgRE1BL1RPRSAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpPTM4Mj1cXHRcXHRcXHRnbWFjMTogZXRoZXJuZXQtcG9ydEAxIHtcXG5hcmNoL2FybS9ib290L2R0cy9nZW1pbmkvZ2VtaW5pLmR0c2k6MzgzOlxcdFxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvZ2VtaW5pL2dlbWluaS5kdHNpLTM4NC1cXHRcXHRcXHRcXHRyZWcgPSBcXHUwMDNjMHg2MDAwYzAwMCAweDIwMDBcXHUwMDNlLCAvKiBQb3J0IDEgRE1BL1RPRSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNjI2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI3LVxcdHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jOjI2Mjg6XFx0XFx0LmNvbXBhdGlibGUgPSBcXFwiY29ydGluYSxnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjI5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jPTI2MzQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZ2VtaW5pX2V0aGVybmV0X3BvcnRfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjYzNS1cXHQuZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmM6MjYzNjpcXHRcXHQubmFtZSA9IFxcXCJnZW1pbmktZXRoZXJuZXQtcG9ydFxcXCIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYy0yNjM3LVxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IGdlbWluaV9ldGhlcm5ldF9wb3J0X29mX21hdGNoLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYz0yNjkwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGdlbWluaV9ldGhlcm5ldF9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NvcnRpbmEvZ2VtaW5pLmMtMjY5MS1cXHR7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYzoyNjkyOlxcdFxcdC5jb21wYXRpYmxlID0gXFxcImNvcnRpbmEsZ2VtaW5pLWV0aGVybmV0XFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLTI2OTMtXFx0fSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTRUMjM6NTk6MDguNzk1ODg3OTU2WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjQ1ODk4ODc3MjEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQ29ydGluYSBHZW1pbmkgRXRoZXJuZXQgRHJpdmVyKipcblxuT2theSwgc28gSSd2ZSBleGFtaW5lZCB0aGlzIHBhdGNoLCBhbmQgaGVyZSdzIG15IHRha2UuIEl0J3MgZm9jdXNlZCBlbnRpcmVseSBvbiB0aGUgQ29ydGluYSBTeXN0ZW1zIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIGV0aGVybmV0IGNvbnRyb2xsZXIuIE5vdGhpbmcgZWxzZSBpbiB0aGUgZW52aXJvbm1lbnQgc2VlbXMgdG8gYmUgcmVsYXRlZCB0byBpdCwgd2hpY2ggaXMgYW4gaW1wb3J0YW50IGZpcnN0IGNoZWNrLiBDcnVjaWFsbHksIEkga25vdyB0aGF0IHRoaXMgZHJpdmVyIGlzIGEgcGxhdGZvcm0gZGV2aWNlIGRyaXZlciwgd2hpY2ggbWVhbnMgaXQgcmVsaWVzIG9uIHNwZWNpZmljLCBwaHlzaWNhbCBoYXJkd2FyZSwgc3BlY2lmaWNhbGx5IGFuIEFSTSBTb0MuIEl0J3Mgbm90IHNvbWV0aGluZyBJIGNhbiBqdXN0IHNwaW4gdXAgYW5kIHRlc3QgaW4gYSBzdGFuZGFyZCwgdmlydHVhbGl6ZWQgYW1kNjQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLiBUaGF0J3MgYSBkZWFsYnJlYWtlci5cblxuTG9va2luZyBhdCB0aGUgbmVnYXRpdmUgY3JpdGVyaWEsIGl0IHBlcmZlY3RseSBmaXRzOiB1bnJlYWNoYWJsZSBoYXJkd2FyZSwgYmVjYXVzZSBpdCdzIHRpZWQgdG8gYW4gQVNJQyBvciBTb0MgdGhhdCdzIG5vdCBlbXVsYXRlZCBoZXJlLiBBbmQgdGhlIGNvZGUgcGF0aHMgYXJlIGV4Y2x1c2l2ZSB0byBBUk0sIHdoaWxlIG15IHRlc3RpbmcgZW52aXJvbm1lbnQgaXMgYW1kNjQuXG5cblRoZXJlZm9yZSwgYFdvcnRoRnV6emluZ2AgaGFzIHRvIGJlIGBmYWxzZWAuIE5vIHBvaW50IHNwZW5kaW5nIHRoZSBjeWNsZXMgb24gc29tZXRoaW5nIEkgY2FuJ3QgZXZlbiBnZXQgdG8gcnVuLlxuXG5Ob3csIEkgbmVlZCB0byByZWNvcmQgbXkgcmVhc29uaW5nIGFuZCB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHRlc3QgcmVzdWx0cy4gTGV0IG1lIHNldCB0aGVzZSBwYXJhbWV0ZXJzOlxuXG4qICAgYFdvcnRoRnV6emluZ2A6IGBmYWxzZWBcbiogICBgRm9jdXNTeW1ib2xzYDogYFtdYCAoZW1wdHkgbGlzdCwgYmVjYXVzZSB0aGVyZSBhcmUgbm8gc3BlY2lmaWMgc3ltYm9scyB0aGF0IG5lZWQgdG8gYmUgZm9jdXNlZCBvbilcbiogICBgRW5hYmxlQ29uZmlnc2A6IGBbXWAgKGFsc28gZW1wdHksIGFzIHRoZXJlIGFyZSBubyBrZXJuZWwgY29uZmlndXJhdGlvbnMgdGhhdCB3b3VsZCBtYWtlIGl0IG1vcmUgdGVzdGFibGUpXG4qICAgYFJlYXNvbmluZ2A6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jYCwgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkZXZpY2UgZHJpdmVyIGZvciB0aGUgQ29ydGluYSBHZW1pbmkgKFNMMzUxeCkgQVJNIFNvQyBHaWdhYml0IEV0aGVybmV0IGNvbnRyb2xsZXIuIEl0IHJlcXVpcmVzIHNwZWNpZmljIHBoeXNpY2FsIEFSTSBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgaXMgdW5yZWFjaGFibGUgb24gdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUgKGFtZDY0KS5cIlxuXG5Pa2F5LCBJJ20gcmVhZHkgdG8gY2FsbCBgc2V0LXJlc3VsdHNgIGFuZCBsb2cgdGhlc2UgZmluZGluZ3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MzMwLCJPdXRwdXRUb2tlbnMiOjExOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNFQyMzo1OToxMy4zODU3Nzg3MjdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTUzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBkcml2ZXJzL25ldC9ldGhlcm5ldC9jb3J0aW5hL2dlbWluaS5jLCB3aGljaCBpcyBhIHBsYXRmb3JtIGRyaXZlciBmb3IgdGhlIENvcnRpbmEgR2VtaW5pIChTTDM1MXgpIEFSTSBTb0MgR2lnYWJpdCBFdGhlcm5ldCBjb250cm9sbGVyLiBUaGlzIGhhcmR3YXJlIGlzIHNwZWNpZmljIHRvIENvcnRpbmEgR2VtaW5pIEFSTSBwbGF0Zm9ybXMgYW5kIGlzIG5laXRoZXIgcHJlc2VudCBub3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgb24gYW1kNjQuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZHJpdmVycy9uZXQvZXRoZXJuZXQvY29ydGluYS9nZW1pbmkuYywgd2hpY2ggaXMgYSBwbGF0Zm9ybSBkcml2ZXIgZm9yIHRoZSBDb3J0aW5hIEdlbWluaSAoU0wzNTF4KSBBUk0gU29DIEdpZ2FiaXQgRXRoZXJuZXQgY29udHJvbGxlci4gVGhpcyBoYXJkd2FyZSBpcyBzcGVjaWZpYyB0byBDb3J0aW5hIEdlbWluaSBBUk0gcGxhdGZvcm1zIGFuZCBpcyBuZWl0aGVyIHByZXNlbnQgbm9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIG9uIGFtZDY0LiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE0VDIzOjU5OjEzLjM4NTgwODk2N1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowwp2ws[1] Phase: Running StartedAt: 2026-09-14 23:59:23 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwp2ws[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-14 23:59:23 +0000 UTC FinishedAt: 2026-09-14 23:59:32 +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,}