Name: series-workflowk2w2f Phase: Succeeded StartedAt: 2026-07-28 18:27:53 +0000 UTC FinishedAt: 2026-07-28 22:45:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[0] Phase: Succeeded StartedAt: 2026-07-28 18:27:53 +0000 UTC FinishedAt: 2026-07-28 18:49:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[0].run-triage Phase: Succeeded StartedAt: 2026-07-28 18:27:53 +0000 UTC FinishedAt: 2026-07-28 18:49:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "923b1b5a3a5cc642172d8cf8c6097ad1169b6217", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLOCK" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "923b1b5a3a5cc642172d8cf8c6097ad1169b6217", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLOCK" ], "series_id": "7ab34b93-8fcf-4250-9da0-fd1e8551f421" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "put_disk" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE4OjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMT0NLJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHV0X2Rpc2smIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGRpc2sgcmVsZWFzZSBwYXRoIGluIHRoZSBibG9jayBsYXllciB0byBwcm9wZXJseSBzeW5jaHJvbml6ZSBhbmQgY2FuY2VsIHBlbmRpbmcgd29yayBiZWZvcmUgZXhpdGluZyB0aGUgbXVsdGlxdWV1ZSB3aGVuIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0IG5vdCBhZGRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgYmxvY2sgbGF5ZXIgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgcHJvYmUgZmFpbHVyZXMgb3IgZWFybHkgdGVhcmRvd24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBlZTkxNzgyMTc4NWM3YzA4OWE4NTZkNTRlOTk3NTQ0Y2Y3YjZiZWE1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMTg6NDk6MDcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYmxvY2svZ2VuaGQuYyBiL2Jsb2NrL2dlbmhkLmNcbmluZGV4IGRmMmMzYzY5YjQ2N2QuLmU4Y2UwY2FiZjM5MmMgMTAwNjQ0XG4tLS0gYS9ibG9jay9nZW5oZC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9nZW5oZC5jXG5AQCAtMTI4MSwxNCAmIzQzOzEyODEsMTggQEAgc3RhdGljIHZvaWQgZGlza19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbiBcdC8qXG4gXHQgKiBUbyB1bmRvIHRoZSBhbGwgaW5pdGlhbGl6YXRpb24gZnJvbSBibGtfbXFfaW5pdF9hbGxvY2F0ZWRfcXVldWUgaW5cbiBcdCAqIGNhc2Ugb2YgYSBwcm9iZSBmYWlsdXJlIHdoZXJlIGFkZF9kaXNrIGlzIG5ldmVyIGNhbGxlZCB3ZSBoYXZlIHRvXG4tXHQgKiBjYWxsIGJsa19tcV9leGl0X3F1ZXVlIGhlcmUuIFdlIGNhbiYjMzk7dCBkbyB0aGlzIGZvciB0aGUgbW9yZSBjb21tb25cbi1cdCAqIHRlYXJkb3duIGNhc2UgKHlldCkgYXMgdGhlIHRhZ3NldCBjYW4gYmUgZ29uZSBieSB0aGUgdGltZSB0aGUgZGlza1xuLVx0ICogaXMgcmVsZWFzZWQgb25jZSBpdCB3YXMgYWRkZWQuXG4mIzQzO1x0ICogY2FsbCBibGtfbXFfZXhpdF9xdWV1ZSBoZXJlLCBhZnRlciBzdG9wcGluZyB0aGUgdGltZXIgYW5kIHdvcmsgaXRlbXNcbiYjNDM7XHQgKiB0aGF0IEkvTyBpc3N1ZWQgYmVmb3JlIGFkZF9kaXNrIG1heSBoYXZlIGxlZnQgcGVuZGluZy4gIFdlIGNhbiYjMzk7dCBkb1xuJiM0MztcdCAqIHRoaXMgZm9yIHRoZSBtb3JlIGNvbW1vbiB0ZWFyZG93biBjYXNlICh5ZXQpIGFzIHRoZSB0YWdzZXQgY2FuIGJlXG4mIzQzO1x0ICogZ29uZSBieSB0aGUgdGltZSB0aGUgZGlzayBpcyByZWxlYXNlZCBvbmNlIGl0IHdhcyBhZGRlZC5cbiBcdCAqL1xuIFx0aWYgKHF1ZXVlX2lzX21xKGRpc2stXHUwMDNlcXVldWUpIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHRlc3RfYml0KEdEX09XTlNfUVVFVUUsIFx1MDAyNmRpc2stXHUwMDNlc3RhdGUpIFx1MDAyNlx1MDAyNlxuLVx0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXHUwMDI2ZGlzay1cdTAwM2VzdGF0ZSkpXG4mIzQzO1x0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXHUwMDI2ZGlzay1cdTAwM2VzdGF0ZSkpIHtcbiYjNDM7XHRcdGJsa19zeW5jX3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO1xuJiM0MztcdFx0YmxrX21xX2NhbmNlbF93b3JrX3N5bmMoZGlzay1cdTAwM2VxdWV1ZSk7XG4gXHRcdGJsa19tcV9leGl0X3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO1xuJiM0MztcdH1cbiBcbiBcdGJsa2NnX2V4aXRfZGlzayhkaXNrKTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwdXRfZGlzayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGlzayByZWxlYXNlIHBhdGggaW4gdGhlIGJsb2NrIGxheWVyIHRvIHByb3Blcmx5IHN5bmNocm9uaXplIGFuZCBjYW5jZWwgcGVuZGluZyB3b3JrIGJlZm9yZSBleGl0aW5nIHRoZSBtdWx0aXF1ZXVlIHdoZW4gYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgbm90IGFkZGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBibG9jayBsYXllciBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBwcm9iZSBmYWlsdXJlcyBvciBlYXJseSB0ZWFyZG93bi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGVlOTE3ODIxNzg1YzdjMDg5YTg1NmQ1NGU5OTc1NDRjZjdiNmJlYTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCAyOCAxODo0OTowNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2Jsb2NrL2dlbmhkLmMgYi9ibG9jay9nZW5oZC5jCmluZGV4IGRmMmMzYzY5YjQ2N2QuLmU4Y2UwY2FiZjM5MmMgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2dlbmhkLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svZ2VuaGQuYwpAQCAtMTI4MSwxNCAmIzQzOzEyODEsMTggQEAgc3RhdGljIHZvaWQgZGlza19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAkvKgogCSAqIFRvIHVuZG8gdGhlIGFsbCBpbml0aWFsaXphdGlvbiBmcm9tIGJsa19tcV9pbml0X2FsbG9jYXRlZF9xdWV1ZSBpbgogCSAqIGNhc2Ugb2YgYSBwcm9iZSBmYWlsdXJlIHdoZXJlIGFkZF9kaXNrIGlzIG5ldmVyIGNhbGxlZCB3ZSBoYXZlIHRvCi0JICogY2FsbCBibGtfbXFfZXhpdF9xdWV1ZSBoZXJlLiBXZSBjYW4mIzM5O3QgZG8gdGhpcyBmb3IgdGhlIG1vcmUgY29tbW9uCi0JICogdGVhcmRvd24gY2FzZSAoeWV0KSBhcyB0aGUgdGFnc2V0IGNhbiBiZSBnb25lIGJ5IHRoZSB0aW1lIHRoZSBkaXNrCi0JICogaXMgcmVsZWFzZWQgb25jZSBpdCB3YXMgYWRkZWQuCiYjNDM7CSAqIGNhbGwgYmxrX21xX2V4aXRfcXVldWUgaGVyZSwgYWZ0ZXIgc3RvcHBpbmcgdGhlIHRpbWVyIGFuZCB3b3JrIGl0ZW1zCiYjNDM7CSAqIHRoYXQgSS9PIGlzc3VlZCBiZWZvcmUgYWRkX2Rpc2sgbWF5IGhhdmUgbGVmdCBwZW5kaW5nLiAgV2UgY2FuJiMzOTt0IGRvCiYjNDM7CSAqIHRoaXMgZm9yIHRoZSBtb3JlIGNvbW1vbiB0ZWFyZG93biBjYXNlICh5ZXQpIGFzIHRoZSB0YWdzZXQgY2FuIGJlCiYjNDM7CSAqIGdvbmUgYnkgdGhlIHRpbWUgdGhlIGRpc2sgaXMgcmVsZWFzZWQgb25jZSBpdCB3YXMgYWRkZWQuCiAJICovCiAJaWYgKHF1ZXVlX2lzX21xKGRpc2stJmd0O3F1ZXVlKSAmYW1wOyZhbXA7CiAJICAgIHRlc3RfYml0KEdEX09XTlNfUVVFVUUsICZhbXA7ZGlzay0mZ3Q7c3RhdGUpICZhbXA7JmFtcDsKLQkgICAgIXRlc3RfYml0KEdEX0FEREVELCAmYW1wO2Rpc2stJmd0O3N0YXRlKSkKJiM0MzsJICAgICF0ZXN0X2JpdChHRF9BRERFRCwgJmFtcDtkaXNrLSZndDtzdGF0ZSkpIHsKJiM0MzsJCWJsa19zeW5jX3F1ZXVlKGRpc2stJmd0O3F1ZXVlKTsKJiM0MzsJCWJsa19tcV9jYW5jZWxfd29ya19zeW5jKGRpc2stJmd0O3F1ZXVlKTsKIAkJYmxrX21xX2V4aXRfcXVldWUoZGlzay0mZ3Q7cXVldWUpOwomIzQzOwl9CiAKIAlibGtjZ19leGl0X2Rpc2soZGlzayk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3MAoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE3NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBCbG9jayBMYXllciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBpbiBgYmxvY2svZ2VuaGQuY2AsIHNwZWNpZmljYWxseSB0aGUgYGRpc2tfcmVsZWFzZSgpYCBmdW5jdGlvbi4gSXQgc2VlbXMgdGhleSYjMzk7dmUgYWRkZWQgYGJsa19zeW5jX3F1ZXVlKGRpc2stJmd0O3F1ZXVlKTtgIGFuZCBgYmxrX21xX2NhbmNlbF93b3JrX3N5bmMoZGlzay0mZ3Q7cXVldWUpO2AgYmVmb3JlIHRoZSBleGlzdGluZyBgYmxrX21xX2V4aXRfcXVldWUoZGlzay0mZ3Q7cXVldWUpO2AuIFRoZSBjb25kaXRpb25hbCBpcyBpbnRlcmVzdGluZzogaXQmIzM5O3Mgb25seSB0cmlnZ2VyZWQgaWYgYCF0ZXN0X2JpdChHRF9BRERFRCwgJmFtcDtkaXNrLSZndDtzdGF0ZSlgLiBUaGF0IHRlbGxzIG1lIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBibG9jayBsYXllciBkaXNrIHJlbGVhc2UgcGF0aCBtb2RpZmljYXRpb24sIGRlYWxpbmcgd2l0aCBjYXNlcyB3aGVyZSBhIGRpc2sgaXMgYWxsb2NhdGVkIGJ1dCAqbm90KiBzdWNjZXNzZnVsbHkgYWRkZWQsIG9yIHBvc3NpYmx5IGlmIGEgcHJvYmUgZmFpbHMuIFRoaXMgaXMgcHJlY2lzZWx5IHRoZSBraW5kIG9mIHRoaW5nIHRoYXQmIzM5O3MgcmlwZSBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBjb25maWcgb3B0aW9ucyBhcmUgcmVsZXZhbnQgdG8gdGhpcyBjb2RlIHBhdGguIExldCYjMzk7cyBzZWUuLi4gYW5kIEkgbmVlZCB0byBob25lIGluIG9uIHRoZSBpbXBvcnRhbnQgc3ltYm9scy4gQWxyaWdodCwgYGRpc2tfcmVsZWFzZWAgaXMgdGhlIGtleS4gV2FpdCBhIHNlY29uZC4uLiBpdCYjMzk7cyBzdGF0aWMuIE9rYXksIGxldCBtZSBtYWtlIHN1cmUgaXQgaXMgaW4gYGJsb2NrL2dlbmhkLmNgLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGlza19yZWxlYXNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YmxvY2svZ2VuaGQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtibG9jay9nZW5oZC5jPTEyNDc9c3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmRpc2tfYXR0cl9ncm91cHNbXSA9IHtcbi0tXG5ibG9jay9nZW5oZC5jLTEyNTgtLyoqXG5ibG9jay9nZW5oZC5jOjEyNTk6ICogZGlza19yZWxlYXNlIC0gcmVsZWFzZXMgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMgb2YgdGhlIGdlbmRpc2tcbmJsb2NrL2dlbmhkLmMtMTI2MC0gKiBAZGV2OiB0aGUgZGV2aWNlIHJlcHJlc2VudGluZyB0aGlzIGRpc2tcbi0tXG5ibG9jay9nZW5oZC5jLTEyNzEtICovXG5ibG9jay9nZW5oZC5jOjEyNzI6c3RhdGljIHZvaWQgZGlza19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbmJsb2NrL2dlbmhkLmMtMTI3My17XG4tLVxuYmxvY2svZ2VuaGQuYy0xMzAwLVxuYmxvY2svZ2VuaGQuYzoxMzAxOlx0ZGlza19yZWxlYXNlX2V2ZW50cyhkaXNrKTtcbmJsb2NrL2dlbmhkLmMtMTMwMi1cdGtmcmVlKGRpc2stXHUwMDNlcmFuZG9tKTtcbmJsb2NrL2dlbmhkLmM6MTMwMzpcdGRpc2tfcmVsZWFzZV96b25lX3Jlc291cmNlcyhkaXNrKTtcbmJsb2NrL2dlbmhkLmMtMTMwNC1cdHhhX2Rlc3Ryb3koXHUwMDI2ZGlzay1cdTAwM2VwYXJ0X3RibCk7XG4tLVxuYmxvY2svZ2VuaGQuYz0xMzM4PWNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSBkaXNrX3R5cGUgPSB7XG4tLVxuYmxvY2svZ2VuaGQuYy0xMzQwLVx0Lmdyb3Vwc1x0XHQ9IGRpc2tfYXR0cl9ncm91cHMsXG5ibG9jay9nZW5oZC5jOjEzNDE6XHQucmVsZWFzZVx0PSBkaXNrX3JlbGVhc2UsXG5ibG9jay9nZW5oZC5jLTEzNDItXHQuZGV2bm9kZVx0PSBibG9ja19kZXZub2RlLFxuLS1cbmJsb2NrL2dlbmhkLmM9MTUzMT1FWFBPUlRfU1lNQk9MKF9fYmxrX2FsbG9jX2Rpc2spO1xuLS1cbmJsb2NrL2dlbmhkLmMtMTUzNy0gKiBUaGlzIGRlY3JlbWVudHMgdGhlIHJlZmNvdW50IGZvciB0aGUgc3RydWN0IGdlbmRpc2suIFdoZW4gdGhpcyByZWFjaGVzIDBcbmJsb2NrL2dlbmhkLmM6MTUzODogKiB3ZSYjMzk7bGwgaGF2ZSBkaXNrX3JlbGVhc2UoKSBjYWxsZWQuXG5ibG9jay9nZW5oZC5jLTE1MzktICpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTY5CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHBlcnNvbmFsIHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIERpc2sgUmVsZWFzZSBMb2dpYyoqCgpSaWdodCwgc28gSSYjMzk7bSBmb2N1c2luZyBvbiBgZGlza19yZWxlYXNlYCBoZXJlLiBJdCYjMzk7cyBkZWZpbmVkIGFzIGEgc3RhdGljIGZ1bmN0aW9uLCBidXQgaXRzIHB1cnBvc2UgaXMgYWN0dWFsbHkgdGhlIGAucmVsZWFzZWAgY2FsbGJhY2sgZnVuY3Rpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBgZGlza190eXBlYCBzdHJ1Y3R1cmUsIGlzbiYjMzk7dCBpdD8gU28sIGl0IHNlZW1zIGxpa2UgYGRpc2tfcmVsZWFzZWAgaXMgdGhlIGNsZWFudXAgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCB3aGVuIGEgZGlzayBpcyBubyBsb25nZXIgbmVlZGVkLiBNYWtlcyBzZW5zZS4gQnV0IHRoYXQgYnJpbmdzIHVwIGEgY29ubmVjdGVkIHRob3VnaHQgdGhhdCBhbHNvIHJlbGF0ZXMgdG8gZGlzayBtYW5hZ2VtZW50LiBXaGF0IGFib3V0IGBwdXRfZGlza2A/IEhvdyBkb2VzIGBwdXRfZGlza2AgZml0IGludG8gdGhpcyBjbGVhbnVwIHNlcXVlbmNlPyBJcyBgcHV0X2Rpc2tgIGRlcGVuZGVudCBvbiBhIHN1Y2Nlc3NmdWwgYGRpc2tfcmVsZWFzZWAgb3BlcmF0aW9uPyBJIG5lZWQgdG8gdGhpbmsgdGhyb3VnaCBob3cgdGhlc2UgdHdvIGZ1bmN0aW9ucyBpbnRlcmFjdC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHJlbGVhc2luZyB0aGUgZGlzayBhbmQgcHV0dGluZyBpdCBhd2F5LiBUaGUga2V5IGlzIGluIGhvdyB0aGUga2VybmVsIG1hbmFnZXMgcmVzb3VyY2VzIGR1cmluZyBkaXNrIG9wZXJhdGlvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24mIzM5O3Qgb3Zlcmxvb2sgYW55IGNvbm5lY3Rpb24gcG9pbnRzIGR1cmluZyBteSByZXZpZXcgb2YgdGhlIGRpc2sgbWFuYWdlbWVudCBmdW5jdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHV0X2Rpc2smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtibG9jay9nZW5oZC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2Jsb2NrL2dlbmhkLmM9Nzc2PXN0YXRpYyB2b2lkIGRpc2FibGVfZWx2X3N3aXRjaChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSlcbi0tXG5ibG9jay9nZW5oZC5jLTc5Ni0gKiBUaGUgZmluYWwgcmVtb3ZhbCBvZiB0aGUgc3RydWN0IGdlbmRpc2sgaGFwcGVucyB3aGVuIGl0cyByZWZjb3VudCByZWFjaGVzIDBcbmJsb2NrL2dlbmhkLmM6Nzk3OiAqIHdpdGggcHV0X2Rpc2soKSwgd2hpY2ggc2hvdWxkIGJlIGNhbGxlZCBhZnRlciBkZWxfZ2VuZGlzaygpLCBpZlxuYmxvY2svZ2VuaGQuYy03OTgtICogZGV2aWNlX2FkZF9kaXNrKCkgd2FzIHVzZWQuXG4tLVxuYmxvY2svZ2VuaGQuYz0xNTMxPUVYUE9SVF9TWU1CT0woX19ibGtfYWxsb2NfZGlzayk7XG4tLVxuYmxvY2svZ2VuaGQuYy0xNTMzLS8qKlxuYmxvY2svZ2VuaGQuYzoxNTM0OiAqIHB1dF9kaXNrIC0gZGVjcmVtZW50cyB0aGUgZ2VuZGlzayByZWZjb3VudFxuYmxvY2svZ2VuaGQuYy0xNTM1LSAqIEBkaXNrOiB0aGUgc3RydWN0IGdlbmRpc2sgdG8gZGVjcmVtZW50IHRoZSByZWZjb3VudCBmb3Jcbi0tXG5ibG9jay9nZW5oZC5jLTE1MzktICpcbmJsb2NrL2dlbmhkLmM6MTU0MDogKiBOb3RlOiBmb3IgYmxrLW1xIGRpc2sgcHV0X2Rpc2sgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGZyZWVpbmcgdGhlIHRhZ19zZXRcbmJsb2NrL2dlbmhkLmMtMTU0MS0gKiB3aGVuIGhhbmRsaW5nIHByb2JlIGVycm9ycyAodGhhdCBpcyBiZWZvcmUgYWRkX2Rpc2soKSBpcyBjYWxsZWQpLlxuLS1cbmJsb2NrL2dlbmhkLmMtMTU0NS0gKi9cbmJsb2NrL2dlbmhkLmM6MTU0Njp2b2lkIHB1dF9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKVxuYmxvY2svZ2VuaGQuYy0xNTQ3LXtcbi0tXG5ibG9jay9nZW5oZC5jLTE1NTAtfVxuYmxvY2svZ2VuaGQuYzoxNTUxOkVYUE9SVF9TWU1CT0wocHV0X2Rpc2spO1xuYmxvY2svZ2VuaGQuYy0xNTUyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE4OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NDcKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAxMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEaXNrIFJlbGVhc2UgUGF0Y2gqKgoKT2theSwgc28gYHB1dF9kaXNrYCBzZWVtcyBsaWtlIHRoZSBjZW50cmFsIGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIEl0JiMzOTtzIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gdGhlIGNvbnRleHQuIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IGFueSBvdGhlciBrZXkgZnVuY3Rpb25zIGludm9sdmVkLiBUaGUgcGF0Y2ggc3BlY2lmaWNhbGx5IHRhcmdldHMgYGRpc2tfcmVsZWFzZWAsIHdoaWNoIGlzIGNhbGxlZCB3aGVuIHRoZSByZWZlcmVuY2UgY291bnQgb24gYSBkaXNrIG9iamVjdCBkcm9wcyB0byB6ZXJvLCB3aGljaCBtZWFucyB0aGUgZGlzayBpcyBubyBsb25nZXIgYWN0aXZlbHkgYmVpbmcgdXNlZC4gCgpUaGUgY2hhbmdlIGl0c2VsZiBpcyBjb25kaXRpb25lZCBieSBgIXRlc3RfYml0KEdEX0FEREVELCAmYW1wO2Rpc2stJmd0O3N0YXRlKWAuIFRoYXQgbWVhbnMgdGhpcyBtb2RpZmljYXRpb24gaXMgcmVsZXZhbnQgd2hlbiBgYWRkX2Rpc2tgIGlzICpub3QqIGNhbGxlZCwgb3IgcGVyaGFwcyB3aGVuIGl0IGZhaWxzLiBTbywgdGhlIHNjZW5hcmlvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggaXMgd2hlcmUgYSBkaXNrIG9iamVjdCBpcyBiZWluZyByZWxlYXNlZCB3aXRob3V0IGV2ZXIgaGF2aW5nIGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQgYW5kIGFkZGVkIHRvIHRoZSBzeXN0ZW0gdmlhIGBhZGRfZGlza2AuIFRoZSBlbnRyeSBwb2ludCBoZXJlIGZvciB1bmRlcnN0YW5kaW5nIHRoZSB3aG9sZSBzZXF1ZW5jZSB3b3VsZCBoYXZlIHRvIGJlIGBwdXRfZGlza2AsIGFzIHRoZSBzdW1tYXJ5IHN0YXRlcy4KCk5vdywgZ2l2ZW4gdGhhdCB0aGlzIHJlbGF0ZXMgdG8gYmxvY2sgZGV2aWNlcywgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gSSByZW1lbWJlciB0aGF0IGBCTE9DS2AgaXMgYSByZXF1aXJlbWVudCBmb3IgYGJsb2NrL2dlbmhkLmNgLiBMZXQmIzM5O3MgY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIHRoZSBgYmxvY2svS2NvbmZpZ2AgZmlsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQkxPQ0smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtibG9jay9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2Jsb2NrL0tjb25maWctNC0jXG5ibG9jay9LY29uZmlnOjU6bWVudWNvbmZpZyBCTE9DS1xuYmxvY2svS2NvbmZpZy02LSAgICAgICBib29sIFwmIzM0O0VuYWJsZSB0aGUgYmxvY2sgbGF5ZXJcJiMzNDsgaWYgRVhQRVJUXG4tLVxuYmxvY2svS2NvbmZpZz0yNz1pZiBCTE9DS1xuYmxvY2svS2NvbmZpZy0yOC1cbmJsb2NrL0tjb25maWc6Mjk6Y29uZmlnIEJMT0NLX0xFR0FDWV9BVVRPTE9BRFxuYmxvY2svS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7TGVnYWN5IGF1dG9sb2FkaW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5ibG9jay9LY29uZmlnPTIxND1jb25maWcgQkxLX1BNXG4tLVxuYmxvY2svS2NvbmZpZy0yMTctIyBkbyBub3QgdXNlIGluIG5ldyBjb2RlXG5ibG9jay9LY29uZmlnOjIxODpjb25maWcgQkxPQ0tfSE9MREVSX0RFUFJFQ0FURURcbmJsb2NrL0tjb25maWctMjE5LVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE4OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MDEKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQmxvY2sgRGV2aWNlIENsZWFudXAgUGF0Y2gqKgoKT2theSwgc28gYEJMT0NLYCBpcyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZSDigJMgZ29vZCwgdGhhdCYjMzk7cyBteSBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBhbGwgdGhlIHJlbGF0ZWQgZnVuY3Rpb25zLCBzbyBsZXQmIzM5O3Mgc2VlIHdoYXQgZWxzZSB0aGlzIHBhdGNoIHRvdWNoZXMuIEFoLCBgYmxrX21xX2V4aXRfcXVldWVgIGlzIGNhbGxlZDsgZ290IGl0LiBBbmQgbm93IEkgc2VlIGBibGtfc3luY19xdWV1ZWAgYW5kIGBibGtfbXFfY2FuY2VsX3dvcmtfc3luY2AgaGF2ZSBiZWVuIGFkZGVkLiBCYXNlZCBvbiB0aGlzLCB0aGUgcGF0Y2ggc2VlbXMgZnVuY3Rpb25hbGx5IHNvdW5kLiBUaW1lIHRvIHRoaW5rIGFib3V0IGZ1enppbmcg4oCTIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZXhwbG9yaW5nLgoKSSYjMzk7bSBmb2N1c2VkIG9uIHRoZSBgcHV0X2Rpc2tgIHN5bWJvbC4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBpcyBgcHV0X2Rpc2tgIHRoZSAqb25seSogc3ltYm9sIHRoYXQgd2UgbmVlZCB0byBzY3J1dGluaXplPyBJIGhhdmUgdG8gYmUgc3VyZS4gSSBicmllZmx5IGNvbnNpZGVyZWQgYGJsa19jbGVhbnVwX2Rpc2tgLCBidXQgdGhhdCBkb2VzbiYjMzk7dCBzZWVtIHRvIGJlIHRoZSBjcnVjaWFsIG9uZS4gYHB1dF9kaXNrYCBpcyB0aGUgc3RhbmRhcmQgd2F5IHRvIGRyb3AgdGhlIHJlZmNvdW50LCBhZnRlciBhbGwuIFdhaXQgYSBtaW51dGUsIHdoYXQgYWJvdXQgYGRpc2tfcmVsZWFzZWA/IFRoYXQmIzM5O3MgdGhlIHJlbGVhc2UgZnVuY3Rpb24gZm9yIHRoZSBgZGlza190eXBlYC4gSXMgYHB1dF9kaXNrYCBzdGlsbCB0aGUgb25seSB3YXkgdG8gcmVsZWFzZSBpdD8gWWVzLCBhbmQgaXQgc2VlbXMgdGhhdCBgcHV0X2Rpc2tgIGNhbGxzIGBwdXRfZGV2aWNlKCZhbXA7ZGlza19kZXYpYC4KCk5vdywgSSYjMzk7bGwgY2hlY2sgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBwdXRfZGlza2AgdG8gY29uZmlybSB0aGlzIHVuZGVyc3RhbmRpbmcgYW5kIGVuc3VyZSB0aGUgcmVmY291bnQgaGFuZGxpbmcgaXMgY29ycmVjdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm9pZCBwdXRfZGlzayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2Jsb2NrL2dlbmhkLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YmxvY2svZ2VuaGQuYz0xNTMxPUVYUE9SVF9TWU1CT0woX19ibGtfYWxsb2NfZGlzayk7XG4tLVxuYmxvY2svZ2VuaGQuYy0xNTQ1LSAqL1xuYmxvY2svZ2VuaGQuYzoxNTQ2OnZvaWQgcHV0X2Rpc2soc3RydWN0IGdlbmRpc2sgKmRpc2spXG5ibG9jay9nZW5oZC5jLTE1NDcte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDAyCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IGNvZGU6CgoqKkRpdmluZyBpbnRvIGBwdXRfZGlza2AqKgoKT2theSwgbGV0JiMzOTtzIGdldCByaWdodCBpbnRvIGl0LiBJJiMzOTttIGZvY3VzaW5nIG9uIGBwdXRfZGlza2Agc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGJsb2NrL2dlbmhkLmNgIGZpbGUuIEkgaW1tZWRpYXRlbHkgd2FudCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLiBHaXZlbiB0aGUgbmFtZSwgSSYjMzk7bSBhc3N1bWluZyBpdCYjMzk7cyBpbnZvbHZlZCBpbiwgYXQgbGVhc3QgaW4gc29tZSB3YXksIHRoZSBwcm9jZXNzIG9mIGhhbmRsaW5nIGRpc2sgZGV2aWNlcy4gSSYjMzk7bSBrZWVuIHRvIGdyYXNwIGhvdyB0aGUga2VybmVsIGludGVyYWN0cyB3aXRoIHRoZSBibG9jayBkZXZpY2UgbGF5ZXIgaGVyZS4gV2hhdCBhcmUgdGhlIGtleSBwYXJhbWV0ZXJzIGl0IHRha2VzPyBXaGF0IGRhdGEgc3RydWN0dXJlcyBkb2VzIGl0IG1hbmlwdWxhdGU/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByZWxhdGlvbnNoaXAgdG8gdGhlIGJyb2FkZXIgZGlzayBtYW5hZ2VtZW50IGluZnJhc3RydWN0dXJlLiBXaGF0IGFyZSB0aGUgY2FsbGluZyBjb250ZXh0cyBvZiB0aGlzIGZ1bmN0aW9uPyBLbm93aW5nIHdobyBjYWxscyBpdCB3aWxsIHRlbGwgbWUgaXRzIHBsYWNlIGluIHRoZSBsaWZlY3ljbGUgb2YgdGhlIGRpc2suIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdXNlIG9mIHRoaXMgaW4gdmFyaW91cyBzaXR1YXRpb25zLiBGcm9tIGFuIGV4cGVydCBwZXJzcGVjdGl2ZSwgSSYjMzk7bSBhbHJlYWR5IGZvcm11bGF0aW5nIHF1ZXN0aW9ucyBhYm91dCBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucywgY29uY3VycmVuY3kgY29uc2lkZXJhdGlvbnMsIGFuZCBlcnJvciBoYW5kbGluZyBzdHJhdGVnaWVzIHRoYXQgbWlnaHQgYmUgaW1wbGVtZW50ZWQgb3IgY291bGQgYmUgaW1wcm92ZWQuIEkmIzM5O20gbG9va2luZyBhdCBob3cgaXQgaW50ZWdyYXRlcyB3aXRoIHRoZSB2aXJ0dWFsIGJsb2NrIGRldmljZSwgbWF5YmUgd2l0aCBwYXJ0aXRpb25zIGFuZCBhbnkgY2FjaGluZyBtZWNoYW5pc20uIE15IGltbWVkaWF0ZSBxdWVzdGlvbnMgYXJlIHdoYXQgaXMgdGhlIHB1cnBvc2Ugb2YgdGhlIGRhdGE/IFdoYXQgaXMgdGhlIGZ1bmN0aW9uIHRyeWluZyB0byBhY2NvbXBsaXNoPwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2Jsb2NrL2dlbmhkLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNTQ1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE1NDU6XHQgKi9cbjE1NDY6XHR2b2lkIHB1dF9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKVxuMTU0NzpcdHtcbjE1NDg6XHRcdGlmIChkaXNrKVxuMTU0OTpcdFx0XHRwdXRfZGV2aWNlKGRpc2tfdG9fZGV2KGRpc2spKTtcbjE1NTA6XHR9XG4xNTUxOlx0RVhQT1JUX1NZTUJPTChwdXRfZGlzayk7XG4xNTUyOlx0XG4xNTUzOlx0c3RhdGljIHZvaWQgc2V0X2Rpc2tfcm9fdWV2ZW50KHN0cnVjdCBnZW5kaXNrICpnZCwgaW50IHJvKVxuMTU1NDpcdHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ1NAoJCQkJCQkJb3V0cHV0OiA5NAoJCQkJCQkJdGhvdWdodHM6IDEzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgaXMgZGVmaW5pdGVseSBgcHV0X2Rpc2tgLiBObyBvdGhlciBjb25maWd1cmF0aW9uIHNlZW1zIGltbWVkaWF0ZWx5IHJlbGV2YW50OyBgQkxPQ0tgIGxvb2tzIGxpa2UgdGhlIHByaW1hcnkgY29udGV4dCBoZXJlLiBUaGUgcGF0Y2ggaXMgYWJvdXQgaG93IHdlIHJlbGVhc2UgYSBkaXNrIHdpdGhpbiB0aGUgYmxvY2sgbGF5ZXIsIHNwZWNpZmljYWxseSBhcm91bmQgc3luY2hyb25pemF0aW9uIGFuZCBjYW5jZWxsYXRpb24gb2YgcGVuZGluZyB3b3JrIGJlZm9yZSB3ZSBleGl0IHRoZSBtdWx0aXF1ZXVlLiBUaGlzIGlzIGNyaXRpY2FsIGJlY2F1c2UgaXQmIzM5O3MgaGFuZGxpbmcgc2NlbmFyaW9zIHdoZXJlIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0ICpuZXZlciogcHJvcGVybHkgYWRkZWQuIFByb2JlIGZhaWx1cmVzIG9yIGVhcmx5IHRlYXJkb3duIGFyZSB0aGUgbGlrZWx5IHRyaWdnZXJpbmcgZXZlbnRzLgoKTm93LCBJIG5lZWQgdG8gY29uZmlybSB0aGF0IGBwdXRfZGlza2AgaXMgaW5kZWVkIHRoZSAqcmlnaHQqIHN5bWJvbCB0byBmb2N1cyBvbi4gSXQmIzM5O3MgYW4gaW1wb3J0YW50IG5vbi1zdGF0aWMgQVBJIGVudHJ5cG9pbnQsIHNvIGl0JiMzOTtzIHByb2JhYmx5IHdvcnRoIHB1dHRpbmcgc29tZSBmdXp6aW5nIHByZXNzdXJlIG9uIHRoYXQgY29kZSBwYXRoLiBZZXAsIHNldHRpbmcgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLiBUaGlzIHdhcnJhbnRzIGNsb3NlciBpbnNwZWN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwdXRfZGlzayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGlzayByZWxlYXNlIHBhdGggaW4gdGhlIGJsb2NrIGxheWVyIHRvIHByb3Blcmx5IHN5bmNocm9uaXplIGFuZCBjYW5jZWwgcGVuZGluZyB3b3JrIGJlZm9yZSBleGl0aW5nIHRoZSBtdWx0aXF1ZXVlIHdoZW4gYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgbm90IGFkZGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBibG9jayBsYXllciBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBwcm9iZSBmYWlsdXJlcyBvciBlYXJseSB0ZWFyZG93bi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwdXRfZGlzayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGlzayByZWxlYXNlIHBhdGggaW4gdGhlIGJsb2NrIGxheWVyIHRvIHByb3Blcmx5IHN5bmNocm9uaXplIGFuZCBjYW5jZWwgcGVuZGluZyB3b3JrIGJlZm9yZSBleGl0aW5nIHRoZSBtdWx0aXF1ZXVlIHdoZW4gYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgbm90IGFkZGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBibG9jayBsYXllciBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBwcm9iZSBmYWlsdXJlcyBvciBlYXJseSB0ZWFyZG93bi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE4OjQ5OjA4LjQ4MTMwMzIyOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NjU5MjQ0NDU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMT0NLXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHV0X2Rpc2tcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGlzayByZWxlYXNlIHBhdGggaW4gdGhlIGJsb2NrIGxheWVyIHRvIHByb3Blcmx5IHN5bmNocm9uaXplIGFuZCBjYW5jZWwgcGVuZGluZyB3b3JrIGJlZm9yZSBleGl0aW5nIHRoZSBtdWx0aXF1ZXVlIHdoZW4gYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgbm90IGFkZGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBibG9jayBsYXllciBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBwcm9iZSBmYWlsdXJlcyBvciBlYXJseSB0ZWFyZG93bi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MDguNDgxMzEyOTU4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTI4MzUzOTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlZTkxNzgyMTc4NWM3YzA4OWE4NTZkNTRlOTk3NTQ0Y2Y3YjZiZWE1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDI4IDE4OjQ5OjA3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2Jsb2NrL2dlbmhkLmMgYi9ibG9jay9nZW5oZC5jXFxuaW5kZXggZGYyYzNjNjliNDY3ZC4uZThjZTBjYWJmMzkyYyAxMDA2NDRcXG4tLS0gYS9ibG9jay9nZW5oZC5jXFxuKysrIGIvYmxvY2svZ2VuaGQuY1xcbkBAIC0xMjgxLDE0ICsxMjgxLDE4IEBAIHN0YXRpYyB2b2lkIGRpc2tfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuIFxcdC8qXFxuIFxcdCAqIFRvIHVuZG8gdGhlIGFsbCBpbml0aWFsaXphdGlvbiBmcm9tIGJsa19tcV9pbml0X2FsbG9jYXRlZF9xdWV1ZSBpblxcbiBcXHQgKiBjYXNlIG9mIGEgcHJvYmUgZmFpbHVyZSB3aGVyZSBhZGRfZGlzayBpcyBuZXZlciBjYWxsZWQgd2UgaGF2ZSB0b1xcbi1cXHQgKiBjYWxsIGJsa19tcV9leGl0X3F1ZXVlIGhlcmUuIFdlIGNhbid0IGRvIHRoaXMgZm9yIHRoZSBtb3JlIGNvbW1vblxcbi1cXHQgKiB0ZWFyZG93biBjYXNlICh5ZXQpIGFzIHRoZSB0YWdzZXQgY2FuIGJlIGdvbmUgYnkgdGhlIHRpbWUgdGhlIGRpc2tcXG4tXFx0ICogaXMgcmVsZWFzZWQgb25jZSBpdCB3YXMgYWRkZWQuXFxuK1xcdCAqIGNhbGwgYmxrX21xX2V4aXRfcXVldWUgaGVyZSwgYWZ0ZXIgc3RvcHBpbmcgdGhlIHRpbWVyIGFuZCB3b3JrIGl0ZW1zXFxuK1xcdCAqIHRoYXQgSS9PIGlzc3VlZCBiZWZvcmUgYWRkX2Rpc2sgbWF5IGhhdmUgbGVmdCBwZW5kaW5nLiAgV2UgY2FuJ3QgZG9cXG4rXFx0ICogdGhpcyBmb3IgdGhlIG1vcmUgY29tbW9uIHRlYXJkb3duIGNhc2UgKHlldCkgYXMgdGhlIHRhZ3NldCBjYW4gYmVcXG4rXFx0ICogZ29uZSBieSB0aGUgdGltZSB0aGUgZGlzayBpcyByZWxlYXNlZCBvbmNlIGl0IHdhcyBhZGRlZC5cXG4gXFx0ICovXFxuIFxcdGlmIChxdWV1ZV9pc19tcShkaXNrLVxcdTAwM2VxdWV1ZSkgXFx1MDAyNlxcdTAwMjZcXG4gXFx0ICAgIHRlc3RfYml0KEdEX09XTlNfUVVFVUUsIFxcdTAwMjZkaXNrLVxcdTAwM2VzdGF0ZSkgXFx1MDAyNlxcdTAwMjZcXG4tXFx0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXFx1MDAyNmRpc2stXFx1MDAzZXN0YXRlKSlcXG4rXFx0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXFx1MDAyNmRpc2stXFx1MDAzZXN0YXRlKSkge1xcbitcXHRcXHRibGtfc3luY19xdWV1ZShkaXNrLVxcdTAwM2VxdWV1ZSk7XFxuK1xcdFxcdGJsa19tcV9jYW5jZWxfd29ya19zeW5jKGRpc2stXFx1MDAzZXF1ZXVlKTtcXG4gXFx0XFx0YmxrX21xX2V4aXRfcXVldWUoZGlzay1cXHUwMDNlcXVldWUpO1xcbitcXHR9XFxuIFxcbiBcXHRibGtjZ19leGl0X2Rpc2soZGlzayk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxODo0OTowOC45MzUxMjg3ODdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyNjIwNTQwODc0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTE9DS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInB1dF9kaXNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGRpc2sgcmVsZWFzZSBwYXRoIGluIHRoZSBibG9jayBsYXllciB0byBwcm9wZXJseSBzeW5jaHJvbml6ZSBhbmQgY2FuY2VsIHBlbmRpbmcgd29yayBiZWZvcmUgZXhpdGluZyB0aGUgbXVsdGlxdWV1ZSB3aGVuIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0IG5vdCBhZGRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgYmxvY2sgbGF5ZXIgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgcHJvYmUgZmFpbHVyZXMgb3IgZWFybHkgdGVhcmRvd24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGVlOTE3ODIxNzg1YzdjMDg5YTg1NmQ1NGU5OTc1NDRjZjdiNmJlYTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAxODo0OTowNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2Jsb2NrL2dlbmhkLmMgYi9ibG9jay9nZW5oZC5jXG5pbmRleCBkZjJjM2M2OWI0NjdkLi5lOGNlMGNhYmYzOTJjIDEwMDY0NFxuLS0tIGEvYmxvY2svZ2VuaGQuY1xuKysrIGIvYmxvY2svZ2VuaGQuY1xuQEAgLTEyODEsMTQgKzEyODEsMTggQEAgc3RhdGljIHZvaWQgZGlza19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbiBcdC8qXG4gXHQgKiBUbyB1bmRvIHRoZSBhbGwgaW5pdGlhbGl6YXRpb24gZnJvbSBibGtfbXFfaW5pdF9hbGxvY2F0ZWRfcXVldWUgaW5cbiBcdCAqIGNhc2Ugb2YgYSBwcm9iZSBmYWlsdXJlIHdoZXJlIGFkZF9kaXNrIGlzIG5ldmVyIGNhbGxlZCB3ZSBoYXZlIHRvXG4tXHQgKiBjYWxsIGJsa19tcV9leGl0X3F1ZXVlIGhlcmUuIFdlIGNhbid0IGRvIHRoaXMgZm9yIHRoZSBtb3JlIGNvbW1vblxuLVx0ICogdGVhcmRvd24gY2FzZSAoeWV0KSBhcyB0aGUgdGFnc2V0IGNhbiBiZSBnb25lIGJ5IHRoZSB0aW1lIHRoZSBkaXNrXG4tXHQgKiBpcyByZWxlYXNlZCBvbmNlIGl0IHdhcyBhZGRlZC5cbitcdCAqIGNhbGwgYmxrX21xX2V4aXRfcXVldWUgaGVyZSwgYWZ0ZXIgc3RvcHBpbmcgdGhlIHRpbWVyIGFuZCB3b3JrIGl0ZW1zXG4rXHQgKiB0aGF0IEkvTyBpc3N1ZWQgYmVmb3JlIGFkZF9kaXNrIG1heSBoYXZlIGxlZnQgcGVuZGluZy4gIFdlIGNhbid0IGRvXG4rXHQgKiB0aGlzIGZvciB0aGUgbW9yZSBjb21tb24gdGVhcmRvd24gY2FzZSAoeWV0KSBhcyB0aGUgdGFnc2V0IGNhbiBiZVxuK1x0ICogZ29uZSBieSB0aGUgdGltZSB0aGUgZGlzayBpcyByZWxlYXNlZCBvbmNlIGl0IHdhcyBhZGRlZC5cbiBcdCAqL1xuIFx0aWYgKHF1ZXVlX2lzX21xKGRpc2stXHUwMDNlcXVldWUpIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHRlc3RfYml0KEdEX09XTlNfUVVFVUUsIFx1MDAyNmRpc2stXHUwMDNlc3RhdGUpIFx1MDAyNlx1MDAyNlxuLVx0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXHUwMDI2ZGlzay1cdTAwM2VzdGF0ZSkpXG4rXHQgICAgIXRlc3RfYml0KEdEX0FEREVELCBcdTAwMjZkaXNrLVx1MDAzZXN0YXRlKSkge1xuK1x0XHRibGtfc3luY19xdWV1ZShkaXNrLVx1MDAzZXF1ZXVlKTtcbitcdFx0YmxrX21xX2NhbmNlbF93b3JrX3N5bmMoZGlzay1cdTAwM2VxdWV1ZSk7XG4gXHRcdGJsa19tcV9leGl0X3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO1xuK1x0fVxuIFxuIFx0YmxrY2dfZXhpdF9kaXNrKGRpc2spO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MDguOTM1MTMxMTM3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQyNzg0NDk2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCbG9jayBMYXllciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYGJsb2NrL2dlbmhkLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBkaXNrX3JlbGVhc2UoKWAgZnVuY3Rpb24uIEl0IHNlZW1zIHRoZXkndmUgYWRkZWQgYGJsa19zeW5jX3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO2AgYW5kIGBibGtfbXFfY2FuY2VsX3dvcmtfc3luYyhkaXNrLVx1MDAzZXF1ZXVlKTtgIGJlZm9yZSB0aGUgZXhpc3RpbmcgYGJsa19tcV9leGl0X3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO2AuIFRoZSBjb25kaXRpb25hbCBpcyBpbnRlcmVzdGluZzogaXQncyBvbmx5IHRyaWdnZXJlZCBpZiBgIXRlc3RfYml0KEdEX0FEREVELCBcdTAwMjZkaXNrLVx1MDAzZXN0YXRlKWAuIFRoYXQgdGVsbHMgbWUgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGJsb2NrIGxheWVyIGRpc2sgcmVsZWFzZSBwYXRoIG1vZGlmaWNhdGlvbiwgZGVhbGluZyB3aXRoIGNhc2VzIHdoZXJlIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0ICpub3QqIHN1Y2Nlc3NmdWxseSBhZGRlZCwgb3IgcG9zc2libHkgaWYgYSBwcm9iZSBmYWlscy4gVGhpcyBpcyBwcmVjaXNlbHkgdGhlIGtpbmQgb2YgdGhpbmcgdGhhdCdzIHJpcGUgZm9yIGZ1enppbmcuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgY29uZmlnIG9wdGlvbnMgYXJlIHJlbGV2YW50IHRvIHRoaXMgY29kZSBwYXRoLiBMZXQncyBzZWUuLi4gYW5kIEkgbmVlZCB0byBob25lIGluIG9uIHRoZSBpbXBvcnRhbnQgc3ltYm9scy4gQWxyaWdodCwgYGRpc2tfcmVsZWFzZWAgaXMgdGhlIGtleS4gV2FpdCBhIHNlY29uZC4uLiBpdCdzIHN0YXRpYy4gT2theSwgbGV0IG1lIG1ha2Ugc3VyZSBpdCBpcyBpbiBgYmxvY2svZ2VuaGQuY2AuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3MCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE4OjQ5OjEzLjM2Mjk5MTU4N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzMwNDgxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkaXNrX3JlbGVhc2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYmxvY2svZ2VuaGQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJibG9jay9nZW5oZC5jPTEyNDc9c3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmRpc2tfYXR0cl9ncm91cHNbXSA9IHtcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTI1OC0vKipcXG5ibG9jay9nZW5oZC5jOjEyNTk6ICogZGlza19yZWxlYXNlIC0gcmVsZWFzZXMgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMgb2YgdGhlIGdlbmRpc2tcXG5ibG9jay9nZW5oZC5jLTEyNjAtICogQGRldjogdGhlIGRldmljZSByZXByZXNlbnRpbmcgdGhpcyBkaXNrXFxuLS1cXG5ibG9jay9nZW5oZC5jLTEyNzEtICovXFxuYmxvY2svZ2VuaGQuYzoxMjcyOnN0YXRpYyB2b2lkIGRpc2tfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuYmxvY2svZ2VuaGQuYy0xMjczLXtcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTMwMC1cXG5ibG9jay9nZW5oZC5jOjEzMDE6XFx0ZGlza19yZWxlYXNlX2V2ZW50cyhkaXNrKTtcXG5ibG9jay9nZW5oZC5jLTEzMDItXFx0a2ZyZWUoZGlzay1cXHUwMDNlcmFuZG9tKTtcXG5ibG9jay9nZW5oZC5jOjEzMDM6XFx0ZGlza19yZWxlYXNlX3pvbmVfcmVzb3VyY2VzKGRpc2spO1xcbmJsb2NrL2dlbmhkLmMtMTMwNC1cXHR4YV9kZXN0cm95KFxcdTAwMjZkaXNrLVxcdTAwM2VwYXJ0X3RibCk7XFxuLS1cXG5ibG9jay9nZW5oZC5jPTEzMzg9Y29uc3Qgc3RydWN0IGRldmljZV90eXBlIGRpc2tfdHlwZSA9IHtcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTM0MC1cXHQuZ3JvdXBzXFx0XFx0PSBkaXNrX2F0dHJfZ3JvdXBzLFxcbmJsb2NrL2dlbmhkLmM6MTM0MTpcXHQucmVsZWFzZVxcdD0gZGlza19yZWxlYXNlLFxcbmJsb2NrL2dlbmhkLmMtMTM0Mi1cXHQuZGV2bm9kZVxcdD0gYmxvY2tfZGV2bm9kZSxcXG4tLVxcbmJsb2NrL2dlbmhkLmM9MTUzMT1FWFBPUlRfU1lNQk9MKF9fYmxrX2FsbG9jX2Rpc2spO1xcbi0tXFxuYmxvY2svZ2VuaGQuYy0xNTM3LSAqIFRoaXMgZGVjcmVtZW50cyB0aGUgcmVmY291bnQgZm9yIHRoZSBzdHJ1Y3QgZ2VuZGlzay4gV2hlbiB0aGlzIHJlYWNoZXMgMFxcbmJsb2NrL2dlbmhkLmM6MTUzODogKiB3ZSdsbCBoYXZlIGRpc2tfcmVsZWFzZSgpIGNhbGxlZC5cXG5ibG9jay9nZW5oZC5jLTE1MzktICpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MTMuNDE2MzA5NzQ0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUzMTU0MDcyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBwZXJzb25hbCB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIERpc2sgUmVsZWFzZSBMb2dpYyoqXG5cblJpZ2h0LCBzbyBJJ20gZm9jdXNpbmcgb24gYGRpc2tfcmVsZWFzZWAgaGVyZS4gSXQncyBkZWZpbmVkIGFzIGEgc3RhdGljIGZ1bmN0aW9uLCBidXQgaXRzIHB1cnBvc2UgaXMgYWN0dWFsbHkgdGhlIGAucmVsZWFzZWAgY2FsbGJhY2sgZnVuY3Rpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBgZGlza190eXBlYCBzdHJ1Y3R1cmUsIGlzbid0IGl0PyBTbywgaXQgc2VlbXMgbGlrZSBgZGlza19yZWxlYXNlYCBpcyB0aGUgY2xlYW51cCBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIHdoZW4gYSBkaXNrIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1ha2VzIHNlbnNlLiBCdXQgdGhhdCBicmluZ3MgdXAgYSBjb25uZWN0ZWQgdGhvdWdodCB0aGF0IGFsc28gcmVsYXRlcyB0byBkaXNrIG1hbmFnZW1lbnQuIFdoYXQgYWJvdXQgYHB1dF9kaXNrYD8gSG93IGRvZXMgYHB1dF9kaXNrYCBmaXQgaW50byB0aGlzIGNsZWFudXAgc2VxdWVuY2U/IElzIGBwdXRfZGlza2AgZGVwZW5kZW50IG9uIGEgc3VjY2Vzc2Z1bCBgZGlza19yZWxlYXNlYCBvcGVyYXRpb24/IEkgbmVlZCB0byB0aGluayB0aHJvdWdoIGhvdyB0aGVzZSB0d28gZnVuY3Rpb25zIGludGVyYWN0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gcmVsZWFzaW5nIHRoZSBkaXNrIGFuZCBwdXR0aW5nIGl0IGF3YXkuIFRoZSBrZXkgaXMgaW4gaG93IHRoZSBrZXJuZWwgbWFuYWdlcyByZXNvdXJjZXMgZHVyaW5nIGRpc2sgb3BlcmF0aW9ucy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbid0IG92ZXJsb29rIGFueSBjb25uZWN0aW9uIHBvaW50cyBkdXJpbmcgbXkgcmV2aWV3IG9mIHRoZSBkaXNrIG1hbmFnZW1lbnQgZnVuY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTY5LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MTYuOTQ3ODU0NjU3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxODkwODI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInB1dF9kaXNrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImJsb2NrL2dlbmhkLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYmxvY2svZ2VuaGQuYz03NzY9c3RhdGljIHZvaWQgZGlzYWJsZV9lbHZfc3dpdGNoKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKVxcbi0tXFxuYmxvY2svZ2VuaGQuYy03OTYtICogVGhlIGZpbmFsIHJlbW92YWwgb2YgdGhlIHN0cnVjdCBnZW5kaXNrIGhhcHBlbnMgd2hlbiBpdHMgcmVmY291bnQgcmVhY2hlcyAwXFxuYmxvY2svZ2VuaGQuYzo3OTc6ICogd2l0aCBwdXRfZGlzaygpLCB3aGljaCBzaG91bGQgYmUgY2FsbGVkIGFmdGVyIGRlbF9nZW5kaXNrKCksIGlmXFxuYmxvY2svZ2VuaGQuYy03OTgtICogZGV2aWNlX2FkZF9kaXNrKCkgd2FzIHVzZWQuXFxuLS1cXG5ibG9jay9nZW5oZC5jPTE1MzE9RVhQT1JUX1NZTUJPTChfX2Jsa19hbGxvY19kaXNrKTtcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTUzMy0vKipcXG5ibG9jay9nZW5oZC5jOjE1MzQ6ICogcHV0X2Rpc2sgLSBkZWNyZW1lbnRzIHRoZSBnZW5kaXNrIHJlZmNvdW50XFxuYmxvY2svZ2VuaGQuYy0xNTM1LSAqIEBkaXNrOiB0aGUgc3RydWN0IGdlbmRpc2sgdG8gZGVjcmVtZW50IHRoZSByZWZjb3VudCBmb3JcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTUzOS0gKlxcbmJsb2NrL2dlbmhkLmM6MTU0MDogKiBOb3RlOiBmb3IgYmxrLW1xIGRpc2sgcHV0X2Rpc2sgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGZyZWVpbmcgdGhlIHRhZ19zZXRcXG5ibG9jay9nZW5oZC5jLTE1NDEtICogd2hlbiBoYW5kbGluZyBwcm9iZSBlcnJvcnMgKHRoYXQgaXMgYmVmb3JlIGFkZF9kaXNrKCkgaXMgY2FsbGVkKS5cXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTU0NS0gKi9cXG5ibG9jay9nZW5oZC5jOjE1NDY6dm9pZCBwdXRfZGlzayhzdHJ1Y3QgZ2VuZGlzayAqZGlzaylcXG5ibG9jay9nZW5oZC5jLTE1NDcte1xcbi0tXFxuYmxvY2svZ2VuaGQuYy0xNTUwLX1cXG5ibG9jay9nZW5oZC5jOjE1NTE6RVhQT1JUX1NZTUJPTChwdXRfZGlzayk7XFxuYmxvY2svZ2VuaGQuYy0xNTUyLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxODo0OToxNi45OTk3NTgzNDVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTU1MDUxNjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRGlzayBSZWxlYXNlIFBhdGNoKipcblxuT2theSwgc28gYHB1dF9kaXNrYCBzZWVtcyBsaWtlIHRoZSBjZW50cmFsIGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIEl0J3MgYSBzb2xpZCBzdGFydGluZyBwb2ludCBnaXZlbiB0aGUgY29udGV4dC4gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgYW55IG90aGVyIGtleSBmdW5jdGlvbnMgaW52b2x2ZWQuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgdGFyZ2V0cyBgZGlza19yZWxlYXNlYCwgd2hpY2ggaXMgY2FsbGVkIHdoZW4gdGhlIHJlZmVyZW5jZSBjb3VudCBvbiBhIGRpc2sgb2JqZWN0IGRyb3BzIHRvIHplcm8sIHdoaWNoIG1lYW5zIHRoZSBkaXNrIGlzIG5vIGxvbmdlciBhY3RpdmVseSBiZWluZyB1c2VkLiBcblxuVGhlIGNoYW5nZSBpdHNlbGYgaXMgY29uZGl0aW9uZWQgYnkgYCF0ZXN0X2JpdChHRF9BRERFRCwgXHUwMDI2ZGlzay1cdTAwM2VzdGF0ZSlgLiBUaGF0IG1lYW5zIHRoaXMgbW9kaWZpY2F0aW9uIGlzIHJlbGV2YW50IHdoZW4gYGFkZF9kaXNrYCBpcyAqbm90KiBjYWxsZWQsIG9yIHBlcmhhcHMgd2hlbiBpdCBmYWlscy4gU28sIHRoZSBzY2VuYXJpbyB3ZSdyZSBkZWFsaW5nIHdpdGggaXMgd2hlcmUgYSBkaXNrIG9iamVjdCBpcyBiZWluZyByZWxlYXNlZCB3aXRob3V0IGV2ZXIgaGF2aW5nIGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQgYW5kIGFkZGVkIHRvIHRoZSBzeXN0ZW0gdmlhIGBhZGRfZGlza2AuIFRoZSBlbnRyeSBwb2ludCBoZXJlIGZvciB1bmRlcnN0YW5kaW5nIHRoZSB3aG9sZSBzZXF1ZW5jZSB3b3VsZCBoYXZlIHRvIGJlIGBwdXRfZGlza2AsIGFzIHRoZSBzdW1tYXJ5IHN0YXRlcy5cblxuTm93LCBnaXZlbiB0aGF0IHRoaXMgcmVsYXRlcyB0byBibG9jayBkZXZpY2VzLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBJIHJlbWVtYmVyIHRoYXQgYEJMT0NLYCBpcyBhIHJlcXVpcmVtZW50IGZvciBgYmxvY2svZ2VuaGQuY2AuIExldCdzIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyB0aGUgYGJsb2NrL0tjb25maWdgIGZpbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NDcsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MjEuMTU0ODEzMzA4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NjU1NzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCTE9DS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJibG9jay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImJsb2NrL0tjb25maWctNC0jXFxuYmxvY2svS2NvbmZpZzo1Om1lbnVjb25maWcgQkxPQ0tcXG5ibG9jay9LY29uZmlnLTYtICAgICAgIGJvb2wgXFxcIkVuYWJsZSB0aGUgYmxvY2sgbGF5ZXJcXFwiIGlmIEVYUEVSVFxcbi0tXFxuYmxvY2svS2NvbmZpZz0yNz1pZiBCTE9DS1xcbmJsb2NrL0tjb25maWctMjgtXFxuYmxvY2svS2NvbmZpZzoyOTpjb25maWcgQkxPQ0tfTEVHQUNZX0FVVE9MT0FEXFxuYmxvY2svS2NvbmZpZy0zMC1cXHRib29sIFxcXCJMZWdhY3kgYXV0b2xvYWRpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbmJsb2NrL0tjb25maWc9MjE0PWNvbmZpZyBCTEtfUE1cXG4tLVxcbmJsb2NrL0tjb25maWctMjE3LSMgZG8gbm90IHVzZSBpbiBuZXcgY29kZVxcbmJsb2NrL0tjb25maWc6MjE4OmNvbmZpZyBCTE9DS19IT0xERVJfREVQUkVDQVRFRFxcbmJsb2NrL0tjb25maWctMjE5LVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MjEuMjA5NDc3Mzg1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE0NDkzNTc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCbG9jayBEZXZpY2UgQ2xlYW51cCBQYXRjaCoqXG5cbk9rYXksIHNvIGBCTE9DS2AgaXMgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUg4oCTIGdvb2QsIHRoYXQncyBteSBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBhbGwgdGhlIHJlbGF0ZWQgZnVuY3Rpb25zLCBzbyBsZXQncyBzZWUgd2hhdCBlbHNlIHRoaXMgcGF0Y2ggdG91Y2hlcy4gQWgsIGBibGtfbXFfZXhpdF9xdWV1ZWAgaXMgY2FsbGVkOyBnb3QgaXQuIEFuZCBub3cgSSBzZWUgYGJsa19zeW5jX3F1ZXVlYCBhbmQgYGJsa19tcV9jYW5jZWxfd29ya19zeW5jYCBoYXZlIGJlZW4gYWRkZWQuIEJhc2VkIG9uIHRoaXMsIHRoZSBwYXRjaCBzZWVtcyBmdW5jdGlvbmFsbHkgc291bmQuIFRpbWUgdG8gdGhpbmsgYWJvdXQgZnV6emluZyDigJMgaXQncyBkZWZpbml0ZWx5IHdvcnRoIGV4cGxvcmluZy5cblxuSSdtIGZvY3VzZWQgb24gdGhlIGBwdXRfZGlza2Agc3ltYm9sLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGlzIGBwdXRfZGlza2AgdGhlICpvbmx5KiBzeW1ib2wgdGhhdCB3ZSBuZWVkIHRvIHNjcnV0aW5pemU/IEkgaGF2ZSB0byBiZSBzdXJlLiBJIGJyaWVmbHkgY29uc2lkZXJlZCBgYmxrX2NsZWFudXBfZGlza2AsIGJ1dCB0aGF0IGRvZXNuJ3Qgc2VlbSB0byBiZSB0aGUgY3J1Y2lhbCBvbmUuIGBwdXRfZGlza2AgaXMgdGhlIHN0YW5kYXJkIHdheSB0byBkcm9wIHRoZSByZWZjb3VudCwgYWZ0ZXIgYWxsLiBXYWl0IGEgbWludXRlLCB3aGF0IGFib3V0IGBkaXNrX3JlbGVhc2VgPyBUaGF0J3MgdGhlIHJlbGVhc2UgZnVuY3Rpb24gZm9yIHRoZSBgZGlza190eXBlYC4gSXMgYHB1dF9kaXNrYCBzdGlsbCB0aGUgb25seSB3YXkgdG8gcmVsZWFzZSBpdD8gWWVzLCBhbmQgaXQgc2VlbXMgdGhhdCBgcHV0X2Rpc2tgIGNhbGxzIGBwdXRfZGV2aWNlKFx1MDAyNmRpc2tfZGV2KWAuXG5cbk5vdywgSSdsbCBjaGVjayB0aGUgaW1wbGVtZW50YXRpb24gb2YgYHB1dF9kaXNrYCB0byBjb25maXJtIHRoaXMgdW5kZXJzdGFuZGluZyBhbmQgZW5zdXJlIHRoZSByZWZjb3VudCBoYW5kbGluZyBpcyBjb3JyZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDAxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE4OjQ5OjI2LjM1NDQxNjYyMloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIzMTgzNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidm9pZCBwdXRfZGlza1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJibG9jay9nZW5oZC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImJsb2NrL2dlbmhkLmM9MTUzMT1FWFBPUlRfU1lNQk9MKF9fYmxrX2FsbG9jX2Rpc2spO1xcbi0tXFxuYmxvY2svZ2VuaGQuYy0xNTQ1LSAqL1xcbmJsb2NrL2dlbmhkLmM6MTU0Njp2b2lkIHB1dF9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKVxcbmJsb2NrL2dlbmhkLmMtMTU0Ny17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE4OjQ5OjI2LjQwNjc0NDA5OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzM0MTI5NjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IGNvZGU6XG5cbioqRGl2aW5nIGludG8gYHB1dF9kaXNrYCoqXG5cbk9rYXksIGxldCdzIGdldCByaWdodCBpbnRvIGl0LiBJJ20gZm9jdXNpbmcgb24gYHB1dF9kaXNrYCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgYmxvY2svZ2VuaGQuY2AgZmlsZS4gSSBpbW1lZGlhdGVseSB3YW50IHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUuIEdpdmVuIHRoZSBuYW1lLCBJJ20gYXNzdW1pbmcgaXQncyBpbnZvbHZlZCBpbiwgYXQgbGVhc3QgaW4gc29tZSB3YXksIHRoZSBwcm9jZXNzIG9mIGhhbmRsaW5nIGRpc2sgZGV2aWNlcy4gSSdtIGtlZW4gdG8gZ3Jhc3AgaG93IHRoZSBrZXJuZWwgaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrIGRldmljZSBsYXllciBoZXJlLiBXaGF0IGFyZSB0aGUga2V5IHBhcmFtZXRlcnMgaXQgdGFrZXM/IFdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGRvZXMgaXQgbWFuaXB1bGF0ZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJlbGF0aW9uc2hpcCB0byB0aGUgYnJvYWRlciBkaXNrIG1hbmFnZW1lbnQgaW5mcmFzdHJ1Y3R1cmUuIFdoYXQgYXJlIHRoZSBjYWxsaW5nIGNvbnRleHRzIG9mIHRoaXMgZnVuY3Rpb24/IEtub3dpbmcgd2hvIGNhbGxzIGl0IHdpbGwgdGVsbCBtZSBpdHMgcGxhY2UgaW4gdGhlIGxpZmVjeWNsZSBvZiB0aGUgZGlzay4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZSBvZiB0aGlzIGluIHZhcmlvdXMgc2l0dWF0aW9ucy4gRnJvbSBhbiBleHBlcnQgcGVyc3BlY3RpdmUsIEknbSBhbHJlYWR5IGZvcm11bGF0aW5nIHF1ZXN0aW9ucyBhYm91dCBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucywgY29uY3VycmVuY3kgY29uc2lkZXJhdGlvbnMsIGFuZCBlcnJvciBoYW5kbGluZyBzdHJhdGVnaWVzIHRoYXQgbWlnaHQgYmUgaW1wbGVtZW50ZWQgb3IgY291bGQgYmUgaW1wcm92ZWQuIEknbSBsb29raW5nIGF0IGhvdyBpdCBpbnRlZ3JhdGVzIHdpdGggdGhlIHZpcnR1YWwgYmxvY2sgZGV2aWNlLCBtYXliZSB3aXRoIHBhcnRpdGlvbnMgYW5kIGFueSBjYWNoaW5nIG1lY2hhbmlzbS4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9ucyBhcmUgd2hhdCBpcyB0aGUgcHVycG9zZSBvZiB0aGUgZGF0YT8gV2hhdCBpcyB0aGUgZnVuY3Rpb24gdHJ5aW5nIHRvIGFjY29tcGxpc2g/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjUwMDIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxODo0OTozMC4xNDA4Nzc2OTJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUwNjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImJsb2NrL2dlbmhkLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTU0NSxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTU0NTpcXHQgKi9cXG4xNTQ2OlxcdHZvaWQgcHV0X2Rpc2soc3RydWN0IGdlbmRpc2sgKmRpc2spXFxuMTU0NzpcXHR7XFxuMTU0ODpcXHRcXHRpZiAoZGlzaylcXG4xNTQ5OlxcdFxcdFxcdHB1dF9kZXZpY2UoZGlza190b19kZXYoZGlzaykpO1xcbjE1NTA6XFx0fVxcbjE1NTE6XFx0RVhQT1JUX1NZTUJPTChwdXRfZGlzayk7XFxuMTU1MjpcXHRcXG4xNTUzOlxcdHN0YXRpYyB2b2lkIHNldF9kaXNrX3JvX3VldmVudChzdHJ1Y3QgZ2VuZGlzayAqZ2QsIGludCBybylcXG4xNTU0OlxcdHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MzAuMTQxMDI5ODgyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5MDQ2MzQ1ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgaXMgZGVmaW5pdGVseSBgcHV0X2Rpc2tgLiBObyBvdGhlciBjb25maWd1cmF0aW9uIHNlZW1zIGltbWVkaWF0ZWx5IHJlbGV2YW50OyBgQkxPQ0tgIGxvb2tzIGxpa2UgdGhlIHByaW1hcnkgY29udGV4dCBoZXJlLiBUaGUgcGF0Y2ggaXMgYWJvdXQgaG93IHdlIHJlbGVhc2UgYSBkaXNrIHdpdGhpbiB0aGUgYmxvY2sgbGF5ZXIsIHNwZWNpZmljYWxseSBhcm91bmQgc3luY2hyb25pemF0aW9uIGFuZCBjYW5jZWxsYXRpb24gb2YgcGVuZGluZyB3b3JrIGJlZm9yZSB3ZSBleGl0IHRoZSBtdWx0aXF1ZXVlLiBUaGlzIGlzIGNyaXRpY2FsIGJlY2F1c2UgaXQncyBoYW5kbGluZyBzY2VuYXJpb3Mgd2hlcmUgYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgKm5ldmVyKiBwcm9wZXJseSBhZGRlZC4gUHJvYmUgZmFpbHVyZXMgb3IgZWFybHkgdGVhcmRvd24gYXJlIHRoZSBsaWtlbHkgdHJpZ2dlcmluZyBldmVudHMuXG5cbk5vdywgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCBgcHV0X2Rpc2tgIGlzIGluZGVlZCB0aGUgKnJpZ2h0KiBzeW1ib2wgdG8gZm9jdXMgb24uIEl0J3MgYW4gaW1wb3J0YW50IG5vbi1zdGF0aWMgQVBJIGVudHJ5cG9pbnQsIHNvIGl0J3MgcHJvYmFibHkgd29ydGggcHV0dGluZyBzb21lIGZ1enppbmcgcHJlc3N1cmUgb24gdGhhdCBjb2RlIHBhdGguIFllcCwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIFRoaXMgd2FycmFudHMgY2xvc2VyIGluc3BlY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0NTQsIk91dHB1dFRva2VucyI6OTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxODo0OTozNS4wNDU2Njk3NFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk0ODYzNTg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTE9DS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInB1dF9kaXNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGRpc2sgcmVsZWFzZSBwYXRoIGluIHRoZSBibG9jayBsYXllciB0byBwcm9wZXJseSBzeW5jaHJvbml6ZSBhbmQgY2FuY2VsIHBlbmRpbmcgd29yayBiZWZvcmUgZXhpdGluZyB0aGUgbXVsdGlxdWV1ZSB3aGVuIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0IG5vdCBhZGRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgYmxvY2sgbGF5ZXIgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgcHJvYmUgZmFpbHVyZXMgb3IgZWFybHkgdGVhcmRvd24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxPQ0tcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwdXRfZGlza1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkaXNrIHJlbGVhc2UgcGF0aCBpbiB0aGUgYmxvY2sgbGF5ZXIgdG8gcHJvcGVybHkgc3luY2hyb25pemUgYW5kIGNhbmNlbCBwZW5kaW5nIHdvcmsgYmVmb3JlIGV4aXRpbmcgdGhlIG11bHRpcXVldWUgd2hlbiBhIGRpc2sgaXMgYWxsb2NhdGVkIGJ1dCBub3QgYWRkZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGJsb2NrIGxheWVyIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIHByb2JlIGZhaWx1cmVzIG9yIGVhcmx5IHRlYXJkb3duLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowk2w2f[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-28 18:27:53 +0000 UTC FinishedAt: 2026-07-28 18:49:36 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "923b1b5a3a5cc642172d8cf8c6097ad1169b6217", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLOCK" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "923b1b5a3a5cc642172d8cf8c6097ad1169b6217", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "BLOCK" ], "series_id": "7ab34b93-8fcf-4250-9da0-fd1e8551f421" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "put_disk" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE4OjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0JMT0NLJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7cHV0X2Rpc2smIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGRpc2sgcmVsZWFzZSBwYXRoIGluIHRoZSBibG9jayBsYXllciB0byBwcm9wZXJseSBzeW5jaHJvbml6ZSBhbmQgY2FuY2VsIHBlbmRpbmcgd29yayBiZWZvcmUgZXhpdGluZyB0aGUgbXVsdGlxdWV1ZSB3aGVuIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0IG5vdCBhZGRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgYmxvY2sgbGF5ZXIgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgcHJvYmUgZmFpbHVyZXMgb3IgZWFybHkgdGVhcmRvd24uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBlZTkxNzgyMTc4NWM3YzA4OWE4NTZkNTRlOTk3NTQ0Y2Y3YjZiZWE1XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMTg6NDk6MDcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYmxvY2svZ2VuaGQuYyBiL2Jsb2NrL2dlbmhkLmNcbmluZGV4IGRmMmMzYzY5YjQ2N2QuLmU4Y2UwY2FiZjM5MmMgMTAwNjQ0XG4tLS0gYS9ibG9jay9nZW5oZC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9ibG9jay9nZW5oZC5jXG5AQCAtMTI4MSwxNCAmIzQzOzEyODEsMTggQEAgc3RhdGljIHZvaWQgZGlza19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbiBcdC8qXG4gXHQgKiBUbyB1bmRvIHRoZSBhbGwgaW5pdGlhbGl6YXRpb24gZnJvbSBibGtfbXFfaW5pdF9hbGxvY2F0ZWRfcXVldWUgaW5cbiBcdCAqIGNhc2Ugb2YgYSBwcm9iZSBmYWlsdXJlIHdoZXJlIGFkZF9kaXNrIGlzIG5ldmVyIGNhbGxlZCB3ZSBoYXZlIHRvXG4tXHQgKiBjYWxsIGJsa19tcV9leGl0X3F1ZXVlIGhlcmUuIFdlIGNhbiYjMzk7dCBkbyB0aGlzIGZvciB0aGUgbW9yZSBjb21tb25cbi1cdCAqIHRlYXJkb3duIGNhc2UgKHlldCkgYXMgdGhlIHRhZ3NldCBjYW4gYmUgZ29uZSBieSB0aGUgdGltZSB0aGUgZGlza1xuLVx0ICogaXMgcmVsZWFzZWQgb25jZSBpdCB3YXMgYWRkZWQuXG4mIzQzO1x0ICogY2FsbCBibGtfbXFfZXhpdF9xdWV1ZSBoZXJlLCBhZnRlciBzdG9wcGluZyB0aGUgdGltZXIgYW5kIHdvcmsgaXRlbXNcbiYjNDM7XHQgKiB0aGF0IEkvTyBpc3N1ZWQgYmVmb3JlIGFkZF9kaXNrIG1heSBoYXZlIGxlZnQgcGVuZGluZy4gIFdlIGNhbiYjMzk7dCBkb1xuJiM0MztcdCAqIHRoaXMgZm9yIHRoZSBtb3JlIGNvbW1vbiB0ZWFyZG93biBjYXNlICh5ZXQpIGFzIHRoZSB0YWdzZXQgY2FuIGJlXG4mIzQzO1x0ICogZ29uZSBieSB0aGUgdGltZSB0aGUgZGlzayBpcyByZWxlYXNlZCBvbmNlIGl0IHdhcyBhZGRlZC5cbiBcdCAqL1xuIFx0aWYgKHF1ZXVlX2lzX21xKGRpc2stXHUwMDNlcXVldWUpIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHRlc3RfYml0KEdEX09XTlNfUVVFVUUsIFx1MDAyNmRpc2stXHUwMDNlc3RhdGUpIFx1MDAyNlx1MDAyNlxuLVx0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXHUwMDI2ZGlzay1cdTAwM2VzdGF0ZSkpXG4mIzQzO1x0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXHUwMDI2ZGlzay1cdTAwM2VzdGF0ZSkpIHtcbiYjNDM7XHRcdGJsa19zeW5jX3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO1xuJiM0MztcdFx0YmxrX21xX2NhbmNlbF93b3JrX3N5bmMoZGlzay1cdTAwM2VxdWV1ZSk7XG4gXHRcdGJsa19tcV9leGl0X3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO1xuJiM0MztcdH1cbiBcbiBcdGJsa2NnX2V4aXRfZGlzayhkaXNrKTtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwdXRfZGlzayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGlzayByZWxlYXNlIHBhdGggaW4gdGhlIGJsb2NrIGxheWVyIHRvIHByb3Blcmx5IHN5bmNocm9uaXplIGFuZCBjYW5jZWwgcGVuZGluZyB3b3JrIGJlZm9yZSBleGl0aW5nIHRoZSBtdWx0aXF1ZXVlIHdoZW4gYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgbm90IGFkZGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBibG9jayBsYXllciBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBwcm9iZSBmYWlsdXJlcyBvciBlYXJseSB0ZWFyZG93bi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGVlOTE3ODIxNzg1YzdjMDg5YTg1NmQ1NGU5OTc1NDRjZjdiNmJlYTUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCAyOCAxODo0OTowNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2Jsb2NrL2dlbmhkLmMgYi9ibG9jay9nZW5oZC5jCmluZGV4IGRmMmMzYzY5YjQ2N2QuLmU4Y2UwY2FiZjM5MmMgMTAwNjQ0Ci0tLSBhL2Jsb2NrL2dlbmhkLmMKJiM0MzsmIzQzOyYjNDM7IGIvYmxvY2svZ2VuaGQuYwpAQCAtMTI4MSwxNCAmIzQzOzEyODEsMTggQEAgc3RhdGljIHZvaWQgZGlza19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldikKIAkvKgogCSAqIFRvIHVuZG8gdGhlIGFsbCBpbml0aWFsaXphdGlvbiBmcm9tIGJsa19tcV9pbml0X2FsbG9jYXRlZF9xdWV1ZSBpbgogCSAqIGNhc2Ugb2YgYSBwcm9iZSBmYWlsdXJlIHdoZXJlIGFkZF9kaXNrIGlzIG5ldmVyIGNhbGxlZCB3ZSBoYXZlIHRvCi0JICogY2FsbCBibGtfbXFfZXhpdF9xdWV1ZSBoZXJlLiBXZSBjYW4mIzM5O3QgZG8gdGhpcyBmb3IgdGhlIG1vcmUgY29tbW9uCi0JICogdGVhcmRvd24gY2FzZSAoeWV0KSBhcyB0aGUgdGFnc2V0IGNhbiBiZSBnb25lIGJ5IHRoZSB0aW1lIHRoZSBkaXNrCi0JICogaXMgcmVsZWFzZWQgb25jZSBpdCB3YXMgYWRkZWQuCiYjNDM7CSAqIGNhbGwgYmxrX21xX2V4aXRfcXVldWUgaGVyZSwgYWZ0ZXIgc3RvcHBpbmcgdGhlIHRpbWVyIGFuZCB3b3JrIGl0ZW1zCiYjNDM7CSAqIHRoYXQgSS9PIGlzc3VlZCBiZWZvcmUgYWRkX2Rpc2sgbWF5IGhhdmUgbGVmdCBwZW5kaW5nLiAgV2UgY2FuJiMzOTt0IGRvCiYjNDM7CSAqIHRoaXMgZm9yIHRoZSBtb3JlIGNvbW1vbiB0ZWFyZG93biBjYXNlICh5ZXQpIGFzIHRoZSB0YWdzZXQgY2FuIGJlCiYjNDM7CSAqIGdvbmUgYnkgdGhlIHRpbWUgdGhlIGRpc2sgaXMgcmVsZWFzZWQgb25jZSBpdCB3YXMgYWRkZWQuCiAJICovCiAJaWYgKHF1ZXVlX2lzX21xKGRpc2stJmd0O3F1ZXVlKSAmYW1wOyZhbXA7CiAJICAgIHRlc3RfYml0KEdEX09XTlNfUVVFVUUsICZhbXA7ZGlzay0mZ3Q7c3RhdGUpICZhbXA7JmFtcDsKLQkgICAgIXRlc3RfYml0KEdEX0FEREVELCAmYW1wO2Rpc2stJmd0O3N0YXRlKSkKJiM0MzsJICAgICF0ZXN0X2JpdChHRF9BRERFRCwgJmFtcDtkaXNrLSZndDtzdGF0ZSkpIHsKJiM0MzsJCWJsa19zeW5jX3F1ZXVlKGRpc2stJmd0O3F1ZXVlKTsKJiM0MzsJCWJsa19tcV9jYW5jZWxfd29ya19zeW5jKGRpc2stJmd0O3F1ZXVlKTsKIAkJYmxrX21xX2V4aXRfcXVldWUoZGlzay0mZ3Q7cXVldWUpOwomIzQzOwl9CiAKIAlibGtjZ19leGl0X2Rpc2soZGlzayk7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3MAoJCQkJCQkJb3V0cHV0OiAyOQoJCQkJCQkJdGhvdWdodHM6IDE3NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBCbG9jayBMYXllciBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBpbiBgYmxvY2svZ2VuaGQuY2AsIHNwZWNpZmljYWxseSB0aGUgYGRpc2tfcmVsZWFzZSgpYCBmdW5jdGlvbi4gSXQgc2VlbXMgdGhleSYjMzk7dmUgYWRkZWQgYGJsa19zeW5jX3F1ZXVlKGRpc2stJmd0O3F1ZXVlKTtgIGFuZCBgYmxrX21xX2NhbmNlbF93b3JrX3N5bmMoZGlzay0mZ3Q7cXVldWUpO2AgYmVmb3JlIHRoZSBleGlzdGluZyBgYmxrX21xX2V4aXRfcXVldWUoZGlzay0mZ3Q7cXVldWUpO2AuIFRoZSBjb25kaXRpb25hbCBpcyBpbnRlcmVzdGluZzogaXQmIzM5O3Mgb25seSB0cmlnZ2VyZWQgaWYgYCF0ZXN0X2JpdChHRF9BRERFRCwgJmFtcDtkaXNrLSZndDtzdGF0ZSlgLiBUaGF0IHRlbGxzIG1lIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBibG9jayBsYXllciBkaXNrIHJlbGVhc2UgcGF0aCBtb2RpZmljYXRpb24sIGRlYWxpbmcgd2l0aCBjYXNlcyB3aGVyZSBhIGRpc2sgaXMgYWxsb2NhdGVkIGJ1dCAqbm90KiBzdWNjZXNzZnVsbHkgYWRkZWQsIG9yIHBvc3NpYmx5IGlmIGEgcHJvYmUgZmFpbHMuIFRoaXMgaXMgcHJlY2lzZWx5IHRoZSBraW5kIG9mIHRoaW5nIHRoYXQmIzM5O3MgcmlwZSBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBjb25maWcgb3B0aW9ucyBhcmUgcmVsZXZhbnQgdG8gdGhpcyBjb2RlIHBhdGguIExldCYjMzk7cyBzZWUuLi4gYW5kIEkgbmVlZCB0byBob25lIGluIG9uIHRoZSBpbXBvcnRhbnQgc3ltYm9scy4gQWxyaWdodCwgYGRpc2tfcmVsZWFzZWAgaXMgdGhlIGtleS4gV2FpdCBhIHNlY29uZC4uLiBpdCYjMzk7cyBzdGF0aWMuIE9rYXksIGxldCBtZSBtYWtlIHN1cmUgaXQgaXMgaW4gYGJsb2NrL2dlbmhkLmNgLi4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGlza19yZWxlYXNlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YmxvY2svZ2VuaGQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtibG9jay9nZW5oZC5jPTEyNDc9c3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmRpc2tfYXR0cl9ncm91cHNbXSA9IHtcbi0tXG5ibG9jay9nZW5oZC5jLTEyNTgtLyoqXG5ibG9jay9nZW5oZC5jOjEyNTk6ICogZGlza19yZWxlYXNlIC0gcmVsZWFzZXMgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMgb2YgdGhlIGdlbmRpc2tcbmJsb2NrL2dlbmhkLmMtMTI2MC0gKiBAZGV2OiB0aGUgZGV2aWNlIHJlcHJlc2VudGluZyB0aGlzIGRpc2tcbi0tXG5ibG9jay9nZW5oZC5jLTEyNzEtICovXG5ibG9jay9nZW5oZC5jOjEyNzI6c3RhdGljIHZvaWQgZGlza19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbmJsb2NrL2dlbmhkLmMtMTI3My17XG4tLVxuYmxvY2svZ2VuaGQuYy0xMzAwLVxuYmxvY2svZ2VuaGQuYzoxMzAxOlx0ZGlza19yZWxlYXNlX2V2ZW50cyhkaXNrKTtcbmJsb2NrL2dlbmhkLmMtMTMwMi1cdGtmcmVlKGRpc2stXHUwMDNlcmFuZG9tKTtcbmJsb2NrL2dlbmhkLmM6MTMwMzpcdGRpc2tfcmVsZWFzZV96b25lX3Jlc291cmNlcyhkaXNrKTtcbmJsb2NrL2dlbmhkLmMtMTMwNC1cdHhhX2Rlc3Ryb3koXHUwMDI2ZGlzay1cdTAwM2VwYXJ0X3RibCk7XG4tLVxuYmxvY2svZ2VuaGQuYz0xMzM4PWNvbnN0IHN0cnVjdCBkZXZpY2VfdHlwZSBkaXNrX3R5cGUgPSB7XG4tLVxuYmxvY2svZ2VuaGQuYy0xMzQwLVx0Lmdyb3Vwc1x0XHQ9IGRpc2tfYXR0cl9ncm91cHMsXG5ibG9jay9nZW5oZC5jOjEzNDE6XHQucmVsZWFzZVx0PSBkaXNrX3JlbGVhc2UsXG5ibG9jay9nZW5oZC5jLTEzNDItXHQuZGV2bm9kZVx0PSBibG9ja19kZXZub2RlLFxuLS1cbmJsb2NrL2dlbmhkLmM9MTUzMT1FWFBPUlRfU1lNQk9MKF9fYmxrX2FsbG9jX2Rpc2spO1xuLS1cbmJsb2NrL2dlbmhkLmMtMTUzNy0gKiBUaGlzIGRlY3JlbWVudHMgdGhlIHJlZmNvdW50IGZvciB0aGUgc3RydWN0IGdlbmRpc2suIFdoZW4gdGhpcyByZWFjaGVzIDBcbmJsb2NrL2dlbmhkLmM6MTUzODogKiB3ZSYjMzk7bGwgaGF2ZSBkaXNrX3JlbGVhc2UoKSBjYWxsZWQuXG5ibG9jay9nZW5oZC5jLTE1MzktICpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTY5CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHBlcnNvbmFsIHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipOYXZpZ2F0aW5nIERpc2sgUmVsZWFzZSBMb2dpYyoqCgpSaWdodCwgc28gSSYjMzk7bSBmb2N1c2luZyBvbiBgZGlza19yZWxlYXNlYCBoZXJlLiBJdCYjMzk7cyBkZWZpbmVkIGFzIGEgc3RhdGljIGZ1bmN0aW9uLCBidXQgaXRzIHB1cnBvc2UgaXMgYWN0dWFsbHkgdGhlIGAucmVsZWFzZWAgY2FsbGJhY2sgZnVuY3Rpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBgZGlza190eXBlYCBzdHJ1Y3R1cmUsIGlzbiYjMzk7dCBpdD8gU28sIGl0IHNlZW1zIGxpa2UgYGRpc2tfcmVsZWFzZWAgaXMgdGhlIGNsZWFudXAgZnVuY3Rpb24gdGhhdCBnZXRzIGNhbGxlZCB3aGVuIGEgZGlzayBpcyBubyBsb25nZXIgbmVlZGVkLiBNYWtlcyBzZW5zZS4gQnV0IHRoYXQgYnJpbmdzIHVwIGEgY29ubmVjdGVkIHRob3VnaHQgdGhhdCBhbHNvIHJlbGF0ZXMgdG8gZGlzayBtYW5hZ2VtZW50LiBXaGF0IGFib3V0IGBwdXRfZGlza2A/IEhvdyBkb2VzIGBwdXRfZGlza2AgZml0IGludG8gdGhpcyBjbGVhbnVwIHNlcXVlbmNlPyBJcyBgcHV0X2Rpc2tgIGRlcGVuZGVudCBvbiBhIHN1Y2Nlc3NmdWwgYGRpc2tfcmVsZWFzZWAgb3BlcmF0aW9uPyBJIG5lZWQgdG8gdGhpbmsgdGhyb3VnaCBob3cgdGhlc2UgdHdvIGZ1bmN0aW9ucyBpbnRlcmFjdC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHJlbGVhc2luZyB0aGUgZGlzayBhbmQgcHV0dGluZyBpdCBhd2F5LiBUaGUga2V5IGlzIGluIGhvdyB0aGUga2VybmVsIG1hbmFnZXMgcmVzb3VyY2VzIGR1cmluZyBkaXNrIG9wZXJhdGlvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBkb24mIzM5O3Qgb3Zlcmxvb2sgYW55IGNvbm5lY3Rpb24gcG9pbnRzIGR1cmluZyBteSByZXZpZXcgb2YgdGhlIGRpc2sgbWFuYWdlbWVudCBmdW5jdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cHV0X2Rpc2smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtibG9jay9nZW5oZC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2Jsb2NrL2dlbmhkLmM9Nzc2PXN0YXRpYyB2b2lkIGRpc2FibGVfZWx2X3N3aXRjaChzdHJ1Y3QgcmVxdWVzdF9xdWV1ZSAqcSlcbi0tXG5ibG9jay9nZW5oZC5jLTc5Ni0gKiBUaGUgZmluYWwgcmVtb3ZhbCBvZiB0aGUgc3RydWN0IGdlbmRpc2sgaGFwcGVucyB3aGVuIGl0cyByZWZjb3VudCByZWFjaGVzIDBcbmJsb2NrL2dlbmhkLmM6Nzk3OiAqIHdpdGggcHV0X2Rpc2soKSwgd2hpY2ggc2hvdWxkIGJlIGNhbGxlZCBhZnRlciBkZWxfZ2VuZGlzaygpLCBpZlxuYmxvY2svZ2VuaGQuYy03OTgtICogZGV2aWNlX2FkZF9kaXNrKCkgd2FzIHVzZWQuXG4tLVxuYmxvY2svZ2VuaGQuYz0xNTMxPUVYUE9SVF9TWU1CT0woX19ibGtfYWxsb2NfZGlzayk7XG4tLVxuYmxvY2svZ2VuaGQuYy0xNTMzLS8qKlxuYmxvY2svZ2VuaGQuYzoxNTM0OiAqIHB1dF9kaXNrIC0gZGVjcmVtZW50cyB0aGUgZ2VuZGlzayByZWZjb3VudFxuYmxvY2svZ2VuaGQuYy0xNTM1LSAqIEBkaXNrOiB0aGUgc3RydWN0IGdlbmRpc2sgdG8gZGVjcmVtZW50IHRoZSByZWZjb3VudCBmb3Jcbi0tXG5ibG9jay9nZW5oZC5jLTE1MzktICpcbmJsb2NrL2dlbmhkLmM6MTU0MDogKiBOb3RlOiBmb3IgYmxrLW1xIGRpc2sgcHV0X2Rpc2sgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGZyZWVpbmcgdGhlIHRhZ19zZXRcbmJsb2NrL2dlbmhkLmMtMTU0MS0gKiB3aGVuIGhhbmRsaW5nIHByb2JlIGVycm9ycyAodGhhdCBpcyBiZWZvcmUgYWRkX2Rpc2soKSBpcyBjYWxsZWQpLlxuLS1cbmJsb2NrL2dlbmhkLmMtMTU0NS0gKi9cbmJsb2NrL2dlbmhkLmM6MTU0Njp2b2lkIHB1dF9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKVxuYmxvY2svZ2VuaGQuYy0xNTQ3LXtcbi0tXG5ibG9jay9nZW5oZC5jLTE1NTAtfVxuYmxvY2svZ2VuaGQuYzoxNTUxOkVYUE9SVF9TWU1CT0wocHV0X2Rpc2spO1xuYmxvY2svZ2VuaGQuYy0xNTUyLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE4OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM4NDcKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAxMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEaXNrIFJlbGVhc2UgUGF0Y2gqKgoKT2theSwgc28gYHB1dF9kaXNrYCBzZWVtcyBsaWtlIHRoZSBjZW50cmFsIGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIEl0JiMzOTtzIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgZ2l2ZW4gdGhlIGNvbnRleHQuIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IGFueSBvdGhlciBrZXkgZnVuY3Rpb25zIGludm9sdmVkLiBUaGUgcGF0Y2ggc3BlY2lmaWNhbGx5IHRhcmdldHMgYGRpc2tfcmVsZWFzZWAsIHdoaWNoIGlzIGNhbGxlZCB3aGVuIHRoZSByZWZlcmVuY2UgY291bnQgb24gYSBkaXNrIG9iamVjdCBkcm9wcyB0byB6ZXJvLCB3aGljaCBtZWFucyB0aGUgZGlzayBpcyBubyBsb25nZXIgYWN0aXZlbHkgYmVpbmcgdXNlZC4gCgpUaGUgY2hhbmdlIGl0c2VsZiBpcyBjb25kaXRpb25lZCBieSBgIXRlc3RfYml0KEdEX0FEREVELCAmYW1wO2Rpc2stJmd0O3N0YXRlKWAuIFRoYXQgbWVhbnMgdGhpcyBtb2RpZmljYXRpb24gaXMgcmVsZXZhbnQgd2hlbiBgYWRkX2Rpc2tgIGlzICpub3QqIGNhbGxlZCwgb3IgcGVyaGFwcyB3aGVuIGl0IGZhaWxzLiBTbywgdGhlIHNjZW5hcmlvIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggaXMgd2hlcmUgYSBkaXNrIG9iamVjdCBpcyBiZWluZyByZWxlYXNlZCB3aXRob3V0IGV2ZXIgaGF2aW5nIGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQgYW5kIGFkZGVkIHRvIHRoZSBzeXN0ZW0gdmlhIGBhZGRfZGlza2AuIFRoZSBlbnRyeSBwb2ludCBoZXJlIGZvciB1bmRlcnN0YW5kaW5nIHRoZSB3aG9sZSBzZXF1ZW5jZSB3b3VsZCBoYXZlIHRvIGJlIGBwdXRfZGlza2AsIGFzIHRoZSBzdW1tYXJ5IHN0YXRlcy4KCk5vdywgZ2l2ZW4gdGhhdCB0aGlzIHJlbGF0ZXMgdG8gYmxvY2sgZGV2aWNlcywgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gSSByZW1lbWJlciB0aGF0IGBCTE9DS2AgaXMgYSByZXF1aXJlbWVudCBmb3IgYGJsb2NrL2dlbmhkLmNgLiBMZXQmIzM5O3MgY29uZmlybSB0aGF0IGJ5IGNoZWNraW5nIHRoZSBgYmxvY2svS2NvbmZpZ2AgZmlsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQkxPQ0smIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtibG9jay9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2Jsb2NrL0tjb25maWctNC0jXG5ibG9jay9LY29uZmlnOjU6bWVudWNvbmZpZyBCTE9DS1xuYmxvY2svS2NvbmZpZy02LSAgICAgICBib29sIFwmIzM0O0VuYWJsZSB0aGUgYmxvY2sgbGF5ZXJcJiMzNDsgaWYgRVhQRVJUXG4tLVxuYmxvY2svS2NvbmZpZz0yNz1pZiBCTE9DS1xuYmxvY2svS2NvbmZpZy0yOC1cbmJsb2NrL0tjb25maWc6Mjk6Y29uZmlnIEJMT0NLX0xFR0FDWV9BVVRPTE9BRFxuYmxvY2svS2NvbmZpZy0zMC1cdGJvb2wgXCYjMzQ7TGVnYWN5IGF1dG9sb2FkaW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5ibG9jay9LY29uZmlnPTIxND1jb25maWcgQkxLX1BNXG4tLVxuYmxvY2svS2NvbmZpZy0yMTctIyBkbyBub3QgdXNlIGluIG5ldyBjb2RlXG5ibG9jay9LY29uZmlnOjIxODpjb25maWcgQkxPQ0tfSE9MREVSX0RFUFJFQ0FURURcbmJsb2NrL0tjb25maWctMjE5LVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDE4OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0MDEKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxODYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgQmxvY2sgRGV2aWNlIENsZWFudXAgUGF0Y2gqKgoKT2theSwgc28gYEJMT0NLYCBpcyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZSDigJMgZ29vZCwgdGhhdCYjMzk7cyBteSBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBhbGwgdGhlIHJlbGF0ZWQgZnVuY3Rpb25zLCBzbyBsZXQmIzM5O3Mgc2VlIHdoYXQgZWxzZSB0aGlzIHBhdGNoIHRvdWNoZXMuIEFoLCBgYmxrX21xX2V4aXRfcXVldWVgIGlzIGNhbGxlZDsgZ290IGl0LiBBbmQgbm93IEkgc2VlIGBibGtfc3luY19xdWV1ZWAgYW5kIGBibGtfbXFfY2FuY2VsX3dvcmtfc3luY2AgaGF2ZSBiZWVuIGFkZGVkLiBCYXNlZCBvbiB0aGlzLCB0aGUgcGF0Y2ggc2VlbXMgZnVuY3Rpb25hbGx5IHNvdW5kLiBUaW1lIHRvIHRoaW5rIGFib3V0IGZ1enppbmcg4oCTIGl0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggZXhwbG9yaW5nLgoKSSYjMzk7bSBmb2N1c2VkIG9uIHRoZSBgcHV0X2Rpc2tgIHN5bWJvbC4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBpcyBgcHV0X2Rpc2tgIHRoZSAqb25seSogc3ltYm9sIHRoYXQgd2UgbmVlZCB0byBzY3J1dGluaXplPyBJIGhhdmUgdG8gYmUgc3VyZS4gSSBicmllZmx5IGNvbnNpZGVyZWQgYGJsa19jbGVhbnVwX2Rpc2tgLCBidXQgdGhhdCBkb2VzbiYjMzk7dCBzZWVtIHRvIGJlIHRoZSBjcnVjaWFsIG9uZS4gYHB1dF9kaXNrYCBpcyB0aGUgc3RhbmRhcmQgd2F5IHRvIGRyb3AgdGhlIHJlZmNvdW50LCBhZnRlciBhbGwuIFdhaXQgYSBtaW51dGUsIHdoYXQgYWJvdXQgYGRpc2tfcmVsZWFzZWA/IFRoYXQmIzM5O3MgdGhlIHJlbGVhc2UgZnVuY3Rpb24gZm9yIHRoZSBgZGlza190eXBlYC4gSXMgYHB1dF9kaXNrYCBzdGlsbCB0aGUgb25seSB3YXkgdG8gcmVsZWFzZSBpdD8gWWVzLCBhbmQgaXQgc2VlbXMgdGhhdCBgcHV0X2Rpc2tgIGNhbGxzIGBwdXRfZGV2aWNlKCZhbXA7ZGlza19kZXYpYC4KCk5vdywgSSYjMzk7bGwgY2hlY2sgdGhlIGltcGxlbWVudGF0aW9uIG9mIGBwdXRfZGlza2AgdG8gY29uZmlybSB0aGlzIHVuZGVyc3RhbmRpbmcgYW5kIGVuc3VyZSB0aGUgcmVmY291bnQgaGFuZGxpbmcgaXMgY29ycmVjdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dm9pZCBwdXRfZGlzayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2Jsb2NrL2dlbmhkLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YmxvY2svZ2VuaGQuYz0xNTMxPUVYUE9SVF9TWU1CT0woX19ibGtfYWxsb2NfZGlzayk7XG4tLVxuYmxvY2svZ2VuaGQuYy0xNTQ1LSAqL1xuYmxvY2svZ2VuaGQuYzoxNTQ2OnZvaWQgcHV0X2Rpc2soc3RydWN0IGdlbmRpc2sgKmRpc2spXG5ibG9jay9nZW5oZC5jLTE1NDcte1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MDAyCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogMTgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IGNvZGU6CgoqKkRpdmluZyBpbnRvIGBwdXRfZGlza2AqKgoKT2theSwgbGV0JiMzOTtzIGdldCByaWdodCBpbnRvIGl0LiBJJiMzOTttIGZvY3VzaW5nIG9uIGBwdXRfZGlza2Agc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGJsb2NrL2dlbmhkLmNgIGZpbGUuIEkgaW1tZWRpYXRlbHkgd2FudCB0byB1bmRlcnN0YW5kIGl0cyByb2xlLiBHaXZlbiB0aGUgbmFtZSwgSSYjMzk7bSBhc3N1bWluZyBpdCYjMzk7cyBpbnZvbHZlZCBpbiwgYXQgbGVhc3QgaW4gc29tZSB3YXksIHRoZSBwcm9jZXNzIG9mIGhhbmRsaW5nIGRpc2sgZGV2aWNlcy4gSSYjMzk7bSBrZWVuIHRvIGdyYXNwIGhvdyB0aGUga2VybmVsIGludGVyYWN0cyB3aXRoIHRoZSBibG9jayBkZXZpY2UgbGF5ZXIgaGVyZS4gV2hhdCBhcmUgdGhlIGtleSBwYXJhbWV0ZXJzIGl0IHRha2VzPyBXaGF0IGRhdGEgc3RydWN0dXJlcyBkb2VzIGl0IG1hbmlwdWxhdGU/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByZWxhdGlvbnNoaXAgdG8gdGhlIGJyb2FkZXIgZGlzayBtYW5hZ2VtZW50IGluZnJhc3RydWN0dXJlLiBXaGF0IGFyZSB0aGUgY2FsbGluZyBjb250ZXh0cyBvZiB0aGlzIGZ1bmN0aW9uPyBLbm93aW5nIHdobyBjYWxscyBpdCB3aWxsIHRlbGwgbWUgaXRzIHBsYWNlIGluIHRoZSBsaWZlY3ljbGUgb2YgdGhlIGRpc2suIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdXNlIG9mIHRoaXMgaW4gdmFyaW91cyBzaXR1YXRpb25zLiBGcm9tIGFuIGV4cGVydCBwZXJzcGVjdGl2ZSwgSSYjMzk7bSBhbHJlYWR5IGZvcm11bGF0aW5nIHF1ZXN0aW9ucyBhYm91dCBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucywgY29uY3VycmVuY3kgY29uc2lkZXJhdGlvbnMsIGFuZCBlcnJvciBoYW5kbGluZyBzdHJhdGVnaWVzIHRoYXQgbWlnaHQgYmUgaW1wbGVtZW50ZWQgb3IgY291bGQgYmUgaW1wcm92ZWQuIEkmIzM5O20gbG9va2luZyBhdCBob3cgaXQgaW50ZWdyYXRlcyB3aXRoIHRoZSB2aXJ0dWFsIGJsb2NrIGRldmljZSwgbWF5YmUgd2l0aCBwYXJ0aXRpb25zIGFuZCBhbnkgY2FjaGluZyBtZWNoYW5pc20uIE15IGltbWVkaWF0ZSBxdWVzdGlvbnMgYXJlIHdoYXQgaXMgdGhlIHB1cnBvc2Ugb2YgdGhlIGRhdGE/IFdoYXQgaXMgdGhlIGZ1bmN0aW9uIHRyeWluZyB0byBhY2NvbXBsaXNoPwoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2Jsb2NrL2dlbmhkLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxNTQ1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzE1NDU6XHQgKi9cbjE1NDY6XHR2b2lkIHB1dF9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKVxuMTU0NzpcdHtcbjE1NDg6XHRcdGlmIChkaXNrKVxuMTU0OTpcdFx0XHRwdXRfZGV2aWNlKGRpc2tfdG9fZGV2KGRpc2spKTtcbjE1NTA6XHR9XG4xNTUxOlx0RVhQT1JUX1NZTUJPTChwdXRfZGlzayk7XG4xNTUyOlx0XG4xNTUzOlx0c3RhdGljIHZvaWQgc2V0X2Rpc2tfcm9fdWV2ZW50KHN0cnVjdCBnZW5kaXNrICpnZCwgaW50IHJvKVxuMTU1NDpcdHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMTg6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ1NAoJCQkJCQkJb3V0cHV0OiA5NAoJCQkJCQkJdGhvdWdodHM6IDEzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgaXMgZGVmaW5pdGVseSBgcHV0X2Rpc2tgLiBObyBvdGhlciBjb25maWd1cmF0aW9uIHNlZW1zIGltbWVkaWF0ZWx5IHJlbGV2YW50OyBgQkxPQ0tgIGxvb2tzIGxpa2UgdGhlIHByaW1hcnkgY29udGV4dCBoZXJlLiBUaGUgcGF0Y2ggaXMgYWJvdXQgaG93IHdlIHJlbGVhc2UgYSBkaXNrIHdpdGhpbiB0aGUgYmxvY2sgbGF5ZXIsIHNwZWNpZmljYWxseSBhcm91bmQgc3luY2hyb25pemF0aW9uIGFuZCBjYW5jZWxsYXRpb24gb2YgcGVuZGluZyB3b3JrIGJlZm9yZSB3ZSBleGl0IHRoZSBtdWx0aXF1ZXVlLiBUaGlzIGlzIGNyaXRpY2FsIGJlY2F1c2UgaXQmIzM5O3MgaGFuZGxpbmcgc2NlbmFyaW9zIHdoZXJlIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0ICpuZXZlciogcHJvcGVybHkgYWRkZWQuIFByb2JlIGZhaWx1cmVzIG9yIGVhcmx5IHRlYXJkb3duIGFyZSB0aGUgbGlrZWx5IHRyaWdnZXJpbmcgZXZlbnRzLgoKTm93LCBJIG5lZWQgdG8gY29uZmlybSB0aGF0IGBwdXRfZGlza2AgaXMgaW5kZWVkIHRoZSAqcmlnaHQqIHN5bWJvbCB0byBmb2N1cyBvbi4gSXQmIzM5O3MgYW4gaW1wb3J0YW50IG5vbi1zdGF0aWMgQVBJIGVudHJ5cG9pbnQsIHNvIGl0JiMzOTtzIHByb2JhYmx5IHdvcnRoIHB1dHRpbmcgc29tZSBmdXp6aW5nIHByZXNzdXJlIG9uIHRoYXQgY29kZSBwYXRoLiBZZXAsIHNldHRpbmcgYFdvcnRoRnV6emluZ2AgdG8gYHRydWVgLiBUaGlzIHdhcnJhbnRzIGNsb3NlciBpbnNwZWN0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAxODo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwdXRfZGlzayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGlzayByZWxlYXNlIHBhdGggaW4gdGhlIGJsb2NrIGxheWVyIHRvIHByb3Blcmx5IHN5bmNocm9uaXplIGFuZCBjYW5jZWwgcGVuZGluZyB3b3JrIGJlZm9yZSBleGl0aW5nIHRoZSBtdWx0aXF1ZXVlIHdoZW4gYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgbm90IGFkZGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBibG9jayBsYXllciBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBwcm9iZSBmYWlsdXJlcyBvciBlYXJseSB0ZWFyZG93bi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7QkxPQ0smIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtwdXRfZGlzayYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGlzayByZWxlYXNlIHBhdGggaW4gdGhlIGJsb2NrIGxheWVyIHRvIHByb3Blcmx5IHN5bmNocm9uaXplIGFuZCBjYW5jZWwgcGVuZGluZyB3b3JrIGJlZm9yZSBleGl0aW5nIHRoZSBtdWx0aXF1ZXVlIHdoZW4gYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgbm90IGFkZGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBibG9jayBsYXllciBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBwcm9iZSBmYWlsdXJlcyBvciBlYXJseSB0ZWFyZG93bi4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE4OjQ5OjA4LjQ4MTMwMzIyOFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NjU5MjQ0NDU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkJMT0NLXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwicHV0X2Rpc2tcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgZGlzayByZWxlYXNlIHBhdGggaW4gdGhlIGJsb2NrIGxheWVyIHRvIHByb3Blcmx5IHN5bmNocm9uaXplIGFuZCBjYW5jZWwgcGVuZGluZyB3b3JrIGJlZm9yZSBleGl0aW5nIHRoZSBtdWx0aXF1ZXVlIHdoZW4gYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgbm90IGFkZGVkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBibG9jayBsYXllciBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIGR1cmluZyBwcm9iZSBmYWlsdXJlcyBvciBlYXJseSB0ZWFyZG93bi5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MDguNDgxMzEyOTU4WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTI4MzUzOTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlZTkxNzgyMTc4NWM3YzA4OWE4NTZkNTRlOTk3NTQ0Y2Y3YjZiZWE1XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUdWUgSnVsIDI4IDE4OjQ5OjA3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2Jsb2NrL2dlbmhkLmMgYi9ibG9jay9nZW5oZC5jXFxuaW5kZXggZGYyYzNjNjliNDY3ZC4uZThjZTBjYWJmMzkyYyAxMDA2NDRcXG4tLS0gYS9ibG9jay9nZW5oZC5jXFxuKysrIGIvYmxvY2svZ2VuaGQuY1xcbkBAIC0xMjgxLDE0ICsxMjgxLDE4IEBAIHN0YXRpYyB2b2lkIGRpc2tfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuIFxcdC8qXFxuIFxcdCAqIFRvIHVuZG8gdGhlIGFsbCBpbml0aWFsaXphdGlvbiBmcm9tIGJsa19tcV9pbml0X2FsbG9jYXRlZF9xdWV1ZSBpblxcbiBcXHQgKiBjYXNlIG9mIGEgcHJvYmUgZmFpbHVyZSB3aGVyZSBhZGRfZGlzayBpcyBuZXZlciBjYWxsZWQgd2UgaGF2ZSB0b1xcbi1cXHQgKiBjYWxsIGJsa19tcV9leGl0X3F1ZXVlIGhlcmUuIFdlIGNhbid0IGRvIHRoaXMgZm9yIHRoZSBtb3JlIGNvbW1vblxcbi1cXHQgKiB0ZWFyZG93biBjYXNlICh5ZXQpIGFzIHRoZSB0YWdzZXQgY2FuIGJlIGdvbmUgYnkgdGhlIHRpbWUgdGhlIGRpc2tcXG4tXFx0ICogaXMgcmVsZWFzZWQgb25jZSBpdCB3YXMgYWRkZWQuXFxuK1xcdCAqIGNhbGwgYmxrX21xX2V4aXRfcXVldWUgaGVyZSwgYWZ0ZXIgc3RvcHBpbmcgdGhlIHRpbWVyIGFuZCB3b3JrIGl0ZW1zXFxuK1xcdCAqIHRoYXQgSS9PIGlzc3VlZCBiZWZvcmUgYWRkX2Rpc2sgbWF5IGhhdmUgbGVmdCBwZW5kaW5nLiAgV2UgY2FuJ3QgZG9cXG4rXFx0ICogdGhpcyBmb3IgdGhlIG1vcmUgY29tbW9uIHRlYXJkb3duIGNhc2UgKHlldCkgYXMgdGhlIHRhZ3NldCBjYW4gYmVcXG4rXFx0ICogZ29uZSBieSB0aGUgdGltZSB0aGUgZGlzayBpcyByZWxlYXNlZCBvbmNlIGl0IHdhcyBhZGRlZC5cXG4gXFx0ICovXFxuIFxcdGlmIChxdWV1ZV9pc19tcShkaXNrLVxcdTAwM2VxdWV1ZSkgXFx1MDAyNlxcdTAwMjZcXG4gXFx0ICAgIHRlc3RfYml0KEdEX09XTlNfUVVFVUUsIFxcdTAwMjZkaXNrLVxcdTAwM2VzdGF0ZSkgXFx1MDAyNlxcdTAwMjZcXG4tXFx0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXFx1MDAyNmRpc2stXFx1MDAzZXN0YXRlKSlcXG4rXFx0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXFx1MDAyNmRpc2stXFx1MDAzZXN0YXRlKSkge1xcbitcXHRcXHRibGtfc3luY19xdWV1ZShkaXNrLVxcdTAwM2VxdWV1ZSk7XFxuK1xcdFxcdGJsa19tcV9jYW5jZWxfd29ya19zeW5jKGRpc2stXFx1MDAzZXF1ZXVlKTtcXG4gXFx0XFx0YmxrX21xX2V4aXRfcXVldWUoZGlzay1cXHUwMDNlcXVldWUpO1xcbitcXHR9XFxuIFxcbiBcXHRibGtjZ19leGl0X2Rpc2soZGlzayk7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxODo0OTowOC45MzUxMjg3ODdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoyNjIwNTQwODc0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTE9DS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInB1dF9kaXNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGRpc2sgcmVsZWFzZSBwYXRoIGluIHRoZSBibG9jayBsYXllciB0byBwcm9wZXJseSBzeW5jaHJvbml6ZSBhbmQgY2FuY2VsIHBlbmRpbmcgd29yayBiZWZvcmUgZXhpdGluZyB0aGUgbXVsdGlxdWV1ZSB3aGVuIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0IG5vdCBhZGRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgYmxvY2sgbGF5ZXIgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgcHJvYmUgZmFpbHVyZXMgb3IgZWFybHkgdGVhcmRvd24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGVlOTE3ODIxNzg1YzdjMDg5YTg1NmQ1NGU5OTc1NDRjZjdiNmJlYTVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAxODo0OTowNyAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2Jsb2NrL2dlbmhkLmMgYi9ibG9jay9nZW5oZC5jXG5pbmRleCBkZjJjM2M2OWI0NjdkLi5lOGNlMGNhYmYzOTJjIDEwMDY0NFxuLS0tIGEvYmxvY2svZ2VuaGQuY1xuKysrIGIvYmxvY2svZ2VuaGQuY1xuQEAgLTEyODEsMTQgKzEyODEsMTggQEAgc3RhdGljIHZvaWQgZGlza19yZWxlYXNlKHN0cnVjdCBkZXZpY2UgKmRldilcbiBcdC8qXG4gXHQgKiBUbyB1bmRvIHRoZSBhbGwgaW5pdGlhbGl6YXRpb24gZnJvbSBibGtfbXFfaW5pdF9hbGxvY2F0ZWRfcXVldWUgaW5cbiBcdCAqIGNhc2Ugb2YgYSBwcm9iZSBmYWlsdXJlIHdoZXJlIGFkZF9kaXNrIGlzIG5ldmVyIGNhbGxlZCB3ZSBoYXZlIHRvXG4tXHQgKiBjYWxsIGJsa19tcV9leGl0X3F1ZXVlIGhlcmUuIFdlIGNhbid0IGRvIHRoaXMgZm9yIHRoZSBtb3JlIGNvbW1vblxuLVx0ICogdGVhcmRvd24gY2FzZSAoeWV0KSBhcyB0aGUgdGFnc2V0IGNhbiBiZSBnb25lIGJ5IHRoZSB0aW1lIHRoZSBkaXNrXG4tXHQgKiBpcyByZWxlYXNlZCBvbmNlIGl0IHdhcyBhZGRlZC5cbitcdCAqIGNhbGwgYmxrX21xX2V4aXRfcXVldWUgaGVyZSwgYWZ0ZXIgc3RvcHBpbmcgdGhlIHRpbWVyIGFuZCB3b3JrIGl0ZW1zXG4rXHQgKiB0aGF0IEkvTyBpc3N1ZWQgYmVmb3JlIGFkZF9kaXNrIG1heSBoYXZlIGxlZnQgcGVuZGluZy4gIFdlIGNhbid0IGRvXG4rXHQgKiB0aGlzIGZvciB0aGUgbW9yZSBjb21tb24gdGVhcmRvd24gY2FzZSAoeWV0KSBhcyB0aGUgdGFnc2V0IGNhbiBiZVxuK1x0ICogZ29uZSBieSB0aGUgdGltZSB0aGUgZGlzayBpcyByZWxlYXNlZCBvbmNlIGl0IHdhcyBhZGRlZC5cbiBcdCAqL1xuIFx0aWYgKHF1ZXVlX2lzX21xKGRpc2stXHUwMDNlcXVldWUpIFx1MDAyNlx1MDAyNlxuIFx0ICAgIHRlc3RfYml0KEdEX09XTlNfUVVFVUUsIFx1MDAyNmRpc2stXHUwMDNlc3RhdGUpIFx1MDAyNlx1MDAyNlxuLVx0ICAgICF0ZXN0X2JpdChHRF9BRERFRCwgXHUwMDI2ZGlzay1cdTAwM2VzdGF0ZSkpXG4rXHQgICAgIXRlc3RfYml0KEdEX0FEREVELCBcdTAwMjZkaXNrLVx1MDAzZXN0YXRlKSkge1xuK1x0XHRibGtfc3luY19xdWV1ZShkaXNrLVx1MDAzZXF1ZXVlKTtcbitcdFx0YmxrX21xX2NhbmNlbF93b3JrX3N5bmMoZGlzay1cdTAwM2VxdWV1ZSk7XG4gXHRcdGJsa19tcV9leGl0X3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO1xuK1x0fVxuIFxuIFx0YmxrY2dfZXhpdF9kaXNrKGRpc2spO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MDguOTM1MTMxMTM3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQyNzg0NDk2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBCbG9jayBMYXllciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggaW4gYGJsb2NrL2dlbmhkLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBkaXNrX3JlbGVhc2UoKWAgZnVuY3Rpb24uIEl0IHNlZW1zIHRoZXkndmUgYWRkZWQgYGJsa19zeW5jX3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO2AgYW5kIGBibGtfbXFfY2FuY2VsX3dvcmtfc3luYyhkaXNrLVx1MDAzZXF1ZXVlKTtgIGJlZm9yZSB0aGUgZXhpc3RpbmcgYGJsa19tcV9leGl0X3F1ZXVlKGRpc2stXHUwMDNlcXVldWUpO2AuIFRoZSBjb25kaXRpb25hbCBpcyBpbnRlcmVzdGluZzogaXQncyBvbmx5IHRyaWdnZXJlZCBpZiBgIXRlc3RfYml0KEdEX0FEREVELCBcdTAwMjZkaXNrLVx1MDAzZXN0YXRlKWAuIFRoYXQgdGVsbHMgbWUgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGJsb2NrIGxheWVyIGRpc2sgcmVsZWFzZSBwYXRoIG1vZGlmaWNhdGlvbiwgZGVhbGluZyB3aXRoIGNhc2VzIHdoZXJlIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0ICpub3QqIHN1Y2Nlc3NmdWxseSBhZGRlZCwgb3IgcG9zc2libHkgaWYgYSBwcm9iZSBmYWlscy4gVGhpcyBpcyBwcmVjaXNlbHkgdGhlIGtpbmQgb2YgdGhpbmcgdGhhdCdzIHJpcGUgZm9yIGZ1enppbmcuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgY29uZmlnIG9wdGlvbnMgYXJlIHJlbGV2YW50IHRvIHRoaXMgY29kZSBwYXRoLiBMZXQncyBzZWUuLi4gYW5kIEkgbmVlZCB0byBob25lIGluIG9uIHRoZSBpbXBvcnRhbnQgc3ltYm9scy4gQWxyaWdodCwgYGRpc2tfcmVsZWFzZWAgaXMgdGhlIGtleS4gV2FpdCBhIHNlY29uZC4uLiBpdCdzIHN0YXRpYy4gT2theSwgbGV0IG1lIG1ha2Ugc3VyZSBpdCBpcyBpbiBgYmxvY2svZ2VuaGQuY2AuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI3MCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE4OjQ5OjEzLjM2Mjk5MTU4N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzMwNDgxOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkaXNrX3JlbGVhc2VcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiYmxvY2svZ2VuaGQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJibG9jay9nZW5oZC5jPTEyNDc9c3RhdGljIGNvbnN0IHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgKmRpc2tfYXR0cl9ncm91cHNbXSA9IHtcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTI1OC0vKipcXG5ibG9jay9nZW5oZC5jOjEyNTk6ICogZGlza19yZWxlYXNlIC0gcmVsZWFzZXMgYWxsIGFsbG9jYXRlZCByZXNvdXJjZXMgb2YgdGhlIGdlbmRpc2tcXG5ibG9jay9nZW5oZC5jLTEyNjAtICogQGRldjogdGhlIGRldmljZSByZXByZXNlbnRpbmcgdGhpcyBkaXNrXFxuLS1cXG5ibG9jay9nZW5oZC5jLTEyNzEtICovXFxuYmxvY2svZ2VuaGQuYzoxMjcyOnN0YXRpYyB2b2lkIGRpc2tfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuYmxvY2svZ2VuaGQuYy0xMjczLXtcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTMwMC1cXG5ibG9jay9nZW5oZC5jOjEzMDE6XFx0ZGlza19yZWxlYXNlX2V2ZW50cyhkaXNrKTtcXG5ibG9jay9nZW5oZC5jLTEzMDItXFx0a2ZyZWUoZGlzay1cXHUwMDNlcmFuZG9tKTtcXG5ibG9jay9nZW5oZC5jOjEzMDM6XFx0ZGlza19yZWxlYXNlX3pvbmVfcmVzb3VyY2VzKGRpc2spO1xcbmJsb2NrL2dlbmhkLmMtMTMwNC1cXHR4YV9kZXN0cm95KFxcdTAwMjZkaXNrLVxcdTAwM2VwYXJ0X3RibCk7XFxuLS1cXG5ibG9jay9nZW5oZC5jPTEzMzg9Y29uc3Qgc3RydWN0IGRldmljZV90eXBlIGRpc2tfdHlwZSA9IHtcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTM0MC1cXHQuZ3JvdXBzXFx0XFx0PSBkaXNrX2F0dHJfZ3JvdXBzLFxcbmJsb2NrL2dlbmhkLmM6MTM0MTpcXHQucmVsZWFzZVxcdD0gZGlza19yZWxlYXNlLFxcbmJsb2NrL2dlbmhkLmMtMTM0Mi1cXHQuZGV2bm9kZVxcdD0gYmxvY2tfZGV2bm9kZSxcXG4tLVxcbmJsb2NrL2dlbmhkLmM9MTUzMT1FWFBPUlRfU1lNQk9MKF9fYmxrX2FsbG9jX2Rpc2spO1xcbi0tXFxuYmxvY2svZ2VuaGQuYy0xNTM3LSAqIFRoaXMgZGVjcmVtZW50cyB0aGUgcmVmY291bnQgZm9yIHRoZSBzdHJ1Y3QgZ2VuZGlzay4gV2hlbiB0aGlzIHJlYWNoZXMgMFxcbmJsb2NrL2dlbmhkLmM6MTUzODogKiB3ZSdsbCBoYXZlIGRpc2tfcmVsZWFzZSgpIGNhbGxlZC5cXG5ibG9jay9nZW5oZC5jLTE1MzktICpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MTMuNDE2MzA5NzQ0WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzUzMTU0MDcyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBwZXJzb25hbCB0aG91Z2h0IHByb2Nlc3MsIGFzIHJlcXVlc3RlZDpcblxuKipOYXZpZ2F0aW5nIERpc2sgUmVsZWFzZSBMb2dpYyoqXG5cblJpZ2h0LCBzbyBJJ20gZm9jdXNpbmcgb24gYGRpc2tfcmVsZWFzZWAgaGVyZS4gSXQncyBkZWZpbmVkIGFzIGEgc3RhdGljIGZ1bmN0aW9uLCBidXQgaXRzIHB1cnBvc2UgaXMgYWN0dWFsbHkgdGhlIGAucmVsZWFzZWAgY2FsbGJhY2sgZnVuY3Rpb24gYXNzb2NpYXRlZCB3aXRoIHRoZSBgZGlza190eXBlYCBzdHJ1Y3R1cmUsIGlzbid0IGl0PyBTbywgaXQgc2VlbXMgbGlrZSBgZGlza19yZWxlYXNlYCBpcyB0aGUgY2xlYW51cCBmdW5jdGlvbiB0aGF0IGdldHMgY2FsbGVkIHdoZW4gYSBkaXNrIGlzIG5vIGxvbmdlciBuZWVkZWQuIE1ha2VzIHNlbnNlLiBCdXQgdGhhdCBicmluZ3MgdXAgYSBjb25uZWN0ZWQgdGhvdWdodCB0aGF0IGFsc28gcmVsYXRlcyB0byBkaXNrIG1hbmFnZW1lbnQuIFdoYXQgYWJvdXQgYHB1dF9kaXNrYD8gSG93IGRvZXMgYHB1dF9kaXNrYCBmaXQgaW50byB0aGlzIGNsZWFudXAgc2VxdWVuY2U/IElzIGBwdXRfZGlza2AgZGVwZW5kZW50IG9uIGEgc3VjY2Vzc2Z1bCBgZGlza19yZWxlYXNlYCBvcGVyYXRpb24/IEkgbmVlZCB0byB0aGluayB0aHJvdWdoIGhvdyB0aGVzZSB0d28gZnVuY3Rpb25zIGludGVyYWN0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gcmVsZWFzaW5nIHRoZSBkaXNrIGFuZCBwdXR0aW5nIGl0IGF3YXkuIFRoZSBrZXkgaXMgaW4gaG93IHRoZSBrZXJuZWwgbWFuYWdlcyByZXNvdXJjZXMgZHVyaW5nIGRpc2sgb3BlcmF0aW9ucy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbid0IG92ZXJsb29rIGFueSBjb25uZWN0aW9uIHBvaW50cyBkdXJpbmcgbXkgcmV2aWV3IG9mIHRoZSBkaXNrIG1hbmFnZW1lbnQgZnVuY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTY5LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MTYuOTQ3ODU0NjU3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUxODkwODI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInB1dF9kaXNrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImJsb2NrL2dlbmhkLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYmxvY2svZ2VuaGQuYz03NzY9c3RhdGljIHZvaWQgZGlzYWJsZV9lbHZfc3dpdGNoKHN0cnVjdCByZXF1ZXN0X3F1ZXVlICpxKVxcbi0tXFxuYmxvY2svZ2VuaGQuYy03OTYtICogVGhlIGZpbmFsIHJlbW92YWwgb2YgdGhlIHN0cnVjdCBnZW5kaXNrIGhhcHBlbnMgd2hlbiBpdHMgcmVmY291bnQgcmVhY2hlcyAwXFxuYmxvY2svZ2VuaGQuYzo3OTc6ICogd2l0aCBwdXRfZGlzaygpLCB3aGljaCBzaG91bGQgYmUgY2FsbGVkIGFmdGVyIGRlbF9nZW5kaXNrKCksIGlmXFxuYmxvY2svZ2VuaGQuYy03OTgtICogZGV2aWNlX2FkZF9kaXNrKCkgd2FzIHVzZWQuXFxuLS1cXG5ibG9jay9nZW5oZC5jPTE1MzE9RVhQT1JUX1NZTUJPTChfX2Jsa19hbGxvY19kaXNrKTtcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTUzMy0vKipcXG5ibG9jay9nZW5oZC5jOjE1MzQ6ICogcHV0X2Rpc2sgLSBkZWNyZW1lbnRzIHRoZSBnZW5kaXNrIHJlZmNvdW50XFxuYmxvY2svZ2VuaGQuYy0xNTM1LSAqIEBkaXNrOiB0aGUgc3RydWN0IGdlbmRpc2sgdG8gZGVjcmVtZW50IHRoZSByZWZjb3VudCBmb3JcXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTUzOS0gKlxcbmJsb2NrL2dlbmhkLmM6MTU0MDogKiBOb3RlOiBmb3IgYmxrLW1xIGRpc2sgcHV0X2Rpc2sgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGZyZWVpbmcgdGhlIHRhZ19zZXRcXG5ibG9jay9nZW5oZC5jLTE1NDEtICogd2hlbiBoYW5kbGluZyBwcm9iZSBlcnJvcnMgKHRoYXQgaXMgYmVmb3JlIGFkZF9kaXNrKCkgaXMgY2FsbGVkKS5cXG4tLVxcbmJsb2NrL2dlbmhkLmMtMTU0NS0gKi9cXG5ibG9jay9nZW5oZC5jOjE1NDY6dm9pZCBwdXRfZGlzayhzdHJ1Y3QgZ2VuZGlzayAqZGlzaylcXG5ibG9jay9nZW5oZC5jLTE1NDcte1xcbi0tXFxuYmxvY2svZ2VuaGQuYy0xNTUwLX1cXG5ibG9jay9nZW5oZC5jOjE1NTE6RVhQT1JUX1NZTUJPTChwdXRfZGlzayk7XFxuYmxvY2svZ2VuaGQuYy0xNTUyLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxODo0OToxNi45OTk3NTgzNDVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MTU1MDUxNjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRGlzayBSZWxlYXNlIFBhdGNoKipcblxuT2theSwgc28gYHB1dF9kaXNrYCBzZWVtcyBsaWtlIHRoZSBjZW50cmFsIGZ1bmN0aW9uIHRvIGZvY3VzIG9uIGhlcmUuIEl0J3MgYSBzb2xpZCBzdGFydGluZyBwb2ludCBnaXZlbiB0aGUgY29udGV4dC4gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgYW55IG90aGVyIGtleSBmdW5jdGlvbnMgaW52b2x2ZWQuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgdGFyZ2V0cyBgZGlza19yZWxlYXNlYCwgd2hpY2ggaXMgY2FsbGVkIHdoZW4gdGhlIHJlZmVyZW5jZSBjb3VudCBvbiBhIGRpc2sgb2JqZWN0IGRyb3BzIHRvIHplcm8sIHdoaWNoIG1lYW5zIHRoZSBkaXNrIGlzIG5vIGxvbmdlciBhY3RpdmVseSBiZWluZyB1c2VkLiBcblxuVGhlIGNoYW5nZSBpdHNlbGYgaXMgY29uZGl0aW9uZWQgYnkgYCF0ZXN0X2JpdChHRF9BRERFRCwgXHUwMDI2ZGlzay1cdTAwM2VzdGF0ZSlgLiBUaGF0IG1lYW5zIHRoaXMgbW9kaWZpY2F0aW9uIGlzIHJlbGV2YW50IHdoZW4gYGFkZF9kaXNrYCBpcyAqbm90KiBjYWxsZWQsIG9yIHBlcmhhcHMgd2hlbiBpdCBmYWlscy4gU28sIHRoZSBzY2VuYXJpbyB3ZSdyZSBkZWFsaW5nIHdpdGggaXMgd2hlcmUgYSBkaXNrIG9iamVjdCBpcyBiZWluZyByZWxlYXNlZCB3aXRob3V0IGV2ZXIgaGF2aW5nIGJlZW4gZnVsbHkgaW5pdGlhbGl6ZWQgYW5kIGFkZGVkIHRvIHRoZSBzeXN0ZW0gdmlhIGBhZGRfZGlza2AuIFRoZSBlbnRyeSBwb2ludCBoZXJlIGZvciB1bmRlcnN0YW5kaW5nIHRoZSB3aG9sZSBzZXF1ZW5jZSB3b3VsZCBoYXZlIHRvIGJlIGBwdXRfZGlza2AsIGFzIHRoZSBzdW1tYXJ5IHN0YXRlcy5cblxuTm93LCBnaXZlbiB0aGF0IHRoaXMgcmVsYXRlcyB0byBibG9jayBkZXZpY2VzLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zLiBJIHJlbWVtYmVyIHRoYXQgYEJMT0NLYCBpcyBhIHJlcXVpcmVtZW50IGZvciBgYmxvY2svZ2VuaGQuY2AuIExldCdzIGNvbmZpcm0gdGhhdCBieSBjaGVja2luZyB0aGUgYGJsb2NrL0tjb25maWdgIGZpbGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4NDcsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MjEuMTU0ODEzMzA4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NjU1NzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBCTE9DS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJibG9jay9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImJsb2NrL0tjb25maWctNC0jXFxuYmxvY2svS2NvbmZpZzo1Om1lbnVjb25maWcgQkxPQ0tcXG5ibG9jay9LY29uZmlnLTYtICAgICAgIGJvb2wgXFxcIkVuYWJsZSB0aGUgYmxvY2sgbGF5ZXJcXFwiIGlmIEVYUEVSVFxcbi0tXFxuYmxvY2svS2NvbmZpZz0yNz1pZiBCTE9DS1xcbmJsb2NrL0tjb25maWctMjgtXFxuYmxvY2svS2NvbmZpZzoyOTpjb25maWcgQkxPQ0tfTEVHQUNZX0FVVE9MT0FEXFxuYmxvY2svS2NvbmZpZy0zMC1cXHRib29sIFxcXCJMZWdhY3kgYXV0b2xvYWRpbmcgc3VwcG9ydFxcXCJcXG4tLVxcbmJsb2NrL0tjb25maWc9MjE0PWNvbmZpZyBCTEtfUE1cXG4tLVxcbmJsb2NrL0tjb25maWctMjE3LSMgZG8gbm90IHVzZSBpbiBuZXcgY29kZVxcbmJsb2NrL0tjb25maWc6MjE4OmNvbmZpZyBCTE9DS19IT0xERVJfREVQUkVDQVRFRFxcbmJsb2NrL0tjb25maWctMjE5LVxcdGJvb2xcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MjEuMjA5NDc3Mzg1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTE0NDkzNTc5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBCbG9jayBEZXZpY2UgQ2xlYW51cCBQYXRjaCoqXG5cbk9rYXksIHNvIGBCTE9DS2AgaXMgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGhlcmUg4oCTIGdvb2QsIHRoYXQncyBteSBzdGFydGluZyBwb2ludC4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBhbGwgdGhlIHJlbGF0ZWQgZnVuY3Rpb25zLCBzbyBsZXQncyBzZWUgd2hhdCBlbHNlIHRoaXMgcGF0Y2ggdG91Y2hlcy4gQWgsIGBibGtfbXFfZXhpdF9xdWV1ZWAgaXMgY2FsbGVkOyBnb3QgaXQuIEFuZCBub3cgSSBzZWUgYGJsa19zeW5jX3F1ZXVlYCBhbmQgYGJsa19tcV9jYW5jZWxfd29ya19zeW5jYCBoYXZlIGJlZW4gYWRkZWQuIEJhc2VkIG9uIHRoaXMsIHRoZSBwYXRjaCBzZWVtcyBmdW5jdGlvbmFsbHkgc291bmQuIFRpbWUgdG8gdGhpbmsgYWJvdXQgZnV6emluZyDigJMgaXQncyBkZWZpbml0ZWx5IHdvcnRoIGV4cGxvcmluZy5cblxuSSdtIGZvY3VzZWQgb24gdGhlIGBwdXRfZGlza2Agc3ltYm9sLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGlzIGBwdXRfZGlza2AgdGhlICpvbmx5KiBzeW1ib2wgdGhhdCB3ZSBuZWVkIHRvIHNjcnV0aW5pemU/IEkgaGF2ZSB0byBiZSBzdXJlLiBJIGJyaWVmbHkgY29uc2lkZXJlZCBgYmxrX2NsZWFudXBfZGlza2AsIGJ1dCB0aGF0IGRvZXNuJ3Qgc2VlbSB0byBiZSB0aGUgY3J1Y2lhbCBvbmUuIGBwdXRfZGlza2AgaXMgdGhlIHN0YW5kYXJkIHdheSB0byBkcm9wIHRoZSByZWZjb3VudCwgYWZ0ZXIgYWxsLiBXYWl0IGEgbWludXRlLCB3aGF0IGFib3V0IGBkaXNrX3JlbGVhc2VgPyBUaGF0J3MgdGhlIHJlbGVhc2UgZnVuY3Rpb24gZm9yIHRoZSBgZGlza190eXBlYC4gSXMgYHB1dF9kaXNrYCBzdGlsbCB0aGUgb25seSB3YXkgdG8gcmVsZWFzZSBpdD8gWWVzLCBhbmQgaXQgc2VlbXMgdGhhdCBgcHV0X2Rpc2tgIGNhbGxzIGBwdXRfZGV2aWNlKFx1MDAyNmRpc2tfZGV2KWAuXG5cbk5vdywgSSdsbCBjaGVjayB0aGUgaW1wbGVtZW50YXRpb24gb2YgYHB1dF9kaXNrYCB0byBjb25maXJtIHRoaXMgdW5kZXJzdGFuZGluZyBhbmQgZW5zdXJlIHRoZSByZWZjb3VudCBoYW5kbGluZyBpcyBjb3JyZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NDAxLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE4OjQ5OjI2LjM1NDQxNjYyMloiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIzMTgzNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidm9pZCBwdXRfZGlza1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJibG9jay9nZW5oZC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImJsb2NrL2dlbmhkLmM9MTUzMT1FWFBPUlRfU1lNQk9MKF9fYmxrX2FsbG9jX2Rpc2spO1xcbi0tXFxuYmxvY2svZ2VuaGQuYy0xNTQ1LSAqL1xcbmJsb2NrL2dlbmhkLmM6MTU0Njp2b2lkIHB1dF9kaXNrKHN0cnVjdCBnZW5kaXNrICpkaXNrKVxcbmJsb2NrL2dlbmhkLmMtMTU0Ny17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDE4OjQ5OjI2LjQwNjc0NDA5OVoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNzM0MTI5NjIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGF0IGNvZGU6XG5cbioqRGl2aW5nIGludG8gYHB1dF9kaXNrYCoqXG5cbk9rYXksIGxldCdzIGdldCByaWdodCBpbnRvIGl0LiBJJ20gZm9jdXNpbmcgb24gYHB1dF9kaXNrYCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBgYmxvY2svZ2VuaGQuY2AgZmlsZS4gSSBpbW1lZGlhdGVseSB3YW50IHRvIHVuZGVyc3RhbmQgaXRzIHJvbGUuIEdpdmVuIHRoZSBuYW1lLCBJJ20gYXNzdW1pbmcgaXQncyBpbnZvbHZlZCBpbiwgYXQgbGVhc3QgaW4gc29tZSB3YXksIHRoZSBwcm9jZXNzIG9mIGhhbmRsaW5nIGRpc2sgZGV2aWNlcy4gSSdtIGtlZW4gdG8gZ3Jhc3AgaG93IHRoZSBrZXJuZWwgaW50ZXJhY3RzIHdpdGggdGhlIGJsb2NrIGRldmljZSBsYXllciBoZXJlLiBXaGF0IGFyZSB0aGUga2V5IHBhcmFtZXRlcnMgaXQgdGFrZXM/IFdoYXQgZGF0YSBzdHJ1Y3R1cmVzIGRvZXMgaXQgbWFuaXB1bGF0ZT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaXRzIHJlbGF0aW9uc2hpcCB0byB0aGUgYnJvYWRlciBkaXNrIG1hbmFnZW1lbnQgaW5mcmFzdHJ1Y3R1cmUuIFdoYXQgYXJlIHRoZSBjYWxsaW5nIGNvbnRleHRzIG9mIHRoaXMgZnVuY3Rpb24/IEtub3dpbmcgd2hvIGNhbGxzIGl0IHdpbGwgdGVsbCBtZSBpdHMgcGxhY2UgaW4gdGhlIGxpZmVjeWNsZSBvZiB0aGUgZGlzay4gSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHVzZSBvZiB0aGlzIGluIHZhcmlvdXMgc2l0dWF0aW9ucy4gRnJvbSBhbiBleHBlcnQgcGVyc3BlY3RpdmUsIEknbSBhbHJlYWR5IGZvcm11bGF0aW5nIHF1ZXN0aW9ucyBhYm91dCBwb3RlbnRpYWwgb3B0aW1pemF0aW9ucywgY29uY3VycmVuY3kgY29uc2lkZXJhdGlvbnMsIGFuZCBlcnJvciBoYW5kbGluZyBzdHJhdGVnaWVzIHRoYXQgbWlnaHQgYmUgaW1wbGVtZW50ZWQgb3IgY291bGQgYmUgaW1wcm92ZWQuIEknbSBsb29raW5nIGF0IGhvdyBpdCBpbnRlZ3JhdGVzIHdpdGggdGhlIHZpcnR1YWwgYmxvY2sgZGV2aWNlLCBtYXliZSB3aXRoIHBhcnRpdGlvbnMgYW5kIGFueSBjYWNoaW5nIG1lY2hhbmlzbS4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9ucyBhcmUgd2hhdCBpcyB0aGUgcHVycG9zZSBvZiB0aGUgZGF0YT8gV2hhdCBpcyB0aGUgZnVuY3Rpb24gdHJ5aW5nIHRvIGFjY29tcGxpc2g/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjUwMDIsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxODo0OTozMC4xNDA4Nzc2OTJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUwNjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImJsb2NrL2dlbmhkLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTU0NSxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTU0NTpcXHQgKi9cXG4xNTQ2OlxcdHZvaWQgcHV0X2Rpc2soc3RydWN0IGdlbmRpc2sgKmRpc2spXFxuMTU0NzpcXHR7XFxuMTU0ODpcXHRcXHRpZiAoZGlzaylcXG4xNTQ5OlxcdFxcdFxcdHB1dF9kZXZpY2UoZGlza190b19kZXYoZGlzaykpO1xcbjE1NTA6XFx0fVxcbjE1NTE6XFx0RVhQT1JUX1NZTUJPTChwdXRfZGlzayk7XFxuMTU1MjpcXHRcXG4xNTUzOlxcdHN0YXRpYyB2b2lkIHNldF9kaXNrX3JvX3VldmVudChzdHJ1Y3QgZ2VuZGlzayAqZ2QsIGludCBybylcXG4xNTU0OlxcdHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMTg6NDk6MzAuMTQxMDI5ODgyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ5MDQ2MzQ1ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoaXMgaXMgZGVmaW5pdGVseSBgcHV0X2Rpc2tgLiBObyBvdGhlciBjb25maWd1cmF0aW9uIHNlZW1zIGltbWVkaWF0ZWx5IHJlbGV2YW50OyBgQkxPQ0tgIGxvb2tzIGxpa2UgdGhlIHByaW1hcnkgY29udGV4dCBoZXJlLiBUaGUgcGF0Y2ggaXMgYWJvdXQgaG93IHdlIHJlbGVhc2UgYSBkaXNrIHdpdGhpbiB0aGUgYmxvY2sgbGF5ZXIsIHNwZWNpZmljYWxseSBhcm91bmQgc3luY2hyb25pemF0aW9uIGFuZCBjYW5jZWxsYXRpb24gb2YgcGVuZGluZyB3b3JrIGJlZm9yZSB3ZSBleGl0IHRoZSBtdWx0aXF1ZXVlLiBUaGlzIGlzIGNyaXRpY2FsIGJlY2F1c2UgaXQncyBoYW5kbGluZyBzY2VuYXJpb3Mgd2hlcmUgYSBkaXNrIGlzIGFsbG9jYXRlZCBidXQgKm5ldmVyKiBwcm9wZXJseSBhZGRlZC4gUHJvYmUgZmFpbHVyZXMgb3IgZWFybHkgdGVhcmRvd24gYXJlIHRoZSBsaWtlbHkgdHJpZ2dlcmluZyBldmVudHMuXG5cbk5vdywgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdCBgcHV0X2Rpc2tgIGlzIGluZGVlZCB0aGUgKnJpZ2h0KiBzeW1ib2wgdG8gZm9jdXMgb24uIEl0J3MgYW4gaW1wb3J0YW50IG5vbi1zdGF0aWMgQVBJIGVudHJ5cG9pbnQsIHNvIGl0J3MgcHJvYmFibHkgd29ydGggcHV0dGluZyBzb21lIGZ1enppbmcgcHJlc3N1cmUgb24gdGhhdCBjb2RlIHBhdGguIFllcCwgc2V0dGluZyBgV29ydGhGdXp6aW5nYCB0byBgdHJ1ZWAuIFRoaXMgd2FycmFudHMgY2xvc2VyIGluc3BlY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU0NTQsIk91dHB1dFRva2VucyI6OTQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMzAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQxODo0OTozNS4wNDU2Njk3NFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk0ODYzNTg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJCTE9DS1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInB1dF9kaXNrXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGRpc2sgcmVsZWFzZSBwYXRoIGluIHRoZSBibG9jayBsYXllciB0byBwcm9wZXJseSBzeW5jaHJvbml6ZSBhbmQgY2FuY2VsIHBlbmRpbmcgd29yayBiZWZvcmUgZXhpdGluZyB0aGUgbXVsdGlxdWV1ZSB3aGVuIGEgZGlzayBpcyBhbGxvY2F0ZWQgYnV0IG5vdCBhZGRlZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgYmxvY2sgbGF5ZXIgbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCBkdXJpbmcgcHJvYmUgZmFpbHVyZXMgb3IgZWFybHkgdGVhcmRvd24uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQkxPQ0tcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJwdXRfZGlza1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBkaXNrIHJlbGVhc2UgcGF0aCBpbiB0aGUgYmxvY2sgbGF5ZXIgdG8gcHJvcGVybHkgc3luY2hyb25pemUgYW5kIGNhbmNlbCBwZW5kaW5nIHdvcmsgYmVmb3JlIGV4aXRpbmcgdGhlIG11bHRpcXVldWUgd2hlbiBhIGRpc2sgaXMgYWxsb2NhdGVkIGJ1dCBub3QgYWRkZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGJsb2NrIGxheWVyIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgZHVyaW5nIHByb2JlIGZhaWx1cmVzIG9yIGVhcmx5IHRlYXJkb3duLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowk2w2f[1] Phase: Succeeded StartedAt: 2026-07-28 18:49:46 +0000 UTC FinishedAt: 2026-07-28 18:49:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-28 18:49:46 +0000 UTC FinishedAt: 2026-07-28 18:49:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2] Phase: Succeeded StartedAt: 2026-07-28 18:49:46 +0000 UTC FinishedAt: 2026-07-28 22:45:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-28 18:49:46 +0000 UTC FinishedAt: 2026-07-28 22:45:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-28 18:49:46 +0000 UTC FinishedAt: 2026-07-28 18:49:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-28 18:49:46 +0000 UTC FinishedAt: 2026-07-28 18:49:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowk2w2f/series-workflowk2w2f-convert-artifact-3040894242/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-28 18:49:57 +0000 UTC FinishedAt: 2026-07-28 19:10:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-28 18:49:57 +0000 UTC FinishedAt: 2026-07-28 19:10:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*2086cebc-7b74-4dfe-844a-26bd02390843,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-workflowk2w2f/series-workflowk2w2f-convert-artifact-3040894242/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": "95747244-4c2b-4774-b88c-dc409fea89d1", "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-workflowk2w2f/series-workflowk2w2f-build-action-1631444704/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-28 18:49:57 +0000 UTC FinishedAt: 2026-07-28 19:09:50 +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:*2086cebc-7b74-4dfe-844a-26bd02390843,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-workflowk2w2f/series-workflowk2w2f-convert-artifact-3040894242/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": "95747244-4c2b-4774-b88c-dc409fea89d1", "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-workflowk2w2f/series-workflowk2w2f-build-action-1631444704/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-28 19:10:00 +0000 UTC FinishedAt: 2026-07-28 19:10:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-28 19:10:00 +0000 UTC FinishedAt: 2026-07-28 19:10:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-28 19:10:00 +0000 UTC FinishedAt: 2026-07-28 19:10:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-28 19:10:00 +0000 UTC FinishedAt: 2026-07-28 19:10:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowk2w2f/series-workflowk2w2f-convert-artifact-334276989/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-28 19:10:11 +0000 UTC FinishedAt: 2026-07-28 19:12:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-28 19:10:11 +0000 UTC FinishedAt: 2026-07-28 19:12:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*95747244-4c2b-4774-b88c-dc409fea89d1,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-workflowk2w2f/series-workflowk2w2f-build-action-1631444704/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-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-28 19:12:27 +0000 UTC FinishedAt: 2026-07-28 19:12:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-28 19:12:27 +0000 UTC FinishedAt: 2026-07-28 19:12:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-28 19:12:27 +0000 UTC FinishedAt: 2026-07-28 19:40:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-28 19:12:27 +0000 UTC FinishedAt: 2026-07-28 19:40:32 +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:*2086cebc-7b74-4dfe-844a-26bd02390843,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-workflowk2w2f/series-workflowk2w2f-convert-artifact-334276989/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": "e3fe881d-c0fb-4d45-8505-e180a33a1cc7", "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-workflowk2w2f/series-workflowk2w2f-build-action-1550608857/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-28 19:12:27 +0000 UTC FinishedAt: 2026-07-28 19:40:22 +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:*2086cebc-7b74-4dfe-844a-26bd02390843,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-workflowk2w2f/series-workflowk2w2f-convert-artifact-334276989/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": "e3fe881d-c0fb-4d45-8505-e180a33a1cc7", "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-workflowk2w2f/series-workflowk2w2f-build-action-1550608857/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-28 19:40:32 +0000 UTC FinishedAt: 2026-07-28 19:40:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-28 19:40:32 +0000 UTC FinishedAt: 2026-07-28 19:40:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-28 19:40:32 +0000 UTC FinishedAt: 2026-07-28 19:42:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-28 19:40:32 +0000 UTC FinishedAt: 2026-07-28 19:42:37 +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:*e3fe881d-c0fb-4d45-8505-e180a33a1cc7,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-workflowk2w2f/series-workflowk2w2f-build-action-1550608857/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-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-28 19:42:47 +0000 UTC FinishedAt: 2026-07-28 22:45:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-28 19:42:47 +0000 UTC FinishedAt: 2026-07-28 22:45:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"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:*95747244-4c2b-4774-b88c-dc409fea89d1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e3fe881d-c0fb-4d45-8505-e180a33a1cc7,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-workflowk2w2f/series-workflowk2w2f-build-action-1631444704/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-workflowk2w2f/series-workflowk2w2f-build-action-1550608857/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-28 19:42:47 +0000 UTC FinishedAt: 2026-07-28 19:42:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-28 19:42:47 +0000 UTC FinishedAt: 2026-07-28 19:42:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"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-workflowk2w2f/series-workflowk2w2f-convert-artifact-3167375106/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-28 19:42:47 +0000 UTC FinishedAt: 2026-07-28 19:42:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-28 19:42:47 +0000 UTC FinishedAt: 2026-07-28 19:42:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-28 19:42:47 +0000 UTC FinishedAt: 2026-07-28 19:42:47 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-28 19:42:57 +0000 UTC FinishedAt: 2026-07-28 22:45:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk2w2f[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["put_disk"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["BLOCK"],"series_id":"7ab34b93-8fcf-4250-9da0-fd1e8551f421","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-28 19:42:57 +0000 UTC FinishedAt: 2026-07-28 22:45:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*95747244-4c2b-4774-b88c-dc409fea89d1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*e3fe881d-c0fb-4d45-8505-e180a33a1cc7,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-workflowk2w2f/series-workflowk2w2f-build-action-1631444704/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-workflowk2w2f/series-workflowk2w2f-build-action-1550608857/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-workflowk2w2f/series-workflowk2w2f-convert-artifact-3167375106/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,}