Name: series-workflowpfc5b Phase: Succeeded StartedAt: 2026-08-07 08:52:51 +0000 UTC FinishedAt: 2026-08-07 12:37:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[0] Phase: Succeeded StartedAt: 2026-08-07 08:52:51 +0000 UTC FinishedAt: 2026-08-07 08:55:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[0].run-triage Phase: Succeeded StartedAt: 2026-08-07 08:52:51 +0000 UTC FinishedAt: 2026-08-07 08:55:57 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USBIP_VHCI_HCD", "USBIP_CORE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USBIP_VHCI_HCD", "USBIP_CORE" ], "series_id": "58f5b609-4c3e-4caf-b848-3472277a28f6" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "vhci_urb_dequeue", "vhci_unlink_timeout", "vhci_rx_loop", "vhci_shutdown_connection" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQklQX1ZIQ0lfSENEJiMzNDssCiAgICAmIzM0O1VTQklQX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aGNpX3VyYl9kZXF1ZXVlJiMzNDssCiAgICAmIzM0O3ZoY2lfdW5saW5rX3RpbWVvdXQmIzM0OywKICAgICYjMzQ7dmhjaV9yeF9sb29wJiMzNDssCiAgICAmIzM0O3ZoY2lfc2h1dGRvd25fY29ubmVjdGlvbiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBtZWNoYW5pc20gZm9yIFVSQiB1bmxpbmtpbmcgaW4gdGhlIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciAodmhjaSkgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyBwb3RlbnRpYWwgaGFuZ3Mgd2hlbiB1bmxpbmtpbmcgVVJCcyBieSBpbnRyb2R1Y2luZyBhIHRpbWVyIHRoYXQgdHJpZ2dlcnMgYSBUQ1AgZXJyb3IgZXZlbnQgaWYgdGhlIHVubGluayBvcGVyYXRpb24gdGFrZXMgdG9vIGxvbmcuIFRoZSBVU0IvSVAgZHJpdmVyIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGlzIGEgdmFsaWQgdGFyZ2V0IGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNGJhOWU2Nzc3M2MzMjZhM2E0YjExYjVlY2FiZDI3ZWRmNTMyZTVkNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDg6NTQ6MzAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oXG5pbmRleCA1NjU5ZGNlMTUyNmU4Li45OGUzYmZiMjliNmJmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcbkBAIC0xMSw2ICYjNDM7MTEsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2xpc3QuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NwaW5sb2NrLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zeXNmcy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3RpbWVyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC90eXBlcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvdXNiLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC91c2IvaGNkLmhcdTAwM2VcbkBAIC02NSw2ICYjNDM7NjYsOSBAQCBzdHJ1Y3QgdmhjaV91bmxpbmsge1xuIFxuIFx0Lyogc2VxbnVtIG9mIHRoZSB1bmxpbmsgdGFyZ2V0ICovXG4gXHR1bnNpZ25lZCBsb25nIHVubGlua19zZXFudW07XG4mIzQzO1xuJiM0MztcdHN0cnVjdCB0aW1lcl9saXN0IHVubGlua190aW1lcjtcbiYjNDM7XHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXY7XG4gfTtcbiBcbiBlbnVtIGh1Yl9zcGVlZCB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmNcbmluZGV4IDM5ZThmYWY0YzE4Y2QuLjVjYzI3NmY0NmQ1MWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jXG5AQCAtODkyLDYgJiM0Mzs4OTIsMTQgQEAgc3RhdGljIGludCB2aGNpX3VyYl9lbnF1ZXVlKHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1cmIgKnVyYiwgZ2ZwX3QgbWVtX2ZsYWdcbiAgKlx0XHQ9XHUwMDNlIHNlbmQgUkVUX1VOTElOS1xuICAqXG4gICovXG4mIzQzO3N0YXRpYyB2b2lkIHZoY2lfdW5saW5rX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdmhjaV91bmxpbmsgKnVubGluayA9IHRpbWVyX2NvbnRhaW5lcl9vZih1bmxpbmssIHQsIHVubGlua190aW1lcik7XG4mIzQzO1x0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gdW5saW5rLVx1MDAzZXZkZXY7XG4mIzQzO1xuJiM0MztcdHVzYmlwX2V2ZW50X2FkZChcdTAwMjZ2ZGV2LVx1MDAzZXVkLCBWREVWX0VWRU5UX0VSUk9SX1RDUCk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCB2aGNpX3VyYl9kZXF1ZXVlKHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1cmIgKnVyYiwgaW50IHN0YXR1cylcbiB7XG4gXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XG5AQCAtOTY0LDYgJiM0Mzs5NzIsMTAgQEAgc3RhdGljIGludCB2aGNpX3VyYl9kZXF1ZXVlKHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1cmIgKnVyYiwgaW50IHN0YXR1cylcbiBcdFx0XHRkZXZfaW5mbyhoY2RfZGV2KGhjZCksIFwmIzM0O3NlcW51bSBtYXhcXG5cJiMzNDspO1xuIFxuIFx0XHR1bmxpbmstXHUwMDNldW5saW5rX3NlcW51bSA9IHByaXYtXHUwMDNlc2VxbnVtO1xuJiM0MztcdFx0dW5saW5rLVx1MDAzZXZkZXYgPSB2ZGV2O1xuJiM0MztcbiYjNDM7XHRcdHRpbWVyX3NldHVwKFx1MDAyNnVubGluay1cdTAwM2V1bmxpbmtfdGltZXIsIHZoY2lfdW5saW5rX3RpbWVvdXQsIDApO1xuJiM0MztcdFx0bW9kX3RpbWVyKFx1MDAyNnVubGluay1cdTAwM2V1bmxpbmtfdGltZXIsIGppZmZpZXMgJiM0MzsgbXNlY3NfdG9famlmZmllcyg0MDAwKSk7XG4gXG4gXHRcdC8qIHNlbmQgY21kX3VubGluayBhbmQgdHJ5IHRvIGNhbmNlbCB0aGUgcGVuZGluZyBVUkIgaW4gdGhlXG4gXHRcdCAqIHBlZXIgKi9cbkBAIC05OTcsNyAmIzQzOzEwMDksMTIgQEAgc3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbiBcdFx0dXJiID0gcGlja3VwX3VyYl9hbmRfZnJlZV9wcml2KHZkZXYsIHVubGluay1cdTAwM2V1bmxpbmtfc2VxbnVtKTtcbiBcdFx0aWYgKCF1cmIpIHtcbiBcdFx0XHRsaXN0X2RlbChcdTAwMjZ1bmxpbmstXHUwMDNlbGlzdCk7XG4mIzQzO1x0XHRcdHNwaW5fdW5sb2NrKFx1MDAyNnZkZXYtXHUwMDNlcHJpdl9sb2NrKTtcbiYjNDM7XHRcdFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZ2aGNpLVx1MDAzZWxvY2ssIGZsYWdzKTtcbiYjNDM7XHRcdFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dW5saW5rLVx1MDAzZXVubGlua190aW1lcik7XG4gXHRcdFx0a2ZyZWUodW5saW5rKTtcbiYjNDM7XHRcdFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG4mIzQzO1x0XHRcdHNwaW5fbG9jayhcdTAwMjZ2ZGV2LVx1MDAzZXByaXZfbG9jayk7XG4gXHRcdFx0Y29udGludWU7XG4gXHRcdH1cbiBcbkBAIC0xMDEwLDYgJiM0MzsxMDI3LDcgQEAgc3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbiBcdFx0c3Bpbl91bmxvY2soXHUwMDI2dmRldi1cdTAwM2Vwcml2X2xvY2spO1xuIFx0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnZoY2ktXHUwMDNlbG9jaywgZmxhZ3MpO1xuIFxuJiM0MztcdFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dW5saW5rLVx1MDAzZXVubGlua190aW1lcik7XG4gXHRcdHVzYl9oY2RfZ2l2ZWJhY2tfdXJiKGhjZCwgdXJiLCB1cmItXHUwMDNlc3RhdHVzKTtcbiBcbiBcdFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXG5pbmRleCBhNjc4ZTdjODk4Mzc1Li42NThhNDY0YTE3NzQxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmNcbkBAIC0xNzgsNiAmIzQzOzE3OCw3IEBAIHN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbiBcdFx0dXNiX2hjZF9naXZlYmFja191cmIodmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSwgdXJiLCB1cmItXHUwMDNlc3RhdHVzKTtcbiBcdH1cbiBcbiYjNDM7XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZ1bmxpbmstXHUwMDNldW5saW5rX3RpbWVyKTtcbiBcdGtmcmVlKHVubGluayk7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JJUF9WSENJX0hDRCYjMzQ7LAogICAgJiMzNDtVU0JJUF9DT1JFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmhjaV91cmJfZGVxdWV1ZSYjMzQ7LAogICAgJiMzNDt2aGNpX3VubGlua190aW1lb3V0JiMzNDssCiAgICAmIzM0O3ZoY2lfcnhfbG9vcCYjMzQ7LAogICAgJiMzNDt2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgbWVjaGFuaXNtIGZvciBVUkIgdW5saW5raW5nIGluIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgKHZoY2kpIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIGhhbmdzIHdoZW4gdW5saW5raW5nIFVSQnMgYnkgaW50cm9kdWNpbmcgYSB0aW1lciB0aGF0IHRyaWdnZXJzIGEgVENQIGVycm9yIGV2ZW50IGlmIHRoZSB1bmxpbmsgb3BlcmF0aW9uIHRha2VzIHRvbyBsb25nLiBUaGUgVVNCL0lQIGRyaXZlciBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBpcyBhIHZhbGlkIHRhcmdldCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDRiYTllNjc3NzNjMzI2YTNhNGIxMWI1ZWNhYmQyN2VkZjUzMmU1ZDUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEF1ZyA3IDA4OjU0OjMwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oCmluZGV4IDU2NTlkY2UxNTI2ZTguLjk4ZTNiZmIyOWI2YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgKQEAgLTExLDYgJiM0MzsxMSw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgvbGlzdC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NwaW5sb2NrLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvc3lzZnMuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvdGltZXIuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC90eXBlcy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3VzYi5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3VzYi9oY2QuaCZndDsKQEAgLTY1LDYgJiM0Mzs2Niw5IEBAIHN0cnVjdCB2aGNpX3VubGluayB7CiAKIAkvKiBzZXFudW0gb2YgdGhlIHVubGluayB0YXJnZXQgKi8KIAl1bnNpZ25lZCBsb25nIHVubGlua19zZXFudW07CiYjNDM7CiYjNDM7CXN0cnVjdCB0aW1lcl9saXN0IHVubGlua190aW1lcjsKJiM0MzsJc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2OwogfTsKIAogZW51bSBodWJfc3BlZWQgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMKaW5kZXggMzllOGZhZjRjMThjZC4uNWNjMjc2ZjQ2ZDUxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jCkBAIC04OTIsNiAmIzQzOzg5MiwxNCBAQCBzdGF0aWMgaW50IHZoY2lfdXJiX2VucXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBnZnBfdCBtZW1fZmxhZwogICoJCT0mZ3Q7IHNlbmQgUkVUX1VOTElOSwogICoKICAqLwomIzQzO3N0YXRpYyB2b2lkIHZoY2lfdW5saW5rX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgdmhjaV91bmxpbmsgKnVubGluayA9IHRpbWVyX2NvbnRhaW5lcl9vZih1bmxpbmssIHQsIHVubGlua190aW1lcik7CiYjNDM7CXN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IHVubGluay0mZ3Q7dmRldjsKJiM0MzsKJiM0MzsJdXNiaXBfZXZlbnRfYWRkKCZhbXA7dmRldi0mZ3Q7dWQsIFZERVZfRVZFTlRfRVJST1JfVENQKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKQogewogCXN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTsKQEAgLTk2NCw2ICYjNDM7OTcyLDEwIEBAIHN0YXRpYyBpbnQgdmhjaV91cmJfZGVxdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGludCBzdGF0dXMpCiAJCQlkZXZfaW5mbyhoY2RfZGV2KGhjZCksICYjMzQ7c2VxbnVtIG1heFxuJiMzNDspOwogCiAJCXVubGluay0mZ3Q7dW5saW5rX3NlcW51bSA9IHByaXYtJmd0O3NlcW51bTsKJiM0MzsJCXVubGluay0mZ3Q7dmRldiA9IHZkZXY7CiYjNDM7CiYjNDM7CQl0aW1lcl9zZXR1cCgmYW1wO3VubGluay0mZ3Q7dW5saW5rX3RpbWVyLCB2aGNpX3VubGlua190aW1lb3V0LCAwKTsKJiM0MzsJCW1vZF90aW1lcigmYW1wO3VubGluay0mZ3Q7dW5saW5rX3RpbWVyLCBqaWZmaWVzICYjNDM7IG1zZWNzX3RvX2ppZmZpZXMoNDAwMCkpOwogCiAJCS8qIHNlbmQgY21kX3VubGluayBhbmQgdHJ5IHRvIGNhbmNlbCB0aGUgcGVuZGluZyBVUkIgaW4gdGhlCiAJCSAqIHBlZXIgKi8KQEAgLTk5Nyw3ICYjNDM7MTAwOSwxMiBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LAogCQl1cmIgPSBwaWNrdXBfdXJiX2FuZF9mcmVlX3ByaXYodmRldiwgdW5saW5rLSZndDt1bmxpbmtfc2VxbnVtKTsKIAkJaWYgKCF1cmIpIHsKIAkJCWxpc3RfZGVsKCZhbXA7dW5saW5rLSZndDtsaXN0KTsKJiM0MzsJCQlzcGluX3VubG9jaygmYW1wO3ZkZXYtJmd0O3ByaXZfbG9jayk7CiYjNDM7CQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYW1wO3ZoY2ktJmd0O2xvY2ssIGZsYWdzKTsKJiM0MzsJCQl0aW1lcl9kZWxldGVfc3luYygmYW1wO3VubGluay0mZ3Q7dW5saW5rX3RpbWVyKTsKIAkJCWtmcmVlKHVubGluayk7CiYjNDM7CQkJc3Bpbl9sb2NrX2lycXNhdmUoJmFtcDt2aGNpLSZndDtsb2NrLCBmbGFncyk7CiYjNDM7CQkJc3Bpbl9sb2NrKCZhbXA7dmRldi0mZ3Q7cHJpdl9sb2NrKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTEwMTAsNiAmIzQzOzEwMjcsNyBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LAogCQlzcGluX3VubG9jaygmYW1wO3ZkZXYtJmd0O3ByaXZfbG9jayk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDt2aGNpLSZndDtsb2NrLCBmbGFncyk7CiAKJiM0MzsJCXRpbWVyX2RlbGV0ZV9zeW5jKCZhbXA7dW5saW5rLSZndDt1bmxpbmtfdGltZXIpOwogCQl1c2JfaGNkX2dpdmViYWNrX3VyYihoY2QsIHVyYiwgdXJiLSZndDtzdGF0dXMpOwogCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZhbXA7dmhjaS0mZ3Q7bG9jaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jCmluZGV4IGE2NzhlN2M4OTgzNzUuLjY1OGE0NjRhMTc3NDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMKQEAgLTE3OCw2ICYjNDM7MTc4LDcgQEAgc3RhdGljIHZvaWQgdmhjaV9yZWN2X3JldF91bmxpbmsoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LAogCQl1c2JfaGNkX2dpdmViYWNrX3VyYih2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIsIHVyYi0mZ3Q7c3RhdHVzKTsKIAl9CiAKJiM0MzsJdGltZXJfZGVsZXRlX3N5bmMoJmFtcDt1bmxpbmstJmd0O3VubGlua190aW1lcik7CiAJa2ZyZWUodW5saW5rKTsKIH0KIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTA4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjc0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFVTQi9JUCB2aGNpIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBtb2RpZnlpbmcgY29yZSBVU0IvSVAgdmhjaSBmaWxlczogYHZoY2lfaGNkLmNgLCBgdmhjaV9yeC5jYCwgYW5kIGB2aGNpLmhgLiBUaGUgZ2lzdCBpcyB0aGV5JiMzOTtyZSBhZGRpbmcgYSB0aW1lb3V0IG1lY2hhbmlzbSwgc3BlY2lmaWNhbGx5IGEgdGltZXIgY2FsbGVkIGB1bmxpbmtfdGltZXJgLCB0byB0aGUgYHN0cnVjdCB2aGNpX3VubGlua2AuIFRoaXMgaXMgaW50ZW5kZWQgdG8gYWRkcmVzcyB0aW1lb3V0cyBkdXJpbmcgVVJCIHVubGlua2luZyB3aXRoaW4gdGhlIHZoY2ksIHdoaWNoIGlzIGEga2V5IGZ1bmN0aW9uIG9mIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIuCgpFc3NlbnRpYWxseSwgd2hlbiBgdmhjaV91cmJfZGVxdWV1ZWAgZ2V0cyBjYWxsZWQsIGl0IHNldHMgdXAgYW5kICpzdGFydHMqIHRoaXMgdGltZXIuICBJZiB0aGlzIHRpbWVyIGV4cGlyZXMsIGB2aGNpX3VubGlua190aW1lb3V0YCBraWNrcyBpbiBhbmQgdGhlbiBjcmVhdGVzIGEgYFZERVZfRVZFTlRfRVJST1JfVENQYCBldmVudC4gVGhlIHRpbWVyJiMzOTtzIGxpZmVjeWNsZSBpcyB3ZWxsLWRlZmluZWQsIGJlaW5nIGRlbGV0ZWQgaW4gdGhlIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgIGFuZCBgdmhjaV9yZWN2X3JldF91bmxpbmtgIGZ1bmN0aW9ucy4gVGhpcyB0aW1lb3V0IGlzIGEgZ29vZCBtb3ZlLCBtYWtlcyB0aGUgZHJpdmVyIG1vcmUgcm9idXN0IQoKTm93LCB0aGUgZnVuY3Rpb25hbCBjaGFuZ2UgaXMgdGhhdCB0aGlzIGRpcmVjdGx5IGltcGFjdHMgdGhlIFVTQi9JUCBkcml2ZXIgYW5kIHRoYXQmIzM5O3MgKmludGVyZXN0aW5nKi4uLiBnaXZlbiB0aGF0IHdlIGtub3cgdGhhdCBVU0IvSVAgaXMgYSB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciB3aGljaCBpcyBkZWZpbml0ZWx5IGluIHRoZSBmdXp6aW5nIHNwb3RsaWdodC4gIFdlJiMzOTt2ZSBnb3Qgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3IgaXQuICBUaGUgZmFjdCB0aGF0IHdlIGFyZSBpbXByb3ZpbmcgdGhlIGVycm9yIGhhbmRsaW5nIG9mIGEgY29tcG9uZW50IGtub3duIHRvIGJlIGEgdGFyZ2V0IGZvciBmdXp6aW5nIG1lYW5zIGl0JiMzOTtzIHByZXR0eSBjbGVhciB3ZSBuZWVkIHRvIG1hcmsgdGhpcyBhcyBgV29ydGhGdXp6aW5nPXRydWVgLgoKTmV4dCBzdGVwLCBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgS2NvbmZpZyBvcHRpb25zIHRoYXQgZW5hYmxlIHRoZSBVU0IvSVAgdmhjaS4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCBhbmQgc2VhcmNoIGZvciByZWZlcmVuY2VzIHRvIGB2aGNpX2hjZC5jYCB3aXRoaW4gdGhlIGBkcml2ZXJzL3VzYi91c2JpcC9NYWtlZmlsZWAgYW5kIGBLY29uZmlnYCBmaWxlcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50IGZvciBlbmFibGluZyBhbmQgdGVzdGluZyB0aGlzIG5ldyB0aW1lb3V0IGJlaGF2aW9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZoY2lfaGNkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MjQgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvdXNiL3VzYmlwL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX1VTQklQX1ZIQ0lfSENEKSAmIzQzOz0gdmhjaS1oY2Qub1xuZHJpdmVycy91c2IvdXNiaXAvTWFrZWZpbGU6ODp2aGNpLWhjZC15IDo9IHZoY2lfc3lzZnMubyB2aGNpX3R4Lm8gdmhjaV9yeC5vIHZoY2lfaGNkLm9cbmRyaXZlcnMvdXNiL3VzYmlwL01ha2VmaWxlLTktXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYz0zMTA9c3RhdGljIGludCBzdHViX3Byb2JlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfZGV2LmMtMzUzLVxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYzozNTQ6XHRpZiAoIXN0cmNtcCh1ZGV2LVx1MDAzZWJ1cy1cdTAwM2VidXNfbmFtZSwgXCYjMzQ7dmhjaV9oY2RcJiMzNDspKSB7XG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX2Rldi5jLTM1NS1cdFx0ZGV2X2RiZyhcdTAwMjZ1ZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfZGV2LmM6MzU2Olx0XHRcdFwmIzM0OyVzIGlzIGF0dGFjaGVkIG9uIHZoY2lfaGNkLi4uIHNraXAhXFxuXCYjMzQ7LFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYy0zNTctXHRcdFx0dWRldl9idXNpZCk7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jPTE3Mz1zdGF0aWMgaW50IHR3ZWFrX3NwZWNpYWxfcmVxdWVzdHMoc3RydWN0IHVyYiAqdXJiKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfcnguYy0yMTAtICpcbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfcnguYzoyMTE6ICogU2VlIGFsc28gY29tbWVudHMgYWJvdXQgdW5saW5raW5nIHN0cmF0ZWd5IGluIHZoY2lfaGNkLmMuXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmMtMjEyLSAqL1xuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jPTIxMz1zdGF0aWMgaW50IHN0dWJfcmVjdl9jbWRfdW5saW5rKHN0cnVjdCBzdHViX2RldmljZSAqc2Rldixcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmMtMjc4LVx0ICogQ01EX1JFVCBwZHUuIEluIHRoaXMgY2FzZSwgdXNiX3VubGlua191cmIoKSBpcyBub3QgbmVlZGVkLiBXZSBvbmx5XG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmM6Mjc5Olx0ICogcmV0dXJuIHRoZSBjb21wbGV0ZW5lc3Mgb2YgdGhpcyB1bmxpbmsgcmVxdWVzdCB0byB2aGNpX2hjZC5cbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfcnguYy0yODAtXHQgKi9cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC91c2JpcF9jb21tb24uYz0zNDI9c3RhdGljIHVuc2lnbmVkIGludCB0d2Vha190cmFuc2Zlcl9mbGFncyh1bnNpZ25lZCBpbnQgZmxhZ3MpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdXNiaXBfY29tbW9uLmMtMzQ5LSAqIFVTQklQIGRyaXZlciBwYWNrcyBVUkIgdHJhbnNmZXIgZmxhZ3MgaW4gUERVcyB0aGF0IGFyZSBleGNoYW5nZWRcbmRyaXZlcnMvdXNiL3VzYmlwL3VzYmlwX2NvbW1vbi5jOjM1MDogKiBiZXR3ZWVuIFNlcnZlciAodXNiaXBfaG9zdCkgYW5kIENsaWVudCAodmhjaV9oY2QpLiBVUkJfKiBmbGFnc1xuZHJpdmVycy91c2IvdXNiaXAvdXNiaXBfY29tbW9uLmMtMzUxLSAqIGFyZSBpbnRlcm5hbCB0byBrZXJuZWwgYW5kIGNvdWxkIGNoYW5nZS4gV2hlcmUgYXMgVVNCSVAgVVJCIGZsYWdzXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTk3PXN0cnVjdCB2aGNpIHtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTAxLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEwMjpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2RfaHM7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTAzOlx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZF9zcztcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xMDQtfTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTA2LS8qIGZvciB1c2JfaGNkLmhjZF9wcml2WzBdICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTA3OnN0cnVjdCB2aGNpX2hjZCB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTA4LVx0c3RydWN0IHZoY2kgKnZoY2k7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTEyNz1leHRlcm4gc3RydWN0IGF0dHJpYnV0ZV9ncm91cCB2aGNpX2F0dHJfZ3JvdXA7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTI4LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEyOTovKiB2aGNpX2hjZC5jICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTMwLXZvaWQgcmhfcG9ydF9jb25uZWN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiwgZW51bSB1c2JfZGV2aWNlX3NwZWVkIHNwZWVkKTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg9MTQ4PXN0YXRpYyBpbmxpbmUgaW50IHBvcnRfdG9fcGRldl9ucihfX3UzMiBwb3J0KVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xNTItXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTUzOnN0YXRpYyBpbmxpbmUgc3RydWN0IHZoY2lfaGNkICpoY2RfdG9fdmhjaV9oY2Qoc3RydWN0IHVzYl9oY2QgKmhjZClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xNTQte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjE1NTpcdHJldHVybiAoc3RydWN0IHZoY2lfaGNkICopIChoY2QtXHUwMDNlaGNkX3ByaXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE1Ni19XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTE2Mz1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmhjZF9uYW1lKHN0cnVjdCB1c2JfaGNkICpoY2QpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE2Ny1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNjg6c3RhdGljIGlubGluZSBzdHJ1Y3QgdXNiX2hjZCAqdmhjaV9oY2RfdG9faGNkKHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTY5LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzA6XHRyZXR1cm4gY29udGFpbmVyX29mKCh2b2lkICopIHZoY2lfaGNkLCBzdHJ1Y3QgdXNiX2hjZCwgaGNkX3ByaXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE3MS19XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTcyLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjE3MzpzdGF0aWMgaW5saW5lIHN0cnVjdCB2aGNpX2hjZCAqdmRldl90b192aGNpX2hjZChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTc0LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzU6XHRyZXR1cm4gY29udGFpbmVyX29mKCh2b2lkICopKHZkZXYgLSB2ZGV2LVx1MDAzZXJocG9ydCksIHN0cnVjdCB2aGNpX2hjZCwgdmRldik7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTc2LX1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTM5PXN0YXRpYyBpbnQgdmhjaV91cmJfZGVxdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGludCBzdGF0dXMpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0MDpzdGF0aWMgaW50IHZoY2lfc3RhcnQoc3RydWN0IHVzYl9oY2QgKnZoY2lfaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDEtc3RhdGljIHZvaWQgdmhjaV9zdG9wKHN0cnVjdCB1c2JfaGNkICpoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz00Mj1zdGF0aWMgaW50IHZoY2lfZ2V0X2ZyYW1lX251bWJlcihzdHJ1Y3QgdXNiX2hjZCAqaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDMtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ0OnN0YXRpYyBjb25zdCBjaGFyIGRyaXZlcl9uYW1lW10gPSBcJiMzNDt2aGNpX2hjZFwmIzM0OztcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDUtc3RhdGljIGNvbnN0IGNoYXIgZHJpdmVyX2Rlc2NbXSA9IFwmIzM0O1VTQi9JUCBWaXJ0dWFsIEhvc3QgQ29udHJvbGxlclwmIzM0Oztcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTE1ND12b2lkIHJoX3BvcnRfY29ubmVjdChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYsIGVudW0gdXNiX2RldmljZV9zcGVlZCBzcGVlZClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU1LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTU2Olx0c3RydWN0IHZoY2lfaGNkXHQqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTc6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1OC1cdGludFx0XHRyaHBvcnQgPSB2ZGV2LVx1MDAzZXJocG9ydDtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE2NS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTY2Olx0c3RhdHVzID0gdmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTY3LVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTgwLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxODE6XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdID0gc3RhdHVzO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xODItXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xODQtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE4NTpcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXModmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE4Ni19XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xODg9c3RhdGljIHZvaWQgcmhfcG9ydF9kaXNjb25uZWN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTg5LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTkwOlx0c3RydWN0IHZoY2lfaGNkXHQqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxOTE6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE5Mi1cdGludFx0XHRyaHBvcnQgPSB2ZGV2LVx1MDAzZXJocG9ydDtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE5OS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MjAwOlx0c3RhdHVzID0gdmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjAxLVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjA0LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyMDU6XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdID0gc3RhdHVzO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDYtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTIwNy1cdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjIwODpcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXModmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTIwOS19XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0yMjk9c3RhdGljIGludCB2aGNpX2h1Yl9zdGF0dXMoc3RydWN0IHVzYl9oY2QgKmhjZCwgY2hhciAqYnVmKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMzAte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyMzE6XHRzdHJ1Y3QgdmhjaV9oY2RcdCp2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyMzI6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTIzMy1cdGludFx0XHRyZXR2YWwgPSBESVZfUk9VTkRfVVAoVkhDSV9IQ19QT1JUUyAmIzQzOyAxLCA4KTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTI0Ny1cdGZvciAocmhwb3J0ID0gMDsgcmhwb3J0IFx1MDAzYyBWSENJX0hDX1BPUlRTOyByaHBvcnQmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjI0ODpcdFx0aWYgKCh2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNiBQT1JUX0NfTUFTSykpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjQ5LVx0XHRcdC8qIFRoZSBzdGF0dXMgb2YgYSBwb3J0IGhhcyBiZWVuIGNoYW5nZWQsICovXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0zMTY9c3RhdGljIGludCB2aGNpX2h1Yl9jb250cm9sKHN0cnVjdCB1c2JfaGNkICpoY2QsIHUxNiB0eXBlUmVxLCB1MTYgd1ZhbHVlLFxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzE4LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzE5Olx0c3RydWN0IHZoY2lfaGNkXHQqdmhjaV9oY2Q7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTMyMC1cdHN0cnVjdCB2aGNpXHQqdmhjaTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM1My1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzU0Olx0dmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzU1Olx0dmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM1Ni1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM2MS1cdFx0aWYgKCFpbnZhbGlkX3JocG9ydClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzYyOlx0XHRcdG1lbWNweShwcmV2X3BvcnRfc3RhdHVzLCB2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1cyxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzYzLVx0XHRcdFx0c2l6ZW9mKHByZXZfcG9ydF9zdGF0dXMpKTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM4My1cdFx0XHRcdFwmIzM0OyBDbGVhclBvcnRGZWF0dXJlOiBVU0JfUE9SVF9GRUFUX1NVU1BFTkRcXG5cJiMzNDspO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzozODQ6XHRcdFx0aWYgKHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2IFVTQl9QT1JUX1NUQVRfU1VTUEVORCkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0zODUtXHRcdFx0XHQvKiAyMG1zZWMgc2lnbmFsaW5nICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM4NjpcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXJlc3VtaW5nID0gMTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Mzg3Olx0XHRcdFx0dmhjaV9oY2QtXHUwMDNlcmVfdGltZW91dCA9IGppZmZpZXMgJiM0MzsgbXNlY3NfdG9famlmZmllcygyMCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM4OC1cdFx0XHR9XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0zOTMtXHRcdFx0aWYgKGhjZC1cdTAwM2VzcGVlZCBcdTAwM2U9IEhDRF9VU0IzKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzozOTQ6XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNj0gflVTQl9TU19QT1JUX1NUQVRfUE9XRVI7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM5NS1cdFx0XHRlbHNlXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM5NjpcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2PSB+VVNCX1BPUlRfU1RBVF9QT1dFUjtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzk3LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDAyLVx0XHRcdFx0Z290byBlcnJvcjtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDAzOlx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2PSB+KDEgXHUwMDNjXHUwMDNjIHdWYWx1ZSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQwNC1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ0Ny1cdFx0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ0ODpcdFx0aWYgKHZoY2lfaGNkLVx1MDAzZXJlc3VtaW5nIFx1MDAyNlx1MDAyNiB0aW1lX2FmdGVyKGppZmZpZXMsIHZoY2lfaGNkLVx1MDAzZXJlX3RpbWVvdXQpKSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ0OTpcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9ICgxIFx1MDAzY1x1MDAzYyBVU0JfUE9SVF9GRUFUX0NfU1VTUEVORCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1MDpcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNj0gfigxIFx1MDAzY1x1MDAzYyBVU0JfUE9SVF9GRUFUX1NVU1BFTkQpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NTE6XHRcdFx0dmhjaV9oY2QtXHUwMDNlcmVzdW1pbmcgPSAwO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NTI6XHRcdFx0dmhjaV9oY2QtXHUwMDNlcmVfdGltZW91dCA9IDA7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ1My1cdFx0fVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NTQtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1NTpcdFx0aWYgKCh2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNiAoMSBcdTAwM2NcdTAwM2MgVVNCX1BPUlRfRkVBVF9SRVNFVCkpICE9XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1NjpcdFx0ICAgIDAgXHUwMDI2XHUwMDI2IHRpbWVfYWZ0ZXIoamlmZmllcywgdmhjaV9oY2QtXHUwMDNlcmVfdGltZW91dCkpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDU3Olx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXHUwMDNjXHUwMDNjIFVTQl9QT1JUX0ZFQVRfQ19SRVNFVCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1ODpcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNj0gfigxIFx1MDAzY1x1MDAzYyBVU0JfUE9SVF9GRUFUX1JFU0VUKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDU5Olx0XHRcdHZoY2lfaGNkLVx1MDAzZXJlX3RpbWVvdXQgPSAwO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjAtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjQtXHRcdFx0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ2NTpcdFx0XHRpZiAodmhjaV9oY2QtXHUwMDNldmRldltyaHBvcnRdLnVkLnN0YXR1cyA9PVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjYtXHRcdFx0XHRWREVWX1NUX05PVEFTU0lHTkVEIHx8XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ2NzpcdFx0XHQgICAgdmhjaV9oY2QtXHUwMDNldmRldltyaHBvcnRdLnVkLnN0YXR1cyA9PVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjgtXHRcdFx0XHRWREVWX1NUX1VTRUQpIHtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ3MS1cdFx0XHRcdFx0cmhwb3J0LFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NzI6XHRcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXZkZXZbcmhwb3J0XS51ZC5zdGF0dXMpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NzM6XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ3NC1cdFx0XHRcdFx0VVNCX1BPUlRfU1RBVF9FTkFCTEU7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NzctXHRcdFx0aWYgKGhjZC1cdTAwM2VzcGVlZCBcdTAwM2MgSENEX1VTQjMpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDc4Olx0XHRcdFx0c3dpdGNoICh2aGNpX2hjZC1cdTAwM2V2ZGV2W3JocG9ydF0uc3BlZWQpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDc5LVx0XHRcdFx0Y2FzZSBVU0JfU1BFRURfSElHSDpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDgwOlx0XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ4MS1cdFx0XHRcdFx0ICAgICAgVVNCX1BPUlRfU1RBVF9ISUdIX1NQRUVEO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDgzLVx0XHRcdFx0Y2FzZSBVU0JfU1BFRURfTE9XOlxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0ODQ6XHRcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDg1LVx0XHRcdFx0XHRcdFVTQl9QT1JUX1NUQVRfTE9XX1NQRUVEO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDkyLVx0XHR9XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ5MzpcdFx0KChfX2xlMTYgKikgYnVmKVswXSA9IGNwdV90b19sZTE2KHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0pO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00OTQtXHRcdCgoX19sZTE2ICopIGJ1ZilbMV0gPVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0OTU6XHRcdFx0Y3B1X3RvX2xlMTYodmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcdTAwM2VcdTAwM2UgMTYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00OTYtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01NDctXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjU0ODpcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9IFVTQl9QT1JUX1NUQVRfU1VTUEVORDtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTQ5LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTU3LVx0XHRcdGlmIChoY2QtXHUwMDNlc3BlZWQgXHUwMDNlPSBIQ0RfVVNCMylcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NTU4Olx0XHRcdFx0dmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSB8PSBVU0JfU1NfUE9SVF9TVEFUX1BPV0VSO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01NTktXHRcdFx0ZWxzZVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1NjA6XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9IFVTQl9QT1JUX1NUQVRfUE9XRVI7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU2MS1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU4NC1cdFx0XHRpZiAoaGNkLVx1MDAzZXNwZWVkIFx1MDAzZT0gSENEX1VTQjMpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NTg1Olx0XHRcdFx0dmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSA9IDA7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjU4NjpcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gPVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01ODctXHRcdFx0XHRcdChVU0JfU1NfUE9SVF9TVEFUX1BPV0VSIHxcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU4OS1cdFx0XHRcdFx0IFVTQl9QT1JUX1NUQVRfUkVTRVQpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1OTA6XHRcdFx0fSBlbHNlIGlmICh2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNiBVU0JfUE9SVF9TVEFUX0VOQUJMRSkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1OTE6XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNj0gfihVU0JfUE9SVF9TVEFUX0VOQUJMRVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01OTItXHRcdFx0XHRcdHwgVVNCX1BPUlRfU1RBVF9MT1dfU1BFRURcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU5Ni1cdFx0XHQvKiA1MG1zZWMgcmVzZXQgc2lnbmFsaW5nICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjU5NzpcdFx0XHR2aGNpX2hjZC1cdTAwM2VyZV90aW1lb3V0ID0gamlmZmllcyAmIzQzOyBtc2Vjc190b19qaWZmaWVzKDUwKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTk4LVx0XHRcdGZhbGx0aHJvdWdoO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjA4LVx0XHRcdGlmIChoY2QtXHUwMDNlc3BlZWQgXHUwMDNlPSBIQ0RfVVNCMykge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MDk6XHRcdFx0XHRpZiAoKHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxMC1cdFx0XHRcdCAgICAgVVNCX1NTX1BPUlRfU1RBVF9QT1dFUikgIT0gMCkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTE6XHRcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXHUwMDNjXHUwMDNjIHdWYWx1ZSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxMi1cdFx0XHRcdH1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjEzLVx0XHRcdH0gZWxzZVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTQ6XHRcdFx0XHRpZiAoKHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxNS1cdFx0XHRcdCAgICAgVVNCX1BPUlRfU1RBVF9QT1dFUikgIT0gMCkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTY6XHRcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXHUwMDNjXHUwMDNjIHdWYWx1ZSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxNy1cdFx0XHRcdH1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY1MS1cdFx0XHRkdW1wX3BvcnRfc3RhdHVzX2RpZmYocHJldl9wb3J0X3N0YXR1c1tyaHBvcnRdLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2NTI6XHRcdFx0XHRcdCAgICAgIHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0sXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY1My1cdFx0XHRcdFx0ICAgICAgaGNkLVx1MDAzZXNwZWVkIFx1MDAzZT0gSENEX1VTQjMpO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjYwLVx0aWYgKCFpbnZhbGlkX3JocG9ydCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NjYxOlx0ICAgICh2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNiBQT1JUX0NfTUFTSykgIT0gMCkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02NjItXHRcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXMoaGNkKTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTY2OD1zdGF0aWMgdm9pZCB2aGNpX3R4X3VyYihzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY3MC1cdHN0cnVjdCB2aGNpX3ByaXYgKnByaXY7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjY3MTpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02NzItXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjgxLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2ODI6XHRwcml2LVx1MDAzZXNlcW51bSA9ICh1MzIpYXRvbWljX2luY19yZXR1cm4oXHUwMDI2dmhjaV9oY2QtXHUwMDNlc2VxbnVtKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjgzLVx0aWYgKHByaXYtXHUwMDNlc2VxbnVtID09IDB4ZmZmZilcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTY5Nz1zdGF0aWMgaW50IHZoY2lfdXJiX2VucXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBnZnBfdCBtZW1fZmxhZ3MpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY5OC17XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjY5OTpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NzAwOlx0c3RydWN0IHZoY2kgKnZoY2kgPSB2aGNpX2hjZC1cdTAwM2V2aGNpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy03MDEtXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZ1cmItXHUwMDNlZGV2LVx1MDAzZWRldjtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTcxMC1cdH1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NzExOlx0dmRldiA9IFx1MDAyNnZoY2lfaGNkLVx1MDAzZXZkZXZbcG9ydG51bS0xXTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNzEyLVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODU4LSAqXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjg1OTogKiAtIFdoZW4gdmhjaV9oY2QgcmVjZWl2ZXMgUkVUX1NVQk1JVCxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODYwLSAqXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NjgtICpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6ODY5OiAqIC0gV2hlbiB2aGNpX2hjZCByZWNlaXZlcyBSRVRfVU5MSU5LLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NzAtICpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6ODcxOiAqXHQtIGNhc2UgMmEpLiBhIHN1Ym1pdCByZXF1ZXN0IGlzIHN0aWxsIHBlbmRpbmcgaW4gdmhjaV9oY2QuXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTg3Mi0gKlx0XHQtIHVyYiB3YXMgcmVhbGx5IHBlbmRpbmcgaW4gdXNiaXAua28gYW5kIHVyYl91bmxpbmtfdXJiKCkgd2FzXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NzYtICpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6ODc3OiAqXHQtIGNhc2UgMmIpLiBhIHN1Ym1pdCByZXF1ZXN0IGlzICpub3QqIHBlbmRpbmcgaW4gdmhjaV9oY2QuXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTg3OC0gKlx0XHQtIHVyYiB3YXMgYWxyZWFkeSBnaXZlbiBiYWNrIHRvIHRoZSBjb3JlIGRyaXZlci5cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTkwMz1zdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy05MDQte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo5MDU6XHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjkwNjpcdHN0cnVjdCB2aGNpICp2aGNpID0gdmhjaV9oY2QtXHUwMDNldmhjaTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTA3LVx0c3RydWN0IHZoY2lfcHJpdiAqcHJpdjtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk2OS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6OTcwOlx0XHR1bmxpbmstXHUwMDNlc2VxbnVtID0gYXRvbWljX2luY19yZXR1cm4oXHUwMDI2dmhjaV9oY2QtXHUwMDNlc2VxbnVtKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTcxLVx0XHRpZiAodW5saW5rLVx1MDAzZXNlcW51bSA9PSAweGZmZmYpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz05OTQ9c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk5Ni17XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk5NzpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo5OTg6XHRzdHJ1Y3QgdXNiX2hjZCAqaGNkID0gdmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6OTk5Olx0c3RydWN0IHZoY2kgKnZoY2kgPSB2aGNpX2hjZC1cdTAwM2V2aGNpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDAwLVx0c3RydWN0IHZoY2lfdW5saW5rICp1bmxpbmssICp0bXA7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xMDU3PXN0YXRpYyB2b2lkIHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbihzdHJ1Y3QgdXNiaXBfZGV2aWNlICp1ZClcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTktXHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYgPSBjb250YWluZXJfb2YodWQsIHN0cnVjdCB2aGNpX2RldmljZSwgdWQpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMDYwOlx0c3RydWN0IHVzYl9oY2QgKmhjZCA9IHZoY2lfaGNkX3RvX2hjZCh2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA2MS1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwOTctXHQgKiBkZXRhY2hlZCBkZXZpY2Ugc2hvdWxkIHJlbGVhc2UgdXNlZCB1cmJzIGluIGEgY2xlYW51cCBmdW5jdGlvbiAoaS5lLlxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMDk4Olx0ICogeHh4X2Rpc2Nvbm5lY3QoKSkuIFRoZXJlZm9yZSwgdmhjaV9oY2QgZG9lcyBub3QgbmVlZCB0byByZWxlYXNlXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwOTktXHQgKiBwdXNoZWQgdXJicyBhbmQgdGhlaXIgcHJpdmF0ZSBkYXRhIGluIHRoaXMgZnVuY3Rpb24uXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xMTg4PXN0YXRpYyBpbnQgdmhjaV9zZXR1cChzdHJ1Y3QgdXNiX2hjZCAqaGNkKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE5Mi1cdGlmICh1c2JfaGNkX2lzX3ByaW1hcnlfaGNkKGhjZCkpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTE5MzpcdFx0dmhjaS1cdTAwM2V2aGNpX2hjZF9ocyA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMTk0Olx0XHR2aGNpLVx1MDAzZXZoY2lfaGNkX2hzLVx1MDAzZXZoY2kgPSB2aGNpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTk1LVx0XHQvKlxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE5Ny1cdFx0ICogVGhlIFVTQiAzLjAgcm9vdGh1YiB3aWxsIGJlIHJlZ2lzdGVyZWQgbGF0ZXIgYnlcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTE5ODpcdFx0ICogdmhjaV9oY2RfcHJvYmUoKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTk5LVx0XHQgKi9cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMDItXHR9IGVsc2Uge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjAzOlx0XHR2aGNpLVx1MDAzZXZoY2lfaGNkX3NzID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyMDQ6XHRcdHZoY2ktXHUwMDNldmhjaV9oY2Rfc3MtXHUwMDNldmhjaSA9IHZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMDUtXHRcdGhjZC1cdTAwM2VzcGVlZCA9IEhDRF9VU0IzMTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEyMTY9c3RhdGljIGludCB2aGNpX3N0YXJ0KHN0cnVjdCB1c2JfaGNkICpoY2QpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMTcte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjE4Olx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjE5LVx0aW50IGlkLCByaHBvcnQ7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjI0LVx0aWYgKHVzYl9oY2RfaXNfcHJpbWFyeV9oY2QoaGNkKSlcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTIyNTpcdFx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2dmhjaV9oY2QtXHUwMDNldmhjaS1cdTAwM2Vsb2NrKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTIyNi1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMjktXHRmb3IgKHJocG9ydCA9IDA7IHJocG9ydCBcdTAwM2MgVkhDSV9IQ19QT1JUUzsgcmhwb3J0JiM0MzsmIzQzOykge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjMwOlx0XHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYgPSBcdTAwMjZ2aGNpX2hjZC1cdTAwM2V2ZGV2W3JocG9ydF07XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMzEtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjM1LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjM2Olx0YXRvbWljX3NldChcdTAwMjZ2aGNpX2hjZC1cdTAwM2VzZXFudW0sIDApO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjM3LVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI1MC1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTI1MTpcdC8qIHZoY2lfaGNkIGlzIG5vdyByZWFkeSB0byBiZSBjb250cm9sbGVkIHRocm91Z2ggc3lzZnMgKi9cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI1Mi1cdGlmIChpZCA9PSAwIFx1MDAyNlx1MDAyNiB1c2JfaGNkX2lzX3ByaW1hcnlfaGNkKGhjZCkpIHtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEyNzA9c3RhdGljIHZvaWQgdmhjaV9zdG9wKHN0cnVjdCB1c2JfaGNkICpoY2QpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyNzEte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjcyOlx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjczLVx0aW50IGlkLCByaHBvcnQ7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjc2LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjc3Olx0LyogMS4gcmVtb3ZlIHRoZSB1c2VybGFuZCBpbnRlcmZhY2Ugb2YgdmhjaV9oY2QgKi9cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI3OC1cdGlkID0gaGNkX25hbWVfdG9faWQoaGNkX25hbWUoaGNkKSk7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjgzLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjg0Olx0LyogMi4gc2h1dGRvd24gYWxsIHRoZSBwb3J0cyBvZiB2aGNpX2hjZCAqL1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjg1LVx0Zm9yIChyaHBvcnQgPSAwOyByaHBvcnQgXHUwMDNjIFZIQ0lfSENfUE9SVFM7IHJocG9ydCYjNDM7JiM0MzspIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTI4NjpcdFx0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gXHUwMDI2dmhjaV9oY2QtXHUwMDNldmRldltyaHBvcnRdO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjg3LVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTM1OD1zdGF0aWMgY29uc3Qgc3RydWN0IGhjX2RyaXZlciB2aGNpX2hjX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEzNjAtXHQucHJvZHVjdF9kZXNjXHQ9IGRyaXZlcl9kZXNjLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMzYxOlx0LmhjZF9wcml2X3NpemVcdD0gc2l6ZW9mKHN0cnVjdCB2aGNpX2hjZCksXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEzNjItXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMzgyLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMzgzOnN0YXRpYyBpbnQgdmhjaV9oY2RfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM4NC17XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDMzLVx0dXNiX3B1dF9oY2QoaGNkX2hzKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQzNDpcdHZoY2ktXHUwMDNldmhjaV9oY2RfaHMgPSBOVUxMO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDM1Olx0dmhjaS1cdTAwM2V2aGNpX2hjZF9zcyA9IE5VTEw7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0MzYtXHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQzOC1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQzOTpzdGF0aWMgdm9pZCB2aGNpX2hjZF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ0MC17XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDQ3LVx0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0NDg6XHR1c2JfcmVtb3ZlX2hjZCh2aGNpX2hjZF90b19oY2QodmhjaS1cdTAwM2V2aGNpX2hjZF9zcykpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDQ5Olx0dXNiX3B1dF9oY2QodmhjaV9oY2RfdG9faGNkKHZoY2ktXHUwMDNldmhjaV9oY2Rfc3MpKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ1MC1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQ1MTpcdHVzYl9yZW1vdmVfaGNkKHZoY2lfaGNkX3RvX2hjZCh2aGNpLVx1MDAzZXZoY2lfaGNkX2hzKSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0NTI6XHR1c2JfcHV0X2hjZCh2aGNpX2hjZF90b19oY2QodmhjaS1cdTAwM2V2aGNpX2hjZF9ocykpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDUzLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDU0Olx0dmhjaS1cdTAwM2V2aGNpX2hjZF9ocyA9IE5VTEw7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0NTU6XHR2aGNpLVx1MDAzZXZoY2lfaGNkX3NzID0gTlVMTDtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ1Ni19XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDYwLS8qIHdoYXQgc2hvdWxkIGhhcHBlbiBmb3IgVVNCL0lQIHVuZGVyIHN1c3BlbmQvcmVzdW1lPyAqL1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDYxOnN0YXRpYyBpbnQgdmhjaV9oY2Rfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NjIte1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ4MC1cdGZvciAocmhwb3J0ID0gMDsgcmhwb3J0IFx1MDAzYyBWSENJX0hDX1BPUlRTOyByaHBvcnQmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0ODE6XHRcdGlmICh2aGNpLVx1MDAzZXZoY2lfaGNkX2hzLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0ODItXHRcdCAgICBVU0JfUE9SVF9TVEFUX0NPTk5FQ1RJT04pXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDg0LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDg1Olx0XHRpZiAodmhjaS1cdTAwM2V2aGNpX2hjZF9zcy1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNlxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDg2LVx0XHQgICAgVVNCX1BPUlRfU1RBVF9DT05ORUNUSU9OKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ5Ny1cdH0gZWxzZSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0OTg6XHRcdGRldl9pbmZvKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtzdXNwZW5kIHZoY2lfaGNkXCYjMzQ7KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ5OS1cdFx0Y2xlYXJfYml0KEhDRF9GTEFHX0hXX0FDQ0VTU0lCTEUsIFx1MDAyNmhjZC1cdTAwM2VmbGFncyk7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTA0LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTA1OnN0YXRpYyBpbnQgdmhjaV9oY2RfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1MDYte1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTUyMS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUyMjojZGVmaW5lIHZoY2lfaGNkX3N1c3BlbmRcdE5VTExcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUyMzojZGVmaW5lIHZoY2lfaGNkX3Jlc3VtZVx0XHROVUxMXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1MjQtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xNTI3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHZoY2lfZHJpdmVyID0ge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTI4Olx0LnByb2JlXHQ9IHZoY2lfaGNkX3Byb2JlLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTI5Olx0LnJlbW92ZSA9IHZoY2lfaGNkX3JlbW92ZSxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUzMDpcdC5zdXNwZW5kID0gdmhjaV9oY2Rfc3VzcGVuZCxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUzMTpcdC5yZXN1bWVcdD0gdmhjaV9oY2RfcmVzdW1lLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTMyLVx0LmRyaXZlclx0PSB7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xNTM3PXN0YXRpYyB2b2lkIGRlbF9wbGF0Zm9ybV9kZXZpY2VzKHZvaWQpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTQ3LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTQ4OnN0YXRpYyBpbnQgX19pbml0IHZoY2lfaGNkX2luaXQodm9pZClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU0OS17XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTkyLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTkzOnN0YXRpYyB2b2lkIF9fZXhpdCB2aGNpX2hjZF9leGl0KHZvaWQpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1OTQte1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU5OS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTYwMDptb2R1bGVfaW5pdCh2aGNpX2hjZF9pbml0KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTYwMTptb2R1bGVfZXhpdCh2aGNpX2hjZF9leGl0KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTYwMi1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9NTU9c3RhdGljIHZvaWQgdmhjaV9yZWN2X3JldF9zdWJtaXQoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy01Ny17XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6NTg6XHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzo1OTpcdHN0cnVjdCB2aGNpICp2aGNpID0gdmhjaV9oY2QtXHUwMDNldmhjaTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy02MC1cdHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkID0gXHUwMDI2dmRldi1cdTAwM2V1ZDtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtNzAtXHRcdFx0cGR1LVx1MDAzZWJhc2Uuc2VxbnVtLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjcxOlx0XHRcdGF0b21pY19yZWFkKFx1MDAyNnZoY2lfaGNkLVx1MDAzZXNlcW51bSkpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTcyLVx0XHR1c2JpcF9ldmVudF9hZGQodWQsIFZERVZfRVZFTlRfRVJST1JfVENQKTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTAzLVx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTA0Olx0dXNiX2hjZF91bmxpbmtfdXJiX2Zyb21fZXAodmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSwgdXJiKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMDUtXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnZoY2ktXHUwMDNlbG9jaywgZmxhZ3MpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEwNi1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoxMDc6XHR1c2JfaGNkX2dpdmViYWNrX3VyYih2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIsIHVyYi1cdTAwM2VzdGF0dXMpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEwOC1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTM3PXN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTM5LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoxNDA6XHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoxNDE6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTQyLVx0c3RydWN0IHZoY2lfdW5saW5rICp1bmxpbms7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTE3NC1cdFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTc1Olx0XHR1c2JfaGNkX3VubGlua191cmJfZnJvbV9lcCh2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTE3Ni1cdFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZ2aGNpLVx1MDAzZWxvY2ssIGZsYWdzKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xNzctXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTc4Olx0XHR1c2JfaGNkX2dpdmViYWNrX3VyYih2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIsIHVyYi1cdTAwM2VzdGF0dXMpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTE3OS1cdH1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMzAtICogbGVha2luZyBrZXJuZWwgbWVtb3J5IGFkZHJlc3MgaW46XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MzE6ICpcdC9zeXMvZGV2aWNlcy9wbGF0Zm9ybS92aGNpX2hjZC4wL3N0YXR1cyBhbmQgaW4gZGVidWcgb3V0cHV0LlxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTMyLSAqIFRoZSBzb2NrZXQgcG9pbnRlciBhZGRyZXNzIGlzIG5vdCB1c2VkIGF0IHRoZSBtb21lbnQgYW5kIGl0IHdhcyBtYWRlXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jPTg2PXN0YXRpYyBzc2l6ZV90IHN0YXR1c19zaG93X3ZoY2koaW50IHBkZXZfbnIsIGNoYXIgKm91dClcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtOTAtXHRzdHJ1Y3QgdXNiX2hjZCAqaGNkO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjkxOlx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZDtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy05Mi1cdGNoYXIgKnMgPSBvdXQ7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTEwNy1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxMDg6XHR2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjEwOTpcdHZoY2kgPSB2aGNpX2hjZC1cdTAwM2V2aGNpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTExMC1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTEzLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgVkhDSV9IQ19QT1JUUzsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxMTQ6XHRcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFx1MDAyNnZoY2ktXHUwMDNldmhjaV9oY2RfaHMtXHUwMDNldmRldltpXTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0xMTUtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTEyMi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIFZIQ0lfSENfUE9SVFM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MTIzOlx0XHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYgPSBcdTAwMjZ2aGNpLVx1MDAzZXZoY2lfaGNkX3NzLVx1MDAzZXZkZXZbaV07XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTI0LVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYz0xODM9c3RhdGljIERFVklDRV9BVFRSX1JPKG5wb3J0cyk7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTE4NS0vKiBTeXNmcyBlbnRyeSB0byBzaHV0ZG93biBhIHZpcnR1YWwgY29ubmVjdGlvbiAqL1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjE4NjpzdGF0aWMgaW50IHZoY2lfcG9ydF9kaXNjb25uZWN0KHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QsIF9fdTMyIHJocG9ydClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0xODcte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjE4ODpcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFx1MDAyNnZoY2lfaGNkLVx1MDAzZXZkZXZbcmhwb3J0XTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxODk6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTkwLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGRldGFjaF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0yNDMtXHRzdHJ1Y3QgdXNiX2hjZCAqaGNkO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjI0NDpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2Q7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMjQ1LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMjY0LVx0aWYgKChwb3J0IC8gVkhDSV9IQ19QT1JUUykgJSAyKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjI2NTpcdFx0dmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKS1cdTAwM2V2aGNpLVx1MDAzZXZoY2lfaGNkX3NzO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTI2Ni1cdGVsc2VcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2OTIwCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgdGhlIFVTQi9JUCBWSENJIEhDRCBDb25maWd1cmF0aW9uIE9wdGlvbioqCgpSaWdodCwgc28gdGhlIGNvbmZpZyBvcHRpb24gSSYjMzk7bSBsb29raW5nIGF0IGlzIGBDT05GSUdfVVNCSVBfVkhDSV9IQ0RgLiBNeSBmaXJzdCBwb3J0IG9mIGNhbGwsIG5hdHVyYWxseSwgaXMgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhhdCBwYXJ0IG9mIHRoZSBVU0IvSVAgc3Vic3lzdGVtLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIG1vZHVsZSYjMzk7cyBkZXBlbmRlbmNpZXMsIGlmIGFueS4gSSYjMzk7bGwgb3BlbiB1cCBgZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZ2AgYW5kIHF1aWNrbHkgc2NhbiBmb3IgcmVsYXRpb25zaGlwcyB3aXRoIG90aGVyIG9wdGlvbnMgb3IgZmVhdHVyZXMuIEkmIzM5O20gbG9va2luZyBmb3IgdGhpbmdzIHRoYXQgbWlnaHQgZW5hYmxlIGl0LCBkaXNhYmxlIGl0LCBvciBwcm92aWRlIGVzc2VudGlhbCBmdW5jdGlvbmFsaXR5LiBHb3R0YSBnZXQgdGhlIGxheSBvZiB0aGUgbGFuZCBiZWZvcmUgSSBjYW4gZG8gYW55dGhpbmcgbW9yZSBzcGVjaWZpYy4gVW5kZXJzdGFuZGluZyB0aGUgY29udGV4dCBpcyBrZXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQklQX1ZIQ0lfSENEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC9LY29uZmlnPTM9Y29uZmlnIFVTQklQX0NPUkVcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC9LY29uZmlnLTIwLVxuZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZzoyMTpjb25maWcgVVNCSVBfVkhDSV9IQ0RcbmRyaXZlcnMvdXNiL3VzYmlwL0tjb25maWctMjItXHR0cmlzdGF0ZSBcJiMzNDtWSENJIGhjZFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MjU0CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIGRlbGl2ZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5OgoKKipQZWVyaW5nIGludG8gdGhlIEtlcm5lbCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpBbHJpZ2h0LCBJJiMzOTttIHRoaW5raW5nIEkgbmVlZCB0byBkZWx2ZSBpbnRvIHRoaXMgYFVTQklQX1ZIQ0lfSENEYCBLY29uZmlnIGVudHJ5LiBJIHdhbnQgdGhlIHdob2xlIHBpY3R1cmUsIHRoZSBjb21wbGV0ZSBjb250ZXh0LiBObyBzbmlwcGV0cywgbm8gcGFydGlhbCB2aWV3cy4gSSBuZWVkIHRvIHNlZSB0aGUgZGVwZW5kZW5jaWVzLCB0aGUgZGVmYXVsdHMsIHRoZSBoZWxwIHRleHQsICpldmVyeXRoaW5nKiB0aGF0IGRlZmluZXMgaG93IHRoaXMgcGFydGljdWxhciB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciBkcml2ZXIgaXMgY29uZmlndXJlZCB3aXRoaW4gdGhlIGtlcm5lbC4gSSYjMzk7bSBhZnRlciB0aGUgZmluZS1ncmFpbmVkIGRldGFpbHMuIFVuZGVyc3RhbmRpbmcgdGhhdCBLY29uZmlnIGVudHJ5IGNvbXBsZXRlbHkgd2lsbCB0ZWxsIG1lIGhvdyB0aGlzIGZlYXR1cmUgaXMgZW5hYmxlZCwgYW5kIGRpc2FibGVkIGFuZCBob3cgdGhhdCBpbXBhY3RzIG90aGVyIGZlYXR1cmVzLiBJIGhhdmUgYSBodW5jaCBpdCBpcyBsaW5rZWQgd2l0aCBzb21lIG90aGVyIHVzYiBmZWF0dXJlcyBhbmQgdGhhdCB1bmRlcnN0YW5kaW5nIGl0IGZ1bGx5IGlzIGltcG9ydGFudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3VzYmlwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0XG4gICAzOlx0Y29uZmlnIFVTQklQX0NPUkVcbiAgIDQ6XHRcdHRyaXN0YXRlIFwmIzM0O1VTQi9JUCBzdXBwb3J0XCYjMzQ7XG4gICA1Olx0XHRkZXBlbmRzIG9uIE5FVFxuICAgNjpcdFx0c2VsZWN0IFVTQl9DT01NT05cbiAgIDc6XHRcdHNlbGVjdCBTR0xfQUxMT0NcbiAgIDg6XHRcdGhlbHBcbiAgIDk6XHRcdCAgVGhpcyBlbmFibGVzIHB1c2hpbmcgVVNCIHBhY2tldHMgb3ZlciBJUCB0byBhbGxvdyByZW1vdGVcbiAgMTA6XHRcdCAgbWFjaGluZXMgZGlyZWN0IGFjY2VzcyB0byBVU0IgZGV2aWNlcy4gSXQgcHJvdmlkZXMgdGhlXG4gIDExOlx0XHQgIFVTQi9JUCBjb3JlIHRoYXQgaXMgcmVxdWlyZWQgYnkgYm90aCBkcml2ZXJzLlxuICAxMjpcdFxuICAxMzpcdFx0ICBGb3IgbW9yZSBkZXRhaWxzLCBhbmQgdG8gZ2V0IHRoZSB1c2Vyc3BhY2UgdXRpbGl0eVxuICAxNDpcdFx0ICBwcm9ncmFtcywgcGxlYXNlIHNlZSBcdTAwM2NodHRwOi8vdXNiaXAuc291cmNlZm9yZ2UubmV0L1x1MDAzZS5cbiAgMTU6XHRcbiAgMTY6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGxcbiAgMTc6XHRcdCAgYmUgY2FsbGVkIHVzYmlwLWNvcmUuXG4gIDE4Olx0XG4gIDE5Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gIDIwOlx0XG4gIDIxOlx0Y29uZmlnIFVTQklQX1ZIQ0lfSENEXG4gIDIyOlx0XHR0cmlzdGF0ZSBcJiMzNDtWSENJIGhjZFwmIzM0O1xuICAyMzpcdFx0ZGVwZW5kcyBvbiBVU0JJUF9DT1JFIFx1MDAyNlx1MDAyNiBVU0JcbiAgMjQ6XHRcdGhlbHBcbiAgMjU6XHRcdCAgVGhpcyBlbmFibGVzIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgZHJpdmVyLFxuICAyNjpcdFx0ICB3aGljaCBpcyBydW4gb24gdGhlIHJlbW90ZSBtYWNoaW5lLlxuICAyNzpcdFxuICAyODpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbiAgMjk6XHRcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHZoY2ktaGNkLlxuICAzMDpcdFxuICAzMTpcdGNvbmZpZyBVU0JJUF9WSENJX0hDX1BPUlRTXG4gIDMyOlx0XHRpbnQgXCYjMzQ7TnVtYmVyIG9mIHBvcnRzIHBlciBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXJcJiMzNDtcbiAgMzM6XHRcdHJhbmdlIDEgMTVcbiAgMzQ6XHRcdGRlZmF1bHQgOFxuICAzNTpcdFx0ZGVwZW5kcyBvbiBVU0JJUF9WSENJX0hDRFxuICAzNjpcdFx0aGVscFxuICAzNzpcdFx0ICBUbyBpbmNyZWFzZSBudW1iZXIgb2YgcG9ydHMgYXZhaWxhYmxlIGZvciBVU0IvSVAgdmlydHVhbFxuICAzODpcdFx0ICBob3N0IGNvbnRyb2xsZXIgZHJpdmVyLCB0aGlzIGRlZmluZXMgbnVtYmVyIG9mIHBvcnRzIHBlclxuICAzOTpcdFx0ICBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIuXG4gIDQwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc5OTgKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVU0JJUCBDb25maWd1cmF0aW9uIGZvciBhIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gRnJvbSB3aGF0IEkgc2VlLCB0aGUgcHJpbWFyeSBkZXBlbmRlbmNpZXMgYXJlIGBVU0JJUF9DT1JFYCBhbmQgYFVTQmAuIEdvdCBpdC4gVGhhdCBtZWFucyBJJiMzOTtsbCBuZWVkIHRvIGVuYWJsZSBgVVNCSVBfVkhDSV9IQ0RgIGFsb25nIHdpdGggYFVTQklQX0NPUkVgIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nJiMzOTtzIHNldCB1cCBjb3JyZWN0bHkuIE1ha2VzIHNlbnNlIHNvIGZhci4KCk5vdywgbGV0JiMzOTtzIGRyaWxsIGRvd24gYSBiaXQgYW5kIGZpbmQgdGhlIHJlYWwgZm9jdXMgcG9pbnRzIG9mIHRoZSBjaGFuZ2UuIEl0IGxvb2tzIGxpa2UgdGhpcyBwYXRjaCBzcGVjaWZpY2FsbHkgdG91Y2hlcyBgdmhjaV91cmJfZGVxdWV1ZWAsIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgLCBhbmQgYHZoY2lfcmVjdl9yZXRfdW5saW5rYC4gUmlnaHQsIHNvIGB2aGNpX3VyYl9kZXF1ZXVlYCBpcyBhIGZ1bmN0aW9uIHBvaW50ZXIgd2l0aGluIHRoYXQgYHZoY2lfaGNfZHJpdmVyYCBzdHJ1Y3QsIHdoaWNoIGlzIGEgYGhjX2RyaXZlcmAuIFRoZSBVU0IgY29yZSBpcyBjYWxsaW5nIGludG8gaXQsIHNvIHRoYXQmIzM5O3MgYSBrZXkgaW50ZXJhY3Rpb24gdG8ga2VlcCBpbiBtaW5kLgoKYHZoY2lfY2xlYW51cF91bmxpbmtfbGlzdGAgaXMgc3RhdGljLCBzbyBJJiMzOTtsbCBuZWVkIHRvIHNlZSBob3cgaXQgaXMgY2FsbGVkIHRvIGJlIHN1cmUsIGluIGNhc2UgdGhlcmUgYXJlIGhpZGRlbiBpbnRlcmFjdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZoY2lfY2xlYW51cF91bmxpbmtfbGlzdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3VzYmlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTkwMz1zdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTkzLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo5OTQ6c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTk1LVx0XHRzdHJ1Y3QgbGlzdF9oZWFkICp1bmxpbmtfbGlzdClcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEwNDM9c3RhdGljIHZvaWQgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXAoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA0NS1cdC8qIGdpdmUgYmFjayBVUkIgb2YgdW5zZW50IHVubGluayByZXF1ZXN0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDY6XHR2aGNpX2NsZWFudXBfdW5saW5rX2xpc3QodmRldiwgXHUwMDI2dmRldi1cdTAwM2V1bmxpbmtfdHgpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDQ3LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDQ4LVx0LyogZ2l2ZSBiYWNrIFVSQiBvZiB1bmFuc3dlcmVkIHVubGluayByZXF1ZXN0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDk6XHR2aGNpX2NsZWFudXBfdW5saW5rX2xpc3QodmRldiwgXHUwMDI2dmRldi1cdTAwM2V1bmxpbmtfcngpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDUwLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg4MDUKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgVkhDSSBVbmxpbmsgUHJvY2VzcyoqCgpSaWdodCwgc28gYHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwYCB0cmlnZ2VycyBgdmhjaV9jbGVhbnVwX3VubGlua19saXN0YC4gVGhhdCYjMzk7cyBhIHN0YW5kYXJkIHBhdHRlcm4gZm9yIGRlZmVycmluZyBzb21lIGNsZWFudXAgb3BlcmF0aW9ucywgdXN1YWxseSBiZWNhdXNlIHRoZXkgaW52b2x2ZSBzb21lIHJlc291cmNlIGRlYWxsb2NhdGlvbiB0aGF0IG1pZ2h0IGJlIHRyaWNreSB0byBkbyBkaXJlY3RseSB3aXRoaW4gdGhlIG1haW4gdW5saW5rIGZsb3cuIEJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbGFyZ2VyIGNvbnRleHQuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzOiAqd2hlcmUqIGlzIGB2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cGAgY2FsbGVkPyBLbm93aW5nIHRoZSBjYWxsIHNpdGVzIHdpbGwgcmV2ZWFsIHRoZSBzY2VuYXJpb3MgdGhhdCB0cmlnZ2VyIHRoaXMgY2xlYW51cCBwcm9jZXNzIGFuZCBleHBvc2UgdGhlIGVkZ2UtY2FzZXMgdGhhdCBhcmUgbGlrZWx5IHRvIG5lZWQgc3BlY2lhbCBhdHRlbnRpb24uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGZ1bmN0aW9uIGNhbGwuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoZW4gYW5kIHdoeSB0aGUgZGV2aWNlIGlzIGJlaW5nIHVubGlua2VkIGluIHRoZSBmaXJzdCBwbGFjZSwgYW5kIHdoYXQgY29uZGl0aW9ucyByZXF1aXJlIHRoaXMgc3BlY2lmaWMgY2xlYW51cC4gVGhhdCYjMzk7cyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucywgcmVzb3VyY2UgbGVha3MsIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IgaW4gdGhlIFZIQ0kgZHJpdmVyLiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCBzdGFydCBjcm9zcy1yZWZlcmVuY2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz05OTQ9c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNDItXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDM6c3RhdGljIHZvaWQgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXAoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDQ0LXtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEwNTc9c3RhdGljIHZvaWQgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uKHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA4Ni1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTA4NzpcdHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDg4LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTM1MAoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgc2VxdWVuY2UsIHRoaW5raW5nIHRocm91Z2ggaXQgaW4gYSB0ZWNobmljYWwgY29udGV4dC4KCioqVW5kZXJzdGFuZGluZyB0aGUgVkhDSSBDb25uZWN0aW9uIFNodXRkb3duIFByb2Nlc3MqKgoKUmlnaHQsIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gaG93IHRoZSBWSENJIGNvbm5lY3Rpb24gc2h1dHMgZG93bi4gSXQgbG9va3MgbGlrZSB0aGUgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAgZnVuY3Rpb24gaXMgdGhlIGtleSBzdGFydGluZyBwb2ludC4gIFRoaXMgaXMgd2hhdCBpbml0aWF0ZXMgdGhlIHRlYXJkb3duLiAgTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHdoYXQmIzM5O3MgaGFwcGVuaW5nIHdoZW4gYSBjb25uZWN0aW9uIGdvZXMgZG93bj8gIEl0JiMzOTtzIGNsZWFyIHRoYXQgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAgY2FsbHMgYHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIEkmIzM5O2QgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gd2hhdCBgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXBgIGFjdHVhbGx5ICpkb2VzKi4gSXMgaXQgZnJlZWluZyByZXNvdXJjZXMsIHNpZ25hbGluZyB0aGUgZGV2aWNlcywgb3IgYm90aD8gIEkmIzM5O2xsIG5lZWQgdG8gbG9vayBhdCB0aGF0IGZ1bmN0aW9uJiMzOTtzIGltcGxlbWVudGF0aW9uIGNsb3NlbHkgdG8gdW5kZXJzdGFuZCB0aGUgbnVhbmNlcy4KClRoZW4gdGhlcmUmIzM5O3MgdGhlIGB2aGNpX3JlY3ZfcmV0X3VubGlua2AgZnVuY3Rpb24uIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgY2FsbGVkIGZyb20gYHZoY2lfcnhfcGR1YCBzdWdnZXN0cyB0aGlzIGlzIGNsb3NlbHkgdGllZCB0byBoYW5kbGluZyBpbmNvbWluZyBkYXRhIG9yIGNvbW1hbmRzLCBzcGVjaWZpY2FsbHkgcmVsYXRpbmcgdG8gdW5saW5raW5nIGEgZGV2aWNlLiBJdCYjMzk7cyBsaWtlbHkgdGhhdCBpZiBhIHBhcnRpY3VsYXIgY29tbWFuZCBvciBwaWVjZSBvZiBkYXRhIHJlY2VpdmVkIGluZGljYXRlcyB0aGUgY29ubmVjdGlvbiBzaG91bGQgY2xvc2UsIHRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBpdC4gIFRoZSAmIzM0O3VubGluayYjMzQ7IGJpdCBpcyBpbXBvcnRhbnQg4oCTIHRoaXMgaXMgYWJvdXQgc2V2ZXJpbmcgdGhlIGRldmljZSBmcm9tIHRoZSBjb25uZWN0aW9uIGluIHRoaXMgc3lzdGVtLiBJIHdhbnQgdG8ga25vdyB3aGVuIGRvZXMgdGhpcyBnZXQgY2FsbGVkIGluIHJlbGF0aW9uIHRvIHRoZSBpbml0aWFsIHNodXRkb3duLiBJcyBpdCBhIGRpcmVjdCByZXNwb25zZSB0byBhIHNwZWNpZmljIG1lc3NhZ2UsIG9yIGlzIGl0IGluaXRpYXRlZCBieSBzb21lIG90aGVyIHN0YXRlIGNoYW5nZT8gSSYjMzk7ZCBleHBlY3QgaXQgdG8gcGxheSBhIGNyaXRpY2FsIHJvbGUgaW4gdGhlIGdyYWNlZnVsIG9yIGZvcmNlZCBkaXNjb25uZWN0aW9uLCBkZXBlbmRpbmcgb24gdGhlIHNjZW5hcmlvLiBJJiMzOTttIHdvbmRlcmluZyBpZiB0aGlzIGlzIGEgYmxvY2tpbmcgY2FsbCwgb3IgYW4gYXN5Y2hyb25vdXMgcHJvY2Vzcy4gU28gaXQgbWFrZXMgbWUgY29uc2lkZXIgaG93IHdlIG1pZ2h0IGJlIGFibGUgdG8gaGFuZGxlIGFuIGVycm9yIHNjZW5hcmlvIHdpdGhpbiB0aGlzIGZsb3cuIEkmIzM5O20gZ29pbmcgdG8gaGF2ZSB0byBkaXZlIGludG8gdGhlIHNwZWNpZmljIGNvZGUgYW5kIHRyYWNpbmcgbG9ncyB0byBmdWxseSBncmFzcCB0aGlzIGludGVyYWN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aGNpX3JlY3ZfcmV0X3VubGluayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3VzYmlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTEyPXN0YXRpYyBzdHJ1Y3QgdmhjaV91bmxpbmsgKmRlcXVldWVfcGVuZGluZ191bmxpbmsoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMzYtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTM3OnN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMzgtXHRcdFx0XHQgc3RydWN0IHVzYmlwX2hlYWRlciAqcGR1KVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYz0xOTg9c3RhdGljIHZvaWQgdmhjaV9yeF9wZHUoc3RydWN0IHVzYmlwX2RldmljZSAqdWQpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTI0NS1cdGNhc2UgVVNCSVBfUkVUX1VOTElOSzpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoyNDY6XHRcdHZoY2lfcmVjdl9yZXRfdW5saW5rKHZkZXYsIFx1MDAyNnBkdSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMjQ3LVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwOTUKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAzNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFBvdGVudGlhbCBGb2N1cyBTeW1ib2xzKioKCk9rYXksIHNvIEkgbmVlZCB0byBjaG9vc2UgdGhlIGtleSBzeW1ib2xzIGZvciB0aGlzIGFuYWx5c2lzLiBCYXNlZCBvbiB0aGUgaW5pdGlhbCBpbnZlc3RpZ2F0aW9uLCBJIHdhcyB0aGlua2luZyBhYm91dCB0aGVzZTogYHZoY2lfdXJiX2RlcXVldWVgLCBgdmhjaV9yZWN2X3JldF91bmxpbmtgLCBhbmQgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAuIFRoZSBsYXN0IG9uZSBsZWFkcyB0byBgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXBgLCB3aGljaCB0aGVuIGNhbGxzIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgLCBidXQgdGhlIHJvb3QgZnVuY3Rpb25zIGFyZSB0aGUgb25lcyBJJiMzOTttIHJlYWxseSBjb25jZXJuZWQgd2l0aC4KClJpZ2h0LCBgdmhjaV91cmJfZGVxdWV1ZWAgbG9va3MgbGlrZSBhIHN0cm9uZyBjb250ZW5kZXIuIEFuZCBgdmhjaV9yZWN2X3JldF91bmxpbmtgIHNlZW1zIHJlbGV2YW50IGFzIHdlbGwgc2luY2UgaXTigJlzIGRpcmVjdGx5IHRpZWQgdG8gdGhlIHVubGluayBwcm9jZXNzLiBgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uYCBpcyBhbHNvIGEgdmFsaWQgY2hvaWNlLiBXaGlsZSBgdmhjaV9yeF9wZHVgIGlzIHRoZSBlbnRyeSBmb3IgcmVjZWl2aW5nIFBEVXMsIGB2aGNpX3JlY3ZfcmV0X3VubGlua2AgaXMgc3BlY2lmaWMgdG8gdGhlIHVubGlua2luZyBhbmQgc2VlbXMgbW9yZSB1c2VmdWwuCgpOb3csIGEgY3JpdGljYWwgcG9pbnQg4oCTIHRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmeSBhIHByZWZlcmVuY2UgZm9yIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeSBwb2ludHMuIEludGVybmFsIHN0YXRpYyBoZWxwZXJzIGFyZSBvZnRlbiBpbmxpbmVkIGFuZCBkb27igJl0IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3Nlcywgd2hpY2ggbWFrZXMgdGhlbSBsZXNzIHVzZWZ1bCBmb3IgdGhpcyBwdXJwb3NlLgoKYHZoY2lfdXJiX2RlcXVldWVgIGlzLCBpbiBmYWN0LCBzdGF0aWMuIEJ1dCwgaXRzIGFkZHJlc3MgaXMgdGFrZW4gYW5kIHVzZWQgaW4gYHZoY2lfaGNfZHJpdmVyYCwgbWVhbmluZyBpdCAqd29uJiMzOTt0KiBiZSBpbmxpbmVkLiBUaGF0IG1ha2VzIGl0IGEgdmFsaWQgY2FuZGlkYXRlLgoKSG93ZXZlciwgYHZoY2lfcmVjdl9yZXRfdW5saW5rYCBpcyBzdGF0aWMsIHdoaWNoIGlzIGEgY29uY2Vybi4gSXTigJlzIGNhbGxlZCBmcm9tIGB2aGNpX3J4X3BkdWAsIHNvIEkgc2hvdWxkIGNoZWNrIGB2aGNpX3J4X3BkdWAgdG8gc2VlIGlmIGl04oCZcyBpbmxpbmVkLiBJdCBpcyBhbHNvIHN0YXRpYy4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYHZoY2lfcnhfbG9vcGAsIHdoaWNoIG5lZWRzIHRvIGJlIGxvb2tlZCBhdCBuZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aGNpX3J4X2xvb3AmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTEzNz1zdHJ1Y3QgdXJiICpwaWNrdXBfdXJiX2FuZF9mcmVlX3ByaXYoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LCBfX3UzMiBzZXFudW0pO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEzODppbnQgdmhjaV9yeF9sb29wKHZvaWQgKmRhdGEpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTEzOS1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTk4PXN0YXRpYyB2b2lkIHZoY2lfcnhfcGR1KHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0yNTYtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MjU3OmludCB2aGNpX3J4X2xvb3Aodm9pZCAqZGF0YSlcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0yNTgte1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYz0zMTU9c3RhdGljIHNzaXplX3QgYXR0YWNoX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTM4MS1cdC8qIGNyZWF0ZSB0aHJlYWRzIGJlZm9yZSBsb2NraW5nICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MzgyOlx0dGNwX3J4ID0ga3RocmVhZF9jcmVhdGUodmhjaV9yeF9sb29wLCBcdTAwMjZ2ZGV2LVx1MDAzZXVkLCBcJiMzNDt2aGNpX3J4XCYjMzQ7KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0zODMtXHRpZiAoSVNfRVJSKHRjcF9yeCkpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEyMjEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2YgdGhpcy4KCioqSW52ZXN0aWdhdGluZyBVU0IgVmlydHVhbCBIb3N0IENvbnRyb2xsZXIgKFZIQ0kpIFRocmVhZCBNYW5hZ2VtZW50KioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUsIEkmIzM5O20gdHJ5aW5nIHRvIHdyYXAgbXkgaGVhZCBhcm91bmQgdGhlIHRocmVhZCBtYW5hZ2VtZW50IGluIHRoZSBWSENJIGRyaXZlci4gYHZoY2lfcnhfbG9vcGAgaXMgdGhlIGVudHJ5IHBvaW50IGZvciBhIGt0aHJlYWQsIGFuZCBpdCYjMzk7cyBub3QgZGVjbGFyZWQgYXMgc3RhdGljLiBHb29kLCB0aGF0IG1ha2VzIHNlbnNlLiBOb3csIGB2aGNpX3VyYl9kZXF1ZXVlYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgYnV0IGl0JiMzOTtzIGEgY2FsbGJhY2ssIHNvIHRoYXQmIzM5O3MgcHJvYmFibHkgYWxyaWdodC4gSSB0aGluayBJIGNhbiBsaWtlbHkgdXRpbGl6ZSB0aGVzZSB0aHJlZSBmdW5jdGlvbnM6IGB2aGNpX3VyYl9kZXF1ZXVlYCwgYHZoY2lfcnhfbG9vcGAsIGFuZCBgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uYC4gTm93LCB3YWl0IGEgc2Vjb25kLiBJIGp1c3QgcmVhbGl6ZWQgdGhhdCBgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uYCBpcyBhIHN0YXRpYyBmdW5jdGlvbi4gVGhhdCBtZWFucyBpdHMgc2NvcGUgaXMgbGltaXRlZCB3aXRoaW4gdGhlIGZpbGUgb3IgbW9kdWxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBpdCYjMzk7cyBiZWluZyBjYWxsZWQuIFRoYXQmIzM5O3MgdGhlIG5leHQgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gSSBuZWVkLiBJJiMzOTtsbCBuZWVkIHRvIHRyYWNlIGl0cyByZWZlcmVuY2VzIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGNvbm5lY3Rpb24gbGlmZWN5Y2xlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xMDQzPXN0YXRpYyB2b2lkIHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTYtICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNTc6c3RhdGljIHZvaWQgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uKHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDU4LXtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTExMDEtXHQgKiBOT1RFOiB2aGNpX2RlcXVldWUoKSBtdXN0IGJlIGNvbnNpZGVyZWQgY2FyZWZ1bGx5LiBXaGVuIHNodXR0aW5nIGRvd25cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTEwMjpcdCAqIGEgY29ubmVjdGlvbiwgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uKCkgZXhwZWN0cyB2aGNpX2RlcXVldWUoKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTAzLVx0ICogZ2l2ZXMgYmFjayBwdXNoZWQgdXJicyBhbmQgZnJlZXMgdGhlaXIgcHJpdmF0ZSBkYXRhIGJ5IHJlcXVlc3Qgb2Zcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTExNDc9c3RhdGljIHZvaWQgdmhjaV9kZXZpY2VfaW5pdChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTYzLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMTY0Olx0dmRldi1cdTAwM2V1ZC5laF9vcHMuc2h1dGRvd24gPSB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb247XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTExNjUtXHR2ZGV2LVx1MDAzZXVkLmVoX29wcy5yZXNldCA9IHZoY2lfZGV2aWNlX3Jlc2V0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTk2NgoJCQkJCQkJb3V0cHV0OiAxNjAKCQkJCQkJCXRob3VnaHRzOiAzNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVU0IvSVAgVkhDSSBTaHV0ZG93biBDYWxsYmFjayoqCgpPa2F5LCBzbyB0aGlzIGlzIGFib3V0IHRoZSBjYWxsYmFjayBmb3IgYGVoX29wcy5zaHV0ZG93bmAsIHJpZ2h0PyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUga2V5IGFyZWFzIHRvIGZvY3VzIG9uIGluIHRoaXMgY29udGV4dC4gYHZoY2lfdXJiX2RlcXVldWVgLCBgdmhjaV9yeF9sb29wYCwgYW5kIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gIGFyZSBkZWZpbml0ZWx5IGltcG9ydGFudCBzeW1ib2xzIHRvIHplcm8gaW4gb24uCgpJIG5lZWQgdG8gcXVpY2tseSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRyaXZlci4gTGV0JiMzOTtzIHNlZSwgd2UgaGF2ZSBgVVNCSVBfVkhDSV9IQ0RgIGFuZCBgVVNCSVBfQ09SRWAuIEFueSBvdGhlciBkZXBlbmRlbmNpZXM/IEhtbSwgYFVTQklQX0NPUkVgIGRlcGVuZHMgb24gYE5FVGAsIGFuZCBgVVNCSVBfVkhDSV9IQ0RgIGRlcGVuZHMgb24gYFVTQklQX0NPUkVgIGFuZCBgVVNCYC4gU28gdGhlIGNvbXBsZXRlIHNldCBvZiBkZXBlbmRlbmNpZXMgd291bGQgaW5jbHVkZSBgVVNCSVBfVkhDSV9IQ0RgLCBgVVNCSVBfQ09SRWAsIGBVU0JgLCBhbmQgYE5FVGAuIEFsdGhvdWdoLCBmb3IgbXkgcHVycG9zZXMsIGxpc3RpbmcgYFVTQklQX1ZIQ0lfSENEYCBhbmQgYFVTQklQX0NPUkVgIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBub3cuCgpUaGUgcGF0Y2gmIzM5O3MgcHVycG9zZSBpcyB0byBhZGQgYSB0aW1lciB0byBoYW5kbGUgVVJCIHRpbWVvdXRzIGluIHRoZSBWSENJLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIFVTQi9JUCBkcml2ZXIsIHNvIGl0IGFmZmVjdHMgdW5saW5raW5nLCBhbmQgc2hvdWxkIHByZXZlbnQgcG90ZW50aWFsIGhhbmdzLiBCZWluZyB0aGF0IFVTQi9JUCBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB0aGlzIGlzIGEgdmFsaWQgdGFyZ2V0IGZvciBmdXp6aW5nLgoKTm93LCBsZXQmIzM5O3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgYHZoY2lfdW5saW5rX3RpbWVvdXRgIOKAkyB0aGUgbmV3bHkgYWRkZWQgZnVuY3Rpb24uIEl0JiMzOTtzIHN0YXRpYywgd2hpY2ggaXMgaW50ZXJlc3RpbmcsIGJ1dCBpdCYjMzk7cyBhIHRpbWVyIGNhbGxiYWNrLCBzbyBpdCYjMzk7cyBub3QgaW5saW5lZCwgd2hpY2ggZXhwYW5kcyBpdHMgaW1wYWN0LiBJIHRoaW5rIHRoaXMgY291bGQgYmUgYSBmb2N1cyBzeW1ib2wgYXMgd2VsbC4KClNvLCBpbiBzdW1tYXJ5LCBoZXJlIGFyZSB0aGUga2V5IGZvY3VzIHN5bWJvbHM6Ci0gICBgdmhjaV91cmJfZGVxdWV1ZWAKLSAgIGB2aGNpX3VubGlua190aW1lb3V0YAotICAgYHZoY2lfcnhfbG9vcGAKLSAgIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gCgpBbHJpZ2h0LCB0aW1lIHRvIHNldCB0aGUgcmVzdWx0cyBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQklQX1ZIQ0lfSENEJiMzNDssCiAgICAmIzM0O1VTQklQX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aGNpX3VyYl9kZXF1ZXVlJiMzNDssCiAgICAmIzM0O3ZoY2lfdW5saW5rX3RpbWVvdXQmIzM0OywKICAgICYjMzQ7dmhjaV9yeF9sb29wJiMzNDssCiAgICAmIzM0O3ZoY2lfc2h1dGRvd25fY29ubmVjdGlvbiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBtZWNoYW5pc20gZm9yIFVSQiB1bmxpbmtpbmcgaW4gdGhlIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciAodmhjaSkgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyBwb3RlbnRpYWwgaGFuZ3Mgd2hlbiB1bmxpbmtpbmcgVVJCcyBieSBpbnRyb2R1Y2luZyBhIHRpbWVyIHRoYXQgdHJpZ2dlcnMgYSBUQ1AgZXJyb3IgZXZlbnQgaWYgdGhlIHVubGluayBvcGVyYXRpb24gdGFrZXMgdG9vIGxvbmcuIFRoZSBVU0IvSVAgZHJpdmVyIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGlzIGEgdmFsaWQgdGFyZ2V0IGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JJUF9WSENJX0hDRCYjMzQ7LAogICAgJiMzNDtVU0JJUF9DT1JFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmhjaV91cmJfZGVxdWV1ZSYjMzQ7LAogICAgJiMzNDt2aGNpX3VubGlua190aW1lb3V0JiMzNDssCiAgICAmIzM0O3ZoY2lfcnhfbG9vcCYjMzQ7LAogICAgJiMzNDt2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgbWVjaGFuaXNtIGZvciBVUkIgdW5saW5raW5nIGluIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgKHZoY2kpIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIGhhbmdzIHdoZW4gdW5saW5raW5nIFVSQnMgYnkgaW50cm9kdWNpbmcgYSB0aW1lciB0aGF0IHRyaWdnZXJzIGEgVENQIGVycm9yIGV2ZW50IGlmIHRoZSB1bmxpbmsgb3BlcmF0aW9uIHRha2VzIHRvbyBsb25nLiBUaGUgVVNCL0lQIGRyaXZlciBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBpcyBhIHZhbGlkIHRhcmdldCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA4OjU0OjMxLjkxMjkwNzkzOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzODM2NjcyOTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQklQX1ZIQ0lfSENEXCIsXG4gICAgXCJVU0JJUF9DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmhjaV91cmJfZGVxdWV1ZVwiLFxuICAgIFwidmhjaV91bmxpbmtfdGltZW91dFwiLFxuICAgIFwidmhjaV9yeF9sb29wXCIsXG4gICAgXCJ2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBtZWNoYW5pc20gZm9yIFVSQiB1bmxpbmtpbmcgaW4gdGhlIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciAodmhjaSkgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyBwb3RlbnRpYWwgaGFuZ3Mgd2hlbiB1bmxpbmtpbmcgVVJCcyBieSBpbnRyb2R1Y2luZyBhIHRpbWVyIHRoYXQgdHJpZ2dlcnMgYSBUQ1AgZXJyb3IgZXZlbnQgaWYgdGhlIHVubGluayBvcGVyYXRpb24gdGFrZXMgdG9vIGxvbmcuIFRoZSBVU0IvSVAgZHJpdmVyIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGlzIGEgdmFsaWQgdGFyZ2V0IGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDozMS45MTI5MTI3MDdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNDQ1MTY0NTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0YmE5ZTY3NzczYzMyNmEzYTRiMTFiNWVjYWJkMjdlZGY1MzJlNWQ1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgQXVnIDcgMDg6NTQ6MzAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oXFxuaW5kZXggNTY1OWRjZTE1MjZlOC4uOThlM2JmYjI5YjZiZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcXG4rKysgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcXG5AQCAtMTEsNiArMTEsNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbGlzdC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvc3BpbmxvY2suaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N5c2ZzLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC90aW1lci5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvdHlwZXMuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3VzYi5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvdXNiL2hjZC5oXFx1MDAzZVxcbkBAIC02NSw2ICs2Niw5IEBAIHN0cnVjdCB2aGNpX3VubGluayB7XFxuIFxcbiBcXHQvKiBzZXFudW0gb2YgdGhlIHVubGluayB0YXJnZXQgKi9cXG4gXFx0dW5zaWduZWQgbG9uZyB1bmxpbmtfc2VxbnVtO1xcbitcXG4rXFx0c3RydWN0IHRpbWVyX2xpc3QgdW5saW5rX3RpbWVyO1xcbitcXHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXY7XFxuIH07XFxuIFxcbiBlbnVtIGh1Yl9zcGVlZCB7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jXFxuaW5kZXggMzllOGZhZjRjMThjZC4uNWNjMjc2ZjQ2ZDUxYSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jXFxuKysrIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuY1xcbkBAIC04OTIsNiArODkyLDE0IEBAIHN0YXRpYyBpbnQgdmhjaV91cmJfZW5xdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGdmcF90IG1lbV9mbGFnXFxuICAqXFx0XFx0PVxcdTAwM2Ugc2VuZCBSRVRfVU5MSU5LXFxuICAqXFxuICAqL1xcbitzdGF0aWMgdm9pZCB2aGNpX3VubGlua190aW1lb3V0KHN0cnVjdCB0aW1lcl9saXN0ICp0KVxcbit7XFxuK1xcdHN0cnVjdCB2aGNpX3VubGluayAqdW5saW5rID0gdGltZXJfY29udGFpbmVyX29mKHVubGluaywgdCwgdW5saW5rX3RpbWVyKTtcXG4rXFx0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gdW5saW5rLVxcdTAwM2V2ZGV2O1xcbitcXG4rXFx0dXNiaXBfZXZlbnRfYWRkKFxcdTAwMjZ2ZGV2LVxcdTAwM2V1ZCwgVkRFVl9FVkVOVF9FUlJPUl9UQ1ApO1xcbit9XFxuK1xcbiBzdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxcbiB7XFxuIFxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcXG5AQCAtOTY0LDYgKzk3MiwxMCBAQCBzdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxcbiBcXHRcXHRcXHRkZXZfaW5mbyhoY2RfZGV2KGhjZCksIFxcXCJzZXFudW0gbWF4XFxcXG5cXFwiKTtcXG4gXFxuIFxcdFxcdHVubGluay1cXHUwMDNldW5saW5rX3NlcW51bSA9IHByaXYtXFx1MDAzZXNlcW51bTtcXG4rXFx0XFx0dW5saW5rLVxcdTAwM2V2ZGV2ID0gdmRldjtcXG4rXFxuK1xcdFxcdHRpbWVyX3NldHVwKFxcdTAwMjZ1bmxpbmstXFx1MDAzZXVubGlua190aW1lciwgdmhjaV91bmxpbmtfdGltZW91dCwgMCk7XFxuK1xcdFxcdG1vZF90aW1lcihcXHUwMDI2dW5saW5rLVxcdTAwM2V1bmxpbmtfdGltZXIsIGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDQwMDApKTtcXG4gXFxuIFxcdFxcdC8qIHNlbmQgY21kX3VubGluayBhbmQgdHJ5IHRvIGNhbmNlbCB0aGUgcGVuZGluZyBVUkIgaW4gdGhlXFxuIFxcdFxcdCAqIHBlZXIgKi9cXG5AQCAtOTk3LDcgKzEwMDksMTIgQEAgc3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4gXFx0XFx0dXJiID0gcGlja3VwX3VyYl9hbmRfZnJlZV9wcml2KHZkZXYsIHVubGluay1cXHUwMDNldW5saW5rX3NlcW51bSk7XFxuIFxcdFxcdGlmICghdXJiKSB7XFxuIFxcdFxcdFxcdGxpc3RfZGVsKFxcdTAwMjZ1bmxpbmstXFx1MDAzZWxpc3QpO1xcbitcXHRcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2dmRldi1cXHUwMDNlcHJpdl9sb2NrKTtcXG4rXFx0XFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbitcXHRcXHRcXHR0aW1lcl9kZWxldGVfc3luYyhcXHUwMDI2dW5saW5rLVxcdTAwM2V1bmxpbmtfdGltZXIpO1xcbiBcXHRcXHRcXHRrZnJlZSh1bmxpbmspO1xcbitcXHRcXHRcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbitcXHRcXHRcXHRzcGluX2xvY2soXFx1MDAyNnZkZXYtXFx1MDAzZXByaXZfbG9jayk7XFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbiBcXHRcXHR9XFxuIFxcbkBAIC0xMDEwLDYgKzEwMjcsNyBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxcbiBcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2dmRldi1cXHUwMDNlcHJpdl9sb2NrKTtcXG4gXFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbiBcXG4rXFx0XFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNnVubGluay1cXHUwMDNldW5saW5rX3RpbWVyKTtcXG4gXFx0XFx0dXNiX2hjZF9naXZlYmFja191cmIoaGNkLCB1cmIsIHVyYi1cXHUwMDNlc3RhdHVzKTtcXG4gXFxuIFxcdFxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZ2aGNpLVxcdTAwM2Vsb2NrLCBmbGFncyk7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguY1xcbmluZGV4IGE2NzhlN2M4OTgzNzUuLjY1OGE0NjRhMTc3NDEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXFxuKysrIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXFxuQEAgLTE3OCw2ICsxNzgsNyBAQCBzdGF0aWMgdm9pZCB2aGNpX3JlY3ZfcmV0X3VubGluayhzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYsXFxuIFxcdFxcdHVzYl9oY2RfZ2l2ZWJhY2tfdXJiKHZoY2lfaGNkX3RvX2hjZCh2aGNpX2hjZCksIHVyYiwgdXJiLVxcdTAwM2VzdGF0dXMpO1xcbiBcXHR9XFxuIFxcbitcXHR0aW1lcl9kZWxldGVfc3luYyhcXHUwMDI2dW5saW5rLVxcdTAwM2V1bmxpbmtfdGltZXIpO1xcbiBcXHRrZnJlZSh1bmxpbmspO1xcbiB9XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDozMy4xNTg0NjYwMDlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2MjU5MTEwNzM1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JJUF9WSENJX0hDRFwiLFxuICAgIFwiVVNCSVBfQ09SRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZoY2lfdXJiX2RlcXVldWVcIixcbiAgICBcInZoY2lfdW5saW5rX3RpbWVvdXRcIixcbiAgICBcInZoY2lfcnhfbG9vcFwiLFxuICAgIFwidmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgbWVjaGFuaXNtIGZvciBVUkIgdW5saW5raW5nIGluIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgKHZoY2kpIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIGhhbmdzIHdoZW4gdW5saW5raW5nIFVSQnMgYnkgaW50cm9kdWNpbmcgYSB0aW1lciB0aGF0IHRyaWdnZXJzIGEgVENQIGVycm9yIGV2ZW50IGlmIHRoZSB1bmxpbmsgb3BlcmF0aW9uIHRha2VzIHRvbyBsb25nLiBUaGUgVVNCL0lQIGRyaXZlciBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBpcyBhIHZhbGlkIHRhcmdldCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGJhOWU2Nzc3M2MzMjZhM2E0YjExYjVlY2FiZDI3ZWRmNTMyZTVkNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDg6NTQ6MzAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmggYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcbmluZGV4IDU2NTlkY2UxNTI2ZTguLjk4ZTNiZmIyOWI2YmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcbisrKyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaFxuQEAgLTExLDYgKzExLDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9saXN0LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zcGlubG9jay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc3lzZnMuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3RpbWVyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC90eXBlcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvdXNiLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC91c2IvaGNkLmhcdTAwM2VcbkBAIC02NSw2ICs2Niw5IEBAIHN0cnVjdCB2aGNpX3VubGluayB7XG4gXG4gXHQvKiBzZXFudW0gb2YgdGhlIHVubGluayB0YXJnZXQgKi9cbiBcdHVuc2lnbmVkIGxvbmcgdW5saW5rX3NlcW51bTtcbitcbitcdHN0cnVjdCB0aW1lcl9saXN0IHVubGlua190aW1lcjtcbitcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldjtcbiB9O1xuIFxuIGVudW0gaHViX3NwZWVkIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuY1xuaW5kZXggMzllOGZhZjRjMThjZC4uNWNjMjc2ZjQ2ZDUxYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmNcbisrKyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmNcbkBAIC04OTIsNiArODkyLDE0IEBAIHN0YXRpYyBpbnQgdmhjaV91cmJfZW5xdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGdmcF90IG1lbV9mbGFnXG4gICpcdFx0PVx1MDAzZSBzZW5kIFJFVF9VTkxJTktcbiAgKlxuICAqL1xuK3N0YXRpYyB2b2lkIHZoY2lfdW5saW5rX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4re1xuK1x0c3RydWN0IHZoY2lfdW5saW5rICp1bmxpbmsgPSB0aW1lcl9jb250YWluZXJfb2YodW5saW5rLCB0LCB1bmxpbmtfdGltZXIpO1xuK1x0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gdW5saW5rLVx1MDAzZXZkZXY7XG4rXG4rXHR1c2JpcF9ldmVudF9hZGQoXHUwMDI2dmRldi1cdTAwM2V1ZCwgVkRFVl9FVkVOVF9FUlJPUl9UQ1ApO1xuK31cbitcbiBzdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxuIHtcbiBcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcbkBAIC05NjQsNiArOTcyLDEwIEBAIHN0YXRpYyBpbnQgdmhjaV91cmJfZGVxdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGludCBzdGF0dXMpXG4gXHRcdFx0ZGV2X2luZm8oaGNkX2RldihoY2QpLCBcInNlcW51bSBtYXhcXG5cIik7XG4gXG4gXHRcdHVubGluay1cdTAwM2V1bmxpbmtfc2VxbnVtID0gcHJpdi1cdTAwM2VzZXFudW07XG4rXHRcdHVubGluay1cdTAwM2V2ZGV2ID0gdmRldjtcbitcbitcdFx0dGltZXJfc2V0dXAoXHUwMDI2dW5saW5rLVx1MDAzZXVubGlua190aW1lciwgdmhjaV91bmxpbmtfdGltZW91dCwgMCk7XG4rXHRcdG1vZF90aW1lcihcdTAwMjZ1bmxpbmstXHUwMDNldW5saW5rX3RpbWVyLCBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcyg0MDAwKSk7XG4gXG4gXHRcdC8qIHNlbmQgY21kX3VubGluayBhbmQgdHJ5IHRvIGNhbmNlbCB0aGUgcGVuZGluZyBVUkIgaW4gdGhlXG4gXHRcdCAqIHBlZXIgKi9cbkBAIC05OTcsNyArMTAwOSwxMiBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxuIFx0XHR1cmIgPSBwaWNrdXBfdXJiX2FuZF9mcmVlX3ByaXYodmRldiwgdW5saW5rLVx1MDAzZXVubGlua19zZXFudW0pO1xuIFx0XHRpZiAoIXVyYikge1xuIFx0XHRcdGxpc3RfZGVsKFx1MDAyNnVubGluay1cdTAwM2VsaXN0KTtcbitcdFx0XHRzcGluX3VubG9jayhcdTAwMjZ2ZGV2LVx1MDAzZXByaXZfbG9jayk7XG4rXHRcdFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZ2aGNpLVx1MDAzZWxvY2ssIGZsYWdzKTtcbitcdFx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZ1bmxpbmstXHUwMDNldW5saW5rX3RpbWVyKTtcbiBcdFx0XHRrZnJlZSh1bmxpbmspO1xuK1x0XHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnZoY2ktXHUwMDNlbG9jaywgZmxhZ3MpO1xuK1x0XHRcdHNwaW5fbG9jayhcdTAwMjZ2ZGV2LVx1MDAzZXByaXZfbG9jayk7XG4gXHRcdFx0Y29udGludWU7XG4gXHRcdH1cbiBcbkBAIC0xMDEwLDYgKzEwMjcsNyBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxuIFx0XHRzcGluX3VubG9jayhcdTAwMjZ2ZGV2LVx1MDAzZXByaXZfbG9jayk7XG4gXHRcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG4gXG4rXHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnVubGluay1cdTAwM2V1bmxpbmtfdGltZXIpO1xuIFx0XHR1c2JfaGNkX2dpdmViYWNrX3VyYihoY2QsIHVyYiwgdXJiLVx1MDAzZXN0YXR1cyk7XG4gXG4gXHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnZoY2ktXHUwMDNlbG9jaywgZmxhZ3MpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguY1xuaW5kZXggYTY3OGU3Yzg5ODM3NS4uNjU4YTQ2NGExNzc0MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguY1xuKysrIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXG5AQCAtMTc4LDYgKzE3OCw3IEBAIHN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbiBcdFx0dXNiX2hjZF9naXZlYmFja191cmIodmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSwgdXJiLCB1cmItXHUwMDNlc3RhdHVzKTtcbiBcdH1cbiBcbitcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnVubGluay1cdTAwM2V1bmxpbmtfdGltZXIpO1xuIFx0a2ZyZWUodW5saW5rKTtcbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDozMy4xNTg0Njg2MThaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDI3NzI4Mjg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFVTQi9JUCB2aGNpIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyBtb2RpZnlpbmcgY29yZSBVU0IvSVAgdmhjaSBmaWxlczogYHZoY2lfaGNkLmNgLCBgdmhjaV9yeC5jYCwgYW5kIGB2aGNpLmhgLiBUaGUgZ2lzdCBpcyB0aGV5J3JlIGFkZGluZyBhIHRpbWVvdXQgbWVjaGFuaXNtLCBzcGVjaWZpY2FsbHkgYSB0aW1lciBjYWxsZWQgYHVubGlua190aW1lcmAsIHRvIHRoZSBgc3RydWN0IHZoY2lfdW5saW5rYC4gVGhpcyBpcyBpbnRlbmRlZCB0byBhZGRyZXNzIHRpbWVvdXRzIGR1cmluZyBVUkIgdW5saW5raW5nIHdpdGhpbiB0aGUgdmhjaSwgd2hpY2ggaXMgYSBrZXkgZnVuY3Rpb24gb2YgdGhlIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlci5cblxuRXNzZW50aWFsbHksIHdoZW4gYHZoY2lfdXJiX2RlcXVldWVgIGdldHMgY2FsbGVkLCBpdCBzZXRzIHVwIGFuZCAqc3RhcnRzKiB0aGlzIHRpbWVyLiAgSWYgdGhpcyB0aW1lciBleHBpcmVzLCBgdmhjaV91bmxpbmtfdGltZW91dGAga2lja3MgaW4gYW5kIHRoZW4gY3JlYXRlcyBhIGBWREVWX0VWRU5UX0VSUk9SX1RDUGAgZXZlbnQuIFRoZSB0aW1lcidzIGxpZmVjeWNsZSBpcyB3ZWxsLWRlZmluZWQsIGJlaW5nIGRlbGV0ZWQgaW4gdGhlIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgIGFuZCBgdmhjaV9yZWN2X3JldF91bmxpbmtgIGZ1bmN0aW9ucy4gVGhpcyB0aW1lb3V0IGlzIGEgZ29vZCBtb3ZlLCBtYWtlcyB0aGUgZHJpdmVyIG1vcmUgcm9idXN0IVxuXG5Ob3csIHRoZSBmdW5jdGlvbmFsIGNoYW5nZSBpcyB0aGF0IHRoaXMgZGlyZWN0bHkgaW1wYWN0cyB0aGUgVVNCL0lQIGRyaXZlciBhbmQgdGhhdCdzICppbnRlcmVzdGluZyouLi4gZ2l2ZW4gdGhhdCB3ZSBrbm93IHRoYXQgVVNCL0lQIGlzIGEgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgd2hpY2ggaXMgZGVmaW5pdGVseSBpbiB0aGUgZnV6emluZyBzcG90bGlnaHQuICBXZSd2ZSBnb3Qgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3IgaXQuICBUaGUgZmFjdCB0aGF0IHdlIGFyZSBpbXByb3ZpbmcgdGhlIGVycm9yIGhhbmRsaW5nIG9mIGEgY29tcG9uZW50IGtub3duIHRvIGJlIGEgdGFyZ2V0IGZvciBmdXp6aW5nIG1lYW5zIGl0J3MgcHJldHR5IGNsZWFyIHdlIG5lZWQgdG8gbWFyayB0aGlzIGFzIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5leHQgc3RlcCwgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIEtjb25maWcgb3B0aW9ucyB0aGF0IGVuYWJsZSB0aGUgVVNCL0lQIHZoY2kuIEknbGwgdXNlIGBncmVwcGVyYCBhbmQgc2VhcmNoIGZvciByZWZlcmVuY2VzIHRvIGB2aGNpX2hjZC5jYCB3aXRoaW4gdGhlIGBkcml2ZXJzL3VzYi91c2JpcC9NYWtlZmlsZWAgYW5kIGBLY29uZmlnYCBmaWxlcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50IGZvciBlbmFibGluZyBhbmQgdGVzdGluZyB0aGlzIG5ldyB0aW1lb3V0IGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTA4LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTQ6NDAuMTg2MTk5NzI3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMDI1OTIyMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2aGNpX2hjZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi91c2JpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MjQgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvdXNiL3VzYmlwL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX1VTQklQX1ZIQ0lfSENEKSArPSB2aGNpLWhjZC5vXFxuZHJpdmVycy91c2IvdXNiaXAvTWFrZWZpbGU6ODp2aGNpLWhjZC15IDo9IHZoY2lfc3lzZnMubyB2aGNpX3R4Lm8gdmhjaV9yeC5vIHZoY2lfaGNkLm9cXG5kcml2ZXJzL3VzYi91c2JpcC9NYWtlZmlsZS05LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYz0zMTA9c3RhdGljIGludCBzdHViX3Byb2JlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYy0zNTMtXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYzozNTQ6XFx0aWYgKCFzdHJjbXAodWRldi1cXHUwMDNlYnVzLVxcdTAwM2VidXNfbmFtZSwgXFxcInZoY2lfaGNkXFxcIikpIHtcXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX2Rldi5jLTM1NS1cXHRcXHRkZXZfZGJnKFxcdTAwMjZ1ZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYzozNTY6XFx0XFx0XFx0XFxcIiVzIGlzIGF0dGFjaGVkIG9uIHZoY2lfaGNkLi4uIHNraXAhXFxcXG5cXFwiLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfZGV2LmMtMzU3LVxcdFxcdFxcdHVkZXZfYnVzaWQpO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jPTE3Mz1zdGF0aWMgaW50IHR3ZWFrX3NwZWNpYWxfcmVxdWVzdHMoc3RydWN0IHVyYiAqdXJiKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jLTIxMC0gKlxcbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfcnguYzoyMTE6ICogU2VlIGFsc28gY29tbWVudHMgYWJvdXQgdW5saW5raW5nIHN0cmF0ZWd5IGluIHZoY2lfaGNkLmMuXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jLTIxMi0gKi9cXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmM9MjEzPXN0YXRpYyBpbnQgc3R1Yl9yZWN2X2NtZF91bmxpbmsoc3RydWN0IHN0dWJfZGV2aWNlICpzZGV2LFxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jLTI3OC1cXHQgKiBDTURfUkVUIHBkdS4gSW4gdGhpcyBjYXNlLCB1c2JfdW5saW5rX3VyYigpIGlzIG5vdCBuZWVkZWQuIFdlIG9ubHlcXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmM6Mjc5OlxcdCAqIHJldHVybiB0aGUgY29tcGxldGVuZXNzIG9mIHRoaXMgdW5saW5rIHJlcXVlc3QgdG8gdmhjaV9oY2QuXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jLTI4MC1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3VzYmlwX2NvbW1vbi5jPTM0Mj1zdGF0aWMgdW5zaWduZWQgaW50IHR3ZWFrX3RyYW5zZmVyX2ZsYWdzKHVuc2lnbmVkIGludCBmbGFncylcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3VzYmlwX2NvbW1vbi5jLTM0OS0gKiBVU0JJUCBkcml2ZXIgcGFja3MgVVJCIHRyYW5zZmVyIGZsYWdzIGluIFBEVXMgdGhhdCBhcmUgZXhjaGFuZ2VkXFxuZHJpdmVycy91c2IvdXNiaXAvdXNiaXBfY29tbW9uLmM6MzUwOiAqIGJldHdlZW4gU2VydmVyICh1c2JpcF9ob3N0KSBhbmQgQ2xpZW50ICh2aGNpX2hjZCkuIFVSQl8qIGZsYWdzXFxuZHJpdmVycy91c2IvdXNiaXAvdXNiaXBfY29tbW9uLmMtMzUxLSAqIGFyZSBpbnRlcm5hbCB0byBrZXJuZWwgYW5kIGNvdWxkIGNoYW5nZS4gV2hlcmUgYXMgVVNCSVAgVVJCIGZsYWdzXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg9OTc9c3RydWN0IHZoY2kge1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTEwMS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTAyOlxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2RfaHM7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEwMzpcXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkX3NzO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xMDQtfTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xMDYtLyogZm9yIHVzYl9oY2QuaGNkX3ByaXZbMF0gKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTA3OnN0cnVjdCB2aGNpX2hjZCB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTEwOC1cXHRzdHJ1Y3QgdmhjaSAqdmhjaTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaD0xMjc9ZXh0ZXJuIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgdmhjaV9hdHRyX2dyb3VwO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xMjgtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEyOTovKiB2aGNpX2hjZC5jICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTEzMC12b2lkIHJoX3BvcnRfY29ubmVjdChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYsIGVudW0gdXNiX2RldmljZV9zcGVlZCBzcGVlZCk7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg9MTQ4PXN0YXRpYyBpbmxpbmUgaW50IHBvcnRfdG9fcGRldl9ucihfX3UzMiBwb3J0KVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE1Mi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTUzOnN0YXRpYyBpbmxpbmUgc3RydWN0IHZoY2lfaGNkICpoY2RfdG9fdmhjaV9oY2Qoc3RydWN0IHVzYl9oY2QgKmhjZClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTU0LXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTU1OlxcdHJldHVybiAoc3RydWN0IHZoY2lfaGNkICopIChoY2QtXFx1MDAzZWhjZF9wcml2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTU2LX1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaD0xNjM9c3RhdGljIGlubGluZSBjb25zdCBjaGFyICpoY2RfbmFtZShzdHJ1Y3QgdXNiX2hjZCAqaGNkKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE2Ny1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTY4OnN0YXRpYyBpbmxpbmUgc3RydWN0IHVzYl9oY2QgKnZoY2lfaGNkX3RvX2hjZChzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkKVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xNjkte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzA6XFx0cmV0dXJuIGNvbnRhaW5lcl9vZigodm9pZCAqKSB2aGNpX2hjZCwgc3RydWN0IHVzYl9oY2QsIGhjZF9wcml2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTcxLX1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTcyLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgdmhjaV9oY2QgKnZkZXZfdG9fdmhjaV9oY2Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xNzQte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzU6XFx0cmV0dXJuIGNvbnRhaW5lcl9vZigodm9pZCAqKSh2ZGV2IC0gdmRldi1cXHUwMDNlcmhwb3J0KSwgc3RydWN0IHZoY2lfaGNkLCB2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTc2LX1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9Mzk9c3RhdGljIGludCB2aGNpX3VyYl9kZXF1ZXVlKHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1cmIgKnVyYiwgaW50IHN0YXR1cyk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0MDpzdGF0aWMgaW50IHZoY2lfc3RhcnQoc3RydWN0IHVzYl9oY2QgKnZoY2lfaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQxLXN0YXRpYyB2b2lkIHZoY2lfc3RvcChzdHJ1Y3QgdXNiX2hjZCAqaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTQyPXN0YXRpYyBpbnQgdmhjaV9nZXRfZnJhbWVfbnVtYmVyKHN0cnVjdCB1c2JfaGNkICpoY2QpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDMtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NDpzdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZVtdID0gXFxcInZoY2lfaGNkXFxcIjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ1LXN0YXRpYyBjb25zdCBjaGFyIGRyaXZlcl9kZXNjW10gPSBcXFwiVVNCL0lQIFZpcnR1YWwgSG9zdCBDb250cm9sbGVyXFxcIjtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTU0PXZvaWQgcmhfcG9ydF9jb25uZWN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiwgZW51bSB1c2JfZGV2aWNlX3NwZWVkIHNwZWVkKVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU1LXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1NjpcXHRzdHJ1Y3QgdmhjaV9oY2RcXHQqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTU3OlxcdHN0cnVjdCB2aGNpICp2aGNpID0gdmhjaV9oY2QtXFx1MDAzZXZoY2k7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTgtXFx0aW50XFx0XFx0cmhwb3J0ID0gdmRldi1cXHUwMDNlcmhwb3J0O1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNjUtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNjY6XFx0c3RhdHVzID0gdmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF07XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNjctXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE4MC1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE4MTpcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSA9IHN0YXR1cztcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE4Mi1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTg0LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTg1OlxcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXModmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xODYtfVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xODg9c3RhdGljIHZvaWQgcmhfcG9ydF9kaXNjb25uZWN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE4OS17XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxOTA6XFx0c3RydWN0IHZoY2lfaGNkXFx0KnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE5MTpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTkyLVxcdGludFxcdFxcdHJocG9ydCA9IHZkZXYtXFx1MDAzZXJocG9ydDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTk5LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MjAwOlxcdHN0YXR1cyA9IHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjAxLVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDQtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyMDU6XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gPSBzdGF0dXM7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDYtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDctXFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MjA4OlxcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXModmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDktfVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0yMjk9c3RhdGljIGludCB2aGNpX2h1Yl9zdGF0dXMoc3RydWN0IHVzYl9oY2QgKmhjZCwgY2hhciAqYnVmKVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjMwLXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjIzMTpcXHRzdHJ1Y3QgdmhjaV9oY2RcXHQqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjIzMjpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjMzLVxcdGludFxcdFxcdHJldHZhbCA9IERJVl9ST1VORF9VUChWSENJX0hDX1BPUlRTICsgMSwgOCk7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTI0Ny1cXHRmb3IgKHJocG9ydCA9IDA7IHJocG9ydCBcXHUwMDNjIFZIQ0lfSENfUE9SVFM7IHJocG9ydCsrKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyNDg6XFx0XFx0aWYgKCh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2IFBPUlRfQ19NQVNLKSkge1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjQ5LVxcdFxcdFxcdC8qIFRoZSBzdGF0dXMgb2YgYSBwb3J0IGhhcyBiZWVuIGNoYW5nZWQsICovXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTMxNj1zdGF0aWMgaW50IHZoY2lfaHViX2NvbnRyb2woc3RydWN0IHVzYl9oY2QgKmhjZCwgdTE2IHR5cGVSZXEsIHUxNiB3VmFsdWUsXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTMxOC17XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzozMTk6XFx0c3RydWN0IHZoY2lfaGNkXFx0KnZoY2lfaGNkO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzIwLVxcdHN0cnVjdCB2aGNpXFx0KnZoY2k7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM1My1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM1NDpcXHR2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzU1OlxcdHZoY2kgPSB2aGNpX2hjZC1cXHUwMDNldmhjaTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM1Ni1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzYxLVxcdFxcdGlmICghaW52YWxpZF9yaHBvcnQpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzozNjI6XFx0XFx0XFx0bWVtY3B5KHByZXZfcG9ydF9zdGF0dXMsIHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1cyxcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM2My1cXHRcXHRcXHRcXHRzaXplb2YocHJldl9wb3J0X3N0YXR1cykpO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0zODMtXFx0XFx0XFx0XFx0XFxcIiBDbGVhclBvcnRGZWF0dXJlOiBVU0JfUE9SVF9GRUFUX1NVU1BFTkRcXFxcblxcXCIpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Mzg0OlxcdFxcdFxcdGlmICh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2IFVTQl9QT1JUX1NUQVRfU1VTUEVORCkge1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzg1LVxcdFxcdFxcdFxcdC8qIDIwbXNlYyBzaWduYWxpbmcgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM4NjpcXHRcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcmVzdW1pbmcgPSAxO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Mzg3OlxcdFxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2VyZV90aW1lb3V0ID0gamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMjApO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzg4LVxcdFxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzkzLVxcdFxcdFxcdGlmIChoY2QtXFx1MDAzZXNwZWVkIFxcdTAwM2U9IEhDRF9VU0IzKVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Mzk0OlxcdFxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFxcdTAwMjY9IH5VU0JfU1NfUE9SVF9TVEFUX1BPV0VSO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzk1LVxcdFxcdFxcdGVsc2VcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM5NjpcXHRcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2PSB+VVNCX1BPUlRfU1RBVF9QT1dFUjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM5Ny1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDAyLVxcdFxcdFxcdFxcdGdvdG8gZXJyb3I7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0MDM6XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXFx1MDAyNj0gfigxIFxcdTAwM2NcXHUwMDNjIHdWYWx1ZSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00MDQtXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ0Ny1cXHRcXHQgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ0ODpcXHRcXHRpZiAodmhjaV9oY2QtXFx1MDAzZXJlc3VtaW5nIFxcdTAwMjZcXHUwMDI2IHRpbWVfYWZ0ZXIoamlmZmllcywgdmhjaV9oY2QtXFx1MDAzZXJlX3RpbWVvdXQpKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NDk6XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXFx1MDAzY1xcdTAwM2MgVVNCX1BPUlRfRkVBVF9DX1NVU1BFTkQpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDUwOlxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFxcdTAwMjY9IH4oMSBcXHUwMDNjXFx1MDAzYyBVU0JfUE9SVF9GRUFUX1NVU1BFTkQpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDUxOlxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2VyZXN1bWluZyA9IDA7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NTI6XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXJlX3RpbWVvdXQgPSAwO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDUzLVxcdFxcdH1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ1NC1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1NTpcXHRcXHRpZiAoKHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFxcdTAwMjYgKDEgXFx1MDAzY1xcdTAwM2MgVVNCX1BPUlRfRkVBVF9SRVNFVCkpICE9XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NTY6XFx0XFx0ICAgIDAgXFx1MDAyNlxcdTAwMjYgdGltZV9hZnRlcihqaWZmaWVzLCB2aGNpX2hjZC1cXHUwMDNlcmVfdGltZW91dCkpIHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1NzpcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSB8PSAoMSBcXHUwMDNjXFx1MDAzYyBVU0JfUE9SVF9GRUFUX0NfUkVTRVQpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDU4OlxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFxcdTAwMjY9IH4oMSBcXHUwMDNjXFx1MDAzYyBVU0JfUE9SVF9GRUFUX1JFU0VUKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1OTpcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcmVfdGltZW91dCA9IDA7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjAtXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ2NC1cXHRcXHRcXHQgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ2NTpcXHRcXHRcXHRpZiAodmhjaV9oY2QtXFx1MDAzZXZkZXZbcmhwb3J0XS51ZC5zdGF0dXMgPT1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ2Ni1cXHRcXHRcXHRcXHRWREVWX1NUX05PVEFTU0lHTkVEIHx8XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0Njc6XFx0XFx0XFx0ICAgIHZoY2lfaGNkLVxcdTAwM2V2ZGV2W3JocG9ydF0udWQuc3RhdHVzID09XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjgtXFx0XFx0XFx0XFx0VkRFVl9TVF9VU0VEKSB7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ3MS1cXHRcXHRcXHRcXHRcXHRyaHBvcnQsXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NzI6XFx0XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXZkZXZbcmhwb3J0XS51ZC5zdGF0dXMpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDczOlxcdFxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NzQtXFx0XFx0XFx0XFx0XFx0VVNCX1BPUlRfU1RBVF9FTkFCTEU7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ3Ny1cXHRcXHRcXHRpZiAoaGNkLVxcdTAwM2VzcGVlZCBcXHUwMDNjIEhDRF9VU0IzKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0Nzg6XFx0XFx0XFx0XFx0c3dpdGNoICh2aGNpX2hjZC1cXHUwMDNldmRldltyaHBvcnRdLnNwZWVkKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NzktXFx0XFx0XFx0XFx0Y2FzZSBVU0JfU1BFRURfSElHSDpcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ4MDpcXHRcXHRcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSB8PVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDgxLVxcdFxcdFxcdFxcdFxcdCAgICAgIFVTQl9QT1JUX1NUQVRfSElHSF9TUEVFRDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDgzLVxcdFxcdFxcdFxcdGNhc2UgVVNCX1NQRUVEX0xPVzpcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ4NDpcXHRcXHRcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSB8PVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDg1LVxcdFxcdFxcdFxcdFxcdFxcdFVTQl9QT1JUX1NUQVRfTE9XX1NQRUVEO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00OTItXFx0XFx0fVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDkzOlxcdFxcdCgoX19sZTE2ICopIGJ1ZilbMF0gPSBjcHVfdG9fbGUxNih2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00OTQtXFx0XFx0KChfX2xlMTYgKikgYnVmKVsxXSA9XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0OTU6XFx0XFx0XFx0Y3B1X3RvX2xlMTYodmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXFx1MDAzZVxcdTAwM2UgMTYpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDk2LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01NDctXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1NDg6XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gVVNCX1BPUlRfU1RBVF9TVVNQRU5EO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTQ5LVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01NTctXFx0XFx0XFx0aWYgKGhjZC1cXHUwMDNlc3BlZWQgXFx1MDAzZT0gSENEX1VTQjMpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1NTg6XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gVVNCX1NTX1BPUlRfU1RBVF9QT1dFUjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU1OS1cXHRcXHRcXHRlbHNlXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1NjA6XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gVVNCX1BPUlRfU1RBVF9QT1dFUjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU2MS1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTg0LVxcdFxcdFxcdGlmIChoY2QtXFx1MDAzZXNwZWVkIFxcdTAwM2U9IEhDRF9VU0IzKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1ODU6XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gPSAwO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NTg2OlxcdFxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdID1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU4Ny1cXHRcXHRcXHRcXHRcXHQoVVNCX1NTX1BPUlRfU1RBVF9QT1dFUiB8XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU4OS1cXHRcXHRcXHRcXHRcXHQgVVNCX1BPUlRfU1RBVF9SRVNFVCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1OTA6XFx0XFx0XFx0fSBlbHNlIGlmICh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2IFVTQl9QT1JUX1NUQVRfRU5BQkxFKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1OTE6XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXFx1MDAyNj0gfihVU0JfUE9SVF9TVEFUX0VOQUJMRVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTkyLVxcdFxcdFxcdFxcdFxcdHwgVVNCX1BPUlRfU1RBVF9MT1dfU1BFRURcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTk2LVxcdFxcdFxcdC8qIDUwbXNlYyByZXNldCBzaWduYWxpbmcgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjU5NzpcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcmVfdGltZW91dCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDUwKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU5OC1cXHRcXHRcXHRmYWxsdGhyb3VnaDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjA4LVxcdFxcdFxcdGlmIChoY2QtXFx1MDAzZXNwZWVkIFxcdTAwM2U9IEhDRF9VU0IzKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MDk6XFx0XFx0XFx0XFx0aWYgKCh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02MTAtXFx0XFx0XFx0XFx0ICAgICBVU0JfU1NfUE9SVF9TVEFUX1BPV0VSKSAhPSAwKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTE6XFx0XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXFx1MDAzY1xcdTAwM2Mgd1ZhbHVlKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxMi1cXHRcXHRcXHRcXHR9XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02MTMtXFx0XFx0XFx0fSBlbHNlXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTQ6XFx0XFx0XFx0XFx0aWYgKCh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02MTUtXFx0XFx0XFx0XFx0ICAgICBVU0JfUE9SVF9TVEFUX1BPV0VSKSAhPSAwKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTY6XFx0XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXFx1MDAzY1xcdTAwM2Mgd1ZhbHVlKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxNy1cXHRcXHRcXHRcXHR9XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY1MS1cXHRcXHRcXHRkdW1wX3BvcnRfc3RhdHVzX2RpZmYocHJldl9wb3J0X3N0YXR1c1tyaHBvcnRdLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NjUyOlxcdFxcdFxcdFxcdFxcdCAgICAgIHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjUzLVxcdFxcdFxcdFxcdFxcdCAgICAgIGhjZC1cXHUwMDNlc3BlZWQgXFx1MDAzZT0gSENEX1VTQjMpO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02NjAtXFx0aWYgKCFpbnZhbGlkX3JocG9ydCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NjYxOlxcdCAgICAodmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXFx1MDAyNiBQT1JUX0NfTUFTSykgIT0gMCkge1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjYyLVxcdFxcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXMoaGNkKTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9NjY4PXN0YXRpYyB2b2lkIHZoY2lfdHhfdXJiKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02NzAtXFx0c3RydWN0IHZoY2lfcHJpdiAqcHJpdjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjY3MTpcXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY3Mi1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02ODEtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2ODI6XFx0cHJpdi1cXHUwMDNlc2VxbnVtID0gKHUzMilhdG9taWNfaW5jX3JldHVybihcXHUwMDI2dmhjaV9oY2QtXFx1MDAzZXNlcW51bSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02ODMtXFx0aWYgKHByaXYtXFx1MDAzZXNlcW51bSA9PSAweGZmZmYpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTY5Nz1zdGF0aWMgaW50IHZoY2lfdXJiX2VucXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBnZnBfdCBtZW1fZmxhZ3MpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02OTgte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Njk5OlxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjcwMDpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNzAxLVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZ1cmItXFx1MDAzZWRldi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy03MTAtXFx0fVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NzExOlxcdHZkZXYgPSBcXHUwMDI2dmhjaV9oY2QtXFx1MDAzZXZkZXZbcG9ydG51bS0xXTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTcxMi1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODU4LSAqXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo4NTk6ICogLSBXaGVuIHZoY2lfaGNkIHJlY2VpdmVzIFJFVF9TVUJNSVQsXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NjAtICpcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODY4LSAqXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo4Njk6ICogLSBXaGVuIHZoY2lfaGNkIHJlY2VpdmVzIFJFVF9VTkxJTkssXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NzAtICpcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjg3MTogKlxcdC0gY2FzZSAyYSkuIGEgc3VibWl0IHJlcXVlc3QgaXMgc3RpbGwgcGVuZGluZyBpbiB2aGNpX2hjZC5cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTg3Mi0gKlxcdFxcdC0gdXJiIHdhcyByZWFsbHkgcGVuZGluZyBpbiB1c2JpcC5rbyBhbmQgdXJiX3VubGlua191cmIoKSB3YXNcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODc2LSAqXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo4Nzc6ICpcXHQtIGNhc2UgMmIpLiBhIHN1Ym1pdCByZXF1ZXN0IGlzICpub3QqIHBlbmRpbmcgaW4gdmhjaV9oY2QuXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NzgtICpcXHRcXHQtIHVyYiB3YXMgYWxyZWFkeSBnaXZlbiBiYWNrIHRvIHRoZSBjb3JlIGRyaXZlci5cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9OTAzPXN0YXRpYyBpbnQgdmhjaV91cmJfZGVxdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGludCBzdGF0dXMpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy05MDQte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6OTA1OlxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjkwNjpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTA3LVxcdHN0cnVjdCB2aGNpX3ByaXYgKnByaXY7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk2OS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk3MDpcXHRcXHR1bmxpbmstXFx1MDAzZXNlcW51bSA9IGF0b21pY19pbmNfcmV0dXJuKFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNlc2VxbnVtKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk3MS1cXHRcXHRpZiAodW5saW5rLVxcdTAwM2VzZXFudW0gPT0gMHhmZmZmKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz05OTQ9c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTk2LXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk5NzpcXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk5ODpcXHRzdHJ1Y3QgdXNiX2hjZCAqaGNkID0gdmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk5OTpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTAwMC1cXHRzdHJ1Y3QgdmhjaV91bmxpbmsgKnVubGluaywgKnRtcDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTA1Nz1zdGF0aWMgdm9pZCB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb24oc3RydWN0IHVzYmlwX2RldmljZSAqdWQpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTktXFx0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gY29udGFpbmVyX29mKHVkLCBzdHJ1Y3QgdmhjaV9kZXZpY2UsIHVkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNjA6XFx0c3RydWN0IHVzYl9oY2QgKmhjZCA9IHZoY2lfaGNkX3RvX2hjZCh2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNjEtXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwOTctXFx0ICogZGV0YWNoZWQgZGV2aWNlIHNob3VsZCByZWxlYXNlIHVzZWQgdXJicyBpbiBhIGNsZWFudXAgZnVuY3Rpb24gKGkuZS5cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwOTg6XFx0ICogeHh4X2Rpc2Nvbm5lY3QoKSkuIFRoZXJlZm9yZSwgdmhjaV9oY2QgZG9lcyBub3QgbmVlZCB0byByZWxlYXNlXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDk5LVxcdCAqIHB1c2hlZCB1cmJzIGFuZCB0aGVpciBwcml2YXRlIGRhdGEgaW4gdGhpcyBmdW5jdGlvbi5cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTE4OD1zdGF0aWMgaW50IHZoY2lfc2V0dXAoc3RydWN0IHVzYl9oY2QgKmhjZClcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE5Mi1cXHRpZiAodXNiX2hjZF9pc19wcmltYXJ5X2hjZChoY2QpKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMTkzOlxcdFxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX2hzID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMTk0OlxcdFxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX2hzLVxcdTAwM2V2aGNpID0gdmhjaTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTExOTUtXFx0XFx0LypcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE5Ny1cXHRcXHQgKiBUaGUgVVNCIDMuMCByb290aHViIHdpbGwgYmUgcmVnaXN0ZXJlZCBsYXRlciBieVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTE5ODpcXHRcXHQgKiB2aGNpX2hjZF9wcm9iZSgpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTk5LVxcdFxcdCAqL1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjAyLVxcdH0gZWxzZSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjAzOlxcdFxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX3NzID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjA0OlxcdFxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX3NzLVxcdTAwM2V2aGNpID0gdmhjaTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMDUtXFx0XFx0aGNkLVxcdTAwM2VzcGVlZCA9IEhDRF9VU0IzMTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTIxNj1zdGF0aWMgaW50IHZoY2lfc3RhcnQoc3RydWN0IHVzYl9oY2QgKmhjZClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMTcte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTIxODpcXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjE5LVxcdGludCBpZCwgcmhwb3J0O1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjI0LVxcdGlmICh1c2JfaGNkX2lzX3ByaW1hcnlfaGNkKGhjZCkpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjI1OlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNldmhjaS1cXHUwMDNlbG9jayk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjI2LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjI5LVxcdGZvciAocmhwb3J0ID0gMDsgcmhwb3J0IFxcdTAwM2MgVkhDSV9IQ19QT1JUUzsgcmhwb3J0KyspIHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyMzA6XFx0XFx0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gXFx1MDAyNnZoY2lfaGNkLVxcdTAwM2V2ZGV2W3JocG9ydF07XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjMxLVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjM1LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTIzNjpcXHRhdG9taWNfc2V0KFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNlc2VxbnVtLCAwKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMzctXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyNTAtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjUxOlxcdC8qIHZoY2lfaGNkIGlzIG5vdyByZWFkeSB0byBiZSBjb250cm9sbGVkIHRocm91Z2ggc3lzZnMgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyNTItXFx0aWYgKGlkID09IDAgXFx1MDAyNlxcdTAwMjYgdXNiX2hjZF9pc19wcmltYXJ5X2hjZChoY2QpKSB7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEyNzA9c3RhdGljIHZvaWQgdmhjaV9zdG9wKHN0cnVjdCB1c2JfaGNkICpoY2QpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjcxLXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyNzI6XFx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI3My1cXHRpbnQgaWQsIHJocG9ydDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI3Ni1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyNzc6XFx0LyogMS4gcmVtb3ZlIHRoZSB1c2VybGFuZCBpbnRlcmZhY2Ugb2YgdmhjaV9oY2QgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyNzgtXFx0aWQgPSBoY2RfbmFtZV90b19pZChoY2RfbmFtZShoY2QpKTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI4My1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyODQ6XFx0LyogMi4gc2h1dGRvd24gYWxsIHRoZSBwb3J0cyBvZiB2aGNpX2hjZCAqL1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI4NS1cXHRmb3IgKHJocG9ydCA9IDA7IHJocG9ydCBcXHUwMDNjIFZIQ0lfSENfUE9SVFM7IHJocG9ydCsrKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjg2OlxcdFxcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNldmRldltyaHBvcnRdO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI4Ny1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTM1OD1zdGF0aWMgY29uc3Qgc3RydWN0IGhjX2RyaXZlciB2aGNpX2hjX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM2MC1cXHQucHJvZHVjdF9kZXNjXFx0PSBkcml2ZXJfZGVzYyxcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEzNjE6XFx0LmhjZF9wcml2X3NpemVcXHQ9IHNpemVvZihzdHJ1Y3QgdmhjaV9oY2QpLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM2Mi1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM4Mi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEzODM6c3RhdGljIGludCB2aGNpX2hjZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM4NC17XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0MzMtXFx0dXNiX3B1dF9oY2QoaGNkX2hzKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0MzQ6XFx0dmhjaS1cXHUwMDNldmhjaV9oY2RfaHMgPSBOVUxMO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQzNTpcXHR2aGNpLVxcdTAwM2V2aGNpX2hjZF9zcyA9IE5VTEw7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDM2LVxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0MzgtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDM5OnN0YXRpYyB2b2lkIHZoY2lfaGNkX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ0MC17XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NDctXFx0ICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDQ4OlxcdHVzYl9yZW1vdmVfaGNkKHZoY2lfaGNkX3RvX2hjZCh2aGNpLVxcdTAwM2V2aGNpX2hjZF9zcykpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQ0OTpcXHR1c2JfcHV0X2hjZCh2aGNpX2hjZF90b19oY2QodmhjaS1cXHUwMDNldmhjaV9oY2Rfc3MpKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NTAtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDUxOlxcdHVzYl9yZW1vdmVfaGNkKHZoY2lfaGNkX3RvX2hjZCh2aGNpLVxcdTAwM2V2aGNpX2hjZF9ocykpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQ1MjpcXHR1c2JfcHV0X2hjZCh2aGNpX2hjZF90b19oY2QodmhjaS1cXHUwMDNldmhjaV9oY2RfaHMpKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NTMtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDU0OlxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX2hzID0gTlVMTDtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0NTU6XFx0dmhjaS1cXHUwMDNldmhjaV9oY2Rfc3MgPSBOVUxMO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ1Ni19XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NjAtLyogd2hhdCBzaG91bGQgaGFwcGVuIGZvciBVU0IvSVAgdW5kZXIgc3VzcGVuZC9yZXN1bWU/ICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDYxOnN0YXRpYyBpbnQgdmhjaV9oY2Rfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDYyLXtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ4MC1cXHRmb3IgKHJocG9ydCA9IDA7IHJocG9ydCBcXHUwMDNjIFZIQ0lfSENfUE9SVFM7IHJocG9ydCsrKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDgxOlxcdFxcdGlmICh2aGNpLVxcdTAwM2V2aGNpX2hjZF9ocy1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDgyLVxcdFxcdCAgICBVU0JfUE9SVF9TVEFUX0NPTk5FQ1RJT04pXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0ODQtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDg1OlxcdFxcdGlmICh2aGNpLVxcdTAwM2V2aGNpX2hjZF9zcy1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDg2LVxcdFxcdCAgICBVU0JfUE9SVF9TVEFUX0NPTk5FQ1RJT04pXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0OTctXFx0fSBlbHNlIHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0OTg6XFx0XFx0ZGV2X2luZm8oXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcInN1c3BlbmQgdmhjaV9oY2RcXFwiKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0OTktXFx0XFx0Y2xlYXJfYml0KEhDRF9GTEFHX0hXX0FDQ0VTU0lCTEUsIFxcdTAwMjZoY2QtXFx1MDAzZWZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTUwNC1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1MDU6c3RhdGljIGludCB2aGNpX2hjZF9yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1MDYte1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTIxLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUyMjojZGVmaW5lIHZoY2lfaGNkX3N1c3BlbmRcXHROVUxMXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTIzOiNkZWZpbmUgdmhjaV9oY2RfcmVzdW1lXFx0XFx0TlVMTFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTUyNC1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTUyNz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB2aGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1Mjg6XFx0LnByb2JlXFx0PSB2aGNpX2hjZF9wcm9iZSxcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1Mjk6XFx0LnJlbW92ZSA9IHZoY2lfaGNkX3JlbW92ZSxcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1MzA6XFx0LnN1c3BlbmQgPSB2aGNpX2hjZF9zdXNwZW5kLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUzMTpcXHQucmVzdW1lXFx0PSB2aGNpX2hjZF9yZXN1bWUsXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTMyLVxcdC5kcml2ZXJcXHQ9IHtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTUzNz1zdGF0aWMgdm9pZCBkZWxfcGxhdGZvcm1fZGV2aWNlcyh2b2lkKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTQ3LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTU0ODpzdGF0aWMgaW50IF9faW5pdCB2aGNpX2hjZF9pbml0KHZvaWQpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTQ5LXtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU5Mi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1OTM6c3RhdGljIHZvaWQgX19leGl0IHZoY2lfaGNkX2V4aXQodm9pZClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1OTQte1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTk5LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTYwMDptb2R1bGVfaW5pdCh2aGNpX2hjZF9pbml0KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE2MDE6bW9kdWxlX2V4aXQodmhjaV9oY2RfZXhpdCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNjAyLVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jPTU1PXN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfc3VibWl0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy01Ny17XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjU4OlxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzo1OTpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy02MC1cXHRzdHJ1Y3QgdXNiaXBfZGV2aWNlICp1ZCA9IFxcdTAwMjZ2ZGV2LVxcdTAwM2V1ZDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy03MC1cXHRcXHRcXHRwZHUtXFx1MDAzZWJhc2Uuc2VxbnVtLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzo3MTpcXHRcXHRcXHRhdG9taWNfcmVhZChcXHUwMDI2dmhjaV9oY2QtXFx1MDAzZXNlcW51bSkpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy03Mi1cXHRcXHR1c2JpcF9ldmVudF9hZGQodWQsIFZERVZfRVZFTlRfRVJST1JfVENQKTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMDMtXFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNnZoY2ktXFx1MDAzZWxvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTA0OlxcdHVzYl9oY2RfdW5saW5rX3VyYl9mcm9tX2VwKHZoY2lfaGNkX3RvX2hjZCh2aGNpX2hjZCksIHVyYik7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEwNS1cXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZ2aGNpLVxcdTAwM2Vsb2NrLCBmbGFncyk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEwNi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTA3OlxcdHVzYl9oY2RfZ2l2ZWJhY2tfdXJiKHZoY2lfaGNkX3RvX2hjZCh2aGNpX2hjZCksIHVyYiwgdXJiLVxcdTAwM2VzdGF0dXMpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMDgtXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTM3PXN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMzkte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoxNDA6XFx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZCA9IHZkZXZfdG9fdmhjaV9oY2QodmRldik7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjE0MTpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xNDItXFx0c3RydWN0IHZoY2lfdW5saW5rICp1bmxpbms7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTc0LVxcdFxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZ2aGNpLVxcdTAwM2Vsb2NrLCBmbGFncyk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjE3NTpcXHRcXHR1c2JfaGNkX3VubGlua191cmJfZnJvbV9lcCh2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xNzYtXFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xNzctXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjE3ODpcXHRcXHR1c2JfaGNkX2dpdmViYWNrX3VyYih2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIsIHVyYi1cXHUwMDNlc3RhdHVzKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTc5LVxcdH1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0zMC0gKiBsZWFraW5nIGtlcm5lbCBtZW1vcnkgYWRkcmVzcyBpbjpcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MzE6ICpcXHQvc3lzL2RldmljZXMvcGxhdGZvcm0vdmhjaV9oY2QuMC9zdGF0dXMgYW5kIGluIGRlYnVnIG91dHB1dC5cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMzItICogVGhlIHNvY2tldCBwb2ludGVyIGFkZHJlc3MgaXMgbm90IHVzZWQgYXQgdGhlIG1vbWVudCBhbmQgaXQgd2FzIG1hZGVcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYz04Nj1zdGF0aWMgc3NpemVfdCBzdGF0dXNfc2hvd192aGNpKGludCBwZGV2X25yLCBjaGFyICpvdXQpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtOTAtXFx0c3RydWN0IHVzYl9oY2QgKmhjZDtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6OTE6XFx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZDtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtOTItXFx0Y2hhciAqcyA9IG91dDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0xMDctXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjEwODpcXHR2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxMDk6XFx0dmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0xMTAtXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTEzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBWSENJX0hDX1BPUlRTOyBpKyspIHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MTE0OlxcdFxcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFxcdTAwMjZ2aGNpLVxcdTAwM2V2aGNpX2hjZF9ocy1cXHUwMDNldmRldltpXTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTE1LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTEyMi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgVkhDSV9IQ19QT1JUUzsgaSsrKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjEyMzpcXHRcXHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYgPSBcXHUwMDI2dmhjaS1cXHUwMDNldmhjaV9oY2Rfc3MtXFx1MDAzZXZkZXZbaV07XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTEyNC1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYz0xODM9c3RhdGljIERFVklDRV9BVFRSX1JPKG5wb3J0cyk7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTg1LS8qIFN5c2ZzIGVudHJ5IHRvIHNodXRkb3duIGEgdmlydHVhbCBjb25uZWN0aW9uICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjE4NjpzdGF0aWMgaW50IHZoY2lfcG9ydF9kaXNjb25uZWN0KHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QsIF9fdTMyIHJocG9ydClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTg3LXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MTg4OlxcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNldmRldltyaHBvcnRdO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxODk6XFx0c3RydWN0IHZoY2kgKnZoY2kgPSB2aGNpX2hjZC1cXHUwMDNldmhjaTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTkwLVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGRldGFjaF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTI0My1cXHRzdHJ1Y3QgdXNiX2hjZCAqaGNkO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoyNDQ6XFx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZDtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMjQ1LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMjY0LVxcdGlmICgocG9ydCAvIFZIQ0lfSENfUE9SVFMpICUgMilcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MjY1OlxcdFxcdHZoY2lfaGNkID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCktXFx1MDAzZXZoY2ktXFx1MDAzZXZoY2lfaGNkX3NzO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0yNjYtXFx0ZWxzZVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDo0MC4yOTY0NjMxODlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTc3NTUxMzIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBVU0IvSVAgVkhDSSBIQ0QgQ29uZmlndXJhdGlvbiBPcHRpb24qKlxuXG5SaWdodCwgc28gdGhlIGNvbmZpZyBvcHRpb24gSSdtIGxvb2tpbmcgYXQgaXMgYENPTkZJR19VU0JJUF9WSENJX0hDRGAuIE15IGZpcnN0IHBvcnQgb2YgY2FsbCwgbmF0dXJhbGx5LCBpcyB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGF0IHBhcnQgb2YgdGhlIFVTQi9JUCBzdWJzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgbW9kdWxlJ3MgZGVwZW5kZW5jaWVzLCBpZiBhbnkuIEknbGwgb3BlbiB1cCBgZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZ2AgYW5kIHF1aWNrbHkgc2NhbiBmb3IgcmVsYXRpb25zaGlwcyB3aXRoIG90aGVyIG9wdGlvbnMgb3IgZmVhdHVyZXMuIEknbSBsb29raW5nIGZvciB0aGluZ3MgdGhhdCBtaWdodCBlbmFibGUgaXQsIGRpc2FibGUgaXQsIG9yIHByb3ZpZGUgZXNzZW50aWFsIGZ1bmN0aW9uYWxpdHkuIEdvdHRhIGdldCB0aGUgbGF5IG9mIHRoZSBsYW5kIGJlZm9yZSBJIGNhbiBkbyBhbnl0aGluZyBtb3JlIHNwZWNpZmljLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IGlzIGtleS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTY5MjAsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDo0NC44NzQwMTY3NTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU4NDA2NzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFVTQklQX1ZIQ0lfSENEXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3VzYmlwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZz0zPWNvbmZpZyBVU0JJUF9DT1JFXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC9LY29uZmlnLTIwLVxcbmRyaXZlcnMvdXNiL3VzYmlwL0tjb25maWc6MjE6Y29uZmlnIFVTQklQX1ZIQ0lfSENEXFxuZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiVkhDSSBoY2RcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA4OjU0OjQ0LjkxOTg2NDY5OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcyMDI5OTU1MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgZGVsaXZlcmVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnk6XG5cbioqUGVlcmluZyBpbnRvIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKlxuXG5BbHJpZ2h0LCBJJ20gdGhpbmtpbmcgSSBuZWVkIHRvIGRlbHZlIGludG8gdGhpcyBgVVNCSVBfVkhDSV9IQ0RgIEtjb25maWcgZW50cnkuIEkgd2FudCB0aGUgd2hvbGUgcGljdHVyZSwgdGhlIGNvbXBsZXRlIGNvbnRleHQuIE5vIHNuaXBwZXRzLCBubyBwYXJ0aWFsIHZpZXdzLiBJIG5lZWQgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBkZWZhdWx0cywgdGhlIGhlbHAgdGV4dCwgKmV2ZXJ5dGhpbmcqIHRoYXQgZGVmaW5lcyBob3cgdGhpcyBwYXJ0aWN1bGFyIHZpcnR1YWwgaG9zdCBjb250cm9sbGVyIGRyaXZlciBpcyBjb25maWd1cmVkIHdpdGhpbiB0aGUga2VybmVsLiBJJ20gYWZ0ZXIgdGhlIGZpbmUtZ3JhaW5lZCBkZXRhaWxzLiBVbmRlcnN0YW5kaW5nIHRoYXQgS2NvbmZpZyBlbnRyeSBjb21wbGV0ZWx5IHdpbGwgdGVsbCBtZSBob3cgdGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQsIGFuZCBkaXNhYmxlZCBhbmQgaG93IHRoYXQgaW1wYWN0cyBvdGhlciBmZWF0dXJlcy4gSSBoYXZlIGEgaHVuY2ggaXQgaXMgbGlua2VkIHdpdGggc29tZSBvdGhlciB1c2IgZmVhdHVyZXMgYW5kIHRoYXQgdW5kZXJzdGFuZGluZyBpdCBmdWxseSBpcyBpbXBvcnRhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3MjU0LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTQ6NTIuMTIyODYxODM1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU4MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdFxcbiAgIDM6XFx0Y29uZmlnIFVTQklQX0NPUkVcXG4gICA0OlxcdFxcdHRyaXN0YXRlIFxcXCJVU0IvSVAgc3VwcG9ydFxcXCJcXG4gICA1OlxcdFxcdGRlcGVuZHMgb24gTkVUXFxuICAgNjpcXHRcXHRzZWxlY3QgVVNCX0NPTU1PTlxcbiAgIDc6XFx0XFx0c2VsZWN0IFNHTF9BTExPQ1xcbiAgIDg6XFx0XFx0aGVscFxcbiAgIDk6XFx0XFx0ICBUaGlzIGVuYWJsZXMgcHVzaGluZyBVU0IgcGFja2V0cyBvdmVyIElQIHRvIGFsbG93IHJlbW90ZVxcbiAgMTA6XFx0XFx0ICBtYWNoaW5lcyBkaXJlY3QgYWNjZXNzIHRvIFVTQiBkZXZpY2VzLiBJdCBwcm92aWRlcyB0aGVcXG4gIDExOlxcdFxcdCAgVVNCL0lQIGNvcmUgdGhhdCBpcyByZXF1aXJlZCBieSBib3RoIGRyaXZlcnMuXFxuICAxMjpcXHRcXG4gIDEzOlxcdFxcdCAgRm9yIG1vcmUgZGV0YWlscywgYW5kIHRvIGdldCB0aGUgdXNlcnNwYWNlIHV0aWxpdHlcXG4gIDE0OlxcdFxcdCAgcHJvZ3JhbXMsIHBsZWFzZSBzZWUgXFx1MDAzY2h0dHA6Ly91c2JpcC5zb3VyY2Vmb3JnZS5uZXQvXFx1MDAzZS5cXG4gIDE1OlxcdFxcbiAgMTY6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbFxcbiAgMTc6XFx0XFx0ICBiZSBjYWxsZWQgdXNiaXAtY29yZS5cXG4gIDE4OlxcdFxcbiAgMTk6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiAgMjA6XFx0XFxuICAyMTpcXHRjb25maWcgVVNCSVBfVkhDSV9IQ0RcXG4gIDIyOlxcdFxcdHRyaXN0YXRlIFxcXCJWSENJIGhjZFxcXCJcXG4gIDIzOlxcdFxcdGRlcGVuZHMgb24gVVNCSVBfQ09SRSBcXHUwMDI2XFx1MDAyNiBVU0JcXG4gIDI0OlxcdFxcdGhlbHBcXG4gIDI1OlxcdFxcdCAgVGhpcyBlbmFibGVzIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgZHJpdmVyLFxcbiAgMjY6XFx0XFx0ICB3aGljaCBpcyBydW4gb24gdGhlIHJlbW90ZSBtYWNoaW5lLlxcbiAgMjc6XFx0XFxuICAyODpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbiAgMjk6XFx0XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdmhjaS1oY2QuXFxuICAzMDpcXHRcXG4gIDMxOlxcdGNvbmZpZyBVU0JJUF9WSENJX0hDX1BPUlRTXFxuICAzMjpcXHRcXHRpbnQgXFxcIk51bWJlciBvZiBwb3J0cyBwZXIgVVNCL0lQIHZpcnR1YWwgaG9zdCBjb250cm9sbGVyXFxcIlxcbiAgMzM6XFx0XFx0cmFuZ2UgMSAxNVxcbiAgMzQ6XFx0XFx0ZGVmYXVsdCA4XFxuICAzNTpcXHRcXHRkZXBlbmRzIG9uIFVTQklQX1ZIQ0lfSENEXFxuICAzNjpcXHRcXHRoZWxwXFxuICAzNzpcXHRcXHQgIFRvIGluY3JlYXNlIG51bWJlciBvZiBwb3J0cyBhdmFpbGFibGUgZm9yIFVTQi9JUCB2aXJ0dWFsXFxuICAzODpcXHRcXHQgIGhvc3QgY29udHJvbGxlciBkcml2ZXIsIHRoaXMgZGVmaW5lcyBudW1iZXIgb2YgcG9ydHMgcGVyXFxuICAzOTpcXHRcXHQgIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlci5cXG4gIDQwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDo1Mi4xMjI5MTg4ODVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODgxNzcwODIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVVNCSVAgQ29uZmlndXJhdGlvbiBmb3IgYSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmlnaHQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBGcm9tIHdoYXQgSSBzZWUsIHRoZSBwcmltYXJ5IGRlcGVuZGVuY2llcyBhcmUgYFVTQklQX0NPUkVgIGFuZCBgVVNCYC4gR290IGl0LiBUaGF0IG1lYW5zIEknbGwgbmVlZCB0byBlbmFibGUgYFVTQklQX1ZIQ0lfSENEYCBhbG9uZyB3aXRoIGBVU0JJUF9DT1JFYCB0byBtYWtlIHN1cmUgZXZlcnl0aGluZydzIHNldCB1cCBjb3JyZWN0bHkuIE1ha2VzIHNlbnNlIHNvIGZhci5cblxuTm93LCBsZXQncyBkcmlsbCBkb3duIGEgYml0IGFuZCBmaW5kIHRoZSByZWFsIGZvY3VzIHBvaW50cyBvZiB0aGUgY2hhbmdlLiBJdCBsb29rcyBsaWtlIHRoaXMgcGF0Y2ggc3BlY2lmaWNhbGx5IHRvdWNoZXMgYHZoY2lfdXJiX2RlcXVldWVgLCBgdmhjaV9jbGVhbnVwX3VubGlua19saXN0YCwgYW5kIGB2aGNpX3JlY3ZfcmV0X3VubGlua2AuIFJpZ2h0LCBzbyBgdmhjaV91cmJfZGVxdWV1ZWAgaXMgYSBmdW5jdGlvbiBwb2ludGVyIHdpdGhpbiB0aGF0IGB2aGNpX2hjX2RyaXZlcmAgc3RydWN0LCB3aGljaCBpcyBhIGBoY19kcml2ZXJgLiBUaGUgVVNCIGNvcmUgaXMgY2FsbGluZyBpbnRvIGl0LCBzbyB0aGF0J3MgYSBrZXkgaW50ZXJhY3Rpb24gdG8ga2VlcCBpbiBtaW5kLlxuXG5gdmhjaV9jbGVhbnVwX3VubGlua19saXN0YCBpcyBzdGF0aWMsIHNvIEknbGwgbmVlZCB0byBzZWUgaG93IGl0IGlzIGNhbGxlZCB0byBiZSBzdXJlLCBpbiBjYXNlIHRoZXJlIGFyZSBoaWRkZW4gaW50ZXJhY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzk5OCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA4OjU0OjU4LjAwNDY5NTgzN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI3MDAxMzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmhjaV9jbGVhbnVwX3VubGlua19saXN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3VzYmlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTkwMz1zdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy05OTMtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo5OTQ6c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk5NS1cXHRcXHRzdHJ1Y3QgbGlzdF9oZWFkICp1bmxpbmtfbGlzdClcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTA0Mz1zdGF0aWMgdm9pZCB2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNDUtXFx0LyogZ2l2ZSBiYWNrIFVSQiBvZiB1bnNlbnQgdW5saW5rIHJlcXVlc3QgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDY6XFx0dmhjaV9jbGVhbnVwX3VubGlua19saXN0KHZkZXYsIFxcdTAwMjZ2ZGV2LVxcdTAwM2V1bmxpbmtfdHgpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA0Ny1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNDgtXFx0LyogZ2l2ZSBiYWNrIFVSQiBvZiB1bmFuc3dlcmVkIHVubGluayByZXF1ZXN0ICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMDQ5OlxcdHZoY2lfY2xlYW51cF91bmxpbmtfbGlzdCh2ZGV2LCBcXHUwMDI2dmRldi1cXHUwMDNldW5saW5rX3J4KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTAtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDo1OC4wNDc0MDIzOTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI3NTI3MTQ5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgVkhDSSBVbmxpbmsgUHJvY2VzcyoqXG5cblJpZ2h0LCBzbyBgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXBgIHRyaWdnZXJzIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgLiBUaGF0J3MgYSBzdGFuZGFyZCBwYXR0ZXJuIGZvciBkZWZlcnJpbmcgc29tZSBjbGVhbnVwIG9wZXJhdGlvbnMsIHVzdWFsbHkgYmVjYXVzZSB0aGV5IGludm9sdmUgc29tZSByZXNvdXJjZSBkZWFsbG9jYXRpb24gdGhhdCBtaWdodCBiZSB0cmlja3kgdG8gZG8gZGlyZWN0bHkgd2l0aGluIHRoZSBtYWluIHVubGluayBmbG93LiBCdXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxhcmdlciBjb250ZXh0LiBUaGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZSBpczogKndoZXJlKiBpcyBgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXBgIGNhbGxlZD8gS25vd2luZyB0aGUgY2FsbCBzaXRlcyB3aWxsIHJldmVhbCB0aGUgc2NlbmFyaW9zIHRoYXQgdHJpZ2dlciB0aGlzIGNsZWFudXAgcHJvY2VzcyBhbmQgZXhwb3NlIHRoZSBlZGdlLWNhc2VzIHRoYXQgYXJlIGxpa2VseSB0byBuZWVkIHNwZWNpYWwgYXR0ZW50aW9uLiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBmdW5jdGlvbiBjYWxsLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVuIGFuZCB3aHkgdGhlIGRldmljZSBpcyBiZWluZyB1bmxpbmtlZCBpbiB0aGUgZmlyc3QgcGxhY2UsIGFuZCB3aGF0IGNvbmRpdGlvbnMgcmVxdWlyZSB0aGlzIHNwZWNpZmljIGNsZWFudXAuIFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucywgcmVzb3VyY2UgbGVha3MsIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IgaW4gdGhlIFZIQ0kgZHJpdmVyLiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCBzdGFydCBjcm9zcy1yZWZlcmVuY2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg4MDUsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NTowMi4zMjI2NzY1MjJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2NDAyNTI1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi91c2JpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz05OTQ9c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA0Mi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDM6c3RhdGljIHZvaWQgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXAoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA0NC17XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEwNTc9c3RhdGljIHZvaWQgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uKHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDg2LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTA4NzpcXHR2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cCh2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwODgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA4OjU1OjAyLjY4NjcwNjcwN1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTk0OTg3NTczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCBzZXF1ZW5jZSwgdGhpbmtpbmcgdGhyb3VnaCBpdCBpbiBhIHRlY2huaWNhbCBjb250ZXh0LlxuXG4qKlVuZGVyc3RhbmRpbmcgdGhlIFZIQ0kgQ29ubmVjdGlvbiBTaHV0ZG93biBQcm9jZXNzKipcblxuUmlnaHQsIHNvIEknbSBmb2N1c2luZyBvbiBob3cgdGhlIFZIQ0kgY29ubmVjdGlvbiBzaHV0cyBkb3duLiBJdCBsb29rcyBsaWtlIHRoZSBgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uYCBmdW5jdGlvbiBpcyB0aGUga2V5IHN0YXJ0aW5nIHBvaW50LiAgVGhpcyBpcyB3aGF0IGluaXRpYXRlcyB0aGUgdGVhcmRvd24uICBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgd2hhdCdzIGhhcHBlbmluZyB3aGVuIGEgY29ubmVjdGlvbiBnb2VzIGRvd24/ICBJdCdzIGNsZWFyIHRoYXQgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAgY2FsbHMgYHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIEknZCBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB3aGF0IGB2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cGAgYWN0dWFsbHkgKmRvZXMqLiBJcyBpdCBmcmVlaW5nIHJlc291cmNlcywgc2lnbmFsaW5nIHRoZSBkZXZpY2VzLCBvciBib3RoPyAgSSdsbCBuZWVkIHRvIGxvb2sgYXQgdGhhdCBmdW5jdGlvbidzIGltcGxlbWVudGF0aW9uIGNsb3NlbHkgdG8gdW5kZXJzdGFuZCB0aGUgbnVhbmNlcy5cblxuVGhlbiB0aGVyZSdzIHRoZSBgdmhjaV9yZWN2X3JldF91bmxpbmtgIGZ1bmN0aW9uLiBUaGUgZmFjdCB0aGF0IGl0J3MgY2FsbGVkIGZyb20gYHZoY2lfcnhfcGR1YCBzdWdnZXN0cyB0aGlzIGlzIGNsb3NlbHkgdGllZCB0byBoYW5kbGluZyBpbmNvbWluZyBkYXRhIG9yIGNvbW1hbmRzLCBzcGVjaWZpY2FsbHkgcmVsYXRpbmcgdG8gdW5saW5raW5nIGEgZGV2aWNlLiBJdCdzIGxpa2VseSB0aGF0IGlmIGEgcGFydGljdWxhciBjb21tYW5kIG9yIHBpZWNlIG9mIGRhdGEgcmVjZWl2ZWQgaW5kaWNhdGVzIHRoZSBjb25uZWN0aW9uIHNob3VsZCBjbG9zZSwgdGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIGl0LiAgVGhlIFwidW5saW5rXCIgYml0IGlzIGltcG9ydGFudCDigJMgdGhpcyBpcyBhYm91dCBzZXZlcmluZyB0aGUgZGV2aWNlIGZyb20gdGhlIGNvbm5lY3Rpb24gaW4gdGhpcyBzeXN0ZW0uIEkgd2FudCB0byBrbm93IHdoZW4gZG9lcyB0aGlzIGdldCBjYWxsZWQgaW4gcmVsYXRpb24gdG8gdGhlIGluaXRpYWwgc2h1dGRvd24uIElzIGl0IGEgZGlyZWN0IHJlc3BvbnNlIHRvIGEgc3BlY2lmaWMgbWVzc2FnZSwgb3IgaXMgaXQgaW5pdGlhdGVkIGJ5IHNvbWUgb3RoZXIgc3RhdGUgY2hhbmdlPyBJJ2QgZXhwZWN0IGl0IHRvIHBsYXkgYSBjcml0aWNhbCByb2xlIGluIHRoZSBncmFjZWZ1bCBvciBmb3JjZWQgZGlzY29ubmVjdGlvbiwgZGVwZW5kaW5nIG9uIHRoZSBzY2VuYXJpby4gSSdtIHdvbmRlcmluZyBpZiB0aGlzIGlzIGEgYmxvY2tpbmcgY2FsbCwgb3IgYW4gYXN5Y2hyb25vdXMgcHJvY2Vzcy4gU28gaXQgbWFrZXMgbWUgY29uc2lkZXIgaG93IHdlIG1pZ2h0IGJlIGFibGUgdG8gaGFuZGxlIGFuIGVycm9yIHNjZW5hcmlvIHdpdGhpbiB0aGlzIGZsb3cuIEknbSBnb2luZyB0byBoYXZlIHRvIGRpdmUgaW50byB0aGUgc3BlY2lmaWMgY29kZSBhbmQgdHJhY2luZyBsb2dzIHRvIGZ1bGx5IGdyYXNwIHRoaXMgaW50ZXJhY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzUwLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTU6MDguODgxNjk3MjZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5ODY5Njg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZoY2lfcmVjdl9yZXRfdW5saW5rXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3VzYmlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTEyPXN0YXRpYyBzdHJ1Y3QgdmhjaV91bmxpbmsgKmRlcXVldWVfcGVuZGluZ191bmxpbmsoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEzNi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTM3OnN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTM4LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgdXNiaXBfaGVhZGVyICpwZHUpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTk4PXN0YXRpYyB2b2lkIHZoY2lfcnhfcGR1KHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTI0NS1cXHRjYXNlIFVTQklQX1JFVF9VTkxJTks6XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjI0NjpcXHRcXHR2aGNpX3JlY3ZfcmV0X3VubGluayh2ZGV2LCBcXHUwMDI2cGR1KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMjQ3LVxcdFxcdGJyZWFrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NTowOC45MjE1NzAwMTdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODM4OTE5OTA4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUG90ZW50aWFsIEZvY3VzIFN5bWJvbHMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gY2hvb3NlIHRoZSBrZXkgc3ltYm9scyBmb3IgdGhpcyBhbmFseXNpcy4gQmFzZWQgb24gdGhlIGluaXRpYWwgaW52ZXN0aWdhdGlvbiwgSSB3YXMgdGhpbmtpbmcgYWJvdXQgdGhlc2U6IGB2aGNpX3VyYl9kZXF1ZXVlYCwgYHZoY2lfcmVjdl9yZXRfdW5saW5rYCwgYW5kIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gLiBUaGUgbGFzdCBvbmUgbGVhZHMgdG8gYHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwYCwgd2hpY2ggdGhlbiBjYWxscyBgdmhjaV9jbGVhbnVwX3VubGlua19saXN0YCwgYnV0IHRoZSByb290IGZ1bmN0aW9ucyBhcmUgdGhlIG9uZXMgSSdtIHJlYWxseSBjb25jZXJuZWQgd2l0aC5cblxuUmlnaHQsIGB2aGNpX3VyYl9kZXF1ZXVlYCBsb29rcyBsaWtlIGEgc3Ryb25nIGNvbnRlbmRlci4gQW5kIGB2aGNpX3JlY3ZfcmV0X3VubGlua2Agc2VlbXMgcmVsZXZhbnQgYXMgd2VsbCBzaW5jZSBpdOKAmXMgZGlyZWN0bHkgdGllZCB0byB0aGUgdW5saW5rIHByb2Nlc3MuIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gIGlzIGFsc28gYSB2YWxpZCBjaG9pY2UuIFdoaWxlIGB2aGNpX3J4X3BkdWAgaXMgdGhlIGVudHJ5IGZvciByZWNlaXZpbmcgUERVcywgYHZoY2lfcmVjdl9yZXRfdW5saW5rYCBpcyBzcGVjaWZpYyB0byB0aGUgdW5saW5raW5nIGFuZCBzZWVtcyBtb3JlIHVzZWZ1bC5cblxuTm93LCBhIGNyaXRpY2FsIHBvaW50IOKAkyB0aGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZnkgYSBwcmVmZXJlbmNlIGZvciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnkgcG9pbnRzLiBJbnRlcm5hbCBzdGF0aWMgaGVscGVycyBhcmUgb2Z0ZW4gaW5saW5lZCBhbmQgZG9u4oCZdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMsIHdoaWNoIG1ha2VzIHRoZW0gbGVzcyB1c2VmdWwgZm9yIHRoaXMgcHVycG9zZS5cblxuYHZoY2lfdXJiX2RlcXVldWVgIGlzLCBpbiBmYWN0LCBzdGF0aWMuIEJ1dCwgaXRzIGFkZHJlc3MgaXMgdGFrZW4gYW5kIHVzZWQgaW4gYHZoY2lfaGNfZHJpdmVyYCwgbWVhbmluZyBpdCAqd29uJ3QqIGJlIGlubGluZWQuIFRoYXQgbWFrZXMgaXQgYSB2YWxpZCBjYW5kaWRhdGUuXG5cbkhvd2V2ZXIsIGB2aGNpX3JlY3ZfcmV0X3VubGlua2AgaXMgc3RhdGljLCB3aGljaCBpcyBhIGNvbmNlcm4uIEl04oCZcyBjYWxsZWQgZnJvbSBgdmhjaV9yeF9wZHVgLCBzbyBJIHNob3VsZCBjaGVjayBgdmhjaV9yeF9wZHVgIHRvIHNlZSBpZiBpdOKAmXMgaW5saW5lZC4gSXQgaXMgYWxzbyBzdGF0aWMuIEl0J3MgY2FsbGVkIGZyb20gYHZoY2lfcnhfbG9vcGAsIHdoaWNoIG5lZWRzIHRvIGJlIGxvb2tlZCBhdCBuZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA5NSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NToxNy4zMTA3NzEzMTZaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1NTY2NDU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZoY2lfcnhfbG9vcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi91c2JpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTEzNz1zdHJ1Y3QgdXJiICpwaWNrdXBfdXJiX2FuZF9mcmVlX3ByaXYoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LCBfX3UzMiBzZXFudW0pO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxMzg6aW50IHZoY2lfcnhfbG9vcCh2b2lkICpkYXRhKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTM5LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jPTE5OD1zdGF0aWMgdm9pZCB2aGNpX3J4X3BkdShzdHJ1Y3QgdXNiaXBfZGV2aWNlICp1ZClcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0yNTYtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjI1NzppbnQgdmhjaV9yeF9sb29wKHZvaWQgKmRhdGEpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTI1OC17XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM9MzE1PXN0YXRpYyBzc2l6ZV90IGF0dGFjaF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTM4MS1cXHQvKiBjcmVhdGUgdGhyZWFkcyBiZWZvcmUgbG9ja2luZyAqL1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzozODI6XFx0dGNwX3J4ID0ga3RocmVhZF9jcmVhdGUodmhjaV9yeF9sb29wLCBcXHUwMDI2dmRldi1cXHUwMDNldWQsIFxcXCJ2aGNpX3J4XFxcIik7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTM4My1cXHRpZiAoSVNfRVJSKHRjcF9yeCkpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTU6MTcuMzU2MzQwMjIzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk0NTA4MTQyNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBicmVha2Rvd24gb2YgdGhpcy5cblxuKipJbnZlc3RpZ2F0aW5nIFVTQiBWaXJ0dWFsIEhvc3QgQ29udHJvbGxlciAoVkhDSSkgVGhyZWFkIE1hbmFnZW1lbnQqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIEknbSB0cnlpbmcgdG8gd3JhcCBteSBoZWFkIGFyb3VuZCB0aGUgdGhyZWFkIG1hbmFnZW1lbnQgaW4gdGhlIFZIQ0kgZHJpdmVyLiBgdmhjaV9yeF9sb29wYCBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIGEga3RocmVhZCwgYW5kIGl0J3Mgbm90IGRlY2xhcmVkIGFzIHN0YXRpYy4gR29vZCwgdGhhdCBtYWtlcyBzZW5zZS4gTm93LCBgdmhjaV91cmJfZGVxdWV1ZWAgaXMgYSBzdGF0aWMgZnVuY3Rpb24sIGJ1dCBpdCdzIGEgY2FsbGJhY2ssIHNvIHRoYXQncyBwcm9iYWJseSBhbHJpZ2h0LiBJIHRoaW5rIEkgY2FuIGxpa2VseSB1dGlsaXplIHRoZXNlIHRocmVlIGZ1bmN0aW9uczogYHZoY2lfdXJiX2RlcXVldWVgLCBgdmhjaV9yeF9sb29wYCwgYW5kIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gLiBOb3csIHdhaXQgYSBzZWNvbmQuIEkganVzdCByZWFsaXplZCB0aGF0IGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gIGlzIGEgc3RhdGljIGZ1bmN0aW9uLiBUaGF0IG1lYW5zIGl0cyBzY29wZSBpcyBsaW1pdGVkIHdpdGhpbiB0aGUgZmlsZSBvciBtb2R1bGUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGl0J3MgYmVpbmcgY2FsbGVkLiBUaGF0J3MgdGhlIG5leHQgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gSSBuZWVkLiBJJ2xsIG5lZWQgdG8gdHJhY2UgaXRzIHJlZmVyZW5jZXMgdG8gdW5kZXJzdGFuZCBpdHMgcHVycG9zZSBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgY29ubmVjdGlvbiBsaWZlY3ljbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMjIxLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTU6MjYuODA3MTU3Mjg3WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzMyODk1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvdXNiaXAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTA0Mz1zdGF0aWMgdm9pZCB2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTYtICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMDU3OnN0YXRpYyB2b2lkIHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbihzdHJ1Y3QgdXNiaXBfZGV2aWNlICp1ZClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTgte1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTAxLVxcdCAqIE5PVEU6IHZoY2lfZGVxdWV1ZSgpIG11c3QgYmUgY29uc2lkZXJlZCBjYXJlZnVsbHkuIFdoZW4gc2h1dHRpbmcgZG93blxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTEwMjpcXHQgKiBhIGNvbm5lY3Rpb24sIHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbigpIGV4cGVjdHMgdmhjaV9kZXF1ZXVlKClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTExMDMtXFx0ICogZ2l2ZXMgYmFjayBwdXNoZWQgdXJicyBhbmQgZnJlZXMgdGhlaXIgcHJpdmF0ZSBkYXRhIGJ5IHJlcXVlc3Qgb2ZcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTE0Nz1zdGF0aWMgdm9pZCB2aGNpX2RldmljZV9pbml0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE2My1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjExNjQ6XFx0dmRldi1cXHUwMDNldWQuZWhfb3BzLnNodXRkb3duID0gdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE2NS1cXHR2ZGV2LVxcdTAwM2V1ZC5laF9vcHMucmVzZXQgPSB2aGNpX2RldmljZV9yZXNldDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTU6MjYuODUwNDkwMTI0WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg4MjY0MTgxMjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBVU0IvSVAgVkhDSSBTaHV0ZG93biBDYWxsYmFjayoqXG5cbk9rYXksIHNvIHRoaXMgaXMgYWJvdXQgdGhlIGNhbGxiYWNrIGZvciBgZWhfb3BzLnNodXRkb3duYCwgcmlnaHQ/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBrZXkgYXJlYXMgdG8gZm9jdXMgb24gaW4gdGhpcyBjb250ZXh0LiBgdmhjaV91cmJfZGVxdWV1ZWAsIGB2aGNpX3J4X2xvb3BgLCBhbmQgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAgYXJlIGRlZmluaXRlbHkgaW1wb3J0YW50IHN5bWJvbHMgdG8gemVybyBpbiBvbi5cblxuSSBuZWVkIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhpcyBkcml2ZXIuIExldCdzIHNlZSwgd2UgaGF2ZSBgVVNCSVBfVkhDSV9IQ0RgIGFuZCBgVVNCSVBfQ09SRWAuIEFueSBvdGhlciBkZXBlbmRlbmNpZXM/IEhtbSwgYFVTQklQX0NPUkVgIGRlcGVuZHMgb24gYE5FVGAsIGFuZCBgVVNCSVBfVkhDSV9IQ0RgIGRlcGVuZHMgb24gYFVTQklQX0NPUkVgIGFuZCBgVVNCYC4gU28gdGhlIGNvbXBsZXRlIHNldCBvZiBkZXBlbmRlbmNpZXMgd291bGQgaW5jbHVkZSBgVVNCSVBfVkhDSV9IQ0RgLCBgVVNCSVBfQ09SRWAsIGBVU0JgLCBhbmQgYE5FVGAuIEFsdGhvdWdoLCBmb3IgbXkgcHVycG9zZXMsIGxpc3RpbmcgYFVTQklQX1ZIQ0lfSENEYCBhbmQgYFVTQklQX0NPUkVgIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBub3cuXG5cblRoZSBwYXRjaCdzIHB1cnBvc2UgaXMgdG8gYWRkIGEgdGltZXIgdG8gaGFuZGxlIFVSQiB0aW1lb3V0cyBpbiB0aGUgVkhDSS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBVU0IvSVAgZHJpdmVyLCBzbyBpdCBhZmZlY3RzIHVubGlua2luZywgYW5kIHNob3VsZCBwcmV2ZW50IHBvdGVudGlhbCBoYW5ncy4gQmVpbmcgdGhhdCBVU0IvSVAgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgdGhpcyBpcyBhIHZhbGlkIHRhcmdldCBmb3IgZnV6emluZy5cblxuTm93LCBsZXQncyB0YWtlIGEgcXVpY2sgbG9vayBhdCBgdmhjaV91bmxpbmtfdGltZW91dGAg4oCTIHRoZSBuZXdseSBhZGRlZCBmdW5jdGlvbi4gSXQncyBzdGF0aWMsIHdoaWNoIGlzIGludGVyZXN0aW5nLCBidXQgaXQncyBhIHRpbWVyIGNhbGxiYWNrLCBzbyBpdCdzIG5vdCBpbmxpbmVkLCB3aGljaCBleHBhbmRzIGl0cyBpbXBhY3QuIEkgdGhpbmsgdGhpcyBjb3VsZCBiZSBhIGZvY3VzIHN5bWJvbCBhcyB3ZWxsLlxuXG5TbywgaW4gc3VtbWFyeSwgaGVyZSBhcmUgdGhlIGtleSBmb2N1cyBzeW1ib2xzOlxuLSAgIGB2aGNpX3VyYl9kZXF1ZXVlYFxuLSAgIGB2aGNpX3VubGlua190aW1lb3V0YFxuLSAgIGB2aGNpX3J4X2xvb3BgXG4tICAgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmBcblxuQWxyaWdodCwgdGltZSB0byBzZXQgdGhlIHJlc3VsdHMgYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTY2LCJPdXRwdXRUb2tlbnMiOjE2MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NTozNS42NzY5MTA0NjJaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MjY2MDQzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCSVBfVkhDSV9IQ0RcIixcbiAgICBcIlVTQklQX0NPUkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2aGNpX3VyYl9kZXF1ZXVlXCIsXG4gICAgXCJ2aGNpX3VubGlua190aW1lb3V0XCIsXG4gICAgXCJ2aGNpX3J4X2xvb3BcIixcbiAgICBcInZoY2lfc2h1dGRvd25fY29ubmVjdGlvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IG1lY2hhbmlzbSBmb3IgVVJCIHVubGlua2luZyBpbiB0aGUgVVNCL0lQIHZpcnR1YWwgaG9zdCBjb250cm9sbGVyICh2aGNpKSBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBoYW5ncyB3aGVuIHVubGlua2luZyBVUkJzIGJ5IGludHJvZHVjaW5nIGEgdGltZXIgdGhhdCB0cmlnZ2VycyBhIFRDUCBlcnJvciBldmVudCBpZiB0aGUgdW5saW5rIG9wZXJhdGlvbiB0YWtlcyB0b28gbG9uZy4gVGhlIFVTQi9JUCBkcml2ZXIgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgaXMgYSB2YWxpZCB0YXJnZXQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCSVBfVkhDSV9IQ0RcIixcbiAgICBcIlVTQklQX0NPUkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2aGNpX3VyYl9kZXF1ZXVlXCIsXG4gICAgXCJ2aGNpX3VubGlua190aW1lb3V0XCIsXG4gICAgXCJ2aGNpX3J4X2xvb3BcIixcbiAgICBcInZoY2lfc2h1dGRvd25fY29ubmVjdGlvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IG1lY2hhbmlzbSBmb3IgVVJCIHVubGlua2luZyBpbiB0aGUgVVNCL0lQIHZpcnR1YWwgaG9zdCBjb250cm9sbGVyICh2aGNpKSBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBoYW5ncyB3aGVuIHVubGlua2luZyBVUkJzIGJ5IGludHJvZHVjaW5nIGEgdGltZXIgdGhhdCB0cmlnZ2VycyBhIFRDUCBlcnJvciBldmVudCBpZiB0aGUgdW5saW5rIG9wZXJhdGlvbiB0YWtlcyB0b28gbG9uZy4gVGhlIFVTQi9JUCBkcml2ZXIgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgaXMgYSB2YWxpZCB0YXJnZXQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowpfc5b[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-07 08:52:51 +0000 UTC FinishedAt: 2026-08-07 08:55:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USBIP_VHCI_HCD", "USBIP_CORE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "075b74841bd0065a3bda3440873c747938e69b68", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "USBIP_VHCI_HCD", "USBIP_CORE" ], "series_id": "58f5b609-4c3e-4caf-b848-3472277a28f6" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "vhci_urb_dequeue", "vhci_unlink_timeout", "vhci_rx_loop", "vhci_shutdown_connection" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQklQX1ZIQ0lfSENEJiMzNDssCiAgICAmIzM0O1VTQklQX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aGNpX3VyYl9kZXF1ZXVlJiMzNDssCiAgICAmIzM0O3ZoY2lfdW5saW5rX3RpbWVvdXQmIzM0OywKICAgICYjMzQ7dmhjaV9yeF9sb29wJiMzNDssCiAgICAmIzM0O3ZoY2lfc2h1dGRvd25fY29ubmVjdGlvbiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBtZWNoYW5pc20gZm9yIFVSQiB1bmxpbmtpbmcgaW4gdGhlIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciAodmhjaSkgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyBwb3RlbnRpYWwgaGFuZ3Mgd2hlbiB1bmxpbmtpbmcgVVJCcyBieSBpbnRyb2R1Y2luZyBhIHRpbWVyIHRoYXQgdHJpZ2dlcnMgYSBUQ1AgZXJyb3IgZXZlbnQgaWYgdGhlIHVubGluayBvcGVyYXRpb24gdGFrZXMgdG9vIGxvbmcuIFRoZSBVU0IvSVAgZHJpdmVyIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGlzIGEgdmFsaWQgdGFyZ2V0IGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNGJhOWU2Nzc3M2MzMjZhM2E0YjExYjVlY2FiZDI3ZWRmNTMyZTVkNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDg6NTQ6MzAgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oXG5pbmRleCA1NjU5ZGNlMTUyNmU4Li45OGUzYmZiMjliNmJmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcbkBAIC0xMSw2ICYjNDM7MTEsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2xpc3QuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NwaW5sb2NrLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zeXNmcy5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY2xpbnV4L3RpbWVyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC90eXBlcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvdXNiLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC91c2IvaGNkLmhcdTAwM2VcbkBAIC02NSw2ICYjNDM7NjYsOSBAQCBzdHJ1Y3QgdmhjaV91bmxpbmsge1xuIFxuIFx0Lyogc2VxbnVtIG9mIHRoZSB1bmxpbmsgdGFyZ2V0ICovXG4gXHR1bnNpZ25lZCBsb25nIHVubGlua19zZXFudW07XG4mIzQzO1xuJiM0MztcdHN0cnVjdCB0aW1lcl9saXN0IHVubGlua190aW1lcjtcbiYjNDM7XHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXY7XG4gfTtcbiBcbiBlbnVtIGh1Yl9zcGVlZCB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmNcbmluZGV4IDM5ZThmYWY0YzE4Y2QuLjVjYzI3NmY0NmQ1MWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jXG5AQCAtODkyLDYgJiM0Mzs4OTIsMTQgQEAgc3RhdGljIGludCB2aGNpX3VyYl9lbnF1ZXVlKHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1cmIgKnVyYiwgZ2ZwX3QgbWVtX2ZsYWdcbiAgKlx0XHQ9XHUwMDNlIHNlbmQgUkVUX1VOTElOS1xuICAqXG4gICovXG4mIzQzO3N0YXRpYyB2b2lkIHZoY2lfdW5saW5rX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdmhjaV91bmxpbmsgKnVubGluayA9IHRpbWVyX2NvbnRhaW5lcl9vZih1bmxpbmssIHQsIHVubGlua190aW1lcik7XG4mIzQzO1x0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gdW5saW5rLVx1MDAzZXZkZXY7XG4mIzQzO1xuJiM0MztcdHVzYmlwX2V2ZW50X2FkZChcdTAwMjZ2ZGV2LVx1MDAzZXVkLCBWREVWX0VWRU5UX0VSUk9SX1RDUCk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCB2aGNpX3VyYl9kZXF1ZXVlKHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1cmIgKnVyYiwgaW50IHN0YXR1cylcbiB7XG4gXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XG5AQCAtOTY0LDYgJiM0Mzs5NzIsMTAgQEAgc3RhdGljIGludCB2aGNpX3VyYl9kZXF1ZXVlKHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1cmIgKnVyYiwgaW50IHN0YXR1cylcbiBcdFx0XHRkZXZfaW5mbyhoY2RfZGV2KGhjZCksIFwmIzM0O3NlcW51bSBtYXhcXG5cJiMzNDspO1xuIFxuIFx0XHR1bmxpbmstXHUwMDNldW5saW5rX3NlcW51bSA9IHByaXYtXHUwMDNlc2VxbnVtO1xuJiM0MztcdFx0dW5saW5rLVx1MDAzZXZkZXYgPSB2ZGV2O1xuJiM0MztcbiYjNDM7XHRcdHRpbWVyX3NldHVwKFx1MDAyNnVubGluay1cdTAwM2V1bmxpbmtfdGltZXIsIHZoY2lfdW5saW5rX3RpbWVvdXQsIDApO1xuJiM0MztcdFx0bW9kX3RpbWVyKFx1MDAyNnVubGluay1cdTAwM2V1bmxpbmtfdGltZXIsIGppZmZpZXMgJiM0MzsgbXNlY3NfdG9famlmZmllcyg0MDAwKSk7XG4gXG4gXHRcdC8qIHNlbmQgY21kX3VubGluayBhbmQgdHJ5IHRvIGNhbmNlbCB0aGUgcGVuZGluZyBVUkIgaW4gdGhlXG4gXHRcdCAqIHBlZXIgKi9cbkBAIC05OTcsNyAmIzQzOzEwMDksMTIgQEAgc3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbiBcdFx0dXJiID0gcGlja3VwX3VyYl9hbmRfZnJlZV9wcml2KHZkZXYsIHVubGluay1cdTAwM2V1bmxpbmtfc2VxbnVtKTtcbiBcdFx0aWYgKCF1cmIpIHtcbiBcdFx0XHRsaXN0X2RlbChcdTAwMjZ1bmxpbmstXHUwMDNlbGlzdCk7XG4mIzQzO1x0XHRcdHNwaW5fdW5sb2NrKFx1MDAyNnZkZXYtXHUwMDNlcHJpdl9sb2NrKTtcbiYjNDM7XHRcdFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZ2aGNpLVx1MDAzZWxvY2ssIGZsYWdzKTtcbiYjNDM7XHRcdFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dW5saW5rLVx1MDAzZXVubGlua190aW1lcik7XG4gXHRcdFx0a2ZyZWUodW5saW5rKTtcbiYjNDM7XHRcdFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG4mIzQzO1x0XHRcdHNwaW5fbG9jayhcdTAwMjZ2ZGV2LVx1MDAzZXByaXZfbG9jayk7XG4gXHRcdFx0Y29udGludWU7XG4gXHRcdH1cbiBcbkBAIC0xMDEwLDYgJiM0MzsxMDI3LDcgQEAgc3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbiBcdFx0c3Bpbl91bmxvY2soXHUwMDI2dmRldi1cdTAwM2Vwcml2X2xvY2spO1xuIFx0XHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnZoY2ktXHUwMDNlbG9jaywgZmxhZ3MpO1xuIFxuJiM0MztcdFx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2dW5saW5rLVx1MDAzZXVubGlua190aW1lcik7XG4gXHRcdHVzYl9oY2RfZ2l2ZWJhY2tfdXJiKGhjZCwgdXJiLCB1cmItXHUwMDNlc3RhdHVzKTtcbiBcbiBcdFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXG5pbmRleCBhNjc4ZTdjODk4Mzc1Li42NThhNDY0YTE3NzQxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmNcbkBAIC0xNzgsNiAmIzQzOzE3OCw3IEBAIHN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbiBcdFx0dXNiX2hjZF9naXZlYmFja191cmIodmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSwgdXJiLCB1cmItXHUwMDNlc3RhdHVzKTtcbiBcdH1cbiBcbiYjNDM7XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZ1bmxpbmstXHUwMDNldW5saW5rX3RpbWVyKTtcbiBcdGtmcmVlKHVubGluayk7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JJUF9WSENJX0hDRCYjMzQ7LAogICAgJiMzNDtVU0JJUF9DT1JFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmhjaV91cmJfZGVxdWV1ZSYjMzQ7LAogICAgJiMzNDt2aGNpX3VubGlua190aW1lb3V0JiMzNDssCiAgICAmIzM0O3ZoY2lfcnhfbG9vcCYjMzQ7LAogICAgJiMzNDt2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgbWVjaGFuaXNtIGZvciBVUkIgdW5saW5raW5nIGluIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgKHZoY2kpIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIGhhbmdzIHdoZW4gdW5saW5raW5nIFVSQnMgYnkgaW50cm9kdWNpbmcgYSB0aW1lciB0aGF0IHRyaWdnZXJzIGEgVENQIGVycm9yIGV2ZW50IGlmIHRoZSB1bmxpbmsgb3BlcmF0aW9uIHRha2VzIHRvbyBsb25nLiBUaGUgVVNCL0lQIGRyaXZlciBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBpcyBhIHZhbGlkIHRhcmdldCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDRiYTllNjc3NzNjMzI2YTNhNGIxMWI1ZWNhYmQyN2VkZjUzMmU1ZDUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEF1ZyA3IDA4OjU0OjMwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oCmluZGV4IDU2NTlkY2UxNTI2ZTguLjk4ZTNiZmIyOWI2YmYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgKQEAgLTExLDYgJiM0MzsxMSw3IEBACiAjaW5jbHVkZSAmbHQ7bGludXgvbGlzdC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NwaW5sb2NrLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvc3lzZnMuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bGludXgvdGltZXIuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC90eXBlcy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3VzYi5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3VzYi9oY2QuaCZndDsKQEAgLTY1LDYgJiM0Mzs2Niw5IEBAIHN0cnVjdCB2aGNpX3VubGluayB7CiAKIAkvKiBzZXFudW0gb2YgdGhlIHVubGluayB0YXJnZXQgKi8KIAl1bnNpZ25lZCBsb25nIHVubGlua19zZXFudW07CiYjNDM7CiYjNDM7CXN0cnVjdCB0aW1lcl9saXN0IHVubGlua190aW1lcjsKJiM0MzsJc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2OwogfTsKIAogZW51bSBodWJfc3BlZWQgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMKaW5kZXggMzllOGZhZjRjMThjZC4uNWNjMjc2ZjQ2ZDUxYSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jCkBAIC04OTIsNiAmIzQzOzg5MiwxNCBAQCBzdGF0aWMgaW50IHZoY2lfdXJiX2VucXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBnZnBfdCBtZW1fZmxhZwogICoJCT0mZ3Q7IHNlbmQgUkVUX1VOTElOSwogICoKICAqLwomIzQzO3N0YXRpYyB2b2lkIHZoY2lfdW5saW5rX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgdmhjaV91bmxpbmsgKnVubGluayA9IHRpbWVyX2NvbnRhaW5lcl9vZih1bmxpbmssIHQsIHVubGlua190aW1lcik7CiYjNDM7CXN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IHVubGluay0mZ3Q7dmRldjsKJiM0MzsKJiM0MzsJdXNiaXBfZXZlbnRfYWRkKCZhbXA7dmRldi0mZ3Q7dWQsIFZERVZfRVZFTlRfRVJST1JfVENQKTsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKQogewogCXN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTsKQEAgLTk2NCw2ICYjNDM7OTcyLDEwIEBAIHN0YXRpYyBpbnQgdmhjaV91cmJfZGVxdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGludCBzdGF0dXMpCiAJCQlkZXZfaW5mbyhoY2RfZGV2KGhjZCksICYjMzQ7c2VxbnVtIG1heFxuJiMzNDspOwogCiAJCXVubGluay0mZ3Q7dW5saW5rX3NlcW51bSA9IHByaXYtJmd0O3NlcW51bTsKJiM0MzsJCXVubGluay0mZ3Q7dmRldiA9IHZkZXY7CiYjNDM7CiYjNDM7CQl0aW1lcl9zZXR1cCgmYW1wO3VubGluay0mZ3Q7dW5saW5rX3RpbWVyLCB2aGNpX3VubGlua190aW1lb3V0LCAwKTsKJiM0MzsJCW1vZF90aW1lcigmYW1wO3VubGluay0mZ3Q7dW5saW5rX3RpbWVyLCBqaWZmaWVzICYjNDM7IG1zZWNzX3RvX2ppZmZpZXMoNDAwMCkpOwogCiAJCS8qIHNlbmQgY21kX3VubGluayBhbmQgdHJ5IHRvIGNhbmNlbCB0aGUgcGVuZGluZyBVUkIgaW4gdGhlCiAJCSAqIHBlZXIgKi8KQEAgLTk5Nyw3ICYjNDM7MTAwOSwxMiBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LAogCQl1cmIgPSBwaWNrdXBfdXJiX2FuZF9mcmVlX3ByaXYodmRldiwgdW5saW5rLSZndDt1bmxpbmtfc2VxbnVtKTsKIAkJaWYgKCF1cmIpIHsKIAkJCWxpc3RfZGVsKCZhbXA7dW5saW5rLSZndDtsaXN0KTsKJiM0MzsJCQlzcGluX3VubG9jaygmYW1wO3ZkZXYtJmd0O3ByaXZfbG9jayk7CiYjNDM7CQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmYW1wO3ZoY2ktJmd0O2xvY2ssIGZsYWdzKTsKJiM0MzsJCQl0aW1lcl9kZWxldGVfc3luYygmYW1wO3VubGluay0mZ3Q7dW5saW5rX3RpbWVyKTsKIAkJCWtmcmVlKHVubGluayk7CiYjNDM7CQkJc3Bpbl9sb2NrX2lycXNhdmUoJmFtcDt2aGNpLSZndDtsb2NrLCBmbGFncyk7CiYjNDM7CQkJc3Bpbl9sb2NrKCZhbXA7dmRldi0mZ3Q7cHJpdl9sb2NrKTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKQEAgLTEwMTAsNiAmIzQzOzEwMjcsNyBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LAogCQlzcGluX3VubG9jaygmYW1wO3ZkZXYtJmd0O3ByaXZfbG9jayk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDt2aGNpLSZndDtsb2NrLCBmbGFncyk7CiAKJiM0MzsJCXRpbWVyX2RlbGV0ZV9zeW5jKCZhbXA7dW5saW5rLSZndDt1bmxpbmtfdGltZXIpOwogCQl1c2JfaGNkX2dpdmViYWNrX3VyYihoY2QsIHVyYiwgdXJiLSZndDtzdGF0dXMpOwogCiAJCXNwaW5fbG9ja19pcnFzYXZlKCZhbXA7dmhjaS0mZ3Q7bG9jaywgZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jCmluZGV4IGE2NzhlN2M4OTgzNzUuLjY1OGE0NjRhMTc3NDEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMKQEAgLTE3OCw2ICYjNDM7MTc4LDcgQEAgc3RhdGljIHZvaWQgdmhjaV9yZWN2X3JldF91bmxpbmsoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LAogCQl1c2JfaGNkX2dpdmViYWNrX3VyYih2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIsIHVyYi0mZ3Q7c3RhdHVzKTsKIAl9CiAKJiM0MzsJdGltZXJfZGVsZXRlX3N5bmMoJmFtcDt1bmxpbmstJmd0O3VubGlua190aW1lcik7CiAJa2ZyZWUodW5saW5rKTsKIH0KIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTA4CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjc0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQgb2YgdGhlIFVTQi9JUCB2aGNpIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCYjMzk7cyBtb2RpZnlpbmcgY29yZSBVU0IvSVAgdmhjaSBmaWxlczogYHZoY2lfaGNkLmNgLCBgdmhjaV9yeC5jYCwgYW5kIGB2aGNpLmhgLiBUaGUgZ2lzdCBpcyB0aGV5JiMzOTtyZSBhZGRpbmcgYSB0aW1lb3V0IG1lY2hhbmlzbSwgc3BlY2lmaWNhbGx5IGEgdGltZXIgY2FsbGVkIGB1bmxpbmtfdGltZXJgLCB0byB0aGUgYHN0cnVjdCB2aGNpX3VubGlua2AuIFRoaXMgaXMgaW50ZW5kZWQgdG8gYWRkcmVzcyB0aW1lb3V0cyBkdXJpbmcgVVJCIHVubGlua2luZyB3aXRoaW4gdGhlIHZoY2ksIHdoaWNoIGlzIGEga2V5IGZ1bmN0aW9uIG9mIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIuCgpFc3NlbnRpYWxseSwgd2hlbiBgdmhjaV91cmJfZGVxdWV1ZWAgZ2V0cyBjYWxsZWQsIGl0IHNldHMgdXAgYW5kICpzdGFydHMqIHRoaXMgdGltZXIuICBJZiB0aGlzIHRpbWVyIGV4cGlyZXMsIGB2aGNpX3VubGlua190aW1lb3V0YCBraWNrcyBpbiBhbmQgdGhlbiBjcmVhdGVzIGEgYFZERVZfRVZFTlRfRVJST1JfVENQYCBldmVudC4gVGhlIHRpbWVyJiMzOTtzIGxpZmVjeWNsZSBpcyB3ZWxsLWRlZmluZWQsIGJlaW5nIGRlbGV0ZWQgaW4gdGhlIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgIGFuZCBgdmhjaV9yZWN2X3JldF91bmxpbmtgIGZ1bmN0aW9ucy4gVGhpcyB0aW1lb3V0IGlzIGEgZ29vZCBtb3ZlLCBtYWtlcyB0aGUgZHJpdmVyIG1vcmUgcm9idXN0IQoKTm93LCB0aGUgZnVuY3Rpb25hbCBjaGFuZ2UgaXMgdGhhdCB0aGlzIGRpcmVjdGx5IGltcGFjdHMgdGhlIFVTQi9JUCBkcml2ZXIgYW5kIHRoYXQmIzM5O3MgKmludGVyZXN0aW5nKi4uLiBnaXZlbiB0aGF0IHdlIGtub3cgdGhhdCBVU0IvSVAgaXMgYSB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciB3aGljaCBpcyBkZWZpbml0ZWx5IGluIHRoZSBmdXp6aW5nIHNwb3RsaWdodC4gIFdlJiMzOTt2ZSBnb3Qgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3IgaXQuICBUaGUgZmFjdCB0aGF0IHdlIGFyZSBpbXByb3ZpbmcgdGhlIGVycm9yIGhhbmRsaW5nIG9mIGEgY29tcG9uZW50IGtub3duIHRvIGJlIGEgdGFyZ2V0IGZvciBmdXp6aW5nIG1lYW5zIGl0JiMzOTtzIHByZXR0eSBjbGVhciB3ZSBuZWVkIHRvIG1hcmsgdGhpcyBhcyBgV29ydGhGdXp6aW5nPXRydWVgLgoKTmV4dCBzdGVwLCBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgS2NvbmZpZyBvcHRpb25zIHRoYXQgZW5hYmxlIHRoZSBVU0IvSVAgdmhjaS4gSSYjMzk7bGwgdXNlIGBncmVwcGVyYCBhbmQgc2VhcmNoIGZvciByZWZlcmVuY2VzIHRvIGB2aGNpX2hjZC5jYCB3aXRoaW4gdGhlIGBkcml2ZXJzL3VzYi91c2JpcC9NYWtlZmlsZWAgYW5kIGBLY29uZmlnYCBmaWxlcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50IGZvciBlbmFibGluZyBhbmQgdGVzdGluZyB0aGlzIG5ldyB0aW1lb3V0IGJlaGF2aW9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZoY2lfaGNkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MjQgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvdXNiL3VzYmlwL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX1VTQklQX1ZIQ0lfSENEKSAmIzQzOz0gdmhjaS1oY2Qub1xuZHJpdmVycy91c2IvdXNiaXAvTWFrZWZpbGU6ODp2aGNpLWhjZC15IDo9IHZoY2lfc3lzZnMubyB2aGNpX3R4Lm8gdmhjaV9yeC5vIHZoY2lfaGNkLm9cbmRyaXZlcnMvdXNiL3VzYmlwL01ha2VmaWxlLTktXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYz0zMTA9c3RhdGljIGludCBzdHViX3Byb2JlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfZGV2LmMtMzUzLVxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYzozNTQ6XHRpZiAoIXN0cmNtcCh1ZGV2LVx1MDAzZWJ1cy1cdTAwM2VidXNfbmFtZSwgXCYjMzQ7dmhjaV9oY2RcJiMzNDspKSB7XG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX2Rldi5jLTM1NS1cdFx0ZGV2X2RiZyhcdTAwMjZ1ZGV2LVx1MDAzZWRldixcbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfZGV2LmM6MzU2Olx0XHRcdFwmIzM0OyVzIGlzIGF0dGFjaGVkIG9uIHZoY2lfaGNkLi4uIHNraXAhXFxuXCYjMzQ7LFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYy0zNTctXHRcdFx0dWRldl9idXNpZCk7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jPTE3Mz1zdGF0aWMgaW50IHR3ZWFrX3NwZWNpYWxfcmVxdWVzdHMoc3RydWN0IHVyYiAqdXJiKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfcnguYy0yMTAtICpcbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfcnguYzoyMTE6ICogU2VlIGFsc28gY29tbWVudHMgYWJvdXQgdW5saW5raW5nIHN0cmF0ZWd5IGluIHZoY2lfaGNkLmMuXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmMtMjEyLSAqL1xuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jPTIxMz1zdGF0aWMgaW50IHN0dWJfcmVjdl9jbWRfdW5saW5rKHN0cnVjdCBzdHViX2RldmljZSAqc2Rldixcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmMtMjc4LVx0ICogQ01EX1JFVCBwZHUuIEluIHRoaXMgY2FzZSwgdXNiX3VubGlua191cmIoKSBpcyBub3QgbmVlZGVkLiBXZSBvbmx5XG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmM6Mjc5Olx0ICogcmV0dXJuIHRoZSBjb21wbGV0ZW5lc3Mgb2YgdGhpcyB1bmxpbmsgcmVxdWVzdCB0byB2aGNpX2hjZC5cbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfcnguYy0yODAtXHQgKi9cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC91c2JpcF9jb21tb24uYz0zNDI9c3RhdGljIHVuc2lnbmVkIGludCB0d2Vha190cmFuc2Zlcl9mbGFncyh1bnNpZ25lZCBpbnQgZmxhZ3MpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdXNiaXBfY29tbW9uLmMtMzQ5LSAqIFVTQklQIGRyaXZlciBwYWNrcyBVUkIgdHJhbnNmZXIgZmxhZ3MgaW4gUERVcyB0aGF0IGFyZSBleGNoYW5nZWRcbmRyaXZlcnMvdXNiL3VzYmlwL3VzYmlwX2NvbW1vbi5jOjM1MDogKiBiZXR3ZWVuIFNlcnZlciAodXNiaXBfaG9zdCkgYW5kIENsaWVudCAodmhjaV9oY2QpLiBVUkJfKiBmbGFnc1xuZHJpdmVycy91c2IvdXNiaXAvdXNiaXBfY29tbW9uLmMtMzUxLSAqIGFyZSBpbnRlcm5hbCB0byBrZXJuZWwgYW5kIGNvdWxkIGNoYW5nZS4gV2hlcmUgYXMgVVNCSVAgVVJCIGZsYWdzXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTk3PXN0cnVjdCB2aGNpIHtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTAxLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEwMjpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2RfaHM7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTAzOlx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZF9zcztcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xMDQtfTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTA2LS8qIGZvciB1c2JfaGNkLmhjZF9wcml2WzBdICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTA3OnN0cnVjdCB2aGNpX2hjZCB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTA4LVx0c3RydWN0IHZoY2kgKnZoY2k7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTEyNz1leHRlcm4gc3RydWN0IGF0dHJpYnV0ZV9ncm91cCB2aGNpX2F0dHJfZ3JvdXA7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTI4LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEyOTovKiB2aGNpX2hjZC5jICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTMwLXZvaWQgcmhfcG9ydF9jb25uZWN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiwgZW51bSB1c2JfZGV2aWNlX3NwZWVkIHNwZWVkKTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg9MTQ4PXN0YXRpYyBpbmxpbmUgaW50IHBvcnRfdG9fcGRldl9ucihfX3UzMiBwb3J0KVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xNTItXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTUzOnN0YXRpYyBpbmxpbmUgc3RydWN0IHZoY2lfaGNkICpoY2RfdG9fdmhjaV9oY2Qoc3RydWN0IHVzYl9oY2QgKmhjZClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xNTQte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjE1NTpcdHJldHVybiAoc3RydWN0IHZoY2lfaGNkICopIChoY2QtXHUwMDNlaGNkX3ByaXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE1Ni19XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTE2Mz1zdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIgKmhjZF9uYW1lKHN0cnVjdCB1c2JfaGNkICpoY2QpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE2Ny1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNjg6c3RhdGljIGlubGluZSBzdHJ1Y3QgdXNiX2hjZCAqdmhjaV9oY2RfdG9faGNkKHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTY5LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzA6XHRyZXR1cm4gY29udGFpbmVyX29mKCh2b2lkICopIHZoY2lfaGNkLCBzdHJ1Y3QgdXNiX2hjZCwgaGNkX3ByaXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE3MS19XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTcyLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjE3MzpzdGF0aWMgaW5saW5lIHN0cnVjdCB2aGNpX2hjZCAqdmRldl90b192aGNpX2hjZChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTc0LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzU6XHRyZXR1cm4gY29udGFpbmVyX29mKCh2b2lkICopKHZkZXYgLSB2ZGV2LVx1MDAzZXJocG9ydCksIHN0cnVjdCB2aGNpX2hjZCwgdmRldik7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTc2LX1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTM5PXN0YXRpYyBpbnQgdmhjaV91cmJfZGVxdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGludCBzdGF0dXMpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0MDpzdGF0aWMgaW50IHZoY2lfc3RhcnQoc3RydWN0IHVzYl9oY2QgKnZoY2lfaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDEtc3RhdGljIHZvaWQgdmhjaV9zdG9wKHN0cnVjdCB1c2JfaGNkICpoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz00Mj1zdGF0aWMgaW50IHZoY2lfZ2V0X2ZyYW1lX251bWJlcihzdHJ1Y3QgdXNiX2hjZCAqaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDMtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ0OnN0YXRpYyBjb25zdCBjaGFyIGRyaXZlcl9uYW1lW10gPSBcJiMzNDt2aGNpX2hjZFwmIzM0OztcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDUtc3RhdGljIGNvbnN0IGNoYXIgZHJpdmVyX2Rlc2NbXSA9IFwmIzM0O1VTQi9JUCBWaXJ0dWFsIEhvc3QgQ29udHJvbGxlclwmIzM0Oztcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTE1ND12b2lkIHJoX3BvcnRfY29ubmVjdChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYsIGVudW0gdXNiX2RldmljZV9zcGVlZCBzcGVlZClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU1LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTU2Olx0c3RydWN0IHZoY2lfaGNkXHQqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTc6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1OC1cdGludFx0XHRyaHBvcnQgPSB2ZGV2LVx1MDAzZXJocG9ydDtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE2NS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTY2Olx0c3RhdHVzID0gdmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTY3LVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTgwLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxODE6XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdID0gc3RhdHVzO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xODItXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xODQtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE4NTpcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXModmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE4Ni19XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xODg9c3RhdGljIHZvaWQgcmhfcG9ydF9kaXNjb25uZWN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTg5LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTkwOlx0c3RydWN0IHZoY2lfaGNkXHQqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxOTE6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE5Mi1cdGludFx0XHRyaHBvcnQgPSB2ZGV2LVx1MDAzZXJocG9ydDtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE5OS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MjAwOlx0c3RhdHVzID0gdmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjAxLVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjA0LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyMDU6XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdID0gc3RhdHVzO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDYtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTIwNy1cdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjIwODpcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXModmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTIwOS19XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0yMjk9c3RhdGljIGludCB2aGNpX2h1Yl9zdGF0dXMoc3RydWN0IHVzYl9oY2QgKmhjZCwgY2hhciAqYnVmKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMzAte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyMzE6XHRzdHJ1Y3QgdmhjaV9oY2RcdCp2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyMzI6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTIzMy1cdGludFx0XHRyZXR2YWwgPSBESVZfUk9VTkRfVVAoVkhDSV9IQ19QT1JUUyAmIzQzOyAxLCA4KTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTI0Ny1cdGZvciAocmhwb3J0ID0gMDsgcmhwb3J0IFx1MDAzYyBWSENJX0hDX1BPUlRTOyByaHBvcnQmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjI0ODpcdFx0aWYgKCh2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNiBQT1JUX0NfTUFTSykpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjQ5LVx0XHRcdC8qIFRoZSBzdGF0dXMgb2YgYSBwb3J0IGhhcyBiZWVuIGNoYW5nZWQsICovXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0zMTY9c3RhdGljIGludCB2aGNpX2h1Yl9jb250cm9sKHN0cnVjdCB1c2JfaGNkICpoY2QsIHUxNiB0eXBlUmVxLCB1MTYgd1ZhbHVlLFxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzE4LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzE5Olx0c3RydWN0IHZoY2lfaGNkXHQqdmhjaV9oY2Q7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTMyMC1cdHN0cnVjdCB2aGNpXHQqdmhjaTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM1My1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzU0Olx0dmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzU1Olx0dmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM1Ni1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM2MS1cdFx0aWYgKCFpbnZhbGlkX3JocG9ydClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzYyOlx0XHRcdG1lbWNweShwcmV2X3BvcnRfc3RhdHVzLCB2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1cyxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzYzLVx0XHRcdFx0c2l6ZW9mKHByZXZfcG9ydF9zdGF0dXMpKTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM4My1cdFx0XHRcdFwmIzM0OyBDbGVhclBvcnRGZWF0dXJlOiBVU0JfUE9SVF9GRUFUX1NVU1BFTkRcXG5cJiMzNDspO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzozODQ6XHRcdFx0aWYgKHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2IFVTQl9QT1JUX1NUQVRfU1VTUEVORCkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0zODUtXHRcdFx0XHQvKiAyMG1zZWMgc2lnbmFsaW5nICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM4NjpcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXJlc3VtaW5nID0gMTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Mzg3Olx0XHRcdFx0dmhjaV9oY2QtXHUwMDNlcmVfdGltZW91dCA9IGppZmZpZXMgJiM0MzsgbXNlY3NfdG9famlmZmllcygyMCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM4OC1cdFx0XHR9XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0zOTMtXHRcdFx0aWYgKGhjZC1cdTAwM2VzcGVlZCBcdTAwM2U9IEhDRF9VU0IzKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzozOTQ6XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNj0gflVTQl9TU19QT1JUX1NUQVRfUE9XRVI7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM5NS1cdFx0XHRlbHNlXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM5NjpcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2PSB+VVNCX1BPUlRfU1RBVF9QT1dFUjtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzk3LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDAyLVx0XHRcdFx0Z290byBlcnJvcjtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDAzOlx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2PSB+KDEgXHUwMDNjXHUwMDNjIHdWYWx1ZSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQwNC1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ0Ny1cdFx0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ0ODpcdFx0aWYgKHZoY2lfaGNkLVx1MDAzZXJlc3VtaW5nIFx1MDAyNlx1MDAyNiB0aW1lX2FmdGVyKGppZmZpZXMsIHZoY2lfaGNkLVx1MDAzZXJlX3RpbWVvdXQpKSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ0OTpcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9ICgxIFx1MDAzY1x1MDAzYyBVU0JfUE9SVF9GRUFUX0NfU1VTUEVORCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1MDpcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNj0gfigxIFx1MDAzY1x1MDAzYyBVU0JfUE9SVF9GRUFUX1NVU1BFTkQpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NTE6XHRcdFx0dmhjaV9oY2QtXHUwMDNlcmVzdW1pbmcgPSAwO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NTI6XHRcdFx0dmhjaV9oY2QtXHUwMDNlcmVfdGltZW91dCA9IDA7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ1My1cdFx0fVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NTQtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1NTpcdFx0aWYgKCh2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNiAoMSBcdTAwM2NcdTAwM2MgVVNCX1BPUlRfRkVBVF9SRVNFVCkpICE9XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1NjpcdFx0ICAgIDAgXHUwMDI2XHUwMDI2IHRpbWVfYWZ0ZXIoamlmZmllcywgdmhjaV9oY2QtXHUwMDNlcmVfdGltZW91dCkpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDU3Olx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXHUwMDNjXHUwMDNjIFVTQl9QT1JUX0ZFQVRfQ19SRVNFVCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1ODpcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNj0gfigxIFx1MDAzY1x1MDAzYyBVU0JfUE9SVF9GRUFUX1JFU0VUKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDU5Olx0XHRcdHZoY2lfaGNkLVx1MDAzZXJlX3RpbWVvdXQgPSAwO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjAtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjQtXHRcdFx0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ2NTpcdFx0XHRpZiAodmhjaV9oY2QtXHUwMDNldmRldltyaHBvcnRdLnVkLnN0YXR1cyA9PVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjYtXHRcdFx0XHRWREVWX1NUX05PVEFTU0lHTkVEIHx8XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ2NzpcdFx0XHQgICAgdmhjaV9oY2QtXHUwMDNldmRldltyaHBvcnRdLnVkLnN0YXR1cyA9PVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjgtXHRcdFx0XHRWREVWX1NUX1VTRUQpIHtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ3MS1cdFx0XHRcdFx0cmhwb3J0LFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NzI6XHRcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXZkZXZbcmhwb3J0XS51ZC5zdGF0dXMpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NzM6XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ3NC1cdFx0XHRcdFx0VVNCX1BPUlRfU1RBVF9FTkFCTEU7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NzctXHRcdFx0aWYgKGhjZC1cdTAwM2VzcGVlZCBcdTAwM2MgSENEX1VTQjMpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDc4Olx0XHRcdFx0c3dpdGNoICh2aGNpX2hjZC1cdTAwM2V2ZGV2W3JocG9ydF0uc3BlZWQpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDc5LVx0XHRcdFx0Y2FzZSBVU0JfU1BFRURfSElHSDpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDgwOlx0XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ4MS1cdFx0XHRcdFx0ICAgICAgVVNCX1BPUlRfU1RBVF9ISUdIX1NQRUVEO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDgzLVx0XHRcdFx0Y2FzZSBVU0JfU1BFRURfTE9XOlxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0ODQ6XHRcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDg1LVx0XHRcdFx0XHRcdFVTQl9QT1JUX1NUQVRfTE9XX1NQRUVEO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDkyLVx0XHR9XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ5MzpcdFx0KChfX2xlMTYgKikgYnVmKVswXSA9IGNwdV90b19sZTE2KHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0pO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00OTQtXHRcdCgoX19sZTE2ICopIGJ1ZilbMV0gPVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0OTU6XHRcdFx0Y3B1X3RvX2xlMTYodmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcdTAwM2VcdTAwM2UgMTYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00OTYtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01NDctXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjU0ODpcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9IFVTQl9QT1JUX1NUQVRfU1VTUEVORDtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTQ5LVx0XHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTU3LVx0XHRcdGlmIChoY2QtXHUwMDNlc3BlZWQgXHUwMDNlPSBIQ0RfVVNCMylcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NTU4Olx0XHRcdFx0dmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSB8PSBVU0JfU1NfUE9SVF9TVEFUX1BPV0VSO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01NTktXHRcdFx0ZWxzZVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1NjA6XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9IFVTQl9QT1JUX1NUQVRfUE9XRVI7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU2MS1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU4NC1cdFx0XHRpZiAoaGNkLVx1MDAzZXNwZWVkIFx1MDAzZT0gSENEX1VTQjMpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NTg1Olx0XHRcdFx0dmhjaV9oY2QtXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSA9IDA7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjU4NjpcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gPVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01ODctXHRcdFx0XHRcdChVU0JfU1NfUE9SVF9TVEFUX1BPV0VSIHxcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU4OS1cdFx0XHRcdFx0IFVTQl9QT1JUX1NUQVRfUkVTRVQpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1OTA6XHRcdFx0fSBlbHNlIGlmICh2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNiBVU0JfUE9SVF9TVEFUX0VOQUJMRSkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1OTE6XHRcdFx0XHR2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNj0gfihVU0JfUE9SVF9TVEFUX0VOQUJMRVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01OTItXHRcdFx0XHRcdHwgVVNCX1BPUlRfU1RBVF9MT1dfU1BFRURcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU5Ni1cdFx0XHQvKiA1MG1zZWMgcmVzZXQgc2lnbmFsaW5nICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjU5NzpcdFx0XHR2aGNpX2hjZC1cdTAwM2VyZV90aW1lb3V0ID0gamlmZmllcyAmIzQzOyBtc2Vjc190b19qaWZmaWVzKDUwKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTk4LVx0XHRcdGZhbGx0aHJvdWdoO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjA4LVx0XHRcdGlmIChoY2QtXHUwMDNlc3BlZWQgXHUwMDNlPSBIQ0RfVVNCMykge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MDk6XHRcdFx0XHRpZiAoKHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxMC1cdFx0XHRcdCAgICAgVVNCX1NTX1BPUlRfU1RBVF9QT1dFUikgIT0gMCkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTE6XHRcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXHUwMDNjXHUwMDNjIHdWYWx1ZSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxMi1cdFx0XHRcdH1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjEzLVx0XHRcdH0gZWxzZVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTQ6XHRcdFx0XHRpZiAoKHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxNS1cdFx0XHRcdCAgICAgVVNCX1BPUlRfU1RBVF9QT1dFUikgIT0gMCkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTY6XHRcdFx0XHRcdHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXHUwMDNjXHUwMDNjIHdWYWx1ZSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxNy1cdFx0XHRcdH1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY1MS1cdFx0XHRkdW1wX3BvcnRfc3RhdHVzX2RpZmYocHJldl9wb3J0X3N0YXR1c1tyaHBvcnRdLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2NTI6XHRcdFx0XHRcdCAgICAgIHZoY2lfaGNkLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0sXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY1My1cdFx0XHRcdFx0ICAgICAgaGNkLVx1MDAzZXNwZWVkIFx1MDAzZT0gSENEX1VTQjMpO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjYwLVx0aWYgKCFpbnZhbGlkX3JocG9ydCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NjYxOlx0ICAgICh2aGNpX2hjZC1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNiBQT1JUX0NfTUFTSykgIT0gMCkge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02NjItXHRcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXMoaGNkKTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTY2OD1zdGF0aWMgdm9pZCB2aGNpX3R4X3VyYihzdHJ1Y3QgdXJiICp1cmIsIHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY3MC1cdHN0cnVjdCB2aGNpX3ByaXYgKnByaXY7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjY3MTpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02NzItXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjgxLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2ODI6XHRwcml2LVx1MDAzZXNlcW51bSA9ICh1MzIpYXRvbWljX2luY19yZXR1cm4oXHUwMDI2dmhjaV9oY2QtXHUwMDNlc2VxbnVtKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjgzLVx0aWYgKHByaXYtXHUwMDNlc2VxbnVtID09IDB4ZmZmZilcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTY5Nz1zdGF0aWMgaW50IHZoY2lfdXJiX2VucXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBnZnBfdCBtZW1fZmxhZ3MpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY5OC17XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjY5OTpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NzAwOlx0c3RydWN0IHZoY2kgKnZoY2kgPSB2aGNpX2hjZC1cdTAwM2V2aGNpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy03MDEtXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZ1cmItXHUwMDNlZGV2LVx1MDAzZWRldjtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTcxMC1cdH1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NzExOlx0dmRldiA9IFx1MDAyNnZoY2lfaGNkLVx1MDAzZXZkZXZbcG9ydG51bS0xXTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNzEyLVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODU4LSAqXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjg1OTogKiAtIFdoZW4gdmhjaV9oY2QgcmVjZWl2ZXMgUkVUX1NVQk1JVCxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODYwLSAqXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NjgtICpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6ODY5OiAqIC0gV2hlbiB2aGNpX2hjZCByZWNlaXZlcyBSRVRfVU5MSU5LLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NzAtICpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6ODcxOiAqXHQtIGNhc2UgMmEpLiBhIHN1Ym1pdCByZXF1ZXN0IGlzIHN0aWxsIHBlbmRpbmcgaW4gdmhjaV9oY2QuXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTg3Mi0gKlx0XHQtIHVyYiB3YXMgcmVhbGx5IHBlbmRpbmcgaW4gdXNiaXAua28gYW5kIHVyYl91bmxpbmtfdXJiKCkgd2FzXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NzYtICpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6ODc3OiAqXHQtIGNhc2UgMmIpLiBhIHN1Ym1pdCByZXF1ZXN0IGlzICpub3QqIHBlbmRpbmcgaW4gdmhjaV9oY2QuXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTg3OC0gKlx0XHQtIHVyYiB3YXMgYWxyZWFkeSBnaXZlbiBiYWNrIHRvIHRoZSBjb3JlIGRyaXZlci5cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTkwMz1zdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy05MDQte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo5MDU6XHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjkwNjpcdHN0cnVjdCB2aGNpICp2aGNpID0gdmhjaV9oY2QtXHUwMDNldmhjaTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTA3LVx0c3RydWN0IHZoY2lfcHJpdiAqcHJpdjtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk2OS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6OTcwOlx0XHR1bmxpbmstXHUwMDNlc2VxbnVtID0gYXRvbWljX2luY19yZXR1cm4oXHUwMDI2dmhjaV9oY2QtXHUwMDNlc2VxbnVtKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTcxLVx0XHRpZiAodW5saW5rLVx1MDAzZXNlcW51bSA9PSAweGZmZmYpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz05OTQ9c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk5Ni17XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk5NzpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo5OTg6XHRzdHJ1Y3QgdXNiX2hjZCAqaGNkID0gdmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6OTk5Olx0c3RydWN0IHZoY2kgKnZoY2kgPSB2aGNpX2hjZC1cdTAwM2V2aGNpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDAwLVx0c3RydWN0IHZoY2lfdW5saW5rICp1bmxpbmssICp0bXA7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xMDU3PXN0YXRpYyB2b2lkIHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbihzdHJ1Y3QgdXNiaXBfZGV2aWNlICp1ZClcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTktXHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYgPSBjb250YWluZXJfb2YodWQsIHN0cnVjdCB2aGNpX2RldmljZSwgdWQpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMDYwOlx0c3RydWN0IHVzYl9oY2QgKmhjZCA9IHZoY2lfaGNkX3RvX2hjZCh2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA2MS1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwOTctXHQgKiBkZXRhY2hlZCBkZXZpY2Ugc2hvdWxkIHJlbGVhc2UgdXNlZCB1cmJzIGluIGEgY2xlYW51cCBmdW5jdGlvbiAoaS5lLlxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMDk4Olx0ICogeHh4X2Rpc2Nvbm5lY3QoKSkuIFRoZXJlZm9yZSwgdmhjaV9oY2QgZG9lcyBub3QgbmVlZCB0byByZWxlYXNlXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwOTktXHQgKiBwdXNoZWQgdXJicyBhbmQgdGhlaXIgcHJpdmF0ZSBkYXRhIGluIHRoaXMgZnVuY3Rpb24uXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xMTg4PXN0YXRpYyBpbnQgdmhjaV9zZXR1cChzdHJ1Y3QgdXNiX2hjZCAqaGNkKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE5Mi1cdGlmICh1c2JfaGNkX2lzX3ByaW1hcnlfaGNkKGhjZCkpIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTE5MzpcdFx0dmhjaS1cdTAwM2V2aGNpX2hjZF9ocyA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMTk0Olx0XHR2aGNpLVx1MDAzZXZoY2lfaGNkX2hzLVx1MDAzZXZoY2kgPSB2aGNpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTk1LVx0XHQvKlxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE5Ny1cdFx0ICogVGhlIFVTQiAzLjAgcm9vdGh1YiB3aWxsIGJlIHJlZ2lzdGVyZWQgbGF0ZXIgYnlcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTE5ODpcdFx0ICogdmhjaV9oY2RfcHJvYmUoKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTk5LVx0XHQgKi9cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMDItXHR9IGVsc2Uge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjAzOlx0XHR2aGNpLVx1MDAzZXZoY2lfaGNkX3NzID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyMDQ6XHRcdHZoY2ktXHUwMDNldmhjaV9oY2Rfc3MtXHUwMDNldmhjaSA9IHZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMDUtXHRcdGhjZC1cdTAwM2VzcGVlZCA9IEhDRF9VU0IzMTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEyMTY9c3RhdGljIGludCB2aGNpX3N0YXJ0KHN0cnVjdCB1c2JfaGNkICpoY2QpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMTcte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjE4Olx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjE5LVx0aW50IGlkLCByaHBvcnQ7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjI0LVx0aWYgKHVzYl9oY2RfaXNfcHJpbWFyeV9oY2QoaGNkKSlcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTIyNTpcdFx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2dmhjaV9oY2QtXHUwMDNldmhjaS1cdTAwM2Vsb2NrKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTIyNi1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMjktXHRmb3IgKHJocG9ydCA9IDA7IHJocG9ydCBcdTAwM2MgVkhDSV9IQ19QT1JUUzsgcmhwb3J0JiM0MzsmIzQzOykge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjMwOlx0XHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYgPSBcdTAwMjZ2aGNpX2hjZC1cdTAwM2V2ZGV2W3JocG9ydF07XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMzEtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjM1LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjM2Olx0YXRvbWljX3NldChcdTAwMjZ2aGNpX2hjZC1cdTAwM2VzZXFudW0sIDApO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjM3LVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI1MC1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTI1MTpcdC8qIHZoY2lfaGNkIGlzIG5vdyByZWFkeSB0byBiZSBjb250cm9sbGVkIHRocm91Z2ggc3lzZnMgKi9cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI1Mi1cdGlmIChpZCA9PSAwIFx1MDAyNlx1MDAyNiB1c2JfaGNkX2lzX3ByaW1hcnlfaGNkKGhjZCkpIHtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEyNzA9c3RhdGljIHZvaWQgdmhjaV9zdG9wKHN0cnVjdCB1c2JfaGNkICpoY2QpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyNzEte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjcyOlx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjczLVx0aW50IGlkLCByaHBvcnQ7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjc2LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjc3Olx0LyogMS4gcmVtb3ZlIHRoZSB1c2VybGFuZCBpbnRlcmZhY2Ugb2YgdmhjaV9oY2QgKi9cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI3OC1cdGlkID0gaGNkX25hbWVfdG9faWQoaGNkX25hbWUoaGNkKSk7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjgzLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjg0Olx0LyogMi4gc2h1dGRvd24gYWxsIHRoZSBwb3J0cyBvZiB2aGNpX2hjZCAqL1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjg1LVx0Zm9yIChyaHBvcnQgPSAwOyByaHBvcnQgXHUwMDNjIFZIQ0lfSENfUE9SVFM7IHJocG9ydCYjNDM7JiM0MzspIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTI4NjpcdFx0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gXHUwMDI2dmhjaV9oY2QtXHUwMDNldmRldltyaHBvcnRdO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjg3LVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTM1OD1zdGF0aWMgY29uc3Qgc3RydWN0IGhjX2RyaXZlciB2aGNpX2hjX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEzNjAtXHQucHJvZHVjdF9kZXNjXHQ9IGRyaXZlcl9kZXNjLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMzYxOlx0LmhjZF9wcml2X3NpemVcdD0gc2l6ZW9mKHN0cnVjdCB2aGNpX2hjZCksXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEzNjItXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMzgyLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMzgzOnN0YXRpYyBpbnQgdmhjaV9oY2RfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM4NC17XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDMzLVx0dXNiX3B1dF9oY2QoaGNkX2hzKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQzNDpcdHZoY2ktXHUwMDNldmhjaV9oY2RfaHMgPSBOVUxMO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDM1Olx0dmhjaS1cdTAwM2V2aGNpX2hjZF9zcyA9IE5VTEw7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0MzYtXHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQzOC1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQzOTpzdGF0aWMgdm9pZCB2aGNpX2hjZF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ0MC17XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDQ3LVx0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0NDg6XHR1c2JfcmVtb3ZlX2hjZCh2aGNpX2hjZF90b19oY2QodmhjaS1cdTAwM2V2aGNpX2hjZF9zcykpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDQ5Olx0dXNiX3B1dF9oY2QodmhjaV9oY2RfdG9faGNkKHZoY2ktXHUwMDNldmhjaV9oY2Rfc3MpKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ1MC1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQ1MTpcdHVzYl9yZW1vdmVfaGNkKHZoY2lfaGNkX3RvX2hjZCh2aGNpLVx1MDAzZXZoY2lfaGNkX2hzKSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0NTI6XHR1c2JfcHV0X2hjZCh2aGNpX2hjZF90b19oY2QodmhjaS1cdTAwM2V2aGNpX2hjZF9ocykpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDUzLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDU0Olx0dmhjaS1cdTAwM2V2aGNpX2hjZF9ocyA9IE5VTEw7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0NTU6XHR2aGNpLVx1MDAzZXZoY2lfaGNkX3NzID0gTlVMTDtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ1Ni19XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDYwLS8qIHdoYXQgc2hvdWxkIGhhcHBlbiBmb3IgVVNCL0lQIHVuZGVyIHN1c3BlbmQvcmVzdW1lPyAqL1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDYxOnN0YXRpYyBpbnQgdmhjaV9oY2Rfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NjIte1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ4MC1cdGZvciAocmhwb3J0ID0gMDsgcmhwb3J0IFx1MDAzYyBWSENJX0hDX1BPUlRTOyByaHBvcnQmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0ODE6XHRcdGlmICh2aGNpLVx1MDAzZXZoY2lfaGNkX2hzLVx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXHUwMDI2XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0ODItXHRcdCAgICBVU0JfUE9SVF9TVEFUX0NPTk5FQ1RJT04pXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDg0LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDg1Olx0XHRpZiAodmhjaS1cdTAwM2V2aGNpX2hjZF9zcy1cdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFx1MDAyNlxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDg2LVx0XHQgICAgVVNCX1BPUlRfU1RBVF9DT05ORUNUSU9OKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ5Ny1cdH0gZWxzZSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0OTg6XHRcdGRldl9pbmZvKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtzdXNwZW5kIHZoY2lfaGNkXCYjMzQ7KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ5OS1cdFx0Y2xlYXJfYml0KEhDRF9GTEFHX0hXX0FDQ0VTU0lCTEUsIFx1MDAyNmhjZC1cdTAwM2VmbGFncyk7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTA0LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTA1OnN0YXRpYyBpbnQgdmhjaV9oY2RfcmVzdW1lKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1MDYte1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTUyMS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUyMjojZGVmaW5lIHZoY2lfaGNkX3N1c3BlbmRcdE5VTExcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUyMzojZGVmaW5lIHZoY2lfaGNkX3Jlc3VtZVx0XHROVUxMXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1MjQtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xNTI3PXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHZoY2lfZHJpdmVyID0ge1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTI4Olx0LnByb2JlXHQ9IHZoY2lfaGNkX3Byb2JlLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTI5Olx0LnJlbW92ZSA9IHZoY2lfaGNkX3JlbW92ZSxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUzMDpcdC5zdXNwZW5kID0gdmhjaV9oY2Rfc3VzcGVuZCxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUzMTpcdC5yZXN1bWVcdD0gdmhjaV9oY2RfcmVzdW1lLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTMyLVx0LmRyaXZlclx0PSB7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xNTM3PXN0YXRpYyB2b2lkIGRlbF9wbGF0Zm9ybV9kZXZpY2VzKHZvaWQpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTQ3LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTQ4OnN0YXRpYyBpbnQgX19pbml0IHZoY2lfaGNkX2luaXQodm9pZClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU0OS17XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTkyLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTkzOnN0YXRpYyB2b2lkIF9fZXhpdCB2aGNpX2hjZF9leGl0KHZvaWQpXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1OTQte1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU5OS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTYwMDptb2R1bGVfaW5pdCh2aGNpX2hjZF9pbml0KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTYwMTptb2R1bGVfZXhpdCh2aGNpX2hjZF9leGl0KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTYwMi1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9NTU9c3RhdGljIHZvaWQgdmhjaV9yZWN2X3JldF9zdWJtaXQoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy01Ny17XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6NTg6XHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzo1OTpcdHN0cnVjdCB2aGNpICp2aGNpID0gdmhjaV9oY2QtXHUwMDNldmhjaTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy02MC1cdHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkID0gXHUwMDI2dmRldi1cdTAwM2V1ZDtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtNzAtXHRcdFx0cGR1LVx1MDAzZWJhc2Uuc2VxbnVtLFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjcxOlx0XHRcdGF0b21pY19yZWFkKFx1MDAyNnZoY2lfaGNkLVx1MDAzZXNlcW51bSkpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTcyLVx0XHR1c2JpcF9ldmVudF9hZGQodWQsIFZERVZfRVZFTlRfRVJST1JfVENQKTtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTAzLVx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTA0Olx0dXNiX2hjZF91bmxpbmtfdXJiX2Zyb21fZXAodmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSwgdXJiKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMDUtXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnZoY2ktXHUwMDNlbG9jaywgZmxhZ3MpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEwNi1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoxMDc6XHR1c2JfaGNkX2dpdmViYWNrX3VyYih2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIsIHVyYi1cdTAwM2VzdGF0dXMpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEwOC1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTM3PXN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTM5LXtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoxNDA6XHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoxNDE6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTQyLVx0c3RydWN0IHZoY2lfdW5saW5rICp1bmxpbms7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTE3NC1cdFx0c3Bpbl9sb2NrX2lycXNhdmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTc1Olx0XHR1c2JfaGNkX3VubGlua191cmJfZnJvbV9lcCh2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTE3Ni1cdFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZ2aGNpLVx1MDAzZWxvY2ssIGZsYWdzKTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xNzctXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTc4Olx0XHR1c2JfaGNkX2dpdmViYWNrX3VyYih2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIsIHVyYi1cdTAwM2VzdGF0dXMpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTE3OS1cdH1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMzAtICogbGVha2luZyBrZXJuZWwgbWVtb3J5IGFkZHJlc3MgaW46XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MzE6ICpcdC9zeXMvZGV2aWNlcy9wbGF0Zm9ybS92aGNpX2hjZC4wL3N0YXR1cyBhbmQgaW4gZGVidWcgb3V0cHV0LlxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTMyLSAqIFRoZSBzb2NrZXQgcG9pbnRlciBhZGRyZXNzIGlzIG5vdCB1c2VkIGF0IHRoZSBtb21lbnQgYW5kIGl0IHdhcyBtYWRlXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jPTg2PXN0YXRpYyBzc2l6ZV90IHN0YXR1c19zaG93X3ZoY2koaW50IHBkZXZfbnIsIGNoYXIgKm91dClcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtOTAtXHRzdHJ1Y3QgdXNiX2hjZCAqaGNkO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjkxOlx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZDtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy05Mi1cdGNoYXIgKnMgPSBvdXQ7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTEwNy1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxMDg6XHR2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjEwOTpcdHZoY2kgPSB2aGNpX2hjZC1cdTAwM2V2aGNpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTExMC1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTEzLVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgVkhDSV9IQ19QT1JUUzsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxMTQ6XHRcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFx1MDAyNnZoY2ktXHUwMDNldmhjaV9oY2RfaHMtXHUwMDNldmRldltpXTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0xMTUtXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTEyMi1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIFZIQ0lfSENfUE9SVFM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MTIzOlx0XHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYgPSBcdTAwMjZ2aGNpLVx1MDAzZXZoY2lfaGNkX3NzLVx1MDAzZXZkZXZbaV07XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTI0LVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYz0xODM9c3RhdGljIERFVklDRV9BVFRSX1JPKG5wb3J0cyk7XG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTE4NS0vKiBTeXNmcyBlbnRyeSB0byBzaHV0ZG93biBhIHZpcnR1YWwgY29ubmVjdGlvbiAqL1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjE4NjpzdGF0aWMgaW50IHZoY2lfcG9ydF9kaXNjb25uZWN0KHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QsIF9fdTMyIHJocG9ydClcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0xODcte1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjE4ODpcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFx1MDAyNnZoY2lfaGNkLVx1MDAzZXZkZXZbcmhwb3J0XTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxODk6XHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVx1MDAzZXZoY2k7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTkwLVx0dW5zaWduZWQgbG9uZyBmbGFncztcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGRldGFjaF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0yNDMtXHRzdHJ1Y3QgdXNiX2hjZCAqaGNkO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjI0NDpcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2Q7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMjQ1LVx0aW50IHJldDtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMjY0LVx0aWYgKChwb3J0IC8gVkhDSV9IQ19QT1JUUykgJSAyKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjI2NTpcdFx0dmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKS1cdTAwM2V2aGNpLVx1MDAzZXZoY2lfaGNkX3NzO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTI2Ni1cdGVsc2VcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2OTIwCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkludmVzdGlnYXRpbmcgdGhlIFVTQi9JUCBWSENJIEhDRCBDb25maWd1cmF0aW9uIE9wdGlvbioqCgpSaWdodCwgc28gdGhlIGNvbmZpZyBvcHRpb24gSSYjMzk7bSBsb29raW5nIGF0IGlzIGBDT05GSUdfVVNCSVBfVkhDSV9IQ0RgLiBNeSBmaXJzdCBwb3J0IG9mIGNhbGwsIG5hdHVyYWxseSwgaXMgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhhdCBwYXJ0IG9mIHRoZSBVU0IvSVAgc3Vic3lzdGVtLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIG1vZHVsZSYjMzk7cyBkZXBlbmRlbmNpZXMsIGlmIGFueS4gSSYjMzk7bGwgb3BlbiB1cCBgZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZ2AgYW5kIHF1aWNrbHkgc2NhbiBmb3IgcmVsYXRpb25zaGlwcyB3aXRoIG90aGVyIG9wdGlvbnMgb3IgZmVhdHVyZXMuIEkmIzM5O20gbG9va2luZyBmb3IgdGhpbmdzIHRoYXQgbWlnaHQgZW5hYmxlIGl0LCBkaXNhYmxlIGl0LCBvciBwcm92aWRlIGVzc2VudGlhbCBmdW5jdGlvbmFsaXR5LiBHb3R0YSBnZXQgdGhlIGxheSBvZiB0aGUgbGFuZCBiZWZvcmUgSSBjYW4gZG8gYW55dGhpbmcgbW9yZSBzcGVjaWZpYy4gVW5kZXJzdGFuZGluZyB0aGUgY29udGV4dCBpcyBrZXkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFVTQklQX1ZIQ0lfSENEJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC9LY29uZmlnPTM9Y29uZmlnIFVTQklQX0NPUkVcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC9LY29uZmlnLTIwLVxuZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZzoyMTpjb25maWcgVVNCSVBfVkhDSV9IQ0RcbmRyaXZlcnMvdXNiL3VzYmlwL0tjb25maWctMjItXHR0cmlzdGF0ZSBcJiMzNDtWSENJIGhjZFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE3MjU0CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIGRlbGl2ZXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBzdW1tYXJ5OgoKKipQZWVyaW5nIGludG8gdGhlIEtlcm5lbCBDb25maWd1cmF0aW9uIExhbmRzY2FwZSoqCgpBbHJpZ2h0LCBJJiMzOTttIHRoaW5raW5nIEkgbmVlZCB0byBkZWx2ZSBpbnRvIHRoaXMgYFVTQklQX1ZIQ0lfSENEYCBLY29uZmlnIGVudHJ5LiBJIHdhbnQgdGhlIHdob2xlIHBpY3R1cmUsIHRoZSBjb21wbGV0ZSBjb250ZXh0LiBObyBzbmlwcGV0cywgbm8gcGFydGlhbCB2aWV3cy4gSSBuZWVkIHRvIHNlZSB0aGUgZGVwZW5kZW5jaWVzLCB0aGUgZGVmYXVsdHMsIHRoZSBoZWxwIHRleHQsICpldmVyeXRoaW5nKiB0aGF0IGRlZmluZXMgaG93IHRoaXMgcGFydGljdWxhciB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciBkcml2ZXIgaXMgY29uZmlndXJlZCB3aXRoaW4gdGhlIGtlcm5lbC4gSSYjMzk7bSBhZnRlciB0aGUgZmluZS1ncmFpbmVkIGRldGFpbHMuIFVuZGVyc3RhbmRpbmcgdGhhdCBLY29uZmlnIGVudHJ5IGNvbXBsZXRlbHkgd2lsbCB0ZWxsIG1lIGhvdyB0aGlzIGZlYXR1cmUgaXMgZW5hYmxlZCwgYW5kIGRpc2FibGVkIGFuZCBob3cgdGhhdCBpbXBhY3RzIG90aGVyIGZlYXR1cmVzLiBJIGhhdmUgYSBodW5jaCBpdCBpcyBsaW5rZWQgd2l0aCBzb21lIG90aGVyIHVzYiBmZWF0dXJlcyBhbmQgdGhhdCB1bmRlcnN0YW5kaW5nIGl0IGZ1bGx5IGlzIGltcG9ydGFudC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3VzYmlwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXG4gICAyOlx0XG4gICAzOlx0Y29uZmlnIFVTQklQX0NPUkVcbiAgIDQ6XHRcdHRyaXN0YXRlIFwmIzM0O1VTQi9JUCBzdXBwb3J0XCYjMzQ7XG4gICA1Olx0XHRkZXBlbmRzIG9uIE5FVFxuICAgNjpcdFx0c2VsZWN0IFVTQl9DT01NT05cbiAgIDc6XHRcdHNlbGVjdCBTR0xfQUxMT0NcbiAgIDg6XHRcdGhlbHBcbiAgIDk6XHRcdCAgVGhpcyBlbmFibGVzIHB1c2hpbmcgVVNCIHBhY2tldHMgb3ZlciBJUCB0byBhbGxvdyByZW1vdGVcbiAgMTA6XHRcdCAgbWFjaGluZXMgZGlyZWN0IGFjY2VzcyB0byBVU0IgZGV2aWNlcy4gSXQgcHJvdmlkZXMgdGhlXG4gIDExOlx0XHQgIFVTQi9JUCBjb3JlIHRoYXQgaXMgcmVxdWlyZWQgYnkgYm90aCBkcml2ZXJzLlxuICAxMjpcdFxuICAxMzpcdFx0ICBGb3IgbW9yZSBkZXRhaWxzLCBhbmQgdG8gZ2V0IHRoZSB1c2Vyc3BhY2UgdXRpbGl0eVxuICAxNDpcdFx0ICBwcm9ncmFtcywgcGxlYXNlIHNlZSBcdTAwM2NodHRwOi8vdXNiaXAuc291cmNlZm9yZ2UubmV0L1x1MDAzZS5cbiAgMTU6XHRcbiAgMTY6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGUgbW9kdWxlIHdpbGxcbiAgMTc6XHRcdCAgYmUgY2FsbGVkIHVzYmlwLWNvcmUuXG4gIDE4Olx0XG4gIDE5Olx0XHQgIElmIHVuc3VyZSwgc2F5IE4uXG4gIDIwOlx0XG4gIDIxOlx0Y29uZmlnIFVTQklQX1ZIQ0lfSENEXG4gIDIyOlx0XHR0cmlzdGF0ZSBcJiMzNDtWSENJIGhjZFwmIzM0O1xuICAyMzpcdFx0ZGVwZW5kcyBvbiBVU0JJUF9DT1JFIFx1MDAyNlx1MDAyNiBVU0JcbiAgMjQ6XHRcdGhlbHBcbiAgMjU6XHRcdCAgVGhpcyBlbmFibGVzIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgZHJpdmVyLFxuICAyNjpcdFx0ICB3aGljaCBpcyBydW4gb24gdGhlIHJlbW90ZSBtYWNoaW5lLlxuICAyNzpcdFxuICAyODpcdFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlOiB0aGVcbiAgMjk6XHRcdCAgbW9kdWxlIHdpbGwgYmUgY2FsbGVkIHZoY2ktaGNkLlxuICAzMDpcdFxuICAzMTpcdGNvbmZpZyBVU0JJUF9WSENJX0hDX1BPUlRTXG4gIDMyOlx0XHRpbnQgXCYjMzQ7TnVtYmVyIG9mIHBvcnRzIHBlciBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXJcJiMzNDtcbiAgMzM6XHRcdHJhbmdlIDEgMTVcbiAgMzQ6XHRcdGRlZmF1bHQgOFxuICAzNTpcdFx0ZGVwZW5kcyBvbiBVU0JJUF9WSENJX0hDRFxuICAzNjpcdFx0aGVscFxuICAzNzpcdFx0ICBUbyBpbmNyZWFzZSBudW1iZXIgb2YgcG9ydHMgYXZhaWxhYmxlIGZvciBVU0IvSVAgdmlydHVhbFxuICAzODpcdFx0ICBob3N0IGNvbnRyb2xsZXIgZHJpdmVyLCB0aGlzIGRlZmluZXMgbnVtYmVyIG9mIHBvcnRzIHBlclxuICAzOTpcdFx0ICBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIuXG4gIDQwOlx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc5OTgKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVU0JJUCBDb25maWd1cmF0aW9uIGZvciBhIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gRnJvbSB3aGF0IEkgc2VlLCB0aGUgcHJpbWFyeSBkZXBlbmRlbmNpZXMgYXJlIGBVU0JJUF9DT1JFYCBhbmQgYFVTQmAuIEdvdCBpdC4gVGhhdCBtZWFucyBJJiMzOTtsbCBuZWVkIHRvIGVuYWJsZSBgVVNCSVBfVkhDSV9IQ0RgIGFsb25nIHdpdGggYFVTQklQX0NPUkVgIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nJiMzOTtzIHNldCB1cCBjb3JyZWN0bHkuIE1ha2VzIHNlbnNlIHNvIGZhci4KCk5vdywgbGV0JiMzOTtzIGRyaWxsIGRvd24gYSBiaXQgYW5kIGZpbmQgdGhlIHJlYWwgZm9jdXMgcG9pbnRzIG9mIHRoZSBjaGFuZ2UuIEl0IGxvb2tzIGxpa2UgdGhpcyBwYXRjaCBzcGVjaWZpY2FsbHkgdG91Y2hlcyBgdmhjaV91cmJfZGVxdWV1ZWAsIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgLCBhbmQgYHZoY2lfcmVjdl9yZXRfdW5saW5rYC4gUmlnaHQsIHNvIGB2aGNpX3VyYl9kZXF1ZXVlYCBpcyBhIGZ1bmN0aW9uIHBvaW50ZXIgd2l0aGluIHRoYXQgYHZoY2lfaGNfZHJpdmVyYCBzdHJ1Y3QsIHdoaWNoIGlzIGEgYGhjX2RyaXZlcmAuIFRoZSBVU0IgY29yZSBpcyBjYWxsaW5nIGludG8gaXQsIHNvIHRoYXQmIzM5O3MgYSBrZXkgaW50ZXJhY3Rpb24gdG8ga2VlcCBpbiBtaW5kLgoKYHZoY2lfY2xlYW51cF91bmxpbmtfbGlzdGAgaXMgc3RhdGljLCBzbyBJJiMzOTtsbCBuZWVkIHRvIHNlZSBob3cgaXQgaXMgY2FsbGVkIHRvIGJlIHN1cmUsIGluIGNhc2UgdGhlcmUgYXJlIGhpZGRlbiBpbnRlcmFjdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA3IDA4OjU0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3ZoY2lfY2xlYW51cF91bmxpbmtfbGlzdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3VzYmlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTkwMz1zdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTkzLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo5OTQ6c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTk1LVx0XHRzdHJ1Y3QgbGlzdF9oZWFkICp1bmxpbmtfbGlzdClcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEwNDM9c3RhdGljIHZvaWQgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXAoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA0NS1cdC8qIGdpdmUgYmFjayBVUkIgb2YgdW5zZW50IHVubGluayByZXF1ZXN0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDY6XHR2aGNpX2NsZWFudXBfdW5saW5rX2xpc3QodmRldiwgXHUwMDI2dmRldi1cdTAwM2V1bmxpbmtfdHgpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDQ3LVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDQ4LVx0LyogZ2l2ZSBiYWNrIFVSQiBvZiB1bmFuc3dlcmVkIHVubGluayByZXF1ZXN0ICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDk6XHR2aGNpX2NsZWFudXBfdW5saW5rX2xpc3QodmRldiwgXHUwMDI2dmRldi1cdTAwM2V1bmxpbmtfcngpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDUwLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg4MDUKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAzNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqSW52ZXN0aWdhdGluZyB0aGUgVkhDSSBVbmxpbmsgUHJvY2VzcyoqCgpSaWdodCwgc28gYHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwYCB0cmlnZ2VycyBgdmhjaV9jbGVhbnVwX3VubGlua19saXN0YC4gVGhhdCYjMzk7cyBhIHN0YW5kYXJkIHBhdHRlcm4gZm9yIGRlZmVycmluZyBzb21lIGNsZWFudXAgb3BlcmF0aW9ucywgdXN1YWxseSBiZWNhdXNlIHRoZXkgaW52b2x2ZSBzb21lIHJlc291cmNlIGRlYWxsb2NhdGlvbiB0aGF0IG1pZ2h0IGJlIHRyaWNreSB0byBkbyBkaXJlY3RseSB3aXRoaW4gdGhlIG1haW4gdW5saW5rIGZsb3cuIEJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbGFyZ2VyIGNvbnRleHQuIFRoZSBjcml0aWNhbCBxdWVzdGlvbiBoZXJlIGlzOiAqd2hlcmUqIGlzIGB2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cGAgY2FsbGVkPyBLbm93aW5nIHRoZSBjYWxsIHNpdGVzIHdpbGwgcmV2ZWFsIHRoZSBzY2VuYXJpb3MgdGhhdCB0cmlnZ2VyIHRoaXMgY2xlYW51cCBwcm9jZXNzIGFuZCBleHBvc2UgdGhlIGVkZ2UtY2FzZXMgdGhhdCBhcmUgbGlrZWx5IHRvIG5lZWQgc3BlY2lhbCBhdHRlbnRpb24uIEkgbmVlZCB0byB0cmFjZSB0aGlzIGZ1bmN0aW9uIGNhbGwuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoZW4gYW5kIHdoeSB0aGUgZGV2aWNlIGlzIGJlaW5nIHVubGlua2VkIGluIHRoZSBmaXJzdCBwbGFjZSwgYW5kIHdoYXQgY29uZGl0aW9ucyByZXF1aXJlIHRoaXMgc3BlY2lmaWMgY2xlYW51cC4gVGhhdCYjMzk7cyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucywgcmVzb3VyY2UgbGVha3MsIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IgaW4gdGhlIFZIQ0kgZHJpdmVyLiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCBzdGFydCBjcm9zcy1yZWZlcmVuY2luZy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXAmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz05OTQ9c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNDItXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDM6c3RhdGljIHZvaWQgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXAoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDQ0LXtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEwNTc9c3RhdGljIHZvaWQgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uKHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA4Ni1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTA4NzpcdHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwKHZkZXYpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDg4LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTM1MAoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDQzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgc2VxdWVuY2UsIHRoaW5raW5nIHRocm91Z2ggaXQgaW4gYSB0ZWNobmljYWwgY29udGV4dC4KCioqVW5kZXJzdGFuZGluZyB0aGUgVkhDSSBDb25uZWN0aW9uIFNodXRkb3duIFByb2Nlc3MqKgoKUmlnaHQsIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gaG93IHRoZSBWSENJIGNvbm5lY3Rpb24gc2h1dHMgZG93bi4gSXQgbG9va3MgbGlrZSB0aGUgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAgZnVuY3Rpb24gaXMgdGhlIGtleSBzdGFydGluZyBwb2ludC4gIFRoaXMgaXMgd2hhdCBpbml0aWF0ZXMgdGhlIHRlYXJkb3duLiAgTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHdoYXQmIzM5O3MgaGFwcGVuaW5nIHdoZW4gYSBjb25uZWN0aW9uIGdvZXMgZG93bj8gIEl0JiMzOTtzIGNsZWFyIHRoYXQgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAgY2FsbHMgYHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIEkmIzM5O2QgbmVlZCB0byBkaWcgZGVlcGVyIGludG8gd2hhdCBgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXBgIGFjdHVhbGx5ICpkb2VzKi4gSXMgaXQgZnJlZWluZyByZXNvdXJjZXMsIHNpZ25hbGluZyB0aGUgZGV2aWNlcywgb3IgYm90aD8gIEkmIzM5O2xsIG5lZWQgdG8gbG9vayBhdCB0aGF0IGZ1bmN0aW9uJiMzOTtzIGltcGxlbWVudGF0aW9uIGNsb3NlbHkgdG8gdW5kZXJzdGFuZCB0aGUgbnVhbmNlcy4KClRoZW4gdGhlcmUmIzM5O3MgdGhlIGB2aGNpX3JlY3ZfcmV0X3VubGlua2AgZnVuY3Rpb24uIFRoZSBmYWN0IHRoYXQgaXQmIzM5O3MgY2FsbGVkIGZyb20gYHZoY2lfcnhfcGR1YCBzdWdnZXN0cyB0aGlzIGlzIGNsb3NlbHkgdGllZCB0byBoYW5kbGluZyBpbmNvbWluZyBkYXRhIG9yIGNvbW1hbmRzLCBzcGVjaWZpY2FsbHkgcmVsYXRpbmcgdG8gdW5saW5raW5nIGEgZGV2aWNlLiBJdCYjMzk7cyBsaWtlbHkgdGhhdCBpZiBhIHBhcnRpY3VsYXIgY29tbWFuZCBvciBwaWVjZSBvZiBkYXRhIHJlY2VpdmVkIGluZGljYXRlcyB0aGUgY29ubmVjdGlvbiBzaG91bGQgY2xvc2UsIHRoaXMgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyBpdC4gIFRoZSAmIzM0O3VubGluayYjMzQ7IGJpdCBpcyBpbXBvcnRhbnQg4oCTIHRoaXMgaXMgYWJvdXQgc2V2ZXJpbmcgdGhlIGRldmljZSBmcm9tIHRoZSBjb25uZWN0aW9uIGluIHRoaXMgc3lzdGVtLiBJIHdhbnQgdG8ga25vdyB3aGVuIGRvZXMgdGhpcyBnZXQgY2FsbGVkIGluIHJlbGF0aW9uIHRvIHRoZSBpbml0aWFsIHNodXRkb3duLiBJcyBpdCBhIGRpcmVjdCByZXNwb25zZSB0byBhIHNwZWNpZmljIG1lc3NhZ2UsIG9yIGlzIGl0IGluaXRpYXRlZCBieSBzb21lIG90aGVyIHN0YXRlIGNoYW5nZT8gSSYjMzk7ZCBleHBlY3QgaXQgdG8gcGxheSBhIGNyaXRpY2FsIHJvbGUgaW4gdGhlIGdyYWNlZnVsIG9yIGZvcmNlZCBkaXNjb25uZWN0aW9uLCBkZXBlbmRpbmcgb24gdGhlIHNjZW5hcmlvLiBJJiMzOTttIHdvbmRlcmluZyBpZiB0aGlzIGlzIGEgYmxvY2tpbmcgY2FsbCwgb3IgYW4gYXN5Y2hyb25vdXMgcHJvY2Vzcy4gU28gaXQgbWFrZXMgbWUgY29uc2lkZXIgaG93IHdlIG1pZ2h0IGJlIGFibGUgdG8gaGFuZGxlIGFuIGVycm9yIHNjZW5hcmlvIHdpdGhpbiB0aGlzIGZsb3cuIEkmIzM5O20gZ29pbmcgdG8gaGF2ZSB0byBkaXZlIGludG8gdGhlIHNwZWNpZmljIGNvZGUgYW5kIHRyYWNpbmcgbG9ncyB0byBmdWxseSBncmFzcCB0aGlzIGludGVyYWN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aGNpX3JlY3ZfcmV0X3VubGluayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdXNiL3VzYmlwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTEyPXN0YXRpYyBzdHJ1Y3QgdmhjaV91bmxpbmsgKmRlcXVldWVfcGVuZGluZ191bmxpbmsoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMzYtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTM3OnN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMzgtXHRcdFx0XHQgc3RydWN0IHVzYmlwX2hlYWRlciAqcGR1KVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYz0xOTg9c3RhdGljIHZvaWQgdmhjaV9yeF9wZHUoc3RydWN0IHVzYmlwX2RldmljZSAqdWQpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTI0NS1cdGNhc2UgVVNCSVBfUkVUX1VOTElOSzpcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoyNDY6XHRcdHZoY2lfcmVjdl9yZXRfdW5saW5rKHZkZXYsIFx1MDAyNnBkdSk7XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMjQ3LVx0XHRicmVhaztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAwOTUKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAzNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFBvdGVudGlhbCBGb2N1cyBTeW1ib2xzKioKCk9rYXksIHNvIEkgbmVlZCB0byBjaG9vc2UgdGhlIGtleSBzeW1ib2xzIGZvciB0aGlzIGFuYWx5c2lzLiBCYXNlZCBvbiB0aGUgaW5pdGlhbCBpbnZlc3RpZ2F0aW9uLCBJIHdhcyB0aGlua2luZyBhYm91dCB0aGVzZTogYHZoY2lfdXJiX2RlcXVldWVgLCBgdmhjaV9yZWN2X3JldF91bmxpbmtgLCBhbmQgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAuIFRoZSBsYXN0IG9uZSBsZWFkcyB0byBgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXBgLCB3aGljaCB0aGVuIGNhbGxzIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgLCBidXQgdGhlIHJvb3QgZnVuY3Rpb25zIGFyZSB0aGUgb25lcyBJJiMzOTttIHJlYWxseSBjb25jZXJuZWQgd2l0aC4KClJpZ2h0LCBgdmhjaV91cmJfZGVxdWV1ZWAgbG9va3MgbGlrZSBhIHN0cm9uZyBjb250ZW5kZXIuIEFuZCBgdmhjaV9yZWN2X3JldF91bmxpbmtgIHNlZW1zIHJlbGV2YW50IGFzIHdlbGwgc2luY2UgaXTigJlzIGRpcmVjdGx5IHRpZWQgdG8gdGhlIHVubGluayBwcm9jZXNzLiBgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uYCBpcyBhbHNvIGEgdmFsaWQgY2hvaWNlLiBXaGlsZSBgdmhjaV9yeF9wZHVgIGlzIHRoZSBlbnRyeSBmb3IgcmVjZWl2aW5nIFBEVXMsIGB2aGNpX3JlY3ZfcmV0X3VubGlua2AgaXMgc3BlY2lmaWMgdG8gdGhlIHVubGlua2luZyBhbmQgc2VlbXMgbW9yZSB1c2VmdWwuCgpOb3csIGEgY3JpdGljYWwgcG9pbnQg4oCTIHRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmeSBhIHByZWZlcmVuY2UgZm9yIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeSBwb2ludHMuIEludGVybmFsIHN0YXRpYyBoZWxwZXJzIGFyZSBvZnRlbiBpbmxpbmVkIGFuZCBkb27igJl0IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3Nlcywgd2hpY2ggbWFrZXMgdGhlbSBsZXNzIHVzZWZ1bCBmb3IgdGhpcyBwdXJwb3NlLgoKYHZoY2lfdXJiX2RlcXVldWVgIGlzLCBpbiBmYWN0LCBzdGF0aWMuIEJ1dCwgaXRzIGFkZHJlc3MgaXMgdGFrZW4gYW5kIHVzZWQgaW4gYHZoY2lfaGNfZHJpdmVyYCwgbWVhbmluZyBpdCAqd29uJiMzOTt0KiBiZSBpbmxpbmVkLiBUaGF0IG1ha2VzIGl0IGEgdmFsaWQgY2FuZGlkYXRlLgoKSG93ZXZlciwgYHZoY2lfcmVjdl9yZXRfdW5saW5rYCBpcyBzdGF0aWMsIHdoaWNoIGlzIGEgY29uY2Vybi4gSXTigJlzIGNhbGxlZCBmcm9tIGB2aGNpX3J4X3BkdWAsIHNvIEkgc2hvdWxkIGNoZWNrIGB2aGNpX3J4X3BkdWAgdG8gc2VlIGlmIGl04oCZcyBpbmxpbmVkLiBJdCBpcyBhbHNvIHN0YXRpYy4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYHZoY2lfcnhfbG9vcGAsIHdoaWNoIG5lZWRzIHRvIGJlIGxvb2tlZCBhdCBuZXh0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aGNpX3J4X2xvb3AmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTEzNz1zdHJ1Y3QgdXJiICpwaWNrdXBfdXJiX2FuZF9mcmVlX3ByaXYoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LCBfX3UzMiBzZXFudW0pO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEzODppbnQgdmhjaV9yeF9sb29wKHZvaWQgKmRhdGEpO1xuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTEzOS1cbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTk4PXN0YXRpYyB2b2lkIHZoY2lfcnhfcGR1KHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0yNTYtXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MjU3OmludCB2aGNpX3J4X2xvb3Aodm9pZCAqZGF0YSlcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0yNTgte1xuLS1cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYz0zMTU9c3RhdGljIHNzaXplX3QgYXR0YWNoX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTM4MS1cdC8qIGNyZWF0ZSB0aHJlYWRzIGJlZm9yZSBsb2NraW5nICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MzgyOlx0dGNwX3J4ID0ga3RocmVhZF9jcmVhdGUodmhjaV9yeF9sb29wLCBcdTAwMjZ2ZGV2LVx1MDAzZXVkLCBcJiMzNDt2aGNpX3J4XCYjMzQ7KTtcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0zODMtXHRpZiAoSVNfRVJSKHRjcF9yeCkpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjEyMjEKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA4OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBicmVha2Rvd24gb2YgdGhpcy4KCioqSW52ZXN0aWdhdGluZyBVU0IgVmlydHVhbCBIb3N0IENvbnRyb2xsZXIgKFZIQ0kpIFRocmVhZCBNYW5hZ2VtZW50KioKCkFscmlnaHQsIGxldCYjMzk7cyBzZWUsIEkmIzM5O20gdHJ5aW5nIHRvIHdyYXAgbXkgaGVhZCBhcm91bmQgdGhlIHRocmVhZCBtYW5hZ2VtZW50IGluIHRoZSBWSENJIGRyaXZlci4gYHZoY2lfcnhfbG9vcGAgaXMgdGhlIGVudHJ5IHBvaW50IGZvciBhIGt0aHJlYWQsIGFuZCBpdCYjMzk7cyBub3QgZGVjbGFyZWQgYXMgc3RhdGljLiBHb29kLCB0aGF0IG1ha2VzIHNlbnNlLiBOb3csIGB2aGNpX3VyYl9kZXF1ZXVlYCBpcyBhIHN0YXRpYyBmdW5jdGlvbiwgYnV0IGl0JiMzOTtzIGEgY2FsbGJhY2ssIHNvIHRoYXQmIzM5O3MgcHJvYmFibHkgYWxyaWdodC4gSSB0aGluayBJIGNhbiBsaWtlbHkgdXRpbGl6ZSB0aGVzZSB0aHJlZSBmdW5jdGlvbnM6IGB2aGNpX3VyYl9kZXF1ZXVlYCwgYHZoY2lfcnhfbG9vcGAsIGFuZCBgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uYC4gTm93LCB3YWl0IGEgc2Vjb25kLiBJIGp1c3QgcmVhbGl6ZWQgdGhhdCBgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uYCBpcyBhIHN0YXRpYyBmdW5jdGlvbi4gVGhhdCBtZWFucyBpdHMgc2NvcGUgaXMgbGltaXRlZCB3aXRoaW4gdGhlIGZpbGUgb3IgbW9kdWxlLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBpdCYjMzk7cyBiZWluZyBjYWxsZWQuIFRoYXQmIzM5O3MgdGhlIG5leHQgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gSSBuZWVkLiBJJiMzOTtsbCBuZWVkIHRvIHRyYWNlIGl0cyByZWZlcmVuY2VzIHRvIHVuZGVyc3RhbmQgaXRzIHB1cnBvc2UgYW5kIGhvdyBpdCBmaXRzIGludG8gdGhlIGNvbm5lY3Rpb24gbGlmZWN5Y2xlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb24mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3VzYi91c2JpcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xMDQzPXN0YXRpYyB2b2lkIHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTYtICovXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNTc6c3RhdGljIHZvaWQgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uKHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDU4LXtcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTExMDEtXHQgKiBOT1RFOiB2aGNpX2RlcXVldWUoKSBtdXN0IGJlIGNvbnNpZGVyZWQgY2FyZWZ1bGx5LiBXaGVuIHNodXR0aW5nIGRvd25cbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTEwMjpcdCAqIGEgY29ubmVjdGlvbiwgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uKCkgZXhwZWN0cyB2aGNpX2RlcXVldWUoKVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTAzLVx0ICogZ2l2ZXMgYmFjayBwdXNoZWQgdXJicyBhbmQgZnJlZXMgdGhlaXIgcHJpdmF0ZSBkYXRhIGJ5IHJlcXVlc3Qgb2Zcbi0tXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTExNDc9c3RhdGljIHZvaWQgdmhjaV9kZXZpY2VfaW5pdChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYpXG4tLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTYzLVxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMTY0Olx0dmRldi1cdTAwM2V1ZC5laF9vcHMuc2h1dGRvd24gPSB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb247XG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTExNjUtXHR2ZGV2LVx1MDAzZXVkLmVoX29wcy5yZXNldCA9IHZoY2lfZGV2aWNlX3Jlc2V0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNyAwODo1NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTk2NgoJCQkJCQkJb3V0cHV0OiAxNjAKCQkJCQkJCXRob3VnaHRzOiAzNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVU0IvSVAgVkhDSSBTaHV0ZG93biBDYWxsYmFjayoqCgpPa2F5LCBzbyB0aGlzIGlzIGFib3V0IHRoZSBjYWxsYmFjayBmb3IgYGVoX29wcy5zaHV0ZG93bmAsIHJpZ2h0PyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUga2V5IGFyZWFzIHRvIGZvY3VzIG9uIGluIHRoaXMgY29udGV4dC4gYHZoY2lfdXJiX2RlcXVldWVgLCBgdmhjaV9yeF9sb29wYCwgYW5kIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gIGFyZSBkZWZpbml0ZWx5IGltcG9ydGFudCBzeW1ib2xzIHRvIHplcm8gaW4gb24uCgpJIG5lZWQgdG8gcXVpY2tseSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGRyaXZlci4gTGV0JiMzOTtzIHNlZSwgd2UgaGF2ZSBgVVNCSVBfVkhDSV9IQ0RgIGFuZCBgVVNCSVBfQ09SRWAuIEFueSBvdGhlciBkZXBlbmRlbmNpZXM/IEhtbSwgYFVTQklQX0NPUkVgIGRlcGVuZHMgb24gYE5FVGAsIGFuZCBgVVNCSVBfVkhDSV9IQ0RgIGRlcGVuZHMgb24gYFVTQklQX0NPUkVgIGFuZCBgVVNCYC4gU28gdGhlIGNvbXBsZXRlIHNldCBvZiBkZXBlbmRlbmNpZXMgd291bGQgaW5jbHVkZSBgVVNCSVBfVkhDSV9IQ0RgLCBgVVNCSVBfQ09SRWAsIGBVU0JgLCBhbmQgYE5FVGAuIEFsdGhvdWdoLCBmb3IgbXkgcHVycG9zZXMsIGxpc3RpbmcgYFVTQklQX1ZIQ0lfSENEYCBhbmQgYFVTQklQX0NPUkVgIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBub3cuCgpUaGUgcGF0Y2gmIzM5O3MgcHVycG9zZSBpcyB0byBhZGQgYSB0aW1lciB0byBoYW5kbGUgVVJCIHRpbWVvdXRzIGluIHRoZSBWSENJLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIFVTQi9JUCBkcml2ZXIsIHNvIGl0IGFmZmVjdHMgdW5saW5raW5nLCBhbmQgc2hvdWxkIHByZXZlbnQgcG90ZW50aWFsIGhhbmdzLiBCZWluZyB0aGF0IFVTQi9JUCBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB0aGlzIGlzIGEgdmFsaWQgdGFyZ2V0IGZvciBmdXp6aW5nLgoKTm93LCBsZXQmIzM5O3MgdGFrZSBhIHF1aWNrIGxvb2sgYXQgYHZoY2lfdW5saW5rX3RpbWVvdXRgIOKAkyB0aGUgbmV3bHkgYWRkZWQgZnVuY3Rpb24uIEl0JiMzOTtzIHN0YXRpYywgd2hpY2ggaXMgaW50ZXJlc3RpbmcsIGJ1dCBpdCYjMzk7cyBhIHRpbWVyIGNhbGxiYWNrLCBzbyBpdCYjMzk7cyBub3QgaW5saW5lZCwgd2hpY2ggZXhwYW5kcyBpdHMgaW1wYWN0LiBJIHRoaW5rIHRoaXMgY291bGQgYmUgYSBmb2N1cyBzeW1ib2wgYXMgd2VsbC4KClNvLCBpbiBzdW1tYXJ5LCBoZXJlIGFyZSB0aGUga2V5IGZvY3VzIHN5bWJvbHM6Ci0gICBgdmhjaV91cmJfZGVxdWV1ZWAKLSAgIGB2aGNpX3VubGlua190aW1lb3V0YAotICAgYHZoY2lfcnhfbG9vcGAKLSAgIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gCgpBbHJpZ2h0LCB0aW1lIHRvIHNldCB0aGUgcmVzdWx0cyBhbmQgbW92ZSBvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDcgMDg6NTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1VTQklQX1ZIQ0lfSENEJiMzNDssCiAgICAmIzM0O1VTQklQX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt2aGNpX3VyYl9kZXF1ZXVlJiMzNDssCiAgICAmIzM0O3ZoY2lfdW5saW5rX3RpbWVvdXQmIzM0OywKICAgICYjMzQ7dmhjaV9yeF9sb29wJiMzNDssCiAgICAmIzM0O3ZoY2lfc2h1dGRvd25fY29ubmVjdGlvbiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBtZWNoYW5pc20gZm9yIFVSQiB1bmxpbmtpbmcgaW4gdGhlIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciAodmhjaSkgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyBwb3RlbnRpYWwgaGFuZ3Mgd2hlbiB1bmxpbmtpbmcgVVJCcyBieSBpbnRyb2R1Y2luZyBhIHRpbWVyIHRoYXQgdHJpZ2dlcnMgYSBUQ1AgZXJyb3IgZXZlbnQgaWYgdGhlIHVubGluayBvcGVyYXRpb24gdGFrZXMgdG9vIGxvbmcuIFRoZSBVU0IvSVAgZHJpdmVyIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGlzIGEgdmFsaWQgdGFyZ2V0IGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtVU0JJUF9WSENJX0hDRCYjMzQ7LAogICAgJiMzNDtVU0JJUF9DT1JFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dmhjaV91cmJfZGVxdWV1ZSYjMzQ7LAogICAgJiMzNDt2aGNpX3VubGlua190aW1lb3V0JiMzNDssCiAgICAmIzM0O3ZoY2lfcnhfbG9vcCYjMzQ7LAogICAgJiMzNDt2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb24mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgbWVjaGFuaXNtIGZvciBVUkIgdW5saW5raW5nIGluIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgKHZoY2kpIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIGhhbmdzIHdoZW4gdW5saW5raW5nIFVSQnMgYnkgaW50cm9kdWNpbmcgYSB0aW1lciB0aGF0IHRyaWdnZXJzIGEgVENQIGVycm9yIGV2ZW50IGlmIHRoZSB1bmxpbmsgb3BlcmF0aW9uIHRha2VzIHRvbyBsb25nLiBUaGUgVVNCL0lQIGRyaXZlciBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBpcyBhIHZhbGlkIHRhcmdldCBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA4OjU0OjMxLjkxMjkwNzkzOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzODM2NjcyOTM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlVTQklQX1ZIQ0lfSENEXCIsXG4gICAgXCJVU0JJUF9DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwidmhjaV91cmJfZGVxdWV1ZVwiLFxuICAgIFwidmhjaV91bmxpbmtfdGltZW91dFwiLFxuICAgIFwidmhjaV9yeF9sb29wXCIsXG4gICAgXCJ2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgdGltZW91dCBtZWNoYW5pc20gZm9yIFVSQiB1bmxpbmtpbmcgaW4gdGhlIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlciAodmhjaSkgZHJpdmVyLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBwcmV2ZW50cyBwb3RlbnRpYWwgaGFuZ3Mgd2hlbiB1bmxpbmtpbmcgVVJCcyBieSBpbnRyb2R1Y2luZyBhIHRpbWVyIHRoYXQgdHJpZ2dlcnMgYSBUQ1AgZXJyb3IgZXZlbnQgaWYgdGhlIHVubGluayBvcGVyYXRpb24gdGFrZXMgdG9vIGxvbmcuIFRoZSBVU0IvSVAgZHJpdmVyIGlzIHJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGlzIGEgdmFsaWQgdGFyZ2V0IGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDozMS45MTI5MTI3MDdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNDQ1MTY0NTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA0YmE5ZTY3NzczYzMyNmEzYTRiMTFiNWVjYWJkMjdlZGY1MzJlNWQ1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgQXVnIDcgMDg6NTQ6MzAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oXFxuaW5kZXggNTY1OWRjZTE1MjZlOC4uOThlM2JmYjI5YjZiZiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcXG4rKysgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcXG5AQCAtMTEsNiArMTEsNyBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbGlzdC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvc3BpbmxvY2suaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N5c2ZzLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC90aW1lci5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvdHlwZXMuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3VzYi5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvdXNiL2hjZC5oXFx1MDAzZVxcbkBAIC02NSw2ICs2Niw5IEBAIHN0cnVjdCB2aGNpX3VubGluayB7XFxuIFxcbiBcXHQvKiBzZXFudW0gb2YgdGhlIHVubGluayB0YXJnZXQgKi9cXG4gXFx0dW5zaWduZWQgbG9uZyB1bmxpbmtfc2VxbnVtO1xcbitcXG4rXFx0c3RydWN0IHRpbWVyX2xpc3QgdW5saW5rX3RpbWVyO1xcbitcXHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXY7XFxuIH07XFxuIFxcbiBlbnVtIGh1Yl9zcGVlZCB7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMgYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jXFxuaW5kZXggMzllOGZhZjRjMThjZC4uNWNjMjc2ZjQ2ZDUxYSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jXFxuKysrIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuY1xcbkBAIC04OTIsNiArODkyLDE0IEBAIHN0YXRpYyBpbnQgdmhjaV91cmJfZW5xdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGdmcF90IG1lbV9mbGFnXFxuICAqXFx0XFx0PVxcdTAwM2Ugc2VuZCBSRVRfVU5MSU5LXFxuICAqXFxuICAqL1xcbitzdGF0aWMgdm9pZCB2aGNpX3VubGlua190aW1lb3V0KHN0cnVjdCB0aW1lcl9saXN0ICp0KVxcbit7XFxuK1xcdHN0cnVjdCB2aGNpX3VubGluayAqdW5saW5rID0gdGltZXJfY29udGFpbmVyX29mKHVubGluaywgdCwgdW5saW5rX3RpbWVyKTtcXG4rXFx0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gdW5saW5rLVxcdTAwM2V2ZGV2O1xcbitcXG4rXFx0dXNiaXBfZXZlbnRfYWRkKFxcdTAwMjZ2ZGV2LVxcdTAwM2V1ZCwgVkRFVl9FVkVOVF9FUlJPUl9UQ1ApO1xcbit9XFxuK1xcbiBzdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxcbiB7XFxuIFxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcXG5AQCAtOTY0LDYgKzk3MiwxMCBAQCBzdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxcbiBcXHRcXHRcXHRkZXZfaW5mbyhoY2RfZGV2KGhjZCksIFxcXCJzZXFudW0gbWF4XFxcXG5cXFwiKTtcXG4gXFxuIFxcdFxcdHVubGluay1cXHUwMDNldW5saW5rX3NlcW51bSA9IHByaXYtXFx1MDAzZXNlcW51bTtcXG4rXFx0XFx0dW5saW5rLVxcdTAwM2V2ZGV2ID0gdmRldjtcXG4rXFxuK1xcdFxcdHRpbWVyX3NldHVwKFxcdTAwMjZ1bmxpbmstXFx1MDAzZXVubGlua190aW1lciwgdmhjaV91bmxpbmtfdGltZW91dCwgMCk7XFxuK1xcdFxcdG1vZF90aW1lcihcXHUwMDI2dW5saW5rLVxcdTAwM2V1bmxpbmtfdGltZXIsIGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDQwMDApKTtcXG4gXFxuIFxcdFxcdC8qIHNlbmQgY21kX3VubGluayBhbmQgdHJ5IHRvIGNhbmNlbCB0aGUgcGVuZGluZyBVUkIgaW4gdGhlXFxuIFxcdFxcdCAqIHBlZXIgKi9cXG5AQCAtOTk3LDcgKzEwMDksMTIgQEAgc3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4gXFx0XFx0dXJiID0gcGlja3VwX3VyYl9hbmRfZnJlZV9wcml2KHZkZXYsIHVubGluay1cXHUwMDNldW5saW5rX3NlcW51bSk7XFxuIFxcdFxcdGlmICghdXJiKSB7XFxuIFxcdFxcdFxcdGxpc3RfZGVsKFxcdTAwMjZ1bmxpbmstXFx1MDAzZWxpc3QpO1xcbitcXHRcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2dmRldi1cXHUwMDNlcHJpdl9sb2NrKTtcXG4rXFx0XFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbitcXHRcXHRcXHR0aW1lcl9kZWxldGVfc3luYyhcXHUwMDI2dW5saW5rLVxcdTAwM2V1bmxpbmtfdGltZXIpO1xcbiBcXHRcXHRcXHRrZnJlZSh1bmxpbmspO1xcbitcXHRcXHRcXHRzcGluX2xvY2tfaXJxc2F2ZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbitcXHRcXHRcXHRzcGluX2xvY2soXFx1MDAyNnZkZXYtXFx1MDAzZXByaXZfbG9jayk7XFxuIFxcdFxcdFxcdGNvbnRpbnVlO1xcbiBcXHRcXHR9XFxuIFxcbkBAIC0xMDEwLDYgKzEwMjcsNyBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxcbiBcXHRcXHRzcGluX3VubG9jayhcXHUwMDI2dmRldi1cXHUwMDNlcHJpdl9sb2NrKTtcXG4gXFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbiBcXG4rXFx0XFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNnVubGluay1cXHUwMDNldW5saW5rX3RpbWVyKTtcXG4gXFx0XFx0dXNiX2hjZF9naXZlYmFja191cmIoaGNkLCB1cmIsIHVyYi1cXHUwMDNlc3RhdHVzKTtcXG4gXFxuIFxcdFxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZ2aGNpLVxcdTAwM2Vsb2NrLCBmbGFncyk7XFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguY1xcbmluZGV4IGE2NzhlN2M4OTgzNzUuLjY1OGE0NjRhMTc3NDEgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXFxuKysrIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXFxuQEAgLTE3OCw2ICsxNzgsNyBAQCBzdGF0aWMgdm9pZCB2aGNpX3JlY3ZfcmV0X3VubGluayhzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYsXFxuIFxcdFxcdHVzYl9oY2RfZ2l2ZWJhY2tfdXJiKHZoY2lfaGNkX3RvX2hjZCh2aGNpX2hjZCksIHVyYiwgdXJiLVxcdTAwM2VzdGF0dXMpO1xcbiBcXHR9XFxuIFxcbitcXHR0aW1lcl9kZWxldGVfc3luYyhcXHUwMDI2dW5saW5rLVxcdTAwM2V1bmxpbmtfdGltZXIpO1xcbiBcXHRrZnJlZSh1bmxpbmspO1xcbiB9XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDozMy4xNTg0NjYwMDlaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjo2MjU5MTEwNzM1OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJVU0JJUF9WSENJX0hDRFwiLFxuICAgIFwiVVNCSVBfQ09SRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInZoY2lfdXJiX2RlcXVldWVcIixcbiAgICBcInZoY2lfdW5saW5rX3RpbWVvdXRcIixcbiAgICBcInZoY2lfcnhfbG9vcFwiLFxuICAgIFwidmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIHRpbWVvdXQgbWVjaGFuaXNtIGZvciBVUkIgdW5saW5raW5nIGluIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgKHZoY2kpIGRyaXZlci4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgcHJldmVudHMgcG90ZW50aWFsIGhhbmdzIHdoZW4gdW5saW5raW5nIFVSQnMgYnkgaW50cm9kdWNpbmcgYSB0aW1lciB0aGF0IHRyaWdnZXJzIGEgVENQIGVycm9yIGV2ZW50IGlmIHRoZSB1bmxpbmsgb3BlcmF0aW9uIHRha2VzIHRvbyBsb25nLiBUaGUgVVNCL0lQIGRyaXZlciBpcyByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBpcyBhIHZhbGlkIHRhcmdldCBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNGJhOWU2Nzc3M2MzMjZhM2E0YjExYjVlY2FiZDI3ZWRmNTMyZTVkNVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBGcmkgQXVnIDcgMDg6NTQ6MzAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmggYi9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcbmluZGV4IDU2NTlkY2UxNTI2ZTguLjk4ZTNiZmIyOWI2YmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpLmhcbisrKyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaFxuQEAgLTExLDYgKzExLDcgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9saXN0LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9zcGlubG9jay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc3lzZnMuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3RpbWVyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC90eXBlcy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvdXNiLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC91c2IvaGNkLmhcdTAwM2VcbkBAIC02NSw2ICs2Niw5IEBAIHN0cnVjdCB2aGNpX3VubGluayB7XG4gXG4gXHQvKiBzZXFudW0gb2YgdGhlIHVubGluayB0YXJnZXQgKi9cbiBcdHVuc2lnbmVkIGxvbmcgdW5saW5rX3NlcW51bTtcbitcbitcdHN0cnVjdCB0aW1lcl9saXN0IHVubGlua190aW1lcjtcbitcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldjtcbiB9O1xuIFxuIGVudW0gaHViX3NwZWVkIHtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuY1xuaW5kZXggMzllOGZhZjRjMThjZC4uNWNjMjc2ZjQ2ZDUxYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmNcbisrKyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmNcbkBAIC04OTIsNiArODkyLDE0IEBAIHN0YXRpYyBpbnQgdmhjaV91cmJfZW5xdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGdmcF90IG1lbV9mbGFnXG4gICpcdFx0PVx1MDAzZSBzZW5kIFJFVF9VTkxJTktcbiAgKlxuICAqL1xuK3N0YXRpYyB2b2lkIHZoY2lfdW5saW5rX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4re1xuK1x0c3RydWN0IHZoY2lfdW5saW5rICp1bmxpbmsgPSB0aW1lcl9jb250YWluZXJfb2YodW5saW5rLCB0LCB1bmxpbmtfdGltZXIpO1xuK1x0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gdW5saW5rLVx1MDAzZXZkZXY7XG4rXG4rXHR1c2JpcF9ldmVudF9hZGQoXHUwMDI2dmRldi1cdTAwM2V1ZCwgVkRFVl9FVkVOVF9FUlJPUl9UQ1ApO1xuK31cbitcbiBzdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxuIHtcbiBcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcbkBAIC05NjQsNiArOTcyLDEwIEBAIHN0YXRpYyBpbnQgdmhjaV91cmJfZGVxdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGludCBzdGF0dXMpXG4gXHRcdFx0ZGV2X2luZm8oaGNkX2RldihoY2QpLCBcInNlcW51bSBtYXhcXG5cIik7XG4gXG4gXHRcdHVubGluay1cdTAwM2V1bmxpbmtfc2VxbnVtID0gcHJpdi1cdTAwM2VzZXFudW07XG4rXHRcdHVubGluay1cdTAwM2V2ZGV2ID0gdmRldjtcbitcbitcdFx0dGltZXJfc2V0dXAoXHUwMDI2dW5saW5rLVx1MDAzZXVubGlua190aW1lciwgdmhjaV91bmxpbmtfdGltZW91dCwgMCk7XG4rXHRcdG1vZF90aW1lcihcdTAwMjZ1bmxpbmstXHUwMDNldW5saW5rX3RpbWVyLCBqaWZmaWVzICsgbXNlY3NfdG9famlmZmllcyg0MDAwKSk7XG4gXG4gXHRcdC8qIHNlbmQgY21kX3VubGluayBhbmQgdHJ5IHRvIGNhbmNlbCB0aGUgcGVuZGluZyBVUkIgaW4gdGhlXG4gXHRcdCAqIHBlZXIgKi9cbkBAIC05OTcsNyArMTAwOSwxMiBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxuIFx0XHR1cmIgPSBwaWNrdXBfdXJiX2FuZF9mcmVlX3ByaXYodmRldiwgdW5saW5rLVx1MDAzZXVubGlua19zZXFudW0pO1xuIFx0XHRpZiAoIXVyYikge1xuIFx0XHRcdGxpc3RfZGVsKFx1MDAyNnVubGluay1cdTAwM2VsaXN0KTtcbitcdFx0XHRzcGluX3VubG9jayhcdTAwMjZ2ZGV2LVx1MDAzZXByaXZfbG9jayk7XG4rXHRcdFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZ2aGNpLVx1MDAzZWxvY2ssIGZsYWdzKTtcbitcdFx0XHR0aW1lcl9kZWxldGVfc3luYyhcdTAwMjZ1bmxpbmstXHUwMDNldW5saW5rX3RpbWVyKTtcbiBcdFx0XHRrZnJlZSh1bmxpbmspO1xuK1x0XHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnZoY2ktXHUwMDNlbG9jaywgZmxhZ3MpO1xuK1x0XHRcdHNwaW5fbG9jayhcdTAwMjZ2ZGV2LVx1MDAzZXByaXZfbG9jayk7XG4gXHRcdFx0Y29udGludWU7XG4gXHRcdH1cbiBcbkBAIC0xMDEwLDYgKzEwMjcsNyBAQCBzdGF0aWMgdm9pZCB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxuIFx0XHRzcGluX3VubG9jayhcdTAwMjZ2ZGV2LVx1MDAzZXByaXZfbG9jayk7XG4gXHRcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2dmhjaS1cdTAwM2Vsb2NrLCBmbGFncyk7XG4gXG4rXHRcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnVubGluay1cdTAwM2V1bmxpbmtfdGltZXIpO1xuIFx0XHR1c2JfaGNkX2dpdmViYWNrX3VyYihoY2QsIHVyYiwgdXJiLVx1MDAzZXN0YXR1cyk7XG4gXG4gXHRcdHNwaW5fbG9ja19pcnFzYXZlKFx1MDAyNnZoY2ktXHUwMDNlbG9jaywgZmxhZ3MpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYyBiL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguY1xuaW5kZXggYTY3OGU3Yzg5ODM3NS4uNjU4YTQ2NGExNzc0MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguY1xuKysrIGIvZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jXG5AQCAtMTc4LDYgKzE3OCw3IEBAIHN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcbiBcdFx0dXNiX2hjZF9naXZlYmFja191cmIodmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSwgdXJiLCB1cmItXHUwMDNlc3RhdHVzKTtcbiBcdH1cbiBcbitcdHRpbWVyX2RlbGV0ZV9zeW5jKFx1MDAyNnVubGluay1cdTAwM2V1bmxpbmtfdGltZXIpO1xuIFx0a2ZyZWUodW5saW5rKTtcbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDozMy4xNTg0Njg2MThaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDI3NzI4Mjg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFVTQi9JUCB2aGNpIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQncyBtb2RpZnlpbmcgY29yZSBVU0IvSVAgdmhjaSBmaWxlczogYHZoY2lfaGNkLmNgLCBgdmhjaV9yeC5jYCwgYW5kIGB2aGNpLmhgLiBUaGUgZ2lzdCBpcyB0aGV5J3JlIGFkZGluZyBhIHRpbWVvdXQgbWVjaGFuaXNtLCBzcGVjaWZpY2FsbHkgYSB0aW1lciBjYWxsZWQgYHVubGlua190aW1lcmAsIHRvIHRoZSBgc3RydWN0IHZoY2lfdW5saW5rYC4gVGhpcyBpcyBpbnRlbmRlZCB0byBhZGRyZXNzIHRpbWVvdXRzIGR1cmluZyBVUkIgdW5saW5raW5nIHdpdGhpbiB0aGUgdmhjaSwgd2hpY2ggaXMgYSBrZXkgZnVuY3Rpb24gb2YgdGhlIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlci5cblxuRXNzZW50aWFsbHksIHdoZW4gYHZoY2lfdXJiX2RlcXVldWVgIGdldHMgY2FsbGVkLCBpdCBzZXRzIHVwIGFuZCAqc3RhcnRzKiB0aGlzIHRpbWVyLiAgSWYgdGhpcyB0aW1lciBleHBpcmVzLCBgdmhjaV91bmxpbmtfdGltZW91dGAga2lja3MgaW4gYW5kIHRoZW4gY3JlYXRlcyBhIGBWREVWX0VWRU5UX0VSUk9SX1RDUGAgZXZlbnQuIFRoZSB0aW1lcidzIGxpZmVjeWNsZSBpcyB3ZWxsLWRlZmluZWQsIGJlaW5nIGRlbGV0ZWQgaW4gdGhlIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgIGFuZCBgdmhjaV9yZWN2X3JldF91bmxpbmtgIGZ1bmN0aW9ucy4gVGhpcyB0aW1lb3V0IGlzIGEgZ29vZCBtb3ZlLCBtYWtlcyB0aGUgZHJpdmVyIG1vcmUgcm9idXN0IVxuXG5Ob3csIHRoZSBmdW5jdGlvbmFsIGNoYW5nZSBpcyB0aGF0IHRoaXMgZGlyZWN0bHkgaW1wYWN0cyB0aGUgVVNCL0lQIGRyaXZlciBhbmQgdGhhdCdzICppbnRlcmVzdGluZyouLi4gZ2l2ZW4gdGhhdCB3ZSBrbm93IHRoYXQgVVNCL0lQIGlzIGEgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgd2hpY2ggaXMgZGVmaW5pdGVseSBpbiB0aGUgZnV6emluZyBzcG90bGlnaHQuICBXZSd2ZSBnb3Qgc3l6a2FsbGVyIGRlc2NyaXB0aW9ucyBmb3IgaXQuICBUaGUgZmFjdCB0aGF0IHdlIGFyZSBpbXByb3ZpbmcgdGhlIGVycm9yIGhhbmRsaW5nIG9mIGEgY29tcG9uZW50IGtub3duIHRvIGJlIGEgdGFyZ2V0IGZvciBmdXp6aW5nIG1lYW5zIGl0J3MgcHJldHR5IGNsZWFyIHdlIG5lZWQgdG8gbWFyayB0aGlzIGFzIGBXb3J0aEZ1enppbmc9dHJ1ZWAuXG5cbk5leHQgc3RlcCwgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIEtjb25maWcgb3B0aW9ucyB0aGF0IGVuYWJsZSB0aGUgVVNCL0lQIHZoY2kuIEknbGwgdXNlIGBncmVwcGVyYCBhbmQgc2VhcmNoIGZvciByZWZlcmVuY2VzIHRvIGB2aGNpX2hjZC5jYCB3aXRoaW4gdGhlIGBkcml2ZXJzL3VzYi91c2JpcC9NYWtlZmlsZWAgYW5kIGBLY29uZmlnYCBmaWxlcy4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIHNvbGlkIHN0YXJ0aW5nIHBvaW50IGZvciBlbmFibGluZyBhbmQgdGVzdGluZyB0aGlzIG5ldyB0aW1lb3V0IGJlaGF2aW9yLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTA4LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjc0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTQ6NDAuMTg2MTk5NzI3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExMDI1OTIyMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2aGNpX2hjZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi91c2JpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MjQgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvdXNiL3VzYmlwL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX1VTQklQX1ZIQ0lfSENEKSArPSB2aGNpLWhjZC5vXFxuZHJpdmVycy91c2IvdXNiaXAvTWFrZWZpbGU6ODp2aGNpLWhjZC15IDo9IHZoY2lfc3lzZnMubyB2aGNpX3R4Lm8gdmhjaV9yeC5vIHZoY2lfaGNkLm9cXG5kcml2ZXJzL3VzYi91c2JpcC9NYWtlZmlsZS05LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYz0zMTA9c3RhdGljIGludCBzdHViX3Byb2JlKHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2KVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYy0zNTMtXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYzozNTQ6XFx0aWYgKCFzdHJjbXAodWRldi1cXHUwMDNlYnVzLVxcdTAwM2VidXNfbmFtZSwgXFxcInZoY2lfaGNkXFxcIikpIHtcXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX2Rldi5jLTM1NS1cXHRcXHRkZXZfZGJnKFxcdTAwMjZ1ZGV2LVxcdTAwM2VkZXYsXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9kZXYuYzozNTY6XFx0XFx0XFx0XFxcIiVzIGlzIGF0dGFjaGVkIG9uIHZoY2lfaGNkLi4uIHNraXAhXFxcXG5cXFwiLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfZGV2LmMtMzU3LVxcdFxcdFxcdHVkZXZfYnVzaWQpO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jPTE3Mz1zdGF0aWMgaW50IHR3ZWFrX3NwZWNpYWxfcmVxdWVzdHMoc3RydWN0IHVyYiAqdXJiKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jLTIxMC0gKlxcbmRyaXZlcnMvdXNiL3VzYmlwL3N0dWJfcnguYzoyMTE6ICogU2VlIGFsc28gY29tbWVudHMgYWJvdXQgdW5saW5raW5nIHN0cmF0ZWd5IGluIHZoY2lfaGNkLmMuXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jLTIxMi0gKi9cXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmM9MjEzPXN0YXRpYyBpbnQgc3R1Yl9yZWN2X2NtZF91bmxpbmsoc3RydWN0IHN0dWJfZGV2aWNlICpzZGV2LFxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jLTI3OC1cXHQgKiBDTURfUkVUIHBkdS4gSW4gdGhpcyBjYXNlLCB1c2JfdW5saW5rX3VyYigpIGlzIG5vdCBuZWVkZWQuIFdlIG9ubHlcXG5kcml2ZXJzL3VzYi91c2JpcC9zdHViX3J4LmM6Mjc5OlxcdCAqIHJldHVybiB0aGUgY29tcGxldGVuZXNzIG9mIHRoaXMgdW5saW5rIHJlcXVlc3QgdG8gdmhjaV9oY2QuXFxuZHJpdmVycy91c2IvdXNiaXAvc3R1Yl9yeC5jLTI4MC1cXHQgKi9cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3VzYmlwX2NvbW1vbi5jPTM0Mj1zdGF0aWMgdW5zaWduZWQgaW50IHR3ZWFrX3RyYW5zZmVyX2ZsYWdzKHVuc2lnbmVkIGludCBmbGFncylcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3VzYmlwX2NvbW1vbi5jLTM0OS0gKiBVU0JJUCBkcml2ZXIgcGFja3MgVVJCIHRyYW5zZmVyIGZsYWdzIGluIFBEVXMgdGhhdCBhcmUgZXhjaGFuZ2VkXFxuZHJpdmVycy91c2IvdXNiaXAvdXNiaXBfY29tbW9uLmM6MzUwOiAqIGJldHdlZW4gU2VydmVyICh1c2JpcF9ob3N0KSBhbmQgQ2xpZW50ICh2aGNpX2hjZCkuIFVSQl8qIGZsYWdzXFxuZHJpdmVycy91c2IvdXNiaXAvdXNiaXBfY29tbW9uLmMtMzUxLSAqIGFyZSBpbnRlcm5hbCB0byBrZXJuZWwgYW5kIGNvdWxkIGNoYW5nZS4gV2hlcmUgYXMgVVNCSVAgVVJCIGZsYWdzXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg9OTc9c3RydWN0IHZoY2kge1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTEwMS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTAyOlxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2RfaHM7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEwMzpcXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkX3NzO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xMDQtfTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xMDYtLyogZm9yIHVzYl9oY2QuaGNkX3ByaXZbMF0gKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTA3OnN0cnVjdCB2aGNpX2hjZCB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTEwOC1cXHRzdHJ1Y3QgdmhjaSAqdmhjaTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaD0xMjc9ZXh0ZXJuIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgdmhjaV9hdHRyX2dyb3VwO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xMjgtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oOjEyOTovKiB2aGNpX2hjZC5jICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTEzMC12b2lkIHJoX3BvcnRfY29ubmVjdChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYsIGVudW0gdXNiX2RldmljZV9zcGVlZCBzcGVlZCk7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg9MTQ4PXN0YXRpYyBpbmxpbmUgaW50IHBvcnRfdG9fcGRldl9ucihfX3UzMiBwb3J0KVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE1Mi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTUzOnN0YXRpYyBpbmxpbmUgc3RydWN0IHZoY2lfaGNkICpoY2RfdG9fdmhjaV9oY2Qoc3RydWN0IHVzYl9oY2QgKmhjZClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTU0LXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTU1OlxcdHJldHVybiAoc3RydWN0IHZoY2lfaGNkICopIChoY2QtXFx1MDAzZWhjZF9wcml2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTU2LX1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaD0xNjM9c3RhdGljIGlubGluZSBjb25zdCBjaGFyICpoY2RfbmFtZShzdHJ1Y3QgdXNiX2hjZCAqaGNkKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oLTE2Ny1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmg6MTY4OnN0YXRpYyBpbmxpbmUgc3RydWN0IHVzYl9oY2QgKnZoY2lfaGNkX3RvX2hjZChzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkKVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xNjkte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzA6XFx0cmV0dXJuIGNvbnRhaW5lcl9vZigodm9pZCAqKSB2aGNpX2hjZCwgc3RydWN0IHVzYl9oY2QsIGhjZF9wcml2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTcxLX1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTcyLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzM6c3RhdGljIGlubGluZSBzdHJ1Y3QgdmhjaV9oY2QgKnZkZXZfdG9fdmhjaV9oY2Qoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaC0xNzQte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxNzU6XFx0cmV0dXJuIGNvbnRhaW5lcl9vZigodm9pZCAqKSh2ZGV2IC0gdmRldi1cXHUwMDNlcmhwb3J0KSwgc3RydWN0IHZoY2lfaGNkLCB2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTc2LX1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9Mzk9c3RhdGljIGludCB2aGNpX3VyYl9kZXF1ZXVlKHN0cnVjdCB1c2JfaGNkICpoY2QsIHN0cnVjdCB1cmIgKnVyYiwgaW50IHN0YXR1cyk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0MDpzdGF0aWMgaW50IHZoY2lfc3RhcnQoc3RydWN0IHVzYl9oY2QgKnZoY2lfaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQxLXN0YXRpYyB2b2lkIHZoY2lfc3RvcChzdHJ1Y3QgdXNiX2hjZCAqaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTQyPXN0YXRpYyBpbnQgdmhjaV9nZXRfZnJhbWVfbnVtYmVyKHN0cnVjdCB1c2JfaGNkICpoY2QpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDMtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NDpzdGF0aWMgY29uc3QgY2hhciBkcml2ZXJfbmFtZVtdID0gXFxcInZoY2lfaGNkXFxcIjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ1LXN0YXRpYyBjb25zdCBjaGFyIGRyaXZlcl9kZXNjW10gPSBcXFwiVVNCL0lQIFZpcnR1YWwgSG9zdCBDb250cm9sbGVyXFxcIjtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTU0PXZvaWQgcmhfcG9ydF9jb25uZWN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiwgZW51bSB1c2JfZGV2aWNlX3NwZWVkIHNwZWVkKVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU1LXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1NjpcXHRzdHJ1Y3QgdmhjaV9oY2RcXHQqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTU3OlxcdHN0cnVjdCB2aGNpICp2aGNpID0gdmhjaV9oY2QtXFx1MDAzZXZoY2k7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTgtXFx0aW50XFx0XFx0cmhwb3J0ID0gdmRldi1cXHUwMDNlcmhwb3J0O1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNjUtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNjY6XFx0c3RhdHVzID0gdmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF07XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNjctXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE4MC1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE4MTpcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSA9IHN0YXR1cztcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE4Mi1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTg0LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTg1OlxcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXModmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xODYtfVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0xODg9c3RhdGljIHZvaWQgcmhfcG9ydF9kaXNjb25uZWN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE4OS17XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxOTA6XFx0c3RydWN0IHZoY2lfaGNkXFx0KnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE5MTpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTkyLVxcdGludFxcdFxcdHJocG9ydCA9IHZkZXYtXFx1MDAzZXJocG9ydDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTk5LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MjAwOlxcdHN0YXR1cyA9IHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjAxLVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDQtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyMDU6XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gPSBzdGF0dXM7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDYtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDctXFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MjA4OlxcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXModmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0yMDktfVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz0yMjk9c3RhdGljIGludCB2aGNpX2h1Yl9zdGF0dXMoc3RydWN0IHVzYl9oY2QgKmhjZCwgY2hhciAqYnVmKVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjMwLXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjIzMTpcXHRzdHJ1Y3QgdmhjaV9oY2RcXHQqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjIzMjpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjMzLVxcdGludFxcdFxcdHJldHZhbCA9IERJVl9ST1VORF9VUChWSENJX0hDX1BPUlRTICsgMSwgOCk7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTI0Ny1cXHRmb3IgKHJocG9ydCA9IDA7IHJocG9ydCBcXHUwMDNjIFZIQ0lfSENfUE9SVFM7IHJocG9ydCsrKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoyNDg6XFx0XFx0aWYgKCh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2IFBPUlRfQ19NQVNLKSkge1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMjQ5LVxcdFxcdFxcdC8qIFRoZSBzdGF0dXMgb2YgYSBwb3J0IGhhcyBiZWVuIGNoYW5nZWQsICovXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTMxNj1zdGF0aWMgaW50IHZoY2lfaHViX2NvbnRyb2woc3RydWN0IHVzYl9oY2QgKmhjZCwgdTE2IHR5cGVSZXEsIHUxNiB3VmFsdWUsXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTMxOC17XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzozMTk6XFx0c3RydWN0IHZoY2lfaGNkXFx0KnZoY2lfaGNkO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzIwLVxcdHN0cnVjdCB2aGNpXFx0KnZoY2k7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM1My1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM1NDpcXHR2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MzU1OlxcdHZoY2kgPSB2aGNpX2hjZC1cXHUwMDNldmhjaTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM1Ni1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzYxLVxcdFxcdGlmICghaW52YWxpZF9yaHBvcnQpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzozNjI6XFx0XFx0XFx0bWVtY3B5KHByZXZfcG9ydF9zdGF0dXMsIHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1cyxcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM2My1cXHRcXHRcXHRcXHRzaXplb2YocHJldl9wb3J0X3N0YXR1cykpO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0zODMtXFx0XFx0XFx0XFx0XFxcIiBDbGVhclBvcnRGZWF0dXJlOiBVU0JfUE9SVF9GRUFUX1NVU1BFTkRcXFxcblxcXCIpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Mzg0OlxcdFxcdFxcdGlmICh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2IFVTQl9QT1JUX1NUQVRfU1VTUEVORCkge1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzg1LVxcdFxcdFxcdFxcdC8qIDIwbXNlYyBzaWduYWxpbmcgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM4NjpcXHRcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcmVzdW1pbmcgPSAxO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Mzg3OlxcdFxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2VyZV90aW1lb3V0ID0gamlmZmllcyArIG1zZWNzX3RvX2ppZmZpZXMoMjApO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzg4LVxcdFxcdFxcdH1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzkzLVxcdFxcdFxcdGlmIChoY2QtXFx1MDAzZXNwZWVkIFxcdTAwM2U9IEhDRF9VU0IzKVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Mzk0OlxcdFxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFxcdTAwMjY9IH5VU0JfU1NfUE9SVF9TVEFUX1BPV0VSO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMzk1LVxcdFxcdFxcdGVsc2VcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjM5NjpcXHRcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2PSB+VVNCX1BPUlRfU1RBVF9QT1dFUjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTM5Ny1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDAyLVxcdFxcdFxcdFxcdGdvdG8gZXJyb3I7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0MDM6XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXFx1MDAyNj0gfigxIFxcdTAwM2NcXHUwMDNjIHdWYWx1ZSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00MDQtXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ0Ny1cXHRcXHQgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ0ODpcXHRcXHRpZiAodmhjaV9oY2QtXFx1MDAzZXJlc3VtaW5nIFxcdTAwMjZcXHUwMDI2IHRpbWVfYWZ0ZXIoamlmZmllcywgdmhjaV9oY2QtXFx1MDAzZXJlX3RpbWVvdXQpKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NDk6XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXFx1MDAzY1xcdTAwM2MgVVNCX1BPUlRfRkVBVF9DX1NVU1BFTkQpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDUwOlxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFxcdTAwMjY9IH4oMSBcXHUwMDNjXFx1MDAzYyBVU0JfUE9SVF9GRUFUX1NVU1BFTkQpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDUxOlxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2VyZXN1bWluZyA9IDA7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NTI6XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXJlX3RpbWVvdXQgPSAwO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDUzLVxcdFxcdH1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ1NC1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1NTpcXHRcXHRpZiAoKHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFxcdTAwMjYgKDEgXFx1MDAzY1xcdTAwM2MgVVNCX1BPUlRfRkVBVF9SRVNFVCkpICE9XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NTY6XFx0XFx0ICAgIDAgXFx1MDAyNlxcdTAwMjYgdGltZV9hZnRlcihqaWZmaWVzLCB2aGNpX2hjZC1cXHUwMDNlcmVfdGltZW91dCkpIHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1NzpcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSB8PSAoMSBcXHUwMDNjXFx1MDAzYyBVU0JfUE9SVF9GRUFUX0NfUkVTRVQpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDU4OlxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIFxcdTAwMjY9IH4oMSBcXHUwMDNjXFx1MDAzYyBVU0JfUE9SVF9GRUFUX1JFU0VUKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ1OTpcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcmVfdGltZW91dCA9IDA7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjAtXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ2NC1cXHRcXHRcXHQgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ2NTpcXHRcXHRcXHRpZiAodmhjaV9oY2QtXFx1MDAzZXZkZXZbcmhwb3J0XS51ZC5zdGF0dXMgPT1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ2Ni1cXHRcXHRcXHRcXHRWREVWX1NUX05PVEFTU0lHTkVEIHx8XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0Njc6XFx0XFx0XFx0ICAgIHZoY2lfaGNkLVxcdTAwM2V2ZGV2W3JocG9ydF0udWQuc3RhdHVzID09XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NjgtXFx0XFx0XFx0XFx0VkRFVl9TVF9VU0VEKSB7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ3MS1cXHRcXHRcXHRcXHRcXHRyaHBvcnQsXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0NzI6XFx0XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXZkZXZbcmhwb3J0XS51ZC5zdGF0dXMpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDczOlxcdFxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdIHw9XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NzQtXFx0XFx0XFx0XFx0XFx0VVNCX1BPUlRfU1RBVF9FTkFCTEU7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTQ3Ny1cXHRcXHRcXHRpZiAoaGNkLVxcdTAwM2VzcGVlZCBcXHUwMDNjIEhDRF9VU0IzKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0Nzg6XFx0XFx0XFx0XFx0c3dpdGNoICh2aGNpX2hjZC1cXHUwMDNldmRldltyaHBvcnRdLnNwZWVkKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00NzktXFx0XFx0XFx0XFx0Y2FzZSBVU0JfU1BFRURfSElHSDpcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ4MDpcXHRcXHRcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSB8PVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDgxLVxcdFxcdFxcdFxcdFxcdCAgICAgIFVTQl9QT1JUX1NUQVRfSElHSF9TUEVFRDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDgzLVxcdFxcdFxcdFxcdGNhc2UgVVNCX1NQRUVEX0xPVzpcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjQ4NDpcXHRcXHRcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSB8PVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDg1LVxcdFxcdFxcdFxcdFxcdFxcdFVTQl9QT1JUX1NUQVRfTE9XX1NQRUVEO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00OTItXFx0XFx0fVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NDkzOlxcdFxcdCgoX19sZTE2ICopIGJ1ZilbMF0gPSBjcHVfdG9fbGUxNih2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy00OTQtXFx0XFx0KChfX2xlMTYgKikgYnVmKVsxXSA9XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo0OTU6XFx0XFx0XFx0Y3B1X3RvX2xlMTYodmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXFx1MDAzZVxcdTAwM2UgMTYpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNDk2LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01NDctXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1NDg6XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gVVNCX1BPUlRfU1RBVF9TVVNQRU5EO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTQ5LVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy01NTctXFx0XFx0XFx0aWYgKGhjZC1cXHUwMDNlc3BlZWQgXFx1MDAzZT0gSENEX1VTQjMpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1NTg6XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gVVNCX1NTX1BPUlRfU1RBVF9QT1dFUjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU1OS1cXHRcXHRcXHRlbHNlXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1NjA6XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gVVNCX1BPUlRfU1RBVF9QT1dFUjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU2MS1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTg0LVxcdFxcdFxcdGlmIChoY2QtXFx1MDAzZXNwZWVkIFxcdTAwM2U9IEhDRF9VU0IzKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1ODU6XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gPSAwO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NTg2OlxcdFxcdFxcdFxcdHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdID1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU4Ny1cXHRcXHRcXHRcXHRcXHQoVVNCX1NTX1BPUlRfU1RBVF9QT1dFUiB8XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU4OS1cXHRcXHRcXHRcXHRcXHQgVVNCX1BPUlRfU1RBVF9SRVNFVCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1OTA6XFx0XFx0XFx0fSBlbHNlIGlmICh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2IFVTQl9QT1JUX1NUQVRfRU5BQkxFKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo1OTE6XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXFx1MDAyNj0gfihVU0JfUE9SVF9TVEFUX0VOQUJMRVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTkyLVxcdFxcdFxcdFxcdFxcdHwgVVNCX1BPUlRfU1RBVF9MT1dfU1BFRURcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNTk2LVxcdFxcdFxcdC8qIDUwbXNlYyByZXNldCBzaWduYWxpbmcgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjU5NzpcXHRcXHRcXHR2aGNpX2hjZC1cXHUwMDNlcmVfdGltZW91dCA9IGppZmZpZXMgKyBtc2Vjc190b19qaWZmaWVzKDUwKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTU5OC1cXHRcXHRcXHRmYWxsdGhyb3VnaDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjA4LVxcdFxcdFxcdGlmIChoY2QtXFx1MDAzZXNwZWVkIFxcdTAwM2U9IEhDRF9VU0IzKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MDk6XFx0XFx0XFx0XFx0aWYgKCh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02MTAtXFx0XFx0XFx0XFx0ICAgICBVU0JfU1NfUE9SVF9TVEFUX1BPV0VSKSAhPSAwKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTE6XFx0XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXFx1MDAzY1xcdTAwM2Mgd1ZhbHVlKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxMi1cXHRcXHRcXHRcXHR9XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02MTMtXFx0XFx0XFx0fSBlbHNlXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTQ6XFx0XFx0XFx0XFx0aWYgKCh2aGNpX2hjZC1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02MTUtXFx0XFx0XFx0XFx0ICAgICBVU0JfUE9SVF9TVEFUX1BPV0VSKSAhPSAwKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2MTY6XFx0XFx0XFx0XFx0XFx0dmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gfD0gKDEgXFx1MDAzY1xcdTAwM2Mgd1ZhbHVlKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTYxNy1cXHRcXHRcXHRcXHR9XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY1MS1cXHRcXHRcXHRkdW1wX3BvcnRfc3RhdHVzX2RpZmYocHJldl9wb3J0X3N0YXR1c1tyaHBvcnRdLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NjUyOlxcdFxcdFxcdFxcdFxcdCAgICAgIHZoY2lfaGNkLVxcdTAwM2Vwb3J0X3N0YXR1c1tyaHBvcnRdLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjUzLVxcdFxcdFxcdFxcdFxcdCAgICAgIGhjZC1cXHUwMDNlc3BlZWQgXFx1MDAzZT0gSENEX1VTQjMpO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02NjAtXFx0aWYgKCFpbnZhbGlkX3JocG9ydCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NjYxOlxcdCAgICAodmhjaV9oY2QtXFx1MDAzZXBvcnRfc3RhdHVzW3JocG9ydF0gXFx1MDAyNiBQT1JUX0NfTUFTSykgIT0gMCkge1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNjYyLVxcdFxcdHVzYl9oY2RfcG9sbF9yaF9zdGF0dXMoaGNkKTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9NjY4PXN0YXRpYyB2b2lkIHZoY2lfdHhfdXJiKHN0cnVjdCB1cmIgKnVyYiwgc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02NzAtXFx0c3RydWN0IHZoY2lfcHJpdiAqcHJpdjtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjY3MTpcXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTY3Mi1cXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02ODEtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo2ODI6XFx0cHJpdi1cXHUwMDNlc2VxbnVtID0gKHUzMilhdG9taWNfaW5jX3JldHVybihcXHUwMDI2dmhjaV9oY2QtXFx1MDAzZXNlcW51bSk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02ODMtXFx0aWYgKHByaXYtXFx1MDAzZXNlcW51bSA9PSAweGZmZmYpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTY5Nz1zdGF0aWMgaW50IHZoY2lfdXJiX2VucXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBnZnBfdCBtZW1fZmxhZ3MpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy02OTgte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6Njk5OlxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjcwMDpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtNzAxLVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZ1cmItXFx1MDAzZWRldi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy03MTAtXFx0fVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6NzExOlxcdHZkZXYgPSBcXHUwMDI2dmhjaV9oY2QtXFx1MDAzZXZkZXZbcG9ydG51bS0xXTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTcxMi1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODU4LSAqXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo4NTk6ICogLSBXaGVuIHZoY2lfaGNkIHJlY2VpdmVzIFJFVF9TVUJNSVQsXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NjAtICpcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODY4LSAqXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo4Njk6ICogLSBXaGVuIHZoY2lfaGNkIHJlY2VpdmVzIFJFVF9VTkxJTkssXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NzAtICpcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjg3MTogKlxcdC0gY2FzZSAyYSkuIGEgc3VibWl0IHJlcXVlc3QgaXMgc3RpbGwgcGVuZGluZyBpbiB2aGNpX2hjZC5cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTg3Mi0gKlxcdFxcdC0gdXJiIHdhcyByZWFsbHkgcGVuZGluZyBpbiB1c2JpcC5rbyBhbmQgdXJiX3VubGlua191cmIoKSB3YXNcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtODc2LSAqXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo4Nzc6ICpcXHQtIGNhc2UgMmIpLiBhIHN1Ym1pdCByZXF1ZXN0IGlzICpub3QqIHBlbmRpbmcgaW4gdmhjaV9oY2QuXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy04NzgtICpcXHRcXHQtIHVyYiB3YXMgYWxyZWFkeSBnaXZlbiBiYWNrIHRvIHRoZSBjb3JlIGRyaXZlci5cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9OTAzPXN0YXRpYyBpbnQgdmhjaV91cmJfZGVxdWV1ZShzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBzdHJ1Y3QgdXJiICp1cmIsIGludCBzdGF0dXMpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy05MDQte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6OTA1OlxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSBoY2RfdG9fdmhjaV9oY2QoaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjkwNjpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTA3LVxcdHN0cnVjdCB2aGNpX3ByaXYgKnByaXY7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk2OS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk3MDpcXHRcXHR1bmxpbmstXFx1MDAzZXNlcW51bSA9IGF0b21pY19pbmNfcmV0dXJuKFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNlc2VxbnVtKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk3MS1cXHRcXHRpZiAodW5saW5rLVxcdTAwM2VzZXFudW0gPT0gMHhmZmZmKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz05OTQ9c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtOTk2LXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk5NzpcXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gdmRldl90b192aGNpX2hjZCh2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk5ODpcXHRzdHJ1Y3QgdXNiX2hjZCAqaGNkID0gdmhjaV9oY2RfdG9faGNkKHZoY2lfaGNkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjk5OTpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTAwMC1cXHRzdHJ1Y3QgdmhjaV91bmxpbmsgKnVubGluaywgKnRtcDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTA1Nz1zdGF0aWMgdm9pZCB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb24oc3RydWN0IHVzYmlwX2RldmljZSAqdWQpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTktXFx0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gY29udGFpbmVyX29mKHVkLCBzdHJ1Y3QgdmhjaV9kZXZpY2UsIHVkKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNjA6XFx0c3RydWN0IHVzYl9oY2QgKmhjZCA9IHZoY2lfaGNkX3RvX2hjZCh2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNjEtXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwOTctXFx0ICogZGV0YWNoZWQgZGV2aWNlIHNob3VsZCByZWxlYXNlIHVzZWQgdXJicyBpbiBhIGNsZWFudXAgZnVuY3Rpb24gKGkuZS5cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwOTg6XFx0ICogeHh4X2Rpc2Nvbm5lY3QoKSkuIFRoZXJlZm9yZSwgdmhjaV9oY2QgZG9lcyBub3QgbmVlZCB0byByZWxlYXNlXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDk5LVxcdCAqIHB1c2hlZCB1cmJzIGFuZCB0aGVpciBwcml2YXRlIGRhdGEgaW4gdGhpcyBmdW5jdGlvbi5cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTE4OD1zdGF0aWMgaW50IHZoY2lfc2V0dXAoc3RydWN0IHVzYl9oY2QgKmhjZClcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE5Mi1cXHRpZiAodXNiX2hjZF9pc19wcmltYXJ5X2hjZChoY2QpKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMTkzOlxcdFxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX2hzID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMTk0OlxcdFxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX2hzLVxcdTAwM2V2aGNpID0gdmhjaTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTExOTUtXFx0XFx0LypcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE5Ny1cXHRcXHQgKiBUaGUgVVNCIDMuMCByb290aHViIHdpbGwgYmUgcmVnaXN0ZXJlZCBsYXRlciBieVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTE5ODpcXHRcXHQgKiB2aGNpX2hjZF9wcm9iZSgpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTk5LVxcdFxcdCAqL1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjAyLVxcdH0gZWxzZSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjAzOlxcdFxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX3NzID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjA0OlxcdFxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX3NzLVxcdTAwM2V2aGNpID0gdmhjaTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMDUtXFx0XFx0aGNkLVxcdTAwM2VzcGVlZCA9IEhDRF9VU0IzMTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTIxNj1zdGF0aWMgaW50IHZoY2lfc3RhcnQoc3RydWN0IHVzYl9oY2QgKmhjZClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMTcte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTIxODpcXHRzdHJ1Y3QgdmhjaV9oY2QgKnZoY2lfaGNkID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjE5LVxcdGludCBpZCwgcmhwb3J0O1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjI0LVxcdGlmICh1c2JfaGNkX2lzX3ByaW1hcnlfaGNkKGhjZCkpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjI1OlxcdFxcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNldmhjaS1cXHUwMDNlbG9jayk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjI2LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjI5LVxcdGZvciAocmhwb3J0ID0gMDsgcmhwb3J0IFxcdTAwM2MgVkhDSV9IQ19QT1JUUzsgcmhwb3J0KyspIHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyMzA6XFx0XFx0c3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2ID0gXFx1MDAyNnZoY2lfaGNkLVxcdTAwM2V2ZGV2W3JocG9ydF07XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjMxLVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjM1LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTIzNjpcXHRhdG9taWNfc2V0KFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNlc2VxbnVtLCAwKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyMzctXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyNTAtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjUxOlxcdC8qIHZoY2lfaGNkIGlzIG5vdyByZWFkeSB0byBiZSBjb250cm9sbGVkIHRocm91Z2ggc3lzZnMgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyNTItXFx0aWYgKGlkID09IDAgXFx1MDAyNlxcdTAwMjYgdXNiX2hjZF9pc19wcmltYXJ5X2hjZChoY2QpKSB7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEyNzA9c3RhdGljIHZvaWQgdmhjaV9zdG9wKHN0cnVjdCB1c2JfaGNkICpoY2QpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMjcxLXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyNzI6XFx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI3My1cXHRpbnQgaWQsIHJocG9ydDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI3Ni1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyNzc6XFx0LyogMS4gcmVtb3ZlIHRoZSB1c2VybGFuZCBpbnRlcmZhY2Ugb2YgdmhjaV9oY2QgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEyNzgtXFx0aWQgPSBoY2RfbmFtZV90b19pZChoY2RfbmFtZShoY2QpKTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI4My1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEyODQ6XFx0LyogMi4gc2h1dGRvd24gYWxsIHRoZSBwb3J0cyBvZiB2aGNpX2hjZCAqL1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI4NS1cXHRmb3IgKHJocG9ydCA9IDA7IHJocG9ydCBcXHUwMDNjIFZIQ0lfSENfUE9SVFM7IHJocG9ydCsrKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMjg2OlxcdFxcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNldmRldltyaHBvcnRdO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTI4Ny1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTM1OD1zdGF0aWMgY29uc3Qgc3RydWN0IGhjX2RyaXZlciB2aGNpX2hjX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM2MC1cXHQucHJvZHVjdF9kZXNjXFx0PSBkcml2ZXJfZGVzYyxcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEzNjE6XFx0LmhjZF9wcml2X3NpemVcXHQ9IHNpemVvZihzdHJ1Y3QgdmhjaV9oY2QpLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM2Mi1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM4Mi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEzODM6c3RhdGljIGludCB2aGNpX2hjZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTM4NC17XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0MzMtXFx0dXNiX3B1dF9oY2QoaGNkX2hzKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0MzQ6XFx0dmhjaS1cXHUwMDNldmhjaV9oY2RfaHMgPSBOVUxMO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQzNTpcXHR2aGNpLVxcdTAwM2V2aGNpX2hjZF9zcyA9IE5VTEw7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDM2LVxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0MzgtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDM5OnN0YXRpYyB2b2lkIHZoY2lfaGNkX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ0MC17XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NDctXFx0ICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDQ4OlxcdHVzYl9yZW1vdmVfaGNkKHZoY2lfaGNkX3RvX2hjZCh2aGNpLVxcdTAwM2V2aGNpX2hjZF9zcykpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQ0OTpcXHR1c2JfcHV0X2hjZCh2aGNpX2hjZF90b19oY2QodmhjaS1cXHUwMDNldmhjaV9oY2Rfc3MpKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NTAtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDUxOlxcdHVzYl9yZW1vdmVfaGNkKHZoY2lfaGNkX3RvX2hjZCh2aGNpLVxcdTAwM2V2aGNpX2hjZF9ocykpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTQ1MjpcXHR1c2JfcHV0X2hjZCh2aGNpX2hjZF90b19oY2QodmhjaS1cXHUwMDNldmhjaV9oY2RfaHMpKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NTMtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDU0OlxcdHZoY2ktXFx1MDAzZXZoY2lfaGNkX2hzID0gTlVMTDtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0NTU6XFx0dmhjaS1cXHUwMDNldmhjaV9oY2Rfc3MgPSBOVUxMO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ1Ni19XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0NjAtLyogd2hhdCBzaG91bGQgaGFwcGVuIGZvciBVU0IvSVAgdW5kZXIgc3VzcGVuZC9yZXN1bWU/ICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDYxOnN0YXRpYyBpbnQgdmhjaV9oY2Rfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCBwbV9tZXNzYWdlX3Qgc3RhdGUpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDYyLXtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTQ4MC1cXHRmb3IgKHJocG9ydCA9IDA7IHJocG9ydCBcXHUwMDNjIFZIQ0lfSENfUE9SVFM7IHJocG9ydCsrKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDgxOlxcdFxcdGlmICh2aGNpLVxcdTAwM2V2aGNpX2hjZF9ocy1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDgyLVxcdFxcdCAgICBVU0JfUE9SVF9TVEFUX0NPTk5FQ1RJT04pXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0ODQtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNDg1OlxcdFxcdGlmICh2aGNpLVxcdTAwM2V2aGNpX2hjZF9zcy1cXHUwMDNlcG9ydF9zdGF0dXNbcmhwb3J0XSBcXHUwMDI2XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNDg2LVxcdFxcdCAgICBVU0JfUE9SVF9TVEFUX0NPTk5FQ1RJT04pXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0OTctXFx0fSBlbHNlIHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE0OTg6XFx0XFx0ZGV2X2luZm8oXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcInN1c3BlbmQgdmhjaV9oY2RcXFwiKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE0OTktXFx0XFx0Y2xlYXJfYml0KEhDRF9GTEFHX0hXX0FDQ0VTU0lCTEUsIFxcdTAwMjZoY2QtXFx1MDAzZWZsYWdzKTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTUwNC1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1MDU6c3RhdGljIGludCB2aGNpX2hjZF9yZXN1bWUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1MDYte1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTIxLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUyMjojZGVmaW5lIHZoY2lfaGNkX3N1c3BlbmRcXHROVUxMXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxNTIzOiNkZWZpbmUgdmhjaV9oY2RfcmVzdW1lXFx0XFx0TlVMTFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTUyNC1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTUyNz1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciB2aGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1Mjg6XFx0LnByb2JlXFx0PSB2aGNpX2hjZF9wcm9iZSxcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1Mjk6XFx0LnJlbW92ZSA9IHZoY2lfaGNkX3JlbW92ZSxcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1MzA6XFx0LnN1c3BlbmQgPSB2aGNpX2hjZF9zdXNwZW5kLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTUzMTpcXHQucmVzdW1lXFx0PSB2aGNpX2hjZF9yZXN1bWUsXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTMyLVxcdC5kcml2ZXJcXHQ9IHtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTUzNz1zdGF0aWMgdm9pZCBkZWxfcGxhdGZvcm1fZGV2aWNlcyh2b2lkKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTQ3LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTU0ODpzdGF0aWMgaW50IF9faW5pdCB2aGNpX2hjZF9pbml0KHZvaWQpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTQ5LXtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTU5Mi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE1OTM6c3RhdGljIHZvaWQgX19leGl0IHZoY2lfaGNkX2V4aXQodm9pZClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTE1OTQte1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNTk5LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTYwMDptb2R1bGVfaW5pdCh2aGNpX2hjZF9pbml0KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjE2MDE6bW9kdWxlX2V4aXQodmhjaV9oY2RfZXhpdCk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xNjAyLVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jPTU1PXN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfc3VibWl0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy01Ny17XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjU4OlxcdHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QgPSB2ZGV2X3RvX3ZoY2lfaGNkKHZkZXYpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzo1OTpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy02MC1cXHRzdHJ1Y3QgdXNiaXBfZGV2aWNlICp1ZCA9IFxcdTAwMjZ2ZGV2LVxcdTAwM2V1ZDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy03MC1cXHRcXHRcXHRwZHUtXFx1MDAzZWJhc2Uuc2VxbnVtLFxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzo3MTpcXHRcXHRcXHRhdG9taWNfcmVhZChcXHUwMDI2dmhjaV9oY2QtXFx1MDAzZXNlcW51bSkpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy03Mi1cXHRcXHR1c2JpcF9ldmVudF9hZGQodWQsIFZERVZfRVZFTlRfRVJST1JfVENQKTtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMDMtXFx0c3Bpbl9sb2NrX2lycXNhdmUoXFx1MDAyNnZoY2ktXFx1MDAzZWxvY2ssIGZsYWdzKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTA0OlxcdHVzYl9oY2RfdW5saW5rX3VyYl9mcm9tX2VwKHZoY2lfaGNkX3RvX2hjZCh2aGNpX2hjZCksIHVyYik7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEwNS1cXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZ2aGNpLVxcdTAwM2Vsb2NrLCBmbGFncyk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEwNi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTA3OlxcdHVzYl9oY2RfZ2l2ZWJhY2tfdXJiKHZoY2lfaGNkX3RvX2hjZCh2aGNpX2hjZCksIHVyYiwgdXJiLVxcdTAwM2VzdGF0dXMpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMDgtXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTM3PXN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xMzkte1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYzoxNDA6XFx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZCA9IHZkZXZfdG9fdmhjaV9oY2QodmRldik7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjE0MTpcXHRzdHJ1Y3QgdmhjaSAqdmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xNDItXFx0c3RydWN0IHZoY2lfdW5saW5rICp1bmxpbms7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTc0LVxcdFxcdHNwaW5fbG9ja19pcnFzYXZlKFxcdTAwMjZ2aGNpLVxcdTAwM2Vsb2NrLCBmbGFncyk7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjE3NTpcXHRcXHR1c2JfaGNkX3VubGlua191cmJfZnJvbV9lcCh2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xNzYtXFx0XFx0c3Bpbl91bmxvY2tfaXJxcmVzdG9yZShcXHUwMDI2dmhjaS1cXHUwMDNlbG9jaywgZmxhZ3MpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0xNzctXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjE3ODpcXHRcXHR1c2JfaGNkX2dpdmViYWNrX3VyYih2aGNpX2hjZF90b19oY2QodmhjaV9oY2QpLCB1cmIsIHVyYi1cXHUwMDNlc3RhdHVzKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTc5LVxcdH1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0zMC0gKiBsZWFraW5nIGtlcm5lbCBtZW1vcnkgYWRkcmVzcyBpbjpcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MzE6ICpcXHQvc3lzL2RldmljZXMvcGxhdGZvcm0vdmhjaV9oY2QuMC9zdGF0dXMgYW5kIGluIGRlYnVnIG91dHB1dC5cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMzItICogVGhlIHNvY2tldCBwb2ludGVyIGFkZHJlc3MgaXMgbm90IHVzZWQgYXQgdGhlIG1vbWVudCBhbmQgaXQgd2FzIG1hZGVcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYz04Nj1zdGF0aWMgc3NpemVfdCBzdGF0dXNfc2hvd192aGNpKGludCBwZGV2X25yLCBjaGFyICpvdXQpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtOTAtXFx0c3RydWN0IHVzYl9oY2QgKmhjZDtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6OTE6XFx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZDtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtOTItXFx0Y2hhciAqcyA9IG91dDtcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0xMDctXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjEwODpcXHR2aGNpX2hjZCA9IGhjZF90b192aGNpX2hjZChoY2QpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxMDk6XFx0dmhjaSA9IHZoY2lfaGNkLVxcdTAwM2V2aGNpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0xMTAtXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTEzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBWSENJX0hDX1BPUlRTOyBpKyspIHtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MTE0OlxcdFxcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFxcdTAwMjZ2aGNpLVxcdTAwM2V2aGNpX2hjZF9ocy1cXHUwMDNldmRldltpXTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTE1LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTEyMi1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgVkhDSV9IQ19QT1JUUzsgaSsrKSB7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjEyMzpcXHRcXHRzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYgPSBcXHUwMDI2dmhjaS1cXHUwMDNldmhjaV9oY2Rfc3MtXFx1MDAzZXZkZXZbaV07XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTEyNC1cXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYz0xODM9c3RhdGljIERFVklDRV9BVFRSX1JPKG5wb3J0cyk7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTg1LS8qIFN5c2ZzIGVudHJ5IHRvIHNodXRkb3duIGEgdmlydHVhbCBjb25uZWN0aW9uICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jOjE4NjpzdGF0aWMgaW50IHZoY2lfcG9ydF9kaXNjb25uZWN0KHN0cnVjdCB2aGNpX2hjZCAqdmhjaV9oY2QsIF9fdTMyIHJocG9ydClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTg3LXtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MTg4OlxcdHN0cnVjdCB2aGNpX2RldmljZSAqdmRldiA9IFxcdTAwMjZ2aGNpX2hjZC1cXHUwMDNldmRldltyaHBvcnRdO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoxODk6XFx0c3RydWN0IHZoY2kgKnZoY2kgPSB2aGNpX2hjZC1cXHUwMDNldmhjaTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMTkwLVxcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGRldGFjaF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTI0My1cXHRzdHJ1Y3QgdXNiX2hjZCAqaGNkO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzoyNDQ6XFx0c3RydWN0IHZoY2lfaGNkICp2aGNpX2hjZDtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMjQ1LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmMtMjY0LVxcdGlmICgocG9ydCAvIFZIQ0lfSENfUE9SVFMpICUgMilcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM6MjY1OlxcdFxcdHZoY2lfaGNkID0gaGNkX3RvX3ZoY2lfaGNkKGhjZCktXFx1MDAzZXZoY2ktXFx1MDAzZXZoY2lfaGNkX3NzO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYy0yNjYtXFx0ZWxzZVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDo0MC4yOTY0NjMxODlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTc3NTUxMzIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBVU0IvSVAgVkhDSSBIQ0QgQ29uZmlndXJhdGlvbiBPcHRpb24qKlxuXG5SaWdodCwgc28gdGhlIGNvbmZpZyBvcHRpb24gSSdtIGxvb2tpbmcgYXQgaXMgYENPTkZJR19VU0JJUF9WSENJX0hDRGAuIE15IGZpcnN0IHBvcnQgb2YgY2FsbCwgbmF0dXJhbGx5LCBpcyB0aGUgS2NvbmZpZyBmaWxlIGZvciB0aGF0IHBhcnQgb2YgdGhlIFVTQi9JUCBzdWJzeXN0ZW0uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoaXMgbW9kdWxlJ3MgZGVwZW5kZW5jaWVzLCBpZiBhbnkuIEknbGwgb3BlbiB1cCBgZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZ2AgYW5kIHF1aWNrbHkgc2NhbiBmb3IgcmVsYXRpb25zaGlwcyB3aXRoIG90aGVyIG9wdGlvbnMgb3IgZmVhdHVyZXMuIEknbSBsb29raW5nIGZvciB0aGluZ3MgdGhhdCBtaWdodCBlbmFibGUgaXQsIGRpc2FibGUgaXQsIG9yIHByb3ZpZGUgZXNzZW50aWFsIGZ1bmN0aW9uYWxpdHkuIEdvdHRhIGdldCB0aGUgbGF5IG9mIHRoZSBsYW5kIGJlZm9yZSBJIGNhbiBkbyBhbnl0aGluZyBtb3JlIHNwZWNpZmljLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IGlzIGtleS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTY5MjAsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDo0NC44NzQwMTY3NTJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU4NDA2NzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFVTQklQX1ZIQ0lfSENEXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3VzYmlwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZz0zPWNvbmZpZyBVU0JJUF9DT1JFXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC9LY29uZmlnLTIwLVxcbmRyaXZlcnMvdXNiL3VzYmlwL0tjb25maWc6MjE6Y29uZmlnIFVTQklQX1ZIQ0lfSENEXFxuZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiVkhDSSBoY2RcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA4OjU0OjQ0LjkxOTg2NDY5OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjcyMDI5OTU1MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgZGVsaXZlcmVkIGFzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnk6XG5cbioqUGVlcmluZyBpbnRvIHRoZSBLZXJuZWwgQ29uZmlndXJhdGlvbiBMYW5kc2NhcGUqKlxuXG5BbHJpZ2h0LCBJJ20gdGhpbmtpbmcgSSBuZWVkIHRvIGRlbHZlIGludG8gdGhpcyBgVVNCSVBfVkhDSV9IQ0RgIEtjb25maWcgZW50cnkuIEkgd2FudCB0aGUgd2hvbGUgcGljdHVyZSwgdGhlIGNvbXBsZXRlIGNvbnRleHQuIE5vIHNuaXBwZXRzLCBubyBwYXJ0aWFsIHZpZXdzLiBJIG5lZWQgdG8gc2VlIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBkZWZhdWx0cywgdGhlIGhlbHAgdGV4dCwgKmV2ZXJ5dGhpbmcqIHRoYXQgZGVmaW5lcyBob3cgdGhpcyBwYXJ0aWN1bGFyIHZpcnR1YWwgaG9zdCBjb250cm9sbGVyIGRyaXZlciBpcyBjb25maWd1cmVkIHdpdGhpbiB0aGUga2VybmVsLiBJJ20gYWZ0ZXIgdGhlIGZpbmUtZ3JhaW5lZCBkZXRhaWxzLiBVbmRlcnN0YW5kaW5nIHRoYXQgS2NvbmZpZyBlbnRyeSBjb21wbGV0ZWx5IHdpbGwgdGVsbCBtZSBob3cgdGhpcyBmZWF0dXJlIGlzIGVuYWJsZWQsIGFuZCBkaXNhYmxlZCBhbmQgaG93IHRoYXQgaW1wYWN0cyBvdGhlciBmZWF0dXJlcy4gSSBoYXZlIGEgaHVuY2ggaXQgaXMgbGlua2VkIHdpdGggc29tZSBvdGhlciB1c2IgZmVhdHVyZXMgYW5kIHRoYXQgdW5kZXJzdGFuZGluZyBpdCBmdWxseSBpcyBpbXBvcnRhbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3MjU0LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTQ6NTIuMTIyODYxODM1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTU4MjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy91c2IvdXNiaXAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdFxcbiAgIDM6XFx0Y29uZmlnIFVTQklQX0NPUkVcXG4gICA0OlxcdFxcdHRyaXN0YXRlIFxcXCJVU0IvSVAgc3VwcG9ydFxcXCJcXG4gICA1OlxcdFxcdGRlcGVuZHMgb24gTkVUXFxuICAgNjpcXHRcXHRzZWxlY3QgVVNCX0NPTU1PTlxcbiAgIDc6XFx0XFx0c2VsZWN0IFNHTF9BTExPQ1xcbiAgIDg6XFx0XFx0aGVscFxcbiAgIDk6XFx0XFx0ICBUaGlzIGVuYWJsZXMgcHVzaGluZyBVU0IgcGFja2V0cyBvdmVyIElQIHRvIGFsbG93IHJlbW90ZVxcbiAgMTA6XFx0XFx0ICBtYWNoaW5lcyBkaXJlY3QgYWNjZXNzIHRvIFVTQiBkZXZpY2VzLiBJdCBwcm92aWRlcyB0aGVcXG4gIDExOlxcdFxcdCAgVVNCL0lQIGNvcmUgdGhhdCBpcyByZXF1aXJlZCBieSBib3RoIGRyaXZlcnMuXFxuICAxMjpcXHRcXG4gIDEzOlxcdFxcdCAgRm9yIG1vcmUgZGV0YWlscywgYW5kIHRvIGdldCB0aGUgdXNlcnNwYWNlIHV0aWxpdHlcXG4gIDE0OlxcdFxcdCAgcHJvZ3JhbXMsIHBsZWFzZSBzZWUgXFx1MDAzY2h0dHA6Ly91c2JpcC5zb3VyY2Vmb3JnZS5uZXQvXFx1MDAzZS5cXG4gIDE1OlxcdFxcbiAgMTY6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZSBtb2R1bGUgd2lsbFxcbiAgMTc6XFx0XFx0ICBiZSBjYWxsZWQgdXNiaXAtY29yZS5cXG4gIDE4OlxcdFxcbiAgMTk6XFx0XFx0ICBJZiB1bnN1cmUsIHNheSBOLlxcbiAgMjA6XFx0XFxuICAyMTpcXHRjb25maWcgVVNCSVBfVkhDSV9IQ0RcXG4gIDIyOlxcdFxcdHRyaXN0YXRlIFxcXCJWSENJIGhjZFxcXCJcXG4gIDIzOlxcdFxcdGRlcGVuZHMgb24gVVNCSVBfQ09SRSBcXHUwMDI2XFx1MDAyNiBVU0JcXG4gIDI0OlxcdFxcdGhlbHBcXG4gIDI1OlxcdFxcdCAgVGhpcyBlbmFibGVzIHRoZSBVU0IvSVAgdmlydHVhbCBob3N0IGNvbnRyb2xsZXIgZHJpdmVyLFxcbiAgMjY6XFx0XFx0ICB3aGljaCBpcyBydW4gb24gdGhlIHJlbW90ZSBtYWNoaW5lLlxcbiAgMjc6XFx0XFxuICAyODpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmU6IHRoZVxcbiAgMjk6XFx0XFx0ICBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgdmhjaS1oY2QuXFxuICAzMDpcXHRcXG4gIDMxOlxcdGNvbmZpZyBVU0JJUF9WSENJX0hDX1BPUlRTXFxuICAzMjpcXHRcXHRpbnQgXFxcIk51bWJlciBvZiBwb3J0cyBwZXIgVVNCL0lQIHZpcnR1YWwgaG9zdCBjb250cm9sbGVyXFxcIlxcbiAgMzM6XFx0XFx0cmFuZ2UgMSAxNVxcbiAgMzQ6XFx0XFx0ZGVmYXVsdCA4XFxuICAzNTpcXHRcXHRkZXBlbmRzIG9uIFVTQklQX1ZIQ0lfSENEXFxuICAzNjpcXHRcXHRoZWxwXFxuICAzNzpcXHRcXHQgIFRvIGluY3JlYXNlIG51bWJlciBvZiBwb3J0cyBhdmFpbGFibGUgZm9yIFVTQi9JUCB2aXJ0dWFsXFxuICAzODpcXHRcXHQgIGhvc3QgY29udHJvbGxlciBkcml2ZXIsIHRoaXMgZGVmaW5lcyBudW1iZXIgb2YgcG9ydHMgcGVyXFxuICAzOTpcXHRcXHQgIFVTQi9JUCB2aXJ0dWFsIGhvc3QgY29udHJvbGxlci5cXG4gIDQwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDo1Mi4xMjI5MTg4ODVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1ODgxNzcwODIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgVVNCSVAgQ29uZmlndXJhdGlvbiBmb3IgYSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmlnaHQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBGcm9tIHdoYXQgSSBzZWUsIHRoZSBwcmltYXJ5IGRlcGVuZGVuY2llcyBhcmUgYFVTQklQX0NPUkVgIGFuZCBgVVNCYC4gR290IGl0LiBUaGF0IG1lYW5zIEknbGwgbmVlZCB0byBlbmFibGUgYFVTQklQX1ZIQ0lfSENEYCBhbG9uZyB3aXRoIGBVU0JJUF9DT1JFYCB0byBtYWtlIHN1cmUgZXZlcnl0aGluZydzIHNldCB1cCBjb3JyZWN0bHkuIE1ha2VzIHNlbnNlIHNvIGZhci5cblxuTm93LCBsZXQncyBkcmlsbCBkb3duIGEgYml0IGFuZCBmaW5kIHRoZSByZWFsIGZvY3VzIHBvaW50cyBvZiB0aGUgY2hhbmdlLiBJdCBsb29rcyBsaWtlIHRoaXMgcGF0Y2ggc3BlY2lmaWNhbGx5IHRvdWNoZXMgYHZoY2lfdXJiX2RlcXVldWVgLCBgdmhjaV9jbGVhbnVwX3VubGlua19saXN0YCwgYW5kIGB2aGNpX3JlY3ZfcmV0X3VubGlua2AuIFJpZ2h0LCBzbyBgdmhjaV91cmJfZGVxdWV1ZWAgaXMgYSBmdW5jdGlvbiBwb2ludGVyIHdpdGhpbiB0aGF0IGB2aGNpX2hjX2RyaXZlcmAgc3RydWN0LCB3aGljaCBpcyBhIGBoY19kcml2ZXJgLiBUaGUgVVNCIGNvcmUgaXMgY2FsbGluZyBpbnRvIGl0LCBzbyB0aGF0J3MgYSBrZXkgaW50ZXJhY3Rpb24gdG8ga2VlcCBpbiBtaW5kLlxuXG5gdmhjaV9jbGVhbnVwX3VubGlua19saXN0YCBpcyBzdGF0aWMsIHNvIEknbGwgbmVlZCB0byBzZWUgaG93IGl0IGlzIGNhbGxlZCB0byBiZSBzdXJlLCBpbiBjYXNlIHRoZXJlIGFyZSBoaWRkZW4gaW50ZXJhY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxNzk5OCwiT3V0cHV0VG9rZW5zIjozNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA4OjU0OjU4LjAwNDY5NTgzN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI3MDAxMzcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmhjaV9jbGVhbnVwX3VubGlua19saXN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3VzYmlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTkwMz1zdGF0aWMgaW50IHZoY2lfdXJiX2RlcXVldWUoc3RydWN0IHVzYl9oY2QgKmhjZCwgc3RydWN0IHVyYiAqdXJiLCBpbnQgc3RhdHVzKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy05OTMtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzo5OTQ6c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTk5NS1cXHRcXHRzdHJ1Y3QgbGlzdF9oZWFkICp1bmxpbmtfbGlzdClcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTA0Mz1zdGF0aWMgdm9pZCB2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNDUtXFx0LyogZ2l2ZSBiYWNrIFVSQiBvZiB1bnNlbnQgdW5saW5rIHJlcXVlc3QgKi9cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDY6XFx0dmhjaV9jbGVhbnVwX3VubGlua19saXN0KHZkZXYsIFxcdTAwMjZ2ZGV2LVxcdTAwM2V1bmxpbmtfdHgpO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA0Ny1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNDgtXFx0LyogZ2l2ZSBiYWNrIFVSQiBvZiB1bmFuc3dlcmVkIHVubGluayByZXF1ZXN0ICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMDQ5OlxcdHZoY2lfY2xlYW51cF91bmxpbmtfbGlzdCh2ZGV2LCBcXHUwMDI2dmRldi1cXHUwMDNldW5saW5rX3J4KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTAtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NDo1OC4wNDc0MDIzOTRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDI3NTI3MTQ5OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgVkhDSSBVbmxpbmsgUHJvY2VzcyoqXG5cblJpZ2h0LCBzbyBgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXBgIHRyaWdnZXJzIGB2aGNpX2NsZWFudXBfdW5saW5rX2xpc3RgLiBUaGF0J3MgYSBzdGFuZGFyZCBwYXR0ZXJuIGZvciBkZWZlcnJpbmcgc29tZSBjbGVhbnVwIG9wZXJhdGlvbnMsIHVzdWFsbHkgYmVjYXVzZSB0aGV5IGludm9sdmUgc29tZSByZXNvdXJjZSBkZWFsbG9jYXRpb24gdGhhdCBtaWdodCBiZSB0cmlja3kgdG8gZG8gZGlyZWN0bHkgd2l0aGluIHRoZSBtYWluIHVubGluayBmbG93LiBCdXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGxhcmdlciBjb250ZXh0LiBUaGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZSBpczogKndoZXJlKiBpcyBgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXBgIGNhbGxlZD8gS25vd2luZyB0aGUgY2FsbCBzaXRlcyB3aWxsIHJldmVhbCB0aGUgc2NlbmFyaW9zIHRoYXQgdHJpZ2dlciB0aGlzIGNsZWFudXAgcHJvY2VzcyBhbmQgZXhwb3NlIHRoZSBlZGdlLWNhc2VzIHRoYXQgYXJlIGxpa2VseSB0byBuZWVkIHNwZWNpYWwgYXR0ZW50aW9uLiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBmdW5jdGlvbiBjYWxsLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGVuIGFuZCB3aHkgdGhlIGRldmljZSBpcyBiZWluZyB1bmxpbmtlZCBpbiB0aGUgZmlyc3QgcGxhY2UsIGFuZCB3aGF0IGNvbmRpdGlvbnMgcmVxdWlyZSB0aGlzIHNwZWNpZmljIGNsZWFudXAuIFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucywgcmVzb3VyY2UgbGVha3MsIG9yIHVuZXhwZWN0ZWQgYmVoYXZpb3IgaW4gdGhlIFZIQ0kgZHJpdmVyLiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCBzdGFydCBjcm9zcy1yZWZlcmVuY2luZy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg4MDUsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NTowMi4zMjI2NzY1MjJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2NDAyNTI1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi91c2JpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYz05OTQ9c3RhdGljIHZvaWQgdmhjaV9jbGVhbnVwX3VubGlua19saXN0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA0Mi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjEwNDM6c3RhdGljIHZvaWQgdmhjaV9kZXZpY2VfdW5saW5rX2NsZWFudXAoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2KVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTA0NC17XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jPTEwNTc9c3RhdGljIHZvaWQgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uKHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMDg2LVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTA4NzpcXHR2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cCh2ZGV2KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwODgtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA3VDA4OjU1OjAyLjY4NjcwNjcwN1oiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTk0OTg3NTczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCBzZXF1ZW5jZSwgdGhpbmtpbmcgdGhyb3VnaCBpdCBpbiBhIHRlY2huaWNhbCBjb250ZXh0LlxuXG4qKlVuZGVyc3RhbmRpbmcgdGhlIFZIQ0kgQ29ubmVjdGlvbiBTaHV0ZG93biBQcm9jZXNzKipcblxuUmlnaHQsIHNvIEknbSBmb2N1c2luZyBvbiBob3cgdGhlIFZIQ0kgY29ubmVjdGlvbiBzaHV0cyBkb3duLiBJdCBsb29rcyBsaWtlIHRoZSBgdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uYCBmdW5jdGlvbiBpcyB0aGUga2V5IHN0YXJ0aW5nIHBvaW50LiAgVGhpcyBpcyB3aGF0IGluaXRpYXRlcyB0aGUgdGVhcmRvd24uICBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgd2hhdCdzIGhhcHBlbmluZyB3aGVuIGEgY29ubmVjdGlvbiBnb2VzIGRvd24/ICBJdCdzIGNsZWFyIHRoYXQgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAgY2FsbHMgYHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIEknZCBuZWVkIHRvIGRpZyBkZWVwZXIgaW50byB3aGF0IGB2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cGAgYWN0dWFsbHkgKmRvZXMqLiBJcyBpdCBmcmVlaW5nIHJlc291cmNlcywgc2lnbmFsaW5nIHRoZSBkZXZpY2VzLCBvciBib3RoPyAgSSdsbCBuZWVkIHRvIGxvb2sgYXQgdGhhdCBmdW5jdGlvbidzIGltcGxlbWVudGF0aW9uIGNsb3NlbHkgdG8gdW5kZXJzdGFuZCB0aGUgbnVhbmNlcy5cblxuVGhlbiB0aGVyZSdzIHRoZSBgdmhjaV9yZWN2X3JldF91bmxpbmtgIGZ1bmN0aW9uLiBUaGUgZmFjdCB0aGF0IGl0J3MgY2FsbGVkIGZyb20gYHZoY2lfcnhfcGR1YCBzdWdnZXN0cyB0aGlzIGlzIGNsb3NlbHkgdGllZCB0byBoYW5kbGluZyBpbmNvbWluZyBkYXRhIG9yIGNvbW1hbmRzLCBzcGVjaWZpY2FsbHkgcmVsYXRpbmcgdG8gdW5saW5raW5nIGEgZGV2aWNlLiBJdCdzIGxpa2VseSB0aGF0IGlmIGEgcGFydGljdWxhciBjb21tYW5kIG9yIHBpZWNlIG9mIGRhdGEgcmVjZWl2ZWQgaW5kaWNhdGVzIHRoZSBjb25uZWN0aW9uIHNob3VsZCBjbG9zZSwgdGhpcyBpcyB0aGUgZnVuY3Rpb24gdGhhdCBoYW5kbGVzIGl0LiAgVGhlIFwidW5saW5rXCIgYml0IGlzIGltcG9ydGFudCDigJMgdGhpcyBpcyBhYm91dCBzZXZlcmluZyB0aGUgZGV2aWNlIGZyb20gdGhlIGNvbm5lY3Rpb24gaW4gdGhpcyBzeXN0ZW0uIEkgd2FudCB0byBrbm93IHdoZW4gZG9lcyB0aGlzIGdldCBjYWxsZWQgaW4gcmVsYXRpb24gdG8gdGhlIGluaXRpYWwgc2h1dGRvd24uIElzIGl0IGEgZGlyZWN0IHJlc3BvbnNlIHRvIGEgc3BlY2lmaWMgbWVzc2FnZSwgb3IgaXMgaXQgaW5pdGlhdGVkIGJ5IHNvbWUgb3RoZXIgc3RhdGUgY2hhbmdlPyBJJ2QgZXhwZWN0IGl0IHRvIHBsYXkgYSBjcml0aWNhbCByb2xlIGluIHRoZSBncmFjZWZ1bCBvciBmb3JjZWQgZGlzY29ubmVjdGlvbiwgZGVwZW5kaW5nIG9uIHRoZSBzY2VuYXJpby4gSSdtIHdvbmRlcmluZyBpZiB0aGlzIGlzIGEgYmxvY2tpbmcgY2FsbCwgb3IgYW4gYXN5Y2hyb25vdXMgcHJvY2Vzcy4gU28gaXQgbWFrZXMgbWUgY29uc2lkZXIgaG93IHdlIG1pZ2h0IGJlIGFibGUgdG8gaGFuZGxlIGFuIGVycm9yIHNjZW5hcmlvIHdpdGhpbiB0aGlzIGZsb3cuIEknbSBnb2luZyB0byBoYXZlIHRvIGRpdmUgaW50byB0aGUgc3BlY2lmaWMgY29kZSBhbmQgdHJhY2luZyBsb2dzIHRvIGZ1bGx5IGdyYXNwIHRoaXMgaW50ZXJhY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MzUwLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTU6MDguODgxNjk3MjZaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM5ODY5Njg3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZoY2lfcmVjdl9yZXRfdW5saW5rXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvdXNiL3VzYmlwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTEyPXN0YXRpYyBzdHJ1Y3QgdmhjaV91bmxpbmsgKmRlcXVldWVfcGVuZGluZ191bmxpbmsoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LFxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTEzNi1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM6MTM3OnN0YXRpYyB2b2lkIHZoY2lfcmVjdl9yZXRfdW5saW5rKHN0cnVjdCB2aGNpX2RldmljZSAqdmRldixcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMTM4LVxcdFxcdFxcdFxcdCBzdHJ1Y3QgdXNiaXBfaGVhZGVyICpwZHUpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmM9MTk4PXN0YXRpYyB2b2lkIHZoY2lfcnhfcGR1KHN0cnVjdCB1c2JpcF9kZXZpY2UgKnVkKVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTI0NS1cXHRjYXNlIFVTQklQX1JFVF9VTkxJTks6XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjI0NjpcXHRcXHR2aGNpX3JlY3ZfcmV0X3VubGluayh2ZGV2LCBcXHUwMDI2cGR1KTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3J4LmMtMjQ3LVxcdFxcdGJyZWFrO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NTowOC45MjE1NzAwMTdaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODM4OTE5OTA4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUG90ZW50aWFsIEZvY3VzIFN5bWJvbHMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gY2hvb3NlIHRoZSBrZXkgc3ltYm9scyBmb3IgdGhpcyBhbmFseXNpcy4gQmFzZWQgb24gdGhlIGluaXRpYWwgaW52ZXN0aWdhdGlvbiwgSSB3YXMgdGhpbmtpbmcgYWJvdXQgdGhlc2U6IGB2aGNpX3VyYl9kZXF1ZXVlYCwgYHZoY2lfcmVjdl9yZXRfdW5saW5rYCwgYW5kIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gLiBUaGUgbGFzdCBvbmUgbGVhZHMgdG8gYHZoY2lfZGV2aWNlX3VubGlua19jbGVhbnVwYCwgd2hpY2ggdGhlbiBjYWxscyBgdmhjaV9jbGVhbnVwX3VubGlua19saXN0YCwgYnV0IHRoZSByb290IGZ1bmN0aW9ucyBhcmUgdGhlIG9uZXMgSSdtIHJlYWxseSBjb25jZXJuZWQgd2l0aC5cblxuUmlnaHQsIGB2aGNpX3VyYl9kZXF1ZXVlYCBsb29rcyBsaWtlIGEgc3Ryb25nIGNvbnRlbmRlci4gQW5kIGB2aGNpX3JlY3ZfcmV0X3VubGlua2Agc2VlbXMgcmVsZXZhbnQgYXMgd2VsbCBzaW5jZSBpdOKAmXMgZGlyZWN0bHkgdGllZCB0byB0aGUgdW5saW5rIHByb2Nlc3MuIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gIGlzIGFsc28gYSB2YWxpZCBjaG9pY2UuIFdoaWxlIGB2aGNpX3J4X3BkdWAgaXMgdGhlIGVudHJ5IGZvciByZWNlaXZpbmcgUERVcywgYHZoY2lfcmVjdl9yZXRfdW5saW5rYCBpcyBzcGVjaWZpYyB0byB0aGUgdW5saW5raW5nIGFuZCBzZWVtcyBtb3JlIHVzZWZ1bC5cblxuTm93LCBhIGNyaXRpY2FsIHBvaW50IOKAkyB0aGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZnkgYSBwcmVmZXJlbmNlIGZvciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnkgcG9pbnRzLiBJbnRlcm5hbCBzdGF0aWMgaGVscGVycyBhcmUgb2Z0ZW4gaW5saW5lZCBhbmQgZG9u4oCZdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMsIHdoaWNoIG1ha2VzIHRoZW0gbGVzcyB1c2VmdWwgZm9yIHRoaXMgcHVycG9zZS5cblxuYHZoY2lfdXJiX2RlcXVldWVgIGlzLCBpbiBmYWN0LCBzdGF0aWMuIEJ1dCwgaXRzIGFkZHJlc3MgaXMgdGFrZW4gYW5kIHVzZWQgaW4gYHZoY2lfaGNfZHJpdmVyYCwgbWVhbmluZyBpdCAqd29uJ3QqIGJlIGlubGluZWQuIFRoYXQgbWFrZXMgaXQgYSB2YWxpZCBjYW5kaWRhdGUuXG5cbkhvd2V2ZXIsIGB2aGNpX3JlY3ZfcmV0X3VubGlua2AgaXMgc3RhdGljLCB3aGljaCBpcyBhIGNvbmNlcm4uIEl04oCZcyBjYWxsZWQgZnJvbSBgdmhjaV9yeF9wZHVgLCBzbyBJIHNob3VsZCBjaGVjayBgdmhjaV9yeF9wZHVgIHRvIHNlZSBpZiBpdOKAmXMgaW5saW5lZC4gSXQgaXMgYWxzbyBzdGF0aWMuIEl0J3MgY2FsbGVkIGZyb20gYHZoY2lfcnhfbG9vcGAsIHdoaWNoIG5lZWRzIHRvIGJlIGxvb2tlZCBhdCBuZXh0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDA5NSwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NToxNy4zMTA3NzEzMTZaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1NTY2NDU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZoY2lfcnhfbG9vcFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3VzYi91c2JpcC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy91c2IvdXNiaXAvdmhjaS5oPTEzNz1zdHJ1Y3QgdXJiICpwaWNrdXBfdXJiX2FuZF9mcmVlX3ByaXYoc3RydWN0IHZoY2lfZGV2aWNlICp2ZGV2LCBfX3UzMiBzZXFudW0pO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2kuaDoxMzg6aW50IHZoY2lfcnhfbG9vcCh2b2lkICpkYXRhKTtcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpLmgtMTM5LVxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jPTE5OD1zdGF0aWMgdm9pZCB2aGNpX3J4X3BkdShzdHJ1Y3QgdXNiaXBfZGV2aWNlICp1ZClcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfcnguYy0yNTYtXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jOjI1NzppbnQgdmhjaV9yeF9sb29wKHZvaWQgKmRhdGEpXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9yeC5jLTI1OC17XFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX3N5c2ZzLmM9MzE1PXN0YXRpYyBzc2l6ZV90IGF0dGFjaF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLFxcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTM4MS1cXHQvKiBjcmVhdGUgdGhyZWFkcyBiZWZvcmUgbG9ja2luZyAqL1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfc3lzZnMuYzozODI6XFx0dGNwX3J4ID0ga3RocmVhZF9jcmVhdGUodmhjaV9yeF9sb29wLCBcXHUwMDI2dmRldi1cXHUwMDNldWQsIFxcXCJ2aGNpX3J4XFxcIik7XFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9zeXNmcy5jLTM4My1cXHRpZiAoSVNfRVJSKHRjcF9yeCkpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTU6MTcuMzU2MzQwMjIzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk0NTA4MTQyNDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBicmVha2Rvd24gb2YgdGhpcy5cblxuKipJbnZlc3RpZ2F0aW5nIFVTQiBWaXJ0dWFsIEhvc3QgQ29udHJvbGxlciAoVkhDSSkgVGhyZWFkIE1hbmFnZW1lbnQqKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUsIEknbSB0cnlpbmcgdG8gd3JhcCBteSBoZWFkIGFyb3VuZCB0aGUgdGhyZWFkIG1hbmFnZW1lbnQgaW4gdGhlIFZIQ0kgZHJpdmVyLiBgdmhjaV9yeF9sb29wYCBpcyB0aGUgZW50cnkgcG9pbnQgZm9yIGEga3RocmVhZCwgYW5kIGl0J3Mgbm90IGRlY2xhcmVkIGFzIHN0YXRpYy4gR29vZCwgdGhhdCBtYWtlcyBzZW5zZS4gTm93LCBgdmhjaV91cmJfZGVxdWV1ZWAgaXMgYSBzdGF0aWMgZnVuY3Rpb24sIGJ1dCBpdCdzIGEgY2FsbGJhY2ssIHNvIHRoYXQncyBwcm9iYWJseSBhbHJpZ2h0LiBJIHRoaW5rIEkgY2FuIGxpa2VseSB1dGlsaXplIHRoZXNlIHRocmVlIGZ1bmN0aW9uczogYHZoY2lfdXJiX2RlcXVldWVgLCBgdmhjaV9yeF9sb29wYCwgYW5kIGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gLiBOb3csIHdhaXQgYSBzZWNvbmQuIEkganVzdCByZWFsaXplZCB0aGF0IGB2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25gIGlzIGEgc3RhdGljIGZ1bmN0aW9uLiBUaGF0IG1lYW5zIGl0cyBzY29wZSBpcyBsaW1pdGVkIHdpdGhpbiB0aGUgZmlsZSBvciBtb2R1bGUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGl0J3MgYmVpbmcgY2FsbGVkLiBUaGF0J3MgdGhlIG5leHQgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gSSBuZWVkLiBJJ2xsIG5lZWQgdG8gdHJhY2UgaXRzIHJlZmVyZW5jZXMgdG8gdW5kZXJzdGFuZCBpdHMgcHVycG9zZSBhbmQgaG93IGl0IGZpdHMgaW50byB0aGUgY29ubmVjdGlvbiBsaWZlY3ljbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMjIxLCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTU6MjYuODA3MTU3Mjg3WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzMyODk1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ2aGNpX3NodXRkb3duX2Nvbm5lY3Rpb25cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy91c2IvdXNiaXAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTA0Mz1zdGF0aWMgdm9pZCB2aGNpX2RldmljZV91bmxpbmtfY2xlYW51cChzdHJ1Y3QgdmhjaV9kZXZpY2UgKnZkZXYpXFxuLS1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTYtICovXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYzoxMDU3OnN0YXRpYyB2b2lkIHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbihzdHJ1Y3QgdXNiaXBfZGV2aWNlICp1ZClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTEwNTgte1xcbi0tXFxuZHJpdmVycy91c2IvdXNiaXAvdmhjaV9oY2QuYy0xMTAxLVxcdCAqIE5PVEU6IHZoY2lfZGVxdWV1ZSgpIG11c3QgYmUgY29uc2lkZXJlZCBjYXJlZnVsbHkuIFdoZW4gc2h1dHRpbmcgZG93blxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM6MTEwMjpcXHQgKiBhIGNvbm5lY3Rpb24sIHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbigpIGV4cGVjdHMgdmhjaV9kZXF1ZXVlKClcXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jLTExMDMtXFx0ICogZ2l2ZXMgYmFjayBwdXNoZWQgdXJicyBhbmQgZnJlZXMgdGhlaXIgcHJpdmF0ZSBkYXRhIGJ5IHJlcXVlc3Qgb2ZcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmM9MTE0Nz1zdGF0aWMgdm9pZCB2aGNpX2RldmljZV9pbml0KHN0cnVjdCB2aGNpX2RldmljZSAqdmRldilcXG4tLVxcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE2My1cXG5kcml2ZXJzL3VzYi91c2JpcC92aGNpX2hjZC5jOjExNjQ6XFx0dmRldi1cXHUwMDNldWQuZWhfb3BzLnNodXRkb3duID0gdmhjaV9zaHV0ZG93bl9jb25uZWN0aW9uO1xcbmRyaXZlcnMvdXNiL3VzYmlwL3ZoY2lfaGNkLmMtMTE2NS1cXHR2ZGV2LVxcdTAwM2V1ZC5laF9vcHMucmVzZXQgPSB2aGNpX2RldmljZV9yZXNldDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDdUMDg6NTU6MjYuODUwNDkwMTI0WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg4MjY0MTgxMjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBVU0IvSVAgVkhDSSBTaHV0ZG93biBDYWxsYmFjayoqXG5cbk9rYXksIHNvIHRoaXMgaXMgYWJvdXQgdGhlIGNhbGxiYWNrIGZvciBgZWhfb3BzLnNodXRkb3duYCwgcmlnaHQ/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBrZXkgYXJlYXMgdG8gZm9jdXMgb24gaW4gdGhpcyBjb250ZXh0LiBgdmhjaV91cmJfZGVxdWV1ZWAsIGB2aGNpX3J4X2xvb3BgLCBhbmQgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmAgYXJlIGRlZmluaXRlbHkgaW1wb3J0YW50IHN5bWJvbHMgdG8gemVybyBpbiBvbi5cblxuSSBuZWVkIHRvIHF1aWNrbHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhpcyBkcml2ZXIuIExldCdzIHNlZSwgd2UgaGF2ZSBgVVNCSVBfVkhDSV9IQ0RgIGFuZCBgVVNCSVBfQ09SRWAuIEFueSBvdGhlciBkZXBlbmRlbmNpZXM/IEhtbSwgYFVTQklQX0NPUkVgIGRlcGVuZHMgb24gYE5FVGAsIGFuZCBgVVNCSVBfVkhDSV9IQ0RgIGRlcGVuZHMgb24gYFVTQklQX0NPUkVgIGFuZCBgVVNCYC4gU28gdGhlIGNvbXBsZXRlIHNldCBvZiBkZXBlbmRlbmNpZXMgd291bGQgaW5jbHVkZSBgVVNCSVBfVkhDSV9IQ0RgLCBgVVNCSVBfQ09SRWAsIGBVU0JgLCBhbmQgYE5FVGAuIEFsdGhvdWdoLCBmb3IgbXkgcHVycG9zZXMsIGxpc3RpbmcgYFVTQklQX1ZIQ0lfSENEYCBhbmQgYFVTQklQX0NPUkVgIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBub3cuXG5cblRoZSBwYXRjaCdzIHB1cnBvc2UgaXMgdG8gYWRkIGEgdGltZXIgdG8gaGFuZGxlIFVSQiB0aW1lb3V0cyBpbiB0aGUgVkhDSS4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBVU0IvSVAgZHJpdmVyLCBzbyBpdCBhZmZlY3RzIHVubGlua2luZywgYW5kIHNob3VsZCBwcmV2ZW50IHBvdGVudGlhbCBoYW5ncy4gQmVpbmcgdGhhdCBVU0IvSVAgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgdGhpcyBpcyBhIHZhbGlkIHRhcmdldCBmb3IgZnV6emluZy5cblxuTm93LCBsZXQncyB0YWtlIGEgcXVpY2sgbG9vayBhdCBgdmhjaV91bmxpbmtfdGltZW91dGAg4oCTIHRoZSBuZXdseSBhZGRlZCBmdW5jdGlvbi4gSXQncyBzdGF0aWMsIHdoaWNoIGlzIGludGVyZXN0aW5nLCBidXQgaXQncyBhIHRpbWVyIGNhbGxiYWNrLCBzbyBpdCdzIG5vdCBpbmxpbmVkLCB3aGljaCBleHBhbmRzIGl0cyBpbXBhY3QuIEkgdGhpbmsgdGhpcyBjb3VsZCBiZSBhIGZvY3VzIHN5bWJvbCBhcyB3ZWxsLlxuXG5TbywgaW4gc3VtbWFyeSwgaGVyZSBhcmUgdGhlIGtleSBmb2N1cyBzeW1ib2xzOlxuLSAgIGB2aGNpX3VyYl9kZXF1ZXVlYFxuLSAgIGB2aGNpX3VubGlua190aW1lb3V0YFxuLSAgIGB2aGNpX3J4X2xvb3BgXG4tICAgYHZoY2lfc2h1dGRvd25fY29ubmVjdGlvbmBcblxuQWxyaWdodCwgdGltZSB0byBzZXQgdGhlIHJlc3VsdHMgYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTY2LCJPdXRwdXRUb2tlbnMiOjE2MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM0MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wN1QwODo1NTozNS42NzY5MTA0NjJaIiwiU2VxIjoyMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MjY2MDQzNSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCSVBfVkhDSV9IQ0RcIixcbiAgICBcIlVTQklQX0NPUkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2aGNpX3VyYl9kZXF1ZXVlXCIsXG4gICAgXCJ2aGNpX3VubGlua190aW1lb3V0XCIsXG4gICAgXCJ2aGNpX3J4X2xvb3BcIixcbiAgICBcInZoY2lfc2h1dGRvd25fY29ubmVjdGlvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IG1lY2hhbmlzbSBmb3IgVVJCIHVubGlua2luZyBpbiB0aGUgVVNCL0lQIHZpcnR1YWwgaG9zdCBjb250cm9sbGVyICh2aGNpKSBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBoYW5ncyB3aGVuIHVubGlua2luZyBVUkJzIGJ5IGludHJvZHVjaW5nIGEgdGltZXIgdGhhdCB0cmlnZ2VycyBhIFRDUCBlcnJvciBldmVudCBpZiB0aGUgdW5saW5rIG9wZXJhdGlvbiB0YWtlcyB0b28gbG9uZy4gVGhlIFVTQi9JUCBkcml2ZXIgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgaXMgYSB2YWxpZCB0YXJnZXQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiVVNCSVBfVkhDSV9IQ0RcIixcbiAgICBcIlVTQklQX0NPUkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ2aGNpX3VyYl9kZXF1ZXVlXCIsXG4gICAgXCJ2aGNpX3VubGlua190aW1lb3V0XCIsXG4gICAgXCJ2aGNpX3J4X2xvb3BcIixcbiAgICBcInZoY2lfc2h1dGRvd25fY29ubmVjdGlvblwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSB0aW1lb3V0IG1lY2hhbmlzbSBmb3IgVVJCIHVubGlua2luZyBpbiB0aGUgVVNCL0lQIHZpcnR1YWwgaG9zdCBjb250cm9sbGVyICh2aGNpKSBkcml2ZXIuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IHByZXZlbnRzIHBvdGVudGlhbCBoYW5ncyB3aGVuIHVubGlua2luZyBVUkJzIGJ5IGludHJvZHVjaW5nIGEgdGltZXIgdGhhdCB0cmlnZ2VycyBhIFRDUCBlcnJvciBldmVudCBpZiB0aGUgdW5saW5rIG9wZXJhdGlvbiB0YWtlcyB0b28gbG9uZy4gVGhlIFVTQi9JUCBkcml2ZXIgaXMgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgaXMgYSB2YWxpZCB0YXJnZXQgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowpfc5b[1] Phase: Succeeded StartedAt: 2026-08-07 08:55:57 +0000 UTC FinishedAt: 2026-08-07 08:55:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-07 08:55:57 +0000 UTC FinishedAt: 2026-08-07 08:55:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2] Phase: Succeeded StartedAt: 2026-08-07 08:55:57 +0000 UTC FinishedAt: 2026-08-07 12:37:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-07 08:55:57 +0000 UTC FinishedAt: 2026-08-07 12:37:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-07 08:55:57 +0000 UTC FinishedAt: 2026-08-07 08:56:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-07 08:55:57 +0000 UTC FinishedAt: 2026-08-07 08:56:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-convert-artifact-1481955928/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-07 08:56:21 +0000 UTC FinishedAt: 2026-08-07 09:13:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-07 08:56:21 +0000 UTC FinishedAt: 2026-08-07 09:13:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*5f4871b3-ba5a-46ee-a508-6cf9fff5736b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-convert-artifact-1481955928/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "b6155409-f784-493f-ae07-1b1c8a63fa73", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-406942350/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-07 08:56:21 +0000 UTC FinishedAt: 2026-08-07 09:13:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*5f4871b3-ba5a-46ee-a508-6cf9fff5736b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-convert-artifact-1481955928/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "b6155409-f784-493f-ae07-1b1c8a63fa73", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-406942350/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-07 09:13:57 +0000 UTC FinishedAt: 2026-08-07 09:13:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-07 09:13:57 +0000 UTC FinishedAt: 2026-08-07 09:13:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-07 09:13:57 +0000 UTC FinishedAt: 2026-08-07 09:14:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-07 09:13:57 +0000 UTC FinishedAt: 2026-08-07 09:14:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-convert-artifact-958272447/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-07 09:14:08 +0000 UTC FinishedAt: 2026-08-07 09:15:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-07 09:14:08 +0000 UTC FinishedAt: 2026-08-07 09:15:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b6155409-f784-493f-ae07-1b1c8a63fa73,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-406942350/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-07 09:15:58 +0000 UTC FinishedAt: 2026-08-07 09:15:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-07 09:15:58 +0000 UTC FinishedAt: 2026-08-07 09:15:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-07 09:15:58 +0000 UTC FinishedAt: 2026-08-07 09:32:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-07 09:15:58 +0000 UTC FinishedAt: 2026-08-07 09:32:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*5f4871b3-ba5a-46ee-a508-6cf9fff5736b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-convert-artifact-958272447/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "8d242fcc-96c0-4c6b-92ab-ed5eb22d0555", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-1813256147/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-07 09:15:58 +0000 UTC FinishedAt: 2026-08-07 09:32:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*5f4871b3-ba5a-46ee-a508-6cf9fff5736b,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-convert-artifact-958272447/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "8d242fcc-96c0-4c6b-92ab-ed5eb22d0555", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-1813256147/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-07 09:32:16 +0000 UTC FinishedAt: 2026-08-07 09:32:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-07 09:32:16 +0000 UTC FinishedAt: 2026-08-07 09:32:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-07 09:32:16 +0000 UTC FinishedAt: 2026-08-07 09:34:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-07 09:32:16 +0000 UTC FinishedAt: 2026-08-07 09:34:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8d242fcc-96c0-4c6b-92ab-ed5eb22d0555,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-1813256147/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },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-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-07 09:34:21 +0000 UTC FinishedAt: 2026-08-07 12:37:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-07 09:34:21 +0000 UTC FinishedAt: 2026-08-07 12:37:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*b6155409-f784-493f-ae07-1b1c8a63fa73,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8d242fcc-96c0-4c6b-92ab-ed5eb22d0555,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-406942350/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-1813256147/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-07 09:34:21 +0000 UTC FinishedAt: 2026-08-07 09:34:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-07 09:34:21 +0000 UTC FinishedAt: 2026-08-07 09:34:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-convert-artifact-192567128/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-07 09:34:21 +0000 UTC FinishedAt: 2026-08-07 09:34:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-07 09:34:21 +0000 UTC FinishedAt: 2026-08-07 09:34:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-07 09:34:21 +0000 UTC FinishedAt: 2026-08-07 09:34:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-07 09:34:31 +0000 UTC FinishedAt: 2026-08-07 12:37:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowpfc5b[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["vhci_urb_dequeue","vhci_unlink_timeout","vhci_rx_loop","vhci_shutdown_connection"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"075b74841bd0065a3bda3440873c747938e69b68","config_name":"upstream-apparmor-kasan.config","enable_configs":["USBIP_VHCI_HCD","USBIP_CORE"],"series_id":"58f5b609-4c3e-4caf-b848-3472277a28f6","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-07 09:34:31 +0000 UTC FinishedAt: 2026-08-07 12:36:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*b6155409-f784-493f-ae07-1b1c8a63fa73,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8d242fcc-96c0-4c6b-92ab-ed5eb22d0555,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-406942350/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-build-action-1813256147/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowpfc5b/series-workflowpfc5b-convert-artifact-192567128/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}