Name: series-workflow59842 Phase: Succeeded StartedAt: 2026-08-04 07:53:40 +0000 UTC FinishedAt: 2026-08-04 12:28:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[0] Phase: Succeeded StartedAt: 2026-08-04 07:53:40 +0000 UTC FinishedAt: 2026-08-04 08:41:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[0].run-triage Phase: Succeeded StartedAt: 2026-08-04 07:53:40 +0000 UTC FinishedAt: 2026-08-04 08:41:56 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "5aed8f404401bfa1570cf0c3ffed7b752f568e83", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PPP", "PPPOE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "5aed8f404401bfa1570cf0c3ffed7b752f568e83", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PPP", "PPPOE" ], "series_id": "61e13d6f-fb3d-4174-b80a-bdf697b3fc21" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "pppoe_rcv", "pppoe_backlog_rcv", "pppoe_connect" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7LAogICAgJiMzNDtQUFBPRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcG9lX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9iYWNrbG9nX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9jb25uZWN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBQUFBvRSByZWNlaXZlIHBhdGggdG8gYnlwYXNzIHRoZSBzb2NrZXQgYmFja2xvZyB3aGVuIHRoZSBzb2NrZXQgaXMgYm91bmQsIG9wdGltaXppbmcgcGFja2V0IGRlbGl2ZXJ5LiBJdCBhbHNvIHJlbmFtZXMgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBhZGRzIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGluIGBwcHBvZV9jb25uZWN0YCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyB3aGVuIHVuaGFzaGluZyB0aGUgc29ja2V0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDg6NDE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiOThjZTk5ODg3ZjM2OWQwZWMyZDdmODI5OWE4YmI4OWNlZDkwNDcyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAwODo0MTowMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXG5pbmRleCA2ODc0YTFhOGVkYWYxLi4wNjI0MTE2MjQxODIzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXG5AQCAtMzQ1LDEwICYjNDM7MzQ1LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgcHBwb2Vfbm90aWZpZXIgPSB7XG4gXG4gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAqXG4tICogRG8gdGhlIHJlYWwgd29yayBvZiByZWNlaXZpbmcgYSBQUFBvRSBTZXNzaW9uIGZyYW1lLlxuJiM0MzsgKiBCYWNrbG9nIHJlY2VpdmUgYSBQUFBvRSBTZXNzaW9uIGZyYW1lIGFuZCBkZWxpdmVyIHRvIHVzZXJzcGFjZS5cbiAgKlxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi1zdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiYjNDM7c3RhdGljIGludCBwcHBvZV9iYWNrbG9nX3JjdihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuIFx0c3RydWN0IHBwcG94X3NvY2sgKnBvID0gcHBwb3hfc2soc2spO1xuIFxuQEAgLTM3Myw3ICYjNDM7MzczLDcgQEAgc3RhdGljIGludCBwcHBvZV9yY3ZfY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4gXG4gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAqXG4tICogUmVjZWl2ZSB3cmFwcGVyIGNhbGxlZCBpbiBCSCBjb250ZXh0LlxuJiM0MzsgKiBSZWNlaXZlIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZS5cbiAgKlxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiBzdGF0aWMgaW50IHBwcG9lX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuQEAgLTQyMCw2ICYjNDM7NDIwLDEwIEBAIHN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRpZiAoIXBvKVxuIFx0XHRnb3RvIGRyb3A7XG4gXG4mIzQzO1x0aWYgKGxpa2VseShwby1cdTAwM2Vzay5za19zdGF0ZSBcdTAwMjYgUFBQT1hfQk9VTkQpKSB7XG4mIzQzO1x0XHRwcHBfaW5wdXQoXHUwMDI2cG8tXHUwMDNlY2hhbiwgc2tiKTtcbiYjNDM7XHRcdHJldHVybiBORVRfUlhfU1VDQ0VTUztcbiYjNDM7XHR9XG4gXHRyZXR1cm4gX19za19yZWNlaXZlX3NrYihcdTAwMjZwby1cdTAwM2Vzaywgc2tiLCAwLCAxLCBmYWxzZSk7XG4gXG4gZHJvcDpcbkBAIC01MjQsNyAmIzQzOzUyOCw3IEBAIHN0YXRpYyBpbnQgcHBwb2VfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywgaW50IGtlcm4pXG4gXHRzb2NrLVx1MDAzZXN0YXRlXHQ9IFNTX1VOQ09OTkVDVEVEO1xuIFx0c29jay1cdTAwM2VvcHNcdD0gXHUwMDI2cHBwb2Vfb3BzO1xuIFxuLVx0c2stXHUwMDNlc2tfYmFja2xvZ19yY3ZcdD0gcHBwb2VfcmN2X2NvcmU7XG4mIzQzO1x0c2stXHUwMDNlc2tfYmFja2xvZ19yY3ZcdD0gcHBwb2VfYmFja2xvZ19yY3Y7XG4gXHRzay1cdTAwM2Vza19kZXN0cnVjdFx0XHQ9IHBwcG9lX2Rlc3RydWN0O1xuIFx0c2stXHUwMDNlc2tfc3RhdGVcdFx0PSBQUFBPWF9OT05FO1xuIFx0c2stXHUwMDNlc2tfdHlwZVx0XHQ9IFNPQ0tfU1RSRUFNO1xuQEAgLTYyNSw2ICYjNDM7NjI5LDEzIEBAIHN0YXRpYyBpbnQgcHBwb2VfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHJfdW5zaXplZCAqdXNlcnZhZGRyXG4gXHRcdHBuID0gcHBwb2VfcGVybmV0KHNvY2tfbmV0KHNrKSk7XG4gXHRcdGRlbGV0ZV9pdGVtKHBuLCBwby1cdTAwM2VwcHBvZV9wYS5zaWQsXG4gXHRcdFx0ICAgIHBvLVx1MDAzZXBwcG9lX3BhLnJlbW90ZSwgcG8tXHUwMDNlcHBwb2VfaWZpbmRleCk7XG4mIzQzO1xuJiM0MztcdFx0LyogcHBwb2VfcmN2KCkgY2FuIGNhbGwgcHBwX2lucHV0KCkgd2l0aG91dCB0YWtpbmcgdGhlIHNvY2tldFxuJiM0MztcdFx0ICogbG9jay4gT25jZSB0aGUgc29ja2V0IGlzIHVuaGFzaGVkLCB3YWl0IGZvciBhbnkgcmVjZWl2ZSBwYXRoXG4mIzQzO1x0XHQgKiB0aGF0IGZvdW5kIGl0IGVhcmxpZXIgYmVmb3JlIGNsZWFyaW5nIGFuZCByZXVzaW5nIHBvLVx1MDAzZWNoYW4uXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdHN5bmNocm9uaXplX25ldCgpO1xuJiM0MztcbiBcdFx0aWYgKHBvLVx1MDAzZXBwcG9lX2Rldikge1xuIFx0XHRcdGRldl9wdXQocG8tXHUwMDNlcHBwb2VfZGV2KTtcbiBcdFx0XHRwby1cdTAwM2VwcHBvZV9kZXYgPSBOVUxMO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQUFAmIzM0OywKICAgICYjMzQ7UFBQT0UmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwcHBvZV9yY3YmIzM0OywKICAgICYjMzQ7cHBwb2VfYmFja2xvZ19yY3YmIzM0OywKICAgICYjMzQ7cHBwb2VfY29ubmVjdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoIHRvIGJ5cGFzcyB0aGUgc29ja2V0IGJhY2tsb2cgd2hlbiB0aGUgc29ja2V0IGlzIGJvdW5kLCBvcHRpbWl6aW5nIHBhY2tldCBkZWxpdmVyeS4gSXQgYWxzbyByZW5hbWVzIGBwcHBvZV9yY3ZfY29yZWAgdG8gYHBwcG9lX2JhY2tsb2dfcmN2YCBhbmQgYWRkcyBhIGBzeW5jaHJvbml6ZV9uZXQoKWAgY2FsbCBpbiBgcHBwb2VfY29ubmVjdGAgdG8gcHJldmVudCByYWNlIGNvbmRpdGlvbnMgd2hlbiB1bmhhc2hpbmcgdGhlIHNvY2tldC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYjk4Y2U5OTg4N2YzNjlkMGVjMmQ3ZjgyOTlhOGJiODljZWQ5MDQ3MgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDQgMDg6NDE6MDIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCmluZGV4IDY4NzRhMWE4ZWRhZjEuLjA2MjQxMTYyNDE4MjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCkBAIC0zNDUsMTAgJiM0MzszNDUsMTAgQEAgc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBwcHBvZV9ub3RpZmllciA9IHsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIERvIHRoZSByZWFsIHdvcmsgb2YgcmVjZWl2aW5nIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZS4KJiM0MzsgKiBCYWNrbG9nIHJlY2VpdmUgYSBQUFBvRSBTZXNzaW9uIGZyYW1lIGFuZCBkZWxpdmVyIHRvIHVzZXJzcGFjZS4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKJiM0MztzdGF0aWMgaW50IHBwcG9lX2JhY2tsb2dfcmN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3QgcHBwb3hfc29jayAqcG8gPSBwcHBveF9zayhzayk7CiAKQEAgLTM3Myw3ICYjNDM7MzczLDcgQEAgc3RhdGljIGludCBwcHBvZV9yY3ZfY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBSZWNlaXZlIHdyYXBwZXIgY2FsbGVkIGluIEJIIGNvbnRleHQuCiYjNDM7ICogUmVjZWl2ZSBhIFBQUG9FIFNlc3Npb24gZnJhbWUuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKQEAgLTQyMCw2ICYjNDM7NDIwLDEwIEBAIHN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaWYgKCFwbykKIAkJZ290byBkcm9wOwogCiYjNDM7CWlmIChsaWtlbHkocG8tJmd0O3NrLnNrX3N0YXRlICZhbXA7IFBQUE9YX0JPVU5EKSkgewomIzQzOwkJcHBwX2lucHV0KCZhbXA7cG8tJmd0O2NoYW4sIHNrYik7CiYjNDM7CQlyZXR1cm4gTkVUX1JYX1NVQ0NFU1M7CiYjNDM7CX0KIAlyZXR1cm4gX19za19yZWNlaXZlX3NrYigmYW1wO3BvLSZndDtzaywgc2tiLCAwLCAxLCBmYWxzZSk7CiAKIGRyb3A6CkBAIC01MjQsNyAmIzQzOzUyOCw3IEBAIHN0YXRpYyBpbnQgcHBwb2VfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywgaW50IGtlcm4pCiAJc29jay0mZ3Q7c3RhdGUJPSBTU19VTkNPTk5FQ1RFRDsKIAlzb2NrLSZndDtvcHMJPSAmYW1wO3BwcG9lX29wczsKIAotCXNrLSZndDtza19iYWNrbG9nX3Jjdgk9IHBwcG9lX3Jjdl9jb3JlOwomIzQzOwlzay0mZ3Q7c2tfYmFja2xvZ19yY3YJPSBwcHBvZV9iYWNrbG9nX3JjdjsKIAlzay0mZ3Q7c2tfZGVzdHJ1Y3QJCT0gcHBwb2VfZGVzdHJ1Y3Q7CiAJc2stJmd0O3NrX3N0YXRlCQk9IFBQUE9YX05PTkU7CiAJc2stJmd0O3NrX3R5cGUJCT0gU09DS19TVFJFQU07CkBAIC02MjUsNiAmIzQzOzYyOSwxMyBAQCBzdGF0aWMgaW50IHBwcG9lX2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyX3Vuc2l6ZWQgKnVzZXJ2YWRkcgogCQlwbiA9IHBwcG9lX3Blcm5ldChzb2NrX25ldChzaykpOwogCQlkZWxldGVfaXRlbShwbiwgcG8tJmd0O3BwcG9lX3BhLnNpZCwKIAkJCSAgICBwby0mZ3Q7cHBwb2VfcGEucmVtb3RlLCBwby0mZ3Q7cHBwb2VfaWZpbmRleCk7CiYjNDM7CiYjNDM7CQkvKiBwcHBvZV9yY3YoKSBjYW4gY2FsbCBwcHBfaW5wdXQoKSB3aXRob3V0IHRha2luZyB0aGUgc29ja2V0CiYjNDM7CQkgKiBsb2NrLiBPbmNlIHRoZSBzb2NrZXQgaXMgdW5oYXNoZWQsIHdhaXQgZm9yIGFueSByZWNlaXZlIHBhdGgKJiM0MzsJCSAqIHRoYXQgZm91bmQgaXQgZWFybGllciBiZWZvcmUgY2xlYXJpbmcgYW5kIHJldXNpbmcgcG8tJmd0O2NoYW4uCiYjNDM7CQkgKi8KJiM0MzsJCXN5bmNocm9uaXplX25ldCgpOwomIzQzOwogCQlpZiAocG8tJmd0O3BwcG9lX2RldikgewogCQkJZGV2X3B1dChwby0mZ3Q7cHBwb2VfZGV2KTsKIAkJCXBvLSZndDtwcHBvZV9kZXYgPSBOVUxMOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwODo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzE5CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMjE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUFBQb0UgUmVjZWl2ZSBQYXRoIE1vZGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBkcml2ZXJzL25ldC9wcHAvcHBwb2UuY2AuIE15IGluaXRpYWwgcmVhZCBpcyB0aGF0IHRoZXkmIzM5O3ZlIHJlZmFjdG9yZWQgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBmdW5kYW1lbnRhbGx5IGFsdGVyZWQgdGhlIGBwcHBvZV9yY3ZgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBpcyBhIGNvbmRpdGlvbmFsIGJ5cGFzcyBvZiB0aGUgc29ja2V0IGJhY2tsb2c6IGlmIHRoZSBzb2NrZXQgaXMgYm91bmQgKGFzIGluZGljYXRlZCBieSBgcG8tJmd0O3NrLnNrX3N0YXRlICZhbXA7IFBQUE9YX0JPVU5EYCksIGBwcHBvZV9yY3ZgIG5vdyBkaXJlY3RseSBpbnZva2VzIGBwcHBfaW5wdXQoJmFtcDtwby0mZ3Q7Y2hhbiwgc2tiKWAuIFRoaXMgaXMgY2xlYXJseSBhbiBvcHRpbWl6YXRpb24gYWltaW5nIGZvciByZWR1Y2VkIGxhdGVuY3kgYnkgZWxpbWluYXRpbmcgdGhlIHF1ZXVpbmcgb3ZlcmhlYWQuCgpJJiMzOTttIGFsc28gc2VlaW5nIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGFkZGVkIGluIGBwcHBvZV9jb25uZWN0YCBkdXJpbmcgdGhlIHVuaGFzaGluZyBwcm9jZXNzLCByaWdodCBiZWZvcmUgYHBvLSZndDtjaGFuYCBpcyBjbGVhcmVkLiBUaGlzIGlzIHNtYXJ0OyB0aGV5JiMzOTtyZSBlbnN1cmluZyB0aGF0IGFueSBsaW5nZXJpbmcgcmVjZWl2ZSBwYXRocyB3aGljaCBtaWdodCBoYXZlIGZvdW5kIHRoZSBzb2NrZXQgcHJpb3IgdG8gaXRzIHVuaGFzaGluZyBhcmUgYWxsb3dlZCB0byBjb21wbGV0ZS4gVGhpcyBwcmV2ZW50cyBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIHdoZW4gcmV1c2luZyB0aGUgYHBvLSZndDtjaGFuYC4KCkVzc2VudGlhbGx5LCB0aGlzIGlzIGEgdGFyZ2V0ZWQgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQsIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIFBQUG9FIHJlY2VpdmUgcGF0aCwgd2hpY2ggYWltcyB0byBpbXByb3ZlIHRoZSBlZmZpY2llbmN5IHdoZW4gc29ja2V0cyBhcmUgYm91bmQuIFRoZSBkaXJlY3QgY2FsbCB0byBgcHBwX2lucHV0YCBpcyBwb3RlbnRpYWxseSBzaWduaWZpY2FudC4KCkJlZm9yZSBJIGRlbHZlIGRlZXBlciBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFuZCBwb3RlbnRpYWwgaW1wbGljYXRpb25zLCBJIG5lZWQgdG8gY2hlY2sgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGltZSB0byB1c2UgYGdyZXBwZXJgIGFuZCBmaW5kIHRoZSByZWxldmFudCBjb25maWcgc3ltYm9scyBmb3IgYGRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jYC4gSSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoaXMgY2hhbmdlIGlzIHByb3Blcmx5IGd1YXJkZWQgYnkgY29uZmlndXJhdGlvbiBhbmQgdGhhdCBpdCBpcyBhY3RpdmUgaW4gdGhlIGNvbnRleHRzIHdoZXJlIGl0IGlzIGxpa2VseSB0byBiZSB1c2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BwcG9lXFwubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcHBwL01ha2VmaWxlPTEyPW9iai0kKENPTkZJR19QUFBPWCkgJiM0Mzs9IHBwcG94Lm9cbmRyaXZlcnMvbmV0L3BwcC9NYWtlZmlsZToxMzpvYmotJChDT05GSUdfUFBQT0UpICYjNDM7PSBwcHBvZS5vXG5kcml2ZXJzL25ldC9wcHAvTWFrZWZpbGUtMTQtb2JqLSQoQ09ORklHX1BQVFApICYjNDM7PSBwcHRwLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwODo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDMwCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRXhhbWluaW5nIFBQUG9FIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIHRoZSBhY3RpdmUgY29uZmlndXJhdGlvbiBpcyBjbGVhcmx5IGBDT05GSUdfUFBQT0VgLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyBhbHdheXMgdG8gZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIgY29tcG9uZW50cyBhcmUgcmVxdWlyZWQsIG9yIG9wdGlvbmFsbHkgbGlua2VkLCB0byBzdXBwb3J0IHRoaXMgY29uZmlndXJhdGlvbi4gQXJlIHRoZXJlIHNwZWNpZmljIG5ldHdvcmsgZHJpdmVycywgdW5kZXJseWluZyBwcm90b2NvbHMsIG9yIG90aGVyIGtlcm5lbCBtb2R1bGVzIHRoYXQgbmVlZCB0byBiZSBpbiBwbGFjZT8gVGhpcyBpc24mIzM5O3QganVzdCBhYm91dCBlbnN1cmluZyB0aGUgZmVhdHVyZSB3b3JrczsgaXQmIzM5O3MgYWJvdXQgYW50aWNpcGF0aW5nIHBvdGVudGlhbCBjb25mbGljdHMgb3IgcGVyZm9ybWFuY2UgYm90dGxlbmVja3MuIEkgbmVlZCB0byBxdWlja2x5IHZpc3VhbGl6ZSB0aGUgZGVwZW5kZW5jeSB0cmVlIGFuZCBwaW5wb2ludCBhbnkgYXJlYXMgdGhhdCBtaWdodCByZXF1aXJlIHNwZWNpYWwgYXR0ZW50aW9uIGR1cmluZyB0ZXN0aW5nIG9yIGRlcGxveW1lbnQuIFdoYXQmIzM5O3MgdGhlIGJlc3Qgd2F5IHRvIHRyYWNlIHRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMgYW5kIHRoZSBLY29uZmlnIHN0cnVjdHVyZSB0byBtYXAgdGhpcyBvdXQgcXVpY2tseT8gSSB3YW50IHRvIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueSBjcml0aWNhbCBwaWVjZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDg6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBQUE9FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcHBwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMTM9Y29uZmlnIFBQUE9YXG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE1LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTE2OmNvbmZpZyBQUFBPRVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE3LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIG92ZXIgRXRoZXJuZXRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMjc9Y2hvaWNlXG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTM4LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTM5OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQwLVx0Ym9vbCBcJiMzNDsxIGJpdCAoMiBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQxLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQyOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMlxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDsyIGJpdHMgKDQgYnVja2V0cylcJiMzNDtcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0NC1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0NTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzRcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0Ni1cdGJvb2wgXCYjMzQ7NCBiaXRzICgxNiBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ3LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ4OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfOFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ5LVx0Ym9vbCBcJiMzNDs4IGJpdHMgKDI1NiBidWNrZXRzKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE1MT1lbmRjaG9pY2VcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE1Mi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE1Mzpjb25maWcgUFBQT0VfSEFTSF9CSVRTXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTQtXHRpbnRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwODo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDcwCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIFBQUG9FIEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdGFrZSBhIGNvbXByZWhlbnNpdmUgbG9vayBhdCB0aGUgS2NvbmZpZyBmaWxlIGZvciBQUFBvRS4gSSB3YW50IHRvIHVuZGVyc3RhbmQgKmV2ZXJ5dGhpbmcqIOKAkyB0aGUgZGVwZW5kZW5jaWVzLCB0aGUgZGVmYXVsdCB2YWx1ZXMsIGFsbCB0aGUgY29uZmlndXJhYmxlIG9wdGlvbnMsIGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIGVhY2ggc2V0dGluZy4gVGhpcyBpc24mIzM5O3QganVzdCBhIGNhc3VhbCBnbGFuY2U7IEkgbmVlZCB0aGUgY29tcGxldGUgcGljdHVyZS4gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIGRldGFpbHMsIHRoZSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgdW5kZXJseWluZyBuZXR3b3JrIHN0YWNrLCBhbmQgaG93IHRoaXMgY29uZmlndXJhdGlvbiB3aWxsIGFmZmVjdCBwZXJmb3JtYW5jZSBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24uIEkgbmVlZCB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIGhpZGRlbiBnb3RjaGFzIG9yIHVuZXhwZWN0ZWQgY29uZmlndXJhdGlvbnMsIGFuZCB0byBiZSBjZXJ0YWluIHRoaXMgaW1wbGVtZW50YXRpb24gd2lsbCBtZWV0IGN1cnJlbnQgYW5kIGZ1dHVyZSBvcGVyYXRpb25hbCByZXF1aXJlbWVudHMuIFRoZSBzcGVjaWZpYyBwYXJhbWV0ZXJzIHdpbGwgZHJpdmUgb3B0aW1pemF0aW9uIG9mIHRoZSBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcHBwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDExMDpcdFx0ICB3aGljaCBjYW4gbGVhZCB0byBiYWQgcmVzdWx0cyBpZiB0aGUgQVRNIHBlZXIgbG9zZXMgc3RhdGUgYW5kXG4gMTExOlx0XHQgIGNoYW5nZXMgaXRzIGVuY2Fwc3VsYXRpb24gdW5pbGF0ZXJhbGx5LlxuIDExMjpcdFxuIDExMzpcdGNvbmZpZyBQUFBPWFxuIDExNDpcdFx0dHJpc3RhdGVcbiAxMTU6XHRcbiAxMTY6XHRjb25maWcgUFBQT0VcbiAxMTc6XHRcdHRyaXN0YXRlIFwmIzM0O1BQUCBvdmVyIEV0aGVybmV0XCYjMzQ7XG4gMTE4Olx0XHRzZWxlY3QgUFBQT1hcbiAxMTk6XHRcdGhlbHBcbiAxMjA6XHRcdCAgU3VwcG9ydCBmb3IgUFBQIG92ZXIgRXRoZXJuZXQuXG4gMTIxOlx0XG4gMTIyOlx0XHQgIFRvIHdvcmsgaW4gY2xpZW50IG1vZGUsIHBwcGQgdmVyc2lvbiAyLjQuMiBvciBsYXRlciBpcyByZXF1aXJlZC5cbiAxMjM6XHRcdCAgVG8gd29yayBpbiBzZXJ2ZXIgbW9kZSwgdGhlIHBwcG9lLXNlcnZlciBjb21tYW5kIGZyb20gdGhlIFJQLVBQUG9FXG4gMTI0Olx0XHQgIHBhY2thZ2UgaXMgYWxzbyByZXF1aXJlZCwgYXZhaWxhYmxlIGF0XG4gMTI1Olx0XHQgIFx1MDAzY2h0dHBzOi8vZGlhbm5lLnNrb2xsLmNhL3Byb2plY3RzL3JwLXBwcG9lL1x1MDAzZS5cbiAxMjY6XHRcbiAxMjc6XHRjaG9pY2VcbiAxMjg6XHRcdHByb21wdCBcJiMzNDtOdW1iZXIgb2YgUFBQb0UgaGFzaCBiaXRzXCYjMzQ7XG4gMTI5Olx0XHRkZWZhdWx0IFBQUE9FX0hBU0hfQklUU180XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDg6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU4NAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqUFBQIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIHRoZSBpc3N1ZSBhdCBoYW5kIGhpbmdlcyBvbiB0aGUgUG9pbnQtdG8tUG9pbnQgUHJvdG9jb2wgKFBQUCkuIEJlZm9yZSBJIGV2ZW4gZGlnIGludG8gdGhlIHNwZWNpZmljcyBvZiAqdGhpcyogcGFydGljdWxhciBzaXR1YXRpb24sIG15IGZpcnN0IHN0ZXAgaXMgYWx3YXlzIHRvIHZlcmlmeSB0aGUgUFBQIGNvbmZpZ3VyYXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB1bmRlcmx5aW5nIGluZnJhc3RydWN0dXJlIGFuZCBlbnN1cmUgdGhlIGZ1bmRhbWVudGFsIGNvbm5lY3Rpb24gcGFyYW1ldGVycyBhcmUgY29ycmVjdC4gVGhpcyBtZWFucyBJJiMzOTttIGltbWVkaWF0ZWx5IGdvaW5nIHRvIGxvb2sgYXQgdGhlIFBQUCBzZXR0aW5nczogYXV0aGVudGljYXRpb24gbWV0aG9kcywgSVAgYWRkcmVzc2luZyBuZWdvdGlhdGlvbiAod2hldGhlciBpdCYjMzk7cyBkeW5hbWljIG9yIHN0YXRpYyBhbmQgdGhlIHBvb2xzLCByYW5nZXMgZXRjLiksIGFuZCBsaW5rIGNvbnRyb2wgcHJvdG9jb2wgb3B0aW9ucy4gQXJlIHdlIHVzaW5nIENIQVAsIFBBUCwgb3IgcGVyaGFwcyBhIG1vcmUgcm9idXN0IEVBUCBtZXRob2Q/IFdoYXQgYWJvdXQgTVRVIHNpemUgbmVnb3RpYXRpb24/IEFueSBmcmFnbWVudGF0aW9uIGNvbmNlcm5zPyBUaGlzIGJhc2UgbGF5ZXIgaXMgYWJzb2x1dGVseSBjcml0aWNhbDsgbWlzY29uZmlndXJlZCBQUFAgY2FuIGNhc2NhZGUgaW50byBhIHdob2xlIGhvc3Qgb2YgbW9yZSBjb21wbGV4IGlzc3VlcyB0aGF0IGFyZSBoYXJkIHRvIGRlYnVnIHdoZW4gc3RhcnRpbmcgdGhlIGludmVzdGlnYXRpb24gZnJvbSB0aGUgYXBwbGljYXRpb24gbGF5ZXIuIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgUFBQIGNvbmZpZyByZXZlYWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwODo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUFBQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcHBwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9wcHAvS2NvbmZpZy01LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6Njpjb25maWcgUFBQXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIChwb2ludC10by1wb2ludCBwcm90b2NvbCkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTM1PWlmIFBQUFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMzYtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzozNzpjb25maWcgUFBQX0JTRENPTVBcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTM4LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIEJTRC1Db21wcmVzcyBjb21wcmVzc2lvblwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTU0LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6NTU6Y29uZmlnIFBQUF9ERUZMQVRFXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy01Ni1cdHRyaXN0YXRlIFwmIzM0O1BQUCBEZWZsYXRlIGNvbXByZXNzaW9uXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNjgtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzo2OTpjb25maWcgUFBQX0ZJTFRFUlxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNzAtXHRib29sIFwmIzM0O1BQUCBmaWx0ZXJpbmdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy04MC1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjgxOmNvbmZpZyBQUFBfTVBQRVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctODItXHR0cmlzdGF0ZSBcJiMzNDtQUFAgTVBQRSBjb21wcmVzc2lvbiAoZW5jcnlwdGlvbilcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy05MS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjkyOmNvbmZpZyBQUFBfTVVMVElMSU5LXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy05My1cdGJvb2wgXCYjMzQ7UFBQIG11bHRpbGluayBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTAzLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTA0OmNvbmZpZyBQUFBPQVRNXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMDUtXHR0cmlzdGF0ZSBcJiMzNDtQUFAgb3ZlciBBVE1cJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTItXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMTM6Y29uZmlnIFBQUE9YXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTQtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE1LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTE2OmNvbmZpZyBQUFBPRVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE3LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIG92ZXIgRXRoZXJuZXRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMjc9Y2hvaWNlXG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTM4LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTM5OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQwLVx0Ym9vbCBcJiMzNDsxIGJpdCAoMiBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQxLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQyOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMlxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDsyIGJpdHMgKDQgYnVja2V0cylcJiMzNDtcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0NC1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0NTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzRcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0Ni1cdGJvb2wgXCYjMzQ7NCBiaXRzICgxNiBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ3LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ4OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfOFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ5LVx0Ym9vbCBcJiMzNDs4IGJpdHMgKDI1NiBidWNrZXRzKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE1MT1lbmRjaG9pY2VcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE1Mi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE1Mzpjb25maWcgUFBQT0VfSEFTSF9CSVRTXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTQtXHRpbnRcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xNjE9Y29uZmlnIFBQVFBcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNzItXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNzM6Y29uZmlnIFBQUE9MMlRQXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNzQtXHR0cmlzdGF0ZSBcJiMzNDtQUFAgb3ZlciBMMlRQXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTgxPWlmIFRUWVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTgyLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTgzOmNvbmZpZyBQUFBfQVNZTkNcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE4NC1cdHRyaXN0YXRlIFwmIzM0O1BQUCBzdXBwb3J0IGZvciBhc3luYyBzZXJpYWwgcG9ydHNcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xOTUtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxOTY6Y29uZmlnIFBQUF9TWU5DX1RUWVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTk3LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIHN1cHBvcnQgZm9yIHN5bmMgdHR5IHBvcnRzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4OTUKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBQUFBvRSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYFBQUGAgYW5kIGBQUFBvRWAgY29uZmlndXJhdGlvbnMuIFRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gYmUgYXJvdW5kIG1vZGlmaWNhdGlvbnMgdG8gYHBwcG9lX3JjdmAgYW5kIGBwcHBvZV9iYWNrbG9nX3JjdmAuIENsZWFybHksIHRoaXMgaXMgd2hlcmUgdGhlIGFjdGlvbiBpcyBoYXBwZW5pbmc7IGBwcHBvZV9yY3ZgIGhhbmRsZXMgaW5jb21pbmcgUFBQb0UgcGFja2V0cyBkaXJlY3RseSwgYW5kIGBwcHBvZV9iYWNrbG9nX3JjdmAgaXMgZm9yIHRob3NlIHBhY2tldHMgdGhhdCBuZWVkIHRvIGJlIHByb2Nlc3NlZCBsYXRlci4gVGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWw7IHRoZSBjaGFuZ2VzIGFyZSByZWFjaGFibGUgY29kZS4gVGhlIGtleSBmdW5jdGlvbnMgdG8gZGlzc2VjdCBoZXJlIGFyZSBgcHBwb2VfcmN2YCwgYHBwcG9lX2JhY2tsb2dfcmN2YCwgYW5kIGBwcHBvZV9jb25uZWN0YC4KCk5vdywgdGhlIGZpcnN0IHRoaW5nIEkgd2FudCB0byB1bmRlcnN0YW5kIGlzIHRoZSBzY29wZSBvZiB0aGVzZSBmdW5jdGlvbnMsIGVzcGVjaWFsbHkgYHBwcG9lX3JjdmAuIExldCBtZSBxdWlja2x5IGNoZWNrIGlmIGBwcHBvZV9yY3ZgIGlzIGRlY2xhcmVkIGFzIHN0YXRpYy4gQWgsIHllcywgaXQgaXM6CmBgYGMKc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKCQkgICAgIHN0cnVjdCBwYWNrZXRfdHlwZSAqcHQsIHN0cnVjdCBuZXRfZGV2aWNlICpvcmlnX2RldikKYGBgCkJlaW5nIHN0YXRpYyBjYW4gYmUgYSBzbGlnaHQgcmVkIGZsYWcuIElmIGl0JiMzOTtzIGlubGluZWQsIGl0JiMzOTtzIG5vdCBhIGdyZWF0IHN5bWJvbCB0byBmb2N1cyBvbi4gQnV0LCBpdCYjMzk7cyBwcm9iYWJseSBwYXNzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyIHRvIGBkZXZfYWRkX3BhY2tgLCBzbyBsZXQgbWUgY29uZmlybSB0aGF0IGFzc3VtcHRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BwcG9lX3JjdiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTIxLSAqIDA0MDgwMCA6XHRSZXNwZWN0IHJlZmVyZW5jZSBjb3VudCBtZWNoYW5pc21zIG9uIG5ldC1kZXZpY2VzLlxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM6MjI6ICogMjAwODAwIDpcdGZpeCBrZnJlZShza2IpIGluIHBwcG9lX3JjdiAoYWNtZSlcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTIzLSAqXHRcdE1vZHVsZSByZWZlcmVuY2UgY291bnQgaXMgZGVjcmVtZW50ZWQgaW4gdGhlIHJpZ2h0IHNwb3Qgbm93LFxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTI4LSAqIDA1MDEwMSA6XHRGaXggUEFEVCBwcm9jZXNzaW5nLlxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM6Mjk6ICogMTQwNTAxIDpcdFVzZSBwcHBvZV9yY3ZfY29yZSB0byBoYW5kbGUgYWxsIGJhY2tsb2cuIChBbGV4ZXkpXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYy0zMC0gKiAxNzA3MDEgOlx0RG8gbm90IGxvY2tfc29jayB3aXRoIHJ3bG9jayBoZWxkLiAoRGF2ZU0pXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM9MzUxPXN0YXRpYyBpbnQgcHBwb2VfYmFja2xvZ19yY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTM3OC0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzozNzk6c3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTM4MC1cdFx0ICAgICBzdHJ1Y3QgcGFja2V0X3R5cGUgKnB0LCBzdHJ1Y3QgbmV0X2RldmljZSAqb3JpZ19kZXYpXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM9NDkxPXN0YXRpYyBzdHJ1Y3QgcGFja2V0X3R5cGUgcHBwb2VzX3B0eXBlIF9fcmVhZF9tb3N0bHkgPSB7XG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYy00OTItXHQudHlwZVx0PSBjcHVfdG9fYmUxNihFVEhfUF9QUFBfU0VTKSxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jOjQ5MzpcdC5mdW5jXHQ9IHBwcG9lX3JjdixcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTQ5NC19O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jPTU5MT1zdGF0aWMgaW50IHBwcG9lX2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyX3Vuc2l6ZWQgKnVzZXJ2YWRkcixcbi0tXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYy02MzItXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzo2MzM6XHRcdC8qIHBwcG9lX3JjdigpIGNhbiBjYWxsIHBwcF9pbnB1dCgpIHdpdGhvdXQgdGFraW5nIHRoZSBzb2NrZXRcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTYzNC1cdFx0ICogbG9jay4gT25jZSB0aGUgc29ja2V0IGlzIHVuaGFzaGVkLCB3YWl0IGZvciBhbnkgcmVjZWl2ZSBwYXRoXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcxMzEKCQkJCQkJCW91dHB1dDogMTYyCgkJCQkJCQl0aG91Z2h0czogMTM4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiBQUFBvRSBGdW5jdGlvbmFsaXR5IGZvciBGdXp6aW5nKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgc2NhbiBjb25maXJtcyB0aGF0IGBwcHBvZV9yY3ZgIGlzIGluZGVlZCBhc3NpZ25lZCB0byBgLmZ1bmNgIHdpdGhpbiBgcHBwb2VzX3B0eXBlYCwgc28gaXQmIzM5O3MgYSB2YWxpZCB0YXJnZXQgc3ltYm9sLCBub3QgaW5saW5lZCwgYW5kIGdvb2QgZm9yIGZ1enppbmcuIFNpbWlsYXJseSwgYHBwcG9lX2JhY2tsb2dfcmN2YCBpcyBhc3NpZ25lZCB0byBgc2stJmd0O3NrX2JhY2tsb2dfcmN2YCwgYW5kIGBwcHBvZV9jb25uZWN0YCBpcyB0aWVkIHRvIGBwcHBvZV9vcHMuY29ubmVjdGAuIFRoYXQmIzM5O3MgdGhyZWUgY2xlYXIgZm9jdXMgc3ltYm9scyByaWdodCB0aGVyZSwgYXMgbm9uZSBvZiB0aGVtIGFyZSBpbmxpbmVkLCBhcyBmYXIgYXMgSSBjYW4gc2VlLgoKTm93LCBsZXQmIzM5O3Mgc2VlIGlmIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbnkgb3RoZXIgZnVuY3Rpb25zIHRoYXQgYXJlIG1vZGlmaWVkIGFuZCBwb3RlbnRpYWxseSByZWxldmFudC4gYHBwcG9lX2NyZWF0ZWAgaXMgdG91Y2hlZCwgYnV0IHRoYXQgc2VlbXMgbW9zdGx5IGxpa2Ugc2V0dXAsIHBhcnRpY3VsYXJseSB0aGUgYXNzaWdubWVudCBvZiBgc2stJmd0O3NrX2JhY2tsb2dfcmN2ID0gcHBwb2VfYmFja2xvZ19yY3ZgLiBBbHRob3VnaCwgc2luY2UgaXQmIzM5O3MgYSBmdW5jdGlvbiB3aXRoIHBvdGVudGlhbGx5IGRpZmZlcmVudCBiZWhhdmlvciwgbGV0JiMzOTtzIGtlZXAgYW4gZXllIG9uIGl0IHRvIGRldGVybWluZSBpZiBpdCBpcyBuZWNlc3NhcnkgdG8gaW5jbHVkZS4KClRoZXJlZm9yZSwgdGhlIG1haW4gZnVuY3Rpb25zIHRvIHByaW9yaXRpemUgYXJlOgoqICAgYHBwcG9lX3JjdmAKKiAgIGBwcHBvZV9iYWNrbG9nX3JjdmAKKiAgIGBwcHBvZV9jb25uZWN0YAoKUmVnYXJkaW5nIGNvbmZpZ3VyYXRpb24sIEkmIzM5O2xsIG5lZWQgYFBQUGAgYW5kIGBQUFBPRWAgdG8gZ2V0IGV2ZXJ5dGhpbmcgaW4uIEkgYnJpZWZseSBjb25zaWRlcmVkIGBQUFBPWGAsIGJ1dCBzaW5jZSBgUFBQT0VgIHNlbGVjdHMgaXQsIEkgZG9uJiMzOTt0IG5lZWQgdG8gc3BlY2lmeSBpdCBleHBsaWNpdGx5LCB0aG91Z2ggaXQgd29uJiMzOTt0IGh1cnQgdG8gaW5jbHVkZSBpdCBqdXN0IGluIGNhc2UuIEhvd2V2ZXIsIEkgd2lsbCBzdGljayB3aXRoIGp1c3QgYFBQUGAgYW5kIGBQUFBPRWAuCgpBIHF1aWNrIHJldmlldyBvZiB0aGUgcGF0Y2ggY29uZmlybXMgdGhlIGFib3ZlLiBUaGUgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgYHBwcG9lX3JjdmAgaXMgc3RhdGljLiBFdmVuIHRob3VnaCBpdCBpcyBzdGF0aWMsIGl0IGlzIHVzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyLCBtZWFuaW5nIGl0IHdvbiYjMzk7dCBiZSBpbmxpbmVkLgoKVGhlIGNoYW5nZXMgZm9jdXMgb24gb3B0aW1pemluZyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoLCBlc3BlY2lhbGx5IGJ5IGF2b2lkaW5nIHRoZSBzb2NrZXQgYmFja2xvZyBpbiB0aGUgYm91bmQgc3RhdGUgYW5kIGFkZGluZyBzeW5jaHJvbml6YXRpb24gdG8gYWRkcmVzcyBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBUaGVyZWZvcmUsIHRoZXNlIGFyZSBhbGwgc29saWQgdGFyZ2V0cy4gSSYjMzk7bSBjb25maWRlbnQgaW4gdGhlc2UgZmluZGluZ3MuIEkmIzM5O2xsIHByb3ZpZGUgdGhlIGluZm9ybWF0aW9uIHdpdGggYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDg6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7LAogICAgJiMzNDtQUFBPRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcG9lX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9iYWNrbG9nX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9jb25uZWN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBQUFBvRSByZWNlaXZlIHBhdGggdG8gYnlwYXNzIHRoZSBzb2NrZXQgYmFja2xvZyB3aGVuIHRoZSBzb2NrZXQgaXMgYm91bmQsIG9wdGltaXppbmcgcGFja2V0IGRlbGl2ZXJ5LiBJdCBhbHNvIHJlbmFtZXMgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBhZGRzIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGluIGBwcHBvZV9jb25uZWN0YCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyB3aGVuIHVuaGFzaGluZyB0aGUgc29ja2V0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7LAogICAgJiMzNDtQUFBPRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcG9lX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9iYWNrbG9nX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9jb25uZWN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBQUFBvRSByZWNlaXZlIHBhdGggdG8gYnlwYXNzIHRoZSBzb2NrZXQgYmFja2xvZyB3aGVuIHRoZSBzb2NrZXQgaXMgYm91bmQsIG9wdGltaXppbmcgcGFja2V0IGRlbGl2ZXJ5LiBJdCBhbHNvIHJlbmFtZXMgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBhZGRzIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGluIGBwcHBvZV9jb25uZWN0YCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyB3aGVuIHVuaGFzaGluZyB0aGUgc29ja2V0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwODo0MTowNC40MTcwNjkzMTVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDI4NzA2MDU4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQUFBcIixcbiAgICBcIlBQUE9FXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHBwb2VfcmN2XCIsXG4gICAgXCJwcHBvZV9iYWNrbG9nX3JjdlwiLFxuICAgIFwicHBwb2VfY29ubmVjdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBQUFBvRSByZWNlaXZlIHBhdGggdG8gYnlwYXNzIHRoZSBzb2NrZXQgYmFja2xvZyB3aGVuIHRoZSBzb2NrZXQgaXMgYm91bmQsIG9wdGltaXppbmcgcGFja2V0IGRlbGl2ZXJ5LiBJdCBhbHNvIHJlbmFtZXMgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBhZGRzIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGluIGBwcHBvZV9jb25uZWN0YCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyB3aGVuIHVuaGFzaGluZyB0aGUgc29ja2V0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjA0LjQxNzA3NzE3NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM4MDAyNzI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGI5OGNlOTk4ODdmMzY5ZDBlYzJkN2Y4Mjk5YThiYjg5Y2VkOTA0NzJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgNCAwODo0MTowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXFxuaW5kZXggNjg3NGExYThlZGFmMS4uMDYyNDExNjI0MTgyMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXFxuQEAgLTM0NSwxMCArMzQ1LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgcHBwb2Vfbm90aWZpZXIgPSB7XFxuIFxcbiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICAqXFxuLSAqIERvIHRoZSByZWFsIHdvcmsgb2YgcmVjZWl2aW5nIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZS5cXG4rICogQmFja2xvZyByZWNlaXZlIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZSBhbmQgZGVsaXZlciB0byB1c2Vyc3BhY2UuXFxuICAqXFxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG4tc3RhdGljIGludCBwcHBvZV9yY3ZfY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXFxuK3N0YXRpYyBpbnQgcHBwb2VfYmFja2xvZ19yY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiB7XFxuIFxcdHN0cnVjdCBwcHBveF9zb2NrICpwbyA9IHBwcG94X3NrKHNrKTtcXG4gXFxuQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFxuIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gICpcXG4tICogUmVjZWl2ZSB3cmFwcGVyIGNhbGxlZCBpbiBCSCBjb250ZXh0LlxcbisgKiBSZWNlaXZlIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZS5cXG4gICpcXG4gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xcbiBzdGF0aWMgaW50IHBwcG9lX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbkBAIC00MjAsNiArNDIwLDEwIEBAIHN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuIFxcdGlmICghcG8pXFxuIFxcdFxcdGdvdG8gZHJvcDtcXG4gXFxuK1xcdGlmIChsaWtlbHkocG8tXFx1MDAzZXNrLnNrX3N0YXRlIFxcdTAwMjYgUFBQT1hfQk9VTkQpKSB7XFxuK1xcdFxcdHBwcF9pbnB1dChcXHUwMDI2cG8tXFx1MDAzZWNoYW4sIHNrYik7XFxuK1xcdFxcdHJldHVybiBORVRfUlhfU1VDQ0VTUztcXG4rXFx0fVxcbiBcXHRyZXR1cm4gX19za19yZWNlaXZlX3NrYihcXHUwMDI2cG8tXFx1MDAzZXNrLCBza2IsIDAsIDEsIGZhbHNlKTtcXG4gXFxuIGRyb3A6XFxuQEAgLTUyNCw3ICs1MjgsNyBAQCBzdGF0aWMgaW50IHBwcG9lX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBrZXJuKVxcbiBcXHRzb2NrLVxcdTAwM2VzdGF0ZVxcdD0gU1NfVU5DT05ORUNURUQ7XFxuIFxcdHNvY2stXFx1MDAzZW9wc1xcdD0gXFx1MDAyNnBwcG9lX29wcztcXG4gXFxuLVxcdHNrLVxcdTAwM2Vza19iYWNrbG9nX3JjdlxcdD0gcHBwb2VfcmN2X2NvcmU7XFxuK1xcdHNrLVxcdTAwM2Vza19iYWNrbG9nX3JjdlxcdD0gcHBwb2VfYmFja2xvZ19yY3Y7XFxuIFxcdHNrLVxcdTAwM2Vza19kZXN0cnVjdFxcdFxcdD0gcHBwb2VfZGVzdHJ1Y3Q7XFxuIFxcdHNrLVxcdTAwM2Vza19zdGF0ZVxcdFxcdD0gUFBQT1hfTk9ORTtcXG4gXFx0c2stXFx1MDAzZXNrX3R5cGVcXHRcXHQ9IFNPQ0tfU1RSRUFNO1xcbkBAIC02MjUsNiArNjI5LDEzIEBAIHN0YXRpYyBpbnQgcHBwb2VfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHJfdW5zaXplZCAqdXNlcnZhZGRyXFxuIFxcdFxcdHBuID0gcHBwb2VfcGVybmV0KHNvY2tfbmV0KHNrKSk7XFxuIFxcdFxcdGRlbGV0ZV9pdGVtKHBuLCBwby1cXHUwMDNlcHBwb2VfcGEuc2lkLFxcbiBcXHRcXHRcXHQgICAgcG8tXFx1MDAzZXBwcG9lX3BhLnJlbW90ZSwgcG8tXFx1MDAzZXBwcG9lX2lmaW5kZXgpO1xcbitcXG4rXFx0XFx0LyogcHBwb2VfcmN2KCkgY2FuIGNhbGwgcHBwX2lucHV0KCkgd2l0aG91dCB0YWtpbmcgdGhlIHNvY2tldFxcbitcXHRcXHQgKiBsb2NrLiBPbmNlIHRoZSBzb2NrZXQgaXMgdW5oYXNoZWQsIHdhaXQgZm9yIGFueSByZWNlaXZlIHBhdGhcXG4rXFx0XFx0ICogdGhhdCBmb3VuZCBpdCBlYXJsaWVyIGJlZm9yZSBjbGVhcmluZyBhbmQgcmV1c2luZyBwby1cXHUwMDNlY2hhbi5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdHN5bmNocm9uaXplX25ldCgpO1xcbitcXG4gXFx0XFx0aWYgKHBvLVxcdTAwM2VwcHBvZV9kZXYpIHtcXG4gXFx0XFx0XFx0ZGV2X3B1dChwby1cXHUwMDNlcHBwb2VfZGV2KTtcXG4gXFx0XFx0XFx0cG8tXFx1MDAzZXBwcG9lX2RldiA9IE5VTEw7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjA1Ljc5NzY1NDkyNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjM4OTA2NDYzOTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBQUFwiLFxuICAgIFwiUFBQT0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwcHBvZV9yY3ZcIixcbiAgICBcInBwcG9lX2JhY2tsb2dfcmN2XCIsXG4gICAgXCJwcHBvZV9jb25uZWN0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFBQUG9FIHJlY2VpdmUgcGF0aCB0byBieXBhc3MgdGhlIHNvY2tldCBiYWNrbG9nIHdoZW4gdGhlIHNvY2tldCBpcyBib3VuZCwgb3B0aW1pemluZyBwYWNrZXQgZGVsaXZlcnkuIEl0IGFsc28gcmVuYW1lcyBgcHBwb2VfcmN2X2NvcmVgIHRvIGBwcHBvZV9iYWNrbG9nX3JjdmAgYW5kIGFkZHMgYSBgc3luY2hyb25pemVfbmV0KClgIGNhbGwgaW4gYHBwcG9lX2Nvbm5lY3RgIHRvIHByZXZlbnQgcmFjZSBjb25kaXRpb25zIHdoZW4gdW5oYXNoaW5nIHRoZSBzb2NrZXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjk4Y2U5OTg4N2YzNjlkMGVjMmQ3ZjgyOTlhOGJiODljZWQ5MDQ3MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDQgMDg6NDE6MDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXG5pbmRleCA2ODc0YTFhOGVkYWYxLi4wNjI0MTE2MjQxODIzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmNcbisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXG5AQCAtMzQ1LDEwICszNDUsMTAgQEAgc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBwcHBvZV9ub3RpZmllciA9IHtcbiBcbiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICpcbi0gKiBEbyB0aGUgcmVhbCB3b3JrIG9mIHJlY2VpdmluZyBhIFBQUG9FIFNlc3Npb24gZnJhbWUuXG4rICogQmFja2xvZyByZWNlaXZlIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZSBhbmQgZGVsaXZlciB0byB1c2Vyc3BhY2UuXG4gICpcbiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4tc3RhdGljIGludCBwcHBvZV9yY3ZfY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4rc3RhdGljIGludCBwcHBvZV9iYWNrbG9nX3JjdihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuIFx0c3RydWN0IHBwcG94X3NvY2sgKnBvID0gcHBwb3hfc2soc2spO1xuIFxuQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICpcbi0gKiBSZWNlaXZlIHdyYXBwZXIgY2FsbGVkIGluIEJIIGNvbnRleHQuXG4rICogUmVjZWl2ZSBhIFBQUG9FIFNlc3Npb24gZnJhbWUuXG4gICpcbiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbkBAIC00MjAsNiArNDIwLDEwIEBAIHN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRpZiAoIXBvKVxuIFx0XHRnb3RvIGRyb3A7XG4gXG4rXHRpZiAobGlrZWx5KHBvLVx1MDAzZXNrLnNrX3N0YXRlIFx1MDAyNiBQUFBPWF9CT1VORCkpIHtcbitcdFx0cHBwX2lucHV0KFx1MDAyNnBvLVx1MDAzZWNoYW4sIHNrYik7XG4rXHRcdHJldHVybiBORVRfUlhfU1VDQ0VTUztcbitcdH1cbiBcdHJldHVybiBfX3NrX3JlY2VpdmVfc2tiKFx1MDAyNnBvLVx1MDAzZXNrLCBza2IsIDAsIDEsIGZhbHNlKTtcbiBcbiBkcm9wOlxuQEAgLTUyNCw3ICs1MjgsNyBAQCBzdGF0aWMgaW50IHBwcG9lX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBrZXJuKVxuIFx0c29jay1cdTAwM2VzdGF0ZVx0PSBTU19VTkNPTk5FQ1RFRDtcbiBcdHNvY2stXHUwMDNlb3BzXHQ9IFx1MDAyNnBwcG9lX29wcztcbiBcbi1cdHNrLVx1MDAzZXNrX2JhY2tsb2dfcmN2XHQ9IHBwcG9lX3Jjdl9jb3JlO1xuK1x0c2stXHUwMDNlc2tfYmFja2xvZ19yY3ZcdD0gcHBwb2VfYmFja2xvZ19yY3Y7XG4gXHRzay1cdTAwM2Vza19kZXN0cnVjdFx0XHQ9IHBwcG9lX2Rlc3RydWN0O1xuIFx0c2stXHUwMDNlc2tfc3RhdGVcdFx0PSBQUFBPWF9OT05FO1xuIFx0c2stXHUwMDNlc2tfdHlwZVx0XHQ9IFNPQ0tfU1RSRUFNO1xuQEAgLTYyNSw2ICs2MjksMTMgQEAgc3RhdGljIGludCBwcHBvZV9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkcl91bnNpemVkICp1c2VydmFkZHJcbiBcdFx0cG4gPSBwcHBvZV9wZXJuZXQoc29ja19uZXQoc2spKTtcbiBcdFx0ZGVsZXRlX2l0ZW0ocG4sIHBvLVx1MDAzZXBwcG9lX3BhLnNpZCxcbiBcdFx0XHQgICAgcG8tXHUwMDNlcHBwb2VfcGEucmVtb3RlLCBwby1cdTAwM2VwcHBvZV9pZmluZGV4KTtcbitcbitcdFx0LyogcHBwb2VfcmN2KCkgY2FuIGNhbGwgcHBwX2lucHV0KCkgd2l0aG91dCB0YWtpbmcgdGhlIHNvY2tldFxuK1x0XHQgKiBsb2NrLiBPbmNlIHRoZSBzb2NrZXQgaXMgdW5oYXNoZWQsIHdhaXQgZm9yIGFueSByZWNlaXZlIHBhdGhcbitcdFx0ICogdGhhdCBmb3VuZCBpdCBlYXJsaWVyIGJlZm9yZSBjbGVhcmluZyBhbmQgcmV1c2luZyBwby1cdTAwM2VjaGFuLlxuK1x0XHQgKi9cbitcdFx0c3luY2hyb25pemVfbmV0KCk7XG4rXG4gXHRcdGlmIChwby1cdTAwM2VwcHBvZV9kZXYpIHtcbiBcdFx0XHRkZXZfcHV0KHBvLVx1MDAzZXBwcG9lX2Rldik7XG4gXHRcdFx0cG8tXHUwMDNlcHBwb2VfZGV2ID0gTlVMTDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjA1Ljc5NzY1NjMxNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0MTI1NTY3NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQUFBvRSBSZWNlaXZlIFBhdGggTW9kaWZpY2F0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBkcml2ZXJzL25ldC9wcHAvcHBwb2UuY2AuIE15IGluaXRpYWwgcmVhZCBpcyB0aGF0IHRoZXkndmUgcmVmYWN0b3JlZCBgcHBwb2VfcmN2X2NvcmVgIHRvIGBwcHBvZV9iYWNrbG9nX3JjdmAgYW5kIGZ1bmRhbWVudGFsbHkgYWx0ZXJlZCB0aGUgYHBwcG9lX3JjdmAgZnVuY3Rpb24uIFRoZSBrZXkgY2hhbmdlIGlzIGEgY29uZGl0aW9uYWwgYnlwYXNzIG9mIHRoZSBzb2NrZXQgYmFja2xvZzogaWYgdGhlIHNvY2tldCBpcyBib3VuZCAoYXMgaW5kaWNhdGVkIGJ5IGBwby1cdTAwM2Vzay5za19zdGF0ZSBcdTAwMjYgUFBQT1hfQk9VTkRgKSwgYHBwcG9lX3JjdmAgbm93IGRpcmVjdGx5IGludm9rZXMgYHBwcF9pbnB1dChcdTAwMjZwby1cdTAwM2VjaGFuLCBza2IpYC4gVGhpcyBpcyBjbGVhcmx5IGFuIG9wdGltaXphdGlvbiBhaW1pbmcgZm9yIHJlZHVjZWQgbGF0ZW5jeSBieSBlbGltaW5hdGluZyB0aGUgcXVldWluZyBvdmVyaGVhZC5cblxuSSdtIGFsc28gc2VlaW5nIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGFkZGVkIGluIGBwcHBvZV9jb25uZWN0YCBkdXJpbmcgdGhlIHVuaGFzaGluZyBwcm9jZXNzLCByaWdodCBiZWZvcmUgYHBvLVx1MDAzZWNoYW5gIGlzIGNsZWFyZWQuIFRoaXMgaXMgc21hcnQ7IHRoZXkncmUgZW5zdXJpbmcgdGhhdCBhbnkgbGluZ2VyaW5nIHJlY2VpdmUgcGF0aHMgd2hpY2ggbWlnaHQgaGF2ZSBmb3VuZCB0aGUgc29ja2V0IHByaW9yIHRvIGl0cyB1bmhhc2hpbmcgYXJlIGFsbG93ZWQgdG8gY29tcGxldGUuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyB3aGVuIHJldXNpbmcgdGhlIGBwby1cdTAwM2VjaGFuYC5cblxuRXNzZW50aWFsbHksIHRoaXMgaXMgYSB0YXJnZXRlZCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCwgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoLCB3aGljaCBhaW1zIHRvIGltcHJvdmUgdGhlIGVmZmljaWVuY3kgd2hlbiBzb2NrZXRzIGFyZSBib3VuZC4gVGhlIGRpcmVjdCBjYWxsIHRvIGBwcHBfaW5wdXRgIGlzIHBvdGVudGlhbGx5IHNpZ25pZmljYW50LlxuXG5CZWZvcmUgSSBkZWx2ZSBkZWVwZXIgaW50byB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscyBhbmQgcG90ZW50aWFsIGltcGxpY2F0aW9ucywgSSBuZWVkIHRvIGNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRpbWUgdG8gdXNlIGBncmVwcGVyYCBhbmQgZmluZCB0aGUgcmVsZXZhbnQgY29uZmlnIHN5bWJvbHMgZm9yIGBkcml2ZXJzL25ldC9wcHAvcHBwb2UuY2AuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGlzIGNoYW5nZSBpcyBwcm9wZXJseSBndWFyZGVkIGJ5IGNvbmZpZ3VyYXRpb24gYW5kIHRoYXQgaXQgaXMgYWN0aXZlIGluIHRoZSBjb250ZXh0cyB3aGVyZSBpdCBpcyBsaWtlbHkgdG8gYmUgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjcxOSwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjEyLjIxMDIxNTgxOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYxNTc3NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicHBwb2VcXFxcLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcHBwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9wcHAvTWFrZWZpbGU9MTI9b2JqLSQoQ09ORklHX1BQUE9YKSArPSBwcHBveC5vXFxuZHJpdmVycy9uZXQvcHBwL01ha2VmaWxlOjEzOm9iai0kKENPTkZJR19QUFBPRSkgKz0gcHBwb2Uub1xcbmRyaXZlcnMvbmV0L3BwcC9NYWtlZmlsZS0xNC1vYmotJChDT05GSUdfUFBUUCkgKz0gcHB0cC5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjEyLjMxNjM3Nzg4MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzNjgzMzU2MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkV4YW1pbmluZyBQUFBvRSBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIHRoZSBhY3RpdmUgY29uZmlndXJhdGlvbiBpcyBjbGVhcmx5IGBDT05GSUdfUFBQT0VgLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyBhbHdheXMgdG8gZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIgY29tcG9uZW50cyBhcmUgcmVxdWlyZWQsIG9yIG9wdGlvbmFsbHkgbGlua2VkLCB0byBzdXBwb3J0IHRoaXMgY29uZmlndXJhdGlvbi4gQXJlIHRoZXJlIHNwZWNpZmljIG5ldHdvcmsgZHJpdmVycywgdW5kZXJseWluZyBwcm90b2NvbHMsIG9yIG90aGVyIGtlcm5lbCBtb2R1bGVzIHRoYXQgbmVlZCB0byBiZSBpbiBwbGFjZT8gVGhpcyBpc24ndCBqdXN0IGFib3V0IGVuc3VyaW5nIHRoZSBmZWF0dXJlIHdvcmtzOyBpdCdzIGFib3V0IGFudGljaXBhdGluZyBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLiBJIG5lZWQgdG8gcXVpY2tseSB2aXN1YWxpemUgdGhlIGRlcGVuZGVuY3kgdHJlZSBhbmQgcGlucG9pbnQgYW55IGFyZWFzIHRoYXQgbWlnaHQgcmVxdWlyZSBzcGVjaWFsIGF0dGVudGlvbiBkdXJpbmcgdGVzdGluZyBvciBkZXBsb3ltZW50LiBXaGF0J3MgdGhlIGJlc3Qgd2F5IHRvIHRyYWNlIHRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMgYW5kIHRoZSBLY29uZmlnIHN0cnVjdHVyZSB0byBtYXAgdGhpcyBvdXQgcXVpY2tseT8gSSB3YW50IHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55IGNyaXRpY2FsIHBpZWNlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQzMCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjE1LjY4NDcxNjMxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3ODcyOTE1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUFBQT0VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcHBwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMTM9Y29uZmlnIFBQUE9YXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTUtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTE2OmNvbmZpZyBQUFBPRVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExNy1cXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgRXRoZXJuZXRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMjc9Y2hvaWNlXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMzgtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTM5OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0MC1cXHRib29sIFxcXCIxIGJpdCAoMiBidWNrZXRzKVxcXCJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDEtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQyOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMlxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0My1cXHRib29sIFxcXCIyIGJpdHMgKDQgYnVja2V0cylcXFwiXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ0LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0NTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzRcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDYtXFx0Ym9vbCBcXFwiNCBiaXRzICgxNiBidWNrZXRzKVxcXCJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDctXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ4OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfOFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0OS1cXHRib29sIFxcXCI4IGJpdHMgKDI1NiBidWNrZXRzKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE1MT1lbmRjaG9pY2VcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTItXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTUzOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTQtXFx0aW50XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjE1Ljc2MzQ1MTA5OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5ODI1Njk4ODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBQUFBvRSBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB0YWtlIGEgY29tcHJlaGVuc2l2ZSBsb29rIGF0IHRoZSBLY29uZmlnIGZpbGUgZm9yIFBQUG9FLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCAqZXZlcnl0aGluZyog4oCTIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBkZWZhdWx0IHZhbHVlcywgYWxsIHRoZSBjb25maWd1cmFibGUgb3B0aW9ucywgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBzZXR0aW5nLiBUaGlzIGlzbid0IGp1c3QgYSBjYXN1YWwgZ2xhbmNlOyBJIG5lZWQgdGhlIGNvbXBsZXRlIHBpY3R1cmUuIEknbSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIGRldGFpbHMsIHRoZSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgdW5kZXJseWluZyBuZXR3b3JrIHN0YWNrLCBhbmQgaG93IHRoaXMgY29uZmlndXJhdGlvbiB3aWxsIGFmZmVjdCBwZXJmb3JtYW5jZSBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24uIEkgbmVlZCB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIGhpZGRlbiBnb3RjaGFzIG9yIHVuZXhwZWN0ZWQgY29uZmlndXJhdGlvbnMsIGFuZCB0byBiZSBjZXJ0YWluIHRoaXMgaW1wbGVtZW50YXRpb24gd2lsbCBtZWV0IGN1cnJlbnQgYW5kIGZ1dHVyZSBvcGVyYXRpb25hbCByZXF1aXJlbWVudHMuIFRoZSBzcGVjaWZpYyBwYXJhbWV0ZXJzIHdpbGwgZHJpdmUgb3B0aW1pemF0aW9uIG9mIHRoZSBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDcwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDg6NDE6MTkuNzQ2MDIzNFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3MjAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BwcC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDExMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDExMDpcXHRcXHQgIHdoaWNoIGNhbiBsZWFkIHRvIGJhZCByZXN1bHRzIGlmIHRoZSBBVE0gcGVlciBsb3NlcyBzdGF0ZSBhbmRcXG4gMTExOlxcdFxcdCAgY2hhbmdlcyBpdHMgZW5jYXBzdWxhdGlvbiB1bmlsYXRlcmFsbHkuXFxuIDExMjpcXHRcXG4gMTEzOlxcdGNvbmZpZyBQUFBPWFxcbiAxMTQ6XFx0XFx0dHJpc3RhdGVcXG4gMTE1OlxcdFxcbiAxMTY6XFx0Y29uZmlnIFBQUE9FXFxuIDExNzpcXHRcXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgRXRoZXJuZXRcXFwiXFxuIDExODpcXHRcXHRzZWxlY3QgUFBQT1hcXG4gMTE5OlxcdFxcdGhlbHBcXG4gMTIwOlxcdFxcdCAgU3VwcG9ydCBmb3IgUFBQIG92ZXIgRXRoZXJuZXQuXFxuIDEyMTpcXHRcXG4gMTIyOlxcdFxcdCAgVG8gd29yayBpbiBjbGllbnQgbW9kZSwgcHBwZCB2ZXJzaW9uIDIuNC4yIG9yIGxhdGVyIGlzIHJlcXVpcmVkLlxcbiAxMjM6XFx0XFx0ICBUbyB3b3JrIGluIHNlcnZlciBtb2RlLCB0aGUgcHBwb2Utc2VydmVyIGNvbW1hbmQgZnJvbSB0aGUgUlAtUFBQb0VcXG4gMTI0OlxcdFxcdCAgcGFja2FnZSBpcyBhbHNvIHJlcXVpcmVkLCBhdmFpbGFibGUgYXRcXG4gMTI1OlxcdFxcdCAgXFx1MDAzY2h0dHBzOi8vZGlhbm5lLnNrb2xsLmNhL3Byb2plY3RzL3JwLXBwcG9lL1xcdTAwM2UuXFxuIDEyNjpcXHRcXG4gMTI3OlxcdGNob2ljZVxcbiAxMjg6XFx0XFx0cHJvbXB0IFxcXCJOdW1iZXIgb2YgUFBQb0UgaGFzaCBiaXRzXFxcIlxcbiAxMjk6XFx0XFx0ZGVmYXVsdCBQUFBPRV9IQVNIX0JJVFNfNFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwODo0MToxOS43NDYxMjI4MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NTQzMDQyMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqUFBQIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKipcblxuT2theSwgc28gdGhlIGlzc3VlIGF0IGhhbmQgaGluZ2VzIG9uIHRoZSBQb2ludC10by1Qb2ludCBQcm90b2NvbCAoUFBQKS4gQmVmb3JlIEkgZXZlbiBkaWcgaW50byB0aGUgc3BlY2lmaWNzIG9mICp0aGlzKiBwYXJ0aWN1bGFyIHNpdHVhdGlvbiwgbXkgZmlyc3Qgc3RlcCBpcyBhbHdheXMgdG8gdmVyaWZ5IHRoZSBQUFAgY29uZmlndXJhdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHVuZGVybHlpbmcgaW5mcmFzdHJ1Y3R1cmUgYW5kIGVuc3VyZSB0aGUgZnVuZGFtZW50YWwgY29ubmVjdGlvbiBwYXJhbWV0ZXJzIGFyZSBjb3JyZWN0LiBUaGlzIG1lYW5zIEknbSBpbW1lZGlhdGVseSBnb2luZyB0byBsb29rIGF0IHRoZSBQUFAgc2V0dGluZ3M6IGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMsIElQIGFkZHJlc3NpbmcgbmVnb3RpYXRpb24gKHdoZXRoZXIgaXQncyBkeW5hbWljIG9yIHN0YXRpYyBhbmQgdGhlIHBvb2xzLCByYW5nZXMgZXRjLiksIGFuZCBsaW5rIGNvbnRyb2wgcHJvdG9jb2wgb3B0aW9ucy4gQXJlIHdlIHVzaW5nIENIQVAsIFBBUCwgb3IgcGVyaGFwcyBhIG1vcmUgcm9idXN0IEVBUCBtZXRob2Q/IFdoYXQgYWJvdXQgTVRVIHNpemUgbmVnb3RpYXRpb24/IEFueSBmcmFnbWVudGF0aW9uIGNvbmNlcm5zPyBUaGlzIGJhc2UgbGF5ZXIgaXMgYWJzb2x1dGVseSBjcml0aWNhbDsgbWlzY29uZmlndXJlZCBQUFAgY2FuIGNhc2NhZGUgaW50byBhIHdob2xlIGhvc3Qgb2YgbW9yZSBjb21wbGV4IGlzc3VlcyB0aGF0IGFyZSBoYXJkIHRvIGRlYnVnIHdoZW4gc3RhcnRpbmcgdGhlIGludmVzdGlnYXRpb24gZnJvbSB0aGUgYXBwbGljYXRpb24gbGF5ZXIuIExldCdzIHNlZSB3aGF0IHRoZSBQUFAgY29uZmlnIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1ODQsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjIzLjUwMDQyOTczN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyOTYwMTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQUFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcHBwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9wcHAvS2NvbmZpZy01LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjY6Y29uZmlnIFBQUFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlBQUCAocG9pbnQtdG8tcG9pbnQgcHJvdG9jb2wpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0zNT1pZiBQUFBcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0zNi1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzozNzpjb25maWcgUFBQX0JTRENPTVBcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0zOC1cXHR0cmlzdGF0ZSBcXFwiUFBQIEJTRC1Db21wcmVzcyBjb21wcmVzc2lvblxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTU0LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjU1OmNvbmZpZyBQUFBfREVGTEFURVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTU2LVxcdHRyaXN0YXRlIFxcXCJQUFAgRGVmbGF0ZSBjb21wcmVzc2lvblxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTY4LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjY5OmNvbmZpZyBQUFBfRklMVEVSXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNzAtXFx0Ym9vbCBcXFwiUFBQIGZpbHRlcmluZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTgwLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjgxOmNvbmZpZyBQUFBfTVBQRVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTgyLVxcdHRyaXN0YXRlIFxcXCJQUFAgTVBQRSBjb21wcmVzc2lvbiAoZW5jcnlwdGlvbilcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy05MS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzo5Mjpjb25maWcgUFBQX01VTFRJTElOS1xcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTkzLVxcdGJvb2wgXFxcIlBQUCBtdWx0aWxpbmsgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTEwMy1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMDQ6Y29uZmlnIFBQUE9BVE1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMDUtXFx0dHJpc3RhdGUgXFxcIlBQUCBvdmVyIEFUTVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExMi1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMTM6Y29uZmlnIFBQUE9YXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE0LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE1LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjExNjpjb25maWcgUFBQT0VcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTctXFx0dHJpc3RhdGUgXFxcIlBQUCBvdmVyIEV0aGVybmV0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTI3PWNob2ljZVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTM4LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjEzOTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzFcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDAtXFx0Ym9vbCBcXFwiMSBiaXQgKDIgYnVja2V0cylcXFwiXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQxLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0Mjpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDMtXFx0Ym9vbCBcXFwiMiBiaXRzICg0IGJ1Y2tldHMpXFxcIlxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0NC1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNDU6Y29uZmlnIFBQUE9FX0hBU0hfQklUU180XFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ2LVxcdGJvb2wgXFxcIjQgYml0cyAoMTYgYnVja2V0cylcXFwiXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ3LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0ODpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzhcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDktXFx0Ym9vbCBcXFwiOCBiaXRzICgyNTYgYnVja2V0cylcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xNTE9ZW5kY2hvaWNlXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTUyLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE1Mzpjb25maWcgUFBQT0VfSEFTSF9CSVRTXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTU0LVxcdGludFxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTYxPWNvbmZpZyBQUFRQXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNzItXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTczOmNvbmZpZyBQUFBPTDJUUFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE3NC1cXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgTDJUUFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE4MT1pZiBUVFlcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xODItXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTgzOmNvbmZpZyBQUFBfQVNZTkNcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xODQtXFx0dHJpc3RhdGUgXFxcIlBQUCBzdXBwb3J0IGZvciBhc3luYyBzZXJpYWwgcG9ydHNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xOTUtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTk2OmNvbmZpZyBQUFBfU1lOQ19UVFlcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xOTctXFx0dHJpc3RhdGUgXFxcIlBQUCBzdXBwb3J0IGZvciBzeW5jIHR0eSBwb3J0c1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDg6NDE6MjMuNjAzMzk0NTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQ1NTYwODYzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFBQUG9FIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIHdlJ3JlIGRlYWxpbmcgd2l0aCBgUFBQYCBhbmQgYFBQUG9FYCBjb25maWd1cmF0aW9ucy4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSBhcm91bmQgbW9kaWZpY2F0aW9ucyB0byBgcHBwb2VfcmN2YCBhbmQgYHBwcG9lX2JhY2tsb2dfcmN2YC4gQ2xlYXJseSwgdGhpcyBpcyB3aGVyZSB0aGUgYWN0aW9uIGlzIGhhcHBlbmluZzsgYHBwcG9lX3JjdmAgaGFuZGxlcyBpbmNvbWluZyBQUFBvRSBwYWNrZXRzIGRpcmVjdGx5LCBhbmQgYHBwcG9lX2JhY2tsb2dfcmN2YCBpcyBmb3IgdGhvc2UgcGFja2V0cyB0aGF0IG5lZWQgdG8gYmUgcHJvY2Vzc2VkIGxhdGVyLiBUaGlzIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbDsgdGhlIGNoYW5nZXMgYXJlIHJlYWNoYWJsZSBjb2RlLiBUaGUga2V5IGZ1bmN0aW9ucyB0byBkaXNzZWN0IGhlcmUgYXJlIGBwcHBvZV9yY3ZgLCBgcHBwb2VfYmFja2xvZ19yY3ZgLCBhbmQgYHBwcG9lX2Nvbm5lY3RgLlxuXG5Ob3csIHRoZSBmaXJzdCB0aGluZyBJIHdhbnQgdG8gdW5kZXJzdGFuZCBpcyB0aGUgc2NvcGUgb2YgdGhlc2UgZnVuY3Rpb25zLCBlc3BlY2lhbGx5IGBwcHBvZV9yY3ZgLiBMZXQgbWUgcXVpY2tseSBjaGVjayBpZiBgcHBwb2VfcmN2YCBpcyBkZWNsYXJlZCBhcyBzdGF0aWMuIEFoLCB5ZXMsIGl0IGlzOlxuYGBgY1xuc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcblx0XHQgICAgIHN0cnVjdCBwYWNrZXRfdHlwZSAqcHQsIHN0cnVjdCBuZXRfZGV2aWNlICpvcmlnX2RldilcbmBgYFxuQmVpbmcgc3RhdGljIGNhbiBiZSBhIHNsaWdodCByZWQgZmxhZy4gSWYgaXQncyBpbmxpbmVkLCBpdCdzIG5vdCBhIGdyZWF0IHN5bWJvbCB0byBmb2N1cyBvbi4gQnV0LCBpdCdzIHByb2JhYmx5IHBhc3NlZCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYGRldl9hZGRfcGFja2AsIHNvIGxldCBtZSBjb25maXJtIHRoYXQgYXNzdW1wdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTg5NSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwODo0MToyOS4wNTkwMDU5NDZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzNTMxOTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBwcG9lX3JjdlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9wcHAvcHBwb2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9wcHAvcHBwb2UuYy0yMS0gKiAwNDA4MDAgOlxcdFJlc3BlY3QgcmVmZXJlbmNlIGNvdW50IG1lY2hhbmlzbXMgb24gbmV0LWRldmljZXMuXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM6MjI6ICogMjAwODAwIDpcXHRmaXgga2ZyZWUoc2tiKSBpbiBwcHBvZV9yY3YgKGFjbWUpXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMtMjMtICpcXHRcXHRNb2R1bGUgcmVmZXJlbmNlIGNvdW50IGlzIGRlY3JlbWVudGVkIGluIHRoZSByaWdodCBzcG90IG5vdyxcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTI4LSAqIDA1MDEwMSA6XFx0Rml4IFBBRFQgcHJvY2Vzc2luZy5cXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzoyOTogKiAxNDA1MDEgOlxcdFVzZSBwcHBvZV9yY3ZfY29yZSB0byBoYW5kbGUgYWxsIGJhY2tsb2cuIChBbGV4ZXkpXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMtMzAtICogMTcwNzAxIDpcXHREbyBub3QgbG9ja19zb2NrIHdpdGggcndsb2NrIGhlbGQuIChEYXZlTSlcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jPTM1MT1zdGF0aWMgaW50IHBwcG9lX2JhY2tsb2dfcmN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTM3OC0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM6Mzc5OnN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMtMzgwLVxcdFxcdCAgICAgc3RydWN0IHBhY2tldF90eXBlICpwdCwgc3RydWN0IG5ldF9kZXZpY2UgKm9yaWdfZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM9NDkxPXN0YXRpYyBzdHJ1Y3QgcGFja2V0X3R5cGUgcHBwb2VzX3B0eXBlIF9fcmVhZF9tb3N0bHkgPSB7XFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMtNDkyLVxcdC50eXBlXFx0PSBjcHVfdG9fYmUxNihFVEhfUF9QUFBfU0VTKSxcXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzo0OTM6XFx0LmZ1bmNcXHQ9IHBwcG9lX3JjdixcXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYy00OTQtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jPTU5MT1zdGF0aWMgaW50IHBwcG9lX2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyX3Vuc2l6ZWQgKnVzZXJ2YWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTYzMi1cXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzo2MzM6XFx0XFx0LyogcHBwb2VfcmN2KCkgY2FuIGNhbGwgcHBwX2lucHV0KCkgd2l0aG91dCB0YWtpbmcgdGhlIHNvY2tldFxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTYzNC1cXHRcXHQgKiBsb2NrLiBPbmNlIHRoZSBzb2NrZXQgaXMgdW5oYXNoZWQsIHdhaXQgZm9yIGFueSByZWNlaXZlIHBhdGhcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDg6NDE6MjkuMTIyNTQyMjcyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1NDMyNjg5ODQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIFBQUG9FIEZ1bmN0aW9uYWxpdHkgZm9yIEZ1enppbmcqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgc2NhbiBjb25maXJtcyB0aGF0IGBwcHBvZV9yY3ZgIGlzIGluZGVlZCBhc3NpZ25lZCB0byBgLmZ1bmNgIHdpdGhpbiBgcHBwb2VzX3B0eXBlYCwgc28gaXQncyBhIHZhbGlkIHRhcmdldCBzeW1ib2wsIG5vdCBpbmxpbmVkLCBhbmQgZ29vZCBmb3IgZnV6emluZy4gU2ltaWxhcmx5LCBgcHBwb2VfYmFja2xvZ19yY3ZgIGlzIGFzc2lnbmVkIHRvIGBzay1cdTAwM2Vza19iYWNrbG9nX3JjdmAsIGFuZCBgcHBwb2VfY29ubmVjdGAgaXMgdGllZCB0byBgcHBwb2Vfb3BzLmNvbm5lY3RgLiBUaGF0J3MgdGhyZWUgY2xlYXIgZm9jdXMgc3ltYm9scyByaWdodCB0aGVyZSwgYXMgbm9uZSBvZiB0aGVtIGFyZSBpbmxpbmVkLCBhcyBmYXIgYXMgSSBjYW4gc2VlLlxuXG5Ob3csIGxldCdzIHNlZSBpZiB0aGlzIHBhdGNoIGludHJvZHVjZXMgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGFyZSBtb2RpZmllZCBhbmQgcG90ZW50aWFsbHkgcmVsZXZhbnQuIGBwcHBvZV9jcmVhdGVgIGlzIHRvdWNoZWQsIGJ1dCB0aGF0IHNlZW1zIG1vc3RseSBsaWtlIHNldHVwLCBwYXJ0aWN1bGFybHkgdGhlIGFzc2lnbm1lbnQgb2YgYHNrLVx1MDAzZXNrX2JhY2tsb2dfcmN2ID0gcHBwb2VfYmFja2xvZ19yY3ZgLiBBbHRob3VnaCwgc2luY2UgaXQncyBhIGZ1bmN0aW9uIHdpdGggcG90ZW50aWFsbHkgZGlmZmVyZW50IGJlaGF2aW9yLCBsZXQncyBrZWVwIGFuIGV5ZSBvbiBpdCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgbmVjZXNzYXJ5IHRvIGluY2x1ZGUuXG5cblRoZXJlZm9yZSwgdGhlIG1haW4gZnVuY3Rpb25zIHRvIHByaW9yaXRpemUgYXJlOlxuKiAgIGBwcHBvZV9yY3ZgXG4qICAgYHBwcG9lX2JhY2tsb2dfcmN2YFxuKiAgIGBwcHBvZV9jb25uZWN0YFxuXG5SZWdhcmRpbmcgY29uZmlndXJhdGlvbiwgSSdsbCBuZWVkIGBQUFBgIGFuZCBgUFBQT0VgIHRvIGdldCBldmVyeXRoaW5nIGluLiBJIGJyaWVmbHkgY29uc2lkZXJlZCBgUFBQT1hgLCBidXQgc2luY2UgYFBQUE9FYCBzZWxlY3RzIGl0LCBJIGRvbid0IG5lZWQgdG8gc3BlY2lmeSBpdCBleHBsaWNpdGx5LCB0aG91Z2ggaXQgd29uJ3QgaHVydCB0byBpbmNsdWRlIGl0IGp1c3QgaW4gY2FzZS4gSG93ZXZlciwgSSB3aWxsIHN0aWNrIHdpdGgganVzdCBgUFBQYCBhbmQgYFBQUE9FYC5cblxuQSBxdWljayByZXZpZXcgb2YgdGhlIHBhdGNoIGNvbmZpcm1zIHRoZSBhYm92ZS4gVGhlIGltcG9ydGFudCB0aGluZyBpcyB0aGF0IGBwcHBvZV9yY3ZgIGlzIHN0YXRpYy4gRXZlbiB0aG91Z2ggaXQgaXMgc3RhdGljLCBpdCBpcyB1c2VkIGFzIGEgZnVuY3Rpb24gcG9pbnRlciwgbWVhbmluZyBpdCB3b24ndCBiZSBpbmxpbmVkLlxuXG5UaGUgY2hhbmdlcyBmb2N1cyBvbiBvcHRpbWl6aW5nIHRoZSBQUFBvRSByZWNlaXZlIHBhdGgsIGVzcGVjaWFsbHkgYnkgYXZvaWRpbmcgdGhlIHNvY2tldCBiYWNrbG9nIGluIHRoZSBib3VuZCBzdGF0ZSBhbmQgYWRkaW5nIHN5bmNocm9uaXphdGlvbiB0byBhZGRyZXNzIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMuIFRoZXJlZm9yZSwgdGhlc2UgYXJlIGFsbCBzb2xpZCB0YXJnZXRzLiBJJ20gY29uZmlkZW50IGluIHRoZXNlIGZpbmRpbmdzLiBJJ2xsIHByb3ZpZGUgdGhlIGluZm9ybWF0aW9uIHdpdGggYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzEzMSwiT3V0cHV0VG9rZW5zIjoxNjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzgwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjQ0LjU1NTIzNDkwMVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0ODg3OTc0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFBQXCIsXG4gICAgXCJQUFBPRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBwcG9lX3JjdlwiLFxuICAgIFwicHBwb2VfYmFja2xvZ19yY3ZcIixcbiAgICBcInBwcG9lX2Nvbm5lY3RcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoIHRvIGJ5cGFzcyB0aGUgc29ja2V0IGJhY2tsb2cgd2hlbiB0aGUgc29ja2V0IGlzIGJvdW5kLCBvcHRpbWl6aW5nIHBhY2tldCBkZWxpdmVyeS4gSXQgYWxzbyByZW5hbWVzIGBwcHBvZV9yY3ZfY29yZWAgdG8gYHBwcG9lX2JhY2tsb2dfcmN2YCBhbmQgYWRkcyBhIGBzeW5jaHJvbml6ZV9uZXQoKWAgY2FsbCBpbiBgcHBwb2VfY29ubmVjdGAgdG8gcHJldmVudCByYWNlIGNvbmRpdGlvbnMgd2hlbiB1bmhhc2hpbmcgdGhlIHNvY2tldC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBQUFwiLFxuICAgIFwiUFBQT0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwcHBvZV9yY3ZcIixcbiAgICBcInBwcG9lX2JhY2tsb2dfcmN2XCIsXG4gICAgXCJwcHBvZV9jb25uZWN0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFBQUG9FIHJlY2VpdmUgcGF0aCB0byBieXBhc3MgdGhlIHNvY2tldCBiYWNrbG9nIHdoZW4gdGhlIHNvY2tldCBpcyBib3VuZCwgb3B0aW1pemluZyBwYWNrZXQgZGVsaXZlcnkuIEl0IGFsc28gcmVuYW1lcyBgcHBwb2VfcmN2X2NvcmVgIHRvIGBwcHBvZV9iYWNrbG9nX3JjdmAgYW5kIGFkZHMgYSBgc3luY2hyb25pemVfbmV0KClgIGNhbGwgaW4gYHBwcG9lX2Nvbm5lY3RgIHRvIHByZXZlbnQgcmFjZSBjb25kaXRpb25zIHdoZW4gdW5oYXNoaW5nIHRoZSBzb2NrZXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow59842[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-04 07:53:40 +0000 UTC FinishedAt: 2026-08-04 08:41:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "5aed8f404401bfa1570cf0c3ffed7b752f568e83", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PPP", "PPPOE" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "5aed8f404401bfa1570cf0c3ffed7b752f568e83", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "PPP", "PPPOE" ], "series_id": "61e13d6f-fb3d-4174-b80a-bdf697b3fc21" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "pppoe_rcv", "pppoe_backlog_rcv", "pppoe_connect" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7LAogICAgJiMzNDtQUFBPRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcG9lX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9iYWNrbG9nX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9jb25uZWN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBQUFBvRSByZWNlaXZlIHBhdGggdG8gYnlwYXNzIHRoZSBzb2NrZXQgYmFja2xvZyB3aGVuIHRoZSBzb2NrZXQgaXMgYm91bmQsIG9wdGltaXppbmcgcGFja2V0IGRlbGl2ZXJ5LiBJdCBhbHNvIHJlbmFtZXMgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBhZGRzIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGluIGBwcHBvZV9jb25uZWN0YCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyB3aGVuIHVuaGFzaGluZyB0aGUgc29ja2V0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDg6NDE8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiOThjZTk5ODg3ZjM2OWQwZWMyZDdmODI5OWE4YmI4OWNlZDkwNDcyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgNCAwODo0MTowMiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXG5pbmRleCA2ODc0YTFhOGVkYWYxLi4wNjI0MTE2MjQxODIzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXG5AQCAtMzQ1LDEwICYjNDM7MzQ1LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgcHBwb2Vfbm90aWZpZXIgPSB7XG4gXG4gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAqXG4tICogRG8gdGhlIHJlYWwgd29yayBvZiByZWNlaXZpbmcgYSBQUFBvRSBTZXNzaW9uIGZyYW1lLlxuJiM0MzsgKiBCYWNrbG9nIHJlY2VpdmUgYSBQUFBvRSBTZXNzaW9uIGZyYW1lIGFuZCBkZWxpdmVyIHRvIHVzZXJzcGFjZS5cbiAgKlxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi1zdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiYjNDM7c3RhdGljIGludCBwcHBvZV9iYWNrbG9nX3JjdihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuIFx0c3RydWN0IHBwcG94X3NvY2sgKnBvID0gcHBwb3hfc2soc2spO1xuIFxuQEAgLTM3Myw3ICYjNDM7MzczLDcgQEAgc3RhdGljIGludCBwcHBvZV9yY3ZfY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4gXG4gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAqXG4tICogUmVjZWl2ZSB3cmFwcGVyIGNhbGxlZCBpbiBCSCBjb250ZXh0LlxuJiM0MzsgKiBSZWNlaXZlIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZS5cbiAgKlxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbiBzdGF0aWMgaW50IHBwcG9lX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuQEAgLTQyMCw2ICYjNDM7NDIwLDEwIEBAIHN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRpZiAoIXBvKVxuIFx0XHRnb3RvIGRyb3A7XG4gXG4mIzQzO1x0aWYgKGxpa2VseShwby1cdTAwM2Vzay5za19zdGF0ZSBcdTAwMjYgUFBQT1hfQk9VTkQpKSB7XG4mIzQzO1x0XHRwcHBfaW5wdXQoXHUwMDI2cG8tXHUwMDNlY2hhbiwgc2tiKTtcbiYjNDM7XHRcdHJldHVybiBORVRfUlhfU1VDQ0VTUztcbiYjNDM7XHR9XG4gXHRyZXR1cm4gX19za19yZWNlaXZlX3NrYihcdTAwMjZwby1cdTAwM2Vzaywgc2tiLCAwLCAxLCBmYWxzZSk7XG4gXG4gZHJvcDpcbkBAIC01MjQsNyAmIzQzOzUyOCw3IEBAIHN0YXRpYyBpbnQgcHBwb2VfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywgaW50IGtlcm4pXG4gXHRzb2NrLVx1MDAzZXN0YXRlXHQ9IFNTX1VOQ09OTkVDVEVEO1xuIFx0c29jay1cdTAwM2VvcHNcdD0gXHUwMDI2cHBwb2Vfb3BzO1xuIFxuLVx0c2stXHUwMDNlc2tfYmFja2xvZ19yY3ZcdD0gcHBwb2VfcmN2X2NvcmU7XG4mIzQzO1x0c2stXHUwMDNlc2tfYmFja2xvZ19yY3ZcdD0gcHBwb2VfYmFja2xvZ19yY3Y7XG4gXHRzay1cdTAwM2Vza19kZXN0cnVjdFx0XHQ9IHBwcG9lX2Rlc3RydWN0O1xuIFx0c2stXHUwMDNlc2tfc3RhdGVcdFx0PSBQUFBPWF9OT05FO1xuIFx0c2stXHUwMDNlc2tfdHlwZVx0XHQ9IFNPQ0tfU1RSRUFNO1xuQEAgLTYyNSw2ICYjNDM7NjI5LDEzIEBAIHN0YXRpYyBpbnQgcHBwb2VfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHJfdW5zaXplZCAqdXNlcnZhZGRyXG4gXHRcdHBuID0gcHBwb2VfcGVybmV0KHNvY2tfbmV0KHNrKSk7XG4gXHRcdGRlbGV0ZV9pdGVtKHBuLCBwby1cdTAwM2VwcHBvZV9wYS5zaWQsXG4gXHRcdFx0ICAgIHBvLVx1MDAzZXBwcG9lX3BhLnJlbW90ZSwgcG8tXHUwMDNlcHBwb2VfaWZpbmRleCk7XG4mIzQzO1xuJiM0MztcdFx0LyogcHBwb2VfcmN2KCkgY2FuIGNhbGwgcHBwX2lucHV0KCkgd2l0aG91dCB0YWtpbmcgdGhlIHNvY2tldFxuJiM0MztcdFx0ICogbG9jay4gT25jZSB0aGUgc29ja2V0IGlzIHVuaGFzaGVkLCB3YWl0IGZvciBhbnkgcmVjZWl2ZSBwYXRoXG4mIzQzO1x0XHQgKiB0aGF0IGZvdW5kIGl0IGVhcmxpZXIgYmVmb3JlIGNsZWFyaW5nIGFuZCByZXVzaW5nIHBvLVx1MDAzZWNoYW4uXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdHN5bmNocm9uaXplX25ldCgpO1xuJiM0MztcbiBcdFx0aWYgKHBvLVx1MDAzZXBwcG9lX2Rldikge1xuIFx0XHRcdGRldl9wdXQocG8tXHUwMDNlcHBwb2VfZGV2KTtcbiBcdFx0XHRwby1cdTAwM2VwcHBvZV9kZXYgPSBOVUxMO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtQUFAmIzM0OywKICAgICYjMzQ7UFBQT0UmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwcHBvZV9yY3YmIzM0OywKICAgICYjMzQ7cHBwb2VfYmFja2xvZ19yY3YmIzM0OywKICAgICYjMzQ7cHBwb2VfY29ubmVjdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoIHRvIGJ5cGFzcyB0aGUgc29ja2V0IGJhY2tsb2cgd2hlbiB0aGUgc29ja2V0IGlzIGJvdW5kLCBvcHRpbWl6aW5nIHBhY2tldCBkZWxpdmVyeS4gSXQgYWxzbyByZW5hbWVzIGBwcHBvZV9yY3ZfY29yZWAgdG8gYHBwcG9lX2JhY2tsb2dfcmN2YCBhbmQgYWRkcyBhIGBzeW5jaHJvbml6ZV9uZXQoKWAgY2FsbCBpbiBgcHBwb2VfY29ubmVjdGAgdG8gcHJldmVudCByYWNlIGNvbmRpdGlvbnMgd2hlbiB1bmhhc2hpbmcgdGhlIHNvY2tldC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUgdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgYjk4Y2U5OTg4N2YzNjlkMGVjMmQ3ZjgyOTlhOGJiODljZWQ5MDQ3MgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDQgMDg6NDE6MDIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCmluZGV4IDY4NzRhMWE4ZWRhZjEuLjA2MjQxMTYyNDE4MjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jCkBAIC0zNDUsMTAgJiM0MzszNDUsMTAgQEAgc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBwcHBvZV9ub3RpZmllciA9IHsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKLSAqIERvIHRoZSByZWFsIHdvcmsgb2YgcmVjZWl2aW5nIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZS4KJiM0MzsgKiBCYWNrbG9nIHJlY2VpdmUgYSBQUFBvRSBTZXNzaW9uIGZyYW1lIGFuZCBkZWxpdmVyIHRvIHVzZXJzcGFjZS4KICAqCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1zdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKJiM0MztzdGF0aWMgaW50IHBwcG9lX2JhY2tsb2dfcmN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIHsKIAlzdHJ1Y3QgcHBwb3hfc29jayAqcG8gPSBwcHBveF9zayhzayk7CiAKQEAgLTM3Myw3ICYjNDM7MzczLDcgQEAgc3RhdGljIGludCBwcHBvZV9yY3ZfY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCi0gKiBSZWNlaXZlIHdyYXBwZXIgY2FsbGVkIGluIEJIIGNvbnRleHQuCiYjNDM7ICogUmVjZWl2ZSBhIFBQUG9FIFNlc3Npb24gZnJhbWUuCiAgKgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKQEAgLTQyMCw2ICYjNDM7NDIwLDEwIEBAIHN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJaWYgKCFwbykKIAkJZ290byBkcm9wOwogCiYjNDM7CWlmIChsaWtlbHkocG8tJmd0O3NrLnNrX3N0YXRlICZhbXA7IFBQUE9YX0JPVU5EKSkgewomIzQzOwkJcHBwX2lucHV0KCZhbXA7cG8tJmd0O2NoYW4sIHNrYik7CiYjNDM7CQlyZXR1cm4gTkVUX1JYX1NVQ0NFU1M7CiYjNDM7CX0KIAlyZXR1cm4gX19za19yZWNlaXZlX3NrYigmYW1wO3BvLSZndDtzaywgc2tiLCAwLCAxLCBmYWxzZSk7CiAKIGRyb3A6CkBAIC01MjQsNyAmIzQzOzUyOCw3IEBAIHN0YXRpYyBpbnQgcHBwb2VfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywgaW50IGtlcm4pCiAJc29jay0mZ3Q7c3RhdGUJPSBTU19VTkNPTk5FQ1RFRDsKIAlzb2NrLSZndDtvcHMJPSAmYW1wO3BwcG9lX29wczsKIAotCXNrLSZndDtza19iYWNrbG9nX3Jjdgk9IHBwcG9lX3Jjdl9jb3JlOwomIzQzOwlzay0mZ3Q7c2tfYmFja2xvZ19yY3YJPSBwcHBvZV9iYWNrbG9nX3JjdjsKIAlzay0mZ3Q7c2tfZGVzdHJ1Y3QJCT0gcHBwb2VfZGVzdHJ1Y3Q7CiAJc2stJmd0O3NrX3N0YXRlCQk9IFBQUE9YX05PTkU7CiAJc2stJmd0O3NrX3R5cGUJCT0gU09DS19TVFJFQU07CkBAIC02MjUsNiAmIzQzOzYyOSwxMyBAQCBzdGF0aWMgaW50IHBwcG9lX2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyX3Vuc2l6ZWQgKnVzZXJ2YWRkcgogCQlwbiA9IHBwcG9lX3Blcm5ldChzb2NrX25ldChzaykpOwogCQlkZWxldGVfaXRlbShwbiwgcG8tJmd0O3BwcG9lX3BhLnNpZCwKIAkJCSAgICBwby0mZ3Q7cHBwb2VfcGEucmVtb3RlLCBwby0mZ3Q7cHBwb2VfaWZpbmRleCk7CiYjNDM7CiYjNDM7CQkvKiBwcHBvZV9yY3YoKSBjYW4gY2FsbCBwcHBfaW5wdXQoKSB3aXRob3V0IHRha2luZyB0aGUgc29ja2V0CiYjNDM7CQkgKiBsb2NrLiBPbmNlIHRoZSBzb2NrZXQgaXMgdW5oYXNoZWQsIHdhaXQgZm9yIGFueSByZWNlaXZlIHBhdGgKJiM0MzsJCSAqIHRoYXQgZm91bmQgaXQgZWFybGllciBiZWZvcmUgY2xlYXJpbmcgYW5kIHJldXNpbmcgcG8tJmd0O2NoYW4uCiYjNDM7CQkgKi8KJiM0MzsJCXN5bmNocm9uaXplX25ldCgpOwomIzQzOwogCQlpZiAocG8tJmd0O3BwcG9lX2RldikgewogCQkJZGV2X3B1dChwby0mZ3Q7cHBwb2VfZGV2KTsKIAkJCXBvLSZndDtwcHBvZV9kZXYgPSBOVUxMOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwODo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzE5CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMjE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUFBQb0UgUmVjZWl2ZSBQYXRoIE1vZGlmaWNhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBkcml2ZXJzL25ldC9wcHAvcHBwb2UuY2AuIE15IGluaXRpYWwgcmVhZCBpcyB0aGF0IHRoZXkmIzM5O3ZlIHJlZmFjdG9yZWQgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBmdW5kYW1lbnRhbGx5IGFsdGVyZWQgdGhlIGBwcHBvZV9yY3ZgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBpcyBhIGNvbmRpdGlvbmFsIGJ5cGFzcyBvZiB0aGUgc29ja2V0IGJhY2tsb2c6IGlmIHRoZSBzb2NrZXQgaXMgYm91bmQgKGFzIGluZGljYXRlZCBieSBgcG8tJmd0O3NrLnNrX3N0YXRlICZhbXA7IFBQUE9YX0JPVU5EYCksIGBwcHBvZV9yY3ZgIG5vdyBkaXJlY3RseSBpbnZva2VzIGBwcHBfaW5wdXQoJmFtcDtwby0mZ3Q7Y2hhbiwgc2tiKWAuIFRoaXMgaXMgY2xlYXJseSBhbiBvcHRpbWl6YXRpb24gYWltaW5nIGZvciByZWR1Y2VkIGxhdGVuY3kgYnkgZWxpbWluYXRpbmcgdGhlIHF1ZXVpbmcgb3ZlcmhlYWQuCgpJJiMzOTttIGFsc28gc2VlaW5nIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGFkZGVkIGluIGBwcHBvZV9jb25uZWN0YCBkdXJpbmcgdGhlIHVuaGFzaGluZyBwcm9jZXNzLCByaWdodCBiZWZvcmUgYHBvLSZndDtjaGFuYCBpcyBjbGVhcmVkLiBUaGlzIGlzIHNtYXJ0OyB0aGV5JiMzOTtyZSBlbnN1cmluZyB0aGF0IGFueSBsaW5nZXJpbmcgcmVjZWl2ZSBwYXRocyB3aGljaCBtaWdodCBoYXZlIGZvdW5kIHRoZSBzb2NrZXQgcHJpb3IgdG8gaXRzIHVuaGFzaGluZyBhcmUgYWxsb3dlZCB0byBjb21wbGV0ZS4gVGhpcyBwcmV2ZW50cyBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zIHdoZW4gcmV1c2luZyB0aGUgYHBvLSZndDtjaGFuYC4KCkVzc2VudGlhbGx5LCB0aGlzIGlzIGEgdGFyZ2V0ZWQgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnQsIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdG8gdGhlIFBQUG9FIHJlY2VpdmUgcGF0aCwgd2hpY2ggYWltcyB0byBpbXByb3ZlIHRoZSBlZmZpY2llbmN5IHdoZW4gc29ja2V0cyBhcmUgYm91bmQuIFRoZSBkaXJlY3QgY2FsbCB0byBgcHBwX2lucHV0YCBpcyBwb3RlbnRpYWxseSBzaWduaWZpY2FudC4KCkJlZm9yZSBJIGRlbHZlIGRlZXBlciBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzIGFuZCBwb3RlbnRpYWwgaW1wbGljYXRpb25zLCBJIG5lZWQgdG8gY2hlY2sgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGltZSB0byB1c2UgYGdyZXBwZXJgIGFuZCBmaW5kIHRoZSByZWxldmFudCBjb25maWcgc3ltYm9scyBmb3IgYGRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jYC4gSSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoaXMgY2hhbmdlIGlzIHByb3Blcmx5IGd1YXJkZWQgYnkgY29uZmlndXJhdGlvbiBhbmQgdGhhdCBpdCBpcyBhY3RpdmUgaW4gdGhlIGNvbnRleHRzIHdoZXJlIGl0IGlzIGxpa2VseSB0byBiZSB1c2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BwcG9lXFwubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcHBwL01ha2VmaWxlPTEyPW9iai0kKENPTkZJR19QUFBPWCkgJiM0Mzs9IHBwcG94Lm9cbmRyaXZlcnMvbmV0L3BwcC9NYWtlZmlsZToxMzpvYmotJChDT05GSUdfUFBQT0UpICYjNDM7PSBwcHBvZS5vXG5kcml2ZXJzL25ldC9wcHAvTWFrZWZpbGUtMTQtb2JqLSQoQ09ORklHX1BQVFApICYjNDM7PSBwcHRwLm9cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwODo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDMwCgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRXhhbWluaW5nIFBQUG9FIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIHRoZSBhY3RpdmUgY29uZmlndXJhdGlvbiBpcyBjbGVhcmx5IGBDT05GSUdfUFBQT0VgLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyBhbHdheXMgdG8gZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIgY29tcG9uZW50cyBhcmUgcmVxdWlyZWQsIG9yIG9wdGlvbmFsbHkgbGlua2VkLCB0byBzdXBwb3J0IHRoaXMgY29uZmlndXJhdGlvbi4gQXJlIHRoZXJlIHNwZWNpZmljIG5ldHdvcmsgZHJpdmVycywgdW5kZXJseWluZyBwcm90b2NvbHMsIG9yIG90aGVyIGtlcm5lbCBtb2R1bGVzIHRoYXQgbmVlZCB0byBiZSBpbiBwbGFjZT8gVGhpcyBpc24mIzM5O3QganVzdCBhYm91dCBlbnN1cmluZyB0aGUgZmVhdHVyZSB3b3JrczsgaXQmIzM5O3MgYWJvdXQgYW50aWNpcGF0aW5nIHBvdGVudGlhbCBjb25mbGljdHMgb3IgcGVyZm9ybWFuY2UgYm90dGxlbmVja3MuIEkgbmVlZCB0byBxdWlja2x5IHZpc3VhbGl6ZSB0aGUgZGVwZW5kZW5jeSB0cmVlIGFuZCBwaW5wb2ludCBhbnkgYXJlYXMgdGhhdCBtaWdodCByZXF1aXJlIHNwZWNpYWwgYXR0ZW50aW9uIGR1cmluZyB0ZXN0aW5nIG9yIGRlcGxveW1lbnQuIFdoYXQmIzM5O3MgdGhlIGJlc3Qgd2F5IHRvIHRyYWNlIHRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMgYW5kIHRoZSBLY29uZmlnIHN0cnVjdHVyZSB0byBtYXAgdGhpcyBvdXQgcXVpY2tseT8gSSB3YW50IHRvIG1ha2Ugc3VyZSBJJiMzOTttIG5vdCBtaXNzaW5nIGFueSBjcml0aWNhbCBwaWVjZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDg6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFBQUE9FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcHBwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMTM9Y29uZmlnIFBQUE9YXG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE1LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTE2OmNvbmZpZyBQUFBPRVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE3LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIG92ZXIgRXRoZXJuZXRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMjc9Y2hvaWNlXG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTM4LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTM5OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQwLVx0Ym9vbCBcJiMzNDsxIGJpdCAoMiBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQxLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQyOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMlxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDsyIGJpdHMgKDQgYnVja2V0cylcJiMzNDtcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0NC1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0NTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzRcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0Ni1cdGJvb2wgXCYjMzQ7NCBiaXRzICgxNiBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ3LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ4OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfOFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ5LVx0Ym9vbCBcJiMzNDs4IGJpdHMgKDI1NiBidWNrZXRzKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE1MT1lbmRjaG9pY2VcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE1Mi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE1Mzpjb25maWcgUFBQT0VfSEFTSF9CSVRTXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTQtXHRpbnRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwODo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MDcwCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gdGhlIFBQUG9FIEtjb25maWcqKgoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJIG5lZWQgdG8gdGFrZSBhIGNvbXByZWhlbnNpdmUgbG9vayBhdCB0aGUgS2NvbmZpZyBmaWxlIGZvciBQUFBvRS4gSSB3YW50IHRvIHVuZGVyc3RhbmQgKmV2ZXJ5dGhpbmcqIOKAkyB0aGUgZGVwZW5kZW5jaWVzLCB0aGUgZGVmYXVsdCB2YWx1ZXMsIGFsbCB0aGUgY29uZmlndXJhYmxlIG9wdGlvbnMsIGFuZCB0aGUgaW1wbGljYXRpb25zIG9mIGVhY2ggc2V0dGluZy4gVGhpcyBpc24mIzM5O3QganVzdCBhIGNhc3VhbCBnbGFuY2U7IEkgbmVlZCB0aGUgY29tcGxldGUgcGljdHVyZS4gSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIGRldGFpbHMsIHRoZSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgdW5kZXJseWluZyBuZXR3b3JrIHN0YWNrLCBhbmQgaG93IHRoaXMgY29uZmlndXJhdGlvbiB3aWxsIGFmZmVjdCBwZXJmb3JtYW5jZSBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24uIEkgbmVlZCB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIGhpZGRlbiBnb3RjaGFzIG9yIHVuZXhwZWN0ZWQgY29uZmlndXJhdGlvbnMsIGFuZCB0byBiZSBjZXJ0YWluIHRoaXMgaW1wbGVtZW50YXRpb24gd2lsbCBtZWV0IGN1cnJlbnQgYW5kIGZ1dHVyZSBvcGVyYXRpb25hbCByZXF1aXJlbWVudHMuIFRoZSBzcGVjaWZpYyBwYXJhbWV0ZXJzIHdpbGwgZHJpdmUgb3B0aW1pemF0aW9uIG9mIHRoZSBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcHBwL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMTAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDExMDpcdFx0ICB3aGljaCBjYW4gbGVhZCB0byBiYWQgcmVzdWx0cyBpZiB0aGUgQVRNIHBlZXIgbG9zZXMgc3RhdGUgYW5kXG4gMTExOlx0XHQgIGNoYW5nZXMgaXRzIGVuY2Fwc3VsYXRpb24gdW5pbGF0ZXJhbGx5LlxuIDExMjpcdFxuIDExMzpcdGNvbmZpZyBQUFBPWFxuIDExNDpcdFx0dHJpc3RhdGVcbiAxMTU6XHRcbiAxMTY6XHRjb25maWcgUFBQT0VcbiAxMTc6XHRcdHRyaXN0YXRlIFwmIzM0O1BQUCBvdmVyIEV0aGVybmV0XCYjMzQ7XG4gMTE4Olx0XHRzZWxlY3QgUFBQT1hcbiAxMTk6XHRcdGhlbHBcbiAxMjA6XHRcdCAgU3VwcG9ydCBmb3IgUFBQIG92ZXIgRXRoZXJuZXQuXG4gMTIxOlx0XG4gMTIyOlx0XHQgIFRvIHdvcmsgaW4gY2xpZW50IG1vZGUsIHBwcGQgdmVyc2lvbiAyLjQuMiBvciBsYXRlciBpcyByZXF1aXJlZC5cbiAxMjM6XHRcdCAgVG8gd29yayBpbiBzZXJ2ZXIgbW9kZSwgdGhlIHBwcG9lLXNlcnZlciBjb21tYW5kIGZyb20gdGhlIFJQLVBQUG9FXG4gMTI0Olx0XHQgIHBhY2thZ2UgaXMgYWxzbyByZXF1aXJlZCwgYXZhaWxhYmxlIGF0XG4gMTI1Olx0XHQgIFx1MDAzY2h0dHBzOi8vZGlhbm5lLnNrb2xsLmNhL3Byb2plY3RzL3JwLXBwcG9lL1x1MDAzZS5cbiAxMjY6XHRcbiAxMjc6XHRjaG9pY2VcbiAxMjg6XHRcdHByb21wdCBcJiMzNDtOdW1iZXIgb2YgUFBQb0UgaGFzaCBiaXRzXCYjMzQ7XG4gMTI5Olx0XHRkZWZhdWx0IFBQUE9FX0hBU0hfQklUU180XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDg6NDE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU4NAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqUFBQIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKioKCk9rYXksIHNvIHRoZSBpc3N1ZSBhdCBoYW5kIGhpbmdlcyBvbiB0aGUgUG9pbnQtdG8tUG9pbnQgUHJvdG9jb2wgKFBQUCkuIEJlZm9yZSBJIGV2ZW4gZGlnIGludG8gdGhlIHNwZWNpZmljcyBvZiAqdGhpcyogcGFydGljdWxhciBzaXR1YXRpb24sIG15IGZpcnN0IHN0ZXAgaXMgYWx3YXlzIHRvIHZlcmlmeSB0aGUgUFBQIGNvbmZpZ3VyYXRpb24uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSB1bmRlcmx5aW5nIGluZnJhc3RydWN0dXJlIGFuZCBlbnN1cmUgdGhlIGZ1bmRhbWVudGFsIGNvbm5lY3Rpb24gcGFyYW1ldGVycyBhcmUgY29ycmVjdC4gVGhpcyBtZWFucyBJJiMzOTttIGltbWVkaWF0ZWx5IGdvaW5nIHRvIGxvb2sgYXQgdGhlIFBQUCBzZXR0aW5nczogYXV0aGVudGljYXRpb24gbWV0aG9kcywgSVAgYWRkcmVzc2luZyBuZWdvdGlhdGlvbiAod2hldGhlciBpdCYjMzk7cyBkeW5hbWljIG9yIHN0YXRpYyBhbmQgdGhlIHBvb2xzLCByYW5nZXMgZXRjLiksIGFuZCBsaW5rIGNvbnRyb2wgcHJvdG9jb2wgb3B0aW9ucy4gQXJlIHdlIHVzaW5nIENIQVAsIFBBUCwgb3IgcGVyaGFwcyBhIG1vcmUgcm9idXN0IEVBUCBtZXRob2Q/IFdoYXQgYWJvdXQgTVRVIHNpemUgbmVnb3RpYXRpb24/IEFueSBmcmFnbWVudGF0aW9uIGNvbmNlcm5zPyBUaGlzIGJhc2UgbGF5ZXIgaXMgYWJzb2x1dGVseSBjcml0aWNhbDsgbWlzY29uZmlndXJlZCBQUFAgY2FuIGNhc2NhZGUgaW50byBhIHdob2xlIGhvc3Qgb2YgbW9yZSBjb21wbGV4IGlzc3VlcyB0aGF0IGFyZSBoYXJkIHRvIGRlYnVnIHdoZW4gc3RhcnRpbmcgdGhlIGludmVzdGlnYXRpb24gZnJvbSB0aGUgYXBwbGljYXRpb24gbGF5ZXIuIExldCYjMzk7cyBzZWUgd2hhdCB0aGUgUFBQIGNvbmZpZyByZXZlYWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNCAwODo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUFBQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvcHBwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9wcHAvS2NvbmZpZy01LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6Njpjb25maWcgUFBQXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIChwb2ludC10by1wb2ludCBwcm90b2NvbCkgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTM1PWlmIFBQUFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMzYtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzozNzpjb25maWcgUFBQX0JTRENPTVBcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTM4LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIEJTRC1Db21wcmVzcyBjb21wcmVzc2lvblwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTU0LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6NTU6Y29uZmlnIFBQUF9ERUZMQVRFXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy01Ni1cdHRyaXN0YXRlIFwmIzM0O1BQUCBEZWZsYXRlIGNvbXByZXNzaW9uXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNjgtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzo2OTpjb25maWcgUFBQX0ZJTFRFUlxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNzAtXHRib29sIFwmIzM0O1BQUCBmaWx0ZXJpbmdcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy04MC1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjgxOmNvbmZpZyBQUFBfTVBQRVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctODItXHR0cmlzdGF0ZSBcJiMzNDtQUFAgTVBQRSBjb21wcmVzc2lvbiAoZW5jcnlwdGlvbilcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy05MS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjkyOmNvbmZpZyBQUFBfTVVMVElMSU5LXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy05My1cdGJvb2wgXCYjMzQ7UFBQIG11bHRpbGluayBzdXBwb3J0XCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTAzLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTA0OmNvbmZpZyBQUFBPQVRNXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMDUtXHR0cmlzdGF0ZSBcJiMzNDtQUFAgb3ZlciBBVE1cJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTItXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMTM6Y29uZmlnIFBQUE9YXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTQtXHR0cmlzdGF0ZVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE1LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTE2OmNvbmZpZyBQUFBPRVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE3LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIG92ZXIgRXRoZXJuZXRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMjc9Y2hvaWNlXG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTM4LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTM5OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQwLVx0Ym9vbCBcJiMzNDsxIGJpdCAoMiBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQxLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQyOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMlxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQzLVx0Ym9vbCBcJiMzNDsyIGJpdHMgKDQgYnVja2V0cylcJiMzNDtcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0NC1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0NTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzRcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0Ni1cdGJvb2wgXCYjMzQ7NCBiaXRzICgxNiBidWNrZXRzKVwmIzM0O1xuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ3LVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ4OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfOFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ5LVx0Ym9vbCBcJiMzNDs4IGJpdHMgKDI1NiBidWNrZXRzKVwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE1MT1lbmRjaG9pY2VcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE1Mi1cbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE1Mzpjb25maWcgUFBQT0VfSEFTSF9CSVRTXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTQtXHRpbnRcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xNjE9Y29uZmlnIFBQVFBcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNzItXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNzM6Y29uZmlnIFBQUE9MMlRQXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNzQtXHR0cmlzdGF0ZSBcJiMzNDtQUFAgb3ZlciBMMlRQXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTgxPWlmIFRUWVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTgyLVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTgzOmNvbmZpZyBQUFBfQVNZTkNcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE4NC1cdHRyaXN0YXRlIFwmIzM0O1BQUCBzdXBwb3J0IGZvciBhc3luYyBzZXJpYWwgcG9ydHNcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xOTUtXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxOTY6Y29uZmlnIFBQUF9TWU5DX1RUWVxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTk3LVx0dHJpc3RhdGUgXCYjMzQ7UFBQIHN1cHBvcnQgZm9yIHN5bmMgdHR5IHBvcnRzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4OTUKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyNDEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgSW5pdGlhbCBBc3Nlc3NtZW50IG9mIHRoZSBQUFBvRSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYFBQUGAgYW5kIGBQUFBvRWAgY29uZmlndXJhdGlvbnMuIFRoZSBjb3JlIG9mIHRoaXMgc2VlbXMgdG8gYmUgYXJvdW5kIG1vZGlmaWNhdGlvbnMgdG8gYHBwcG9lX3JjdmAgYW5kIGBwcHBvZV9iYWNrbG9nX3JjdmAuIENsZWFybHksIHRoaXMgaXMgd2hlcmUgdGhlIGFjdGlvbiBpcyBoYXBwZW5pbmc7IGBwcHBvZV9yY3ZgIGhhbmRsZXMgaW5jb21pbmcgUFBQb0UgcGFja2V0cyBkaXJlY3RseSwgYW5kIGBwcHBvZV9iYWNrbG9nX3JjdmAgaXMgZm9yIHRob3NlIHBhY2tldHMgdGhhdCBuZWVkIHRvIGJlIHByb2Nlc3NlZCBsYXRlci4gVGhpcyBpcyBkZWZpbml0ZWx5IGZ1bmN0aW9uYWw7IHRoZSBjaGFuZ2VzIGFyZSByZWFjaGFibGUgY29kZS4gVGhlIGtleSBmdW5jdGlvbnMgdG8gZGlzc2VjdCBoZXJlIGFyZSBgcHBwb2VfcmN2YCwgYHBwcG9lX2JhY2tsb2dfcmN2YCwgYW5kIGBwcHBvZV9jb25uZWN0YC4KCk5vdywgdGhlIGZpcnN0IHRoaW5nIEkgd2FudCB0byB1bmRlcnN0YW5kIGlzIHRoZSBzY29wZSBvZiB0aGVzZSBmdW5jdGlvbnMsIGVzcGVjaWFsbHkgYHBwcG9lX3JjdmAuIExldCBtZSBxdWlja2x5IGNoZWNrIGlmIGBwcHBvZV9yY3ZgIGlzIGRlY2xhcmVkIGFzIHN0YXRpYy4gQWgsIHllcywgaXQgaXM6CmBgYGMKc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKCQkgICAgIHN0cnVjdCBwYWNrZXRfdHlwZSAqcHQsIHN0cnVjdCBuZXRfZGV2aWNlICpvcmlnX2RldikKYGBgCkJlaW5nIHN0YXRpYyBjYW4gYmUgYSBzbGlnaHQgcmVkIGZsYWcuIElmIGl0JiMzOTtzIGlubGluZWQsIGl0JiMzOTtzIG5vdCBhIGdyZWF0IHN5bWJvbCB0byBmb2N1cyBvbi4gQnV0LCBpdCYjMzk7cyBwcm9iYWJseSBwYXNzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyIHRvIGBkZXZfYWRkX3BhY2tgLCBzbyBsZXQgbWUgY29uZmlybSB0aGF0IGFzc3VtcHRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BwcG9lX3JjdiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTIxLSAqIDA0MDgwMCA6XHRSZXNwZWN0IHJlZmVyZW5jZSBjb3VudCBtZWNoYW5pc21zIG9uIG5ldC1kZXZpY2VzLlxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM6MjI6ICogMjAwODAwIDpcdGZpeCBrZnJlZShza2IpIGluIHBwcG9lX3JjdiAoYWNtZSlcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTIzLSAqXHRcdE1vZHVsZSByZWZlcmVuY2UgY291bnQgaXMgZGVjcmVtZW50ZWQgaW4gdGhlIHJpZ2h0IHNwb3Qgbm93LFxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTI4LSAqIDA1MDEwMSA6XHRGaXggUEFEVCBwcm9jZXNzaW5nLlxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM6Mjk6ICogMTQwNTAxIDpcdFVzZSBwcHBvZV9yY3ZfY29yZSB0byBoYW5kbGUgYWxsIGJhY2tsb2cuIChBbGV4ZXkpXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYy0zMC0gKiAxNzA3MDEgOlx0RG8gbm90IGxvY2tfc29jayB3aXRoIHJ3bG9jayBoZWxkLiAoRGF2ZU0pXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM9MzUxPXN0YXRpYyBpbnQgcHBwb2VfYmFja2xvZ19yY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTM3OC0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzozNzk6c3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTM4MC1cdFx0ICAgICBzdHJ1Y3QgcGFja2V0X3R5cGUgKnB0LCBzdHJ1Y3QgbmV0X2RldmljZSAqb3JpZ19kZXYpXG4tLVxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM9NDkxPXN0YXRpYyBzdHJ1Y3QgcGFja2V0X3R5cGUgcHBwb2VzX3B0eXBlIF9fcmVhZF9tb3N0bHkgPSB7XG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYy00OTItXHQudHlwZVx0PSBjcHVfdG9fYmUxNihFVEhfUF9QUFBfU0VTKSxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jOjQ5MzpcdC5mdW5jXHQ9IHBwcG9lX3JjdixcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTQ5NC19O1xuLS1cbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jPTU5MT1zdGF0aWMgaW50IHBwcG9lX2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyX3Vuc2l6ZWQgKnVzZXJ2YWRkcixcbi0tXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYy02MzItXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzo2MzM6XHRcdC8qIHBwcG9lX3JjdigpIGNhbiBjYWxsIHBwcF9pbnB1dCgpIHdpdGhvdXQgdGFraW5nIHRoZSBzb2NrZXRcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTYzNC1cdFx0ICogbG9jay4gT25jZSB0aGUgc29ja2V0IGlzIHVuaGFzaGVkLCB3YWl0IGZvciBhbnkgcmVjZWl2ZSBwYXRoXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA0IDA4OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcxMzEKCQkJCQkJCW91dHB1dDogMTYyCgkJCQkJCQl0aG91Z2h0czogMTM4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiBQUFBvRSBGdW5jdGlvbmFsaXR5IGZvciBGdXp6aW5nKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgc2NhbiBjb25maXJtcyB0aGF0IGBwcHBvZV9yY3ZgIGlzIGluZGVlZCBhc3NpZ25lZCB0byBgLmZ1bmNgIHdpdGhpbiBgcHBwb2VzX3B0eXBlYCwgc28gaXQmIzM5O3MgYSB2YWxpZCB0YXJnZXQgc3ltYm9sLCBub3QgaW5saW5lZCwgYW5kIGdvb2QgZm9yIGZ1enppbmcuIFNpbWlsYXJseSwgYHBwcG9lX2JhY2tsb2dfcmN2YCBpcyBhc3NpZ25lZCB0byBgc2stJmd0O3NrX2JhY2tsb2dfcmN2YCwgYW5kIGBwcHBvZV9jb25uZWN0YCBpcyB0aWVkIHRvIGBwcHBvZV9vcHMuY29ubmVjdGAuIFRoYXQmIzM5O3MgdGhyZWUgY2xlYXIgZm9jdXMgc3ltYm9scyByaWdodCB0aGVyZSwgYXMgbm9uZSBvZiB0aGVtIGFyZSBpbmxpbmVkLCBhcyBmYXIgYXMgSSBjYW4gc2VlLgoKTm93LCBsZXQmIzM5O3Mgc2VlIGlmIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhbnkgb3RoZXIgZnVuY3Rpb25zIHRoYXQgYXJlIG1vZGlmaWVkIGFuZCBwb3RlbnRpYWxseSByZWxldmFudC4gYHBwcG9lX2NyZWF0ZWAgaXMgdG91Y2hlZCwgYnV0IHRoYXQgc2VlbXMgbW9zdGx5IGxpa2Ugc2V0dXAsIHBhcnRpY3VsYXJseSB0aGUgYXNzaWdubWVudCBvZiBgc2stJmd0O3NrX2JhY2tsb2dfcmN2ID0gcHBwb2VfYmFja2xvZ19yY3ZgLiBBbHRob3VnaCwgc2luY2UgaXQmIzM5O3MgYSBmdW5jdGlvbiB3aXRoIHBvdGVudGlhbGx5IGRpZmZlcmVudCBiZWhhdmlvciwgbGV0JiMzOTtzIGtlZXAgYW4gZXllIG9uIGl0IHRvIGRldGVybWluZSBpZiBpdCBpcyBuZWNlc3NhcnkgdG8gaW5jbHVkZS4KClRoZXJlZm9yZSwgdGhlIG1haW4gZnVuY3Rpb25zIHRvIHByaW9yaXRpemUgYXJlOgoqICAgYHBwcG9lX3JjdmAKKiAgIGBwcHBvZV9iYWNrbG9nX3JjdmAKKiAgIGBwcHBvZV9jb25uZWN0YAoKUmVnYXJkaW5nIGNvbmZpZ3VyYXRpb24sIEkmIzM5O2xsIG5lZWQgYFBQUGAgYW5kIGBQUFBPRWAgdG8gZ2V0IGV2ZXJ5dGhpbmcgaW4uIEkgYnJpZWZseSBjb25zaWRlcmVkIGBQUFBPWGAsIGJ1dCBzaW5jZSBgUFBQT0VgIHNlbGVjdHMgaXQsIEkgZG9uJiMzOTt0IG5lZWQgdG8gc3BlY2lmeSBpdCBleHBsaWNpdGx5LCB0aG91Z2ggaXQgd29uJiMzOTt0IGh1cnQgdG8gaW5jbHVkZSBpdCBqdXN0IGluIGNhc2UuIEhvd2V2ZXIsIEkgd2lsbCBzdGljayB3aXRoIGp1c3QgYFBQUGAgYW5kIGBQUFBPRWAuCgpBIHF1aWNrIHJldmlldyBvZiB0aGUgcGF0Y2ggY29uZmlybXMgdGhlIGFib3ZlLiBUaGUgaW1wb3J0YW50IHRoaW5nIGlzIHRoYXQgYHBwcG9lX3JjdmAgaXMgc3RhdGljLiBFdmVuIHRob3VnaCBpdCBpcyBzdGF0aWMsIGl0IGlzIHVzZWQgYXMgYSBmdW5jdGlvbiBwb2ludGVyLCBtZWFuaW5nIGl0IHdvbiYjMzk7dCBiZSBpbmxpbmVkLgoKVGhlIGNoYW5nZXMgZm9jdXMgb24gb3B0aW1pemluZyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoLCBlc3BlY2lhbGx5IGJ5IGF2b2lkaW5nIHRoZSBzb2NrZXQgYmFja2xvZyBpbiB0aGUgYm91bmQgc3RhdGUgYW5kIGFkZGluZyBzeW5jaHJvbml6YXRpb24gdG8gYWRkcmVzcyBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zLiBUaGVyZWZvcmUsIHRoZXNlIGFyZSBhbGwgc29saWQgdGFyZ2V0cy4gSSYjMzk7bSBjb25maWRlbnQgaW4gdGhlc2UgZmluZGluZ3MuIEkmIzM5O2xsIHByb3ZpZGUgdGhlIGluZm9ybWF0aW9uIHdpdGggYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDQgMDg6NDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7LAogICAgJiMzNDtQUFBPRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcG9lX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9iYWNrbG9nX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9jb25uZWN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBQUFBvRSByZWNlaXZlIHBhdGggdG8gYnlwYXNzIHRoZSBzb2NrZXQgYmFja2xvZyB3aGVuIHRoZSBzb2NrZXQgaXMgYm91bmQsIG9wdGltaXppbmcgcGFja2V0IGRlbGl2ZXJ5LiBJdCBhbHNvIHJlbmFtZXMgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBhZGRzIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGluIGBwcHBvZV9jb25uZWN0YCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyB3aGVuIHVuaGFzaGluZyB0aGUgc29ja2V0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1BQUCYjMzQ7LAogICAgJiMzNDtQUFBPRSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3BwcG9lX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9iYWNrbG9nX3JjdiYjMzQ7LAogICAgJiMzNDtwcHBvZV9jb25uZWN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBQUFBvRSByZWNlaXZlIHBhdGggdG8gYnlwYXNzIHRoZSBzb2NrZXQgYmFja2xvZyB3aGVuIHRoZSBzb2NrZXQgaXMgYm91bmQsIG9wdGltaXppbmcgcGFja2V0IGRlbGl2ZXJ5LiBJdCBhbHNvIHJlbmFtZXMgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBhZGRzIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGluIGBwcHBvZV9jb25uZWN0YCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyB3aGVuIHVuaGFzaGluZyB0aGUgc29ja2V0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwODo0MTowNC40MTcwNjkzMTVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MDI4NzA2MDU4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJQUFBcIixcbiAgICBcIlBQUE9FXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHBwb2VfcmN2XCIsXG4gICAgXCJwcHBvZV9iYWNrbG9nX3JjdlwiLFxuICAgIFwicHBwb2VfY29ubmVjdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBQUFBvRSByZWNlaXZlIHBhdGggdG8gYnlwYXNzIHRoZSBzb2NrZXQgYmFja2xvZyB3aGVuIHRoZSBzb2NrZXQgaXMgYm91bmQsIG9wdGltaXppbmcgcGFja2V0IGRlbGl2ZXJ5LiBJdCBhbHNvIHJlbmFtZXMgYHBwcG9lX3Jjdl9jb3JlYCB0byBgcHBwb2VfYmFja2xvZ19yY3ZgIGFuZCBhZGRzIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGluIGBwcHBvZV9jb25uZWN0YCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyB3aGVuIHVuaGFzaGluZyB0aGUgc29ja2V0LiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHJlYWNoYWJsZSBjb3JlIG5ldHdvcmtpbmcgY29kZSB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjA0LjQxNzA3NzE3NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM4MDAyNzI0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGI5OGNlOTk4ODdmMzY5ZDBlYzJkN2Y4Mjk5YThiYjg5Y2VkOTA0NzJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgNCAwODo0MTowMiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXFxuaW5kZXggNjg3NGExYThlZGFmMS4uMDYyNDExNjI0MTgyMyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXFxuQEAgLTM0NSwxMCArMzQ1LDEwIEBAIHN0YXRpYyBzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgcHBwb2Vfbm90aWZpZXIgPSB7XFxuIFxcbiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXFxuICAqXFxuLSAqIERvIHRoZSByZWFsIHdvcmsgb2YgcmVjZWl2aW5nIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZS5cXG4rICogQmFja2xvZyByZWNlaXZlIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZSBhbmQgZGVsaXZlciB0byB1c2Vyc3BhY2UuXFxuICAqXFxuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cXG4tc3RhdGljIGludCBwcHBvZV9yY3ZfY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXFxuK3N0YXRpYyBpbnQgcHBwb2VfYmFja2xvZ19yY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiB7XFxuIFxcdHN0cnVjdCBwcHBveF9zb2NrICpwbyA9IHBwcG94X3NrKHNrKTtcXG4gXFxuQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4gXFxuIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcXG4gICpcXG4tICogUmVjZWl2ZSB3cmFwcGVyIGNhbGxlZCBpbiBCSCBjb250ZXh0LlxcbisgKiBSZWNlaXZlIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZS5cXG4gICpcXG4gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xcbiBzdGF0aWMgaW50IHBwcG9lX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbkBAIC00MjAsNiArNDIwLDEwIEBAIHN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuIFxcdGlmICghcG8pXFxuIFxcdFxcdGdvdG8gZHJvcDtcXG4gXFxuK1xcdGlmIChsaWtlbHkocG8tXFx1MDAzZXNrLnNrX3N0YXRlIFxcdTAwMjYgUFBQT1hfQk9VTkQpKSB7XFxuK1xcdFxcdHBwcF9pbnB1dChcXHUwMDI2cG8tXFx1MDAzZWNoYW4sIHNrYik7XFxuK1xcdFxcdHJldHVybiBORVRfUlhfU1VDQ0VTUztcXG4rXFx0fVxcbiBcXHRyZXR1cm4gX19za19yZWNlaXZlX3NrYihcXHUwMDI2cG8tXFx1MDAzZXNrLCBza2IsIDAsIDEsIGZhbHNlKTtcXG4gXFxuIGRyb3A6XFxuQEAgLTUyNCw3ICs1MjgsNyBAQCBzdGF0aWMgaW50IHBwcG9lX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBrZXJuKVxcbiBcXHRzb2NrLVxcdTAwM2VzdGF0ZVxcdD0gU1NfVU5DT05ORUNURUQ7XFxuIFxcdHNvY2stXFx1MDAzZW9wc1xcdD0gXFx1MDAyNnBwcG9lX29wcztcXG4gXFxuLVxcdHNrLVxcdTAwM2Vza19iYWNrbG9nX3JjdlxcdD0gcHBwb2VfcmN2X2NvcmU7XFxuK1xcdHNrLVxcdTAwM2Vza19iYWNrbG9nX3JjdlxcdD0gcHBwb2VfYmFja2xvZ19yY3Y7XFxuIFxcdHNrLVxcdTAwM2Vza19kZXN0cnVjdFxcdFxcdD0gcHBwb2VfZGVzdHJ1Y3Q7XFxuIFxcdHNrLVxcdTAwM2Vza19zdGF0ZVxcdFxcdD0gUFBQT1hfTk9ORTtcXG4gXFx0c2stXFx1MDAzZXNrX3R5cGVcXHRcXHQ9IFNPQ0tfU1RSRUFNO1xcbkBAIC02MjUsNiArNjI5LDEzIEBAIHN0YXRpYyBpbnQgcHBwb2VfY29ubmVjdChzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3Qgc29ja2FkZHJfdW5zaXplZCAqdXNlcnZhZGRyXFxuIFxcdFxcdHBuID0gcHBwb2VfcGVybmV0KHNvY2tfbmV0KHNrKSk7XFxuIFxcdFxcdGRlbGV0ZV9pdGVtKHBuLCBwby1cXHUwMDNlcHBwb2VfcGEuc2lkLFxcbiBcXHRcXHRcXHQgICAgcG8tXFx1MDAzZXBwcG9lX3BhLnJlbW90ZSwgcG8tXFx1MDAzZXBwcG9lX2lmaW5kZXgpO1xcbitcXG4rXFx0XFx0LyogcHBwb2VfcmN2KCkgY2FuIGNhbGwgcHBwX2lucHV0KCkgd2l0aG91dCB0YWtpbmcgdGhlIHNvY2tldFxcbitcXHRcXHQgKiBsb2NrLiBPbmNlIHRoZSBzb2NrZXQgaXMgdW5oYXNoZWQsIHdhaXQgZm9yIGFueSByZWNlaXZlIHBhdGhcXG4rXFx0XFx0ICogdGhhdCBmb3VuZCBpdCBlYXJsaWVyIGJlZm9yZSBjbGVhcmluZyBhbmQgcmV1c2luZyBwby1cXHUwMDNlY2hhbi5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdHN5bmNocm9uaXplX25ldCgpO1xcbitcXG4gXFx0XFx0aWYgKHBvLVxcdTAwM2VwcHBvZV9kZXYpIHtcXG4gXFx0XFx0XFx0ZGV2X3B1dChwby1cXHUwMDNlcHBwb2VfZGV2KTtcXG4gXFx0XFx0XFx0cG8tXFx1MDAzZXBwcG9lX2RldiA9IE5VTEw7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjA1Ljc5NzY1NDkyNVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjM4OTA2NDYzOTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBQUFwiLFxuICAgIFwiUFBQT0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwcHBvZV9yY3ZcIixcbiAgICBcInBwcG9lX2JhY2tsb2dfcmN2XCIsXG4gICAgXCJwcHBvZV9jb25uZWN0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFBQUG9FIHJlY2VpdmUgcGF0aCB0byBieXBhc3MgdGhlIHNvY2tldCBiYWNrbG9nIHdoZW4gdGhlIHNvY2tldCBpcyBib3VuZCwgb3B0aW1pemluZyBwYWNrZXQgZGVsaXZlcnkuIEl0IGFsc28gcmVuYW1lcyBgcHBwb2VfcmN2X2NvcmVgIHRvIGBwcHBvZV9iYWNrbG9nX3JjdmAgYW5kIGFkZHMgYSBgc3luY2hyb25pemVfbmV0KClgIGNhbGwgaW4gYHBwcG9lX2Nvbm5lY3RgIHRvIHByZXZlbnQgcmFjZSBjb25kaXRpb25zIHdoZW4gdW5oYXNoaW5nIHRoZSBzb2NrZXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjk4Y2U5OTg4N2YzNjlkMGVjMmQ3ZjgyOTlhOGJiODljZWQ5MDQ3MlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDQgMDg6NDE6MDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9wcHAvcHBwb2UuYyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXG5pbmRleCA2ODc0YTFhOGVkYWYxLi4wNjI0MTE2MjQxODIzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvcHBwL3BwcG9lLmNcbisrKyBiL2RyaXZlcnMvbmV0L3BwcC9wcHBvZS5jXG5AQCAtMzQ1LDEwICszNDUsMTAgQEAgc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBwcHBvZV9ub3RpZmllciA9IHtcbiBcbiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICpcbi0gKiBEbyB0aGUgcmVhbCB3b3JrIG9mIHJlY2VpdmluZyBhIFBQUG9FIFNlc3Npb24gZnJhbWUuXG4rICogQmFja2xvZyByZWNlaXZlIGEgUFBQb0UgU2Vzc2lvbiBmcmFtZSBhbmQgZGVsaXZlciB0byB1c2Vyc3BhY2UuXG4gICpcbiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4tc3RhdGljIGludCBwcHBvZV9yY3ZfY29yZShzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4rc3RhdGljIGludCBwcHBvZV9iYWNrbG9nX3JjdihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXG4ge1xuIFx0c3RydWN0IHBwcG94X3NvY2sgKnBvID0gcHBwb3hfc2soc2spO1xuIFxuQEAgLTM3Myw3ICszNzMsNyBAQCBzdGF0aWMgaW50IHBwcG9lX3Jjdl9jb3JlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiBcbiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICpcbi0gKiBSZWNlaXZlIHdyYXBwZXIgY2FsbGVkIGluIEJIIGNvbnRleHQuXG4rICogUmVjZWl2ZSBhIFBQUG9FIFNlc3Npb24gZnJhbWUuXG4gICpcbiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbkBAIC00MjAsNiArNDIwLDEwIEBAIHN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRpZiAoIXBvKVxuIFx0XHRnb3RvIGRyb3A7XG4gXG4rXHRpZiAobGlrZWx5KHBvLVx1MDAzZXNrLnNrX3N0YXRlIFx1MDAyNiBQUFBPWF9CT1VORCkpIHtcbitcdFx0cHBwX2lucHV0KFx1MDAyNnBvLVx1MDAzZWNoYW4sIHNrYik7XG4rXHRcdHJldHVybiBORVRfUlhfU1VDQ0VTUztcbitcdH1cbiBcdHJldHVybiBfX3NrX3JlY2VpdmVfc2tiKFx1MDAyNnBvLVx1MDAzZXNrLCBza2IsIDAsIDEsIGZhbHNlKTtcbiBcbiBkcm9wOlxuQEAgLTUyNCw3ICs1MjgsNyBAQCBzdGF0aWMgaW50IHBwcG9lX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBrZXJuKVxuIFx0c29jay1cdTAwM2VzdGF0ZVx0PSBTU19VTkNPTk5FQ1RFRDtcbiBcdHNvY2stXHUwMDNlb3BzXHQ9IFx1MDAyNnBwcG9lX29wcztcbiBcbi1cdHNrLVx1MDAzZXNrX2JhY2tsb2dfcmN2XHQ9IHBwcG9lX3Jjdl9jb3JlO1xuK1x0c2stXHUwMDNlc2tfYmFja2xvZ19yY3ZcdD0gcHBwb2VfYmFja2xvZ19yY3Y7XG4gXHRzay1cdTAwM2Vza19kZXN0cnVjdFx0XHQ9IHBwcG9lX2Rlc3RydWN0O1xuIFx0c2stXHUwMDNlc2tfc3RhdGVcdFx0PSBQUFBPWF9OT05FO1xuIFx0c2stXHUwMDNlc2tfdHlwZVx0XHQ9IFNPQ0tfU1RSRUFNO1xuQEAgLTYyNSw2ICs2MjksMTMgQEAgc3RhdGljIGludCBwcHBvZV9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkcl91bnNpemVkICp1c2VydmFkZHJcbiBcdFx0cG4gPSBwcHBvZV9wZXJuZXQoc29ja19uZXQoc2spKTtcbiBcdFx0ZGVsZXRlX2l0ZW0ocG4sIHBvLVx1MDAzZXBwcG9lX3BhLnNpZCxcbiBcdFx0XHQgICAgcG8tXHUwMDNlcHBwb2VfcGEucmVtb3RlLCBwby1cdTAwM2VwcHBvZV9pZmluZGV4KTtcbitcbitcdFx0LyogcHBwb2VfcmN2KCkgY2FuIGNhbGwgcHBwX2lucHV0KCkgd2l0aG91dCB0YWtpbmcgdGhlIHNvY2tldFxuK1x0XHQgKiBsb2NrLiBPbmNlIHRoZSBzb2NrZXQgaXMgdW5oYXNoZWQsIHdhaXQgZm9yIGFueSByZWNlaXZlIHBhdGhcbitcdFx0ICogdGhhdCBmb3VuZCBpdCBlYXJsaWVyIGJlZm9yZSBjbGVhcmluZyBhbmQgcmV1c2luZyBwby1cdTAwM2VjaGFuLlxuK1x0XHQgKi9cbitcdFx0c3luY2hyb25pemVfbmV0KCk7XG4rXG4gXHRcdGlmIChwby1cdTAwM2VwcHBvZV9kZXYpIHtcbiBcdFx0XHRkZXZfcHV0KHBvLVx1MDAzZXBwcG9lX2Rldik7XG4gXHRcdFx0cG8tXHUwMDNlcHBwb2VfZGV2ID0gTlVMTDtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjA1Ljc5NzY1NjMxNVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY0MTI1NTY3NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQUFBvRSBSZWNlaXZlIFBhdGggTW9kaWZpY2F0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHR3ZWFrcyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBkcml2ZXJzL25ldC9wcHAvcHBwb2UuY2AuIE15IGluaXRpYWwgcmVhZCBpcyB0aGF0IHRoZXkndmUgcmVmYWN0b3JlZCBgcHBwb2VfcmN2X2NvcmVgIHRvIGBwcHBvZV9iYWNrbG9nX3JjdmAgYW5kIGZ1bmRhbWVudGFsbHkgYWx0ZXJlZCB0aGUgYHBwcG9lX3JjdmAgZnVuY3Rpb24uIFRoZSBrZXkgY2hhbmdlIGlzIGEgY29uZGl0aW9uYWwgYnlwYXNzIG9mIHRoZSBzb2NrZXQgYmFja2xvZzogaWYgdGhlIHNvY2tldCBpcyBib3VuZCAoYXMgaW5kaWNhdGVkIGJ5IGBwby1cdTAwM2Vzay5za19zdGF0ZSBcdTAwMjYgUFBQT1hfQk9VTkRgKSwgYHBwcG9lX3JjdmAgbm93IGRpcmVjdGx5IGludm9rZXMgYHBwcF9pbnB1dChcdTAwMjZwby1cdTAwM2VjaGFuLCBza2IpYC4gVGhpcyBpcyBjbGVhcmx5IGFuIG9wdGltaXphdGlvbiBhaW1pbmcgZm9yIHJlZHVjZWQgbGF0ZW5jeSBieSBlbGltaW5hdGluZyB0aGUgcXVldWluZyBvdmVyaGVhZC5cblxuSSdtIGFsc28gc2VlaW5nIGEgYHN5bmNocm9uaXplX25ldCgpYCBjYWxsIGFkZGVkIGluIGBwcHBvZV9jb25uZWN0YCBkdXJpbmcgdGhlIHVuaGFzaGluZyBwcm9jZXNzLCByaWdodCBiZWZvcmUgYHBvLVx1MDAzZWNoYW5gIGlzIGNsZWFyZWQuIFRoaXMgaXMgc21hcnQ7IHRoZXkncmUgZW5zdXJpbmcgdGhhdCBhbnkgbGluZ2VyaW5nIHJlY2VpdmUgcGF0aHMgd2hpY2ggbWlnaHQgaGF2ZSBmb3VuZCB0aGUgc29ja2V0IHByaW9yIHRvIGl0cyB1bmhhc2hpbmcgYXJlIGFsbG93ZWQgdG8gY29tcGxldGUuIFRoaXMgcHJldmVudHMgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9ucyB3aGVuIHJldXNpbmcgdGhlIGBwby1cdTAwM2VjaGFuYC5cblxuRXNzZW50aWFsbHksIHRoaXMgaXMgYSB0YXJnZXRlZCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCwgYSBmdW5jdGlvbmFsIGNoYW5nZSB0byB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoLCB3aGljaCBhaW1zIHRvIGltcHJvdmUgdGhlIGVmZmljaWVuY3kgd2hlbiBzb2NrZXRzIGFyZSBib3VuZC4gVGhlIGRpcmVjdCBjYWxsIHRvIGBwcHBfaW5wdXRgIGlzIHBvdGVudGlhbGx5IHNpZ25pZmljYW50LlxuXG5CZWZvcmUgSSBkZWx2ZSBkZWVwZXIgaW50byB0aGUgaW1wbGVtZW50YXRpb24gZGV0YWlscyBhbmQgcG90ZW50aWFsIGltcGxpY2F0aW9ucywgSSBuZWVkIHRvIGNoZWNrIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRpbWUgdG8gdXNlIGBncmVwcGVyYCBhbmQgZmluZCB0aGUgcmVsZXZhbnQgY29uZmlnIHN5bWJvbHMgZm9yIGBkcml2ZXJzL25ldC9wcHAvcHBwb2UuY2AuIEkgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGlzIGNoYW5nZSBpcyBwcm9wZXJseSBndWFyZGVkIGJ5IGNvbmZpZ3VyYXRpb24gYW5kIHRoYXQgaXQgaXMgYWN0aXZlIGluIHRoZSBjb250ZXh0cyB3aGVyZSBpdCBpcyBsaWtlbHkgdG8gYmUgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjcxOSwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjEyLjIxMDIxNTgxOVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDYxNTc3NjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicHBwb2VcXFxcLm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcHBwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9wcHAvTWFrZWZpbGU9MTI9b2JqLSQoQ09ORklHX1BQUE9YKSArPSBwcHBveC5vXFxuZHJpdmVycy9uZXQvcHBwL01ha2VmaWxlOjEzOm9iai0kKENPTkZJR19QUFBPRSkgKz0gcHBwb2Uub1xcbmRyaXZlcnMvbmV0L3BwcC9NYWtlZmlsZS0xNC1vYmotJChDT05GSUdfUFBUUCkgKz0gcHB0cC5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjEyLjMxNjM3Nzg4MloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMzNjgzMzU2MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkV4YW1pbmluZyBQUFBvRSBDb25maWd1cmF0aW9uIERlcGVuZGVuY2llcyoqXG5cbk9rYXksIHNvIHRoZSBhY3RpdmUgY29uZmlndXJhdGlvbiBpcyBjbGVhcmx5IGBDT05GSUdfUFBQT0VgLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyBhbHdheXMgdG8gZGl2ZSBpbnRvIHRoZSBkZXBlbmRlbmNpZXMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQgb3RoZXIgY29tcG9uZW50cyBhcmUgcmVxdWlyZWQsIG9yIG9wdGlvbmFsbHkgbGlua2VkLCB0byBzdXBwb3J0IHRoaXMgY29uZmlndXJhdGlvbi4gQXJlIHRoZXJlIHNwZWNpZmljIG5ldHdvcmsgZHJpdmVycywgdW5kZXJseWluZyBwcm90b2NvbHMsIG9yIG90aGVyIGtlcm5lbCBtb2R1bGVzIHRoYXQgbmVlZCB0byBiZSBpbiBwbGFjZT8gVGhpcyBpc24ndCBqdXN0IGFib3V0IGVuc3VyaW5nIHRoZSBmZWF0dXJlIHdvcmtzOyBpdCdzIGFib3V0IGFudGljaXBhdGluZyBwb3RlbnRpYWwgY29uZmxpY3RzIG9yIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLiBJIG5lZWQgdG8gcXVpY2tseSB2aXN1YWxpemUgdGhlIGRlcGVuZGVuY3kgdHJlZSBhbmQgcGlucG9pbnQgYW55IGFyZWFzIHRoYXQgbWlnaHQgcmVxdWlyZSBzcGVjaWFsIGF0dGVudGlvbiBkdXJpbmcgdGVzdGluZyBvciBkZXBsb3ltZW50LiBXaGF0J3MgdGhlIGJlc3Qgd2F5IHRvIHRyYWNlIHRocm91Z2ggdGhlIGNvbmZpZ3VyYXRpb24gZmlsZXMgYW5kIHRoZSBLY29uZmlnIHN0cnVjdHVyZSB0byBtYXAgdGhpcyBvdXQgcXVpY2tseT8gSSB3YW50IHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55IGNyaXRpY2FsIHBpZWNlcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQzMCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjE1LjY4NDcxNjMxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3ODcyOTE1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUFBQT0VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcHBwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMTM9Y29uZmlnIFBQUE9YXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTUtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTE2OmNvbmZpZyBQUFBPRVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExNy1cXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgRXRoZXJuZXRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xMjc9Y2hvaWNlXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMzgtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTM5OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0MC1cXHRib29sIFxcXCIxIGJpdCAoMiBidWNrZXRzKVxcXCJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDEtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQyOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfMlxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0My1cXHRib29sIFxcXCIyIGJpdHMgKDQgYnVja2V0cylcXFwiXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ0LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0NTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzRcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDYtXFx0Ym9vbCBcXFwiNCBiaXRzICgxNiBidWNrZXRzKVxcXCJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDctXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTQ4OmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNfOFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0OS1cXHRib29sIFxcXCI4IGJpdHMgKDI1NiBidWNrZXRzKVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE1MT1lbmRjaG9pY2VcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTItXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTUzOmNvbmZpZyBQUFBPRV9IQVNIX0JJVFNcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNTQtXFx0aW50XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjE1Ljc2MzQ1MTA5OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5ODI1Njk4ODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBQUFBvRSBLY29uZmlnKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byB0YWtlIGEgY29tcHJlaGVuc2l2ZSBsb29rIGF0IHRoZSBLY29uZmlnIGZpbGUgZm9yIFBQUG9FLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCAqZXZlcnl0aGluZyog4oCTIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBkZWZhdWx0IHZhbHVlcywgYWxsIHRoZSBjb25maWd1cmFibGUgb3B0aW9ucywgYW5kIHRoZSBpbXBsaWNhdGlvbnMgb2YgZWFjaCBzZXR0aW5nLiBUaGlzIGlzbid0IGp1c3QgYSBjYXN1YWwgZ2xhbmNlOyBJIG5lZWQgdGhlIGNvbXBsZXRlIHBpY3R1cmUuIEknbSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIGRldGFpbHMsIHRoZSBpbnRlcmFjdGlvbnMgd2l0aCB0aGUgdW5kZXJseWluZyBuZXR3b3JrIHN0YWNrLCBhbmQgaG93IHRoaXMgY29uZmlndXJhdGlvbiB3aWxsIGFmZmVjdCBwZXJmb3JtYW5jZSBhbmQgcmVzb3VyY2UgdXRpbGl6YXRpb24uIEkgbmVlZCB0byBlbnN1cmUgdGhlcmUgYXJlIG5vIGhpZGRlbiBnb3RjaGFzIG9yIHVuZXhwZWN0ZWQgY29uZmlndXJhdGlvbnMsIGFuZCB0byBiZSBjZXJ0YWluIHRoaXMgaW1wbGVtZW50YXRpb24gd2lsbCBtZWV0IGN1cnJlbnQgYW5kIGZ1dHVyZSBvcGVyYXRpb25hbCByZXF1aXJlbWVudHMuIFRoZSBzcGVjaWZpYyBwYXJhbWV0ZXJzIHdpbGwgZHJpdmUgb3B0aW1pemF0aW9uIG9mIHRoZSBjb25maWd1cmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDcwLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDg6NDE6MTkuNzQ2MDIzNFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3MjAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3BwcC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDExMCxcbiAgXCJMaW5lQ291bnRcIjogMjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDExMDpcXHRcXHQgIHdoaWNoIGNhbiBsZWFkIHRvIGJhZCByZXN1bHRzIGlmIHRoZSBBVE0gcGVlciBsb3NlcyBzdGF0ZSBhbmRcXG4gMTExOlxcdFxcdCAgY2hhbmdlcyBpdHMgZW5jYXBzdWxhdGlvbiB1bmlsYXRlcmFsbHkuXFxuIDExMjpcXHRcXG4gMTEzOlxcdGNvbmZpZyBQUFBPWFxcbiAxMTQ6XFx0XFx0dHJpc3RhdGVcXG4gMTE1OlxcdFxcbiAxMTY6XFx0Y29uZmlnIFBQUE9FXFxuIDExNzpcXHRcXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgRXRoZXJuZXRcXFwiXFxuIDExODpcXHRcXHRzZWxlY3QgUFBQT1hcXG4gMTE5OlxcdFxcdGhlbHBcXG4gMTIwOlxcdFxcdCAgU3VwcG9ydCBmb3IgUFBQIG92ZXIgRXRoZXJuZXQuXFxuIDEyMTpcXHRcXG4gMTIyOlxcdFxcdCAgVG8gd29yayBpbiBjbGllbnQgbW9kZSwgcHBwZCB2ZXJzaW9uIDIuNC4yIG9yIGxhdGVyIGlzIHJlcXVpcmVkLlxcbiAxMjM6XFx0XFx0ICBUbyB3b3JrIGluIHNlcnZlciBtb2RlLCB0aGUgcHBwb2Utc2VydmVyIGNvbW1hbmQgZnJvbSB0aGUgUlAtUFBQb0VcXG4gMTI0OlxcdFxcdCAgcGFja2FnZSBpcyBhbHNvIHJlcXVpcmVkLCBhdmFpbGFibGUgYXRcXG4gMTI1OlxcdFxcdCAgXFx1MDAzY2h0dHBzOi8vZGlhbm5lLnNrb2xsLmNhL3Byb2plY3RzL3JwLXBwcG9lL1xcdTAwM2UuXFxuIDEyNjpcXHRcXG4gMTI3OlxcdGNob2ljZVxcbiAxMjg6XFx0XFx0cHJvbXB0IFxcXCJOdW1iZXIgb2YgUFBQb0UgaGFzaCBiaXRzXFxcIlxcbiAxMjk6XFx0XFx0ZGVmYXVsdCBQUFBPRV9IQVNIX0JJVFNfNFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwODo0MToxOS43NDYxMjI4MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3NTQzMDQyMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqUFBQIENvbmZpZ3VyYXRpb24gRGVwZW5kZW5jaWVzKipcblxuT2theSwgc28gdGhlIGlzc3VlIGF0IGhhbmQgaGluZ2VzIG9uIHRoZSBQb2ludC10by1Qb2ludCBQcm90b2NvbCAoUFBQKS4gQmVmb3JlIEkgZXZlbiBkaWcgaW50byB0aGUgc3BlY2lmaWNzIG9mICp0aGlzKiBwYXJ0aWN1bGFyIHNpdHVhdGlvbiwgbXkgZmlyc3Qgc3RlcCBpcyBhbHdheXMgdG8gdmVyaWZ5IHRoZSBQUFAgY29uZmlndXJhdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHVuZGVybHlpbmcgaW5mcmFzdHJ1Y3R1cmUgYW5kIGVuc3VyZSB0aGUgZnVuZGFtZW50YWwgY29ubmVjdGlvbiBwYXJhbWV0ZXJzIGFyZSBjb3JyZWN0LiBUaGlzIG1lYW5zIEknbSBpbW1lZGlhdGVseSBnb2luZyB0byBsb29rIGF0IHRoZSBQUFAgc2V0dGluZ3M6IGF1dGhlbnRpY2F0aW9uIG1ldGhvZHMsIElQIGFkZHJlc3NpbmcgbmVnb3RpYXRpb24gKHdoZXRoZXIgaXQncyBkeW5hbWljIG9yIHN0YXRpYyBhbmQgdGhlIHBvb2xzLCByYW5nZXMgZXRjLiksIGFuZCBsaW5rIGNvbnRyb2wgcHJvdG9jb2wgb3B0aW9ucy4gQXJlIHdlIHVzaW5nIENIQVAsIFBBUCwgb3IgcGVyaGFwcyBhIG1vcmUgcm9idXN0IEVBUCBtZXRob2Q/IFdoYXQgYWJvdXQgTVRVIHNpemUgbmVnb3RpYXRpb24/IEFueSBmcmFnbWVudGF0aW9uIGNvbmNlcm5zPyBUaGlzIGJhc2UgbGF5ZXIgaXMgYWJzb2x1dGVseSBjcml0aWNhbDsgbWlzY29uZmlndXJlZCBQUFAgY2FuIGNhc2NhZGUgaW50byBhIHdob2xlIGhvc3Qgb2YgbW9yZSBjb21wbGV4IGlzc3VlcyB0aGF0IGFyZSBoYXJkIHRvIGRlYnVnIHdoZW4gc3RhcnRpbmcgdGhlIGludmVzdGlnYXRpb24gZnJvbSB0aGUgYXBwbGljYXRpb24gbGF5ZXIuIExldCdzIHNlZSB3aGF0IHRoZSBQUFAgY29uZmlnIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1ODQsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjIzLjUwMDQyOTczN1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAyOTYwMTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBQUFBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvcHBwL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9wcHAvS2NvbmZpZy01LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjY6Y29uZmlnIFBQUFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlBQUCAocG9pbnQtdG8tcG9pbnQgcHJvdG9jb2wpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0zNT1pZiBQUFBcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0zNi1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzozNzpjb25maWcgUFBQX0JTRENPTVBcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0zOC1cXHR0cmlzdGF0ZSBcXFwiUFBQIEJTRC1Db21wcmVzcyBjb21wcmVzc2lvblxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTU0LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjU1OmNvbmZpZyBQUFBfREVGTEFURVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTU2LVxcdHRyaXN0YXRlIFxcXCJQUFAgRGVmbGF0ZSBjb21wcmVzc2lvblxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTY4LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjY5OmNvbmZpZyBQUFBfRklMVEVSXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctNzAtXFx0Ym9vbCBcXFwiUFBQIGZpbHRlcmluZ1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTgwLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjgxOmNvbmZpZyBQUFBfTVBQRVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTgyLVxcdHRyaXN0YXRlIFxcXCJQUFAgTVBQRSBjb21wcmVzc2lvbiAoZW5jcnlwdGlvbilcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy05MS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzo5Mjpjb25maWcgUFBQX01VTFRJTElOS1xcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTkzLVxcdGJvb2wgXFxcIlBQUCBtdWx0aWxpbmsgc3VwcG9ydFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTEwMy1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMDQ6Y29uZmlnIFBQUE9BVE1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMDUtXFx0dHJpc3RhdGUgXFxcIlBQUCBvdmVyIEFUTVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTExMi1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxMTM6Y29uZmlnIFBQUE9YXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE0LVxcdHRyaXN0YXRlXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTE1LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjExNjpjb25maWcgUFBQT0VcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xMTctXFx0dHJpc3RhdGUgXFxcIlBQUCBvdmVyIEV0aGVybmV0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTI3PWNob2ljZVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTM4LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjEzOTpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzFcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDAtXFx0Ym9vbCBcXFwiMSBiaXQgKDIgYnVja2V0cylcXFwiXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQxLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0Mjpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzJcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDMtXFx0Ym9vbCBcXFwiMiBiaXRzICg0IGJ1Y2tldHMpXFxcIlxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE0NC1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZzoxNDU6Y29uZmlnIFBQUE9FX0hBU0hfQklUU180XFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ2LVxcdGJvb2wgXFxcIjQgYml0cyAoMTYgYnVja2V0cylcXFwiXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTQ3LVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE0ODpjb25maWcgUFBQT0VfSEFTSF9CSVRTXzhcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNDktXFx0Ym9vbCBcXFwiOCBiaXRzICgyNTYgYnVja2V0cylcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZz0xNTE9ZW5kY2hvaWNlXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTUyLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnOjE1Mzpjb25maWcgUFBQT0VfSEFTSF9CSVRTXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWctMTU0LVxcdGludFxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc9MTYxPWNvbmZpZyBQUFRQXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xNzItXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTczOmNvbmZpZyBQUFBPTDJUUFxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnLTE3NC1cXHR0cmlzdGF0ZSBcXFwiUFBQIG92ZXIgTDJUUFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9LY29uZmlnPTE4MT1pZiBUVFlcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xODItXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTgzOmNvbmZpZyBQUFBfQVNZTkNcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xODQtXFx0dHJpc3RhdGUgXFxcIlBQUCBzdXBwb3J0IGZvciBhc3luYyBzZXJpYWwgcG9ydHNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xOTUtXFxuZHJpdmVycy9uZXQvcHBwL0tjb25maWc6MTk2OmNvbmZpZyBQUFBfU1lOQ19UVFlcXG5kcml2ZXJzL25ldC9wcHAvS2NvbmZpZy0xOTctXFx0dHJpc3RhdGUgXFxcIlBQUCBzdXBwb3J0IGZvciBzeW5jIHR0eSBwb3J0c1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDg6NDE6MjMuNjAzMzk0NTlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQ1NTYwODYzNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBJbml0aWFsIEFzc2Vzc21lbnQgb2YgdGhlIFBQUG9FIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaW1tZWRpYXRlbHksIEkgc2VlIHdlJ3JlIGRlYWxpbmcgd2l0aCBgUFBQYCBhbmQgYFBQUG9FYCBjb25maWd1cmF0aW9ucy4gVGhlIGNvcmUgb2YgdGhpcyBzZWVtcyB0byBiZSBhcm91bmQgbW9kaWZpY2F0aW9ucyB0byBgcHBwb2VfcmN2YCBhbmQgYHBwcG9lX2JhY2tsb2dfcmN2YC4gQ2xlYXJseSwgdGhpcyBpcyB3aGVyZSB0aGUgYWN0aW9uIGlzIGhhcHBlbmluZzsgYHBwcG9lX3JjdmAgaGFuZGxlcyBpbmNvbWluZyBQUFBvRSBwYWNrZXRzIGRpcmVjdGx5LCBhbmQgYHBwcG9lX2JhY2tsb2dfcmN2YCBpcyBmb3IgdGhvc2UgcGFja2V0cyB0aGF0IG5lZWQgdG8gYmUgcHJvY2Vzc2VkIGxhdGVyLiBUaGlzIGlzIGRlZmluaXRlbHkgZnVuY3Rpb25hbDsgdGhlIGNoYW5nZXMgYXJlIHJlYWNoYWJsZSBjb2RlLiBUaGUga2V5IGZ1bmN0aW9ucyB0byBkaXNzZWN0IGhlcmUgYXJlIGBwcHBvZV9yY3ZgLCBgcHBwb2VfYmFja2xvZ19yY3ZgLCBhbmQgYHBwcG9lX2Nvbm5lY3RgLlxuXG5Ob3csIHRoZSBmaXJzdCB0aGluZyBJIHdhbnQgdG8gdW5kZXJzdGFuZCBpcyB0aGUgc2NvcGUgb2YgdGhlc2UgZnVuY3Rpb25zLCBlc3BlY2lhbGx5IGBwcHBvZV9yY3ZgLiBMZXQgbWUgcXVpY2tseSBjaGVjayBpZiBgcHBwb2VfcmN2YCBpcyBkZWNsYXJlZCBhcyBzdGF0aWMuIEFoLCB5ZXMsIGl0IGlzOlxuYGBgY1xuc3RhdGljIGludCBwcHBvZV9yY3Yoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcblx0XHQgICAgIHN0cnVjdCBwYWNrZXRfdHlwZSAqcHQsIHN0cnVjdCBuZXRfZGV2aWNlICpvcmlnX2RldilcbmBgYFxuQmVpbmcgc3RhdGljIGNhbiBiZSBhIHNsaWdodCByZWQgZmxhZy4gSWYgaXQncyBpbmxpbmVkLCBpdCdzIG5vdCBhIGdyZWF0IHN5bWJvbCB0byBmb2N1cyBvbi4gQnV0LCBpdCdzIHByb2JhYmx5IHBhc3NlZCBhcyBhIGZ1bmN0aW9uIHBvaW50ZXIgdG8gYGRldl9hZGRfcGFja2AsIHNvIGxldCBtZSBjb25maXJtIHRoYXQgYXNzdW1wdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTg5NSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNFQwODo0MToyOS4wNTkwMDU5NDZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzNTMxOTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBwcG9lX3JjdlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9wcHAvcHBwb2UuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9wcHAvcHBwb2UuYy0yMS0gKiAwNDA4MDAgOlxcdFJlc3BlY3QgcmVmZXJlbmNlIGNvdW50IG1lY2hhbmlzbXMgb24gbmV0LWRldmljZXMuXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM6MjI6ICogMjAwODAwIDpcXHRmaXgga2ZyZWUoc2tiKSBpbiBwcHBvZV9yY3YgKGFjbWUpXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMtMjMtICpcXHRcXHRNb2R1bGUgcmVmZXJlbmNlIGNvdW50IGlzIGRlY3JlbWVudGVkIGluIHRoZSByaWdodCBzcG90IG5vdyxcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTI4LSAqIDA1MDEwMSA6XFx0Rml4IFBBRFQgcHJvY2Vzc2luZy5cXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzoyOTogKiAxNDA1MDEgOlxcdFVzZSBwcHBvZV9yY3ZfY29yZSB0byBoYW5kbGUgYWxsIGJhY2tsb2cuIChBbGV4ZXkpXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMtMzAtICogMTcwNzAxIDpcXHREbyBub3QgbG9ja19zb2NrIHdpdGggcndsb2NrIGhlbGQuIChEYXZlTSlcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jPTM1MT1zdGF0aWMgaW50IHBwcG9lX2JhY2tsb2dfcmN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTM3OC0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM6Mzc5OnN0YXRpYyBpbnQgcHBwb2VfcmN2KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMtMzgwLVxcdFxcdCAgICAgc3RydWN0IHBhY2tldF90eXBlICpwdCwgc3RydWN0IG5ldF9kZXZpY2UgKm9yaWdfZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmM9NDkxPXN0YXRpYyBzdHJ1Y3QgcGFja2V0X3R5cGUgcHBwb2VzX3B0eXBlIF9fcmVhZF9tb3N0bHkgPSB7XFxuZHJpdmVycy9uZXQvcHBwL3BwcG9lLmMtNDkyLVxcdC50eXBlXFx0PSBjcHVfdG9fYmUxNihFVEhfUF9QUFBfU0VTKSxcXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzo0OTM6XFx0LmZ1bmNcXHQ9IHBwcG9lX3JjdixcXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYy00OTQtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jPTU5MT1zdGF0aWMgaW50IHBwcG9lX2Nvbm5lY3Qoc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IHNvY2thZGRyX3Vuc2l6ZWQgKnVzZXJ2YWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTYzMi1cXG5kcml2ZXJzL25ldC9wcHAvcHBwb2UuYzo2MzM6XFx0XFx0LyogcHBwb2VfcmN2KCkgY2FuIGNhbGwgcHBwX2lucHV0KCkgd2l0aG91dCB0YWtpbmcgdGhlIHNvY2tldFxcbmRyaXZlcnMvbmV0L3BwcC9wcHBvZS5jLTYzNC1cXHRcXHQgKiBsb2NrLiBPbmNlIHRoZSBzb2NrZXQgaXMgdW5oYXNoZWQsIHdhaXQgZm9yIGFueSByZWNlaXZlIHBhdGhcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDRUMDg6NDE6MjkuMTIyNTQyMjcyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE1NDMyNjg5ODQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIFBQUG9FIEZ1bmN0aW9uYWxpdHkgZm9yIEZ1enppbmcqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgc2NhbiBjb25maXJtcyB0aGF0IGBwcHBvZV9yY3ZgIGlzIGluZGVlZCBhc3NpZ25lZCB0byBgLmZ1bmNgIHdpdGhpbiBgcHBwb2VzX3B0eXBlYCwgc28gaXQncyBhIHZhbGlkIHRhcmdldCBzeW1ib2wsIG5vdCBpbmxpbmVkLCBhbmQgZ29vZCBmb3IgZnV6emluZy4gU2ltaWxhcmx5LCBgcHBwb2VfYmFja2xvZ19yY3ZgIGlzIGFzc2lnbmVkIHRvIGBzay1cdTAwM2Vza19iYWNrbG9nX3JjdmAsIGFuZCBgcHBwb2VfY29ubmVjdGAgaXMgdGllZCB0byBgcHBwb2Vfb3BzLmNvbm5lY3RgLiBUaGF0J3MgdGhyZWUgY2xlYXIgZm9jdXMgc3ltYm9scyByaWdodCB0aGVyZSwgYXMgbm9uZSBvZiB0aGVtIGFyZSBpbmxpbmVkLCBhcyBmYXIgYXMgSSBjYW4gc2VlLlxuXG5Ob3csIGxldCdzIHNlZSBpZiB0aGlzIHBhdGNoIGludHJvZHVjZXMgYW55IG90aGVyIGZ1bmN0aW9ucyB0aGF0IGFyZSBtb2RpZmllZCBhbmQgcG90ZW50aWFsbHkgcmVsZXZhbnQuIGBwcHBvZV9jcmVhdGVgIGlzIHRvdWNoZWQsIGJ1dCB0aGF0IHNlZW1zIG1vc3RseSBsaWtlIHNldHVwLCBwYXJ0aWN1bGFybHkgdGhlIGFzc2lnbm1lbnQgb2YgYHNrLVx1MDAzZXNrX2JhY2tsb2dfcmN2ID0gcHBwb2VfYmFja2xvZ19yY3ZgLiBBbHRob3VnaCwgc2luY2UgaXQncyBhIGZ1bmN0aW9uIHdpdGggcG90ZW50aWFsbHkgZGlmZmVyZW50IGJlaGF2aW9yLCBsZXQncyBrZWVwIGFuIGV5ZSBvbiBpdCB0byBkZXRlcm1pbmUgaWYgaXQgaXMgbmVjZXNzYXJ5IHRvIGluY2x1ZGUuXG5cblRoZXJlZm9yZSwgdGhlIG1haW4gZnVuY3Rpb25zIHRvIHByaW9yaXRpemUgYXJlOlxuKiAgIGBwcHBvZV9yY3ZgXG4qICAgYHBwcG9lX2JhY2tsb2dfcmN2YFxuKiAgIGBwcHBvZV9jb25uZWN0YFxuXG5SZWdhcmRpbmcgY29uZmlndXJhdGlvbiwgSSdsbCBuZWVkIGBQUFBgIGFuZCBgUFBQT0VgIHRvIGdldCBldmVyeXRoaW5nIGluLiBJIGJyaWVmbHkgY29uc2lkZXJlZCBgUFBQT1hgLCBidXQgc2luY2UgYFBQUE9FYCBzZWxlY3RzIGl0LCBJIGRvbid0IG5lZWQgdG8gc3BlY2lmeSBpdCBleHBsaWNpdGx5LCB0aG91Z2ggaXQgd29uJ3QgaHVydCB0byBpbmNsdWRlIGl0IGp1c3QgaW4gY2FzZS4gSG93ZXZlciwgSSB3aWxsIHN0aWNrIHdpdGgganVzdCBgUFBQYCBhbmQgYFBQUE9FYC5cblxuQSBxdWljayByZXZpZXcgb2YgdGhlIHBhdGNoIGNvbmZpcm1zIHRoZSBhYm92ZS4gVGhlIGltcG9ydGFudCB0aGluZyBpcyB0aGF0IGBwcHBvZV9yY3ZgIGlzIHN0YXRpYy4gRXZlbiB0aG91Z2ggaXQgaXMgc3RhdGljLCBpdCBpcyB1c2VkIGFzIGEgZnVuY3Rpb24gcG9pbnRlciwgbWVhbmluZyBpdCB3b24ndCBiZSBpbmxpbmVkLlxuXG5UaGUgY2hhbmdlcyBmb2N1cyBvbiBvcHRpbWl6aW5nIHRoZSBQUFBvRSByZWNlaXZlIHBhdGgsIGVzcGVjaWFsbHkgYnkgYXZvaWRpbmcgdGhlIHNvY2tldCBiYWNrbG9nIGluIHRoZSBib3VuZCBzdGF0ZSBhbmQgYWRkaW5nIHN5bmNocm9uaXphdGlvbiB0byBhZGRyZXNzIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnMuIFRoZXJlZm9yZSwgdGhlc2UgYXJlIGFsbCBzb2xpZCB0YXJnZXRzLiBJJ20gY29uZmlkZW50IGluIHRoZXNlIGZpbmRpbmdzLiBJJ2xsIHByb3ZpZGUgdGhlIGluZm9ybWF0aW9uIHdpdGggYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzEzMSwiT3V0cHV0VG9rZW5zIjoxNjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzgwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA0VDA4OjQxOjQ0LjU1NTIzNDkwMVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0ODg3OTc0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiUFBQXCIsXG4gICAgXCJQUFBPRVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInBwcG9lX3JjdlwiLFxuICAgIFwicHBwb2VfYmFja2xvZ19yY3ZcIixcbiAgICBcInBwcG9lX2Nvbm5lY3RcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgUFBQb0UgcmVjZWl2ZSBwYXRoIHRvIGJ5cGFzcyB0aGUgc29ja2V0IGJhY2tsb2cgd2hlbiB0aGUgc29ja2V0IGlzIGJvdW5kLCBvcHRpbWl6aW5nIHBhY2tldCBkZWxpdmVyeS4gSXQgYWxzbyByZW5hbWVzIGBwcHBvZV9yY3ZfY29yZWAgdG8gYHBwcG9lX2JhY2tsb2dfcmN2YCBhbmQgYWRkcyBhIGBzeW5jaHJvbml6ZV9uZXQoKWAgY2FsbCBpbiBgcHBwb2VfY29ubmVjdGAgdG8gcHJldmVudCByYWNlIGNvbmRpdGlvbnMgd2hlbiB1bmhhc2hpbmcgdGhlIHNvY2tldC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byByZWFjaGFibGUgY29yZSBuZXR3b3JraW5nIGNvZGUgdGhhdCBzaG91bGQgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlBQUFwiLFxuICAgIFwiUFBQT0VcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwcHBvZV9yY3ZcIixcbiAgICBcInBwcG9lX2JhY2tsb2dfcmN2XCIsXG4gICAgXCJwcHBvZV9jb25uZWN0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFBQUG9FIHJlY2VpdmUgcGF0aCB0byBieXBhc3MgdGhlIHNvY2tldCBiYWNrbG9nIHdoZW4gdGhlIHNvY2tldCBpcyBib3VuZCwgb3B0aW1pemluZyBwYWNrZXQgZGVsaXZlcnkuIEl0IGFsc28gcmVuYW1lcyBgcHBwb2VfcmN2X2NvcmVgIHRvIGBwcHBvZV9iYWNrbG9nX3JjdmAgYW5kIGFkZHMgYSBgc3luY2hyb25pemVfbmV0KClgIGNhbGwgaW4gYHBwcG9lX2Nvbm5lY3RgIHRvIHByZXZlbnQgcmFjZSBjb25kaXRpb25zIHdoZW4gdW5oYXNoaW5nIHRoZSBzb2NrZXQuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gcmVhY2hhYmxlIGNvcmUgbmV0d29ya2luZyBjb2RlIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow59842[1] Phase: Succeeded StartedAt: 2026-08-04 08:41:56 +0000 UTC FinishedAt: 2026-08-04 08:41:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-04 08:41:56 +0000 UTC FinishedAt: 2026-08-04 08:41:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2] Phase: Succeeded StartedAt: 2026-08-04 08:41:56 +0000 UTC FinishedAt: 2026-08-04 12:28:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-08-04 08:41:56 +0000 UTC FinishedAt: 2026-08-04 12:28:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-08-04 08:41:56 +0000 UTC FinishedAt: 2026-08-04 08:42:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-08-04 08:41:56 +0000 UTC FinishedAt: 2026-08-04 08:42:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflow59842/series-workflow59842-convert-artifact-3662766885/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-08-04 08:42:06 +0000 UTC FinishedAt: 2026-08-04 09:00:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-08-04 08:42:06 +0000 UTC FinishedAt: 2026-08-04 09:00:33 +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:*21e4ff9c-7129-47fd-8d19-3b0212ce5bb0,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-workflow59842/series-workflow59842-convert-artifact-3662766885/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": "26d695e8-4b1e-4510-b0d1-34875fe3ba33", "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-workflow59842/series-workflow59842-build-action-3395632971/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-08-04 08:42:06 +0000 UTC FinishedAt: 2026-08-04 09:00:23 +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:*21e4ff9c-7129-47fd-8d19-3b0212ce5bb0,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-workflow59842/series-workflow59842-convert-artifact-3662766885/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": "26d695e8-4b1e-4510-b0d1-34875fe3ba33", "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-workflow59842/series-workflow59842-build-action-3395632971/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-08-04 09:00:33 +0000 UTC FinishedAt: 2026-08-04 09:00:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-08-04 09:00:33 +0000 UTC FinishedAt: 2026-08-04 09:00:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-08-04 09:00:33 +0000 UTC FinishedAt: 2026-08-04 09:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-08-04 09:00:33 +0000 UTC FinishedAt: 2026-08-04 09:00:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflow59842/series-workflow59842-convert-artifact-4196467200/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-08-04 09:00:43 +0000 UTC FinishedAt: 2026-08-04 09:02:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-08-04 09:00:43 +0000 UTC FinishedAt: 2026-08-04 09:02:43 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*26d695e8-4b1e-4510-b0d1-34875fe3ba33,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-workflow59842/series-workflow59842-build-action-3395632971/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-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-08-04 09:02:53 +0000 UTC FinishedAt: 2026-08-04 09:02:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-08-04 09:02:53 +0000 UTC FinishedAt: 2026-08-04 09:02:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-08-04 09:02:53 +0000 UTC FinishedAt: 2026-08-04 09:23:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-08-04 09:02:53 +0000 UTC FinishedAt: 2026-08-04 09:23:23 +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:*21e4ff9c-7129-47fd-8d19-3b0212ce5bb0,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-workflow59842/series-workflow59842-convert-artifact-4196467200/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": "57a6b5b9-8d5c-4cdb-a9dc-9d2e882651b9", "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-workflow59842/series-workflow59842-build-action-1947135932/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-08-04 09:02:53 +0000 UTC FinishedAt: 2026-08-04 09:23:13 +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:*21e4ff9c-7129-47fd-8d19-3b0212ce5bb0,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-workflow59842/series-workflow59842-convert-artifact-4196467200/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": "57a6b5b9-8d5c-4cdb-a9dc-9d2e882651b9", "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-workflow59842/series-workflow59842-build-action-1947135932/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-08-04 09:23:23 +0000 UTC FinishedAt: 2026-08-04 09:23:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-08-04 09:23:23 +0000 UTC FinishedAt: 2026-08-04 09:23:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-08-04 09:23:23 +0000 UTC FinishedAt: 2026-08-04 09:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-08-04 09:23:23 +0000 UTC FinishedAt: 2026-08-04 09:25:12 +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:*57a6b5b9-8d5c-4cdb-a9dc-9d2e882651b9,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-workflow59842/series-workflow59842-build-action-1947135932/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-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-08-04 09:25:22 +0000 UTC FinishedAt: 2026-08-04 12:28:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-08-04 09:25:22 +0000 UTC FinishedAt: 2026-08-04 12:28:10 +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":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"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:*26d695e8-4b1e-4510-b0d1-34875fe3ba33,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*57a6b5b9-8d5c-4cdb-a9dc-9d2e882651b9,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-workflow59842/series-workflow59842-build-action-3395632971/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-workflow59842/series-workflow59842-build-action-1947135932/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-08-04 09:25:22 +0000 UTC FinishedAt: 2026-08-04 09:25:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-08-04 09:25:22 +0000 UTC FinishedAt: 2026-08-04 09:25:26 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"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-workflow59842/series-workflow59842-convert-artifact-3155193689/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-08-04 09:25:22 +0000 UTC FinishedAt: 2026-08-04 09:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-08-04 09:25:22 +0000 UTC FinishedAt: 2026-08-04 09:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-08-04 09:25:22 +0000 UTC FinishedAt: 2026-08-04 09:25:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-08-04 09:25:32 +0000 UTC FinishedAt: 2026-08-04 12:28:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflow59842[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["pppoe_rcv","pppoe_backlog_rcv","pppoe_connect"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"5aed8f404401bfa1570cf0c3ffed7b752f568e83","config_name":"upstream-apparmor-kasan.config","enable_configs":["PPP","PPPOE"],"series_id":"61e13d6f-fb3d-4174-b80a-bdf697b3fc21","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-08-04 09:25:32 +0000 UTC FinishedAt: 2026-08-04 12:27:56 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*26d695e8-4b1e-4510-b0d1-34875fe3ba33,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*57a6b5b9-8d5c-4cdb-a9dc-9d2e882651b9,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-workflow59842/series-workflow59842-build-action-3395632971/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-workflow59842/series-workflow59842-build-action-1947135932/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-workflow59842/series-workflow59842-convert-artifact-3155193689/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,}