Name: series-workflowg86rv Phase: Succeeded StartedAt: 2026-07-15 04:28:29 +0000 UTC FinishedAt: 2026-07-15 05:57:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[0] Phase: Succeeded StartedAt: 2026-07-15 04:28:29 +0000 UTC FinishedAt: 2026-07-15 04:44:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[0].run-triage Phase: Succeeded StartedAt: 2026-07-15 04:28:29 +0000 UTC FinishedAt: 2026-07-15 04:44:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PDS_CORE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PDS_CORE" ], "series_id": "d3762ec6-7746-486d-9e74-740d09bd72c2" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "pdsc_remove", "pdsc_pci_reset_thread", "pdsc_teardown", "pdsc_core_uninit", "pdsc_qcq_free" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BEU19DT1JFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGRzY19yZW1vdmUmIzM0OywKICAgICYjMzQ7cGRzY19wY2lfcmVzZXRfdGhyZWFkJiMzNDssCiAgICAmIzM0O3Bkc2NfdGVhcmRvd24mIzM0OywKICAgICYjMzQ7cGRzY19jb3JlX3VuaW5pdCYjMzQ7LAogICAgJiMzNDtwZHNjX3FjcV9mcmVlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0ZWFyZG93biwgdW5pbml0aWFsaXphdGlvbiwgYW5kIFBDSSByZXNldCBsb2dpYyBvZiB0aGUgQU1EIFBEUyBjb3JlIGRyaXZlci4gVGhlc2UgcGF0aHMgY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXImIzM5O3MgUENJIGRldmljZSBlbXVsYXRpb24gZHVyaW5nIHByb2JlL3JlbW92ZSBhbmQgcmVzZXQgY3ljbGVzLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDQ6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5Y2JjNzBkMGExODIzM2I0NjhjZTQ5MzRiNzRlZDZiZDNmNDE5MTg0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMDQ6NDM6NTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNcbmluZGV4IDM4YTI0NDY1NzFhZmFiLi5lMzliMmM5YmViMjA5MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNcbkBAIC0xMTAsNyAmIzQzOzExMCw2IEBAIHN0YXRpYyB2b2lkIHBkc2NfcWNxX2ludHJfZnJlZShzdHJ1Y3QgcGRzYyAqcGRzYywgc3RydWN0IHBkc2NfcWNxICpxY3EpXG4gXHRcdHJldHVybjtcbiBcbiBcdHBkc2NfaW50cl9mcmVlKHBkc2MsIHFjcS1cdTAwM2VpbnR4KTtcbi1cdHFjcS1cdTAwM2VpbnR4ID0gUERTX0NPUkVfSU5UUl9JTkRFWF9OT1RfQVNTSUdORUQ7XG4gfVxuIFxuIHN0YXRpYyBpbnQgcGRzY19xY3FfaW50cl9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgc3RydWN0IHBkc2NfcWNxICpxY3EpXG5AQCAtMTQ1LDYgJiM0MzsxNDQsMTIgQEAgdm9pZCBwZHNjX3FjcV9mcmVlKHN0cnVjdCBwZHNjICpwZHNjLCBzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcbiBcbiBcdHBkc2NfcWNxX2ludHJfZnJlZShwZHNjLCBxY3EpO1xuIFxuJiM0MztcdC8qIERyYWluIGFueSB3b3JrIHF1ZXVlZCBieSBJU1IgYmVmb3JlIGl0IHdhcyBmcmVlZCBhYm92ZSAqL1xuJiM0MztcdGlmIChxY3EtXHUwMDNld29yay5mdW5jKVxuJiM0MztcdFx0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZxY3EtXHUwMDNld29yayk7XG4mIzQzO1xuJiM0MztcdHFjcS1cdTAwM2VpbnR4ID0gUERTX0NPUkVfSU5UUl9JTkRFWF9OT1RfQVNTSUdORUQ7XG4mIzQzO1xuIFx0aWYgKHFjcS1cdTAwM2VxX2Jhc2UpXG4gXHRcdGRtYV9mcmVlX2NvaGVyZW50KGRldiwgcWNxLVx1MDAzZXFfc2l6ZSxcbiBcdFx0XHRcdCAgcWNxLVx1MDAzZXFfYmFzZSwgcWNxLVx1MDAzZXFfYmFzZV9wYSk7XG5AQCAtMzA0LDggJiM0MzszMDksMTEgQEAgaW50IHBkc2NfcWNxX2FsbG9jKHN0cnVjdCBwZHNjICpwZHNjLCB1bnNpZ25lZCBpbnQgdHlwZSwgdW5zaWduZWQgaW50IGluZGV4LFxuIFxuIHN0YXRpYyB2b2lkIHBkc2NfY29yZV91bmluaXQoc3RydWN0IHBkc2MgKnBkc2MpXG4ge1xuLVx0cGRzY19xY3FfZnJlZShwZHNjLCBcdTAwMjZwZHNjLVx1MDAzZW5vdGlmeXFjcSk7XG4mIzQzO1x0LyogRnJlZSBhZG1pbnFjcSBmaXJzdDogaXRzIHdvcmsgYWNjZXNzZXMgbm90aWZ5cWNxLCBzbyB3ZSBtdXN0XG4mIzQzO1x0ICogZGlzYWJsZSBpdHMgSVJRIGFuZCBkcmFpbiBpdHMgd29yayBiZWZvcmUgZnJlZWluZyBub3RpZnlxY3EuXG4mIzQzO1x0ICovXG4gXHRwZHNjX3FjcV9mcmVlKHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlYWRtaW5xY3EpO1xuJiM0MztcdHBkc2NfcWNxX2ZyZWUocGRzYywgXHUwMDI2cGRzYy1cdTAwM2Vub3RpZnlxY3EpO1xuIFxuIFx0aWYgKHBkc2MtXHUwMDNla2Vybl9kYnBhZ2UpIHtcbiBcdFx0aW91bm1hcChwZHNjLVx1MDAzZWtlcm5fZGJwYWdlKTtcbkBAIC00NzksOCAmIzQzOzQ4Nyw2IEBAIHZvaWQgcGRzY190ZWFyZG93bihzdHJ1Y3QgcGRzYyAqcGRzYywgYm9vbCByZW1vdmluZylcbiB7XG4gXHRpZiAoIXBkc2MtXHUwMDNlcGRldi1cdTAwM2Vpc192aXJ0Zm4pXG4gXHRcdHBkc2NfZGV2Y21kX3Jlc2V0KHBkc2MpO1xuLVx0aWYgKHBkc2MtXHUwMDNlYWRtaW5xY3Eud29yay5mdW5jKVxuLVx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnBkc2MtXHUwMDNlYWRtaW5xY3Eud29yayk7XG4gXG4gXHRwY2lfY2xlYXJfbWFzdGVyKHBkc2MtXHUwMDNlcGRldik7XG4gXG5AQCAtNjA2LDkgJiM0Mzs2MTIsMTAgQEAgdm9pZCBwZHNjX3BjaV9yZXNldF90aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0c3RydWN0IHBkc2MgKnBkc2MgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHBkc2MsIHBjaV9yZXNldF93b3JrKTtcbiBcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gcGRzYy1cdTAwM2VwZGV2O1xuIFxuLVx0cGNpX2Rldl9nZXQocGRldik7XG4tXHRwY2lfcmVzZXRfZnVuY3Rpb24ocGRldik7XG4tXHRwY2lfZGV2X3B1dChwZGV2KTtcbiYjNDM7XHQvKiBVc2UgdHJ5IHZhcmlhbnQgdG8gYXZvaWQgZGVhZGxvY2sgd2l0aCBwZHNjX3JlbW92ZSgpLlxuJiM0MztcdCAqIElmIGxvY2sgaXMgY29udGVuZGVkLCB0aGUgd2F0Y2hkb2cgdGltZXIgd2lsbCByZXRyeS5cbiYjNDM7XHQgKi9cbiYjNDM7XHRwY2lfdHJ5X3Jlc2V0X2Z1bmN0aW9uKHBkZXYpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBwZHNjX2NoZWNrX3BjaV9oZWFsdGgoc3RydWN0IHBkc2MgKnBkc2MpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmNcbmluZGV4IDIyZGI3ODM0M2ViMDc1Li42MzhiOWM3YTUwOWQ5ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmNcbkBAIC00MzUsOCAmIzQzOzQzNSw2IEBAIHN0YXRpYyB2b2lkIHBkc2NfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0XHRwZHNjX2F1eGJ1c19kZXZfZGVsKHBkc2MsIHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlcGFkZXYpO1xuIFxuIFx0XHR0aW1lcl9zaHV0ZG93bl9zeW5jKFx1MDAyNnBkc2MtXHUwMDNld2R0aW1lcik7XG4tXHRcdGlmIChwZHNjLVx1MDAzZXdxKVxuLVx0XHRcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXHUwMDNld3EpO1xuIFxuIFx0XHRtdXRleF9sb2NrKFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuIFx0XHRzZXRfYml0KFBEU0NfU19TVE9QUElOR19EUklWRVIsIFx1MDAyNnBkc2MtXHUwMDNlc3RhdGUpO1xuQEAgLTQ0NCw2ICYjNDM7NDQyLDkgQEAgc3RhdGljIHZvaWQgcGRzY19yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRcdHBkc2Nfc3RvcChwZHNjKTtcbiBcdFx0cGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTtcbiBcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuJiM0MztcbiYjNDM7XHRcdGlmIChwZHNjLVx1MDAzZXdxKVxuJiM0MztcdFx0XHRkZXN0cm95X3dvcmtxdWV1ZShwZHNjLVx1MDAzZXdxKTtcbiBcdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZwZHNjLVx1MDAzZWNvbmZpZ19sb2NrKTtcbiBcdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZwZHNjLVx1MDAzZWRldmNtZF9sb2NrKTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQRFNfQ09SRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Bkc2NfcmVtb3ZlJiMzNDssCiAgICAmIzM0O3Bkc2NfcGNpX3Jlc2V0X3RocmVhZCYjMzQ7LAogICAgJiMzNDtwZHNjX3RlYXJkb3duJiMzNDssCiAgICAmIzM0O3Bkc2NfY29yZV91bmluaXQmIzM0OywKICAgICYjMzQ7cGRzY19xY3FfZnJlZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGVhcmRvd24sIHVuaW5pdGlhbGl6YXRpb24sIGFuZCBQQ0kgcmVzZXQgbG9naWMgb2YgdGhlIEFNRCBQRFMgY29yZSBkcml2ZXIuIFRoZXNlIHBhdGhzIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc3l6a2FsbGVyJiMzOTtzIFBDSSBkZXZpY2UgZW11bGF0aW9uIGR1cmluZyBwcm9iZS9yZW1vdmUgYW5kIHJlc2V0IGN5Y2xlcywgbWFraW5nIGl0IHN1aXRhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5Y2JjNzBkMGExODIzM2I0NjhjZTQ5MzRiNzRlZDZiZDNmNDE5MTg0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMTUgMDQ6NDM6NTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYwppbmRleCAzOGEyNDQ2NTcxYWZhYi4uZTM5YjJjOWJlYjIwOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYwpAQCAtMTEwLDcgJiM0MzsxMTAsNiBAQCBzdGF0aWMgdm9pZCBwZHNjX3FjcV9pbnRyX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKQogCQlyZXR1cm47CiAKIAlwZHNjX2ludHJfZnJlZShwZHNjLCBxY3EtJmd0O2ludHgpOwotCXFjcS0mZ3Q7aW50eCA9IFBEU19DT1JFX0lOVFJfSU5ERVhfTk9UX0FTU0lHTkVEOwogfQogCiBzdGF0aWMgaW50IHBkc2NfcWNxX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKQpAQCAtMTQ1LDYgJiM0MzsxNDQsMTIgQEAgdm9pZCBwZHNjX3FjcV9mcmVlKHN0cnVjdCBwZHNjICpwZHNjLCBzdHJ1Y3QgcGRzY19xY3EgKnFjcSkKIAogCXBkc2NfcWNxX2ludHJfZnJlZShwZHNjLCBxY3EpOwogCiYjNDM7CS8qIERyYWluIGFueSB3b3JrIHF1ZXVlZCBieSBJU1IgYmVmb3JlIGl0IHdhcyBmcmVlZCBhYm92ZSAqLwomIzQzOwlpZiAocWNxLSZndDt3b3JrLmZ1bmMpCiYjNDM7CQljYW5jZWxfd29ya19zeW5jKCZhbXA7cWNxLSZndDt3b3JrKTsKJiM0MzsKJiM0MzsJcWNxLSZndDtpbnR4ID0gUERTX0NPUkVfSU5UUl9JTkRFWF9OT1RfQVNTSUdORUQ7CiYjNDM7CiAJaWYgKHFjcS0mZ3Q7cV9iYXNlKQogCQlkbWFfZnJlZV9jb2hlcmVudChkZXYsIHFjcS0mZ3Q7cV9zaXplLAogCQkJCSAgcWNxLSZndDtxX2Jhc2UsIHFjcS0mZ3Q7cV9iYXNlX3BhKTsKQEAgLTMwNCw4ICYjNDM7MzA5LDExIEBAIGludCBwZHNjX3FjcV9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgdW5zaWduZWQgaW50IHR5cGUsIHVuc2lnbmVkIGludCBpbmRleCwKIAogc3RhdGljIHZvaWQgcGRzY19jb3JlX3VuaW5pdChzdHJ1Y3QgcGRzYyAqcGRzYykKIHsKLQlwZHNjX3FjcV9mcmVlKHBkc2MsICZhbXA7cGRzYy0mZ3Q7bm90aWZ5cWNxKTsKJiM0MzsJLyogRnJlZSBhZG1pbnFjcSBmaXJzdDogaXRzIHdvcmsgYWNjZXNzZXMgbm90aWZ5cWNxLCBzbyB3ZSBtdXN0CiYjNDM7CSAqIGRpc2FibGUgaXRzIElSUSBhbmQgZHJhaW4gaXRzIHdvcmsgYmVmb3JlIGZyZWVpbmcgbm90aWZ5cWNxLgomIzQzOwkgKi8KIAlwZHNjX3FjcV9mcmVlKHBkc2MsICZhbXA7cGRzYy0mZ3Q7YWRtaW5xY3EpOwomIzQzOwlwZHNjX3FjcV9mcmVlKHBkc2MsICZhbXA7cGRzYy0mZ3Q7bm90aWZ5cWNxKTsKIAogCWlmIChwZHNjLSZndDtrZXJuX2RicGFnZSkgewogCQlpb3VubWFwKHBkc2MtJmd0O2tlcm5fZGJwYWdlKTsKQEAgLTQ3OSw4ICYjNDM7NDg3LDYgQEAgdm9pZCBwZHNjX3RlYXJkb3duKHN0cnVjdCBwZHNjICpwZHNjLCBib29sIHJlbW92aW5nKQogewogCWlmICghcGRzYy0mZ3Q7cGRldi0mZ3Q7aXNfdmlydGZuKQogCQlwZHNjX2RldmNtZF9yZXNldChwZHNjKTsKLQlpZiAocGRzYy0mZ3Q7YWRtaW5xY3Eud29yay5mdW5jKQotCQljYW5jZWxfd29ya19zeW5jKCZhbXA7cGRzYy0mZ3Q7YWRtaW5xY3Eud29yayk7CiAKIAlwY2lfY2xlYXJfbWFzdGVyKHBkc2MtJmd0O3BkZXYpOwogCkBAIC02MDYsOSAmIzQzOzYxMiwxMCBAQCB2b2lkIHBkc2NfcGNpX3Jlc2V0X3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IHBkc2MgKnBkc2MgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHBkc2MsIHBjaV9yZXNldF93b3JrKTsKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHBkc2MtJmd0O3BkZXY7CiAKLQlwY2lfZGV2X2dldChwZGV2KTsKLQlwY2lfcmVzZXRfZnVuY3Rpb24ocGRldik7Ci0JcGNpX2Rldl9wdXQocGRldik7CiYjNDM7CS8qIFVzZSB0cnkgdmFyaWFudCB0byBhdm9pZCBkZWFkbG9jayB3aXRoIHBkc2NfcmVtb3ZlKCkuCiYjNDM7CSAqIElmIGxvY2sgaXMgY29udGVuZGVkLCB0aGUgd2F0Y2hkb2cgdGltZXIgd2lsbCByZXRyeS4KJiM0MzsJICovCiYjNDM7CXBjaV90cnlfcmVzZXRfZnVuY3Rpb24ocGRldik7CiB9CiAKIHN0YXRpYyB2b2lkIHBkc2NfY2hlY2tfcGNpX2hlYWx0aChzdHJ1Y3QgcGRzYyAqcGRzYykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jCmluZGV4IDIyZGI3ODM0M2ViMDc1Li42MzhiOWM3YTUwOWQ5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jCkBAIC00MzUsOCAmIzQzOzQzNSw2IEBAIHN0YXRpYyB2b2lkIHBkc2NfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCQlwZHNjX2F1eGJ1c19kZXZfZGVsKHBkc2MsIHBkc2MsICZhbXA7cGRzYy0mZ3Q7cGFkZXYpOwogCiAJCXRpbWVyX3NodXRkb3duX3N5bmMoJmFtcDtwZHNjLSZndDt3ZHRpbWVyKTsKLQkJaWYgKHBkc2MtJmd0O3dxKQotCQkJZGVzdHJveV93b3JrcXVldWUocGRzYy0mZ3Q7d3EpOwogCiAJCW11dGV4X2xvY2soJmFtcDtwZHNjLSZndDtjb25maWdfbG9jayk7CiAJCXNldF9iaXQoUERTQ19TX1NUT1BQSU5HX0RSSVZFUiwgJmFtcDtwZHNjLSZndDtzdGF0ZSk7CkBAIC00NDQsNiAmIzQzOzQ0Miw5IEBAIHN0YXRpYyB2b2lkIHBkc2NfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCQlwZHNjX3N0b3AocGRzYyk7CiAJCXBkc2NfdGVhcmRvd24ocGRzYywgUERTQ19URUFSRE9XTl9SRU1PVklORyk7CiAJCW11dGV4X3VubG9jaygmYW1wO3Bkc2MtJmd0O2NvbmZpZ19sb2NrKTsKJiM0MzsKJiM0MzsJCWlmIChwZHNjLSZndDt3cSkKJiM0MzsJCQlkZXN0cm95X3dvcmtxdWV1ZShwZHNjLSZndDt3cSk7CiAJCW11dGV4X2Rlc3Ryb3koJmFtcDtwZHNjLSZndDtjb25maWdfbG9jayk7CiAJCW11dGV4X2Rlc3Ryb3koJmFtcDtwZHNjLSZndDtkZXZjbWRfbG9jayk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDQ6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk2NAoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDgyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIEZ1enppbmcgUG90ZW50aWFsIG9mIGFuIEFNRCBQRFMgQ29yZSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0b3VjaGVzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmNgLiBTcGVjaWZpY2FsbHksIGl0IG1vZGlmaWVzIGEgZmV3IGZ1bmN0aW9ucyByZWxhdGVkIHRvIHRoZSBBTUQgUERTIGNvcmUgZHJpdmVyLiBSaWdodCBvZmYgdGhlIGJhdCwgSSByZWNvZ25pemUgdGhpcyBhcyBhIGhhcmR3YXJlIGRyaXZlciDigJMgQU1EIFBlbnNhbmRvIERpc3RyaWJ1dGVkIFNlcnZpY2VzIENhcmQsIHRvIGJlIGV4YWN0LiBUaGUgZnVuY3Rpb25zIGJlaW5nIGNoYW5nZWQgKGBwZHNjX3FjcV9pbnRyX2ZyZWVgLCBgcGRzY19xY3FfZnJlZWAsIGV0Yy4pIGRlYWwgd2l0aCBjbGVhbnVwIGFuZCByZXNldCBwcm9jZWR1cmVzLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgZnV6emluZyBhIFBDSSBoYXJkd2FyZSBkcml2ZXIgaXMgdHlwaWNhbGx5IHRyaWNreSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBOb3JtYWxseSwgeW91JiMzOTtkIG5lZWQgc3BlY2lmaWMgaGFyZHdhcmUgZW11bGF0aW9uLCB3aGljaCBzeXprYWxsZXIsIGFsdGhvdWdoIHBvd2VyZnVsLCBkb2VzbiYjMzk7dCBhbHdheXMgaGF2ZSBmb3IgZXZlcnkgaGFyZHdhcmUgZGV2aWNlLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHN5emthbGxlciYjMzk7cyBQQ0kgZW11bGF0aW9uIGlzIGZhaXJseSBnZW5lcmljLiBIb3dldmVyLCB3YWl0IGEgbWludXRlLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgYHN5el9wY2lfZGV2aWNlYCB3aGljaCBpcyB1c2VkIGZvciBQQ0kgZGV2aWNlIGVtdWxhdGlvbi4gSXQgY2FuIHRyaWdnZXIgYHByb2JlYCBhbmQgYHJlbW92ZWAgY2FsbHMuCgpUaGlzIHBhdGNoLCBzcGVjaWZpY2FsbHksIGlzIGZpeGluZyB0ZWFyZG93bi9yZXNldCBsb2dpYy4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhZGRyZXNzaW5nIHdvcmsgcXVldWUgZHJhaW5pbmcsIG9yZGVyIG9mIG9wZXJhdGlvbnMgZHVyaW5nIHVuaW5pdGlhbGl6YXRpb24sIHdvcmsgY2FuY2VsbGF0aW9ucywgYW5kIHRoZSB1c2Ugb2YgYHBjaV90cnlfcmVzZXRfZnVuY3Rpb25gLiBJZiB0aGlzIHBhdGNoIGZpeGVzIGxvZ2ljIGluIHJlbW92YWwgb3IgcmVzZXQsIHRoZW4gc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgKm1pZ2h0KiBiZSBhYmxlIHRvIGhpdCB0aG9zZSBjb2RlIHBhdGhzLCBhbmQgaXMgd29ydGggbG9va2luZyBhdC4KCkV2ZW4gdGhvdWdoIGl0JiMzOTtzIGhhcmR3YXJlLXNwZWNpZmljLCBzeXprYWxsZXLigJlzIFBDSSBmdXp6aW5nIGhhcyB0aGUgcG90ZW50aWFsIHRvIHRyaWdnZXIgYHByb2JlYCBhbmQgYHJlbW92ZWAgcGF0aHMuIFRodXMsICpiZWNhdXNlKiB0aGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBgcmVtb3ZlYCBhbmQgYHJlc2V0YCByZWxhdGVkIGZ1bmN0aW9ucywgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSBpdCBjb3VsZCB0cmlnZ2VyIGJ1Z3MgaW4gdGhlIHBhdGhzLiBHaXZlbiB0aGUgcHJvbXB0IHN0YXRlcyB0aGF0IEkgc2hvdWxkIG9ubHkgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIGl04oCZcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGV2ZW4gd2l0aCBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSwgYW5kIHNpbmNlIHN5emthbGxlciAqZG9lcyogZnV6eiBQQ0kgcHJvYmUvcmVtb3ZlIHVzaW5nIGBzeXpfcGNpX2RldmljZWAsIHRoaXMgY291bGQgYmUgYSBnb29kIGNhbmRpZGF0ZSB0byBmdXp6LgoKU28sIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAgYmVjYXVzZSBzeXprYWxsZXIgY2FuIHJlYWNoIFBDSSBkcml2ZXJzLCBlc3BlY2lhbGx5IHRoZSBwcm9iZS9yZW1vdmUgcGF0aHMuCkkgc2hvdWxkIGFsc28gY2hlY2sgdGhlIEtjb25maWcsIG9mIGNvdXJzZSwgdG8gc2VlIGhvdyBpdCYjMzk7cyBlbmFibGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBEU19DT1JFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzNjAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTG9jYXRpbmcgdGhlIEtjb25maWcgRmlsZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBnZXQgdG8gdGhlIEtjb25maWcuIFdoZXJlIGlzIGl0IGx1cmtpbmcgaW4gdGhpcyBwcm9qZWN0PyBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gc3RhcnQgYnkgbG9va2luZyBpbiB0aGUgY29yZSBkaXJlY3RvcmllcyBvZiB0aGUgbW9kdWxlcyBJJiMzOTttIGZvY3VzaW5nIG9uLiBJdCYjMzk7cyBvZnRlbiBoaWVyYXJjaGljYWxseSBvcmdhbml6ZWQsIHNvIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9yIHRoZSBtb2R1bGUmIzM5O3Mgb3duIGRpcmVjdG9yeSBpcyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludC4gSSBjb3VsZCBhbHNvIHNjYW4gdGhlIG1ha2VmaWxlcyBmb3IgYW55IGluY2x1ZGVzIHRoYXQgbWF5IHBvaW50IG1lIGluIHRoZSByaWdodCBkaXJlY3Rpb24uIEl0JiMzOTtzIGhpZ2hseSB1bmxpa2VseSBpdOKAmXMgaW4gYSBjb21wbGV0ZWx5IHVucmVsYXRlZCBzcG90LCBidXQgbGV0JiMzOTtzIGJlIHRob3JvdWdoIHdpdGggb3VyIHNlYXJjaC4gSSBhbHNvIG5lZWQgdG8gY29uc2lkZXIgd2hhdCBidWlsZCBzeXN0ZW0gdGhpcyBpcyB1c2luZywgdG8gcHJvcGVybHkga25vdyB3aGVyZSB0aGlzIGZpbGUgbWF5IGJlLiBUaGUgd2F5IHRoZSBkZXBlbmRlbmNpZXMgYXJlIHNldCB1cCB3aWxsIGxpa2VseSByZXZlYWwgd2hlcmUgaXQmIzM5O3MgaW5jbHVkZWQsIHdoaWNoIHdpbGwgdWx0aW1hdGVseSBsZWFkIG1lIHRvIGl0cyBsb2NhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUERTX0NPUkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2NT1jb25maWcgQU1EX1hHQkVfSEFWRV9FQ0Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZzoxNjk6Y29uZmlnIFBEU19DT1JFXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzAtXHR0cmlzdGF0ZSBcJiMzNDtBTUQvUGVuc2FuZG8gRGF0YSBTeXN0ZW1zIENvcmUgRGV2aWNlIFN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzE4CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3VzaW5nIG9uIHRoZSBQRFNfQ09SRSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIGBQRFNfQ09SRWAgY29uZmlndXJhdGlvbi4gUmlnaHQsIGxldCYjMzk7cyB6ZXJvIGluIG9uIHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkIHdpdGhpbiB0aGlzIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgY2hhbmdlcyBpbXBhY3QgdGhlIGNvcmUgbG9naWMuIEJhc2VkIG9uIHRoZSBkaWZmLCBteSBpbW1lZGlhdGUgZm9jdXMgaXMgb246CgoqICAgYHBkc2NfcWNxX2ludHJfZnJlZWAKKiAgIGBwZHNjX3FjcV9mcmVlYAoqICAgYHBkc2NfY29yZV91bmluaXRgCiogICBgcGRzY190ZWFyZG93bmAKKiAgIGBwZHNjX3BjaV9yZXNldF90aHJlYWRgCiogICBgcGRzY19yZW1vdmVgCgpUaGVzZSBhcmUgbGlrZWx5IHRoZSBmdW5jdGlvbnMgd2hlcmUgdGhlIGNyaXRpY2FsIGNoYW5nZXMgcmVzaWRlLiBOb3csIGxldCBtZSBxdWlja2x5IGFzY2VydGFpbiB0aGF0IGBQRFNfQ09SRWAgaXMgaW5kZWVkIHRoZSBzb2xlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlJiMzOTtyZSBub3QgaW5hZHZlcnRlbnRseSBtaXNzaW5nIGFueSBvdGhlciBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zIHRoYXQgd291bGQgYWZmZWN0IHRoZXNlIHNhbWUgZnVuY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BEU19DT1JFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc9MTY1PWNvbmZpZyBBTURfWEdCRV9IQVZFX0VDQ1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnOjE2OTpjb25maWcgUERTX0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE3MC1cdHRyaXN0YXRlIFwmIzM0O0FNRC9QZW5zYW5kbyBEYXRhIFN5c3RlbXMgQ29yZSBEZXZpY2UgU3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNzUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgUG90ZW50aWFsIEZ1enppbmcgVGFyZ2V0cyoqCgpPa2F5LCBsZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgcmVhY2hhYmxlIHdpdGhpbiB0aGlzIGBQRFNfQ09SRWAgZHJpdmVyIGFuZCB3aGVyZSB3ZSBzaG91bGQgZm9jdXMgb3VyIGZ1enppbmcgZWZmb3J0cy4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBmdW5jdGlvbiBjYWxsIGhpZXJhcmNoeSB0byBpZGVudGlmeSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLiBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBQQ0kgcmVtb3ZlIHBhdGgsIHN0YXJ0aW5nIHdpdGggYHBkc2NfcmVtb3ZlYC4gSXQmIzM5O3MgdGhlIFBDSSByZW1vdmUgZnVuY3Rpb24sIHNvIGl0JiMzOTtzIGEgY3JpdGljYWwgcG9pbnQgZm9yIGRldmljZSByZW1vdmFsIGFuZCBjbGVhbnVwLgoKTmV4dCwgdGhlcmUmIzM5O3MgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAsIHdoaWNoIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLiBUaGlzIGlzIGludGVyZXN0aW5nLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhpcyBpcyBwcm9iYWJseSBzY2hlZHVsZWQgd2hlbiB0aGUgZGV2aWNlIHJlcXVlc3RzIGEgcmVzZXQgb3IgYSB3YXRjaGRvZyB0aW1lciBmaXJlcy4gSSBuZWVkIHRvIGtlZXAgdGhpcyBpbiBtaW5kIGFzIEkgYnVpbGQgbXkgZnV6emluZyBzdHJhdGVneS4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGl0cyBpbXBsZW1lbnRhdGlvbiBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuY2AgdG8gc2VlIGhvdyBpdCYjMzk7cyB0cmlnZ2VyZWQgYW5kIHdoYXQgaXQgZG9lcy4KCk5vdywgYHBkc2NfdGVhcmRvd25gIGlzIGNhbGxlZCBmcm9tIGBwZHNjX3JlbW92ZWAsIHdoaWNoIG1ha2VzIHNlbnNlIGFzIHBhcnQgb2YgdGhlIFBDSSByZW1vdmFsIHByb2Nlc3MsIGFuZCBpdCBsb29rcyBsaWtlIGBwZHNjX3RlYXJkb3duYCBtaWdodCBiZSBjYWxsZWQgZnJvbSBvdGhlciBwbGFjZXMgYXMgd2VsbCwgc28gaXQgaXMgYSBnb29kIHRhcmdldC4gSW5zaWRlIG9mIGBwZHNjX3RlYXJkb3duYCwgd2UgaGF2ZSBgcGRzY19jb3JlX3VuaW5pdGAuIEFuZCBmaW5hbGx5LCBpbnNpZGUgb2YgYHBkc2NfY29yZV91bmluaXRgLCB3ZSBoYXZlIGBwZHNjX3FjcV9mcmVlYCwgd2hpY2ggaXMgYSBrZXkgcGFydCBvZiB0aGUgcmVzb3VyY2UgY2xlYW51cC4KCkdpdmVuIHRoaXMgY2FsbCBncmFwaCwgSSYjMzk7bSB0aGlua2luZyBgcGRzY19yZW1vdmVgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgYXMgaXQmIzM5O3MgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgUENJIHJlbW92YWwgcHJvY2Vzcy4gVGhpcyBzaG91bGQgc2V0IGEgYFdvcnRoRnV6emluZz10cnVlYCBmbGFnLiBJIGtub3cgdGhpcyBmcm9tIGV4cGVyaWVuY2UsIGFuZCBpdCYjMzk7cyBhIGdvb2QgYXBwcm9hY2guIFRoZSBtb3N0IGltcG9ydGFudCBmdW5jdGlvbnMgdG8gZm9jdXMgb24gYXJlOgoKLSAgIGBwZHNjX3JlbW92ZWAKLSAgIGBwZHNjX3BjaV9yZXNldF90aHJlYWRgCi0gICBgcGRzY190ZWFyZG93bmAKLSAgIGBwZHNjX2NvcmVfdW5pbml0YAotICAgYHBkc2NfcWNxX2ZyZWVgCgpJIGhhdmUgdG8gY2FyZWZ1bGx5IGFuYWx5emUgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAgYmVjYXVzZSBpdOKAmXMgYSB3b3JrcXVldWUsIGJ1dCBJJiMzOTtsbCBmb2N1cyBvbiB0aGUgUENJIHJlbW92YWwgcGF0aCBmb3Igbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwZHNjX3BjaV9yZXNldF90aHJlYWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NTcxPXZvaWQgcGRzY19md191cChzdHJ1Y3QgcGRzYyAqcGRzYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTYwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NjEwOnZvaWQgcGRzY19wY2lfcmVzZXRfdGhyZWFkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjExLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTMyMj12b2lkIHBkc2NfZndfdXAoc3RydWN0IHBkc2MgKnBkc2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDozMjM6dm9pZCBwZHNjX3BjaV9yZXNldF90aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMzI0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MjE4PXN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjQxLVx0SU5JVF9XT1JLKFx1MDAyNnBkc2MtXHUwMDNlaGVhbHRoX3dvcmssIHBkc2NfaGVhbHRoX3RocmVhZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjI0MjpcdElOSVRfV09SSyhcdTAwMjZwZHNjLVx1MDAzZXBjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yNDMtXHR0aW1lcl9zZXR1cChcdTAwMjZwZHNjLVx1MDAzZXdkdGltZXIsIHBkc2Nfd2R0aW1lcl9jYiwgMCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzOTIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQQ0kgUmVzZXQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGNvbmZpcm1pbmcgdGhhdCBgcGRzY19wY2lfcmVzZXRfdGhyZWFkYCAqaXMqIGluZGVlZCB0aGUgd29yayBmdW5jdGlvbiBhc3NvY2lhdGVkIHdpdGggYHBjaV9yZXNldF93b3JrYC4gVGhhdCYjMzk7cyBhIGtleSBmaXJzdCBzdGVwLiBUaGUgZGVzY3JpcHRpb24gaGl0cyB0aGUgbmFpbCBvbiB0aGUgaGVhZDogaXQmIzM5O3MgdGFyZ2V0aW5nIHRlYXJkb3duIGFuZCByZXNldCBsb2dpYy4gQW5kIGtub3dpbmcgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIsIHRoYXQmIzM5O3MgcHJlY2lzZWx5IHRoZSBraW5kIG9mIHRoaW5nIGl0IGV4Y2VscyBhdCB1bmNvdmVyaW5nIOKAkyB0aGUgcHJvYmUsIHJlbW92ZSwgcmVzZXQgY3ljbGUgaXMgaXRzIGJyZWFkIGFuZCBidXR0ZXIuIEkmIzM5O2xsIGRlZmluaXRlbHkgbGlzdCBgUERTX0NPUkVgIGFzIHRoZSByZWxldmFudCBjb25maWcgZm9yIHRoaXMuCgpOb3csIHRvIGRpZyBkZWVwZXIsIEkgbmVlZCB0byBmb2N1cyBvbiBhIGZldyBrZXkgc3ltYm9scyBoZXJlOiBgcGRzY19yZW1vdmVgLCBgcGRzY19wY2lfcmVzZXRfdGhyZWFkYCAob2J2aW91c2x5KSwgYHBkc2NfdGVhcmRvd25gLCBgcGRzY19jb3JlX3VuaW5pdGAsIGFuZCBgcGRzY19xY3FfZnJlZWAuIFRoZXNlIGFyZSBnb2luZyB0byBiZSB0aGUgY3JpdGljYWwgcGllY2VzIGluIHVuZGVyc3RhbmRpbmcgdGhlIGZpeCYjMzk7cyBpbXBhY3QgYW5kIGVuc3VyaW5nIGl0cyBjb21wbGV0ZW5lc3MuCgpPbmUgZmluYWwsIGNydWNpYWwgc3RlcDogSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiBgUERTX0NPUkVgIGhhcyBhbnkgZGVwZW5kZW5jaWVzIHRoYXQgYXJlICphbHNvKiByZWxldmFudCBhbmQgc2hvdWxkIGJlIGVuYWJsZWQgdG8gZnVsbHkgdGVzdCB0aGlzIGZ1bmN0aW9uYWxpdHkuIEkgY2FuJiMzOTt0IG92ZXJsb29rIGFueSBwb3RlbnRpYWwgaW50ZXJhY3Rpb25zIG9yIGltcGxpY2l0IHJlcXVpcmVtZW50cy4gVGltZSB0byBnZXQgaW50byB0aG9zZSBLY29uZmlnIGZpbGVzLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBQRFNfQ09SRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2NT1jb25maWcgQU1EX1hHQkVfSEFWRV9FQ0Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZzoxNjk6Y29uZmlnIFBEU19DT1JFXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzAtXHR0cmlzdGF0ZSBcJiMzNDtBTUQvUGVuc2FuZG8gRGF0YSBTeXN0ZW1zIENvcmUgRGV2aWNlIFN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDQ6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjk3MQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIEZpbGUqKgoKT2theSwgc28gdGhlIGluaXRpYWwgZm9jdXMgaXMgdGhlIEtjb25maWcgZmlsZSwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDE2OS4gVGhpcyBsaWtlbHkgaG9sZHMgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb3IgZGVwZW5kZW5jaWVzIHJlbGF0ZWQgdG8gdGhlIGlzc3VlIEkmIzM5O20gdHJvdWJsZXNob290aW5nLiBNeSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIHJlbGV2YW50IGZ1bmN0aW9uYWxpdHksIGZlYXR1cmUsIG9yIG1vZHVsZSBoYXMgaXRzIGNvbmZpZ3VyYXRpb24gZGVmaW5lZCB3aXRoaW4gdGhpcyBzZWN0aW9uLiBUaGVyZWZvcmUsIEkgbmVlZCB0byBkZWx2ZSBpbnRvIHRoZSBzeW50YXggb2YgdGhlIEtjb25maWcgZW50cmllcyB0aGVyZS4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3Iga2V5d29yZHMgbGlrZSBgY29uZmlnYCwgYGJvb2xgLCBgdHJpc3RhdGVgLCBgc2VsZWN0YCwgYGRlcGVuZHMgb25gLCBgZGVmYXVsdGAsIGBoZWxwYCwgYW5kIGFueSBhc3NvY2lhdGVkIHN5bWJvbHMgb3IgcmVsYXRpb25zaGlwcy4gSSBhbnRpY2lwYXRlIHVuZGVyc3RhbmRpbmcgdGhpcyB3aWxsIGNsYXJpZnkgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQgSSYjMzk7bSBsb29raW5nIGludG8uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE2NTpcdGNvbmZpZyBBTURfWEdCRV9IQVZFX0VDQ1xuIDE2NjpcdFx0Ym9vbFxuIDE2NzpcdFx0ZGVmYXVsdCBuXG4gMTY4Olx0XG4gMTY5Olx0Y29uZmlnIFBEU19DT1JFXG4gMTcwOlx0XHR0cmlzdGF0ZSBcJiMzNDtBTUQvUGVuc2FuZG8gRGF0YSBTeXN0ZW1zIENvcmUgRGV2aWNlIFN1cHBvcnRcJiMzNDtcbiAxNzE6XHRcdGRlcGVuZHMgb24gNjRCSVQgXHUwMDI2XHUwMDI2IFBDSVxuIDE3MjpcdFx0c2VsZWN0IEFVWElMSUFSWV9CVVNcbiAxNzM6XHRcdHNlbGVjdCBORVRfREVWTElOS1xuIDE3NDpcdFx0aGVscFxuIDE3NTpcdFx0ICBUaGlzIGVuYWJsZXMgdGhlIHN1cHBvcnQgZm9yIHRoZSBBTUQvUGVuc2FuZG8gQ29yZSBkZXZpY2UgZmFtaWx5IG9mXG4gMTc2Olx0XHQgIGFkYXB0ZXJzLiAgTW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBvbiB0aGlzIGRyaXZlciBjYW4gYmVcbiAxNzc6XHRcdCAgZm91bmQgaW5cbiAxNzg6XHRcdCAgXHUwMDNjZmlsZTpEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvYW1kL3Bkc19jb3JlLnJzdFx1MDAzZS5cbiAxNzk6XHRcbiAxODA6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4gVGhlIG1vZHVsZVxuIDE4MTpcdFx0ICB3aWxsIGJlIGNhbGxlZCBwZHNfY29yZS5cbiAxODI6XHRcbiAxODM6XHRlbmRpZiAjIE5FVF9WRU5ET1JfQU1EXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc0NjgKCQkJCQkJCW91dHB1dDogMTM2CgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUuIE15IGN1cnJlbnQgdGhvdWdodCBwcm9jZXNzIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuCgoqKkFuYWx5emluZyB0aGUgRGVwZW5kZW5jeSBSZXF1aXJlbWVudHMqKgoKUmlnaHQsIHNvIHRoZSBzeXN0ZW0gcmVsaWVzIG9uIHRoZSBzdGFuZGFyZCBgNjRCSVRgIGFyY2hpdGVjdHVyZSBhbmQgYFBDSWAgaW50ZXJmYWNlLiBUaGF0JiMzOTtzIGdvb2Q7IG5vdGhpbmcgdW5leHBlY3RlZCB0aGVyZS4gR2l2ZW4gdGhvc2Ugc3RhbmRhcmQgZGVwZW5kZW5jaWVzLCBJIGNhbiBjb25maWRlbnRseSBjb25jbHVkZSB0aGF0IHRoZSBgUERTX0NPUkVgIG1vZHVsZSBpcyBzdWZmaWNpZW50IHRvIGhhbmRsZSB0aGUgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eS4gSXQgbG9va3MgbGlrZSB3ZSBjYW4gbW92ZSBmb3J3YXJkIHdpdGhvdXQgYW55IGNvbmNlcm5zIGFib3V0IHRoZXNlIGJhc2UgZGVwZW5kZW5jaWVzLgoKTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgdG8gY29uc2lkZXIgd2lsbCBiZSBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UERTX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwZHNjX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtwZHNjX3BjaV9yZXNldF90aHJlYWQmIzM0OywKICAgICYjMzQ7cGRzY190ZWFyZG93biYjMzQ7LAogICAgJiMzNDtwZHNjX2NvcmVfdW5pbml0JiMzNDssCiAgICAmIzM0O3Bkc2NfcWNxX2ZyZWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRlYXJkb3duLCB1bmluaXRpYWxpemF0aW9uLCBhbmQgUENJIHJlc2V0IGxvZ2ljIG9mIHRoZSBBTUQgUERTIGNvcmUgZHJpdmVyLiBUaGVzZSBwYXRocyBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UERTX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwZHNjX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtwZHNjX3BjaV9yZXNldF90aHJlYWQmIzM0OywKICAgICYjMzQ7cGRzY190ZWFyZG93biYjMzQ7LAogICAgJiMzNDtwZHNjX2NvcmVfdW5pbml0JiMzNDssCiAgICAmIzM0O3Bkc2NfcWNxX2ZyZWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRlYXJkb3duLCB1bmluaXRpYWxpemF0aW9uLCBhbmQgUENJIHJlc2V0IGxvZ2ljIG9mIHRoZSBBTUQgUERTIGNvcmUgZHJpdmVyLiBUaGVzZSBwYXRocyBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQzOjU4LjY4NDE0ODc4N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2ODM1NzUwMzEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBEU19DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGRzY19yZW1vdmVcIixcbiAgICBcInBkc2NfcGNpX3Jlc2V0X3RocmVhZFwiLFxuICAgIFwicGRzY190ZWFyZG93blwiLFxuICAgIFwicGRzY19jb3JlX3VuaW5pdFwiLFxuICAgIFwicGRzY19xY3FfZnJlZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0ZWFyZG93biwgdW5pbml0aWFsaXphdGlvbiwgYW5kIFBDSSByZXNldCBsb2dpYyBvZiB0aGUgQU1EIFBEUyBjb3JlIGRyaXZlci4gVGhlc2UgcGF0aHMgY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXIncyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDM6NTguNjg0MTU0NzM3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjgyNzA0MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5Y2JjNzBkMGExODIzM2I0NjhjZTQ5MzRiNzRlZDZiZDNmNDE5MTg0XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDE1IDA0OjQzOjU3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jXFxuaW5kZXggMzhhMjQ0NjU3MWFmYWIuLmUzOWIyYzliZWIyMDkzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jXFxuQEAgLTExMCw3ICsxMTAsNiBAQCBzdGF0aWMgdm9pZCBwZHNjX3FjcV9pbnRyX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbiBcXHRwZHNjX2ludHJfZnJlZShwZHNjLCBxY3EtXFx1MDAzZWludHgpO1xcbi1cXHRxY3EtXFx1MDAzZWludHggPSBQRFNfQ09SRV9JTlRSX0lOREVYX05PVF9BU1NJR05FRDtcXG4gfVxcbiBcXG4gc3RhdGljIGludCBwZHNjX3FjcV9pbnRyX2FsbG9jKHN0cnVjdCBwZHNjICpwZHNjLCBzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcXG5AQCAtMTQ1LDYgKzE0NCwxMiBAQCB2b2lkIHBkc2NfcWNxX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxcbiBcXG4gXFx0cGRzY19xY3FfaW50cl9mcmVlKHBkc2MsIHFjcSk7XFxuIFxcbitcXHQvKiBEcmFpbiBhbnkgd29yayBxdWV1ZWQgYnkgSVNSIGJlZm9yZSBpdCB3YXMgZnJlZWQgYWJvdmUgKi9cXG4rXFx0aWYgKHFjcS1cXHUwMDNld29yay5mdW5jKVxcbitcXHRcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZxY3EtXFx1MDAzZXdvcmspO1xcbitcXG4rXFx0cWNxLVxcdTAwM2VpbnR4ID0gUERTX0NPUkVfSU5UUl9JTkRFWF9OT1RfQVNTSUdORUQ7XFxuK1xcbiBcXHRpZiAocWNxLVxcdTAwM2VxX2Jhc2UpXFxuIFxcdFxcdGRtYV9mcmVlX2NvaGVyZW50KGRldiwgcWNxLVxcdTAwM2VxX3NpemUsXFxuIFxcdFxcdFxcdFxcdCAgcWNxLVxcdTAwM2VxX2Jhc2UsIHFjcS1cXHUwMDNlcV9iYXNlX3BhKTtcXG5AQCAtMzA0LDggKzMwOSwxMSBAQCBpbnQgcGRzY19xY3FfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHVuc2lnbmVkIGludCB0eXBlLCB1bnNpZ25lZCBpbnQgaW5kZXgsXFxuIFxcbiBzdGF0aWMgdm9pZCBwZHNjX2NvcmVfdW5pbml0KHN0cnVjdCBwZHNjICpwZHNjKVxcbiB7XFxuLVxcdHBkc2NfcWNxX2ZyZWUocGRzYywgXFx1MDAyNnBkc2MtXFx1MDAzZW5vdGlmeXFjcSk7XFxuK1xcdC8qIEZyZWUgYWRtaW5xY3EgZmlyc3Q6IGl0cyB3b3JrIGFjY2Vzc2VzIG5vdGlmeXFjcSwgc28gd2UgbXVzdFxcbitcXHQgKiBkaXNhYmxlIGl0cyBJUlEgYW5kIGRyYWluIGl0cyB3b3JrIGJlZm9yZSBmcmVlaW5nIG5vdGlmeXFjcS5cXG4rXFx0ICovXFxuIFxcdHBkc2NfcWNxX2ZyZWUocGRzYywgXFx1MDAyNnBkc2MtXFx1MDAzZWFkbWlucWNxKTtcXG4rXFx0cGRzY19xY3FfZnJlZShwZHNjLCBcXHUwMDI2cGRzYy1cXHUwMDNlbm90aWZ5cWNxKTtcXG4gXFxuIFxcdGlmIChwZHNjLVxcdTAwM2VrZXJuX2RicGFnZSkge1xcbiBcXHRcXHRpb3VubWFwKHBkc2MtXFx1MDAzZWtlcm5fZGJwYWdlKTtcXG5AQCAtNDc5LDggKzQ4Nyw2IEBAIHZvaWQgcGRzY190ZWFyZG93bihzdHJ1Y3QgcGRzYyAqcGRzYywgYm9vbCByZW1vdmluZylcXG4ge1xcbiBcXHRpZiAoIXBkc2MtXFx1MDAzZXBkZXYtXFx1MDAzZWlzX3ZpcnRmbilcXG4gXFx0XFx0cGRzY19kZXZjbWRfcmVzZXQocGRzYyk7XFxuLVxcdGlmIChwZHNjLVxcdTAwM2VhZG1pbnFjcS53b3JrLmZ1bmMpXFxuLVxcdFxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNnBkc2MtXFx1MDAzZWFkbWlucWNxLndvcmspO1xcbiBcXG4gXFx0cGNpX2NsZWFyX21hc3RlcihwZHNjLVxcdTAwM2VwZGV2KTtcXG4gXFxuQEAgLTYwNiw5ICs2MTIsMTAgQEAgdm9pZCBwZHNjX3BjaV9yZXNldF90aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcGRzYywgcGNpX3Jlc2V0X3dvcmspO1xcbiBcXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHBkc2MtXFx1MDAzZXBkZXY7XFxuIFxcbi1cXHRwY2lfZGV2X2dldChwZGV2KTtcXG4tXFx0cGNpX3Jlc2V0X2Z1bmN0aW9uKHBkZXYpO1xcbi1cXHRwY2lfZGV2X3B1dChwZGV2KTtcXG4rXFx0LyogVXNlIHRyeSB2YXJpYW50IHRvIGF2b2lkIGRlYWRsb2NrIHdpdGggcGRzY19yZW1vdmUoKS5cXG4rXFx0ICogSWYgbG9jayBpcyBjb250ZW5kZWQsIHRoZSB3YXRjaGRvZyB0aW1lciB3aWxsIHJldHJ5LlxcbitcXHQgKi9cXG4rXFx0cGNpX3RyeV9yZXNldF9mdW5jdGlvbihwZGV2KTtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgcGRzY19jaGVja19wY2lfaGVhbHRoKHN0cnVjdCBwZHNjICpwZHNjKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xcbmluZGV4IDIyZGI3ODM0M2ViMDc1Li42MzhiOWM3YTUwOWQ5ZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xcbkBAIC00MzUsOCArNDM1LDYgQEAgc3RhdGljIHZvaWQgcGRzY19yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIFxcdFxcdHBkc2NfYXV4YnVzX2Rldl9kZWwocGRzYywgcGRzYywgXFx1MDAyNnBkc2MtXFx1MDAzZXBhZGV2KTtcXG4gXFxuIFxcdFxcdHRpbWVyX3NodXRkb3duX3N5bmMoXFx1MDAyNnBkc2MtXFx1MDAzZXdkdGltZXIpO1xcbi1cXHRcXHRpZiAocGRzYy1cXHUwMDNld3EpXFxuLVxcdFxcdFxcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXFx1MDAzZXdxKTtcXG4gXFxuIFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnBkc2MtXFx1MDAzZWNvbmZpZ19sb2NrKTtcXG4gXFx0XFx0c2V0X2JpdChQRFNDX1NfU1RPUFBJTkdfRFJJVkVSLCBcXHUwMDI2cGRzYy1cXHUwMDNlc3RhdGUpO1xcbkBAIC00NDQsNiArNDQyLDkgQEAgc3RhdGljIHZvaWQgcGRzY19yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIFxcdFxcdHBkc2Nfc3RvcChwZHNjKTtcXG4gXFx0XFx0cGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTtcXG4gXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwZHNjLVxcdTAwM2Vjb25maWdfbG9jayk7XFxuK1xcbitcXHRcXHRpZiAocGRzYy1cXHUwMDNld3EpXFxuK1xcdFxcdFxcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXFx1MDAzZXdxKTtcXG4gXFx0XFx0bXV0ZXhfZGVzdHJveShcXHUwMDI2cGRzYy1cXHUwMDNlY29uZmlnX2xvY2spO1xcbiBcXHRcXHRtdXRleF9kZXN0cm95KFxcdTAwMjZwZHNjLVxcdTAwM2VkZXZjbWRfbG9jayk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNDo0Mzo1OS4zNTMxNjYxOTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MTY2NzI0ODU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBEU19DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGRzY19yZW1vdmVcIixcbiAgICBcInBkc2NfcGNpX3Jlc2V0X3RocmVhZFwiLFxuICAgIFwicGRzY190ZWFyZG93blwiLFxuICAgIFwicGRzY19jb3JlX3VuaW5pdFwiLFxuICAgIFwicGRzY19xY3FfZnJlZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0ZWFyZG93biwgdW5pbml0aWFsaXphdGlvbiwgYW5kIFBDSSByZXNldCBsb2dpYyBvZiB0aGUgQU1EIFBEUyBjb3JlIGRyaXZlci4gVGhlc2UgcGF0aHMgY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXIncyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5Y2JjNzBkMGExODIzM2I0NjhjZTQ5MzRiNzRlZDZiZDNmNDE5MTg0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMDQ6NDM6NTcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuY1xuaW5kZXggMzhhMjQ0NjU3MWFmYWIuLmUzOWIyYzliZWIyMDkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuY1xuQEAgLTExMCw3ICsxMTAsNiBAQCBzdGF0aWMgdm9pZCBwZHNjX3FjcV9pbnRyX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRwZHNjX2ludHJfZnJlZShwZHNjLCBxY3EtXHUwMDNlaW50eCk7XG4tXHRxY3EtXHUwMDNlaW50eCA9IFBEU19DT1JFX0lOVFJfSU5ERVhfTk9UX0FTU0lHTkVEO1xuIH1cbiBcbiBzdGF0aWMgaW50IHBkc2NfcWNxX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxuQEAgLTE0NSw2ICsxNDQsMTIgQEAgdm9pZCBwZHNjX3FjcV9mcmVlKHN0cnVjdCBwZHNjICpwZHNjLCBzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcbiBcbiBcdHBkc2NfcWNxX2ludHJfZnJlZShwZHNjLCBxY3EpO1xuIFxuK1x0LyogRHJhaW4gYW55IHdvcmsgcXVldWVkIGJ5IElTUiBiZWZvcmUgaXQgd2FzIGZyZWVkIGFib3ZlICovXG4rXHRpZiAocWNxLVx1MDAzZXdvcmsuZnVuYylcbitcdFx0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZxY3EtXHUwMDNld29yayk7XG4rXG4rXHRxY3EtXHUwMDNlaW50eCA9IFBEU19DT1JFX0lOVFJfSU5ERVhfTk9UX0FTU0lHTkVEO1xuK1xuIFx0aWYgKHFjcS1cdTAwM2VxX2Jhc2UpXG4gXHRcdGRtYV9mcmVlX2NvaGVyZW50KGRldiwgcWNxLVx1MDAzZXFfc2l6ZSxcbiBcdFx0XHRcdCAgcWNxLVx1MDAzZXFfYmFzZSwgcWNxLVx1MDAzZXFfYmFzZV9wYSk7XG5AQCAtMzA0LDggKzMwOSwxMSBAQCBpbnQgcGRzY19xY3FfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHVuc2lnbmVkIGludCB0eXBlLCB1bnNpZ25lZCBpbnQgaW5kZXgsXG4gXG4gc3RhdGljIHZvaWQgcGRzY19jb3JlX3VuaW5pdChzdHJ1Y3QgcGRzYyAqcGRzYylcbiB7XG4tXHRwZHNjX3FjcV9mcmVlKHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlbm90aWZ5cWNxKTtcbitcdC8qIEZyZWUgYWRtaW5xY3EgZmlyc3Q6IGl0cyB3b3JrIGFjY2Vzc2VzIG5vdGlmeXFjcSwgc28gd2UgbXVzdFxuK1x0ICogZGlzYWJsZSBpdHMgSVJRIGFuZCBkcmFpbiBpdHMgd29yayBiZWZvcmUgZnJlZWluZyBub3RpZnlxY3EuXG4rXHQgKi9cbiBcdHBkc2NfcWNxX2ZyZWUocGRzYywgXHUwMDI2cGRzYy1cdTAwM2VhZG1pbnFjcSk7XG4rXHRwZHNjX3FjcV9mcmVlKHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlbm90aWZ5cWNxKTtcbiBcbiBcdGlmIChwZHNjLVx1MDAzZWtlcm5fZGJwYWdlKSB7XG4gXHRcdGlvdW5tYXAocGRzYy1cdTAwM2VrZXJuX2RicGFnZSk7XG5AQCAtNDc5LDggKzQ4Nyw2IEBAIHZvaWQgcGRzY190ZWFyZG93bihzdHJ1Y3QgcGRzYyAqcGRzYywgYm9vbCByZW1vdmluZylcbiB7XG4gXHRpZiAoIXBkc2MtXHUwMDNlcGRldi1cdTAwM2Vpc192aXJ0Zm4pXG4gXHRcdHBkc2NfZGV2Y21kX3Jlc2V0KHBkc2MpO1xuLVx0aWYgKHBkc2MtXHUwMDNlYWRtaW5xY3Eud29yay5mdW5jKVxuLVx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnBkc2MtXHUwMDNlYWRtaW5xY3Eud29yayk7XG4gXG4gXHRwY2lfY2xlYXJfbWFzdGVyKHBkc2MtXHUwMDNlcGRldik7XG4gXG5AQCAtNjA2LDkgKzYxMiwxMCBAQCB2b2lkIHBkc2NfcGNpX3Jlc2V0X3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcGRzYywgcGNpX3Jlc2V0X3dvcmspO1xuIFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSBwZHNjLVx1MDAzZXBkZXY7XG4gXG4tXHRwY2lfZGV2X2dldChwZGV2KTtcbi1cdHBjaV9yZXNldF9mdW5jdGlvbihwZGV2KTtcbi1cdHBjaV9kZXZfcHV0KHBkZXYpO1xuK1x0LyogVXNlIHRyeSB2YXJpYW50IHRvIGF2b2lkIGRlYWRsb2NrIHdpdGggcGRzY19yZW1vdmUoKS5cbitcdCAqIElmIGxvY2sgaXMgY29udGVuZGVkLCB0aGUgd2F0Y2hkb2cgdGltZXIgd2lsbCByZXRyeS5cbitcdCAqL1xuK1x0cGNpX3RyeV9yZXNldF9mdW5jdGlvbihwZGV2KTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgcGRzY19jaGVja19wY2lfaGVhbHRoKHN0cnVjdCBwZHNjICpwZHNjKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG5pbmRleCAyMmRiNzgzNDNlYjA3NS4uNjM4YjljN2E1MDlkOWQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG5AQCAtNDM1LDggKzQzNSw2IEBAIHN0YXRpYyB2b2lkIHBkc2NfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0XHRwZHNjX2F1eGJ1c19kZXZfZGVsKHBkc2MsIHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlcGFkZXYpO1xuIFxuIFx0XHR0aW1lcl9zaHV0ZG93bl9zeW5jKFx1MDAyNnBkc2MtXHUwMDNld2R0aW1lcik7XG4tXHRcdGlmIChwZHNjLVx1MDAzZXdxKVxuLVx0XHRcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXHUwMDNld3EpO1xuIFxuIFx0XHRtdXRleF9sb2NrKFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuIFx0XHRzZXRfYml0KFBEU0NfU19TVE9QUElOR19EUklWRVIsIFx1MDAyNnBkc2MtXHUwMDNlc3RhdGUpO1xuQEAgLTQ0NCw2ICs0NDIsOSBAQCBzdGF0aWMgdm9pZCBwZHNjX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiBcdFx0cGRzY19zdG9wKHBkc2MpO1xuIFx0XHRwZHNjX3RlYXJkb3duKHBkc2MsIFBEU0NfVEVBUkRPV05fUkVNT1ZJTkcpO1xuIFx0XHRtdXRleF91bmxvY2soXHUwMDI2cGRzYy1cdTAwM2Vjb25maWdfbG9jayk7XG4rXG4rXHRcdGlmIChwZHNjLVx1MDAzZXdxKVxuK1x0XHRcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXHUwMDNld3EpO1xuIFx0XHRtdXRleF9kZXN0cm95KFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuIFx0XHRtdXRleF9kZXN0cm95KFx1MDAyNnBkc2MtXHUwMDNlZGV2Y21kX2xvY2spO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDM6NTkuMzUzMTY4ODUzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE0ODE3MTE5OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQXNzZXNzaW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhbiBBTUQgUERTIENvcmUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRvdWNoZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNgIGFuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY2AuIFNwZWNpZmljYWxseSwgaXQgbW9kaWZpZXMgYSBmZXcgZnVuY3Rpb25zIHJlbGF0ZWQgdG8gdGhlIEFNRCBQRFMgY29yZSBkcml2ZXIuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIHJlY29nbml6ZSB0aGlzIGFzIGEgaGFyZHdhcmUgZHJpdmVyIOKAkyBBTUQgUGVuc2FuZG8gRGlzdHJpYnV0ZWQgU2VydmljZXMgQ2FyZCwgdG8gYmUgZXhhY3QuIFRoZSBmdW5jdGlvbnMgYmVpbmcgY2hhbmdlZCAoYHBkc2NfcWNxX2ludHJfZnJlZWAsIGBwZHNjX3FjcV9mcmVlYCwgZXRjLikgZGVhbCB3aXRoIGNsZWFudXAgYW5kIHJlc2V0IHByb2NlZHVyZXMuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGZ1enppbmcgYSBQQ0kgaGFyZHdhcmUgZHJpdmVyIGlzIHR5cGljYWxseSB0cmlja3kgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gTm9ybWFsbHksIHlvdSdkIG5lZWQgc3BlY2lmaWMgaGFyZHdhcmUgZW11bGF0aW9uLCB3aGljaCBzeXprYWxsZXIsIGFsdGhvdWdoIHBvd2VyZnVsLCBkb2Vzbid0IGFsd2F5cyBoYXZlIGZvciBldmVyeSBoYXJkd2FyZSBkZXZpY2UuIE15IHVuZGVyc3RhbmRpbmcgaXMgc3l6a2FsbGVyJ3MgUENJIGVtdWxhdGlvbiBpcyBmYWlybHkgZ2VuZXJpYy4gSG93ZXZlciwgd2FpdCBhIG1pbnV0ZSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGBzeXpfcGNpX2RldmljZWAgd2hpY2ggaXMgdXNlZCBmb3IgUENJIGRldmljZSBlbXVsYXRpb24uIEl0IGNhbiB0cmlnZ2VyIGBwcm9iZWAgYW5kIGByZW1vdmVgIGNhbGxzLlxuXG5UaGlzIHBhdGNoLCBzcGVjaWZpY2FsbHksIGlzIGZpeGluZyB0ZWFyZG93bi9yZXNldCBsb2dpYy4gSXQgbG9va3MgbGlrZSBpdCdzIGFkZHJlc3Npbmcgd29yayBxdWV1ZSBkcmFpbmluZywgb3JkZXIgb2Ygb3BlcmF0aW9ucyBkdXJpbmcgdW5pbml0aWFsaXphdGlvbiwgd29yayBjYW5jZWxsYXRpb25zLCBhbmQgdGhlIHVzZSBvZiBgcGNpX3RyeV9yZXNldF9mdW5jdGlvbmAuIElmIHRoaXMgcGF0Y2ggZml4ZXMgbG9naWMgaW4gcmVtb3ZhbCBvciByZXNldCwgdGhlbiBzeXprYWxsZXIncyBQQ0kgZnV6emVyICptaWdodCogYmUgYWJsZSB0byBoaXQgdGhvc2UgY29kZSBwYXRocywgYW5kIGlzIHdvcnRoIGxvb2tpbmcgYXQuXG5cbkV2ZW4gdGhvdWdoIGl0J3MgaGFyZHdhcmUtc3BlY2lmaWMsIHN5emthbGxlcuKAmXMgUENJIGZ1enppbmcgaGFzIHRoZSBwb3RlbnRpYWwgdG8gdHJpZ2dlciBgcHJvYmVgIGFuZCBgcmVtb3ZlYCBwYXRocy4gVGh1cywgKmJlY2F1c2UqIHRoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIGByZW1vdmVgIGFuZCBgcmVzZXRgIHJlbGF0ZWQgZnVuY3Rpb25zLCB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgaXQgY291bGQgdHJpZ2dlciBidWdzIGluIHRoZSBwYXRocy4gR2l2ZW4gdGhlIHByb21wdCBzdGF0ZXMgdGhhdCBJIHNob3VsZCBvbmx5IHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiBpdOKAmXMgaW1wb3NzaWJsZSB0byByZWFjaCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUsIGFuZCBzaW5jZSBzeXprYWxsZXIgKmRvZXMqIGZ1enogUENJIHByb2JlL3JlbW92ZSB1c2luZyBgc3l6X3BjaV9kZXZpY2VgLCB0aGlzIGNvdWxkIGJlIGEgZ29vZCBjYW5kaWRhdGUgdG8gZnV6ei5cblxuU28sIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz10cnVlYCBiZWNhdXNlIHN5emthbGxlciBjYW4gcmVhY2ggUENJIGRyaXZlcnMsIGVzcGVjaWFsbHkgdGhlIHByb2JlL3JlbW92ZSBwYXRocy5cbkkgc2hvdWxkIGFsc28gY2hlY2sgdGhlIEtjb25maWcsIG9mIGNvdXJzZSwgdG8gc2VlIGhvdyBpdCdzIGVuYWJsZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NjQsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MjQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNDo0NDoxMC44MzQ4ODM5MTRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc1Njg2NjEwLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUERTX0NPUkVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjExLjMxMDU3ODYzNFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MzEwMjY1NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTG9jYXRpbmcgdGhlIEtjb25maWcgRmlsZSoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gZ2V0IHRvIHRoZSBLY29uZmlnLiBXaGVyZSBpcyBpdCBsdXJraW5nIGluIHRoaXMgcHJvamVjdD8gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIHN0YXJ0IGJ5IGxvb2tpbmcgaW4gdGhlIGNvcmUgZGlyZWN0b3JpZXMgb2YgdGhlIG1vZHVsZXMgSSdtIGZvY3VzaW5nIG9uLiBJdCdzIG9mdGVuIGhpZXJhcmNoaWNhbGx5IG9yZ2FuaXplZCwgc28gdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb3IgdGhlIG1vZHVsZSdzIG93biBkaXJlY3RvcnkgaXMgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQuIEkgY291bGQgYWxzbyBzY2FuIHRoZSBtYWtlZmlsZXMgZm9yIGFueSBpbmNsdWRlcyB0aGF0IG1heSBwb2ludCBtZSBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uLiBJdCdzIGhpZ2hseSB1bmxpa2VseSBpdOKAmXMgaW4gYSBjb21wbGV0ZWx5IHVucmVsYXRlZCBzcG90LCBidXQgbGV0J3MgYmUgdGhvcm91Z2ggd2l0aCBvdXIgc2VhcmNoLiBJIGFsc28gbmVlZCB0byBjb25zaWRlciB3aGF0IGJ1aWxkIHN5c3RlbSB0aGlzIGlzIHVzaW5nLCB0byBwcm9wZXJseSBrbm93IHdoZXJlIHRoaXMgZmlsZSBtYXkgYmUuIFRoZSB3YXkgdGhlIGRlcGVuZGVuY2llcyBhcmUgc2V0IHVwIHdpbGwgbGlrZWx5IHJldmVhbCB3aGVyZSBpdCdzIGluY2x1ZGVkLCB3aGljaCB3aWxsIHVsdGltYXRlbHkgbGVhZCBtZSB0byBpdHMgbG9jYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzNjAsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjE0LjI0MTYwNzM4M1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTUzMjE0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUERTX0NPUkVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZz0xNjU9Y29uZmlnIEFNRF9YR0JFX0hBVkVfRUNDXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc6MTY5OmNvbmZpZyBQRFNfQ09SRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE3MC1cXHR0cmlzdGF0ZSBcXFwiQU1EL1BlbnNhbmRvIERhdGEgU3lzdGVtcyBDb3JlIERldmljZSBTdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNDo0NDoxNC4zMDcxNDYyOTFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODUzOTUxNzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZvY3VzaW5nIG9uIHRoZSBQRFNfQ09SRSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gd2UncmUgZGVhbGluZyB3aXRoIHRoZSBgUERTX0NPUkVgIGNvbmZpZ3VyYXRpb24uIFJpZ2h0LCBsZXQncyB6ZXJvIGluIG9uIHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkIHdpdGhpbiB0aGlzIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgY2hhbmdlcyBpbXBhY3QgdGhlIGNvcmUgbG9naWMuIEJhc2VkIG9uIHRoZSBkaWZmLCBteSBpbW1lZGlhdGUgZm9jdXMgaXMgb246XG5cbiogICBgcGRzY19xY3FfaW50cl9mcmVlYFxuKiAgIGBwZHNjX3FjcV9mcmVlYFxuKiAgIGBwZHNjX2NvcmVfdW5pbml0YFxuKiAgIGBwZHNjX3RlYXJkb3duYFxuKiAgIGBwZHNjX3BjaV9yZXNldF90aHJlYWRgXG4qICAgYHBkc2NfcmVtb3ZlYFxuXG5UaGVzZSBhcmUgbGlrZWx5IHRoZSBmdW5jdGlvbnMgd2hlcmUgdGhlIGNyaXRpY2FsIGNoYW5nZXMgcmVzaWRlLiBOb3csIGxldCBtZSBxdWlja2x5IGFzY2VydGFpbiB0aGF0IGBQRFNfQ09SRWAgaXMgaW5kZWVkIHRoZSBzb2xlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlJ3JlIG5vdCBpbmFkdmVydGVudGx5IG1pc3NpbmcgYW55IG90aGVyIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbnMgdGhhdCB3b3VsZCBhZmZlY3QgdGhlc2Ugc2FtZSBmdW5jdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3MTgsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDQ6MTguMTYxMTAwMzMxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxOTk2NzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlBEU19DT1JFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2NT1jb25maWcgQU1EX1hHQkVfSEFWRV9FQ0NcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZzoxNjk6Y29uZmlnIFBEU19DT1JFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWctMTcwLVxcdHRyaXN0YXRlIFxcXCJBTUQvUGVuc2FuZG8gRGF0YSBTeXN0ZW1zIENvcmUgRGV2aWNlIFN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjE4LjIyMzEwMjQ0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg4ODQ2MjMxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKipcblxuT2theSwgbGV0J3Mgc2VlIHdoYXQncyByZWFjaGFibGUgd2l0aGluIHRoaXMgYFBEU19DT1JFYCBkcml2ZXIgYW5kIHdoZXJlIHdlIHNob3VsZCBmb2N1cyBvdXIgZnV6emluZyBlZmZvcnRzLiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bmN0aW9uIGNhbGwgaGllcmFyY2h5IHRvIGlkZW50aWZ5IHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEknbSBmb2N1c2luZyBvbiB0aGUgUENJIHJlbW92ZSBwYXRoLCBzdGFydGluZyB3aXRoIGBwZHNjX3JlbW92ZWAuIEl0J3MgdGhlIFBDSSByZW1vdmUgZnVuY3Rpb24sIHNvIGl0J3MgYSBjcml0aWNhbCBwb2ludCBmb3IgZGV2aWNlIHJlbW92YWwgYW5kIGNsZWFudXAuXG5cbk5leHQsIHRoZXJlJ3MgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAsIHdoaWNoIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLiBUaGlzIGlzIGludGVyZXN0aW5nLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhpcyBpcyBwcm9iYWJseSBzY2hlZHVsZWQgd2hlbiB0aGUgZGV2aWNlIHJlcXVlc3RzIGEgcmVzZXQgb3IgYSB3YXRjaGRvZyB0aW1lciBmaXJlcy4gSSBuZWVkIHRvIGtlZXAgdGhpcyBpbiBtaW5kIGFzIEkgYnVpbGQgbXkgZnV6emluZyBzdHJhdGVneS4gSSdsbCBuZWVkIHRvIGxvb2sgYXQgaXRzIGltcGxlbWVudGF0aW9uIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jYCB0byBzZWUgaG93IGl0J3MgdHJpZ2dlcmVkIGFuZCB3aGF0IGl0IGRvZXMuXG5cbk5vdywgYHBkc2NfdGVhcmRvd25gIGlzIGNhbGxlZCBmcm9tIGBwZHNjX3JlbW92ZWAsIHdoaWNoIG1ha2VzIHNlbnNlIGFzIHBhcnQgb2YgdGhlIFBDSSByZW1vdmFsIHByb2Nlc3MsIGFuZCBpdCBsb29rcyBsaWtlIGBwZHNjX3RlYXJkb3duYCBtaWdodCBiZSBjYWxsZWQgZnJvbSBvdGhlciBwbGFjZXMgYXMgd2VsbCwgc28gaXQgaXMgYSBnb29kIHRhcmdldC4gSW5zaWRlIG9mIGBwZHNjX3RlYXJkb3duYCwgd2UgaGF2ZSBgcGRzY19jb3JlX3VuaW5pdGAuIEFuZCBmaW5hbGx5LCBpbnNpZGUgb2YgYHBkc2NfY29yZV91bmluaXRgLCB3ZSBoYXZlIGBwZHNjX3FjcV9mcmVlYCwgd2hpY2ggaXMgYSBrZXkgcGFydCBvZiB0aGUgcmVzb3VyY2UgY2xlYW51cC5cblxuR2l2ZW4gdGhpcyBjYWxsIGdyYXBoLCBJJ20gdGhpbmtpbmcgYHBkc2NfcmVtb3ZlYCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIGFzIGl0J3MgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgUENJIHJlbW92YWwgcHJvY2Vzcy4gVGhpcyBzaG91bGQgc2V0IGEgYFdvcnRoRnV6emluZz10cnVlYCBmbGFnLiBJIGtub3cgdGhpcyBmcm9tIGV4cGVyaWVuY2UsIGFuZCBpdCdzIGEgZ29vZCBhcHByb2FjaC4gVGhlIG1vc3QgaW1wb3J0YW50IGZ1bmN0aW9ucyB0byBmb2N1cyBvbiBhcmU6XG5cbi0gICBgcGRzY19yZW1vdmVgXG4tICAgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGBcbi0gICBgcGRzY190ZWFyZG93bmBcbi0gICBgcGRzY19jb3JlX3VuaW5pdGBcbi0gICBgcGRzY19xY3FfZnJlZWBcblxuSSBoYXZlIHRvIGNhcmVmdWxseSBhbmFseXplIGBwZHNjX3BjaV9yZXNldF90aHJlYWRgIGJlY2F1c2UgaXTigJlzIGEgd29ya3F1ZXVlLCBidXQgSSdsbCBmb2N1cyBvbiB0aGUgUENJIHJlbW92YWwgcGF0aCBmb3Igbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTc1LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjI0LjExMTU2Njc2N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcwOTQ5NzMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBkc2NfcGNpX3Jlc2V0X3RocmVhZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NTcxPXZvaWQgcGRzY19md191cChzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NjEwOnZvaWQgcGRzY19wY2lfcmVzZXRfdGhyZWFkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTYxMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTMyMj12b2lkIHBkc2NfZndfdXAoc3RydWN0IHBkc2MgKnBkc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MzIzOnZvaWQgcGRzY19wY2lfcmVzZXRfdGhyZWFkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0zMjQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIxOD1zdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjQxLVxcdElOSVRfV09SSyhcXHUwMDI2cGRzYy1cXHUwMDNlaGVhbHRoX3dvcmssIHBkc2NfaGVhbHRoX3RocmVhZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzoyNDI6XFx0SU5JVF9XT1JLKFxcdTAwMjZwZHNjLVxcdTAwM2VwY2lfcmVzZXRfd29yaywgcGRzY19wY2lfcmVzZXRfdGhyZWFkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTI0My1cXHR0aW1lcl9zZXR1cChcXHUwMDI2cGRzYy1cXHUwMDNld2R0aW1lciwgcGRzY193ZHRpbWVyX2NiLCAwKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDQ6MjQuNTgyNTIyNTA3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNzEyNTY4NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQQ0kgUmVzZXQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBjb25maXJtaW5nIHRoYXQgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAgKmlzKiBpbmRlZWQgdGhlIHdvcmsgZnVuY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGBwY2lfcmVzZXRfd29ya2AuIFRoYXQncyBhIGtleSBmaXJzdCBzdGVwLiBUaGUgZGVzY3JpcHRpb24gaGl0cyB0aGUgbmFpbCBvbiB0aGUgaGVhZDogaXQncyB0YXJnZXRpbmcgdGVhcmRvd24gYW5kIHJlc2V0IGxvZ2ljLiBBbmQga25vd2luZyBzeXprYWxsZXIncyBQQ0kgZnV6emVyLCB0aGF0J3MgcHJlY2lzZWx5IHRoZSBraW5kIG9mIHRoaW5nIGl0IGV4Y2VscyBhdCB1bmNvdmVyaW5nIOKAkyB0aGUgcHJvYmUsIHJlbW92ZSwgcmVzZXQgY3ljbGUgaXMgaXRzIGJyZWFkIGFuZCBidXR0ZXIuIEknbGwgZGVmaW5pdGVseSBsaXN0IGBQRFNfQ09SRWAgYXMgdGhlIHJlbGV2YW50IGNvbmZpZyBmb3IgdGhpcy5cblxuTm93LCB0byBkaWcgZGVlcGVyLCBJIG5lZWQgdG8gZm9jdXMgb24gYSBmZXcga2V5IHN5bWJvbHMgaGVyZTogYHBkc2NfcmVtb3ZlYCwgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAgKG9idmlvdXNseSksIGBwZHNjX3RlYXJkb3duYCwgYHBkc2NfY29yZV91bmluaXRgLCBhbmQgYHBkc2NfcWNxX2ZyZWVgLiBUaGVzZSBhcmUgZ29pbmcgdG8gYmUgdGhlIGNyaXRpY2FsIHBpZWNlcyBpbiB1bmRlcnN0YW5kaW5nIHRoZSBmaXgncyBpbXBhY3QgYW5kIGVuc3VyaW5nIGl0cyBjb21wbGV0ZW5lc3MuXG5cbk9uZSBmaW5hbCwgY3J1Y2lhbCBzdGVwOiBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIGlmIGBQRFNfQ09SRWAgaGFzIGFueSBkZXBlbmRlbmNpZXMgdGhhdCBhcmUgKmFsc28qIHJlbGV2YW50IGFuZCBzaG91bGQgYmUgZW5hYmxlZCB0byBmdWxseSB0ZXN0IHRoaXMgZnVuY3Rpb25hbGl0eS4gSSBjYW4ndCBvdmVybG9vayBhbnkgcG90ZW50aWFsIGludGVyYWN0aW9ucyBvciBpbXBsaWNpdCByZXF1aXJlbWVudHMuIFRpbWUgdG8gZ2V0IGludG8gdGhvc2UgS2NvbmZpZyBmaWxlcy4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MzkyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjI4Ljc1MzgwNDczWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mzk1ODU2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUERTX0NPUkVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc9MTY1PWNvbmZpZyBBTURfWEdCRV9IQVZFX0VDQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWctMTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnOjE2OTpjb25maWcgUERTX0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzAtXFx0dHJpc3RhdGUgXFxcIkFNRC9QZW5zYW5kbyBEYXRhIFN5c3RlbXMgQ29yZSBEZXZpY2UgU3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDQ6MjguODE3NzY4NDM5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMzUwMTI3MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIEZpbGUqKlxuXG5Pa2F5LCBzbyB0aGUgaW5pdGlhbCBmb2N1cyBpcyB0aGUgS2NvbmZpZyBmaWxlLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgMTY5LiBUaGlzIGxpa2VseSBob2xkcyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byB0aGUgaXNzdWUgSSdtIHRyb3VibGVzaG9vdGluZy4gTXkgYXNzdW1wdGlvbiBpcyB0aGF0IHRoZSByZWxldmFudCBmdW5jdGlvbmFsaXR5LCBmZWF0dXJlLCBvciBtb2R1bGUgaGFzIGl0cyBjb25maWd1cmF0aW9uIGRlZmluZWQgd2l0aGluIHRoaXMgc2VjdGlvbi4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZGVsdmUgaW50byB0aGUgc3ludGF4IG9mIHRoZSBLY29uZmlnIGVudHJpZXMgdGhlcmUuIEknbGwgYmUgbG9va2luZyBmb3Iga2V5d29yZHMgbGlrZSBgY29uZmlnYCwgYGJvb2xgLCBgdHJpc3RhdGVgLCBgc2VsZWN0YCwgYGRlcGVuZHMgb25gLCBgZGVmYXVsdGAsIGBoZWxwYCwgYW5kIGFueSBhc3NvY2lhdGVkIHN5bWJvbHMgb3IgcmVsYXRpb25zaGlwcy4gSSBhbnRpY2lwYXRlIHVuZGVyc3RhbmRpbmcgdGhpcyB3aWxsIGNsYXJpZnkgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQgSSdtIGxvb2tpbmcgaW50by5cblxuXG4iLCJJbnB1dFRva2VucyI6Njk3MSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjMxLjk1MjgwMTUzNFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MDQwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNjUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNjU6XFx0Y29uZmlnIEFNRF9YR0JFX0hBVkVfRUNDXFxuIDE2NjpcXHRcXHRib29sXFxuIDE2NzpcXHRcXHRkZWZhdWx0IG5cXG4gMTY4OlxcdFxcbiAxNjk6XFx0Y29uZmlnIFBEU19DT1JFXFxuIDE3MDpcXHRcXHR0cmlzdGF0ZSBcXFwiQU1EL1BlbnNhbmRvIERhdGEgU3lzdGVtcyBDb3JlIERldmljZSBTdXBwb3J0XFxcIlxcbiAxNzE6XFx0XFx0ZGVwZW5kcyBvbiA2NEJJVCBcXHUwMDI2XFx1MDAyNiBQQ0lcXG4gMTcyOlxcdFxcdHNlbGVjdCBBVVhJTElBUllfQlVTXFxuIDE3MzpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gMTc0OlxcdFxcdGhlbHBcXG4gMTc1OlxcdFxcdCAgVGhpcyBlbmFibGVzIHRoZSBzdXBwb3J0IGZvciB0aGUgQU1EL1BlbnNhbmRvIENvcmUgZGV2aWNlIGZhbWlseSBvZlxcbiAxNzY6XFx0XFx0ICBhZGFwdGVycy4gIE1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gb24gdGhpcyBkcml2ZXIgY2FuIGJlXFxuIDE3NzpcXHRcXHQgIGZvdW5kIGluXFxuIDE3ODpcXHRcXHQgIFxcdTAwM2NmaWxlOkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9hbWQvcGRzX2NvcmUucnN0XFx1MDAzZS5cXG4gMTc5OlxcdFxcbiAxODA6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlXFxuIDE4MTpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIHBkc19jb3JlLlxcbiAxODI6XFx0XFxuIDE4MzpcXHRlbmRpZiAjIE5FVF9WRU5ET1JfQU1EXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjMxLjk1Mjg3MzQ1NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDgzNzQ2NjE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuIE15IGN1cnJlbnQgdGhvdWdodCBwcm9jZXNzIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuXG5cbioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmN5IFJlcXVpcmVtZW50cyoqXG5cblJpZ2h0LCBzbyB0aGUgc3lzdGVtIHJlbGllcyBvbiB0aGUgc3RhbmRhcmQgYDY0QklUYCBhcmNoaXRlY3R1cmUgYW5kIGBQQ0lgIGludGVyZmFjZS4gVGhhdCdzIGdvb2Q7IG5vdGhpbmcgdW5leHBlY3RlZCB0aGVyZS4gR2l2ZW4gdGhvc2Ugc3RhbmRhcmQgZGVwZW5kZW5jaWVzLCBJIGNhbiBjb25maWRlbnRseSBjb25jbHVkZSB0aGF0IHRoZSBgUERTX0NPUkVgIG1vZHVsZSBpcyBzdWZmaWNpZW50IHRvIGhhbmRsZSB0aGUgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eS4gSXQgbG9va3MgbGlrZSB3ZSBjYW4gbW92ZSBmb3J3YXJkIHdpdGhvdXQgYW55IGNvbmNlcm5zIGFib3V0IHRoZXNlIGJhc2UgZGVwZW5kZW5jaWVzLlxuXG5Ob3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCB0byBjb25zaWRlciB3aWxsIGJlIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc0NjgsIk91dHB1dFRva2VucyI6MTM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNDo0NDozNS40MzY2MjI2NTFaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzI2NDY2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUERTX0NPUkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwZHNjX3JlbW92ZVwiLFxuICAgIFwicGRzY19wY2lfcmVzZXRfdGhyZWFkXCIsXG4gICAgXCJwZHNjX3RlYXJkb3duXCIsXG4gICAgXCJwZHNjX2NvcmVfdW5pbml0XCIsXG4gICAgXCJwZHNjX3FjcV9mcmVlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRlYXJkb3duLCB1bmluaXRpYWxpemF0aW9uLCBhbmQgUENJIHJlc2V0IGxvZ2ljIG9mIHRoZSBBTUQgUERTIGNvcmUgZHJpdmVyLiBUaGVzZSBwYXRocyBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlcidzIFBDSSBkZXZpY2UgZW11bGF0aW9uIGR1cmluZyBwcm9iZS9yZW1vdmUgYW5kIHJlc2V0IGN5Y2xlcywgbWFraW5nIGl0IHN1aXRhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBEU19DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGRzY19yZW1vdmVcIixcbiAgICBcInBkc2NfcGNpX3Jlc2V0X3RocmVhZFwiLFxuICAgIFwicGRzY190ZWFyZG93blwiLFxuICAgIFwicGRzY19jb3JlX3VuaW5pdFwiLFxuICAgIFwicGRzY19xY3FfZnJlZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0ZWFyZG93biwgdW5pbml0aWFsaXphdGlvbiwgYW5kIFBDSSByZXNldCBsb2dpYyBvZiB0aGUgQU1EIFBEUyBjb3JlIGRyaXZlci4gVGhlc2UgcGF0aHMgY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXIncyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowg86rv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-15 04:28:29 +0000 UTC FinishedAt: 2026-07-15 04:44:37 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PDS_CORE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PDS_CORE" ], "series_id": "d3762ec6-7746-486d-9e74-740d09bd72c2" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "pdsc_remove", "pdsc_pci_reset_thread", "pdsc_teardown", "pdsc_core_uninit", "pdsc_qcq_free" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BEU19DT1JFJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cGRzY19yZW1vdmUmIzM0OywKICAgICYjMzQ7cGRzY19wY2lfcmVzZXRfdGhyZWFkJiMzNDssCiAgICAmIzM0O3Bkc2NfdGVhcmRvd24mIzM0OywKICAgICYjMzQ7cGRzY19jb3JlX3VuaW5pdCYjMzQ7LAogICAgJiMzNDtwZHNjX3FjcV9mcmVlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0ZWFyZG93biwgdW5pbml0aWFsaXphdGlvbiwgYW5kIFBDSSByZXNldCBsb2dpYyBvZiB0aGUgQU1EIFBEUyBjb3JlIGRyaXZlci4gVGhlc2UgcGF0aHMgY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXImIzM5O3MgUENJIGRldmljZSBlbXVsYXRpb24gZHVyaW5nIHByb2JlL3JlbW92ZSBhbmQgcmVzZXQgY3ljbGVzLCBtYWtpbmcgaXQgc3VpdGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDQ6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA5Y2JjNzBkMGExODIzM2I0NjhjZTQ5MzRiNzRlZDZiZDNmNDE5MTg0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMDQ6NDM6NTcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNcbmluZGV4IDM4YTI0NDY1NzFhZmFiLi5lMzliMmM5YmViMjA5MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNcbkBAIC0xMTAsNyAmIzQzOzExMCw2IEBAIHN0YXRpYyB2b2lkIHBkc2NfcWNxX2ludHJfZnJlZShzdHJ1Y3QgcGRzYyAqcGRzYywgc3RydWN0IHBkc2NfcWNxICpxY3EpXG4gXHRcdHJldHVybjtcbiBcbiBcdHBkc2NfaW50cl9mcmVlKHBkc2MsIHFjcS1cdTAwM2VpbnR4KTtcbi1cdHFjcS1cdTAwM2VpbnR4ID0gUERTX0NPUkVfSU5UUl9JTkRFWF9OT1RfQVNTSUdORUQ7XG4gfVxuIFxuIHN0YXRpYyBpbnQgcGRzY19xY3FfaW50cl9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgc3RydWN0IHBkc2NfcWNxICpxY3EpXG5AQCAtMTQ1LDYgJiM0MzsxNDQsMTIgQEAgdm9pZCBwZHNjX3FjcV9mcmVlKHN0cnVjdCBwZHNjICpwZHNjLCBzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcbiBcbiBcdHBkc2NfcWNxX2ludHJfZnJlZShwZHNjLCBxY3EpO1xuIFxuJiM0MztcdC8qIERyYWluIGFueSB3b3JrIHF1ZXVlZCBieSBJU1IgYmVmb3JlIGl0IHdhcyBmcmVlZCBhYm92ZSAqL1xuJiM0MztcdGlmIChxY3EtXHUwMDNld29yay5mdW5jKVxuJiM0MztcdFx0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZxY3EtXHUwMDNld29yayk7XG4mIzQzO1xuJiM0MztcdHFjcS1cdTAwM2VpbnR4ID0gUERTX0NPUkVfSU5UUl9JTkRFWF9OT1RfQVNTSUdORUQ7XG4mIzQzO1xuIFx0aWYgKHFjcS1cdTAwM2VxX2Jhc2UpXG4gXHRcdGRtYV9mcmVlX2NvaGVyZW50KGRldiwgcWNxLVx1MDAzZXFfc2l6ZSxcbiBcdFx0XHRcdCAgcWNxLVx1MDAzZXFfYmFzZSwgcWNxLVx1MDAzZXFfYmFzZV9wYSk7XG5AQCAtMzA0LDggJiM0MzszMDksMTEgQEAgaW50IHBkc2NfcWNxX2FsbG9jKHN0cnVjdCBwZHNjICpwZHNjLCB1bnNpZ25lZCBpbnQgdHlwZSwgdW5zaWduZWQgaW50IGluZGV4LFxuIFxuIHN0YXRpYyB2b2lkIHBkc2NfY29yZV91bmluaXQoc3RydWN0IHBkc2MgKnBkc2MpXG4ge1xuLVx0cGRzY19xY3FfZnJlZShwZHNjLCBcdTAwMjZwZHNjLVx1MDAzZW5vdGlmeXFjcSk7XG4mIzQzO1x0LyogRnJlZSBhZG1pbnFjcSBmaXJzdDogaXRzIHdvcmsgYWNjZXNzZXMgbm90aWZ5cWNxLCBzbyB3ZSBtdXN0XG4mIzQzO1x0ICogZGlzYWJsZSBpdHMgSVJRIGFuZCBkcmFpbiBpdHMgd29yayBiZWZvcmUgZnJlZWluZyBub3RpZnlxY3EuXG4mIzQzO1x0ICovXG4gXHRwZHNjX3FjcV9mcmVlKHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlYWRtaW5xY3EpO1xuJiM0MztcdHBkc2NfcWNxX2ZyZWUocGRzYywgXHUwMDI2cGRzYy1cdTAwM2Vub3RpZnlxY3EpO1xuIFxuIFx0aWYgKHBkc2MtXHUwMDNla2Vybl9kYnBhZ2UpIHtcbiBcdFx0aW91bm1hcChwZHNjLVx1MDAzZWtlcm5fZGJwYWdlKTtcbkBAIC00NzksOCAmIzQzOzQ4Nyw2IEBAIHZvaWQgcGRzY190ZWFyZG93bihzdHJ1Y3QgcGRzYyAqcGRzYywgYm9vbCByZW1vdmluZylcbiB7XG4gXHRpZiAoIXBkc2MtXHUwMDNlcGRldi1cdTAwM2Vpc192aXJ0Zm4pXG4gXHRcdHBkc2NfZGV2Y21kX3Jlc2V0KHBkc2MpO1xuLVx0aWYgKHBkc2MtXHUwMDNlYWRtaW5xY3Eud29yay5mdW5jKVxuLVx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnBkc2MtXHUwMDNlYWRtaW5xY3Eud29yayk7XG4gXG4gXHRwY2lfY2xlYXJfbWFzdGVyKHBkc2MtXHUwMDNlcGRldik7XG4gXG5AQCAtNjA2LDkgJiM0Mzs2MTIsMTAgQEAgdm9pZCBwZHNjX3BjaV9yZXNldF90aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuIFx0c3RydWN0IHBkc2MgKnBkc2MgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHBkc2MsIHBjaV9yZXNldF93b3JrKTtcbiBcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gcGRzYy1cdTAwM2VwZGV2O1xuIFxuLVx0cGNpX2Rldl9nZXQocGRldik7XG4tXHRwY2lfcmVzZXRfZnVuY3Rpb24ocGRldik7XG4tXHRwY2lfZGV2X3B1dChwZGV2KTtcbiYjNDM7XHQvKiBVc2UgdHJ5IHZhcmlhbnQgdG8gYXZvaWQgZGVhZGxvY2sgd2l0aCBwZHNjX3JlbW92ZSgpLlxuJiM0MztcdCAqIElmIGxvY2sgaXMgY29udGVuZGVkLCB0aGUgd2F0Y2hkb2cgdGltZXIgd2lsbCByZXRyeS5cbiYjNDM7XHQgKi9cbiYjNDM7XHRwY2lfdHJ5X3Jlc2V0X2Z1bmN0aW9uKHBkZXYpO1xuIH1cbiBcbiBzdGF0aWMgdm9pZCBwZHNjX2NoZWNrX3BjaV9oZWFsdGgoc3RydWN0IHBkc2MgKnBkc2MpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmNcbmluZGV4IDIyZGI3ODM0M2ViMDc1Li42MzhiOWM3YTUwOWQ5ZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmNcbkBAIC00MzUsOCAmIzQzOzQzNSw2IEBAIHN0YXRpYyB2b2lkIHBkc2NfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0XHRwZHNjX2F1eGJ1c19kZXZfZGVsKHBkc2MsIHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlcGFkZXYpO1xuIFxuIFx0XHR0aW1lcl9zaHV0ZG93bl9zeW5jKFx1MDAyNnBkc2MtXHUwMDNld2R0aW1lcik7XG4tXHRcdGlmIChwZHNjLVx1MDAzZXdxKVxuLVx0XHRcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXHUwMDNld3EpO1xuIFxuIFx0XHRtdXRleF9sb2NrKFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuIFx0XHRzZXRfYml0KFBEU0NfU19TVE9QUElOR19EUklWRVIsIFx1MDAyNnBkc2MtXHUwMDNlc3RhdGUpO1xuQEAgLTQ0NCw2ICYjNDM7NDQyLDkgQEAgc3RhdGljIHZvaWQgcGRzY19yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gXHRcdHBkc2Nfc3RvcChwZHNjKTtcbiBcdFx0cGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTtcbiBcdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuJiM0MztcbiYjNDM7XHRcdGlmIChwZHNjLVx1MDAzZXdxKVxuJiM0MztcdFx0XHRkZXN0cm95X3dvcmtxdWV1ZShwZHNjLVx1MDAzZXdxKTtcbiBcdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZwZHNjLVx1MDAzZWNvbmZpZ19sb2NrKTtcbiBcdFx0bXV0ZXhfZGVzdHJveShcdTAwMjZwZHNjLVx1MDAzZWRldmNtZF9sb2NrKTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0MzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQRFNfQ09SRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3Bkc2NfcmVtb3ZlJiMzNDssCiAgICAmIzM0O3Bkc2NfcGNpX3Jlc2V0X3RocmVhZCYjMzQ7LAogICAgJiMzNDtwZHNjX3RlYXJkb3duJiMzNDssCiAgICAmIzM0O3Bkc2NfY29yZV91bmluaXQmIzM0OywKICAgICYjMzQ7cGRzY19xY3FfZnJlZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgdGVhcmRvd24sIHVuaW5pdGlhbGl6YXRpb24sIGFuZCBQQ0kgcmVzZXQgbG9naWMgb2YgdGhlIEFNRCBQRFMgY29yZSBkcml2ZXIuIFRoZXNlIHBhdGhzIGNhbiBiZSB0cmlnZ2VyZWQgYnkgc3l6a2FsbGVyJiMzOTtzIFBDSSBkZXZpY2UgZW11bGF0aW9uIGR1cmluZyBwcm9iZS9yZW1vdmUgYW5kIHJlc2V0IGN5Y2xlcywgbWFraW5nIGl0IHN1aXRhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA5Y2JjNzBkMGExODIzM2I0NjhjZTQ5MzRiNzRlZDZiZDNmNDE5MTg0CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMTUgMDQ6NDM6NTcgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYwppbmRleCAzOGEyNDQ2NTcxYWZhYi4uZTM5YjJjOWJlYjIwOTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuYwpAQCAtMTEwLDcgJiM0MzsxMTAsNiBAQCBzdGF0aWMgdm9pZCBwZHNjX3FjcV9pbnRyX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKQogCQlyZXR1cm47CiAKIAlwZHNjX2ludHJfZnJlZShwZHNjLCBxY3EtJmd0O2ludHgpOwotCXFjcS0mZ3Q7aW50eCA9IFBEU19DT1JFX0lOVFJfSU5ERVhfTk9UX0FTU0lHTkVEOwogfQogCiBzdGF0aWMgaW50IHBkc2NfcWNxX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKQpAQCAtMTQ1LDYgJiM0MzsxNDQsMTIgQEAgdm9pZCBwZHNjX3FjcV9mcmVlKHN0cnVjdCBwZHNjICpwZHNjLCBzdHJ1Y3QgcGRzY19xY3EgKnFjcSkKIAogCXBkc2NfcWNxX2ludHJfZnJlZShwZHNjLCBxY3EpOwogCiYjNDM7CS8qIERyYWluIGFueSB3b3JrIHF1ZXVlZCBieSBJU1IgYmVmb3JlIGl0IHdhcyBmcmVlZCBhYm92ZSAqLwomIzQzOwlpZiAocWNxLSZndDt3b3JrLmZ1bmMpCiYjNDM7CQljYW5jZWxfd29ya19zeW5jKCZhbXA7cWNxLSZndDt3b3JrKTsKJiM0MzsKJiM0MzsJcWNxLSZndDtpbnR4ID0gUERTX0NPUkVfSU5UUl9JTkRFWF9OT1RfQVNTSUdORUQ7CiYjNDM7CiAJaWYgKHFjcS0mZ3Q7cV9iYXNlKQogCQlkbWFfZnJlZV9jb2hlcmVudChkZXYsIHFjcS0mZ3Q7cV9zaXplLAogCQkJCSAgcWNxLSZndDtxX2Jhc2UsIHFjcS0mZ3Q7cV9iYXNlX3BhKTsKQEAgLTMwNCw4ICYjNDM7MzA5LDExIEBAIGludCBwZHNjX3FjcV9hbGxvYyhzdHJ1Y3QgcGRzYyAqcGRzYywgdW5zaWduZWQgaW50IHR5cGUsIHVuc2lnbmVkIGludCBpbmRleCwKIAogc3RhdGljIHZvaWQgcGRzY19jb3JlX3VuaW5pdChzdHJ1Y3QgcGRzYyAqcGRzYykKIHsKLQlwZHNjX3FjcV9mcmVlKHBkc2MsICZhbXA7cGRzYy0mZ3Q7bm90aWZ5cWNxKTsKJiM0MzsJLyogRnJlZSBhZG1pbnFjcSBmaXJzdDogaXRzIHdvcmsgYWNjZXNzZXMgbm90aWZ5cWNxLCBzbyB3ZSBtdXN0CiYjNDM7CSAqIGRpc2FibGUgaXRzIElSUSBhbmQgZHJhaW4gaXRzIHdvcmsgYmVmb3JlIGZyZWVpbmcgbm90aWZ5cWNxLgomIzQzOwkgKi8KIAlwZHNjX3FjcV9mcmVlKHBkc2MsICZhbXA7cGRzYy0mZ3Q7YWRtaW5xY3EpOwomIzQzOwlwZHNjX3FjcV9mcmVlKHBkc2MsICZhbXA7cGRzYy0mZ3Q7bm90aWZ5cWNxKTsKIAogCWlmIChwZHNjLSZndDtrZXJuX2RicGFnZSkgewogCQlpb3VubWFwKHBkc2MtJmd0O2tlcm5fZGJwYWdlKTsKQEAgLTQ3OSw4ICYjNDM7NDg3LDYgQEAgdm9pZCBwZHNjX3RlYXJkb3duKHN0cnVjdCBwZHNjICpwZHNjLCBib29sIHJlbW92aW5nKQogewogCWlmICghcGRzYy0mZ3Q7cGRldi0mZ3Q7aXNfdmlydGZuKQogCQlwZHNjX2RldmNtZF9yZXNldChwZHNjKTsKLQlpZiAocGRzYy0mZ3Q7YWRtaW5xY3Eud29yay5mdW5jKQotCQljYW5jZWxfd29ya19zeW5jKCZhbXA7cGRzYy0mZ3Q7YWRtaW5xY3Eud29yayk7CiAKIAlwY2lfY2xlYXJfbWFzdGVyKHBkc2MtJmd0O3BkZXYpOwogCkBAIC02MDYsOSAmIzQzOzYxMiwxMCBAQCB2b2lkIHBkc2NfcGNpX3Jlc2V0X3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiAJc3RydWN0IHBkc2MgKnBkc2MgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IHBkc2MsIHBjaV9yZXNldF93b3JrKTsKIAlzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHBkc2MtJmd0O3BkZXY7CiAKLQlwY2lfZGV2X2dldChwZGV2KTsKLQlwY2lfcmVzZXRfZnVuY3Rpb24ocGRldik7Ci0JcGNpX2Rldl9wdXQocGRldik7CiYjNDM7CS8qIFVzZSB0cnkgdmFyaWFudCB0byBhdm9pZCBkZWFkbG9jayB3aXRoIHBkc2NfcmVtb3ZlKCkuCiYjNDM7CSAqIElmIGxvY2sgaXMgY29udGVuZGVkLCB0aGUgd2F0Y2hkb2cgdGltZXIgd2lsbCByZXRyeS4KJiM0MzsJICovCiYjNDM7CXBjaV90cnlfcmVzZXRfZnVuY3Rpb24ocGRldik7CiB9CiAKIHN0YXRpYyB2b2lkIHBkc2NfY2hlY2tfcGNpX2hlYWx0aChzdHJ1Y3QgcGRzYyAqcGRzYykKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jCmluZGV4IDIyZGI3ODM0M2ViMDc1Li42MzhiOWM3YTUwOWQ5ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jCkBAIC00MzUsOCAmIzQzOzQzNSw2IEBAIHN0YXRpYyB2b2lkIHBkc2NfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCQlwZHNjX2F1eGJ1c19kZXZfZGVsKHBkc2MsIHBkc2MsICZhbXA7cGRzYy0mZ3Q7cGFkZXYpOwogCiAJCXRpbWVyX3NodXRkb3duX3N5bmMoJmFtcDtwZHNjLSZndDt3ZHRpbWVyKTsKLQkJaWYgKHBkc2MtJmd0O3dxKQotCQkJZGVzdHJveV93b3JrcXVldWUocGRzYy0mZ3Q7d3EpOwogCiAJCW11dGV4X2xvY2soJmFtcDtwZHNjLSZndDtjb25maWdfbG9jayk7CiAJCXNldF9iaXQoUERTQ19TX1NUT1BQSU5HX0RSSVZFUiwgJmFtcDtwZHNjLSZndDtzdGF0ZSk7CkBAIC00NDQsNiAmIzQzOzQ0Miw5IEBAIHN0YXRpYyB2b2lkIHBkc2NfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCQlwZHNjX3N0b3AocGRzYyk7CiAJCXBkc2NfdGVhcmRvd24ocGRzYywgUERTQ19URUFSRE9XTl9SRU1PVklORyk7CiAJCW11dGV4X3VubG9jaygmYW1wO3Bkc2MtJmd0O2NvbmZpZ19sb2NrKTsKJiM0MzsKJiM0MzsJCWlmIChwZHNjLSZndDt3cSkKJiM0MzsJCQlkZXN0cm95X3dvcmtxdWV1ZShwZHNjLSZndDt3cSk7CiAJCW11dGV4X2Rlc3Ryb3koJmFtcDtwZHNjLSZndDtjb25maWdfbG9jayk7CiAJCW11dGV4X2Rlc3Ryb3koJmFtcDtwZHNjLSZndDtkZXZjbWRfbG9jayk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDQ6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk2NAoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDgyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIEZ1enppbmcgUG90ZW50aWFsIG9mIGFuIEFNRCBQRFMgQ29yZSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0b3VjaGVzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmNgLiBTcGVjaWZpY2FsbHksIGl0IG1vZGlmaWVzIGEgZmV3IGZ1bmN0aW9ucyByZWxhdGVkIHRvIHRoZSBBTUQgUERTIGNvcmUgZHJpdmVyLiBSaWdodCBvZmYgdGhlIGJhdCwgSSByZWNvZ25pemUgdGhpcyBhcyBhIGhhcmR3YXJlIGRyaXZlciDigJMgQU1EIFBlbnNhbmRvIERpc3RyaWJ1dGVkIFNlcnZpY2VzIENhcmQsIHRvIGJlIGV4YWN0LiBUaGUgZnVuY3Rpb25zIGJlaW5nIGNoYW5nZWQgKGBwZHNjX3FjcV9pbnRyX2ZyZWVgLCBgcGRzY19xY3FfZnJlZWAsIGV0Yy4pIGRlYWwgd2l0aCBjbGVhbnVwIGFuZCByZXNldCBwcm9jZWR1cmVzLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgZnV6emluZyBhIFBDSSBoYXJkd2FyZSBkcml2ZXIgaXMgdHlwaWNhbGx5IHRyaWNreSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBOb3JtYWxseSwgeW91JiMzOTtkIG5lZWQgc3BlY2lmaWMgaGFyZHdhcmUgZW11bGF0aW9uLCB3aGljaCBzeXprYWxsZXIsIGFsdGhvdWdoIHBvd2VyZnVsLCBkb2VzbiYjMzk7dCBhbHdheXMgaGF2ZSBmb3IgZXZlcnkgaGFyZHdhcmUgZGV2aWNlLiBNeSB1bmRlcnN0YW5kaW5nIGlzIHN5emthbGxlciYjMzk7cyBQQ0kgZW11bGF0aW9uIGlzIGZhaXJseSBnZW5lcmljLiBIb3dldmVyLCB3YWl0IGEgbWludXRlLCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgYHN5el9wY2lfZGV2aWNlYCB3aGljaCBpcyB1c2VkIGZvciBQQ0kgZGV2aWNlIGVtdWxhdGlvbi4gSXQgY2FuIHRyaWdnZXIgYHByb2JlYCBhbmQgYHJlbW92ZWAgY2FsbHMuCgpUaGlzIHBhdGNoLCBzcGVjaWZpY2FsbHksIGlzIGZpeGluZyB0ZWFyZG93bi9yZXNldCBsb2dpYy4gSXQgbG9va3MgbGlrZSBpdCYjMzk7cyBhZGRyZXNzaW5nIHdvcmsgcXVldWUgZHJhaW5pbmcsIG9yZGVyIG9mIG9wZXJhdGlvbnMgZHVyaW5nIHVuaW5pdGlhbGl6YXRpb24sIHdvcmsgY2FuY2VsbGF0aW9ucywgYW5kIHRoZSB1c2Ugb2YgYHBjaV90cnlfcmVzZXRfZnVuY3Rpb25gLiBJZiB0aGlzIHBhdGNoIGZpeGVzIGxvZ2ljIGluIHJlbW92YWwgb3IgcmVzZXQsIHRoZW4gc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIgKm1pZ2h0KiBiZSBhYmxlIHRvIGhpdCB0aG9zZSBjb2RlIHBhdGhzLCBhbmQgaXMgd29ydGggbG9va2luZyBhdC4KCkV2ZW4gdGhvdWdoIGl0JiMzOTtzIGhhcmR3YXJlLXNwZWNpZmljLCBzeXprYWxsZXLigJlzIFBDSSBmdXp6aW5nIGhhcyB0aGUgcG90ZW50aWFsIHRvIHRyaWdnZXIgYHByb2JlYCBhbmQgYHJlbW92ZWAgcGF0aHMuIFRodXMsICpiZWNhdXNlKiB0aGlzIHBhdGNoIG1vZGlmaWVzIHRoZSBgcmVtb3ZlYCBhbmQgYHJlc2V0YCByZWxhdGVkIGZ1bmN0aW9ucywgdGhlcmUmIzM5O3MgYSBnb29kIGNoYW5jZSBpdCBjb3VsZCB0cmlnZ2VyIGJ1Z3MgaW4gdGhlIHBhdGhzLiBHaXZlbiB0aGUgcHJvbXB0IHN0YXRlcyB0aGF0IEkgc2hvdWxkIG9ubHkgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGlmIGl04oCZcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGV2ZW4gd2l0aCBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSwgYW5kIHNpbmNlIHN5emthbGxlciAqZG9lcyogZnV6eiBQQ0kgcHJvYmUvcmVtb3ZlIHVzaW5nIGBzeXpfcGNpX2RldmljZWAsIHRoaXMgY291bGQgYmUgYSBnb29kIGNhbmRpZGF0ZSB0byBmdXp6LgoKU28sIEkmIzM5O20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAgYmVjYXVzZSBzeXprYWxsZXIgY2FuIHJlYWNoIFBDSSBkcml2ZXJzLCBlc3BlY2lhbGx5IHRoZSBwcm9iZS9yZW1vdmUgcGF0aHMuCkkgc2hvdWxkIGFsc28gY2hlY2sgdGhlIEtjb25maWcsIG9mIGNvdXJzZSwgdG8gc2VlIGhvdyBpdCYjMzk7cyBlbmFibGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBEU19DT1JFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzNjAKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqTG9jYXRpbmcgdGhlIEtjb25maWcgRmlsZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byBnZXQgdG8gdGhlIEtjb25maWcuIFdoZXJlIGlzIGl0IGx1cmtpbmcgaW4gdGhpcyBwcm9qZWN0PyBNeSBpbW1lZGlhdGUgaW5zdGluY3QgaXMgdG8gc3RhcnQgYnkgbG9va2luZyBpbiB0aGUgY29yZSBkaXJlY3RvcmllcyBvZiB0aGUgbW9kdWxlcyBJJiMzOTttIGZvY3VzaW5nIG9uLiBJdCYjMzk7cyBvZnRlbiBoaWVyYXJjaGljYWxseSBvcmdhbml6ZWQsIHNvIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5IG9yIHRoZSBtb2R1bGUmIzM5O3Mgb3duIGRpcmVjdG9yeSBpcyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludC4gSSBjb3VsZCBhbHNvIHNjYW4gdGhlIG1ha2VmaWxlcyBmb3IgYW55IGluY2x1ZGVzIHRoYXQgbWF5IHBvaW50IG1lIGluIHRoZSByaWdodCBkaXJlY3Rpb24uIEl0JiMzOTtzIGhpZ2hseSB1bmxpa2VseSBpdOKAmXMgaW4gYSBjb21wbGV0ZWx5IHVucmVsYXRlZCBzcG90LCBidXQgbGV0JiMzOTtzIGJlIHRob3JvdWdoIHdpdGggb3VyIHNlYXJjaC4gSSBhbHNvIG5lZWQgdG8gY29uc2lkZXIgd2hhdCBidWlsZCBzeXN0ZW0gdGhpcyBpcyB1c2luZywgdG8gcHJvcGVybHkga25vdyB3aGVyZSB0aGlzIGZpbGUgbWF5IGJlLiBUaGUgd2F5IHRoZSBkZXBlbmRlbmNpZXMgYXJlIHNldCB1cCB3aWxsIGxpa2VseSByZXZlYWwgd2hlcmUgaXQmIzM5O3MgaW5jbHVkZWQsIHdoaWNoIHdpbGwgdWx0aW1hdGVseSBsZWFkIG1lIHRvIGl0cyBsb2NhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUERTX0NPUkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2NT1jb25maWcgQU1EX1hHQkVfSEFWRV9FQ0Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZzoxNjk6Y29uZmlnIFBEU19DT1JFXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzAtXHR0cmlzdGF0ZSBcJiMzNDtBTUQvUGVuc2FuZG8gRGF0YSBTeXN0ZW1zIENvcmUgRGV2aWNlIFN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzE4CgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZvY3VzaW5nIG9uIHRoZSBQRFNfQ09SRSBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIGBQRFNfQ09SRWAgY29uZmlndXJhdGlvbi4gUmlnaHQsIGxldCYjMzk7cyB6ZXJvIGluIG9uIHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkIHdpdGhpbiB0aGlzIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgY2hhbmdlcyBpbXBhY3QgdGhlIGNvcmUgbG9naWMuIEJhc2VkIG9uIHRoZSBkaWZmLCBteSBpbW1lZGlhdGUgZm9jdXMgaXMgb246CgoqICAgYHBkc2NfcWNxX2ludHJfZnJlZWAKKiAgIGBwZHNjX3FjcV9mcmVlYAoqICAgYHBkc2NfY29yZV91bmluaXRgCiogICBgcGRzY190ZWFyZG93bmAKKiAgIGBwZHNjX3BjaV9yZXNldF90aHJlYWRgCiogICBgcGRzY19yZW1vdmVgCgpUaGVzZSBhcmUgbGlrZWx5IHRoZSBmdW5jdGlvbnMgd2hlcmUgdGhlIGNyaXRpY2FsIGNoYW5nZXMgcmVzaWRlLiBOb3csIGxldCBtZSBxdWlja2x5IGFzY2VydGFpbiB0aGF0IGBQRFNfQ09SRWAgaXMgaW5kZWVkIHRoZSBzb2xlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlJiMzOTtyZSBub3QgaW5hZHZlcnRlbnRseSBtaXNzaW5nIGFueSBvdGhlciBhc3NvY2lhdGVkIGNvbmZpZ3VyYXRpb25zIHRoYXQgd291bGQgYWZmZWN0IHRoZXNlIHNhbWUgZnVuY3Rpb25zLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1BEU19DT1JFJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc9MTY1PWNvbmZpZyBBTURfWEdCRV9IQVZFX0VDQ1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE2OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnOjE2OTpjb25maWcgUERTX0NPUkVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE3MC1cdHRyaXN0YXRlIFwmIzM0O0FNRC9QZW5zYW5kbyBEYXRhIFN5c3RlbXMgQ29yZSBEZXZpY2UgU3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUxNzUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyNjkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgUG90ZW50aWFsIEZ1enppbmcgVGFyZ2V0cyoqCgpPa2F5LCBsZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgcmVhY2hhYmxlIHdpdGhpbiB0aGlzIGBQRFNfQ09SRWAgZHJpdmVyIGFuZCB3aGVyZSB3ZSBzaG91bGQgZm9jdXMgb3VyIGZ1enppbmcgZWZmb3J0cy4gRmlyc3QsIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBmdW5jdGlvbiBjYWxsIGhpZXJhcmNoeSB0byBpZGVudGlmeSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLiBJJiMzOTttIGZvY3VzaW5nIG9uIHRoZSBQQ0kgcmVtb3ZlIHBhdGgsIHN0YXJ0aW5nIHdpdGggYHBkc2NfcmVtb3ZlYC4gSXQmIzM5O3MgdGhlIFBDSSByZW1vdmUgZnVuY3Rpb24sIHNvIGl0JiMzOTtzIGEgY3JpdGljYWwgcG9pbnQgZm9yIGRldmljZSByZW1vdmFsIGFuZCBjbGVhbnVwLgoKTmV4dCwgdGhlcmUmIzM5O3MgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAsIHdoaWNoIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLiBUaGlzIGlzIGludGVyZXN0aW5nLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhpcyBpcyBwcm9iYWJseSBzY2hlZHVsZWQgd2hlbiB0aGUgZGV2aWNlIHJlcXVlc3RzIGEgcmVzZXQgb3IgYSB3YXRjaGRvZyB0aW1lciBmaXJlcy4gSSBuZWVkIHRvIGtlZXAgdGhpcyBpbiBtaW5kIGFzIEkgYnVpbGQgbXkgZnV6emluZyBzdHJhdGVneS4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IGl0cyBpbXBsZW1lbnRhdGlvbiBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuY2AgdG8gc2VlIGhvdyBpdCYjMzk7cyB0cmlnZ2VyZWQgYW5kIHdoYXQgaXQgZG9lcy4KCk5vdywgYHBkc2NfdGVhcmRvd25gIGlzIGNhbGxlZCBmcm9tIGBwZHNjX3JlbW92ZWAsIHdoaWNoIG1ha2VzIHNlbnNlIGFzIHBhcnQgb2YgdGhlIFBDSSByZW1vdmFsIHByb2Nlc3MsIGFuZCBpdCBsb29rcyBsaWtlIGBwZHNjX3RlYXJkb3duYCBtaWdodCBiZSBjYWxsZWQgZnJvbSBvdGhlciBwbGFjZXMgYXMgd2VsbCwgc28gaXQgaXMgYSBnb29kIHRhcmdldC4gSW5zaWRlIG9mIGBwZHNjX3RlYXJkb3duYCwgd2UgaGF2ZSBgcGRzY19jb3JlX3VuaW5pdGAuIEFuZCBmaW5hbGx5LCBpbnNpZGUgb2YgYHBkc2NfY29yZV91bmluaXRgLCB3ZSBoYXZlIGBwZHNjX3FjcV9mcmVlYCwgd2hpY2ggaXMgYSBrZXkgcGFydCBvZiB0aGUgcmVzb3VyY2UgY2xlYW51cC4KCkdpdmVuIHRoaXMgY2FsbCBncmFwaCwgSSYjMzk7bSB0aGlua2luZyBgcGRzY19yZW1vdmVgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgYXMgaXQmIzM5O3MgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgUENJIHJlbW92YWwgcHJvY2Vzcy4gVGhpcyBzaG91bGQgc2V0IGEgYFdvcnRoRnV6emluZz10cnVlYCBmbGFnLiBJIGtub3cgdGhpcyBmcm9tIGV4cGVyaWVuY2UsIGFuZCBpdCYjMzk7cyBhIGdvb2QgYXBwcm9hY2guIFRoZSBtb3N0IGltcG9ydGFudCBmdW5jdGlvbnMgdG8gZm9jdXMgb24gYXJlOgoKLSAgIGBwZHNjX3JlbW92ZWAKLSAgIGBwZHNjX3BjaV9yZXNldF90aHJlYWRgCi0gICBgcGRzY190ZWFyZG93bmAKLSAgIGBwZHNjX2NvcmVfdW5pbml0YAotICAgYHBkc2NfcWNxX2ZyZWVgCgpJIGhhdmUgdG8gY2FyZWZ1bGx5IGFuYWx5emUgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAgYmVjYXVzZSBpdOKAmXMgYSB3b3JrcXVldWUsIGJ1dCBJJiMzOTtsbCBmb2N1cyBvbiB0aGUgUENJIHJlbW92YWwgcGF0aCBmb3Igbm93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwZHNjX3BjaV9yZXNldF90aHJlYWQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NTcxPXZvaWQgcGRzY19md191cChzdHJ1Y3QgcGRzYyAqcGRzYylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTYwOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NjEwOnZvaWQgcGRzY19wY2lfcmVzZXRfdGhyZWFkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjExLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTMyMj12b2lkIHBkc2NfZndfdXAoc3RydWN0IHBkc2MgKnBkc2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaDozMjM6dm9pZCBwZHNjX3BjaV9yZXNldF90aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmgtMzI0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmM9MjE4PXN0YXRpYyBpbnQgcGRzY19pbml0X3BmKHN0cnVjdCBwZHNjICpwZHNjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjQxLVx0SU5JVF9XT1JLKFx1MDAyNnBkc2MtXHUwMDNlaGVhbHRoX3dvcmssIHBkc2NfaGVhbHRoX3RocmVhZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jOjI0MjpcdElOSVRfV09SSyhcdTAwMjZwZHNjLVx1MDAzZXBjaV9yZXNldF93b3JrLCBwZHNjX3BjaV9yZXNldF90aHJlYWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYy0yNDMtXHR0aW1lcl9zZXR1cChcdTAwMjZwZHNjLVx1MDAzZXdkdGltZXIsIHBkc2Nfd2R0aW1lcl9jYiwgMCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzOTIKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAxNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBQQ0kgUmVzZXQgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGNvbmZpcm1pbmcgdGhhdCBgcGRzY19wY2lfcmVzZXRfdGhyZWFkYCAqaXMqIGluZGVlZCB0aGUgd29yayBmdW5jdGlvbiBhc3NvY2lhdGVkIHdpdGggYHBjaV9yZXNldF93b3JrYC4gVGhhdCYjMzk7cyBhIGtleSBmaXJzdCBzdGVwLiBUaGUgZGVzY3JpcHRpb24gaGl0cyB0aGUgbmFpbCBvbiB0aGUgaGVhZDogaXQmIzM5O3MgdGFyZ2V0aW5nIHRlYXJkb3duIGFuZCByZXNldCBsb2dpYy4gQW5kIGtub3dpbmcgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIsIHRoYXQmIzM5O3MgcHJlY2lzZWx5IHRoZSBraW5kIG9mIHRoaW5nIGl0IGV4Y2VscyBhdCB1bmNvdmVyaW5nIOKAkyB0aGUgcHJvYmUsIHJlbW92ZSwgcmVzZXQgY3ljbGUgaXMgaXRzIGJyZWFkIGFuZCBidXR0ZXIuIEkmIzM5O2xsIGRlZmluaXRlbHkgbGlzdCBgUERTX0NPUkVgIGFzIHRoZSByZWxldmFudCBjb25maWcgZm9yIHRoaXMuCgpOb3csIHRvIGRpZyBkZWVwZXIsIEkgbmVlZCB0byBmb2N1cyBvbiBhIGZldyBrZXkgc3ltYm9scyBoZXJlOiBgcGRzY19yZW1vdmVgLCBgcGRzY19wY2lfcmVzZXRfdGhyZWFkYCAob2J2aW91c2x5KSwgYHBkc2NfdGVhcmRvd25gLCBgcGRzY19jb3JlX3VuaW5pdGAsIGFuZCBgcGRzY19xY3FfZnJlZWAuIFRoZXNlIGFyZSBnb2luZyB0byBiZSB0aGUgY3JpdGljYWwgcGllY2VzIGluIHVuZGVyc3RhbmRpbmcgdGhlIGZpeCYjMzk7cyBpbXBhY3QgYW5kIGVuc3VyaW5nIGl0cyBjb21wbGV0ZW5lc3MuCgpPbmUgZmluYWwsIGNydWNpYWwgc3RlcDogSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBpZiBgUERTX0NPUkVgIGhhcyBhbnkgZGVwZW5kZW5jaWVzIHRoYXQgYXJlICphbHNvKiByZWxldmFudCBhbmQgc2hvdWxkIGJlIGVuYWJsZWQgdG8gZnVsbHkgdGVzdCB0aGlzIGZ1bmN0aW9uYWxpdHkuIEkgY2FuJiMzOTt0IG92ZXJsb29rIGFueSBwb3RlbnRpYWwgaW50ZXJhY3Rpb25zIG9yIGltcGxpY2l0IHJlcXVpcmVtZW50cy4gVGltZSB0byBnZXQgaW50byB0aG9zZSBLY29uZmlnIGZpbGVzLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBQRFNfQ09SRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2NT1jb25maWcgQU1EX1hHQkVfSEFWRV9FQ0Ncbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZzoxNjk6Y29uZmlnIFBEU19DT1JFXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzAtXHR0cmlzdGF0ZSBcJiMzNDtBTUQvUGVuc2FuZG8gRGF0YSBTeXN0ZW1zIENvcmUgRGV2aWNlIFN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDQ6NDQ8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNjk3MQoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDE0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIEZpbGUqKgoKT2theSwgc28gdGhlIGluaXRpYWwgZm9jdXMgaXMgdGhlIEtjb25maWcgZmlsZSwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lIDE2OS4gVGhpcyBsaWtlbHkgaG9sZHMgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgb3IgZGVwZW5kZW5jaWVzIHJlbGF0ZWQgdG8gdGhlIGlzc3VlIEkmIzM5O20gdHJvdWJsZXNob290aW5nLiBNeSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIHJlbGV2YW50IGZ1bmN0aW9uYWxpdHksIGZlYXR1cmUsIG9yIG1vZHVsZSBoYXMgaXRzIGNvbmZpZ3VyYXRpb24gZGVmaW5lZCB3aXRoaW4gdGhpcyBzZWN0aW9uLiBUaGVyZWZvcmUsIEkgbmVlZCB0byBkZWx2ZSBpbnRvIHRoZSBzeW50YXggb2YgdGhlIEtjb25maWcgZW50cmllcyB0aGVyZS4gSSYjMzk7bGwgYmUgbG9va2luZyBmb3Iga2V5d29yZHMgbGlrZSBgY29uZmlnYCwgYGJvb2xgLCBgdHJpc3RhdGVgLCBgc2VsZWN0YCwgYGRlcGVuZHMgb25gLCBgZGVmYXVsdGAsIGBoZWxwYCwgYW5kIGFueSBhc3NvY2lhdGVkIHN5bWJvbHMgb3IgcmVsYXRpb25zaGlwcy4gSSBhbnRpY2lwYXRlIHVuZGVyc3RhbmRpbmcgdGhpcyB3aWxsIGNsYXJpZnkgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQgSSYjMzk7bSBsb29raW5nIGludG8uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNjUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDE2NTpcdGNvbmZpZyBBTURfWEdCRV9IQVZFX0VDQ1xuIDE2NjpcdFx0Ym9vbFxuIDE2NzpcdFx0ZGVmYXVsdCBuXG4gMTY4Olx0XG4gMTY5Olx0Y29uZmlnIFBEU19DT1JFXG4gMTcwOlx0XHR0cmlzdGF0ZSBcJiMzNDtBTUQvUGVuc2FuZG8gRGF0YSBTeXN0ZW1zIENvcmUgRGV2aWNlIFN1cHBvcnRcJiMzNDtcbiAxNzE6XHRcdGRlcGVuZHMgb24gNjRCSVQgXHUwMDI2XHUwMDI2IFBDSVxuIDE3MjpcdFx0c2VsZWN0IEFVWElMSUFSWV9CVVNcbiAxNzM6XHRcdHNlbGVjdCBORVRfREVWTElOS1xuIDE3NDpcdFx0aGVscFxuIDE3NTpcdFx0ICBUaGlzIGVuYWJsZXMgdGhlIHN1cHBvcnQgZm9yIHRoZSBBTUQvUGVuc2FuZG8gQ29yZSBkZXZpY2UgZmFtaWx5IG9mXG4gMTc2Olx0XHQgIGFkYXB0ZXJzLiAgTW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBvbiB0aGlzIGRyaXZlciBjYW4gYmVcbiAxNzc6XHRcdCAgZm91bmQgaW5cbiAxNzg6XHRcdCAgXHUwMDNjZmlsZTpEb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2aWNlX2RyaXZlcnMvZXRoZXJuZXQvYW1kL3Bkc19jb3JlLnJzdFx1MDAzZS5cbiAxNzk6XHRcbiAxODA6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4gVGhlIG1vZHVsZVxuIDE4MTpcdFx0ICB3aWxsIGJlIGNhbGxlZCBwZHNfY29yZS5cbiAxODI6XHRcbiAxODM6XHRlbmRpZiAjIE5FVF9WRU5ET1JfQU1EXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA0OjQ0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc0NjgKCQkJCQkJCW91dHB1dDogMTM2CgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBzZWUuIE15IGN1cnJlbnQgdGhvdWdodCBwcm9jZXNzIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuCgoqKkFuYWx5emluZyB0aGUgRGVwZW5kZW5jeSBSZXF1aXJlbWVudHMqKgoKUmlnaHQsIHNvIHRoZSBzeXN0ZW0gcmVsaWVzIG9uIHRoZSBzdGFuZGFyZCBgNjRCSVRgIGFyY2hpdGVjdHVyZSBhbmQgYFBDSWAgaW50ZXJmYWNlLiBUaGF0JiMzOTtzIGdvb2Q7IG5vdGhpbmcgdW5leHBlY3RlZCB0aGVyZS4gR2l2ZW4gdGhvc2Ugc3RhbmRhcmQgZGVwZW5kZW5jaWVzLCBJIGNhbiBjb25maWRlbnRseSBjb25jbHVkZSB0aGF0IHRoZSBgUERTX0NPUkVgIG1vZHVsZSBpcyBzdWZmaWNpZW50IHRvIGhhbmRsZSB0aGUgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eS4gSXQgbG9va3MgbGlrZSB3ZSBjYW4gbW92ZSBmb3J3YXJkIHdpdGhvdXQgYW55IGNvbmNlcm5zIGFib3V0IHRoZXNlIGJhc2UgZGVwZW5kZW5jaWVzLgoKTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgdG8gY29uc2lkZXIgd2lsbCBiZSBgc2V0LXJlc3VsdHNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNDo0NDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UERTX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwZHNjX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtwZHNjX3BjaV9yZXNldF90aHJlYWQmIzM0OywKICAgICYjMzQ7cGRzY190ZWFyZG93biYjMzQ7LAogICAgJiMzNDtwZHNjX2NvcmVfdW5pbml0JiMzNDssCiAgICAmIzM0O3Bkc2NfcWNxX2ZyZWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRlYXJkb3duLCB1bmluaXRpYWxpemF0aW9uLCBhbmQgUENJIHJlc2V0IGxvZ2ljIG9mIHRoZSBBTUQgUERTIGNvcmUgZHJpdmVyLiBUaGVzZSBwYXRocyBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7UERTX0NPUkUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwZHNjX3JlbW92ZSYjMzQ7LAogICAgJiMzNDtwZHNjX3BjaV9yZXNldF90aHJlYWQmIzM0OywKICAgICYjMzQ7cGRzY190ZWFyZG93biYjMzQ7LAogICAgJiMzNDtwZHNjX2NvcmVfdW5pbml0JiMzNDssCiAgICAmIzM0O3Bkc2NfcWNxX2ZyZWUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRlYXJkb3duLCB1bmluaXRpYWxpemF0aW9uLCBhbmQgUENJIHJlc2V0IGxvZ2ljIG9mIHRoZSBBTUQgUERTIGNvcmUgZHJpdmVyLiBUaGVzZSBwYXRocyBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlciYjMzk7cyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQzOjU4LjY4NDE0ODc4N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2ODM1NzUwMzEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBEU19DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGRzY19yZW1vdmVcIixcbiAgICBcInBkc2NfcGNpX3Jlc2V0X3RocmVhZFwiLFxuICAgIFwicGRzY190ZWFyZG93blwiLFxuICAgIFwicGRzY19jb3JlX3VuaW5pdFwiLFxuICAgIFwicGRzY19xY3FfZnJlZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0ZWFyZG93biwgdW5pbml0aWFsaXphdGlvbiwgYW5kIFBDSSByZXNldCBsb2dpYyBvZiB0aGUgQU1EIFBEUyBjb3JlIGRyaXZlci4gVGhlc2UgcGF0aHMgY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXIncyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDM6NTguNjg0MTU0NzM3WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NjgyNzA0MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5Y2JjNzBkMGExODIzM2I0NjhjZTQ5MzRiNzRlZDZiZDNmNDE5MTg0XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDE1IDA0OjQzOjU3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jXFxuaW5kZXggMzhhMjQ0NjU3MWFmYWIuLmUzOWIyYzliZWIyMDkzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jXFxuQEAgLTExMCw3ICsxMTAsNiBAQCBzdGF0aWMgdm9pZCBwZHNjX3FjcV9pbnRyX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxcbiBcXHRcXHRyZXR1cm47XFxuIFxcbiBcXHRwZHNjX2ludHJfZnJlZShwZHNjLCBxY3EtXFx1MDAzZWludHgpO1xcbi1cXHRxY3EtXFx1MDAzZWludHggPSBQRFNfQ09SRV9JTlRSX0lOREVYX05PVF9BU1NJR05FRDtcXG4gfVxcbiBcXG4gc3RhdGljIGludCBwZHNjX3FjcV9pbnRyX2FsbG9jKHN0cnVjdCBwZHNjICpwZHNjLCBzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcXG5AQCAtMTQ1LDYgKzE0NCwxMiBAQCB2b2lkIHBkc2NfcWNxX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxcbiBcXG4gXFx0cGRzY19xY3FfaW50cl9mcmVlKHBkc2MsIHFjcSk7XFxuIFxcbitcXHQvKiBEcmFpbiBhbnkgd29yayBxdWV1ZWQgYnkgSVNSIGJlZm9yZSBpdCB3YXMgZnJlZWQgYWJvdmUgKi9cXG4rXFx0aWYgKHFjcS1cXHUwMDNld29yay5mdW5jKVxcbitcXHRcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZxY3EtXFx1MDAzZXdvcmspO1xcbitcXG4rXFx0cWNxLVxcdTAwM2VpbnR4ID0gUERTX0NPUkVfSU5UUl9JTkRFWF9OT1RfQVNTSUdORUQ7XFxuK1xcbiBcXHRpZiAocWNxLVxcdTAwM2VxX2Jhc2UpXFxuIFxcdFxcdGRtYV9mcmVlX2NvaGVyZW50KGRldiwgcWNxLVxcdTAwM2VxX3NpemUsXFxuIFxcdFxcdFxcdFxcdCAgcWNxLVxcdTAwM2VxX2Jhc2UsIHFjcS1cXHUwMDNlcV9iYXNlX3BhKTtcXG5AQCAtMzA0LDggKzMwOSwxMSBAQCBpbnQgcGRzY19xY3FfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHVuc2lnbmVkIGludCB0eXBlLCB1bnNpZ25lZCBpbnQgaW5kZXgsXFxuIFxcbiBzdGF0aWMgdm9pZCBwZHNjX2NvcmVfdW5pbml0KHN0cnVjdCBwZHNjICpwZHNjKVxcbiB7XFxuLVxcdHBkc2NfcWNxX2ZyZWUocGRzYywgXFx1MDAyNnBkc2MtXFx1MDAzZW5vdGlmeXFjcSk7XFxuK1xcdC8qIEZyZWUgYWRtaW5xY3EgZmlyc3Q6IGl0cyB3b3JrIGFjY2Vzc2VzIG5vdGlmeXFjcSwgc28gd2UgbXVzdFxcbitcXHQgKiBkaXNhYmxlIGl0cyBJUlEgYW5kIGRyYWluIGl0cyB3b3JrIGJlZm9yZSBmcmVlaW5nIG5vdGlmeXFjcS5cXG4rXFx0ICovXFxuIFxcdHBkc2NfcWNxX2ZyZWUocGRzYywgXFx1MDAyNnBkc2MtXFx1MDAzZWFkbWlucWNxKTtcXG4rXFx0cGRzY19xY3FfZnJlZShwZHNjLCBcXHUwMDI2cGRzYy1cXHUwMDNlbm90aWZ5cWNxKTtcXG4gXFxuIFxcdGlmIChwZHNjLVxcdTAwM2VrZXJuX2RicGFnZSkge1xcbiBcXHRcXHRpb3VubWFwKHBkc2MtXFx1MDAzZWtlcm5fZGJwYWdlKTtcXG5AQCAtNDc5LDggKzQ4Nyw2IEBAIHZvaWQgcGRzY190ZWFyZG93bihzdHJ1Y3QgcGRzYyAqcGRzYywgYm9vbCByZW1vdmluZylcXG4ge1xcbiBcXHRpZiAoIXBkc2MtXFx1MDAzZXBkZXYtXFx1MDAzZWlzX3ZpcnRmbilcXG4gXFx0XFx0cGRzY19kZXZjbWRfcmVzZXQocGRzYyk7XFxuLVxcdGlmIChwZHNjLVxcdTAwM2VhZG1pbnFjcS53b3JrLmZ1bmMpXFxuLVxcdFxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNnBkc2MtXFx1MDAzZWFkbWlucWNxLndvcmspO1xcbiBcXG4gXFx0cGNpX2NsZWFyX21hc3RlcihwZHNjLVxcdTAwM2VwZGV2KTtcXG4gXFxuQEAgLTYwNiw5ICs2MTIsMTAgQEAgdm9pZCBwZHNjX3BjaV9yZXNldF90aHJlYWQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbiBcXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcGRzYywgcGNpX3Jlc2V0X3dvcmspO1xcbiBcXHRzdHJ1Y3QgcGNpX2RldiAqcGRldiA9IHBkc2MtXFx1MDAzZXBkZXY7XFxuIFxcbi1cXHRwY2lfZGV2X2dldChwZGV2KTtcXG4tXFx0cGNpX3Jlc2V0X2Z1bmN0aW9uKHBkZXYpO1xcbi1cXHRwY2lfZGV2X3B1dChwZGV2KTtcXG4rXFx0LyogVXNlIHRyeSB2YXJpYW50IHRvIGF2b2lkIGRlYWRsb2NrIHdpdGggcGRzY19yZW1vdmUoKS5cXG4rXFx0ICogSWYgbG9jayBpcyBjb250ZW5kZWQsIHRoZSB3YXRjaGRvZyB0aW1lciB3aWxsIHJldHJ5LlxcbitcXHQgKi9cXG4rXFx0cGNpX3RyeV9yZXNldF9mdW5jdGlvbihwZGV2KTtcXG4gfVxcbiBcXG4gc3RhdGljIHZvaWQgcGRzY19jaGVja19wY2lfaGVhbHRoKHN0cnVjdCBwZHNjICpwZHNjKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xcbmluZGV4IDIyZGI3ODM0M2ViMDc1Li42MzhiOWM3YTUwOWQ5ZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY1xcbkBAIC00MzUsOCArNDM1LDYgQEAgc3RhdGljIHZvaWQgcGRzY19yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIFxcdFxcdHBkc2NfYXV4YnVzX2Rldl9kZWwocGRzYywgcGRzYywgXFx1MDAyNnBkc2MtXFx1MDAzZXBhZGV2KTtcXG4gXFxuIFxcdFxcdHRpbWVyX3NodXRkb3duX3N5bmMoXFx1MDAyNnBkc2MtXFx1MDAzZXdkdGltZXIpO1xcbi1cXHRcXHRpZiAocGRzYy1cXHUwMDNld3EpXFxuLVxcdFxcdFxcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXFx1MDAzZXdxKTtcXG4gXFxuIFxcdFxcdG11dGV4X2xvY2soXFx1MDAyNnBkc2MtXFx1MDAzZWNvbmZpZ19sb2NrKTtcXG4gXFx0XFx0c2V0X2JpdChQRFNDX1NfU1RPUFBJTkdfRFJJVkVSLCBcXHUwMDI2cGRzYy1cXHUwMDNlc3RhdGUpO1xcbkBAIC00NDQsNiArNDQyLDkgQEAgc3RhdGljIHZvaWQgcGRzY19yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuIFxcdFxcdHBkc2Nfc3RvcChwZHNjKTtcXG4gXFx0XFx0cGRzY190ZWFyZG93bihwZHNjLCBQRFNDX1RFQVJET1dOX1JFTU9WSU5HKTtcXG4gXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwZHNjLVxcdTAwM2Vjb25maWdfbG9jayk7XFxuK1xcbitcXHRcXHRpZiAocGRzYy1cXHUwMDNld3EpXFxuK1xcdFxcdFxcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXFx1MDAzZXdxKTtcXG4gXFx0XFx0bXV0ZXhfZGVzdHJveShcXHUwMDI2cGRzYy1cXHUwMDNlY29uZmlnX2xvY2spO1xcbiBcXHRcXHRtdXRleF9kZXN0cm95KFxcdTAwMjZwZHNjLVxcdTAwM2VkZXZjbWRfbG9jayk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNDo0Mzo1OS4zNTMxNjYxOTNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MTY2NzI0ODU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBEU19DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGRzY19yZW1vdmVcIixcbiAgICBcInBkc2NfcGNpX3Jlc2V0X3RocmVhZFwiLFxuICAgIFwicGRzY190ZWFyZG93blwiLFxuICAgIFwicGRzY19jb3JlX3VuaW5pdFwiLFxuICAgIFwicGRzY19xY3FfZnJlZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0ZWFyZG93biwgdW5pbml0aWFsaXphdGlvbiwgYW5kIFBDSSByZXNldCBsb2dpYyBvZiB0aGUgQU1EIFBEUyBjb3JlIGRyaXZlci4gVGhlc2UgcGF0aHMgY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXIncyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5Y2JjNzBkMGExODIzM2I0NjhjZTQ5MzRiNzRlZDZiZDNmNDE5MTg0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMDQ6NDM6NTcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuY1xuaW5kZXggMzhhMjQ0NjU3MWFmYWIuLmUzOWIyYzliZWIyMDkzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuY1xuQEAgLTExMCw3ICsxMTAsNiBAQCBzdGF0aWMgdm9pZCBwZHNjX3FjcV9pbnRyX2ZyZWUoc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxuIFx0XHRyZXR1cm47XG4gXG4gXHRwZHNjX2ludHJfZnJlZShwZHNjLCBxY3EtXHUwMDNlaW50eCk7XG4tXHRxY3EtXHUwMDNlaW50eCA9IFBEU19DT1JFX0lOVFJfSU5ERVhfTk9UX0FTU0lHTkVEO1xuIH1cbiBcbiBzdGF0aWMgaW50IHBkc2NfcWNxX2ludHJfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHN0cnVjdCBwZHNjX3FjcSAqcWNxKVxuQEAgLTE0NSw2ICsxNDQsMTIgQEAgdm9pZCBwZHNjX3FjcV9mcmVlKHN0cnVjdCBwZHNjICpwZHNjLCBzdHJ1Y3QgcGRzY19xY3EgKnFjcSlcbiBcbiBcdHBkc2NfcWNxX2ludHJfZnJlZShwZHNjLCBxY3EpO1xuIFxuK1x0LyogRHJhaW4gYW55IHdvcmsgcXVldWVkIGJ5IElTUiBiZWZvcmUgaXQgd2FzIGZyZWVkIGFib3ZlICovXG4rXHRpZiAocWNxLVx1MDAzZXdvcmsuZnVuYylcbitcdFx0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZxY3EtXHUwMDNld29yayk7XG4rXG4rXHRxY3EtXHUwMDNlaW50eCA9IFBEU19DT1JFX0lOVFJfSU5ERVhfTk9UX0FTU0lHTkVEO1xuK1xuIFx0aWYgKHFjcS1cdTAwM2VxX2Jhc2UpXG4gXHRcdGRtYV9mcmVlX2NvaGVyZW50KGRldiwgcWNxLVx1MDAzZXFfc2l6ZSxcbiBcdFx0XHRcdCAgcWNxLVx1MDAzZXFfYmFzZSwgcWNxLVx1MDAzZXFfYmFzZV9wYSk7XG5AQCAtMzA0LDggKzMwOSwxMSBAQCBpbnQgcGRzY19xY3FfYWxsb2Moc3RydWN0IHBkc2MgKnBkc2MsIHVuc2lnbmVkIGludCB0eXBlLCB1bnNpZ25lZCBpbnQgaW5kZXgsXG4gXG4gc3RhdGljIHZvaWQgcGRzY19jb3JlX3VuaW5pdChzdHJ1Y3QgcGRzYyAqcGRzYylcbiB7XG4tXHRwZHNjX3FjcV9mcmVlKHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlbm90aWZ5cWNxKTtcbitcdC8qIEZyZWUgYWRtaW5xY3EgZmlyc3Q6IGl0cyB3b3JrIGFjY2Vzc2VzIG5vdGlmeXFjcSwgc28gd2UgbXVzdFxuK1x0ICogZGlzYWJsZSBpdHMgSVJRIGFuZCBkcmFpbiBpdHMgd29yayBiZWZvcmUgZnJlZWluZyBub3RpZnlxY3EuXG4rXHQgKi9cbiBcdHBkc2NfcWNxX2ZyZWUocGRzYywgXHUwMDI2cGRzYy1cdTAwM2VhZG1pbnFjcSk7XG4rXHRwZHNjX3FjcV9mcmVlKHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlbm90aWZ5cWNxKTtcbiBcbiBcdGlmIChwZHNjLVx1MDAzZWtlcm5fZGJwYWdlKSB7XG4gXHRcdGlvdW5tYXAocGRzYy1cdTAwM2VrZXJuX2RicGFnZSk7XG5AQCAtNDc5LDggKzQ4Nyw2IEBAIHZvaWQgcGRzY190ZWFyZG93bihzdHJ1Y3QgcGRzYyAqcGRzYywgYm9vbCByZW1vdmluZylcbiB7XG4gXHRpZiAoIXBkc2MtXHUwMDNlcGRldi1cdTAwM2Vpc192aXJ0Zm4pXG4gXHRcdHBkc2NfZGV2Y21kX3Jlc2V0KHBkc2MpO1xuLVx0aWYgKHBkc2MtXHUwMDNlYWRtaW5xY3Eud29yay5mdW5jKVxuLVx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnBkc2MtXHUwMDNlYWRtaW5xY3Eud29yayk7XG4gXG4gXHRwY2lfY2xlYXJfbWFzdGVyKHBkc2MtXHUwMDNlcGRldik7XG4gXG5AQCAtNjA2LDkgKzYxMiwxMCBAQCB2b2lkIHBkc2NfcGNpX3Jlc2V0X3RocmVhZChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXG4gXHRzdHJ1Y3QgcGRzYyAqcGRzYyA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgcGRzYywgcGNpX3Jlc2V0X3dvcmspO1xuIFx0c3RydWN0IHBjaV9kZXYgKnBkZXYgPSBwZHNjLVx1MDAzZXBkZXY7XG4gXG4tXHRwY2lfZGV2X2dldChwZGV2KTtcbi1cdHBjaV9yZXNldF9mdW5jdGlvbihwZGV2KTtcbi1cdHBjaV9kZXZfcHV0KHBkZXYpO1xuK1x0LyogVXNlIHRyeSB2YXJpYW50IHRvIGF2b2lkIGRlYWRsb2NrIHdpdGggcGRzY19yZW1vdmUoKS5cbitcdCAqIElmIGxvY2sgaXMgY29udGVuZGVkLCB0aGUgd2F0Y2hkb2cgdGltZXIgd2lsbCByZXRyeS5cbitcdCAqL1xuK1x0cGNpX3RyeV9yZXNldF9mdW5jdGlvbihwZGV2KTtcbiB9XG4gXG4gc3RhdGljIHZvaWQgcGRzY19jaGVja19wY2lfaGVhbHRoKHN0cnVjdCBwZHNjICpwZHNjKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG5pbmRleCAyMmRiNzgzNDNlYjA3NS4uNjM4YjljN2E1MDlkOWQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jXG5AQCAtNDM1LDggKzQzNSw2IEBAIHN0YXRpYyB2b2lkIHBkc2NfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0XHRwZHNjX2F1eGJ1c19kZXZfZGVsKHBkc2MsIHBkc2MsIFx1MDAyNnBkc2MtXHUwMDNlcGFkZXYpO1xuIFxuIFx0XHR0aW1lcl9zaHV0ZG93bl9zeW5jKFx1MDAyNnBkc2MtXHUwMDNld2R0aW1lcik7XG4tXHRcdGlmIChwZHNjLVx1MDAzZXdxKVxuLVx0XHRcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXHUwMDNld3EpO1xuIFxuIFx0XHRtdXRleF9sb2NrKFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuIFx0XHRzZXRfYml0KFBEU0NfU19TVE9QUElOR19EUklWRVIsIFx1MDAyNnBkc2MtXHUwMDNlc3RhdGUpO1xuQEAgLTQ0NCw2ICs0NDIsOSBAQCBzdGF0aWMgdm9pZCBwZHNjX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiBcdFx0cGRzY19zdG9wKHBkc2MpO1xuIFx0XHRwZHNjX3RlYXJkb3duKHBkc2MsIFBEU0NfVEVBUkRPV05fUkVNT1ZJTkcpO1xuIFx0XHRtdXRleF91bmxvY2soXHUwMDI2cGRzYy1cdTAwM2Vjb25maWdfbG9jayk7XG4rXG4rXHRcdGlmIChwZHNjLVx1MDAzZXdxKVxuK1x0XHRcdGRlc3Ryb3lfd29ya3F1ZXVlKHBkc2MtXHUwMDNld3EpO1xuIFx0XHRtdXRleF9kZXN0cm95KFx1MDAyNnBkc2MtXHUwMDNlY29uZmlnX2xvY2spO1xuIFx0XHRtdXRleF9kZXN0cm95KFx1MDAyNnBkc2MtXHUwMDNlZGV2Y21kX2xvY2spO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDM6NTkuMzUzMTY4ODUzWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE0ODE3MTE5OTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQXNzZXNzaW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhbiBBTUQgUERTIENvcmUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRvdWNoZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmNgIGFuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uY2AuIFNwZWNpZmljYWxseSwgaXQgbW9kaWZpZXMgYSBmZXcgZnVuY3Rpb25zIHJlbGF0ZWQgdG8gdGhlIEFNRCBQRFMgY29yZSBkcml2ZXIuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIHJlY29nbml6ZSB0aGlzIGFzIGEgaGFyZHdhcmUgZHJpdmVyIOKAkyBBTUQgUGVuc2FuZG8gRGlzdHJpYnV0ZWQgU2VydmljZXMgQ2FyZCwgdG8gYmUgZXhhY3QuIFRoZSBmdW5jdGlvbnMgYmVpbmcgY2hhbmdlZCAoYHBkc2NfcWNxX2ludHJfZnJlZWAsIGBwZHNjX3FjcV9mcmVlYCwgZXRjLikgZGVhbCB3aXRoIGNsZWFudXAgYW5kIHJlc2V0IHByb2NlZHVyZXMuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGZ1enppbmcgYSBQQ0kgaGFyZHdhcmUgZHJpdmVyIGlzIHR5cGljYWxseSB0cmlja3kgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gTm9ybWFsbHksIHlvdSdkIG5lZWQgc3BlY2lmaWMgaGFyZHdhcmUgZW11bGF0aW9uLCB3aGljaCBzeXprYWxsZXIsIGFsdGhvdWdoIHBvd2VyZnVsLCBkb2Vzbid0IGFsd2F5cyBoYXZlIGZvciBldmVyeSBoYXJkd2FyZSBkZXZpY2UuIE15IHVuZGVyc3RhbmRpbmcgaXMgc3l6a2FsbGVyJ3MgUENJIGVtdWxhdGlvbiBpcyBmYWlybHkgZ2VuZXJpYy4gSG93ZXZlciwgd2FpdCBhIG1pbnV0ZSwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIGBzeXpfcGNpX2RldmljZWAgd2hpY2ggaXMgdXNlZCBmb3IgUENJIGRldmljZSBlbXVsYXRpb24uIEl0IGNhbiB0cmlnZ2VyIGBwcm9iZWAgYW5kIGByZW1vdmVgIGNhbGxzLlxuXG5UaGlzIHBhdGNoLCBzcGVjaWZpY2FsbHksIGlzIGZpeGluZyB0ZWFyZG93bi9yZXNldCBsb2dpYy4gSXQgbG9va3MgbGlrZSBpdCdzIGFkZHJlc3Npbmcgd29yayBxdWV1ZSBkcmFpbmluZywgb3JkZXIgb2Ygb3BlcmF0aW9ucyBkdXJpbmcgdW5pbml0aWFsaXphdGlvbiwgd29yayBjYW5jZWxsYXRpb25zLCBhbmQgdGhlIHVzZSBvZiBgcGNpX3RyeV9yZXNldF9mdW5jdGlvbmAuIElmIHRoaXMgcGF0Y2ggZml4ZXMgbG9naWMgaW4gcmVtb3ZhbCBvciByZXNldCwgdGhlbiBzeXprYWxsZXIncyBQQ0kgZnV6emVyICptaWdodCogYmUgYWJsZSB0byBoaXQgdGhvc2UgY29kZSBwYXRocywgYW5kIGlzIHdvcnRoIGxvb2tpbmcgYXQuXG5cbkV2ZW4gdGhvdWdoIGl0J3MgaGFyZHdhcmUtc3BlY2lmaWMsIHN5emthbGxlcuKAmXMgUENJIGZ1enppbmcgaGFzIHRoZSBwb3RlbnRpYWwgdG8gdHJpZ2dlciBgcHJvYmVgIGFuZCBgcmVtb3ZlYCBwYXRocy4gVGh1cywgKmJlY2F1c2UqIHRoaXMgcGF0Y2ggbW9kaWZpZXMgdGhlIGByZW1vdmVgIGFuZCBgcmVzZXRgIHJlbGF0ZWQgZnVuY3Rpb25zLCB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgaXQgY291bGQgdHJpZ2dlciBidWdzIGluIHRoZSBwYXRocy4gR2l2ZW4gdGhlIHByb21wdCBzdGF0ZXMgdGhhdCBJIHNob3VsZCBvbmx5IHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiBpdOKAmXMgaW1wb3NzaWJsZSB0byByZWFjaCBldmVuIHdpdGggc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUsIGFuZCBzaW5jZSBzeXprYWxsZXIgKmRvZXMqIGZ1enogUENJIHByb2JlL3JlbW92ZSB1c2luZyBgc3l6X3BjaV9kZXZpY2VgLCB0aGlzIGNvdWxkIGJlIGEgZ29vZCBjYW5kaWRhdGUgdG8gZnV6ei5cblxuU28sIEknbSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz10cnVlYCBiZWNhdXNlIHN5emthbGxlciBjYW4gcmVhY2ggUENJIGRyaXZlcnMsIGVzcGVjaWFsbHkgdGhlIHByb2JlL3JlbW92ZSBwYXRocy5cbkkgc2hvdWxkIGFsc28gY2hlY2sgdGhlIEtjb25maWcsIG9mIGNvdXJzZSwgdG8gc2VlIGhvdyBpdCdzIGVuYWJsZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5NjQsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MjQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNDo0NDoxMC44MzQ4ODM5MTRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc1Njg2NjEwLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUERTX0NPUkVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjExLjMxMDU3ODYzNFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI5MzEwMjY1NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqTG9jYXRpbmcgdGhlIEtjb25maWcgRmlsZSoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gZ2V0IHRvIHRoZSBLY29uZmlnLiBXaGVyZSBpcyBpdCBsdXJraW5nIGluIHRoaXMgcHJvamVjdD8gTXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIHN0YXJ0IGJ5IGxvb2tpbmcgaW4gdGhlIGNvcmUgZGlyZWN0b3JpZXMgb2YgdGhlIG1vZHVsZXMgSSdtIGZvY3VzaW5nIG9uLiBJdCdzIG9mdGVuIGhpZXJhcmNoaWNhbGx5IG9yZ2FuaXplZCwgc28gdGhlIHRvcC1sZXZlbCBkaXJlY3Rvcnkgb3IgdGhlIG1vZHVsZSdzIG93biBkaXJlY3RvcnkgaXMgdGhlIGxvZ2ljYWwgc3RhcnRpbmcgcG9pbnQuIEkgY291bGQgYWxzbyBzY2FuIHRoZSBtYWtlZmlsZXMgZm9yIGFueSBpbmNsdWRlcyB0aGF0IG1heSBwb2ludCBtZSBpbiB0aGUgcmlnaHQgZGlyZWN0aW9uLiBJdCdzIGhpZ2hseSB1bmxpa2VseSBpdOKAmXMgaW4gYSBjb21wbGV0ZWx5IHVucmVsYXRlZCBzcG90LCBidXQgbGV0J3MgYmUgdGhvcm91Z2ggd2l0aCBvdXIgc2VhcmNoLiBJIGFsc28gbmVlZCB0byBjb25zaWRlciB3aGF0IGJ1aWxkIHN5c3RlbSB0aGlzIGlzIHVzaW5nLCB0byBwcm9wZXJseSBrbm93IHdoZXJlIHRoaXMgZmlsZSBtYXkgYmUuIFRoZSB3YXkgdGhlIGRlcGVuZGVuY2llcyBhcmUgc2V0IHVwIHdpbGwgbGlrZWx5IHJldmVhbCB3aGVyZSBpdCdzIGluY2x1ZGVkLCB3aGljaCB3aWxsIHVsdGltYXRlbHkgbGVhZCBtZSB0byBpdHMgbG9jYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzNjAsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjE0LjI0MTYwNzM4M1oiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2NTUzMjE0OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUERTX0NPUkVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZz0xNjU9Y29uZmlnIEFNRF9YR0JFX0hBVkVfRUNDXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc6MTY5OmNvbmZpZyBQRFNfQ09SRVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE3MC1cXHR0cmlzdGF0ZSBcXFwiQU1EL1BlbnNhbmRvIERhdGEgU3lzdGVtcyBDb3JlIERldmljZSBTdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNDo0NDoxNC4zMDcxNDYyOTFaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODUzOTUxNzgwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZvY3VzaW5nIG9uIHRoZSBQRFNfQ09SRSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gd2UncmUgZGVhbGluZyB3aXRoIHRoZSBgUERTX0NPUkVgIGNvbmZpZ3VyYXRpb24uIFJpZ2h0LCBsZXQncyB6ZXJvIGluIG9uIHRoZSBrZXkgZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIG1vZGlmaWVkIHdpdGhpbiB0aGlzIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgY2hhbmdlcyBpbXBhY3QgdGhlIGNvcmUgbG9naWMuIEJhc2VkIG9uIHRoZSBkaWZmLCBteSBpbW1lZGlhdGUgZm9jdXMgaXMgb246XG5cbiogICBgcGRzY19xY3FfaW50cl9mcmVlYFxuKiAgIGBwZHNjX3FjcV9mcmVlYFxuKiAgIGBwZHNjX2NvcmVfdW5pbml0YFxuKiAgIGBwZHNjX3RlYXJkb3duYFxuKiAgIGBwZHNjX3BjaV9yZXNldF90aHJlYWRgXG4qICAgYHBkc2NfcmVtb3ZlYFxuXG5UaGVzZSBhcmUgbGlrZWx5IHRoZSBmdW5jdGlvbnMgd2hlcmUgdGhlIGNyaXRpY2FsIGNoYW5nZXMgcmVzaWRlLiBOb3csIGxldCBtZSBxdWlja2x5IGFzY2VydGFpbiB0aGF0IGBQRFNfQ09SRWAgaXMgaW5kZWVkIHRoZSBzb2xlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaGVyZS4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHdlJ3JlIG5vdCBpbmFkdmVydGVudGx5IG1pc3NpbmcgYW55IG90aGVyIGFzc29jaWF0ZWQgY29uZmlndXJhdGlvbnMgdGhhdCB3b3VsZCBhZmZlY3QgdGhlc2Ugc2FtZSBmdW5jdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ3MTgsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDQ6MTguMTYxMTAwMzMxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxOTk2NzA5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlBEU19DT1JFXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnPTE2NT1jb25maWcgQU1EX1hHQkVfSEFWRV9FQ0NcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnLTE2OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZzoxNjk6Y29uZmlnIFBEU19DT1JFXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWctMTcwLVxcdHRyaXN0YXRlIFxcXCJBTUQvUGVuc2FuZG8gRGF0YSBTeXN0ZW1zIENvcmUgRGV2aWNlIFN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjE4LjIyMzEwMjQ0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg4ODQ2MjMxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBbmFseXNpcyBvZiBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXRzKipcblxuT2theSwgbGV0J3Mgc2VlIHdoYXQncyByZWFjaGFibGUgd2l0aGluIHRoaXMgYFBEU19DT1JFYCBkcml2ZXIgYW5kIHdoZXJlIHdlIHNob3VsZCBmb2N1cyBvdXIgZnV6emluZyBlZmZvcnRzLiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bmN0aW9uIGNhbGwgaGllcmFyY2h5IHRvIGlkZW50aWZ5IHBvdGVudGlhbCB2dWxuZXJhYmlsaXRpZXMuIEknbSBmb2N1c2luZyBvbiB0aGUgUENJIHJlbW92ZSBwYXRoLCBzdGFydGluZyB3aXRoIGBwZHNjX3JlbW92ZWAuIEl0J3MgdGhlIFBDSSByZW1vdmUgZnVuY3Rpb24sIHNvIGl0J3MgYSBjcml0aWNhbCBwb2ludCBmb3IgZGV2aWNlIHJlbW92YWwgYW5kIGNsZWFudXAuXG5cbk5leHQsIHRoZXJlJ3MgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAsIHdoaWNoIGlzIGEgd29ya3F1ZXVlIGZ1bmN0aW9uLiBUaGlzIGlzIGludGVyZXN0aW5nLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhpcyBpcyBwcm9iYWJseSBzY2hlZHVsZWQgd2hlbiB0aGUgZGV2aWNlIHJlcXVlc3RzIGEgcmVzZXQgb3IgYSB3YXRjaGRvZyB0aW1lciBmaXJlcy4gSSBuZWVkIHRvIGtlZXAgdGhpcyBpbiBtaW5kIGFzIEkgYnVpbGQgbXkgZnV6emluZyBzdHJhdGVneS4gSSdsbCBuZWVkIHRvIGxvb2sgYXQgaXRzIGltcGxlbWVudGF0aW9uIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jYCB0byBzZWUgaG93IGl0J3MgdHJpZ2dlcmVkIGFuZCB3aGF0IGl0IGRvZXMuXG5cbk5vdywgYHBkc2NfdGVhcmRvd25gIGlzIGNhbGxlZCBmcm9tIGBwZHNjX3JlbW92ZWAsIHdoaWNoIG1ha2VzIHNlbnNlIGFzIHBhcnQgb2YgdGhlIFBDSSByZW1vdmFsIHByb2Nlc3MsIGFuZCBpdCBsb29rcyBsaWtlIGBwZHNjX3RlYXJkb3duYCBtaWdodCBiZSBjYWxsZWQgZnJvbSBvdGhlciBwbGFjZXMgYXMgd2VsbCwgc28gaXQgaXMgYSBnb29kIHRhcmdldC4gSW5zaWRlIG9mIGBwZHNjX3RlYXJkb3duYCwgd2UgaGF2ZSBgcGRzY19jb3JlX3VuaW5pdGAuIEFuZCBmaW5hbGx5LCBpbnNpZGUgb2YgYHBkc2NfY29yZV91bmluaXRgLCB3ZSBoYXZlIGBwZHNjX3FjcV9mcmVlYCwgd2hpY2ggaXMgYSBrZXkgcGFydCBvZiB0aGUgcmVzb3VyY2UgY2xlYW51cC5cblxuR2l2ZW4gdGhpcyBjYWxsIGdyYXBoLCBJJ20gdGhpbmtpbmcgYHBkc2NfcmVtb3ZlYCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIGFzIGl0J3MgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgUENJIHJlbW92YWwgcHJvY2Vzcy4gVGhpcyBzaG91bGQgc2V0IGEgYFdvcnRoRnV6emluZz10cnVlYCBmbGFnLiBJIGtub3cgdGhpcyBmcm9tIGV4cGVyaWVuY2UsIGFuZCBpdCdzIGEgZ29vZCBhcHByb2FjaC4gVGhlIG1vc3QgaW1wb3J0YW50IGZ1bmN0aW9ucyB0byBmb2N1cyBvbiBhcmU6XG5cbi0gICBgcGRzY19yZW1vdmVgXG4tICAgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGBcbi0gICBgcGRzY190ZWFyZG93bmBcbi0gICBgcGRzY19jb3JlX3VuaW5pdGBcbi0gICBgcGRzY19xY3FfZnJlZWBcblxuSSBoYXZlIHRvIGNhcmVmdWxseSBhbmFseXplIGBwZHNjX3BjaV9yZXNldF90aHJlYWRgIGJlY2F1c2UgaXTigJlzIGEgd29ya3F1ZXVlLCBidXQgSSdsbCBmb2N1cyBvbiB0aGUgUENJIHJlbW92YWwgcGF0aCBmb3Igbm93LlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MTc1LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjY5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjI0LjExMTU2Njc2N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcwOTQ5NzMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBkc2NfcGNpX3Jlc2V0X3RocmVhZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM9NTcxPXZvaWQgcGRzY19md191cChzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmMtNjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmM6NjEwOnZvaWQgcGRzY19wY2lfcmVzZXRfdGhyZWFkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5jLTYxMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvY29yZS5oPTMyMj12b2lkIHBkc2NfZndfdXAoc3RydWN0IHBkc2MgKnBkc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9jb3JlLmg6MzIzOnZvaWQgcGRzY19wY2lfcmVzZXRfdGhyZWFkKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL2NvcmUuaC0zMjQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jPTIxOD1zdGF0aWMgaW50IHBkc2NfaW5pdF9wZihzdHJ1Y3QgcGRzYyAqcGRzYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9wZHNfY29yZS9tYWluLmMtMjQxLVxcdElOSVRfV09SSyhcXHUwMDI2cGRzYy1cXHUwMDNlaGVhbHRoX3dvcmssIHBkc2NfaGVhbHRoX3RocmVhZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL3Bkc19jb3JlL21haW4uYzoyNDI6XFx0SU5JVF9XT1JLKFxcdTAwMjZwZHNjLVxcdTAwM2VwY2lfcmVzZXRfd29yaywgcGRzY19wY2lfcmVzZXRfdGhyZWFkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvcGRzX2NvcmUvbWFpbi5jLTI0My1cXHR0aW1lcl9zZXR1cChcXHUwMDI2cGRzYy1cXHUwMDNld2R0aW1lciwgcGRzY193ZHRpbWVyX2NiLCAwKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDQ6MjQuNTgyNTIyNTA3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNzEyNTY4NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQQ0kgUmVzZXQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBjb25maXJtaW5nIHRoYXQgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAgKmlzKiBpbmRlZWQgdGhlIHdvcmsgZnVuY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGBwY2lfcmVzZXRfd29ya2AuIFRoYXQncyBhIGtleSBmaXJzdCBzdGVwLiBUaGUgZGVzY3JpcHRpb24gaGl0cyB0aGUgbmFpbCBvbiB0aGUgaGVhZDogaXQncyB0YXJnZXRpbmcgdGVhcmRvd24gYW5kIHJlc2V0IGxvZ2ljLiBBbmQga25vd2luZyBzeXprYWxsZXIncyBQQ0kgZnV6emVyLCB0aGF0J3MgcHJlY2lzZWx5IHRoZSBraW5kIG9mIHRoaW5nIGl0IGV4Y2VscyBhdCB1bmNvdmVyaW5nIOKAkyB0aGUgcHJvYmUsIHJlbW92ZSwgcmVzZXQgY3ljbGUgaXMgaXRzIGJyZWFkIGFuZCBidXR0ZXIuIEknbGwgZGVmaW5pdGVseSBsaXN0IGBQRFNfQ09SRWAgYXMgdGhlIHJlbGV2YW50IGNvbmZpZyBmb3IgdGhpcy5cblxuTm93LCB0byBkaWcgZGVlcGVyLCBJIG5lZWQgdG8gZm9jdXMgb24gYSBmZXcga2V5IHN5bWJvbHMgaGVyZTogYHBkc2NfcmVtb3ZlYCwgYHBkc2NfcGNpX3Jlc2V0X3RocmVhZGAgKG9idmlvdXNseSksIGBwZHNjX3RlYXJkb3duYCwgYHBkc2NfY29yZV91bmluaXRgLCBhbmQgYHBkc2NfcWNxX2ZyZWVgLiBUaGVzZSBhcmUgZ29pbmcgdG8gYmUgdGhlIGNyaXRpY2FsIHBpZWNlcyBpbiB1bmRlcnN0YW5kaW5nIHRoZSBmaXgncyBpbXBhY3QgYW5kIGVuc3VyaW5nIGl0cyBjb21wbGV0ZW5lc3MuXG5cbk9uZSBmaW5hbCwgY3J1Y2lhbCBzdGVwOiBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIGlmIGBQRFNfQ09SRWAgaGFzIGFueSBkZXBlbmRlbmNpZXMgdGhhdCBhcmUgKmFsc28qIHJlbGV2YW50IGFuZCBzaG91bGQgYmUgZW5hYmxlZCB0byBmdWxseSB0ZXN0IHRoaXMgZnVuY3Rpb25hbGl0eS4gSSBjYW4ndCBvdmVybG9vayBhbnkgcG90ZW50aWFsIGludGVyYWN0aW9ucyBvciBpbXBsaWNpdCByZXF1aXJlbWVudHMuIFRpbWUgdG8gZ2V0IGludG8gdGhvc2UgS2NvbmZpZyBmaWxlcy4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MzkyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjI4Ljc1MzgwNDczWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mzk1ODU2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUERTX0NPUkVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWc9MTY1PWNvbmZpZyBBTURfWEdCRV9IQVZFX0VDQ1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvYW1kL0tjb25maWctMTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2FtZC9LY29uZmlnOjE2OTpjb25maWcgUERTX0NPUkVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZy0xNzAtXFx0dHJpc3RhdGUgXFxcIkFNRC9QZW5zYW5kbyBEYXRhIFN5c3RlbXMgQ29yZSBEZXZpY2UgU3VwcG9ydFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDQ6NDQ6MjguODE3NzY4NDM5WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMzUwMTI3MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBLY29uZmlnIEZpbGUqKlxuXG5Pa2F5LCBzbyB0aGUgaW5pdGlhbCBmb2N1cyBpcyB0aGUgS2NvbmZpZyBmaWxlLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGxpbmUgMTY5LiBUaGlzIGxpa2VseSBob2xkcyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBvciBkZXBlbmRlbmNpZXMgcmVsYXRlZCB0byB0aGUgaXNzdWUgSSdtIHRyb3VibGVzaG9vdGluZy4gTXkgYXNzdW1wdGlvbiBpcyB0aGF0IHRoZSByZWxldmFudCBmdW5jdGlvbmFsaXR5LCBmZWF0dXJlLCBvciBtb2R1bGUgaGFzIGl0cyBjb25maWd1cmF0aW9uIGRlZmluZWQgd2l0aGluIHRoaXMgc2VjdGlvbi4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gZGVsdmUgaW50byB0aGUgc3ludGF4IG9mIHRoZSBLY29uZmlnIGVudHJpZXMgdGhlcmUuIEknbGwgYmUgbG9va2luZyBmb3Iga2V5d29yZHMgbGlrZSBgY29uZmlnYCwgYGJvb2xgLCBgdHJpc3RhdGVgLCBgc2VsZWN0YCwgYGRlcGVuZHMgb25gLCBgZGVmYXVsdGAsIGBoZWxwYCwgYW5kIGFueSBhc3NvY2lhdGVkIHN5bWJvbHMgb3IgcmVsYXRpb25zaGlwcy4gSSBhbnRpY2lwYXRlIHVuZGVyc3RhbmRpbmcgdGhpcyB3aWxsIGNsYXJpZnkgdGhlIHN0YXRlIG9mIHRoZSBjb21wb25lbnQgSSdtIGxvb2tpbmcgaW50by5cblxuXG4iLCJJbnB1dFRva2VucyI6Njk3MSwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjMxLjk1MjgwMTUzNFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MDQwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9hbWQvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxNjUsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAxNjU6XFx0Y29uZmlnIEFNRF9YR0JFX0hBVkVfRUNDXFxuIDE2NjpcXHRcXHRib29sXFxuIDE2NzpcXHRcXHRkZWZhdWx0IG5cXG4gMTY4OlxcdFxcbiAxNjk6XFx0Y29uZmlnIFBEU19DT1JFXFxuIDE3MDpcXHRcXHR0cmlzdGF0ZSBcXFwiQU1EL1BlbnNhbmRvIERhdGEgU3lzdGVtcyBDb3JlIERldmljZSBTdXBwb3J0XFxcIlxcbiAxNzE6XFx0XFx0ZGVwZW5kcyBvbiA2NEJJVCBcXHUwMDI2XFx1MDAyNiBQQ0lcXG4gMTcyOlxcdFxcdHNlbGVjdCBBVVhJTElBUllfQlVTXFxuIDE3MzpcXHRcXHRzZWxlY3QgTkVUX0RFVkxJTktcXG4gMTc0OlxcdFxcdGhlbHBcXG4gMTc1OlxcdFxcdCAgVGhpcyBlbmFibGVzIHRoZSBzdXBwb3J0IGZvciB0aGUgQU1EL1BlbnNhbmRvIENvcmUgZGV2aWNlIGZhbWlseSBvZlxcbiAxNzY6XFx0XFx0ICBhZGFwdGVycy4gIE1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gb24gdGhpcyBkcml2ZXIgY2FuIGJlXFxuIDE3NzpcXHRcXHQgIGZvdW5kIGluXFxuIDE3ODpcXHRcXHQgIFxcdTAwM2NmaWxlOkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9hbWQvcGRzX2NvcmUucnN0XFx1MDAzZS5cXG4gMTc5OlxcdFxcbiAxODA6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLiBUaGUgbW9kdWxlXFxuIDE4MTpcXHRcXHQgIHdpbGwgYmUgY2FsbGVkIHBkc19jb3JlLlxcbiAxODI6XFx0XFxuIDE4MzpcXHRlbmRpZiAjIE5FVF9WRU5ET1JfQU1EXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA0OjQ0OjMxLjk1Mjg3MzQ1NFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDgzNzQ2NjE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuIE15IGN1cnJlbnQgdGhvdWdodCBwcm9jZXNzIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuXG5cbioqQW5hbHl6aW5nIHRoZSBEZXBlbmRlbmN5IFJlcXVpcmVtZW50cyoqXG5cblJpZ2h0LCBzbyB0aGUgc3lzdGVtIHJlbGllcyBvbiB0aGUgc3RhbmRhcmQgYDY0QklUYCBhcmNoaXRlY3R1cmUgYW5kIGBQQ0lgIGludGVyZmFjZS4gVGhhdCdzIGdvb2Q7IG5vdGhpbmcgdW5leHBlY3RlZCB0aGVyZS4gR2l2ZW4gdGhvc2Ugc3RhbmRhcmQgZGVwZW5kZW5jaWVzLCBJIGNhbiBjb25maWRlbnRseSBjb25jbHVkZSB0aGF0IHRoZSBgUERTX0NPUkVgIG1vZHVsZSBpcyBzdWZmaWNpZW50IHRvIGhhbmRsZSB0aGUgcmVxdWlyZWQgZnVuY3Rpb25hbGl0eS4gSXQgbG9va3MgbGlrZSB3ZSBjYW4gbW92ZSBmb3J3YXJkIHdpdGhvdXQgYW55IGNvbmNlcm5zIGFib3V0IHRoZXNlIGJhc2UgZGVwZW5kZW5jaWVzLlxuXG5Ob3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCB0byBjb25zaWRlciB3aWxsIGJlIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc0NjgsIk91dHB1dFRva2VucyI6MTM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNDo0NDozNS40MzY2MjI2NTFaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4MzI2NDY2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUERTX0NPUkVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwZHNjX3JlbW92ZVwiLFxuICAgIFwicGRzY19wY2lfcmVzZXRfdGhyZWFkXCIsXG4gICAgXCJwZHNjX3RlYXJkb3duXCIsXG4gICAgXCJwZHNjX2NvcmVfdW5pbml0XCIsXG4gICAgXCJwZHNjX3FjcV9mcmVlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHRlYXJkb3duLCB1bmluaXRpYWxpemF0aW9uLCBhbmQgUENJIHJlc2V0IGxvZ2ljIG9mIHRoZSBBTUQgUERTIGNvcmUgZHJpdmVyLiBUaGVzZSBwYXRocyBjYW4gYmUgdHJpZ2dlcmVkIGJ5IHN5emthbGxlcidzIFBDSSBkZXZpY2UgZW11bGF0aW9uIGR1cmluZyBwcm9iZS9yZW1vdmUgYW5kIHJlc2V0IGN5Y2xlcywgbWFraW5nIGl0IHN1aXRhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBEU19DT1JFXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicGRzY19yZW1vdmVcIixcbiAgICBcInBkc2NfcGNpX3Jlc2V0X3RocmVhZFwiLFxuICAgIFwicGRzY190ZWFyZG93blwiLFxuICAgIFwicGRzY19jb3JlX3VuaW5pdFwiLFxuICAgIFwicGRzY19xY3FfZnJlZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSB0ZWFyZG93biwgdW5pbml0aWFsaXphdGlvbiwgYW5kIFBDSSByZXNldCBsb2dpYyBvZiB0aGUgQU1EIFBEUyBjb3JlIGRyaXZlci4gVGhlc2UgcGF0aHMgY2FuIGJlIHRyaWdnZXJlZCBieSBzeXprYWxsZXIncyBQQ0kgZGV2aWNlIGVtdWxhdGlvbiBkdXJpbmcgcHJvYmUvcmVtb3ZlIGFuZCByZXNldCBjeWNsZXMsIG1ha2luZyBpdCBzdWl0YWJsZSBmb3IgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowg86rv[1] Phase: Succeeded StartedAt: 2026-07-15 04:44:46 +0000 UTC FinishedAt: 2026-07-15 04:44:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-15 04:44:46 +0000 UTC FinishedAt: 2026-07-15 04:44:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2] Phase: Succeeded StartedAt: 2026-07-15 04:44:46 +0000 UTC FinishedAt: 2026-07-15 05:57:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-15 04:44:46 +0000 UTC FinishedAt: 2026-07-15 05:57:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-15 04:44:46 +0000 UTC FinishedAt: 2026-07-15 04:44:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-15 04:44:46 +0000 UTC FinishedAt: 2026-07-15 04:44:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowg86rv/series-workflowg86rv-convert-artifact-3536830520/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-15 04:44:57 +0000 UTC FinishedAt: 2026-07-15 05:17:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-15 04:44:57 +0000 UTC FinishedAt: 2026-07-15 05:17:10 +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:*704eb2d6-1312-444e-b27a-8009be4d9bd0,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-workflowg86rv/series-workflowg86rv-convert-artifact-3536830520/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": "2059576d-e7d3-4ae2-b708-765d91c7cc79", "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-workflowg86rv/series-workflowg86rv-build-action-1627457006/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-15 04:44:57 +0000 UTC FinishedAt: 2026-07-15 05:17:00 +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:*704eb2d6-1312-444e-b27a-8009be4d9bd0,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-workflowg86rv/series-workflowg86rv-convert-artifact-3536830520/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": "2059576d-e7d3-4ae2-b708-765d91c7cc79", "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-workflowg86rv/series-workflowg86rv-build-action-1627457006/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-15 05:17:10 +0000 UTC FinishedAt: 2026-07-15 05:17:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-15 05:17:10 +0000 UTC FinishedAt: 2026-07-15 05:17:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-15 05:17:10 +0000 UTC FinishedAt: 2026-07-15 05:17:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-15 05:17:10 +0000 UTC FinishedAt: 2026-07-15 05:17:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowg86rv/series-workflowg86rv-convert-artifact-1798465439/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-15 05:17:20 +0000 UTC FinishedAt: 2026-07-15 05:19:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-15 05:17:20 +0000 UTC FinishedAt: 2026-07-15 05:19:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2059576d-e7d3-4ae2-b708-765d91c7cc79,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-workflowg86rv/series-workflowg86rv-build-action-1627457006/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-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-15 05:19:32 +0000 UTC FinishedAt: 2026-07-15 05:19:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-15 05:19:32 +0000 UTC FinishedAt: 2026-07-15 05:19:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-15 05:19:32 +0000 UTC FinishedAt: 2026-07-15 05:51:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-15 05:19:32 +0000 UTC FinishedAt: 2026-07-15 05:51:45 +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:*704eb2d6-1312-444e-b27a-8009be4d9bd0,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-workflowg86rv/series-workflowg86rv-convert-artifact-1798465439/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": "b5957430-0308-4a51-b576-bb7d725b4de3", "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-workflowg86rv/series-workflowg86rv-build-action-3493739059/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-15 05:19:32 +0000 UTC FinishedAt: 2026-07-15 05:51:35 +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:*704eb2d6-1312-444e-b27a-8009be4d9bd0,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-workflowg86rv/series-workflowg86rv-convert-artifact-1798465439/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": "b5957430-0308-4a51-b576-bb7d725b4de3", "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-workflowg86rv/series-workflowg86rv-build-action-3493739059/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-15 05:51:45 +0000 UTC FinishedAt: 2026-07-15 05:51:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-15 05:51:45 +0000 UTC FinishedAt: 2026-07-15 05:51:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-15 05:51:45 +0000 UTC FinishedAt: 2026-07-15 05:54:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-15 05:51:45 +0000 UTC FinishedAt: 2026-07-15 05:53:50 +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:*b5957430-0308-4a51-b576-bb7d725b4de3,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-workflowg86rv/series-workflowg86rv-build-action-3493739059/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-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-15 05:54:00 +0000 UTC FinishedAt: 2026-07-15 05:57:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-15 05:54:00 +0000 UTC FinishedAt: 2026-07-15 05:57:07 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"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:*2059576d-e7d3-4ae2-b708-765d91c7cc79,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b5957430-0308-4a51-b576-bb7d725b4de3,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-workflowg86rv/series-workflowg86rv-build-action-1627457006/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-workflowg86rv/series-workflowg86rv-build-action-3493739059/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-15 05:54:00 +0000 UTC FinishedAt: 2026-07-15 05:54:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-15 05:54:00 +0000 UTC FinishedAt: 2026-07-15 05:54:11 +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-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"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-workflowg86rv/series-workflowg86rv-convert-artifact-767632312/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-15 05:54:00 +0000 UTC FinishedAt: 2026-07-15 05:54:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-15 05:54:00 +0000 UTC FinishedAt: 2026-07-15 05:54:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-15 05:54:00 +0000 UTC FinishedAt: 2026-07-15 05:54:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-15 05:54:20 +0000 UTC FinishedAt: 2026-07-15 05:57:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowg86rv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pdsc_remove","pdsc_pci_reset_thread","pdsc_teardown","pdsc_core_uninit","pdsc_qcq_free"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["PDS_CORE"],"series_id":"d3762ec6-7746-486d-9e74-740d09bd72c2","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-15 05:54:20 +0000 UTC FinishedAt: 2026-07-15 05:56:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*2059576d-e7d3-4ae2-b708-765d91c7cc79,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*b5957430-0308-4a51-b576-bb7d725b4de3,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-workflowg86rv/series-workflowg86rv-build-action-1627457006/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-workflowg86rv/series-workflowg86rv-build-action-3493739059/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-workflowg86rv/series-workflowg86rv-convert-artifact-767632312/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,}