Name: series-workflowrtfxv Phase: Succeeded StartedAt: 2026-07-14 04:39:46 +0000 UTC FinishedAt: 2026-07-14 09:25:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[0] Phase: Succeeded StartedAt: 2026-07-14 04:39:46 +0000 UTC FinishedAt: 2026-07-14 04:57:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[0].run-triage Phase: Succeeded StartedAt: 2026-07-14 04:39:46 +0000 UTC FinishedAt: 2026-07-14 04:57:49 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "502d801f0ab03e4f32f9a33d203154ce84887921", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "502d801f0ab03e4f32f9a33d203154ce84887921", "config_name": "upstream-apparmor-kasan.config", "series_id": "1c64f878-c0ae-4088-bf32-93ca839c4e3a" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "evict_inodes" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE0IDA0OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXZpY3RfaW5vZGVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFZGUyBmdW5jdGlvbiBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGl0ZXJhdGluZyBvdmVyIGBzYi1cdTAwM2VzX2lub2Rlc2AgZHVyaW5nIHN1cGVyYmxvY2sgc2h1dGRvd24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG9wdGltaXplcyB1bm1vdW50IHRpbWVzIGFuZCBhdm9pZHMgTyhuXjIpIGJlaGF2aW9yLiBJdCBpcyByZWFjaGFibGUgYnkgdW5tb3VudGluZyBhbnkgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwNDo1NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQxMGVkMTE5ZDA3OWEzNGFiNjE3ZDhhYjgyZDg4OTYyMmUyNWFhNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAxNCAwNDo1NzoxOSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9pbm9kZS5jIGIvZnMvaW5vZGUuY1xuaW5kZXggYWNmMjA2YmViMmUwMzQuLjE5MTk3MzY4YzZhNjc4IDEwMDY0NFxuLS0tIGEvZnMvaW5vZGUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvaW5vZGUuY1xuQEAgLTg4MCwxNSAmIzQzOzg4MCwzMSBAQCBzdGF0aWMgdm9pZCBkaXNwb3NlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcbiAgKiBjYWxsZWQgYnkgc3VwZXJibG9jayBzaHV0ZG93biBhZnRlciBoYXZpbmcgU0JfQUNUSVZFIGZsYWcgcmVtb3ZlZCxcbiAgKiBzbyBhbnkgaW5vZGUgcmVhY2hpbmcgemVybyByZWZjb3VudCBkdXJpbmcgb3IgYWZ0ZXIgdGhhdCBjYWxsIHdpbGxcbiAgKiBiZSBpbW1lZGlhdGVseSBldmljdGVkLlxuJiM0MzsgKlxuJiM0MzsgKiBVc2UgYSBjdXJzb3Igbm9kZSBlbWJlZGRlZCBpbiBzYi1cdTAwM2VzX2lub2RlcyB0byByZXN1bWUgdHJhdmVyc2FsIGFmdGVyXG4mIzQzOyAqIGRyb3BwaW5nIHNfaW5vZGVfbGlzdF9sb2NrIGZvciBjb25kX3Jlc2NoZWQoKSAmIzQzOyBkaXNwb3NlX2xpc3QoKS4gIFRoaXNcbiYjNDM7ICogYXZvaWRzIHJlc3RhcnRpbmcgdGhlIHNjYW4gZnJvbSB0aGUgbGlzdCBoZWFkIG9uIGVhY2ggcmVzY2hlZHVsZSwgZ2l2aW5nXG4mIzQzOyAqIE8obikgdG90YWwgdHJhdmVyc2FsIGluc3RlYWQgb2YgTyhuICogcikgd2hlcmUgciBpcyB0aGUgcmVzY2hlZHVsZSBjb3VudC5cbiAgKi9cbiB2b2lkIGV2aWN0X2lub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIHtcbiBcdHN0cnVjdCBpbm9kZSAqaW5vZGU7XG4gXHRMSVNUX0hFQUQoZGlzcG9zZSk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBFbWJlZCBhIGN1cnNvciBub2RlIGRpcmVjdGx5IGluIHNiLVx1MDAzZXNfaW5vZGVzLiAgbGlzdF9tb3ZlKCkgYWR2YW5jZXNcbiYjNDM7XHQgKiBpdCBwYXN0IGVhY2ggdmlzaXRlZCBpbm9kZSBpbiBPKDEpLCBzbyB0aGUgbG9vcCByZXN1bWVzIGZyb20gZXhhY3RseVxuJiM0MztcdCAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFmdGVyIGxvY2sgZHJvcCByYXRoZXIgdGhhbiBmcm9tIHRoZSBsaXN0IGhlYWQuXG4mIzQzO1x0ICovXG4mIzQzO1x0c3RydWN0IGxpc3RfaGVhZCBjdXJzb3I7XG4gXG4tYWdhaW46XG4gXHRzcGluX2xvY2soXHUwMDI2c2ItXHUwMDNlc19pbm9kZV9saXN0X2xvY2spO1xuLVx0bGlzdF9mb3JfZWFjaF9lbnRyeShpbm9kZSwgXHUwMDI2c2ItXHUwMDNlc19pbm9kZXMsIGlfc2JfbGlzdCkge1xuJiM0MztcdGxpc3RfYWRkKFx1MDAyNmN1cnNvciwgXHUwMDI2c2ItXHUwMDNlc19pbm9kZXMpO1xuJiM0MztcbiYjNDM7XHR3aGlsZSAoY3Vyc29yLm5leHQgIT0gXHUwMDI2c2ItXHUwMDNlc19pbm9kZXMpIHtcbiYjNDM7XHRcdGlub2RlID0gbGlzdF9lbnRyeShjdXJzb3IubmV4dCwgc3RydWN0IGlub2RlLCBpX3NiX2xpc3QpO1xuJiM0MztcdFx0LyogTGVhdmUgdGhlIGN1cnNvciBpbW1lZGlhdGVseSBhZnRlciB0aGUgY3VycmVudCBpbm9kZS4gKi9cbiYjNDM7XHRcdGxpc3RfbW92ZShcdTAwMjZjdXJzb3IsIFx1MDAyNmlub2RlLVx1MDAzZWlfc2JfbGlzdCk7XG4mIzQzO1xuIFx0XHRpZiAoaWNvdW50X3JlYWRfb25jZShpbm9kZSkpXG4gXHRcdFx0Y29udGludWU7XG4gXG5AQCAtOTE2LDkgJiM0Mzs5MzIsMTEgQEAgdm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbiBcdFx0XHRzcGluX3VubG9jayhcdTAwMjZzYi1cdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XG4gXHRcdFx0Y29uZF9yZXNjaGVkKCk7XG4gXHRcdFx0ZGlzcG9zZV9saXN0KFx1MDAyNmRpc3Bvc2UpO1xuLVx0XHRcdGdvdG8gYWdhaW47XG4mIzQzO1x0XHRcdHNwaW5fbG9jayhcdTAwMjZzYi1cdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XG4gXHRcdH1cbiBcdH1cbiYjNDM7XG4mIzQzO1x0bGlzdF9kZWwoXHUwMDI2Y3Vyc29yKTtcbiBcdHNwaW5fdW5sb2NrKFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVfbGlzdF9sb2NrKTtcbiBcbiBcdGRpc3Bvc2VfbGlzdChcdTAwMjZkaXNwb3NlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwNDo1NzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2V2aWN0X2lub2RlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBWRlMgZnVuY3Rpb24gYGV2aWN0X2lub2Rlc2AgdG8gdXNlIGEgY3Vyc29yIGZvciBpdGVyYXRpbmcgb3ZlciBgc2ItXHUwMDNlc19pbm9kZXNgIGR1cmluZyBzdXBlcmJsb2NrIHNodXRkb3duLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBvcHRpbWl6ZXMgdW5tb3VudCB0aW1lcyBhbmQgYXZvaWRzIE8obl4yKSBiZWhhdmlvci4gSXQgaXMgcmVhY2hhYmxlIGJ5IHVubW91bnRpbmcgYW55IGZpbGVzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQxMGVkMTE5ZDA3OWEzNGFiNjE3ZDhhYjgyZDg4OTYyMmUyNWFhNjcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCAxNCAwNDo1NzoxOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2lub2RlLmMgYi9mcy9pbm9kZS5jCmluZGV4IGFjZjIwNmJlYjJlMDM0Li4xOTE5NzM2OGM2YTY3OCAxMDA2NDQKLS0tIGEvZnMvaW5vZGUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9pbm9kZS5jCkBAIC04ODAsMTUgJiM0Mzs4ODAsMzEgQEAgc3RhdGljIHZvaWQgZGlzcG9zZV9saXN0KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiAgKiBjYWxsZWQgYnkgc3VwZXJibG9jayBzaHV0ZG93biBhZnRlciBoYXZpbmcgU0JfQUNUSVZFIGZsYWcgcmVtb3ZlZCwKICAqIHNvIGFueSBpbm9kZSByZWFjaGluZyB6ZXJvIHJlZmNvdW50IGR1cmluZyBvciBhZnRlciB0aGF0IGNhbGwgd2lsbAogICogYmUgaW1tZWRpYXRlbHkgZXZpY3RlZC4KJiM0MzsgKgomIzQzOyAqIFVzZSBhIGN1cnNvciBub2RlIGVtYmVkZGVkIGluIHNiLSZndDtzX2lub2RlcyB0byByZXN1bWUgdHJhdmVyc2FsIGFmdGVyCiYjNDM7ICogZHJvcHBpbmcgc19pbm9kZV9saXN0X2xvY2sgZm9yIGNvbmRfcmVzY2hlZCgpICYjNDM7IGRpc3Bvc2VfbGlzdCgpLiAgVGhpcwomIzQzOyAqIGF2b2lkcyByZXN0YXJ0aW5nIHRoZSBzY2FuIGZyb20gdGhlIGxpc3QgaGVhZCBvbiBlYWNoIHJlc2NoZWR1bGUsIGdpdmluZwomIzQzOyAqIE8obikgdG90YWwgdHJhdmVyc2FsIGluc3RlYWQgb2YgTyhuICogcikgd2hlcmUgciBpcyB0aGUgcmVzY2hlZHVsZSBjb3VudC4KICAqLwogdm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCUxJU1RfSEVBRChkaXNwb3NlKTsKJiM0MzsJLyoKJiM0MzsJICogRW1iZWQgYSBjdXJzb3Igbm9kZSBkaXJlY3RseSBpbiBzYi0mZ3Q7c19pbm9kZXMuICBsaXN0X21vdmUoKSBhZHZhbmNlcwomIzQzOwkgKiBpdCBwYXN0IGVhY2ggdmlzaXRlZCBpbm9kZSBpbiBPKDEpLCBzbyB0aGUgbG9vcCByZXN1bWVzIGZyb20gZXhhY3RseQomIzQzOwkgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBhZnRlciBsb2NrIGRyb3AgcmF0aGVyIHRoYW4gZnJvbSB0aGUgbGlzdCBoZWFkLgomIzQzOwkgKi8KJiM0MzsJc3RydWN0IGxpc3RfaGVhZCBjdXJzb3I7CiAKLWFnYWluOgogCXNwaW5fbG9jaygmYW1wO3NiLSZndDtzX2lub2RlX2xpc3RfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShpbm9kZSwgJmFtcDtzYi0mZ3Q7c19pbm9kZXMsIGlfc2JfbGlzdCkgewomIzQzOwlsaXN0X2FkZCgmYW1wO2N1cnNvciwgJmFtcDtzYi0mZ3Q7c19pbm9kZXMpOwomIzQzOwomIzQzOwl3aGlsZSAoY3Vyc29yLm5leHQgIT0gJmFtcDtzYi0mZ3Q7c19pbm9kZXMpIHsKJiM0MzsJCWlub2RlID0gbGlzdF9lbnRyeShjdXJzb3IubmV4dCwgc3RydWN0IGlub2RlLCBpX3NiX2xpc3QpOwomIzQzOwkJLyogTGVhdmUgdGhlIGN1cnNvciBpbW1lZGlhdGVseSBhZnRlciB0aGUgY3VycmVudCBpbm9kZS4gKi8KJiM0MzsJCWxpc3RfbW92ZSgmYW1wO2N1cnNvciwgJmFtcDtpbm9kZS0mZ3Q7aV9zYl9saXN0KTsKJiM0MzsKIAkJaWYgKGljb3VudF9yZWFkX29uY2UoaW5vZGUpKQogCQkJY29udGludWU7CiAKQEAgLTkxNiw5ICYjNDM7OTMyLDExIEBAIHZvaWQgZXZpY3RfaW5vZGVzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAJCQlzcGluX3VubG9jaygmYW1wO3NiLSZndDtzX2lub2RlX2xpc3RfbG9jayk7CiAJCQljb25kX3Jlc2NoZWQoKTsKIAkJCWRpc3Bvc2VfbGlzdCgmYW1wO2Rpc3Bvc2UpOwotCQkJZ290byBhZ2FpbjsKJiM0MzsJCQlzcGluX2xvY2soJmFtcDtzYi0mZ3Q7c19pbm9kZV9saXN0X2xvY2spOwogCQl9CiAJfQomIzQzOwomIzQzOwlsaXN0X2RlbCgmYW1wO2N1cnNvcik7CiAJc3Bpbl91bmxvY2soJmFtcDtzYi0mZ3Q7c19pbm9kZV9saXN0X2xvY2spOwogCiAJZGlzcG9zZV9saXN0KCZhbXA7ZGlzcG9zZSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDA0OjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNTQKCQkJCQkJCW91dHB1dDogMTgKCQkJCQkJCXRob3VnaHRzOiAxNzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgZXZpY3RfaW5vZGVzYCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0JiMzOTtzIHR3ZWFraW5nIGBldmljdF9pbm9kZXNgIHdpdGhpbiBgZnMvaW5vZGUuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGhvdyBpdCBpdGVyYXRlcyB0aHJvdWdoIGBzYi0mZ3Q7c19pbm9kZXNgLiBJbnN0ZWFkIG9mIHRoZSBzdGFuZGFyZCBsaW5lYXIgc2NhbiB3ZSYjMzk7cmUgdXNlZCB0bywgdGhleSYjMzk7cmUgaW50cm9kdWNpbmcgdGhpcyBgY3Vyc29yYCBub2RlIGRpcmVjdGx5IGVtYmVkZGVkIHdpdGhpbiBgc2ItJmd0O3NfaW5vZGVzYC4gVGhlIGlkZWEgaXMgc21hcnQ6IGl0IGxldHMgdXMgcGljayB1cCB0aGUgdHJhdmVyc2FsIHdoZXJlIHdlIGxlZnQgb2ZmIGFmdGVyIGRyb3BwaW5nIHRoZSBgc19pbm9kZV9saXN0X2xvY2tgLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBgY29uZF9yZXNjaGVkKClgIGNhbGxzIGFuZCBzdWJzZXF1ZW50IGBkaXNwb3NlX2xpc3QoKWAgb3BlcmF0aW9ucy4gVGhpcyBpcyBrZXkg4oCTIGl0IHByZXZlbnRzIHJlc3RhcnRpbmcgdGhlIGVudGlyZSBzY2FuIGZyb20gdGhlIGxpc3QgaGVhZCBldmVyeSBzaW5nbGUgdGltZSB3ZSByZXNjaGVkdWxlLiBUaGUgaW1wbGljYXRpb25zIGFyZSBjbGVhcjogaW5zdGVhZCBvZiB0aGUgbmFzdHkgTyhuICogcikgY29tcGxleGl0eSwgd2hlcmUgJiMzOTtyJiMzOTsgaXMgdGhlIHJlc2NoZWR1bGUgY291bnQsIHdlJiMzOTtyZSBub3cgbG9va2luZyBhdCBPKG4pIHRvdGFsIHRyYXZlcnNhbCB0aW1lLgoKVGhpcyBpcyBhIHByZXR0eSBmdW5kYW1lbnRhbCBjaGFuZ2UgdG8gdGhlIFZGUyBsb2dpYywgcmlnaHQgaW4gdGhlIGhlYXJ0IG9mIGBldmljdF9pbm9kZXNgLiBUaGF0IG1ha2VzIHRoaXMgcGF0Y2ggYSBwcmltZSBjYW5kaWRhdGUgZm9yIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBFc3BlY2lhbGx5IHNpbmNlIGBldmljdF9pbm9kZXNgIGlzIGEgY29yZSBwYXJ0IG9mIHRoZSBzdXBlcmJsb2NrIHNodXRkb3duIHByb2Nlc3MsIHdoaWNoIGlzIGEgc2Vuc2l0aXZlIGFyZWEuCgpOb3csIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB3ZSB1bmRlcnN0YW5kICphbGwqIHRoZSBpbXBsaWNhdGlvbnMuIEkgd2FudCB0byBxdWlja2x5IGNoZWNrIHRoZSBjYWxsZXJzIG9mIGBldmljdF9pbm9kZXNgIGp1c3QgdG8gZ2V0IGEgYnJvYWRlciBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDA0OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2V2aWN0X2lub2RlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3BvcnRpbmcucnN0PTExNzk9TE9PS19DUkVBVEUgb3IgTE9PS1VQX1JFTkFNRV9UQVJHRVQuXG4tLVxuRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wb3J0aW5nLnJzdC0xMTgzLSoqbWFuZGF0b3J5KipcbkRvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcG9ydGluZy5yc3Q6MTE4NDppbnZhbGlkYXRlX2lub2RlcygpIGlzIGdvbmUgdXNlIGV2aWN0X2lub2RlcygpIGluc3RlYWQuXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3BvcnRpbmcucnN0LTExODUtXG4tLVxuZnMvZjJmcy9zdXBlci5jPTQ5NDY9c3RhdGljIGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKVxuLS1cbmZzL2YyZnMvc3VwZXIuYy01Mzk3LVx0LyogZXZpY3Qgc29tZSBpbm9kZXMgYmVpbmcgY2FjaGVkIGJ5IEdDICovXG5mcy9mMmZzL3N1cGVyLmM6NTM5ODpcdGV2aWN0X2lub2RlcyhzYik7XG5mcy9mMmZzL3N1cGVyLmMtNTM5OS1cdGYyZnNfdW5yZWdpc3Rlcl9zeXNmcyhzYmkpO1xuLS1cbmZzL2Z1c2UvdmlydGlvX2ZzLmM9MTYyOD1zdGF0aWMgdm9pZCB2aXJ0aW9fZnNfY29ubl9kZXN0cm95KHN0cnVjdCBmdXNlX21vdW50ICpmbSlcbi0tXG5mcy9mdXNlL3ZpcnRpb19mcy5jLTE2MzMtXG5mcy9mdXNlL3ZpcnRpb19mcy5jOjE2MzQ6XHQvKiBTdG9wIGRheCB3b3JrZXIuIFNvb24gZXZpY3RfaW5vZGVzKCkgd2lsbCBiZSBjYWxsZWQgd2hpY2hcbmZzL2Z1c2UvdmlydGlvX2ZzLmMtMTYzNS1cdCAqIHdpbGwgZnJlZSBhbGwgbWVtb3J5IHJhbmdlcyBiZWxvbmdpbmcgdG8gYWxsIGlub2Rlcy5cbi0tXG5mcy9nZnMyL29wc19mc3R5cGUuYz0xNzEwPXN0YXRpYyBpbnQgZ2ZzMl9tZXRhX2luaXRfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpXG4tLVxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTcyMS0vKipcbmZzL2dmczIvb3BzX2ZzdHlwZS5jOjE3MjI6ICogZ2ZzMl9ldmljdF9pbm9kZXMgLSBldmljdCBpbm9kZXMgY29vcGVyYXRpdmVseVxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTcyMy0gKiBAc2I6IHRoZSBzdXBlcmJsb2NrXG4tLVxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTczMy0gKlxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTczNDogKiBGdW5jdGlvbiBldmljdF9pbm9kZXMoKSB0cmllcyB0byBrZWVwIHRoZSBzX2lub2RlX2xpc3RfbG9jayBsaXN0IGxvY2tlZCBvdmVyXG5mcy9nZnMyL29wc19mc3R5cGUuYy0xNzM1LSAqIGEgbG9uZyB0aW1lLCB3aGljaCBwcmV2ZW50cyBvdGhlciBpbm9kZXMgZnJvbSBiZWluZyBldmljdGVkIGNvbmN1cnJlbnRseS5cbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3MzYtICogVGhpcyBwcmVjbHVkZXMgdGhlIGNvb3BlcmF0aXZlIGJlaGF2aW9yIHdlIGFyZSBsb29raW5nIGZvci4gIFRoaXMgc3BlY2lhbFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTczNzogKiB2ZXJzaW9uIG9mIGV2aWN0X2lub2RlcygpIGF2b2lkcyB0aGF0LlxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTczOC0gKlxuLS1cbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3NDAtICovXG5mcy9nZnMyL29wc19mc3R5cGUuYzoxNzQxOnN0YXRpYyB2b2lkIGdmczJfZXZpY3RfaW5vZGVzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG5mcy9nZnMyL29wc19mc3R5cGUuYy0xNzQyLXtcbi0tXG5mcy9nZnMyL29wc19mc3R5cGUuYz0xNzcwPXN0YXRpYyB2b2lkIGdmczJfa2lsbF9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3ODUtXG5mcy9nZnMyL29wc19mc3R5cGUuYzoxNzg2Olx0Z2ZzMl9ldmljdF9pbm9kZXMoc2IpO1xuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTc4Ny1cbi0tXG5mcy9pbm9kZS5jPTg2Mj1zdGF0aWMgdm9pZCBkaXNwb3NlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcbi0tXG5mcy9pbm9kZS5jLTg3NS0vKipcbmZzL2lub2RlLmM6ODc2OiAqIGV2aWN0X2lub2Rlc1x0LSBldmljdCBhbGwgZXZpY3RhYmxlIGlub2RlcyBmb3IgYSBzdXBlcmJsb2NrXG5mcy9pbm9kZS5jLTg3Ny0gKiBAc2I6XHRcdHN1cGVyYmxvY2sgdG8gb3BlcmF0ZSBvblxuLS1cbmZzL2lub2RlLmMtODg4LSAqL1xuZnMvaW5vZGUuYzo4ODk6dm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbmZzL2lub2RlLmMtODkwLXtcbi0tXG5mcy9pbm9kZS5jLTk0My19XG5mcy9pbm9kZS5jOjk0NDpFWFBPUlRfU1lNQk9MX0dQTChldmljdF9pbm9kZXMpO1xuZnMvaW5vZGUuYy05NDUtXG4tLVxuZnMvc21iL2NsaWVudC9maWxlLmM9MzY5PWNpZnNfbWFya19vcGVuX2ZpbGVzX2ludmFsaWQoc3RydWN0IGNpZnNfdGNvbiAqdGNvbilcbi0tXG5mcy9zbWIvY2xpZW50L2ZpbGUuYy00MDItXHQvKlxuZnMvc21iL2NsaWVudC9maWxlLmM6NDAzOlx0ICogQkIgQWRkIGNhbGwgdG8gZXZpY3RfaW5vZGVzKHNiKSBmb3IgYWxsIHN1cGVyYmxvY2tzIG1vdW50ZWRcbmZzL3NtYi9jbGllbnQvZmlsZS5jLTQwNC1cdCAqIHRvIHRoaXMgdGNvbi5cbi0tXG5mcy9zdXBlci5jPTYxOT12b2lkIGdlbmVyaWNfc2h1dGRvd25fc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbi0tXG5mcy9zdXBlci5jLTYzMi1cdFx0LyogRXZpY3QgYWxsIGlub2RlcyB3aXRoIHplcm8gcmVmY291bnQuICovXG5mcy9zdXBlci5jOjYzMzpcdFx0ZXZpY3RfaW5vZGVzKHNiKTtcbmZzL3N1cGVyLmMtNjM0LVxuLS1cbmZzL3N1cGVyLmM9MTM5Nj1zdGF0aWMgdm9pZCBmc19iZGV2X21hcmtfZGVhZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBib29sIHN1cnByaXNlKVxuLS1cbmZzL3N1cGVyLmMtMTQxNy1cdHNocmlua19kY2FjaGVfc2Ioc2IpO1xuZnMvc3VwZXIuYzoxNDE4Olx0ZXZpY3RfaW5vZGVzKHNiKTtcbmZzL3N1cGVyLmMtMTQxOS1cdGlmIChzYi1cdTAwM2VzX29wLVx1MDAzZXNodXRkb3duKVxuLS1cbmZzL3hmcy94ZnNfbG9nLmM9NjYyPXhmc19sb2dfbW91bnRfZmluaXNoKFxuLS1cbmZzL3hmcy94ZnNfbG9nLmMtNjk3LVx0bXAtXHUwMDNlbV9zdXBlci1cdTAwM2VzX2ZsYWdzIFx1MDAyNj0gflNCX0FDVElWRTtcbmZzL3hmcy94ZnNfbG9nLmM6Njk4Olx0ZXZpY3RfaW5vZGVzKG1wLVx1MDAzZW1fc3VwZXIpO1xuZnMveGZzL3hmc19sb2cuYy02OTktXG4tLVxuaW5jbHVkZS9saW51eC9mcy5oPTI5OTM9dW5zaWduZWQgaW50IGdldF9uZXh0X2lubyh2b2lkKTtcbmluY2x1ZGUvbGludXgvZnMuaDoyOTk0OnZvaWQgZXZpY3RfaW5vZGVzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuaW5jbHVkZS9saW51eC9mcy5oLTI5OTUtdm9pZCBkdW1wX21hcHBpbmcoY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKik7XG4tLVxuc2VjdXJpdHkvbGFuZGxvY2svZnMuYz0xMjYxPXN0YXRpYyB2b2lkIGhvb2tfaW5vZGVfZnJlZV9zZWN1cml0eV9yY3Uodm9pZCAqaW5vZGVfc2VjdXJpdHkpXG4tLVxuc2VjdXJpdHkvbGFuZGxvY2svZnMuYy0xMjc3LSAqXG5zZWN1cml0eS9sYW5kbG9jay9mcy5jOjEyNzg6ICogQ2YuIGZzbm90aWZ5X3VubW91bnRfaW5vZGVzKCkgYW5kIGV2aWN0X2lub2RlcygpXG5zZWN1cml0eS9sYW5kbG9jay9mcy5jLTEyNzktICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDQ6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDM1MwoJCQkJCQkJb3V0cHV0OiA5OAoJCQkJCQkJdGhvdWdodHM6IDk4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFByb3Bvc2VkIFZGUyBQYXRjaCBmb3IgYGV2aWN0X2lub2Rlc2AqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhZGRyZXNzaW5nIHRoZSBgZXZpY3RfaW5vZGVzYCBmdW5jdGlvbiwgd2hpY2gsIGFzIEkgdW5kZXJzdGFuZCwgaXMgY2FsbGVkIGR1cmluZyBmaWxlc3lzdGVtIHVubW91bnQgdmlhIGBnZW5lcmljX3NodXRkb3duX3N1cGVyYC4gSXQmIzM5O3MgYWxzbyByZWFjaGFibGUgdGhyb3VnaCBhIGZldyBlcnJvciBwYXRocyByZWxhdGVkIHRvIGJsb2NrIGRldmljZSByZW1vdmFsIG9yIGZpbGVzeXN0ZW0gaW5pdGlhbGl6YXRpb24sIGJ1dCB0aGUgcHJpbWFyeSB0cmlnZ2VyIGlzIHVubW91bnQuICBNeSBtZW50YWwgbW9kZWwgb2YgdGhpcyBwYXJ0IG9mIHRoZSBWRlMgaXMgc29saWQsIGFuZCBJJiMzOTttIGZhbWlsaWFyIHdpdGggaG93IGBldmljdF9pbm9kZXNgIGl0ZXJhdGVzIHRocm91Z2ggaW5vZGVzIHRvIGV2aWN0IHRob3NlIHdpdGggYSB6ZXJvIHJlZmNvdW50LgoKVGhlIGNvcmUgb2YgdGhlIGlzc3VlIGlzIHRoZSBpdGVyYXRpb24gd2l0aGluIGBldmljdF9pbm9kZXNgLiBUaGUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb24gY2FuLCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMsIGNhdXNlIHBlcmZvcm1hbmNlIGlzc3VlcyBkdWUgdG8gcmVzdGFydGluZyB0aGUgaXRlcmF0aW9uIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgYHNiLSZndDtzX2lub2Rlc2AgbGlzdCBhZnRlciBkcm9wcGluZyBhbmQgcmVhY3F1aXJpbmcgdGhlIGxvY2suIFRoaXMgc2VlbXMgbGlrZSBhIHRleHRib29rIGV4YW1wbGUgb2YgYSBwb3RlbnRpYWwgTyhuXjIpIHNjZW5hcmlvIHRoYXQgbmVlZHMgdG8gYmUgYXZvaWRlZC4KClRoZSBwYXRjaCYjMzk7cyBzb2x1dGlvbiBpcyBlbGVnYW50OiBpdCBpbnRyb2R1Y2VzIGEgY3Vyc29yLCBgY3Vyc29yYCwgZGlyZWN0bHkgd2l0aGluIGBzYi0mZ3Q7c19pbm9kZXNgIHRvIG1haW50YWluIHRoZSBpdGVyYXRpb24gcG9zaXRpb24uIGBsaXN0X21vdmVgIGlzIHVzZWQgdG8gZWZmaWNpZW50bHkgYWR2YW5jZSB0aGlzIGN1cnNvciwgYWxsb3dpbmcgdGhlIGxvb3AgdG8gcmVzdW1lIGZyb20gZXhhY3RseSB3aGVyZSBpdCBsZWZ0IG9mZiBhZnRlciB0aGUgbG9jayBpcyBkcm9wcGVkLiBUaGlzIGVsaW1pbmF0ZXMgdGhlIG5lZWQgdG8gcmVzdGFydCwgaW1wcm92aW5nIGVmZmljaWVuY3kuCgpUaGUgcGF0Y2ggaXRzZWxmIGlzIHJlbGF0aXZlbHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgY29kZSBoaWdobGlnaHRzIHRoZSBrZXkgY2hhbmdlczogdGhlIGFkZGl0aW9uIG9mIHRoZSBgY3Vyc29yYCBub2RlIGFuZCB0aGUgdXNlIG9mIGBsaXN0X21vdmVgIHRvIGFkdmFuY2UgdGhlIGl0ZXJhdGlvbi4gVGhlIGNvZGUgYWxzbyBpbmNsdWRlcyB0aGUgdXN1YWwgY29uc2lkZXJhdGlvbnMgbGlrZSBgbmVlZF9yZXNjaGVkKClgIHRvIGF2b2lkIGxpdmVsb2NrIGR1cmluZyB1bm1vdW50IGlmIHRoZXJlIGFyZSBhICpsb3QqIG9mIGlub2RlcyB0byBldmljdC4gVGhlIHBhdGNoIGFwcGVhcnMgdG8gaGF2ZSBubyBkZXBlbmRlbmNpZXMgb3Igc3BlY2lhbCBjb25maWd1cmF0aW9ucyByZXF1aXJlZC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjaGFuZ2UgdGhhdCYjMzk7cyBhbHdheXMgaW4gcGxheS4KCkdpdmVuIHRoZSBpbXBvcnRhbmNlIG9mIGBldmljdF9pbm9kZXNgIHRvIHRoZSB1bm1vdW50IHByb2Nlc3MgYW5kIHRoZSBjbGVhciBvcHRpbWl6YXRpb24gdGhpcyBwYXRjaCBwcm92aWRlcywgSSYjMzk7bSBjb25maWRlbnQgaXQmIzM5O3MgYSB3b3J0aHdoaWxlIGFyZWEgdG8gaW52ZXN0aWdhdGUgZnVydGhlci4gSXQmIzM5O3MgYSBjb3JlIFZGUyBmdW5jdGlvbiBhbmQgYW55IGZpbGVzeXN0ZW0gdW5tb3VudCB3aWxsIHRyaWdnZXIgaXQuCgpUaGVyZSBkb2VzbiYjMzk7dCBzZWVtIHRvIGJlIGFueSBuZWVkIHRvIGxvb2sgaW50byBvdGhlciBmdW5jdGlvbnMgbGlrZSBgZ2VuZXJpY19zaHV0ZG93bl9zdXBlcmAgYmVjYXVzZSB0aGUgcGF0Y2ggb25seSB0b3VjaGVzIGBldmljdF9pbm9kZXNgLiBJdCYjMzk7cyBub3QgYSBob3QgcGF0aCwgc2luY2UgaXQmIzM5O3Mgb25seSBjYWxsZWQgb24gdW5tb3VudC4KCkluIHN1bW1hcnksIHRoZSBwYXRjaCBtb2RpZmllcyBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGVmZmljaWVudCBpbm9kZSBldmljdGlvbiBkdXJpbmcgdW5tb3VudC4gVGhpcyBhdm9pZHMgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLCBzbyBJIHdvdWxkIHN1Z2dlc3Qgc2V0dGluZyB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgdHJ1ZWAsIGZvY3VzaW5nIG9uIHRoZSBgZXZpY3RfaW5vZGVzYCBzeW1ib2wsIGFuZCBub3Qgc2V0dGluZyBhbnkgc3BlY2lhbCBjb25maWdzLiBJdCYjMzk7cyBhIGdvb2QgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDQ6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2V2aWN0X2lub2RlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBWRlMgZnVuY3Rpb24gYGV2aWN0X2lub2Rlc2AgdG8gdXNlIGEgY3Vyc29yIGZvciBpdGVyYXRpbmcgb3ZlciBgc2ItXHUwMDNlc19pbm9kZXNgIGR1cmluZyBzdXBlcmJsb2NrIHNodXRkb3duLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBvcHRpbWl6ZXMgdW5tb3VudCB0aW1lcyBhbmQgYXZvaWRzIE8obl4yKSBiZWhhdmlvci4gSXQgaXMgcmVhY2hhYmxlIGJ5IHVubW91bnRpbmcgYW55IGZpbGVzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXZpY3RfaW5vZGVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFZGUyBmdW5jdGlvbiBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGl0ZXJhdGluZyBvdmVyIGBzYi1cdTAwM2VzX2lub2Rlc2AgZHVyaW5nIHN1cGVyYmxvY2sgc2h1dGRvd24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG9wdGltaXplcyB1bm1vdW50IHRpbWVzIGFuZCBhdm9pZHMgTyhuXjIpIGJlaGF2aW9yLiBJdCBpcyByZWFjaGFibGUgYnkgdW5tb3VudGluZyBhbnkgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDA0OjU3OjIwLjM2MDk3NjM0OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NjcxMDg3NTc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImV2aWN0X2lub2Rlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFZGUyBmdW5jdGlvbiBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGl0ZXJhdGluZyBvdmVyIGBzYi1cXHUwMDNlc19pbm9kZXNgIGR1cmluZyBzdXBlcmJsb2NrIHNodXRkb3duLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBvcHRpbWl6ZXMgdW5tb3VudCB0aW1lcyBhbmQgYXZvaWRzIE8obl4yKSBiZWhhdmlvci4gSXQgaXMgcmVhY2hhYmxlIGJ5IHVubW91bnRpbmcgYW55IGZpbGVzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDA0OjU3OjIwLjM2MDk4MDU4OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE0Nzg4NjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDEwZWQxMTlkMDc5YTM0YWI2MTdkOGFiODJkODg5NjIyZTI1YWE2N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAxNCAwNDo1NzoxOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9pbm9kZS5jIGIvZnMvaW5vZGUuY1xcbmluZGV4IGFjZjIwNmJlYjJlMDM0Li4xOTE5NzM2OGM2YTY3OCAxMDA2NDRcXG4tLS0gYS9mcy9pbm9kZS5jXFxuKysrIGIvZnMvaW5vZGUuY1xcbkBAIC04ODAsMTUgKzg4MCwzMSBAQCBzdGF0aWMgdm9pZCBkaXNwb3NlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcXG4gICogY2FsbGVkIGJ5IHN1cGVyYmxvY2sgc2h1dGRvd24gYWZ0ZXIgaGF2aW5nIFNCX0FDVElWRSBmbGFnIHJlbW92ZWQsXFxuICAqIHNvIGFueSBpbm9kZSByZWFjaGluZyB6ZXJvIHJlZmNvdW50IGR1cmluZyBvciBhZnRlciB0aGF0IGNhbGwgd2lsbFxcbiAgKiBiZSBpbW1lZGlhdGVseSBldmljdGVkLlxcbisgKlxcbisgKiBVc2UgYSBjdXJzb3Igbm9kZSBlbWJlZGRlZCBpbiBzYi1cXHUwMDNlc19pbm9kZXMgdG8gcmVzdW1lIHRyYXZlcnNhbCBhZnRlclxcbisgKiBkcm9wcGluZyBzX2lub2RlX2xpc3RfbG9jayBmb3IgY29uZF9yZXNjaGVkKCkgKyBkaXNwb3NlX2xpc3QoKS4gIFRoaXNcXG4rICogYXZvaWRzIHJlc3RhcnRpbmcgdGhlIHNjYW4gZnJvbSB0aGUgbGlzdCBoZWFkIG9uIGVhY2ggcmVzY2hlZHVsZSwgZ2l2aW5nXFxuKyAqIE8obikgdG90YWwgdHJhdmVyc2FsIGluc3RlYWQgb2YgTyhuICogcikgd2hlcmUgciBpcyB0aGUgcmVzY2hlZHVsZSBjb3VudC5cXG4gICovXFxuIHZvaWQgZXZpY3RfaW5vZGVzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuIHtcXG4gXFx0c3RydWN0IGlub2RlICppbm9kZTtcXG4gXFx0TElTVF9IRUFEKGRpc3Bvc2UpO1xcbitcXHQvKlxcbitcXHQgKiBFbWJlZCBhIGN1cnNvciBub2RlIGRpcmVjdGx5IGluIHNiLVxcdTAwM2VzX2lub2Rlcy4gIGxpc3RfbW92ZSgpIGFkdmFuY2VzXFxuK1xcdCAqIGl0IHBhc3QgZWFjaCB2aXNpdGVkIGlub2RlIGluIE8oMSksIHNvIHRoZSBsb29wIHJlc3VtZXMgZnJvbSBleGFjdGx5XFxuK1xcdCAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFmdGVyIGxvY2sgZHJvcCByYXRoZXIgdGhhbiBmcm9tIHRoZSBsaXN0IGhlYWQuXFxuK1xcdCAqL1xcbitcXHRzdHJ1Y3QgbGlzdF9oZWFkIGN1cnNvcjtcXG4gXFxuLWFnYWluOlxcbiBcXHRzcGluX2xvY2soXFx1MDAyNnNiLVxcdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XFxuLVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoaW5vZGUsIFxcdTAwMjZzYi1cXHUwMDNlc19pbm9kZXMsIGlfc2JfbGlzdCkge1xcbitcXHRsaXN0X2FkZChcXHUwMDI2Y3Vyc29yLCBcXHUwMDI2c2ItXFx1MDAzZXNfaW5vZGVzKTtcXG4rXFxuK1xcdHdoaWxlIChjdXJzb3IubmV4dCAhPSBcXHUwMDI2c2ItXFx1MDAzZXNfaW5vZGVzKSB7XFxuK1xcdFxcdGlub2RlID0gbGlzdF9lbnRyeShjdXJzb3IubmV4dCwgc3RydWN0IGlub2RlLCBpX3NiX2xpc3QpO1xcbitcXHRcXHQvKiBMZWF2ZSB0aGUgY3Vyc29yIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBjdXJyZW50IGlub2RlLiAqL1xcbitcXHRcXHRsaXN0X21vdmUoXFx1MDAyNmN1cnNvciwgXFx1MDAyNmlub2RlLVxcdTAwM2VpX3NiX2xpc3QpO1xcbitcXG4gXFx0XFx0aWYgKGljb3VudF9yZWFkX29uY2UoaW5vZGUpKVxcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFxuQEAgLTkxNiw5ICs5MzIsMTEgQEAgdm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4gXFx0XFx0XFx0c3Bpbl91bmxvY2soXFx1MDAyNnNiLVxcdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XFxuIFxcdFxcdFxcdGNvbmRfcmVzY2hlZCgpO1xcbiBcXHRcXHRcXHRkaXNwb3NlX2xpc3QoXFx1MDAyNmRpc3Bvc2UpO1xcbi1cXHRcXHRcXHRnb3RvIGFnYWluO1xcbitcXHRcXHRcXHRzcGluX2xvY2soXFx1MDAyNnNiLVxcdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XFxuIFxcdFxcdH1cXG4gXFx0fVxcbitcXG4rXFx0bGlzdF9kZWwoXFx1MDAyNmN1cnNvcik7XFxuIFxcdHNwaW5fdW5sb2NrKFxcdTAwMjZzYi1cXHUwMDNlc19pbm9kZV9saXN0X2xvY2spO1xcbiBcXG4gXFx0ZGlzcG9zZV9saXN0KFxcdTAwMjZkaXNwb3NlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDQ6NTc6MjAuNzc2NDY0NzI3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzI1NTU5MjQ3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJldmljdF9pbm9kZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBWRlMgZnVuY3Rpb24gYGV2aWN0X2lub2Rlc2AgdG8gdXNlIGEgY3Vyc29yIGZvciBpdGVyYXRpbmcgb3ZlciBgc2ItXFx1MDAzZXNfaW5vZGVzYCBkdXJpbmcgc3VwZXJibG9jayBzaHV0ZG93bi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgb3B0aW1pemVzIHVubW91bnQgdGltZXMgYW5kIGF2b2lkcyBPKG5eMikgYmVoYXZpb3IuIEl0IGlzIHJlYWNoYWJsZSBieSB1bm1vdW50aW5nIGFueSBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQxMGVkMTE5ZDA3OWEzNGFiNjE3ZDhhYjgyZDg4OTYyMmUyNWFhNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAxNCAwNDo1NzoxOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2lub2RlLmMgYi9mcy9pbm9kZS5jXG5pbmRleCBhY2YyMDZiZWIyZTAzNC4uMTkxOTczNjhjNmE2NzggMTAwNjQ0XG4tLS0gYS9mcy9pbm9kZS5jXG4rKysgYi9mcy9pbm9kZS5jXG5AQCAtODgwLDE1ICs4ODAsMzEgQEAgc3RhdGljIHZvaWQgZGlzcG9zZV9saXN0KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG4gICogY2FsbGVkIGJ5IHN1cGVyYmxvY2sgc2h1dGRvd24gYWZ0ZXIgaGF2aW5nIFNCX0FDVElWRSBmbGFnIHJlbW92ZWQsXG4gICogc28gYW55IGlub2RlIHJlYWNoaW5nIHplcm8gcmVmY291bnQgZHVyaW5nIG9yIGFmdGVyIHRoYXQgY2FsbCB3aWxsXG4gICogYmUgaW1tZWRpYXRlbHkgZXZpY3RlZC5cbisgKlxuKyAqIFVzZSBhIGN1cnNvciBub2RlIGVtYmVkZGVkIGluIHNiLVx1MDAzZXNfaW5vZGVzIHRvIHJlc3VtZSB0cmF2ZXJzYWwgYWZ0ZXJcbisgKiBkcm9wcGluZyBzX2lub2RlX2xpc3RfbG9jayBmb3IgY29uZF9yZXNjaGVkKCkgKyBkaXNwb3NlX2xpc3QoKS4gIFRoaXNcbisgKiBhdm9pZHMgcmVzdGFydGluZyB0aGUgc2NhbiBmcm9tIHRoZSBsaXN0IGhlYWQgb24gZWFjaCByZXNjaGVkdWxlLCBnaXZpbmdcbisgKiBPKG4pIHRvdGFsIHRyYXZlcnNhbCBpbnN0ZWFkIG9mIE8obiAqIHIpIHdoZXJlIHIgaXMgdGhlIHJlc2NoZWR1bGUgY291bnQuXG4gICovXG4gdm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbiB7XG4gXHRzdHJ1Y3QgaW5vZGUgKmlub2RlO1xuIFx0TElTVF9IRUFEKGRpc3Bvc2UpO1xuK1x0LypcbitcdCAqIEVtYmVkIGEgY3Vyc29yIG5vZGUgZGlyZWN0bHkgaW4gc2ItXHUwMDNlc19pbm9kZXMuICBsaXN0X21vdmUoKSBhZHZhbmNlc1xuK1x0ICogaXQgcGFzdCBlYWNoIHZpc2l0ZWQgaW5vZGUgaW4gTygxKSwgc28gdGhlIGxvb3AgcmVzdW1lcyBmcm9tIGV4YWN0bHlcbitcdCAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFmdGVyIGxvY2sgZHJvcCByYXRoZXIgdGhhbiBmcm9tIHRoZSBsaXN0IGhlYWQuXG4rXHQgKi9cbitcdHN0cnVjdCBsaXN0X2hlYWQgY3Vyc29yO1xuIFxuLWFnYWluOlxuIFx0c3Bpbl9sb2NrKFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVfbGlzdF9sb2NrKTtcbi1cdGxpc3RfZm9yX2VhY2hfZW50cnkoaW5vZGUsIFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVzLCBpX3NiX2xpc3QpIHtcbitcdGxpc3RfYWRkKFx1MDAyNmN1cnNvciwgXHUwMDI2c2ItXHUwMDNlc19pbm9kZXMpO1xuK1xuK1x0d2hpbGUgKGN1cnNvci5uZXh0ICE9IFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVzKSB7XG4rXHRcdGlub2RlID0gbGlzdF9lbnRyeShjdXJzb3IubmV4dCwgc3RydWN0IGlub2RlLCBpX3NiX2xpc3QpO1xuK1x0XHQvKiBMZWF2ZSB0aGUgY3Vyc29yIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBjdXJyZW50IGlub2RlLiAqL1xuK1x0XHRsaXN0X21vdmUoXHUwMDI2Y3Vyc29yLCBcdTAwMjZpbm9kZS1cdTAwM2VpX3NiX2xpc3QpO1xuK1xuIFx0XHRpZiAoaWNvdW50X3JlYWRfb25jZShpbm9kZSkpXG4gXHRcdFx0Y29udGludWU7XG4gXG5AQCAtOTE2LDkgKzkzMiwxMSBAQCB2b2lkIGV2aWN0X2lub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0XHRcdHNwaW5fdW5sb2NrKFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVfbGlzdF9sb2NrKTtcbiBcdFx0XHRjb25kX3Jlc2NoZWQoKTtcbiBcdFx0XHRkaXNwb3NlX2xpc3QoXHUwMDI2ZGlzcG9zZSk7XG4tXHRcdFx0Z290byBhZ2FpbjtcbitcdFx0XHRzcGluX2xvY2soXHUwMDI2c2ItXHUwMDNlc19pbm9kZV9saXN0X2xvY2spO1xuIFx0XHR9XG4gXHR9XG4rXG4rXHRsaXN0X2RlbChcdTAwMjZjdXJzb3IpO1xuIFx0c3Bpbl91bmxvY2soXHUwMDI2c2ItXHUwMDNlc19pbm9kZV9saXN0X2xvY2spO1xuIFxuIFx0ZGlzcG9zZV9saXN0KFx1MDAyNmRpc3Bvc2UpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDQ6NTc6MjAuNzc2NDY2MzA3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEzNTkyOTQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBldmljdF9pbm9kZXNgIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0J3MgdHdlYWtpbmcgYGV2aWN0X2lub2Rlc2Agd2l0aGluIGBmcy9pbm9kZS5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgaG93IGl0IGl0ZXJhdGVzIHRocm91Z2ggYHNiLVx1MDAzZXNfaW5vZGVzYC4gSW5zdGVhZCBvZiB0aGUgc3RhbmRhcmQgbGluZWFyIHNjYW4gd2UncmUgdXNlZCB0bywgdGhleSdyZSBpbnRyb2R1Y2luZyB0aGlzIGBjdXJzb3JgIG5vZGUgZGlyZWN0bHkgZW1iZWRkZWQgd2l0aGluIGBzYi1cdTAwM2VzX2lub2Rlc2AuIFRoZSBpZGVhIGlzIHNtYXJ0OiBpdCBsZXRzIHVzIHBpY2sgdXAgdGhlIHRyYXZlcnNhbCB3aGVyZSB3ZSBsZWZ0IG9mZiBhZnRlciBkcm9wcGluZyB0aGUgYHNfaW5vZGVfbGlzdF9sb2NrYCwgc3BlY2lmaWNhbGx5IGZvciB0aGUgYGNvbmRfcmVzY2hlZCgpYCBjYWxscyBhbmQgc3Vic2VxdWVudCBgZGlzcG9zZV9saXN0KClgIG9wZXJhdGlvbnMuIFRoaXMgaXMga2V5IOKAkyBpdCBwcmV2ZW50cyByZXN0YXJ0aW5nIHRoZSBlbnRpcmUgc2NhbiBmcm9tIHRoZSBsaXN0IGhlYWQgZXZlcnkgc2luZ2xlIHRpbWUgd2UgcmVzY2hlZHVsZS4gVGhlIGltcGxpY2F0aW9ucyBhcmUgY2xlYXI6IGluc3RlYWQgb2YgdGhlIG5hc3R5IE8obiAqIHIpIGNvbXBsZXhpdHksIHdoZXJlICdyJyBpcyB0aGUgcmVzY2hlZHVsZSBjb3VudCwgd2UncmUgbm93IGxvb2tpbmcgYXQgTyhuKSB0b3RhbCB0cmF2ZXJzYWwgdGltZS5cblxuVGhpcyBpcyBhIHByZXR0eSBmdW5kYW1lbnRhbCBjaGFuZ2UgdG8gdGhlIFZGUyBsb2dpYywgcmlnaHQgaW4gdGhlIGhlYXJ0IG9mIGBldmljdF9pbm9kZXNgLiBUaGF0IG1ha2VzIHRoaXMgcGF0Y2ggYSBwcmltZSBjYW5kaWRhdGUgZm9yIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBFc3BlY2lhbGx5IHNpbmNlIGBldmljdF9pbm9kZXNgIGlzIGEgY29yZSBwYXJ0IG9mIHRoZSBzdXBlcmJsb2NrIHNodXRkb3duIHByb2Nlc3MsIHdoaWNoIGlzIGEgc2Vuc2l0aXZlIGFyZWEuXG5cbk5vdywgbGV0J3MganVzdCBtYWtlIHN1cmUgd2UgdW5kZXJzdGFuZCAqYWxsKiB0aGUgaW1wbGljYXRpb25zLiBJIHdhbnQgdG8gcXVpY2tseSBjaGVjayB0aGUgY2FsbGVycyBvZiBgZXZpY3RfaW5vZGVzYCBqdXN0IHRvIGdldCBhIGJyb2FkZXIgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI1NCwiT3V0cHV0VG9rZW5zIjoxOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDA0OjU3OjI0LjkxMjM5NzgyMloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDkzNzc3NjU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV2aWN0X2lub2Rlc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3BvcnRpbmcucnN0PTExNzk9TE9PS19DUkVBVEUgb3IgTE9PS1VQX1JFTkFNRV9UQVJHRVQuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3BvcnRpbmcucnN0LTExODMtKiptYW5kYXRvcnkqKlxcbkRvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcG9ydGluZy5yc3Q6MTE4NDppbnZhbGlkYXRlX2lub2RlcygpIGlzIGdvbmUgdXNlIGV2aWN0X2lub2RlcygpIGluc3RlYWQuXFxuRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wb3J0aW5nLnJzdC0xMTg1LVxcbi0tXFxuZnMvZjJmcy9zdXBlci5jPTQ5NDY9c3RhdGljIGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKVxcbi0tXFxuZnMvZjJmcy9zdXBlci5jLTUzOTctXFx0LyogZXZpY3Qgc29tZSBpbm9kZXMgYmVpbmcgY2FjaGVkIGJ5IEdDICovXFxuZnMvZjJmcy9zdXBlci5jOjUzOTg6XFx0ZXZpY3RfaW5vZGVzKHNiKTtcXG5mcy9mMmZzL3N1cGVyLmMtNTM5OS1cXHRmMmZzX3VucmVnaXN0ZXJfc3lzZnMoc2JpKTtcXG4tLVxcbmZzL2Z1c2UvdmlydGlvX2ZzLmM9MTYyOD1zdGF0aWMgdm9pZCB2aXJ0aW9fZnNfY29ubl9kZXN0cm95KHN0cnVjdCBmdXNlX21vdW50ICpmbSlcXG4tLVxcbmZzL2Z1c2UvdmlydGlvX2ZzLmMtMTYzMy1cXG5mcy9mdXNlL3ZpcnRpb19mcy5jOjE2MzQ6XFx0LyogU3RvcCBkYXggd29ya2VyLiBTb29uIGV2aWN0X2lub2RlcygpIHdpbGwgYmUgY2FsbGVkIHdoaWNoXFxuZnMvZnVzZS92aXJ0aW9fZnMuYy0xNjM1LVxcdCAqIHdpbGwgZnJlZSBhbGwgbWVtb3J5IHJhbmdlcyBiZWxvbmdpbmcgdG8gYWxsIGlub2Rlcy5cXG4tLVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jPTE3MTA9c3RhdGljIGludCBnZnMyX21ldGFfaW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYylcXG4tLVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3MjEtLyoqXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTcyMjogKiBnZnMyX2V2aWN0X2lub2RlcyAtIGV2aWN0IGlub2RlcyBjb29wZXJhdGl2ZWx5XFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTcyMy0gKiBAc2I6IHRoZSBzdXBlcmJsb2NrXFxuLS1cXG5mcy9nZnMyL29wc19mc3R5cGUuYy0xNzMzLSAqXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTczNDogKiBGdW5jdGlvbiBldmljdF9pbm9kZXMoKSB0cmllcyB0byBrZWVwIHRoZSBzX2lub2RlX2xpc3RfbG9jayBsaXN0IGxvY2tlZCBvdmVyXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTczNS0gKiBhIGxvbmcgdGltZSwgd2hpY2ggcHJldmVudHMgb3RoZXIgaW5vZGVzIGZyb20gYmVpbmcgZXZpY3RlZCBjb25jdXJyZW50bHkuXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTczNi0gKiBUaGlzIHByZWNsdWRlcyB0aGUgY29vcGVyYXRpdmUgYmVoYXZpb3Igd2UgYXJlIGxvb2tpbmcgZm9yLiAgVGhpcyBzcGVjaWFsXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTczNzogKiB2ZXJzaW9uIG9mIGV2aWN0X2lub2RlcygpIGF2b2lkcyB0aGF0LlxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3MzgtICpcXG4tLVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3NDAtICovXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTc0MTpzdGF0aWMgdm9pZCBnZnMyX2V2aWN0X2lub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3NDIte1xcbi0tXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM9MTc3MD1zdGF0aWMgdm9pZCBnZnMyX2tpbGxfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4tLVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3ODUtXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTc4NjpcXHRnZnMyX2V2aWN0X2lub2RlcyhzYik7XFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTc4Ny1cXG4tLVxcbmZzL2lub2RlLmM9ODYyPXN0YXRpYyB2b2lkIGRpc3Bvc2VfbGlzdChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKVxcbi0tXFxuZnMvaW5vZGUuYy04NzUtLyoqXFxuZnMvaW5vZGUuYzo4NzY6ICogZXZpY3RfaW5vZGVzXFx0LSBldmljdCBhbGwgZXZpY3RhYmxlIGlub2RlcyBmb3IgYSBzdXBlcmJsb2NrXFxuZnMvaW5vZGUuYy04NzctICogQHNiOlxcdFxcdHN1cGVyYmxvY2sgdG8gb3BlcmF0ZSBvblxcbi0tXFxuZnMvaW5vZGUuYy04ODgtICovXFxuZnMvaW5vZGUuYzo4ODk6dm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9pbm9kZS5jLTg5MC17XFxuLS1cXG5mcy9pbm9kZS5jLTk0My19XFxuZnMvaW5vZGUuYzo5NDQ6RVhQT1JUX1NZTUJPTF9HUEwoZXZpY3RfaW5vZGVzKTtcXG5mcy9pbm9kZS5jLTk0NS1cXG4tLVxcbmZzL3NtYi9jbGllbnQvZmlsZS5jPTM2OT1jaWZzX21hcmtfb3Blbl9maWxlc19pbnZhbGlkKHN0cnVjdCBjaWZzX3Rjb24gKnRjb24pXFxuLS1cXG5mcy9zbWIvY2xpZW50L2ZpbGUuYy00MDItXFx0LypcXG5mcy9zbWIvY2xpZW50L2ZpbGUuYzo0MDM6XFx0ICogQkIgQWRkIGNhbGwgdG8gZXZpY3RfaW5vZGVzKHNiKSBmb3IgYWxsIHN1cGVyYmxvY2tzIG1vdW50ZWRcXG5mcy9zbWIvY2xpZW50L2ZpbGUuYy00MDQtXFx0ICogdG8gdGhpcyB0Y29uLlxcbi0tXFxuZnMvc3VwZXIuYz02MTk9dm9pZCBnZW5lcmljX3NodXRkb3duX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuLS1cXG5mcy9zdXBlci5jLTYzMi1cXHRcXHQvKiBFdmljdCBhbGwgaW5vZGVzIHdpdGggemVybyByZWZjb3VudC4gKi9cXG5mcy9zdXBlci5jOjYzMzpcXHRcXHRldmljdF9pbm9kZXMoc2IpO1xcbmZzL3N1cGVyLmMtNjM0LVxcbi0tXFxuZnMvc3VwZXIuYz0xMzk2PXN0YXRpYyB2b2lkIGZzX2JkZXZfbWFya19kZWFkKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGJvb2wgc3VycHJpc2UpXFxuLS1cXG5mcy9zdXBlci5jLTE0MTctXFx0c2hyaW5rX2RjYWNoZV9zYihzYik7XFxuZnMvc3VwZXIuYzoxNDE4OlxcdGV2aWN0X2lub2RlcyhzYik7XFxuZnMvc3VwZXIuYy0xNDE5LVxcdGlmIChzYi1cXHUwMDNlc19vcC1cXHUwMDNlc2h1dGRvd24pXFxuLS1cXG5mcy94ZnMveGZzX2xvZy5jPTY2Mj14ZnNfbG9nX21vdW50X2ZpbmlzaChcXG4tLVxcbmZzL3hmcy94ZnNfbG9nLmMtNjk3LVxcdG1wLVxcdTAwM2VtX3N1cGVyLVxcdTAwM2VzX2ZsYWdzIFxcdTAwMjY9IH5TQl9BQ1RJVkU7XFxuZnMveGZzL3hmc19sb2cuYzo2OTg6XFx0ZXZpY3RfaW5vZGVzKG1wLVxcdTAwM2VtX3N1cGVyKTtcXG5mcy94ZnMveGZzX2xvZy5jLTY5OS1cXG4tLVxcbmluY2x1ZGUvbGludXgvZnMuaD0yOTkzPXVuc2lnbmVkIGludCBnZXRfbmV4dF9pbm8odm9pZCk7XFxuaW5jbHVkZS9saW51eC9mcy5oOjI5OTQ6dm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuaW5jbHVkZS9saW51eC9mcy5oLTI5OTUtdm9pZCBkdW1wX21hcHBpbmcoY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKik7XFxuLS1cXG5zZWN1cml0eS9sYW5kbG9jay9mcy5jPTEyNjE9c3RhdGljIHZvaWQgaG9va19pbm9kZV9mcmVlX3NlY3VyaXR5X3JjdSh2b2lkICppbm9kZV9zZWN1cml0eSlcXG4tLVxcbnNlY3VyaXR5L2xhbmRsb2NrL2ZzLmMtMTI3Ny0gKlxcbnNlY3VyaXR5L2xhbmRsb2NrL2ZzLmM6MTI3ODogKiBDZi4gZnNub3RpZnlfdW5tb3VudF9pbm9kZXMoKSBhbmQgZXZpY3RfaW5vZGVzKClcXG5zZWN1cml0eS9sYW5kbG9jay9mcy5jLTEyNzktICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDA0OjU3OjI3LjAwNjIwMjUyN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMDI1ODMwNjc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgVkZTIFBhdGNoIGZvciBgZXZpY3RfaW5vZGVzYCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWRkcmVzc2luZyB0aGUgYGV2aWN0X2lub2Rlc2AgZnVuY3Rpb24sIHdoaWNoLCBhcyBJIHVuZGVyc3RhbmQsIGlzIGNhbGxlZCBkdXJpbmcgZmlsZXN5c3RlbSB1bm1vdW50IHZpYSBgZ2VuZXJpY19zaHV0ZG93bl9zdXBlcmAuIEl0J3MgYWxzbyByZWFjaGFibGUgdGhyb3VnaCBhIGZldyBlcnJvciBwYXRocyByZWxhdGVkIHRvIGJsb2NrIGRldmljZSByZW1vdmFsIG9yIGZpbGVzeXN0ZW0gaW5pdGlhbGl6YXRpb24sIGJ1dCB0aGUgcHJpbWFyeSB0cmlnZ2VyIGlzIHVubW91bnQuICBNeSBtZW50YWwgbW9kZWwgb2YgdGhpcyBwYXJ0IG9mIHRoZSBWRlMgaXMgc29saWQsIGFuZCBJJ20gZmFtaWxpYXIgd2l0aCBob3cgYGV2aWN0X2lub2Rlc2AgaXRlcmF0ZXMgdGhyb3VnaCBpbm9kZXMgdG8gZXZpY3QgdGhvc2Ugd2l0aCBhIHplcm8gcmVmY291bnQuXG5cblRoZSBjb3JlIG9mIHRoZSBpc3N1ZSBpcyB0aGUgaXRlcmF0aW9uIHdpdGhpbiBgZXZpY3RfaW5vZGVzYC4gVGhlIGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGNhbiwgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zLCBjYXVzZSBwZXJmb3JtYW5jZSBpc3N1ZXMgZHVlIHRvIHJlc3RhcnRpbmcgdGhlIGl0ZXJhdGlvbiBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGBzYi1cdTAwM2VzX2lub2Rlc2AgbGlzdCBhZnRlciBkcm9wcGluZyBhbmQgcmVhY3F1aXJpbmcgdGhlIGxvY2suIFRoaXMgc2VlbXMgbGlrZSBhIHRleHRib29rIGV4YW1wbGUgb2YgYSBwb3RlbnRpYWwgTyhuXjIpIHNjZW5hcmlvIHRoYXQgbmVlZHMgdG8gYmUgYXZvaWRlZC5cblxuVGhlIHBhdGNoJ3Mgc29sdXRpb24gaXMgZWxlZ2FudDogaXQgaW50cm9kdWNlcyBhIGN1cnNvciwgYGN1cnNvcmAsIGRpcmVjdGx5IHdpdGhpbiBgc2ItXHUwMDNlc19pbm9kZXNgIHRvIG1haW50YWluIHRoZSBpdGVyYXRpb24gcG9zaXRpb24uIGBsaXN0X21vdmVgIGlzIHVzZWQgdG8gZWZmaWNpZW50bHkgYWR2YW5jZSB0aGlzIGN1cnNvciwgYWxsb3dpbmcgdGhlIGxvb3AgdG8gcmVzdW1lIGZyb20gZXhhY3RseSB3aGVyZSBpdCBsZWZ0IG9mZiBhZnRlciB0aGUgbG9jayBpcyBkcm9wcGVkLiBUaGlzIGVsaW1pbmF0ZXMgdGhlIG5lZWQgdG8gcmVzdGFydCwgaW1wcm92aW5nIGVmZmljaWVuY3kuXG5cblRoZSBwYXRjaCBpdHNlbGYgaXMgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQuIFRoZSBjb2RlIGhpZ2hsaWdodHMgdGhlIGtleSBjaGFuZ2VzOiB0aGUgYWRkaXRpb24gb2YgdGhlIGBjdXJzb3JgIG5vZGUgYW5kIHRoZSB1c2Ugb2YgYGxpc3RfbW92ZWAgdG8gYWR2YW5jZSB0aGUgaXRlcmF0aW9uLiBUaGUgY29kZSBhbHNvIGluY2x1ZGVzIHRoZSB1c3VhbCBjb25zaWRlcmF0aW9ucyBsaWtlIGBuZWVkX3Jlc2NoZWQoKWAgdG8gYXZvaWQgbGl2ZWxvY2sgZHVyaW5nIHVubW91bnQgaWYgdGhlcmUgYXJlIGEgKmxvdCogb2YgaW5vZGVzIHRvIGV2aWN0LiBUaGUgcGF0Y2ggYXBwZWFycyB0byBoYXZlIG5vIGRlcGVuZGVuY2llcyBvciBzcGVjaWFsIGNvbmZpZ3VyYXRpb25zIHJlcXVpcmVkLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hhbmdlIHRoYXQncyBhbHdheXMgaW4gcGxheS5cblxuR2l2ZW4gdGhlIGltcG9ydGFuY2Ugb2YgYGV2aWN0X2lub2Rlc2AgdG8gdGhlIHVubW91bnQgcHJvY2VzcyBhbmQgdGhlIGNsZWFyIG9wdGltaXphdGlvbiB0aGlzIHBhdGNoIHByb3ZpZGVzLCBJJ20gY29uZmlkZW50IGl0J3MgYSB3b3J0aHdoaWxlIGFyZWEgdG8gaW52ZXN0aWdhdGUgZnVydGhlci4gSXQncyBhIGNvcmUgVkZTIGZ1bmN0aW9uIGFuZCBhbnkgZmlsZXN5c3RlbSB1bm1vdW50IHdpbGwgdHJpZ2dlciBpdC5cblxuVGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGFueSBuZWVkIHRvIGxvb2sgaW50byBvdGhlciBmdW5jdGlvbnMgbGlrZSBgZ2VuZXJpY19zaHV0ZG93bl9zdXBlcmAgYmVjYXVzZSB0aGUgcGF0Y2ggb25seSB0b3VjaGVzIGBldmljdF9pbm9kZXNgLiBJdCdzIG5vdCBhIGhvdCBwYXRoLCBzaW5jZSBpdCdzIG9ubHkgY2FsbGVkIG9uIHVubW91bnQuXG5cbkluIHN1bW1hcnksIHRoZSBwYXRjaCBtb2RpZmllcyBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGVmZmljaWVudCBpbm9kZSBldmljdGlvbiBkdXJpbmcgdW5tb3VudC4gVGhpcyBhdm9pZHMgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLCBzbyBJIHdvdWxkIHN1Z2dlc3Qgc2V0dGluZyB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgdHJ1ZWAsIGZvY3VzaW5nIG9uIHRoZSBgZXZpY3RfaW5vZGVzYCBzeW1ib2wsIGFuZCBub3Qgc2V0dGluZyBhbnkgc3BlY2lhbCBjb25maWdzLiBJdCdzIGEgZ29vZCBwYXRjaC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM1MywiT3V0cHV0VG9rZW5zIjo5OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwNDo1NzozOC4wMzIwMzUxMDNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwODExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXZpY3RfaW5vZGVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVkZTIGZ1bmN0aW9uIGBldmljdF9pbm9kZXNgIHRvIHVzZSBhIGN1cnNvciBmb3IgaXRlcmF0aW5nIG92ZXIgYHNiLVxcdTAwM2VzX2lub2Rlc2AgZHVyaW5nIHN1cGVyYmxvY2sgc2h1dGRvd24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG9wdGltaXplcyB1bm1vdW50IHRpbWVzIGFuZCBhdm9pZHMgTyhuXjIpIGJlaGF2aW9yLiBJdCBpcyByZWFjaGFibGUgYnkgdW5tb3VudGluZyBhbnkgZmlsZXN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJldmljdF9pbm9kZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBWRlMgZnVuY3Rpb24gYGV2aWN0X2lub2Rlc2AgdG8gdXNlIGEgY3Vyc29yIGZvciBpdGVyYXRpbmcgb3ZlciBgc2ItXFx1MDAzZXNfaW5vZGVzYCBkdXJpbmcgc3VwZXJibG9jayBzaHV0ZG93bi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgb3B0aW1pemVzIHVubW91bnQgdGltZXMgYW5kIGF2b2lkcyBPKG5eMikgYmVoYXZpb3IuIEl0IGlzIHJlYWNoYWJsZSBieSB1bm1vdW50aW5nIGFueSBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowrtfxv[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-14 04:39:46 +0000 UTC FinishedAt: 2026-07-14 04:57:39 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "502d801f0ab03e4f32f9a33d203154ce84887921", "config_name": "upstream-apparmor-kasan.config", "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "bpf-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git", "commit_hash": "502d801f0ab03e4f32f9a33d203154ce84887921", "config_name": "upstream-apparmor-kasan.config", "series_id": "1c64f878-c0ae-4088-bf32-93ca839c4e3a" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "evict_inodes" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE0IDA0OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXZpY3RfaW5vZGVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFZGUyBmdW5jdGlvbiBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGl0ZXJhdGluZyBvdmVyIGBzYi1cdTAwM2VzX2lub2Rlc2AgZHVyaW5nIHN1cGVyYmxvY2sgc2h1dGRvd24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG9wdGltaXplcyB1bm1vdW50IHRpbWVzIGFuZCBhdm9pZHMgTyhuXjIpIGJlaGF2aW9yLiBJdCBpcyByZWFjaGFibGUgYnkgdW5tb3VudGluZyBhbnkgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwNDo1NzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQxMGVkMTE5ZDA3OWEzNGFiNjE3ZDhhYjgyZDg4OTYyMmUyNWFhNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAxNCAwNDo1NzoxOSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9pbm9kZS5jIGIvZnMvaW5vZGUuY1xuaW5kZXggYWNmMjA2YmViMmUwMzQuLjE5MTk3MzY4YzZhNjc4IDEwMDY0NFxuLS0tIGEvZnMvaW5vZGUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvaW5vZGUuY1xuQEAgLTg4MCwxNSAmIzQzOzg4MCwzMSBAQCBzdGF0aWMgdm9pZCBkaXNwb3NlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcbiAgKiBjYWxsZWQgYnkgc3VwZXJibG9jayBzaHV0ZG93biBhZnRlciBoYXZpbmcgU0JfQUNUSVZFIGZsYWcgcmVtb3ZlZCxcbiAgKiBzbyBhbnkgaW5vZGUgcmVhY2hpbmcgemVybyByZWZjb3VudCBkdXJpbmcgb3IgYWZ0ZXIgdGhhdCBjYWxsIHdpbGxcbiAgKiBiZSBpbW1lZGlhdGVseSBldmljdGVkLlxuJiM0MzsgKlxuJiM0MzsgKiBVc2UgYSBjdXJzb3Igbm9kZSBlbWJlZGRlZCBpbiBzYi1cdTAwM2VzX2lub2RlcyB0byByZXN1bWUgdHJhdmVyc2FsIGFmdGVyXG4mIzQzOyAqIGRyb3BwaW5nIHNfaW5vZGVfbGlzdF9sb2NrIGZvciBjb25kX3Jlc2NoZWQoKSAmIzQzOyBkaXNwb3NlX2xpc3QoKS4gIFRoaXNcbiYjNDM7ICogYXZvaWRzIHJlc3RhcnRpbmcgdGhlIHNjYW4gZnJvbSB0aGUgbGlzdCBoZWFkIG9uIGVhY2ggcmVzY2hlZHVsZSwgZ2l2aW5nXG4mIzQzOyAqIE8obikgdG90YWwgdHJhdmVyc2FsIGluc3RlYWQgb2YgTyhuICogcikgd2hlcmUgciBpcyB0aGUgcmVzY2hlZHVsZSBjb3VudC5cbiAgKi9cbiB2b2lkIGV2aWN0X2lub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIHtcbiBcdHN0cnVjdCBpbm9kZSAqaW5vZGU7XG4gXHRMSVNUX0hFQUQoZGlzcG9zZSk7XG4mIzQzO1x0LypcbiYjNDM7XHQgKiBFbWJlZCBhIGN1cnNvciBub2RlIGRpcmVjdGx5IGluIHNiLVx1MDAzZXNfaW5vZGVzLiAgbGlzdF9tb3ZlKCkgYWR2YW5jZXNcbiYjNDM7XHQgKiBpdCBwYXN0IGVhY2ggdmlzaXRlZCBpbm9kZSBpbiBPKDEpLCBzbyB0aGUgbG9vcCByZXN1bWVzIGZyb20gZXhhY3RseVxuJiM0MztcdCAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFmdGVyIGxvY2sgZHJvcCByYXRoZXIgdGhhbiBmcm9tIHRoZSBsaXN0IGhlYWQuXG4mIzQzO1x0ICovXG4mIzQzO1x0c3RydWN0IGxpc3RfaGVhZCBjdXJzb3I7XG4gXG4tYWdhaW46XG4gXHRzcGluX2xvY2soXHUwMDI2c2ItXHUwMDNlc19pbm9kZV9saXN0X2xvY2spO1xuLVx0bGlzdF9mb3JfZWFjaF9lbnRyeShpbm9kZSwgXHUwMDI2c2ItXHUwMDNlc19pbm9kZXMsIGlfc2JfbGlzdCkge1xuJiM0MztcdGxpc3RfYWRkKFx1MDAyNmN1cnNvciwgXHUwMDI2c2ItXHUwMDNlc19pbm9kZXMpO1xuJiM0MztcbiYjNDM7XHR3aGlsZSAoY3Vyc29yLm5leHQgIT0gXHUwMDI2c2ItXHUwMDNlc19pbm9kZXMpIHtcbiYjNDM7XHRcdGlub2RlID0gbGlzdF9lbnRyeShjdXJzb3IubmV4dCwgc3RydWN0IGlub2RlLCBpX3NiX2xpc3QpO1xuJiM0MztcdFx0LyogTGVhdmUgdGhlIGN1cnNvciBpbW1lZGlhdGVseSBhZnRlciB0aGUgY3VycmVudCBpbm9kZS4gKi9cbiYjNDM7XHRcdGxpc3RfbW92ZShcdTAwMjZjdXJzb3IsIFx1MDAyNmlub2RlLVx1MDAzZWlfc2JfbGlzdCk7XG4mIzQzO1xuIFx0XHRpZiAoaWNvdW50X3JlYWRfb25jZShpbm9kZSkpXG4gXHRcdFx0Y29udGludWU7XG4gXG5AQCAtOTE2LDkgJiM0Mzs5MzIsMTEgQEAgdm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbiBcdFx0XHRzcGluX3VubG9jayhcdTAwMjZzYi1cdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XG4gXHRcdFx0Y29uZF9yZXNjaGVkKCk7XG4gXHRcdFx0ZGlzcG9zZV9saXN0KFx1MDAyNmRpc3Bvc2UpO1xuLVx0XHRcdGdvdG8gYWdhaW47XG4mIzQzO1x0XHRcdHNwaW5fbG9jayhcdTAwMjZzYi1cdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XG4gXHRcdH1cbiBcdH1cbiYjNDM7XG4mIzQzO1x0bGlzdF9kZWwoXHUwMDI2Y3Vyc29yKTtcbiBcdHNwaW5fdW5sb2NrKFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVfbGlzdF9sb2NrKTtcbiBcbiBcdGRpc3Bvc2VfbGlzdChcdTAwMjZkaXNwb3NlKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNCAwNDo1NzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2V2aWN0X2lub2RlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBWRlMgZnVuY3Rpb24gYGV2aWN0X2lub2Rlc2AgdG8gdXNlIGEgY3Vyc29yIGZvciBpdGVyYXRpbmcgb3ZlciBgc2ItXHUwMDNlc19pbm9kZXNgIGR1cmluZyBzdXBlcmJsb2NrIHNodXRkb3duLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBvcHRpbWl6ZXMgdW5tb3VudCB0aW1lcyBhbmQgYXZvaWRzIE8obl4yKSBiZWhhdmlvci4gSXQgaXMgcmVhY2hhYmxlIGJ5IHVubW91bnRpbmcgYW55IGZpbGVzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQxMGVkMTE5ZDA3OWEzNGFiNjE3ZDhhYjgyZDg4OTYyMmUyNWFhNjcKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCAxNCAwNDo1NzoxOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2ZzL2lub2RlLmMgYi9mcy9pbm9kZS5jCmluZGV4IGFjZjIwNmJlYjJlMDM0Li4xOTE5NzM2OGM2YTY3OCAxMDA2NDQKLS0tIGEvZnMvaW5vZGUuYwomIzQzOyYjNDM7JiM0MzsgYi9mcy9pbm9kZS5jCkBAIC04ODAsMTUgJiM0Mzs4ODAsMzEgQEAgc3RhdGljIHZvaWQgZGlzcG9zZV9saXN0KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiAgKiBjYWxsZWQgYnkgc3VwZXJibG9jayBzaHV0ZG93biBhZnRlciBoYXZpbmcgU0JfQUNUSVZFIGZsYWcgcmVtb3ZlZCwKICAqIHNvIGFueSBpbm9kZSByZWFjaGluZyB6ZXJvIHJlZmNvdW50IGR1cmluZyBvciBhZnRlciB0aGF0IGNhbGwgd2lsbAogICogYmUgaW1tZWRpYXRlbHkgZXZpY3RlZC4KJiM0MzsgKgomIzQzOyAqIFVzZSBhIGN1cnNvciBub2RlIGVtYmVkZGVkIGluIHNiLSZndDtzX2lub2RlcyB0byByZXN1bWUgdHJhdmVyc2FsIGFmdGVyCiYjNDM7ICogZHJvcHBpbmcgc19pbm9kZV9saXN0X2xvY2sgZm9yIGNvbmRfcmVzY2hlZCgpICYjNDM7IGRpc3Bvc2VfbGlzdCgpLiAgVGhpcwomIzQzOyAqIGF2b2lkcyByZXN0YXJ0aW5nIHRoZSBzY2FuIGZyb20gdGhlIGxpc3QgaGVhZCBvbiBlYWNoIHJlc2NoZWR1bGUsIGdpdmluZwomIzQzOyAqIE8obikgdG90YWwgdHJhdmVyc2FsIGluc3RlYWQgb2YgTyhuICogcikgd2hlcmUgciBpcyB0aGUgcmVzY2hlZHVsZSBjb3VudC4KICAqLwogdm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwogCUxJU1RfSEVBRChkaXNwb3NlKTsKJiM0MzsJLyoKJiM0MzsJICogRW1iZWQgYSBjdXJzb3Igbm9kZSBkaXJlY3RseSBpbiBzYi0mZ3Q7c19pbm9kZXMuICBsaXN0X21vdmUoKSBhZHZhbmNlcwomIzQzOwkgKiBpdCBwYXN0IGVhY2ggdmlzaXRlZCBpbm9kZSBpbiBPKDEpLCBzbyB0aGUgbG9vcCByZXN1bWVzIGZyb20gZXhhY3RseQomIzQzOwkgKiB0aGUgY3VycmVudCBwb3NpdGlvbiBhZnRlciBsb2NrIGRyb3AgcmF0aGVyIHRoYW4gZnJvbSB0aGUgbGlzdCBoZWFkLgomIzQzOwkgKi8KJiM0MzsJc3RydWN0IGxpc3RfaGVhZCBjdXJzb3I7CiAKLWFnYWluOgogCXNwaW5fbG9jaygmYW1wO3NiLSZndDtzX2lub2RlX2xpc3RfbG9jayk7Ci0JbGlzdF9mb3JfZWFjaF9lbnRyeShpbm9kZSwgJmFtcDtzYi0mZ3Q7c19pbm9kZXMsIGlfc2JfbGlzdCkgewomIzQzOwlsaXN0X2FkZCgmYW1wO2N1cnNvciwgJmFtcDtzYi0mZ3Q7c19pbm9kZXMpOwomIzQzOwomIzQzOwl3aGlsZSAoY3Vyc29yLm5leHQgIT0gJmFtcDtzYi0mZ3Q7c19pbm9kZXMpIHsKJiM0MzsJCWlub2RlID0gbGlzdF9lbnRyeShjdXJzb3IubmV4dCwgc3RydWN0IGlub2RlLCBpX3NiX2xpc3QpOwomIzQzOwkJLyogTGVhdmUgdGhlIGN1cnNvciBpbW1lZGlhdGVseSBhZnRlciB0aGUgY3VycmVudCBpbm9kZS4gKi8KJiM0MzsJCWxpc3RfbW92ZSgmYW1wO2N1cnNvciwgJmFtcDtpbm9kZS0mZ3Q7aV9zYl9saXN0KTsKJiM0MzsKIAkJaWYgKGljb3VudF9yZWFkX29uY2UoaW5vZGUpKQogCQkJY29udGludWU7CiAKQEAgLTkxNiw5ICYjNDM7OTMyLDExIEBAIHZvaWQgZXZpY3RfaW5vZGVzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiAJCQlzcGluX3VubG9jaygmYW1wO3NiLSZndDtzX2lub2RlX2xpc3RfbG9jayk7CiAJCQljb25kX3Jlc2NoZWQoKTsKIAkJCWRpc3Bvc2VfbGlzdCgmYW1wO2Rpc3Bvc2UpOwotCQkJZ290byBhZ2FpbjsKJiM0MzsJCQlzcGluX2xvY2soJmFtcDtzYi0mZ3Q7c19pbm9kZV9saXN0X2xvY2spOwogCQl9CiAJfQomIzQzOwomIzQzOwlsaXN0X2RlbCgmYW1wO2N1cnNvcik7CiAJc3Bpbl91bmxvY2soJmFtcDtzYi0mZ3Q7c19pbm9kZV9saXN0X2xvY2spOwogCiAJZGlzcG9zZV9saXN0KCZhbXA7ZGlzcG9zZSk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDA0OjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNTQKCQkJCQkJCW91dHB1dDogMTgKCQkJCQkJCXRob3VnaHRzOiAxNzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBgZXZpY3RfaW5vZGVzYCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0JiMzOTtzIHR3ZWFraW5nIGBldmljdF9pbm9kZXNgIHdpdGhpbiBgZnMvaW5vZGUuY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgcmV2b2x2ZXMgYXJvdW5kIGhvdyBpdCBpdGVyYXRlcyB0aHJvdWdoIGBzYi0mZ3Q7c19pbm9kZXNgLiBJbnN0ZWFkIG9mIHRoZSBzdGFuZGFyZCBsaW5lYXIgc2NhbiB3ZSYjMzk7cmUgdXNlZCB0bywgdGhleSYjMzk7cmUgaW50cm9kdWNpbmcgdGhpcyBgY3Vyc29yYCBub2RlIGRpcmVjdGx5IGVtYmVkZGVkIHdpdGhpbiBgc2ItJmd0O3NfaW5vZGVzYC4gVGhlIGlkZWEgaXMgc21hcnQ6IGl0IGxldHMgdXMgcGljayB1cCB0aGUgdHJhdmVyc2FsIHdoZXJlIHdlIGxlZnQgb2ZmIGFmdGVyIGRyb3BwaW5nIHRoZSBgc19pbm9kZV9saXN0X2xvY2tgLCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBgY29uZF9yZXNjaGVkKClgIGNhbGxzIGFuZCBzdWJzZXF1ZW50IGBkaXNwb3NlX2xpc3QoKWAgb3BlcmF0aW9ucy4gVGhpcyBpcyBrZXkg4oCTIGl0IHByZXZlbnRzIHJlc3RhcnRpbmcgdGhlIGVudGlyZSBzY2FuIGZyb20gdGhlIGxpc3QgaGVhZCBldmVyeSBzaW5nbGUgdGltZSB3ZSByZXNjaGVkdWxlLiBUaGUgaW1wbGljYXRpb25zIGFyZSBjbGVhcjogaW5zdGVhZCBvZiB0aGUgbmFzdHkgTyhuICogcikgY29tcGxleGl0eSwgd2hlcmUgJiMzOTtyJiMzOTsgaXMgdGhlIHJlc2NoZWR1bGUgY291bnQsIHdlJiMzOTtyZSBub3cgbG9va2luZyBhdCBPKG4pIHRvdGFsIHRyYXZlcnNhbCB0aW1lLgoKVGhpcyBpcyBhIHByZXR0eSBmdW5kYW1lbnRhbCBjaGFuZ2UgdG8gdGhlIFZGUyBsb2dpYywgcmlnaHQgaW4gdGhlIGhlYXJ0IG9mIGBldmljdF9pbm9kZXNgLiBUaGF0IG1ha2VzIHRoaXMgcGF0Y2ggYSBwcmltZSBjYW5kaWRhdGUgZm9yIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBFc3BlY2lhbGx5IHNpbmNlIGBldmljdF9pbm9kZXNgIGlzIGEgY29yZSBwYXJ0IG9mIHRoZSBzdXBlcmJsb2NrIHNodXRkb3duIHByb2Nlc3MsIHdoaWNoIGlzIGEgc2Vuc2l0aXZlIGFyZWEuCgpOb3csIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB3ZSB1bmRlcnN0YW5kICphbGwqIHRoZSBpbXBsaWNhdGlvbnMuIEkgd2FudCB0byBxdWlja2x5IGNoZWNrIHRoZSBjYWxsZXJzIG9mIGBldmljdF9pbm9kZXNgIGp1c3QgdG8gZ2V0IGEgYnJvYWRlciBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE0IDA0OjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2V2aWN0X2lub2RlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3BvcnRpbmcucnN0PTExNzk9TE9PS19DUkVBVEUgb3IgTE9PS1VQX1JFTkFNRV9UQVJHRVQuXG4tLVxuRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wb3J0aW5nLnJzdC0xMTgzLSoqbWFuZGF0b3J5KipcbkRvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcG9ydGluZy5yc3Q6MTE4NDppbnZhbGlkYXRlX2lub2RlcygpIGlzIGdvbmUgdXNlIGV2aWN0X2lub2RlcygpIGluc3RlYWQuXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3BvcnRpbmcucnN0LTExODUtXG4tLVxuZnMvZjJmcy9zdXBlci5jPTQ5NDY9c3RhdGljIGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKVxuLS1cbmZzL2YyZnMvc3VwZXIuYy01Mzk3LVx0LyogZXZpY3Qgc29tZSBpbm9kZXMgYmVpbmcgY2FjaGVkIGJ5IEdDICovXG5mcy9mMmZzL3N1cGVyLmM6NTM5ODpcdGV2aWN0X2lub2RlcyhzYik7XG5mcy9mMmZzL3N1cGVyLmMtNTM5OS1cdGYyZnNfdW5yZWdpc3Rlcl9zeXNmcyhzYmkpO1xuLS1cbmZzL2Z1c2UvdmlydGlvX2ZzLmM9MTYyOD1zdGF0aWMgdm9pZCB2aXJ0aW9fZnNfY29ubl9kZXN0cm95KHN0cnVjdCBmdXNlX21vdW50ICpmbSlcbi0tXG5mcy9mdXNlL3ZpcnRpb19mcy5jLTE2MzMtXG5mcy9mdXNlL3ZpcnRpb19mcy5jOjE2MzQ6XHQvKiBTdG9wIGRheCB3b3JrZXIuIFNvb24gZXZpY3RfaW5vZGVzKCkgd2lsbCBiZSBjYWxsZWQgd2hpY2hcbmZzL2Z1c2UvdmlydGlvX2ZzLmMtMTYzNS1cdCAqIHdpbGwgZnJlZSBhbGwgbWVtb3J5IHJhbmdlcyBiZWxvbmdpbmcgdG8gYWxsIGlub2Rlcy5cbi0tXG5mcy9nZnMyL29wc19mc3R5cGUuYz0xNzEwPXN0YXRpYyBpbnQgZ2ZzMl9tZXRhX2luaXRfZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpXG4tLVxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTcyMS0vKipcbmZzL2dmczIvb3BzX2ZzdHlwZS5jOjE3MjI6ICogZ2ZzMl9ldmljdF9pbm9kZXMgLSBldmljdCBpbm9kZXMgY29vcGVyYXRpdmVseVxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTcyMy0gKiBAc2I6IHRoZSBzdXBlcmJsb2NrXG4tLVxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTczMy0gKlxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTczNDogKiBGdW5jdGlvbiBldmljdF9pbm9kZXMoKSB0cmllcyB0byBrZWVwIHRoZSBzX2lub2RlX2xpc3RfbG9jayBsaXN0IGxvY2tlZCBvdmVyXG5mcy9nZnMyL29wc19mc3R5cGUuYy0xNzM1LSAqIGEgbG9uZyB0aW1lLCB3aGljaCBwcmV2ZW50cyBvdGhlciBpbm9kZXMgZnJvbSBiZWluZyBldmljdGVkIGNvbmN1cnJlbnRseS5cbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3MzYtICogVGhpcyBwcmVjbHVkZXMgdGhlIGNvb3BlcmF0aXZlIGJlaGF2aW9yIHdlIGFyZSBsb29raW5nIGZvci4gIFRoaXMgc3BlY2lhbFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTczNzogKiB2ZXJzaW9uIG9mIGV2aWN0X2lub2RlcygpIGF2b2lkcyB0aGF0LlxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTczOC0gKlxuLS1cbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3NDAtICovXG5mcy9nZnMyL29wc19mc3R5cGUuYzoxNzQxOnN0YXRpYyB2b2lkIGdmczJfZXZpY3RfaW5vZGVzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG5mcy9nZnMyL29wc19mc3R5cGUuYy0xNzQyLXtcbi0tXG5mcy9nZnMyL29wc19mc3R5cGUuYz0xNzcwPXN0YXRpYyB2b2lkIGdmczJfa2lsbF9zYihzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3ODUtXG5mcy9nZnMyL29wc19mc3R5cGUuYzoxNzg2Olx0Z2ZzMl9ldmljdF9pbm9kZXMoc2IpO1xuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTc4Ny1cbi0tXG5mcy9pbm9kZS5jPTg2Mj1zdGF0aWMgdm9pZCBkaXNwb3NlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcbi0tXG5mcy9pbm9kZS5jLTg3NS0vKipcbmZzL2lub2RlLmM6ODc2OiAqIGV2aWN0X2lub2Rlc1x0LSBldmljdCBhbGwgZXZpY3RhYmxlIGlub2RlcyBmb3IgYSBzdXBlcmJsb2NrXG5mcy9pbm9kZS5jLTg3Ny0gKiBAc2I6XHRcdHN1cGVyYmxvY2sgdG8gb3BlcmF0ZSBvblxuLS1cbmZzL2lub2RlLmMtODg4LSAqL1xuZnMvaW5vZGUuYzo4ODk6dm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbmZzL2lub2RlLmMtODkwLXtcbi0tXG5mcy9pbm9kZS5jLTk0My19XG5mcy9pbm9kZS5jOjk0NDpFWFBPUlRfU1lNQk9MX0dQTChldmljdF9pbm9kZXMpO1xuZnMvaW5vZGUuYy05NDUtXG4tLVxuZnMvc21iL2NsaWVudC9maWxlLmM9MzY5PWNpZnNfbWFya19vcGVuX2ZpbGVzX2ludmFsaWQoc3RydWN0IGNpZnNfdGNvbiAqdGNvbilcbi0tXG5mcy9zbWIvY2xpZW50L2ZpbGUuYy00MDItXHQvKlxuZnMvc21iL2NsaWVudC9maWxlLmM6NDAzOlx0ICogQkIgQWRkIGNhbGwgdG8gZXZpY3RfaW5vZGVzKHNiKSBmb3IgYWxsIHN1cGVyYmxvY2tzIG1vdW50ZWRcbmZzL3NtYi9jbGllbnQvZmlsZS5jLTQwNC1cdCAqIHRvIHRoaXMgdGNvbi5cbi0tXG5mcy9zdXBlci5jPTYxOT12b2lkIGdlbmVyaWNfc2h1dGRvd25fc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbi0tXG5mcy9zdXBlci5jLTYzMi1cdFx0LyogRXZpY3QgYWxsIGlub2RlcyB3aXRoIHplcm8gcmVmY291bnQuICovXG5mcy9zdXBlci5jOjYzMzpcdFx0ZXZpY3RfaW5vZGVzKHNiKTtcbmZzL3N1cGVyLmMtNjM0LVxuLS1cbmZzL3N1cGVyLmM9MTM5Nj1zdGF0aWMgdm9pZCBmc19iZGV2X21hcmtfZGVhZChzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBib29sIHN1cnByaXNlKVxuLS1cbmZzL3N1cGVyLmMtMTQxNy1cdHNocmlua19kY2FjaGVfc2Ioc2IpO1xuZnMvc3VwZXIuYzoxNDE4Olx0ZXZpY3RfaW5vZGVzKHNiKTtcbmZzL3N1cGVyLmMtMTQxOS1cdGlmIChzYi1cdTAwM2VzX29wLVx1MDAzZXNodXRkb3duKVxuLS1cbmZzL3hmcy94ZnNfbG9nLmM9NjYyPXhmc19sb2dfbW91bnRfZmluaXNoKFxuLS1cbmZzL3hmcy94ZnNfbG9nLmMtNjk3LVx0bXAtXHUwMDNlbV9zdXBlci1cdTAwM2VzX2ZsYWdzIFx1MDAyNj0gflNCX0FDVElWRTtcbmZzL3hmcy94ZnNfbG9nLmM6Njk4Olx0ZXZpY3RfaW5vZGVzKG1wLVx1MDAzZW1fc3VwZXIpO1xuZnMveGZzL3hmc19sb2cuYy02OTktXG4tLVxuaW5jbHVkZS9saW51eC9mcy5oPTI5OTM9dW5zaWduZWQgaW50IGdldF9uZXh0X2lubyh2b2lkKTtcbmluY2x1ZGUvbGludXgvZnMuaDoyOTk0OnZvaWQgZXZpY3RfaW5vZGVzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuaW5jbHVkZS9saW51eC9mcy5oLTI5OTUtdm9pZCBkdW1wX21hcHBpbmcoY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKik7XG4tLVxuc2VjdXJpdHkvbGFuZGxvY2svZnMuYz0xMjYxPXN0YXRpYyB2b2lkIGhvb2tfaW5vZGVfZnJlZV9zZWN1cml0eV9yY3Uodm9pZCAqaW5vZGVfc2VjdXJpdHkpXG4tLVxuc2VjdXJpdHkvbGFuZGxvY2svZnMuYy0xMjc3LSAqXG5zZWN1cml0eS9sYW5kbG9jay9mcy5jOjEyNzg6ICogQ2YuIGZzbm90aWZ5X3VubW91bnRfaW5vZGVzKCkgYW5kIGV2aWN0X2lub2RlcygpXG5zZWN1cml0eS9sYW5kbG9jay9mcy5jLTEyNzktICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDQ6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDM1MwoJCQkJCQkJb3V0cHV0OiA5OAoJCQkJCQkJdGhvdWdodHM6IDk4NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFByb3Bvc2VkIFZGUyBQYXRjaCBmb3IgYGV2aWN0X2lub2Rlc2AqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhZGRyZXNzaW5nIHRoZSBgZXZpY3RfaW5vZGVzYCBmdW5jdGlvbiwgd2hpY2gsIGFzIEkgdW5kZXJzdGFuZCwgaXMgY2FsbGVkIGR1cmluZyBmaWxlc3lzdGVtIHVubW91bnQgdmlhIGBnZW5lcmljX3NodXRkb3duX3N1cGVyYC4gSXQmIzM5O3MgYWxzbyByZWFjaGFibGUgdGhyb3VnaCBhIGZldyBlcnJvciBwYXRocyByZWxhdGVkIHRvIGJsb2NrIGRldmljZSByZW1vdmFsIG9yIGZpbGVzeXN0ZW0gaW5pdGlhbGl6YXRpb24sIGJ1dCB0aGUgcHJpbWFyeSB0cmlnZ2VyIGlzIHVubW91bnQuICBNeSBtZW50YWwgbW9kZWwgb2YgdGhpcyBwYXJ0IG9mIHRoZSBWRlMgaXMgc29saWQsIGFuZCBJJiMzOTttIGZhbWlsaWFyIHdpdGggaG93IGBldmljdF9pbm9kZXNgIGl0ZXJhdGVzIHRocm91Z2ggaW5vZGVzIHRvIGV2aWN0IHRob3NlIHdpdGggYSB6ZXJvIHJlZmNvdW50LgoKVGhlIGNvcmUgb2YgdGhlIGlzc3VlIGlzIHRoZSBpdGVyYXRpb24gd2l0aGluIGBldmljdF9pbm9kZXNgLiBUaGUgZXhpc3RpbmcgaW1wbGVtZW50YXRpb24gY2FuLCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMsIGNhdXNlIHBlcmZvcm1hbmNlIGlzc3VlcyBkdWUgdG8gcmVzdGFydGluZyB0aGUgaXRlcmF0aW9uIGZyb20gdGhlIGJlZ2lubmluZyBvZiB0aGUgYHNiLSZndDtzX2lub2Rlc2AgbGlzdCBhZnRlciBkcm9wcGluZyBhbmQgcmVhY3F1aXJpbmcgdGhlIGxvY2suIFRoaXMgc2VlbXMgbGlrZSBhIHRleHRib29rIGV4YW1wbGUgb2YgYSBwb3RlbnRpYWwgTyhuXjIpIHNjZW5hcmlvIHRoYXQgbmVlZHMgdG8gYmUgYXZvaWRlZC4KClRoZSBwYXRjaCYjMzk7cyBzb2x1dGlvbiBpcyBlbGVnYW50OiBpdCBpbnRyb2R1Y2VzIGEgY3Vyc29yLCBgY3Vyc29yYCwgZGlyZWN0bHkgd2l0aGluIGBzYi0mZ3Q7c19pbm9kZXNgIHRvIG1haW50YWluIHRoZSBpdGVyYXRpb24gcG9zaXRpb24uIGBsaXN0X21vdmVgIGlzIHVzZWQgdG8gZWZmaWNpZW50bHkgYWR2YW5jZSB0aGlzIGN1cnNvciwgYWxsb3dpbmcgdGhlIGxvb3AgdG8gcmVzdW1lIGZyb20gZXhhY3RseSB3aGVyZSBpdCBsZWZ0IG9mZiBhZnRlciB0aGUgbG9jayBpcyBkcm9wcGVkLiBUaGlzIGVsaW1pbmF0ZXMgdGhlIG5lZWQgdG8gcmVzdGFydCwgaW1wcm92aW5nIGVmZmljaWVuY3kuCgpUaGUgcGF0Y2ggaXRzZWxmIGlzIHJlbGF0aXZlbHkgc3RyYWlnaHRmb3J3YXJkLiBUaGUgY29kZSBoaWdobGlnaHRzIHRoZSBrZXkgY2hhbmdlczogdGhlIGFkZGl0aW9uIG9mIHRoZSBgY3Vyc29yYCBub2RlIGFuZCB0aGUgdXNlIG9mIGBsaXN0X21vdmVgIHRvIGFkdmFuY2UgdGhlIGl0ZXJhdGlvbi4gVGhlIGNvZGUgYWxzbyBpbmNsdWRlcyB0aGUgdXN1YWwgY29uc2lkZXJhdGlvbnMgbGlrZSBgbmVlZF9yZXNjaGVkKClgIHRvIGF2b2lkIGxpdmVsb2NrIGR1cmluZyB1bm1vdW50IGlmIHRoZXJlIGFyZSBhICpsb3QqIG9mIGlub2RlcyB0byBldmljdC4gVGhlIHBhdGNoIGFwcGVhcnMgdG8gaGF2ZSBubyBkZXBlbmRlbmNpZXMgb3Igc3BlY2lhbCBjb25maWd1cmF0aW9ucyByZXF1aXJlZC4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBjaGFuZ2UgdGhhdCYjMzk7cyBhbHdheXMgaW4gcGxheS4KCkdpdmVuIHRoZSBpbXBvcnRhbmNlIG9mIGBldmljdF9pbm9kZXNgIHRvIHRoZSB1bm1vdW50IHByb2Nlc3MgYW5kIHRoZSBjbGVhciBvcHRpbWl6YXRpb24gdGhpcyBwYXRjaCBwcm92aWRlcywgSSYjMzk7bSBjb25maWRlbnQgaXQmIzM5O3MgYSB3b3J0aHdoaWxlIGFyZWEgdG8gaW52ZXN0aWdhdGUgZnVydGhlci4gSXQmIzM5O3MgYSBjb3JlIFZGUyBmdW5jdGlvbiBhbmQgYW55IGZpbGVzeXN0ZW0gdW5tb3VudCB3aWxsIHRyaWdnZXIgaXQuCgpUaGVyZSBkb2VzbiYjMzk7dCBzZWVtIHRvIGJlIGFueSBuZWVkIHRvIGxvb2sgaW50byBvdGhlciBmdW5jdGlvbnMgbGlrZSBgZ2VuZXJpY19zaHV0ZG93bl9zdXBlcmAgYmVjYXVzZSB0aGUgcGF0Y2ggb25seSB0b3VjaGVzIGBldmljdF9pbm9kZXNgLiBJdCYjMzk7cyBub3QgYSBob3QgcGF0aCwgc2luY2UgaXQmIzM5O3Mgb25seSBjYWxsZWQgb24gdW5tb3VudC4KCkluIHN1bW1hcnksIHRoZSBwYXRjaCBtb2RpZmllcyBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGVmZmljaWVudCBpbm9kZSBldmljdGlvbiBkdXJpbmcgdW5tb3VudC4gVGhpcyBhdm9pZHMgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLCBzbyBJIHdvdWxkIHN1Z2dlc3Qgc2V0dGluZyB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgdHJ1ZWAsIGZvY3VzaW5nIG9uIHRoZSBgZXZpY3RfaW5vZGVzYCBzeW1ib2wsIGFuZCBub3Qgc2V0dGluZyBhbnkgc3BlY2lhbCBjb25maWdzLiBJdCYjMzk7cyBhIGdvb2QgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTQgMDQ6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2V2aWN0X2lub2RlcyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBWRlMgZnVuY3Rpb24gYGV2aWN0X2lub2Rlc2AgdG8gdXNlIGEgY3Vyc29yIGZvciBpdGVyYXRpbmcgb3ZlciBgc2ItXHUwMDNlc19pbm9kZXNgIGR1cmluZyBzdXBlcmJsb2NrIHNodXRkb3duLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBvcHRpbWl6ZXMgdW5tb3VudCB0aW1lcyBhbmQgYXZvaWRzIE8obl4yKSBiZWhhdmlvci4gSXQgaXMgcmVhY2hhYmxlIGJ5IHVubW91bnRpbmcgYW55IGZpbGVzeXN0ZW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXZpY3RfaW5vZGVzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFZGUyBmdW5jdGlvbiBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGl0ZXJhdGluZyBvdmVyIGBzYi1cdTAwM2VzX2lub2Rlc2AgZHVyaW5nIHN1cGVyYmxvY2sgc2h1dGRvd24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG9wdGltaXplcyB1bm1vdW50IHRpbWVzIGFuZCBhdm9pZHMgTyhuXjIpIGJlaGF2aW9yLiBJdCBpcyByZWFjaGFibGUgYnkgdW5tb3VudGluZyBhbnkgZmlsZXN5c3RlbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDA0OjU3OjIwLjM2MDk3NjM0OFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE3NjcxMDg3NTc0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImV2aWN0X2lub2Rlc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjb3JlIFZGUyBmdW5jdGlvbiBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGl0ZXJhdGluZyBvdmVyIGBzYi1cXHUwMDNlc19pbm9kZXNgIGR1cmluZyBzdXBlcmJsb2NrIHNodXRkb3duLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgdGhhdCBvcHRpbWl6ZXMgdW5tb3VudCB0aW1lcyBhbmQgYXZvaWRzIE8obl4yKSBiZWhhdmlvci4gSXQgaXMgcmVhY2hhYmxlIGJ5IHVubW91bnRpbmcgYW55IGZpbGVzeXN0ZW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDA0OjU3OjIwLjM2MDk4MDU4OFoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDE0Nzg4NjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZDEwZWQxMTlkMDc5YTM0YWI2MTdkOGFiODJkODg5NjIyZTI1YWE2N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCAxNCAwNDo1NzoxOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9mcy9pbm9kZS5jIGIvZnMvaW5vZGUuY1xcbmluZGV4IGFjZjIwNmJlYjJlMDM0Li4xOTE5NzM2OGM2YTY3OCAxMDA2NDRcXG4tLS0gYS9mcy9pbm9kZS5jXFxuKysrIGIvZnMvaW5vZGUuY1xcbkBAIC04ODAsMTUgKzg4MCwzMSBAQCBzdGF0aWMgdm9pZCBkaXNwb3NlX2xpc3Qoc3RydWN0IGxpc3RfaGVhZCAqaGVhZClcXG4gICogY2FsbGVkIGJ5IHN1cGVyYmxvY2sgc2h1dGRvd24gYWZ0ZXIgaGF2aW5nIFNCX0FDVElWRSBmbGFnIHJlbW92ZWQsXFxuICAqIHNvIGFueSBpbm9kZSByZWFjaGluZyB6ZXJvIHJlZmNvdW50IGR1cmluZyBvciBhZnRlciB0aGF0IGNhbGwgd2lsbFxcbiAgKiBiZSBpbW1lZGlhdGVseSBldmljdGVkLlxcbisgKlxcbisgKiBVc2UgYSBjdXJzb3Igbm9kZSBlbWJlZGRlZCBpbiBzYi1cXHUwMDNlc19pbm9kZXMgdG8gcmVzdW1lIHRyYXZlcnNhbCBhZnRlclxcbisgKiBkcm9wcGluZyBzX2lub2RlX2xpc3RfbG9jayBmb3IgY29uZF9yZXNjaGVkKCkgKyBkaXNwb3NlX2xpc3QoKS4gIFRoaXNcXG4rICogYXZvaWRzIHJlc3RhcnRpbmcgdGhlIHNjYW4gZnJvbSB0aGUgbGlzdCBoZWFkIG9uIGVhY2ggcmVzY2hlZHVsZSwgZ2l2aW5nXFxuKyAqIE8obikgdG90YWwgdHJhdmVyc2FsIGluc3RlYWQgb2YgTyhuICogcikgd2hlcmUgciBpcyB0aGUgcmVzY2hlZHVsZSBjb3VudC5cXG4gICovXFxuIHZvaWQgZXZpY3RfaW5vZGVzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuIHtcXG4gXFx0c3RydWN0IGlub2RlICppbm9kZTtcXG4gXFx0TElTVF9IRUFEKGRpc3Bvc2UpO1xcbitcXHQvKlxcbitcXHQgKiBFbWJlZCBhIGN1cnNvciBub2RlIGRpcmVjdGx5IGluIHNiLVxcdTAwM2VzX2lub2Rlcy4gIGxpc3RfbW92ZSgpIGFkdmFuY2VzXFxuK1xcdCAqIGl0IHBhc3QgZWFjaCB2aXNpdGVkIGlub2RlIGluIE8oMSksIHNvIHRoZSBsb29wIHJlc3VtZXMgZnJvbSBleGFjdGx5XFxuK1xcdCAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFmdGVyIGxvY2sgZHJvcCByYXRoZXIgdGhhbiBmcm9tIHRoZSBsaXN0IGhlYWQuXFxuK1xcdCAqL1xcbitcXHRzdHJ1Y3QgbGlzdF9oZWFkIGN1cnNvcjtcXG4gXFxuLWFnYWluOlxcbiBcXHRzcGluX2xvY2soXFx1MDAyNnNiLVxcdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XFxuLVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoaW5vZGUsIFxcdTAwMjZzYi1cXHUwMDNlc19pbm9kZXMsIGlfc2JfbGlzdCkge1xcbitcXHRsaXN0X2FkZChcXHUwMDI2Y3Vyc29yLCBcXHUwMDI2c2ItXFx1MDAzZXNfaW5vZGVzKTtcXG4rXFxuK1xcdHdoaWxlIChjdXJzb3IubmV4dCAhPSBcXHUwMDI2c2ItXFx1MDAzZXNfaW5vZGVzKSB7XFxuK1xcdFxcdGlub2RlID0gbGlzdF9lbnRyeShjdXJzb3IubmV4dCwgc3RydWN0IGlub2RlLCBpX3NiX2xpc3QpO1xcbitcXHRcXHQvKiBMZWF2ZSB0aGUgY3Vyc29yIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBjdXJyZW50IGlub2RlLiAqL1xcbitcXHRcXHRsaXN0X21vdmUoXFx1MDAyNmN1cnNvciwgXFx1MDAyNmlub2RlLVxcdTAwM2VpX3NiX2xpc3QpO1xcbitcXG4gXFx0XFx0aWYgKGljb3VudF9yZWFkX29uY2UoaW5vZGUpKVxcbiBcXHRcXHRcXHRjb250aW51ZTtcXG4gXFxuQEAgLTkxNiw5ICs5MzIsMTEgQEAgdm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4gXFx0XFx0XFx0c3Bpbl91bmxvY2soXFx1MDAyNnNiLVxcdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XFxuIFxcdFxcdFxcdGNvbmRfcmVzY2hlZCgpO1xcbiBcXHRcXHRcXHRkaXNwb3NlX2xpc3QoXFx1MDAyNmRpc3Bvc2UpO1xcbi1cXHRcXHRcXHRnb3RvIGFnYWluO1xcbitcXHRcXHRcXHRzcGluX2xvY2soXFx1MDAyNnNiLVxcdTAwM2VzX2lub2RlX2xpc3RfbG9jayk7XFxuIFxcdFxcdH1cXG4gXFx0fVxcbitcXG4rXFx0bGlzdF9kZWwoXFx1MDAyNmN1cnNvcik7XFxuIFxcdHNwaW5fdW5sb2NrKFxcdTAwMjZzYi1cXHUwMDNlc19pbm9kZV9saXN0X2xvY2spO1xcbiBcXG4gXFx0ZGlzcG9zZV9saXN0KFxcdTAwMjZkaXNwb3NlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDQ6NTc6MjAuNzc2NDY0NzI3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNzI1NTU5MjQ3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJldmljdF9pbm9kZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBWRlMgZnVuY3Rpb24gYGV2aWN0X2lub2Rlc2AgdG8gdXNlIGEgY3Vyc29yIGZvciBpdGVyYXRpbmcgb3ZlciBgc2ItXFx1MDAzZXNfaW5vZGVzYCBkdXJpbmcgc3VwZXJibG9jayBzaHV0ZG93bi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgb3B0aW1pemVzIHVubW91bnQgdGltZXMgYW5kIGF2b2lkcyBPKG5eMikgYmVoYXZpb3IuIEl0IGlzIHJlYWNoYWJsZSBieSB1bm1vdW50aW5nIGFueSBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQxMGVkMTE5ZDA3OWEzNGFiNjE3ZDhhYjgyZDg4OTYyMmUyNWFhNjdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAxNCAwNDo1NzoxOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2lub2RlLmMgYi9mcy9pbm9kZS5jXG5pbmRleCBhY2YyMDZiZWIyZTAzNC4uMTkxOTczNjhjNmE2NzggMTAwNjQ0XG4tLS0gYS9mcy9pbm9kZS5jXG4rKysgYi9mcy9pbm9kZS5jXG5AQCAtODgwLDE1ICs4ODAsMzEgQEAgc3RhdGljIHZvaWQgZGlzcG9zZV9saXN0KHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpXG4gICogY2FsbGVkIGJ5IHN1cGVyYmxvY2sgc2h1dGRvd24gYWZ0ZXIgaGF2aW5nIFNCX0FDVElWRSBmbGFnIHJlbW92ZWQsXG4gICogc28gYW55IGlub2RlIHJlYWNoaW5nIHplcm8gcmVmY291bnQgZHVyaW5nIG9yIGFmdGVyIHRoYXQgY2FsbCB3aWxsXG4gICogYmUgaW1tZWRpYXRlbHkgZXZpY3RlZC5cbisgKlxuKyAqIFVzZSBhIGN1cnNvciBub2RlIGVtYmVkZGVkIGluIHNiLVx1MDAzZXNfaW5vZGVzIHRvIHJlc3VtZSB0cmF2ZXJzYWwgYWZ0ZXJcbisgKiBkcm9wcGluZyBzX2lub2RlX2xpc3RfbG9jayBmb3IgY29uZF9yZXNjaGVkKCkgKyBkaXNwb3NlX2xpc3QoKS4gIFRoaXNcbisgKiBhdm9pZHMgcmVzdGFydGluZyB0aGUgc2NhbiBmcm9tIHRoZSBsaXN0IGhlYWQgb24gZWFjaCByZXNjaGVkdWxlLCBnaXZpbmdcbisgKiBPKG4pIHRvdGFsIHRyYXZlcnNhbCBpbnN0ZWFkIG9mIE8obiAqIHIpIHdoZXJlIHIgaXMgdGhlIHJlc2NoZWR1bGUgY291bnQuXG4gICovXG4gdm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbiB7XG4gXHRzdHJ1Y3QgaW5vZGUgKmlub2RlO1xuIFx0TElTVF9IRUFEKGRpc3Bvc2UpO1xuK1x0LypcbitcdCAqIEVtYmVkIGEgY3Vyc29yIG5vZGUgZGlyZWN0bHkgaW4gc2ItXHUwMDNlc19pbm9kZXMuICBsaXN0X21vdmUoKSBhZHZhbmNlc1xuK1x0ICogaXQgcGFzdCBlYWNoIHZpc2l0ZWQgaW5vZGUgaW4gTygxKSwgc28gdGhlIGxvb3AgcmVzdW1lcyBmcm9tIGV4YWN0bHlcbitcdCAqIHRoZSBjdXJyZW50IHBvc2l0aW9uIGFmdGVyIGxvY2sgZHJvcCByYXRoZXIgdGhhbiBmcm9tIHRoZSBsaXN0IGhlYWQuXG4rXHQgKi9cbitcdHN0cnVjdCBsaXN0X2hlYWQgY3Vyc29yO1xuIFxuLWFnYWluOlxuIFx0c3Bpbl9sb2NrKFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVfbGlzdF9sb2NrKTtcbi1cdGxpc3RfZm9yX2VhY2hfZW50cnkoaW5vZGUsIFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVzLCBpX3NiX2xpc3QpIHtcbitcdGxpc3RfYWRkKFx1MDAyNmN1cnNvciwgXHUwMDI2c2ItXHUwMDNlc19pbm9kZXMpO1xuK1xuK1x0d2hpbGUgKGN1cnNvci5uZXh0ICE9IFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVzKSB7XG4rXHRcdGlub2RlID0gbGlzdF9lbnRyeShjdXJzb3IubmV4dCwgc3RydWN0IGlub2RlLCBpX3NiX2xpc3QpO1xuK1x0XHQvKiBMZWF2ZSB0aGUgY3Vyc29yIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBjdXJyZW50IGlub2RlLiAqL1xuK1x0XHRsaXN0X21vdmUoXHUwMDI2Y3Vyc29yLCBcdTAwMjZpbm9kZS1cdTAwM2VpX3NiX2xpc3QpO1xuK1xuIFx0XHRpZiAoaWNvdW50X3JlYWRfb25jZShpbm9kZSkpXG4gXHRcdFx0Y29udGludWU7XG4gXG5AQCAtOTE2LDkgKzkzMiwxMSBAQCB2b2lkIGV2aWN0X2lub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuIFx0XHRcdHNwaW5fdW5sb2NrKFx1MDAyNnNiLVx1MDAzZXNfaW5vZGVfbGlzdF9sb2NrKTtcbiBcdFx0XHRjb25kX3Jlc2NoZWQoKTtcbiBcdFx0XHRkaXNwb3NlX2xpc3QoXHUwMDI2ZGlzcG9zZSk7XG4tXHRcdFx0Z290byBhZ2FpbjtcbitcdFx0XHRzcGluX2xvY2soXHUwMDI2c2ItXHUwMDNlc19pbm9kZV9saXN0X2xvY2spO1xuIFx0XHR9XG4gXHR9XG4rXG4rXHRsaXN0X2RlbChcdTAwMjZjdXJzb3IpO1xuIFx0c3Bpbl91bmxvY2soXHUwMDI2c2ItXHUwMDNlc19pbm9kZV9saXN0X2xvY2spO1xuIFxuIFx0ZGlzcG9zZV9saXN0KFx1MDAyNmRpc3Bvc2UpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTRUMDQ6NTc6MjAuNzc2NDY2MzA3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEzNTkyOTQ1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBldmljdF9pbm9kZXNgIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0J3MgdHdlYWtpbmcgYGV2aWN0X2lub2Rlc2Agd2l0aGluIGBmcy9pbm9kZS5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSByZXZvbHZlcyBhcm91bmQgaG93IGl0IGl0ZXJhdGVzIHRocm91Z2ggYHNiLVx1MDAzZXNfaW5vZGVzYC4gSW5zdGVhZCBvZiB0aGUgc3RhbmRhcmQgbGluZWFyIHNjYW4gd2UncmUgdXNlZCB0bywgdGhleSdyZSBpbnRyb2R1Y2luZyB0aGlzIGBjdXJzb3JgIG5vZGUgZGlyZWN0bHkgZW1iZWRkZWQgd2l0aGluIGBzYi1cdTAwM2VzX2lub2Rlc2AuIFRoZSBpZGVhIGlzIHNtYXJ0OiBpdCBsZXRzIHVzIHBpY2sgdXAgdGhlIHRyYXZlcnNhbCB3aGVyZSB3ZSBsZWZ0IG9mZiBhZnRlciBkcm9wcGluZyB0aGUgYHNfaW5vZGVfbGlzdF9sb2NrYCwgc3BlY2lmaWNhbGx5IGZvciB0aGUgYGNvbmRfcmVzY2hlZCgpYCBjYWxscyBhbmQgc3Vic2VxdWVudCBgZGlzcG9zZV9saXN0KClgIG9wZXJhdGlvbnMuIFRoaXMgaXMga2V5IOKAkyBpdCBwcmV2ZW50cyByZXN0YXJ0aW5nIHRoZSBlbnRpcmUgc2NhbiBmcm9tIHRoZSBsaXN0IGhlYWQgZXZlcnkgc2luZ2xlIHRpbWUgd2UgcmVzY2hlZHVsZS4gVGhlIGltcGxpY2F0aW9ucyBhcmUgY2xlYXI6IGluc3RlYWQgb2YgdGhlIG5hc3R5IE8obiAqIHIpIGNvbXBsZXhpdHksIHdoZXJlICdyJyBpcyB0aGUgcmVzY2hlZHVsZSBjb3VudCwgd2UncmUgbm93IGxvb2tpbmcgYXQgTyhuKSB0b3RhbCB0cmF2ZXJzYWwgdGltZS5cblxuVGhpcyBpcyBhIHByZXR0eSBmdW5kYW1lbnRhbCBjaGFuZ2UgdG8gdGhlIFZGUyBsb2dpYywgcmlnaHQgaW4gdGhlIGhlYXJ0IG9mIGBldmljdF9pbm9kZXNgLiBUaGF0IG1ha2VzIHRoaXMgcGF0Y2ggYSBwcmltZSBjYW5kaWRhdGUgZm9yIHNvbWUgc2VyaW91cyBmdXp6aW5nLiBFc3BlY2lhbGx5IHNpbmNlIGBldmljdF9pbm9kZXNgIGlzIGEgY29yZSBwYXJ0IG9mIHRoZSBzdXBlcmJsb2NrIHNodXRkb3duIHByb2Nlc3MsIHdoaWNoIGlzIGEgc2Vuc2l0aXZlIGFyZWEuXG5cbk5vdywgbGV0J3MganVzdCBtYWtlIHN1cmUgd2UgdW5kZXJzdGFuZCAqYWxsKiB0aGUgaW1wbGljYXRpb25zLiBJIHdhbnQgdG8gcXVpY2tseSBjaGVjayB0aGUgY2FsbGVycyBvZiBgZXZpY3RfaW5vZGVzYCBqdXN0IHRvIGdldCBhIGJyb2FkZXIgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjI1NCwiT3V0cHV0VG9rZW5zIjoxOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDA0OjU3OjI0LjkxMjM5NzgyMloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMDkzNzc3NjU1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV2aWN0X2lub2Rlc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJEb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3BvcnRpbmcucnN0PTExNzk9TE9PS19DUkVBVEUgb3IgTE9PS1VQX1JFTkFNRV9UQVJHRVQuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3BvcnRpbmcucnN0LTExODMtKiptYW5kYXRvcnkqKlxcbkRvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcG9ydGluZy5yc3Q6MTE4NDppbnZhbGlkYXRlX2lub2RlcygpIGlzIGdvbmUgdXNlIGV2aWN0X2lub2RlcygpIGluc3RlYWQuXFxuRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wb3J0aW5nLnJzdC0xMTg1LVxcbi0tXFxuZnMvZjJmcy9zdXBlci5jPTQ5NDY9c3RhdGljIGludCBmMmZzX2ZpbGxfc3VwZXIoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgc3RydWN0IGZzX2NvbnRleHQgKmZjKVxcbi0tXFxuZnMvZjJmcy9zdXBlci5jLTUzOTctXFx0LyogZXZpY3Qgc29tZSBpbm9kZXMgYmVpbmcgY2FjaGVkIGJ5IEdDICovXFxuZnMvZjJmcy9zdXBlci5jOjUzOTg6XFx0ZXZpY3RfaW5vZGVzKHNiKTtcXG5mcy9mMmZzL3N1cGVyLmMtNTM5OS1cXHRmMmZzX3VucmVnaXN0ZXJfc3lzZnMoc2JpKTtcXG4tLVxcbmZzL2Z1c2UvdmlydGlvX2ZzLmM9MTYyOD1zdGF0aWMgdm9pZCB2aXJ0aW9fZnNfY29ubl9kZXN0cm95KHN0cnVjdCBmdXNlX21vdW50ICpmbSlcXG4tLVxcbmZzL2Z1c2UvdmlydGlvX2ZzLmMtMTYzMy1cXG5mcy9mdXNlL3ZpcnRpb19mcy5jOjE2MzQ6XFx0LyogU3RvcCBkYXggd29ya2VyLiBTb29uIGV2aWN0X2lub2RlcygpIHdpbGwgYmUgY2FsbGVkIHdoaWNoXFxuZnMvZnVzZS92aXJ0aW9fZnMuYy0xNjM1LVxcdCAqIHdpbGwgZnJlZSBhbGwgbWVtb3J5IHJhbmdlcyBiZWxvbmdpbmcgdG8gYWxsIGlub2Rlcy5cXG4tLVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jPTE3MTA9c3RhdGljIGludCBnZnMyX21ldGFfaW5pdF9mc19jb250ZXh0KHN0cnVjdCBmc19jb250ZXh0ICpmYylcXG4tLVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3MjEtLyoqXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTcyMjogKiBnZnMyX2V2aWN0X2lub2RlcyAtIGV2aWN0IGlub2RlcyBjb29wZXJhdGl2ZWx5XFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTcyMy0gKiBAc2I6IHRoZSBzdXBlcmJsb2NrXFxuLS1cXG5mcy9nZnMyL29wc19mc3R5cGUuYy0xNzMzLSAqXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTczNDogKiBGdW5jdGlvbiBldmljdF9pbm9kZXMoKSB0cmllcyB0byBrZWVwIHRoZSBzX2lub2RlX2xpc3RfbG9jayBsaXN0IGxvY2tlZCBvdmVyXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTczNS0gKiBhIGxvbmcgdGltZSwgd2hpY2ggcHJldmVudHMgb3RoZXIgaW5vZGVzIGZyb20gYmVpbmcgZXZpY3RlZCBjb25jdXJyZW50bHkuXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTczNi0gKiBUaGlzIHByZWNsdWRlcyB0aGUgY29vcGVyYXRpdmUgYmVoYXZpb3Igd2UgYXJlIGxvb2tpbmcgZm9yLiAgVGhpcyBzcGVjaWFsXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTczNzogKiB2ZXJzaW9uIG9mIGV2aWN0X2lub2RlcygpIGF2b2lkcyB0aGF0LlxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3MzgtICpcXG4tLVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3NDAtICovXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTc0MTpzdGF0aWMgdm9pZCBnZnMyX2V2aWN0X2lub2RlcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3NDIte1xcbi0tXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM9MTc3MD1zdGF0aWMgdm9pZCBnZnMyX2tpbGxfc2Ioc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4tLVxcbmZzL2dmczIvb3BzX2ZzdHlwZS5jLTE3ODUtXFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmM6MTc4NjpcXHRnZnMyX2V2aWN0X2lub2RlcyhzYik7XFxuZnMvZ2ZzMi9vcHNfZnN0eXBlLmMtMTc4Ny1cXG4tLVxcbmZzL2lub2RlLmM9ODYyPXN0YXRpYyB2b2lkIGRpc3Bvc2VfbGlzdChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKVxcbi0tXFxuZnMvaW5vZGUuYy04NzUtLyoqXFxuZnMvaW5vZGUuYzo4NzY6ICogZXZpY3RfaW5vZGVzXFx0LSBldmljdCBhbGwgZXZpY3RhYmxlIGlub2RlcyBmb3IgYSBzdXBlcmJsb2NrXFxuZnMvaW5vZGUuYy04NzctICogQHNiOlxcdFxcdHN1cGVyYmxvY2sgdG8gb3BlcmF0ZSBvblxcbi0tXFxuZnMvaW5vZGUuYy04ODgtICovXFxuZnMvaW5vZGUuYzo4ODk6dm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9pbm9kZS5jLTg5MC17XFxuLS1cXG5mcy9pbm9kZS5jLTk0My19XFxuZnMvaW5vZGUuYzo5NDQ6RVhQT1JUX1NZTUJPTF9HUEwoZXZpY3RfaW5vZGVzKTtcXG5mcy9pbm9kZS5jLTk0NS1cXG4tLVxcbmZzL3NtYi9jbGllbnQvZmlsZS5jPTM2OT1jaWZzX21hcmtfb3Blbl9maWxlc19pbnZhbGlkKHN0cnVjdCBjaWZzX3Rjb24gKnRjb24pXFxuLS1cXG5mcy9zbWIvY2xpZW50L2ZpbGUuYy00MDItXFx0LypcXG5mcy9zbWIvY2xpZW50L2ZpbGUuYzo0MDM6XFx0ICogQkIgQWRkIGNhbGwgdG8gZXZpY3RfaW5vZGVzKHNiKSBmb3IgYWxsIHN1cGVyYmxvY2tzIG1vdW50ZWRcXG5mcy9zbWIvY2xpZW50L2ZpbGUuYy00MDQtXFx0ICogdG8gdGhpcyB0Y29uLlxcbi0tXFxuZnMvc3VwZXIuYz02MTk9dm9pZCBnZW5lcmljX3NodXRkb3duX3N1cGVyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuLS1cXG5mcy9zdXBlci5jLTYzMi1cXHRcXHQvKiBFdmljdCBhbGwgaW5vZGVzIHdpdGggemVybyByZWZjb3VudC4gKi9cXG5mcy9zdXBlci5jOjYzMzpcXHRcXHRldmljdF9pbm9kZXMoc2IpO1xcbmZzL3N1cGVyLmMtNjM0LVxcbi0tXFxuZnMvc3VwZXIuYz0xMzk2PXN0YXRpYyB2b2lkIGZzX2JkZXZfbWFya19kZWFkKHN0cnVjdCBibG9ja19kZXZpY2UgKmJkZXYsIGJvb2wgc3VycHJpc2UpXFxuLS1cXG5mcy9zdXBlci5jLTE0MTctXFx0c2hyaW5rX2RjYWNoZV9zYihzYik7XFxuZnMvc3VwZXIuYzoxNDE4OlxcdGV2aWN0X2lub2RlcyhzYik7XFxuZnMvc3VwZXIuYy0xNDE5LVxcdGlmIChzYi1cXHUwMDNlc19vcC1cXHUwMDNlc2h1dGRvd24pXFxuLS1cXG5mcy94ZnMveGZzX2xvZy5jPTY2Mj14ZnNfbG9nX21vdW50X2ZpbmlzaChcXG4tLVxcbmZzL3hmcy94ZnNfbG9nLmMtNjk3LVxcdG1wLVxcdTAwM2VtX3N1cGVyLVxcdTAwM2VzX2ZsYWdzIFxcdTAwMjY9IH5TQl9BQ1RJVkU7XFxuZnMveGZzL3hmc19sb2cuYzo2OTg6XFx0ZXZpY3RfaW5vZGVzKG1wLVxcdTAwM2VtX3N1cGVyKTtcXG5mcy94ZnMveGZzX2xvZy5jLTY5OS1cXG4tLVxcbmluY2x1ZGUvbGludXgvZnMuaD0yOTkzPXVuc2lnbmVkIGludCBnZXRfbmV4dF9pbm8odm9pZCk7XFxuaW5jbHVkZS9saW51eC9mcy5oOjI5OTQ6dm9pZCBldmljdF9pbm9kZXMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuaW5jbHVkZS9saW51eC9mcy5oLTI5OTUtdm9pZCBkdW1wX21hcHBpbmcoY29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2UgKik7XFxuLS1cXG5zZWN1cml0eS9sYW5kbG9jay9mcy5jPTEyNjE9c3RhdGljIHZvaWQgaG9va19pbm9kZV9mcmVlX3NlY3VyaXR5X3JjdSh2b2lkICppbm9kZV9zZWN1cml0eSlcXG4tLVxcbnNlY3VyaXR5L2xhbmRsb2NrL2ZzLmMtMTI3Ny0gKlxcbnNlY3VyaXR5L2xhbmRsb2NrL2ZzLmM6MTI3ODogKiBDZi4gZnNub3RpZnlfdW5tb3VudF9pbm9kZXMoKSBhbmQgZXZpY3RfaW5vZGVzKClcXG5zZWN1cml0eS9sYW5kbG9jay9mcy5jLTEyNzktICovXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE0VDA0OjU3OjI3LjAwNjIwMjUyN1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjExMDI1ODMwNjc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUHJvcG9zZWQgVkZTIFBhdGNoIGZvciBgZXZpY3RfaW5vZGVzYCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgYWRkcmVzc2luZyB0aGUgYGV2aWN0X2lub2Rlc2AgZnVuY3Rpb24sIHdoaWNoLCBhcyBJIHVuZGVyc3RhbmQsIGlzIGNhbGxlZCBkdXJpbmcgZmlsZXN5c3RlbSB1bm1vdW50IHZpYSBgZ2VuZXJpY19zaHV0ZG93bl9zdXBlcmAuIEl0J3MgYWxzbyByZWFjaGFibGUgdGhyb3VnaCBhIGZldyBlcnJvciBwYXRocyByZWxhdGVkIHRvIGJsb2NrIGRldmljZSByZW1vdmFsIG9yIGZpbGVzeXN0ZW0gaW5pdGlhbGl6YXRpb24sIGJ1dCB0aGUgcHJpbWFyeSB0cmlnZ2VyIGlzIHVubW91bnQuICBNeSBtZW50YWwgbW9kZWwgb2YgdGhpcyBwYXJ0IG9mIHRoZSBWRlMgaXMgc29saWQsIGFuZCBJJ20gZmFtaWxpYXIgd2l0aCBob3cgYGV2aWN0X2lub2Rlc2AgaXRlcmF0ZXMgdGhyb3VnaCBpbm9kZXMgdG8gZXZpY3QgdGhvc2Ugd2l0aCBhIHplcm8gcmVmY291bnQuXG5cblRoZSBjb3JlIG9mIHRoZSBpc3N1ZSBpcyB0aGUgaXRlcmF0aW9uIHdpdGhpbiBgZXZpY3RfaW5vZGVzYC4gVGhlIGV4aXN0aW5nIGltcGxlbWVudGF0aW9uIGNhbiwgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zLCBjYXVzZSBwZXJmb3JtYW5jZSBpc3N1ZXMgZHVlIHRvIHJlc3RhcnRpbmcgdGhlIGl0ZXJhdGlvbiBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGBzYi1cdTAwM2VzX2lub2Rlc2AgbGlzdCBhZnRlciBkcm9wcGluZyBhbmQgcmVhY3F1aXJpbmcgdGhlIGxvY2suIFRoaXMgc2VlbXMgbGlrZSBhIHRleHRib29rIGV4YW1wbGUgb2YgYSBwb3RlbnRpYWwgTyhuXjIpIHNjZW5hcmlvIHRoYXQgbmVlZHMgdG8gYmUgYXZvaWRlZC5cblxuVGhlIHBhdGNoJ3Mgc29sdXRpb24gaXMgZWxlZ2FudDogaXQgaW50cm9kdWNlcyBhIGN1cnNvciwgYGN1cnNvcmAsIGRpcmVjdGx5IHdpdGhpbiBgc2ItXHUwMDNlc19pbm9kZXNgIHRvIG1haW50YWluIHRoZSBpdGVyYXRpb24gcG9zaXRpb24uIGBsaXN0X21vdmVgIGlzIHVzZWQgdG8gZWZmaWNpZW50bHkgYWR2YW5jZSB0aGlzIGN1cnNvciwgYWxsb3dpbmcgdGhlIGxvb3AgdG8gcmVzdW1lIGZyb20gZXhhY3RseSB3aGVyZSBpdCBsZWZ0IG9mZiBhZnRlciB0aGUgbG9jayBpcyBkcm9wcGVkLiBUaGlzIGVsaW1pbmF0ZXMgdGhlIG5lZWQgdG8gcmVzdGFydCwgaW1wcm92aW5nIGVmZmljaWVuY3kuXG5cblRoZSBwYXRjaCBpdHNlbGYgaXMgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQuIFRoZSBjb2RlIGhpZ2hsaWdodHMgdGhlIGtleSBjaGFuZ2VzOiB0aGUgYWRkaXRpb24gb2YgdGhlIGBjdXJzb3JgIG5vZGUgYW5kIHRoZSB1c2Ugb2YgYGxpc3RfbW92ZWAgdG8gYWR2YW5jZSB0aGUgaXRlcmF0aW9uLiBUaGUgY29kZSBhbHNvIGluY2x1ZGVzIHRoZSB1c3VhbCBjb25zaWRlcmF0aW9ucyBsaWtlIGBuZWVkX3Jlc2NoZWQoKWAgdG8gYXZvaWQgbGl2ZWxvY2sgZHVyaW5nIHVubW91bnQgaWYgdGhlcmUgYXJlIGEgKmxvdCogb2YgaW5vZGVzIHRvIGV2aWN0LiBUaGUgcGF0Y2ggYXBwZWFycyB0byBoYXZlIG5vIGRlcGVuZGVuY2llcyBvciBzcGVjaWFsIGNvbmZpZ3VyYXRpb25zIHJlcXVpcmVkLiBJdCdzIGEgZnVuZGFtZW50YWwgY2hhbmdlIHRoYXQncyBhbHdheXMgaW4gcGxheS5cblxuR2l2ZW4gdGhlIGltcG9ydGFuY2Ugb2YgYGV2aWN0X2lub2Rlc2AgdG8gdGhlIHVubW91bnQgcHJvY2VzcyBhbmQgdGhlIGNsZWFyIG9wdGltaXphdGlvbiB0aGlzIHBhdGNoIHByb3ZpZGVzLCBJJ20gY29uZmlkZW50IGl0J3MgYSB3b3J0aHdoaWxlIGFyZWEgdG8gaW52ZXN0aWdhdGUgZnVydGhlci4gSXQncyBhIGNvcmUgVkZTIGZ1bmN0aW9uIGFuZCBhbnkgZmlsZXN5c3RlbSB1bm1vdW50IHdpbGwgdHJpZ2dlciBpdC5cblxuVGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGFueSBuZWVkIHRvIGxvb2sgaW50byBvdGhlciBmdW5jdGlvbnMgbGlrZSBgZ2VuZXJpY19zaHV0ZG93bl9zdXBlcmAgYmVjYXVzZSB0aGUgcGF0Y2ggb25seSB0b3VjaGVzIGBldmljdF9pbm9kZXNgLiBJdCdzIG5vdCBhIGhvdCBwYXRoLCBzaW5jZSBpdCdzIG9ubHkgY2FsbGVkIG9uIHVubW91bnQuXG5cbkluIHN1bW1hcnksIHRoZSBwYXRjaCBtb2RpZmllcyBgZXZpY3RfaW5vZGVzYCB0byB1c2UgYSBjdXJzb3IgZm9yIGVmZmljaWVudCBpbm9kZSBldmljdGlvbiBkdXJpbmcgdW5tb3VudC4gVGhpcyBhdm9pZHMgcG90ZW50aWFsIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLCBzbyBJIHdvdWxkIHN1Z2dlc3Qgc2V0dGluZyB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyB0byBgdHJ1ZWAsIGZvY3VzaW5nIG9uIHRoZSBgZXZpY3RfaW5vZGVzYCBzeW1ib2wsIGFuZCBub3Qgc2V0dGluZyBhbnkgc3BlY2lhbCBjb25maWdzLiBJdCdzIGEgZ29vZCBwYXRjaC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDM1MywiT3V0cHV0VG9rZW5zIjo5OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk4NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNFQwNDo1NzozOC4wMzIwMzUxMDNaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwODExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXZpY3RfaW5vZGVzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNvcmUgVkZTIGZ1bmN0aW9uIGBldmljdF9pbm9kZXNgIHRvIHVzZSBhIGN1cnNvciBmb3IgaXRlcmF0aW5nIG92ZXIgYHNiLVxcdTAwM2VzX2lub2Rlc2AgZHVyaW5nIHN1cGVyYmxvY2sgc2h1dGRvd24uIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSB0aGF0IG9wdGltaXplcyB1bm1vdW50IHRpbWVzIGFuZCBhdm9pZHMgTyhuXjIpIGJlaGF2aW9yLiBJdCBpcyByZWFjaGFibGUgYnkgdW5tb3VudGluZyBhbnkgZmlsZXN5c3RlbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJldmljdF9pbm9kZXNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY29yZSBWRlMgZnVuY3Rpb24gYGV2aWN0X2lub2Rlc2AgdG8gdXNlIGEgY3Vyc29yIGZvciBpdGVyYXRpbmcgb3ZlciBgc2ItXFx1MDAzZXNfaW5vZGVzYCBkdXJpbmcgc3VwZXJibG9jayBzaHV0ZG93bi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHRoYXQgb3B0aW1pemVzIHVubW91bnQgdGltZXMgYW5kIGF2b2lkcyBPKG5eMikgYmVoYXZpb3IuIEl0IGlzIHJlYWNoYWJsZSBieSB1bm1vdW50aW5nIGFueSBmaWxlc3lzdGVtLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowrtfxv[1] Phase: Succeeded StartedAt: 2026-07-14 04:57:49 +0000 UTC FinishedAt: 2026-07-14 04:57:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-14 04:57:49 +0000 UTC FinishedAt: 2026-07-14 04:57:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2] Phase: Succeeded StartedAt: 2026-07-14 04:57:49 +0000 UTC FinishedAt: 2026-07-14 09:25:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-14 04:57:49 +0000 UTC FinishedAt: 2026-07-14 09:25:10 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-14 04:57:49 +0000 UTC FinishedAt: 2026-07-14 04:57:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-14 04:57:49 +0000 UTC FinishedAt: 2026-07-14 04:57:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrtfxv/series-workflowrtfxv-convert-artifact-169203807/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-14 04:57:59 +0000 UTC FinishedAt: 2026-07-14 05:46:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-14 04:57:59 +0000 UTC FinishedAt: 2026-07-14 05:46:06 +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:*09351a2a-30e3-4f17-bd0c-3cb8d3ee4ac3,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-workflowrtfxv/series-workflowrtfxv-convert-artifact-169203807/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": "0c022827-7a0d-4bf1-80c3-a391f767ec4f", "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-workflowrtfxv/series-workflowrtfxv-build-action-2536029541/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-14 04:57:59 +0000 UTC FinishedAt: 2026-07-14 05:44:54 +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:*09351a2a-30e3-4f17-bd0c-3cb8d3ee4ac3,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-workflowrtfxv/series-workflowrtfxv-convert-artifact-169203807/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": "0c022827-7a0d-4bf1-80c3-a391f767ec4f", "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-workflowrtfxv/series-workflowrtfxv-build-action-2536029541/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-14 05:46:06 +0000 UTC FinishedAt: 2026-07-14 05:46:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-14 05:46:06 +0000 UTC FinishedAt: 2026-07-14 05:46:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-14 05:46:06 +0000 UTC FinishedAt: 2026-07-14 05:46:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-14 05:46:06 +0000 UTC FinishedAt: 2026-07-14 05:46:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowrtfxv/series-workflowrtfxv-convert-artifact-1682800878/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-14 05:46:26 +0000 UTC FinishedAt: 2026-07-14 05:48:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-14 05:46:26 +0000 UTC FinishedAt: 2026-07-14 05:48:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0c022827-7a0d-4bf1-80c3-a391f767ec4f,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-workflowrtfxv/series-workflowrtfxv-build-action-2536029541/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-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-14 05:48:12 +0000 UTC FinishedAt: 2026-07-14 05:48:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-14 05:48:12 +0000 UTC FinishedAt: 2026-07-14 05:48:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-14 05:48:12 +0000 UTC FinishedAt: 2026-07-14 06:20:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-14 05:48:12 +0000 UTC FinishedAt: 2026-07-14 06:20:38 +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:*09351a2a-30e3-4f17-bd0c-3cb8d3ee4ac3,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-workflowrtfxv/series-workflowrtfxv-convert-artifact-1682800878/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": "fb4aee83-1f16-43a9-8eaf-e4e9c5095b31", "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-workflowrtfxv/series-workflowrtfxv-build-action-1517769218/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-14 05:48:12 +0000 UTC FinishedAt: 2026-07-14 06:19:59 +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:*09351a2a-30e3-4f17-bd0c-3cb8d3ee4ac3,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-workflowrtfxv/series-workflowrtfxv-convert-artifact-1682800878/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": "fb4aee83-1f16-43a9-8eaf-e4e9c5095b31", "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-workflowrtfxv/series-workflowrtfxv-build-action-1517769218/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-14 06:20:38 +0000 UTC FinishedAt: 2026-07-14 06:20:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-14 06:20:38 +0000 UTC FinishedAt: 2026-07-14 06:20:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-14 06:20:38 +0000 UTC FinishedAt: 2026-07-14 06:22:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-14 06:20:38 +0000 UTC FinishedAt: 2026-07-14 06:22:15 +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:*fb4aee83-1f16-43a9-8eaf-e4e9c5095b31,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-workflowrtfxv/series-workflowrtfxv-build-action-1517769218/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-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-14 06:22:25 +0000 UTC FinishedAt: 2026-07-14 09:25:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-14 06:22:25 +0000 UTC FinishedAt: 2026-07-14 09:25:10 +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":["evict_inodes"],"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:*0c022827-7a0d-4bf1-80c3-a391f767ec4f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fb4aee83-1f16-43a9-8eaf-e4e9c5095b31,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-workflowrtfxv/series-workflowrtfxv-build-action-2536029541/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-workflowrtfxv/series-workflowrtfxv-build-action-1517769218/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-14 06:22:25 +0000 UTC FinishedAt: 2026-07-14 06:23:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-14 06:22:25 +0000 UTC FinishedAt: 2026-07-14 06:23:25 +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":["evict_inodes"],"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-workflowrtfxv/series-workflowrtfxv-convert-artifact-1322281363/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-14 06:22:25 +0000 UTC FinishedAt: 2026-07-14 06:22:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-14 06:22:25 +0000 UTC FinishedAt: 2026-07-14 06:22:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-14 06:22:25 +0000 UTC FinishedAt: 2026-07-14 06:22:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-14 06:23:32 +0000 UTC FinishedAt: 2026-07-14 09:25:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrtfxv[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["evict_inodes"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"502d801f0ab03e4f32f9a33d203154ce84887921","config_name":"upstream-apparmor-kasan.config","series_id":"1c64f878-c0ae-4088-bf32-93ca839c4e3a","tree_name":"bpf-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-14 06:23:32 +0000 UTC FinishedAt: 2026-07-14 09:25:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*0c022827-7a0d-4bf1-80c3-a391f767ec4f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*fb4aee83-1f16-43a9-8eaf-e4e9c5095b31,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-workflowrtfxv/series-workflowrtfxv-build-action-2536029541/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-workflowrtfxv/series-workflowrtfxv-build-action-1517769218/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-workflowrtfxv/series-workflowrtfxv-convert-artifact-1322281363/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,}