Name: series-workflowvfmxk Phase: Succeeded StartedAt: 2026-07-09 18:57:37 +0000 UTC FinishedAt: 2026-07-10 00:04:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[0] Phase: Succeeded StartedAt: 2026-07-09 18:57:37 +0000 UTC FinishedAt: 2026-07-09 19:23:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[0].run-triage Phase: Succeeded StartedAt: 2026-07-09 18:57:37 +0000 UTC FinishedAt: 2026-07-09 19:23:40 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "2c7c88a412aa6d09cd04b414211b4ef8553b5309", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CHR_DEV_SG" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "2c7c88a412aa6d09cd04b414211b4ef8553b5309", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CHR_DEV_SG" ], "series_id": "e98fb97a-392f-4194-bb5a-c74d37c3684b" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "sg_build_indirect", "scatter_elem_sz_set" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA5IDE5OjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NIUl9ERVZfU0cmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZ19idWlsZF9pbmRpcmVjdCYjMzQ7LAogICAgJiMzNDtzY2F0dGVyX2VsZW1fc3pfc2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgYWxsb2NhdGluZyBzY2F0dGVyLWdhdGhlciBsaXN0cyBpbiB0aGUgU0NTSSBnZW5lcmljIGRyaXZlciAoYHNnX2J1aWxkX2luZGlyZWN0YCkgYW5kIGFkZHMgYSBuZXcgbW9kdWxlIHBhcmFtZXRlciBzZXR0ZXIgKGBzY2F0dGVyX2VsZW1fc3pfc2V0YCkgd2l0aCB2YWxpZGF0aW9uIGxvZ2ljLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCBmcm9tIHVzZXIgc3BhY2UgdmlhIFNDU0kgaW9jdGxzL3dyaXRlcyBhbmQgc3lzZnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjYTlkNzBiMmZhNTJiMDQ0Y2Y1MzVhMDZjODkwNjc4MWQxY2YwNzc2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgOSAxOToyMjoxMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2cuYyBiL2RyaXZlcnMvc2NzaS9zZy5jXG5pbmRleCA3NGNkNGU4YTYxYzJhMC4uMzc3YzNlMWRlZTdmZjkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvc2cuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL3NnLmNcbkBAIC05Miw3ICYjNDM7OTIsNiBAQCBzdGF0aWMgaW50IGRlZl9yZXNlcnZlZF9zaXplID0gU0dfREVGX1JFU0VSVkVEX1NJWkU7XG4gc3RhdGljIGludCBzZ19hbGxvd19kaW8gPSBTR19BTExPV19ESU9fREVGO1xuIFxuIHN0YXRpYyBpbnQgc2NhdHRlcl9lbGVtX3N6ID0gU0dfU0NBVFRFUl9TWjtcbi1zdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gU0dfU0NBVFRFUl9TWjtcbiBcbiAjZGVmaW5lIFNHX1NFQ1RPUl9TWiA1MTJcbiBcbkBAIC0xNjIyLDggJiM0MzsxNjIxLDM0IEBAIHNnX3JlbW92ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqY2xfZGV2KVxuIFx0a3JlZl9wdXQoXHUwMDI2c2RwLVx1MDAzZWRfcmVmLCBzZ19kZXZpY2VfZGVzdHJveSk7XG4gfVxuIFxuLW1vZHVsZV9wYXJhbV9uYW1lZChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zeiwgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7XG4tbW9kdWxlX3BhcmFtX25hbWVkKGFsbG93X2Rpbywgc2dfYWxsb3dfZGlvLCBpbnQsIFNfSVJVR08gfCBTX0lXVVNSKTtcbiYjNDM7c3RhdGljIGludCBzY2F0dGVyX2VsZW1fc3pfc2V0KGNvbnN0IGNoYXIgKnZhbCwgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSAqa3ApXG4mIzQzO3tcbiYjNDM7XHRpbnQgcmV0LCBuZXdfdmFsLCBvcmRlcjtcbiYjNDM7XG4mIzQzO1x0cmV0ID0ga3N0cnRvaW50KHZhbCwgMCwgXHUwMDI2bmV3X3ZhbCk7XG4mIzQzO1x0aWYgKHJldClcbiYjNDM7XHRcdHJldHVybiByZXQ7XG4mIzQzO1xuJiM0MztcdGlmIChuZXdfdmFsIFx1MDAzYz0gMCkge1xuJiM0MztcdFx0cHJfZXJyKFwmIzM0O3NnOiBzY2F0dGVyX2VsZW1fc3ogbXVzdCBiZSBwb3NpdGl2ZSwgZ290ICVkXFxuXCYjMzQ7LCBuZXdfdmFsKTtcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0b3JkZXIgPSBnZXRfb3JkZXIobmV3X3ZhbCk7XG4mIzQzO1x0aWYgKG9yZGVyIFx1MDAzZSBNQVhfUEFHRV9PUkRFUikge1xuJiM0MztcdFx0cHJfZXJyKFwmIzM0O3NnOiBzY2F0dGVyX2VsZW1fc3ogdG9vIGxhcmdlIChvcmRlciAlZCBcdTAwM2UgTUFYX1BBR0VfT1JERVIgJWQpXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRvcmRlciwgTUFYX1BBR0VfT1JERVIpO1xuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRzY2F0dGVyX2VsZW1fc3ogPSAxIFx1MDAzY1x1MDAzYyAoUEFHRV9TSElGVCAmIzQzOyBvcmRlcik7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO21vZHVsZV9wYXJhbV9jYWxsKHNjYXR0ZXJfZWxlbV9zeiwgc2NhdHRlcl9lbGVtX3N6X3NldCwgcGFyYW1fZ2V0X2ludCxcbiYjNDM7XHRcdCAgXHUwMDI2c2NhdHRlcl9lbGVtX3N6LCAwNjQ0KTtcbiYjNDM7XG4mIzQzO21vZHVsZV9wYXJhbV9uYW1lZChhbGxvd19kaW8sIHNnX2FsbG93X2RpbywgaW50LCAwNjQ0KTtcbiBcbiBzdGF0aWMgaW50IGRlZl9yZXNlcnZlZF9zaXplX3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxuIHtcbkBAIC0xNjQ5LDggJiM0MzsxNjc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW1fb3BzIGRlZl9yZXNlcnZlZF9zaXplX29wcyA9IHtcbiBcdC5nZXRcdD0gcGFyYW1fZ2V0X2ludCxcbiB9O1xuIFxuLW1vZHVsZV9wYXJhbV9jYihkZWZfcmVzZXJ2ZWRfc2l6ZSwgXHUwMDI2ZGVmX3Jlc2VydmVkX3NpemVfb3BzLCBcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZSxcbi1cdFx0ICAgU19JUlVHTyB8IFNfSVdVU1IpO1xuJiM0Mzttb2R1bGVfcGFyYW1fY2IoZGVmX3Jlc2VydmVkX3NpemUsIFx1MDAyNmRlZl9yZXNlcnZlZF9zaXplX29wcywgXHUwMDI2ZGVmX3Jlc2VydmVkX3NpemUsIDA2NDQpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCYjMzQ7RG91Z2xhcyBHaWxiZXJ0XCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7U0NTSSBnZW5lcmljIChzZykgZHJpdmVyXCYjMzQ7KTtcbkBAIC0xNjY4LDExICYjNDM7MTY5Miw2IEBAIGluaXRfc2codm9pZClcbiB7XG4gXHRpbnQgcmM7XG4gXG4tXHRpZiAoc2NhdHRlcl9lbGVtX3N6IFx1MDAzYyBQQUdFX1NJWkUpIHtcbi1cdFx0c2NhdHRlcl9lbGVtX3N6ID0gUEFHRV9TSVpFO1xuLVx0XHRzY2F0dGVyX2VsZW1fc3pfcHJldiA9IHNjYXR0ZXJfZWxlbV9zejtcbi1cdH1cbi1cbiBcdHJjID0gcmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbihNS0RFVihTQ1NJX0dFTkVSSUNfTUFKT1IsIDApLCBcbiBcdFx0XHRcdCAgICBTR19NQVhfREVWUywgXCYjMzQ7c2dcJiMzNDspO1xuIFx0aWYgKHJjKVxuQEAgLTE4NTQsOSAmIzQzOzE4NzMsMTAgQEAgc2dfYnVpbGRfc2dhdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBjb25zdCBTZ19mZCAqIHNmcCwgaW50IHRhYmxlc2l6ZSlcbiBzdGF0aWMgaW50XG4gc2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpXG4ge1xuLVx0aW50IHJldF9zeiA9IDAsIGksIGssIHJlbV9zeiwgbnVtLCBteF9zY19lbGVtcztcbiYjNDM7XHRpbnQgcmV0X3N6ID0gMCwgaSwgaywgcmVtX3N6LCBteF9zY19lbGVtcztcbiBcdGludCBzZ190YWJsZXNpemUgPSBzZnAtXHUwMDNlcGFyZW50ZHAtXHUwMDNlc2dfdGFibGVzaXplO1xuIFx0aW50IGJsa19zaXplID0gYnVmZl9zaXplLCBvcmRlcjtcbiYjNDM7XHRpbnQgZWxlbV9zeiA9IHNjYXR0ZXJfZWxlbV9zejtcbiBcdGdmcF90IGdmcF9tYXNrID0gR0ZQX0FUT01JQyB8IF9fR0ZQX0NPTVAgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9aRVJPO1xuIFxuIFx0aWYgKGJsa19zaXplIFx1MDAzYyAwKVxuQEAgLTE4NzQsMzkgJiM0MzsxODk0LDE5IEBAIHNnX2J1aWxkX2luZGlyZWN0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIFNnX2ZkICogc2ZwLCBpbnQgYnVmZl9zaXplKVxuIFx0aWYgKG14X3NjX2VsZW1zIFx1MDAzYyAwKVxuIFx0XHRyZXR1cm4gbXhfc2NfZWxlbXM7XHQvKiBtb3N0IGxpa2VseSAtRU5PTUVNICovXG4gXG4tXHRudW0gPSBzY2F0dGVyX2VsZW1fc3o7XG4tXHRpZiAodW5saWtlbHkobnVtICE9IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSkge1xuLVx0XHRpZiAobnVtIFx1MDAzYyBQQUdFX1NJWkUpIHtcbi1cdFx0XHRzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7XG4tXHRcdFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBQQUdFX1NJWkU7XG4tXHRcdH0gZWxzZVxuLVx0XHRcdHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gbnVtO1xuLVx0fVxuLVxuLVx0b3JkZXIgPSBnZXRfb3JkZXIobnVtKTtcbiYjNDM7XHRvcmRlciA9IGdldF9vcmRlcihlbGVtX3N6KTtcbiByZXRyeTpcbiBcdHJldF9zeiA9IDEgXHUwMDNjXHUwMDNjIChQQUdFX1NISUZUICYjNDM7IG9yZGVyKTtcbiBcbiBcdGZvciAoayA9IDAsIHJlbV9zeiA9IGJsa19zaXplOyByZW1fc3ogXHUwMDNlIDAgXHUwMDI2XHUwMDI2IGsgXHUwMDNjIG14X3NjX2VsZW1zO1xuIFx0ICAgICBrJiM0MzsmIzQzOywgcmVtX3N6IC09IHJldF9zeikge1xuLVxuLVx0XHRudW0gPSAocmVtX3N6IFx1MDAzZSBzY2F0dGVyX2VsZW1fc3pfcHJldikgP1xuLVx0XHRcdHNjYXR0ZXJfZWxlbV9zel9wcmV2IDogcmVtX3N6O1xuLVxuIFx0XHRzY2hwLVx1MDAzZXBhZ2VzW2tdID0gYWxsb2NfcGFnZXMoZ2ZwX21hc2ssIG9yZGVyKTtcbiBcdFx0aWYgKCFzY2hwLVx1MDAzZXBhZ2VzW2tdKVxuIFx0XHRcdGdvdG8gb3V0O1xuIFxuLVx0XHRpZiAobnVtID09IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSB7XG4tXHRcdFx0aWYgKHVubGlrZWx5KHJldF9zeiBcdTAwM2Ugc2NhdHRlcl9lbGVtX3N6X3ByZXYpKSB7XG4tXHRcdFx0XHRzY2F0dGVyX2VsZW1fc3ogPSByZXRfc3o7XG4tXHRcdFx0XHRzY2F0dGVyX2VsZW1fc3pfcHJldiA9IHJldF9zejtcbi1cdFx0XHR9XG4tXHRcdH1cbi1cbiBcdFx0U0NTSV9MT0dfVElNRU9VVCg1LCBzZ19wcmludGsoS0VSTl9JTkZPLCBzZnAtXHUwMDNlcGFyZW50ZHAsXG4tXHRcdFx0XHQgXCYjMzQ7c2dfYnVpbGRfaW5kaXJlY3Q6IGs9JWQsIG51bT0lZCwgcmV0X3N6PSVkXFxuXCYjMzQ7LFxuLVx0XHRcdFx0IGssIG51bSwgcmV0X3N6KSk7XG4mIzQzO1x0XHRcdFx0IFwmIzM0OyVzOiBrPSVkLCByZXRfc3o9JWRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0IF9fZnVuY19fLCBrLCByZXRfc3opKTtcbiBcdH1cdFx0LyogZW5kIG9mIGZvciBsb29wICovXG4gXG4gXHRzY2hwLVx1MDAzZXBhZ2Vfb3JkZXIgPSBvcmRlcjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxOToyMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDSFJfREVWX1NHJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2dfYnVpbGRfaW5kaXJlY3QmIzM0OywKICAgICYjMzQ7c2NhdHRlcl9lbGVtX3N6X3NldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGFsbG9jYXRpbmcgc2NhdHRlci1nYXRoZXIgbGlzdHMgaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBhZGRzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbiBsb2dpYy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSBTQ1NJIGlvY3Rscy93cml0ZXMgYW5kIHN5c2ZzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjYTlkNzBiMmZhNTJiMDQ0Y2Y1MzVhMDZjODkwNjc4MWQxY2YwNzc2CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgOSAxOToyMjoxMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZy5jIGIvZHJpdmVycy9zY3NpL3NnLmMKaW5kZXggNzRjZDRlOGE2MWMyYTAuLjM3N2MzZTFkZWU3ZmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2cuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Njc2kvc2cuYwpAQCAtOTIsNyAmIzQzOzkyLDYgQEAgc3RhdGljIGludCBkZWZfcmVzZXJ2ZWRfc2l6ZSA9IFNHX0RFRl9SRVNFUlZFRF9TSVpFOwogc3RhdGljIGludCBzZ19hbGxvd19kaW8gPSBTR19BTExPV19ESU9fREVGOwogCiBzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zeiA9IFNHX1NDQVRURVJfU1o7Ci1zdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gU0dfU0NBVFRFUl9TWjsKIAogI2RlZmluZSBTR19TRUNUT1JfU1ogNTEyCiAKQEAgLTE2MjIsOCAmIzQzOzE2MjEsMzQgQEAgc2dfcmVtb3ZlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpjbF9kZXYpCiAJa3JlZl9wdXQoJmFtcDtzZHAtJmd0O2RfcmVmLCBzZ19kZXZpY2VfZGVzdHJveSk7CiB9CiAKLW1vZHVsZV9wYXJhbV9uYW1lZChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zeiwgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7Ci1tb2R1bGVfcGFyYW1fbmFtZWQoYWxsb3dfZGlvLCBzZ19hbGxvd19kaW8sIGludCwgU19JUlVHTyB8IFNfSVdVU1IpOwomIzQzO3N0YXRpYyBpbnQgc2NhdHRlcl9lbGVtX3N6X3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKQomIzQzO3sKJiM0MzsJaW50IHJldCwgbmV3X3ZhbCwgb3JkZXI7CiYjNDM7CiYjNDM7CXJldCA9IGtzdHJ0b2ludCh2YWwsIDAsICZhbXA7bmV3X3ZhbCk7CiYjNDM7CWlmIChyZXQpCiYjNDM7CQlyZXR1cm4gcmV0OwomIzQzOwomIzQzOwlpZiAobmV3X3ZhbCAmbHQ7PSAwKSB7CiYjNDM7CQlwcl9lcnIoJiMzNDtzZzogc2NhdHRlcl9lbGVtX3N6IG11c3QgYmUgcG9zaXRpdmUsIGdvdCAlZFxuJiMzNDssIG5ld192YWwpOwomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CX0KJiM0MzsKJiM0MzsJb3JkZXIgPSBnZXRfb3JkZXIobmV3X3ZhbCk7CiYjNDM7CWlmIChvcmRlciAmZ3Q7IE1BWF9QQUdFX09SREVSKSB7CiYjNDM7CQlwcl9lcnIoJiMzNDtzZzogc2NhdHRlcl9lbGVtX3N6IHRvbyBsYXJnZSAob3JkZXIgJWQgJmd0OyBNQVhfUEFHRV9PUkRFUiAlZClcbiYjMzQ7LAomIzQzOwkJCW9yZGVyLCBNQVhfUEFHRV9PUkRFUik7CiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJfQomIzQzOwomIzQzOwlzY2F0dGVyX2VsZW1fc3ogPSAxICZsdDsmbHQ7IChQQUdFX1NISUZUICYjNDM7IG9yZGVyKTsKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzOwomIzQzO21vZHVsZV9wYXJhbV9jYWxsKHNjYXR0ZXJfZWxlbV9zeiwgc2NhdHRlcl9lbGVtX3N6X3NldCwgcGFyYW1fZ2V0X2ludCwKJiM0MzsJCSAgJmFtcDtzY2F0dGVyX2VsZW1fc3osIDA2NDQpOwomIzQzOwomIzQzO21vZHVsZV9wYXJhbV9uYW1lZChhbGxvd19kaW8sIHNnX2FsbG93X2RpbywgaW50LCAwNjQ0KTsKIAogc3RhdGljIGludCBkZWZfcmVzZXJ2ZWRfc2l6ZV9zZXQoY29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcCkKIHsKQEAgLTE2NDksOCAmIzQzOzE2NzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbV9vcHMgZGVmX3Jlc2VydmVkX3NpemVfb3BzID0gewogCS5nZXQJPSBwYXJhbV9nZXRfaW50LAogfTsKIAotbW9kdWxlX3BhcmFtX2NiKGRlZl9yZXNlcnZlZF9zaXplLCAmYW1wO2RlZl9yZXNlcnZlZF9zaXplX29wcywgJmFtcDtkZWZfcmVzZXJ2ZWRfc2l6ZSwKLQkJICAgU19JUlVHTyB8IFNfSVdVU1IpOwomIzQzO21vZHVsZV9wYXJhbV9jYihkZWZfcmVzZXJ2ZWRfc2l6ZSwgJmFtcDtkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsICZhbXA7ZGVmX3Jlc2VydmVkX3NpemUsIDA2NDQpOwogCiBNT0RVTEVfQVVUSE9SKCYjMzQ7RG91Z2xhcyBHaWxiZXJ0JiMzNDspOwogTU9EVUxFX0RFU0NSSVBUSU9OKCYjMzQ7U0NTSSBnZW5lcmljIChzZykgZHJpdmVyJiMzNDspOwpAQCAtMTY2OCwxMSAmIzQzOzE2OTIsNiBAQCBpbml0X3NnKHZvaWQpCiB7CiAJaW50IHJjOwogCi0JaWYgKHNjYXR0ZXJfZWxlbV9zeiAmbHQ7IFBBR0VfU0laRSkgewotCQlzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7Ci0JCXNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gc2NhdHRlcl9lbGVtX3N6OwotCX0KLQogCXJjID0gcmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbihNS0RFVihTQ1NJX0dFTkVSSUNfTUFKT1IsIDApLCAKIAkJCQkgICAgU0dfTUFYX0RFVlMsICYjMzQ7c2cmIzM0Oyk7CiAJaWYgKHJjKQpAQCAtMTg1NCw5ICYjNDM7MTg3MywxMCBAQCBzZ19idWlsZF9zZ2F0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIGNvbnN0IFNnX2ZkICogc2ZwLCBpbnQgdGFibGVzaXplKQogc3RhdGljIGludAogc2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpCiB7Ci0JaW50IHJldF9zeiA9IDAsIGksIGssIHJlbV9zeiwgbnVtLCBteF9zY19lbGVtczsKJiM0MzsJaW50IHJldF9zeiA9IDAsIGksIGssIHJlbV9zeiwgbXhfc2NfZWxlbXM7CiAJaW50IHNnX3RhYmxlc2l6ZSA9IHNmcC0mZ3Q7cGFyZW50ZHAtJmd0O3NnX3RhYmxlc2l6ZTsKIAlpbnQgYmxrX3NpemUgPSBidWZmX3NpemUsIG9yZGVyOwomIzQzOwlpbnQgZWxlbV9zeiA9IHNjYXR0ZXJfZWxlbV9zejsKIAlnZnBfdCBnZnBfbWFzayA9IEdGUF9BVE9NSUMgfCBfX0dGUF9DT01QIHwgX19HRlBfTk9XQVJOIHwgX19HRlBfWkVSTzsKIAogCWlmIChibGtfc2l6ZSAmbHQ7IDApCkBAIC0xODc0LDM5ICYjNDM7MTg5NCwxOSBAQCBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSkKIAlpZiAobXhfc2NfZWxlbXMgJmx0OyAwKQogCQlyZXR1cm4gbXhfc2NfZWxlbXM7CS8qIG1vc3QgbGlrZWx5IC1FTk9NRU0gKi8KIAotCW51bSA9IHNjYXR0ZXJfZWxlbV9zejsKLQlpZiAodW5saWtlbHkobnVtICE9IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSkgewotCQlpZiAobnVtICZsdDsgUEFHRV9TSVpFKSB7Ci0JCQlzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7Ci0JCQlzY2F0dGVyX2VsZW1fc3pfcHJldiA9IFBBR0VfU0laRTsKLQkJfSBlbHNlCi0JCQlzY2F0dGVyX2VsZW1fc3pfcHJldiA9IG51bTsKLQl9Ci0KLQlvcmRlciA9IGdldF9vcmRlcihudW0pOwomIzQzOwlvcmRlciA9IGdldF9vcmRlcihlbGVtX3N6KTsKIHJldHJ5OgogCXJldF9zeiA9IDEgJmx0OyZsdDsgKFBBR0VfU0hJRlQgJiM0Mzsgb3JkZXIpOwogCiAJZm9yIChrID0gMCwgcmVtX3N6ID0gYmxrX3NpemU7IHJlbV9zeiAmZ3Q7IDAgJmFtcDsmYW1wOyBrICZsdDsgbXhfc2NfZWxlbXM7CiAJICAgICBrJiM0MzsmIzQzOywgcmVtX3N6IC09IHJldF9zeikgewotCi0JCW51bSA9IChyZW1fc3ogJmd0OyBzY2F0dGVyX2VsZW1fc3pfcHJldikgPwotCQkJc2NhdHRlcl9lbGVtX3N6X3ByZXYgOiByZW1fc3o7Ci0KIAkJc2NocC0mZ3Q7cGFnZXNba10gPSBhbGxvY19wYWdlcyhnZnBfbWFzaywgb3JkZXIpOwogCQlpZiAoIXNjaHAtJmd0O3BhZ2VzW2tdKQogCQkJZ290byBvdXQ7CiAKLQkJaWYgKG51bSA9PSBzY2F0dGVyX2VsZW1fc3pfcHJldikgewotCQkJaWYgKHVubGlrZWx5KHJldF9zeiAmZ3Q7IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSkgewotCQkJCXNjYXR0ZXJfZWxlbV9zeiA9IHJldF9zejsKLQkJCQlzY2F0dGVyX2VsZW1fc3pfcHJldiA9IHJldF9zejsKLQkJCX0KLQkJfQotCiAJCVNDU0lfTE9HX1RJTUVPVVQoNSwgc2dfcHJpbnRrKEtFUk5fSU5GTywgc2ZwLSZndDtwYXJlbnRkcCwKLQkJCQkgJiMzNDtzZ19idWlsZF9pbmRpcmVjdDogaz0lZCwgbnVtPSVkLCByZXRfc3o9JWRcbiYjMzQ7LAotCQkJCSBrLCBudW0sIHJldF9zeikpOwomIzQzOwkJCQkgJiMzNDslczogaz0lZCwgcmV0X3N6PSVkXG4mIzM0OywKJiM0MzsJCQkJIF9fZnVuY19fLCBrLCByZXRfc3opKTsKIAl9CQkvKiBlbmQgb2YgZm9yIGxvb3AgKi8KIAogCXNjaHAtJmd0O3BhZ2Vfb3JkZXIgPSBvcmRlcjsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMzNwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDI2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNDU0kgR2VuZXJpYyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBkaWdnaW5nIGludG8gYGRyaXZlcnMvc2NzaS9zZy5jYCwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGhvdyB0aGUgc2NhdHRlci1nYXRoZXIgZWxlbWVudCBzaXplIChgc2NhdHRlcl9lbGVtX3N6YCkgaXMgaGFuZGxlZC4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBzaW1wbGlmeWluZyB0aGluZ3MgYSBiaXQuICBUaGV5JiMzOTt2ZSBpbnRyb2R1Y2VkIGEgYHNjYXR0ZXJfZWxlbV9zel9zZXRgIGZ1bmN0aW9uLCB3aGljaCBpcyBpbnRlcmVzdGluZywgcHJvYmFibHkgdG8gYWxsb3cgZm9yIGR5bmFtaWMgYWRqdXN0bWVudCB2aWEgYSBtb2R1bGUgcGFyYW1ldGVyLCBzbyB3ZSBtaWdodCB3YW50IHRvIHNlZSBob3cgdGhhdCYjMzk7cyB1c2VkLiAgR29vZCByaWRkYW5jZSB0byB0aGUgYHNjYXR0ZXJfZWxlbV9zel9wcmV2YCwgdGhhdCBzZWVtcyB1bm5lY2Vzc2FyeSBub3cuCgpUaGUgY29yZSBjaGFuZ2UgYXBwZWFycyB0byBiZSB3aXRoaW4gYHNnX2J1aWxkX2luZGlyZWN0YC4gIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgbm93IHVzaW5nIHRoZSBkaXJlY3RseSBjb25maWd1cmVkIGBzY2F0dGVyX2VsZW1fc3pgIGluIHRoYXQgZnVuY3Rpb24sIHJhdGhlciB0aGFuIHRoZSBwcmV2aW91cyBtZXRob2QgdGhhdCBpbnZvbHZlZCB0cmFja2luZyBhIGBzY2F0dGVyX2VsZW1fc3pfcHJldmAuIFRoYXQgbWFrZXMgc2Vuc2U7IGl0IHNpbXBsaWZpZXMgdGhlIGxvZ2ljLiAgSSYjMzk7bGwgd2FudCB0byByZXZpZXcgaG93IGBzZ19idWlsZF9pbmRpcmVjdGAgaXMgKmFjdHVhbGx5KiB1c2luZyB0aGlzIHNpemUsIHRob3VnaC4gIEFsc28sIGl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgZG9uZSBhIHBlcm1pc3Npb25zIGNoYW5nZSBmcm9tIGBTX0lSVUdPIHwgU19JV1VTUmAgdG8gYDA2NDRgLiAgU3RhbmRhcmQgcGVybWlzc2lvbnMgY2hhbmdlLCBub3RoaW5nIHRvIGJlIHRvbyBjb25jZXJuZWQgYWJvdXQsIGJ1dCBJIHNob3VsZCB2ZXJpZnkgdGhhdCBpdCB3b24mIzM5O3QgaW1wYWN0IGFueSBkb3duc3RyZWFtIGFwcGxpY2F0aW9ucy4KCkxldCYjMzk7cyBtYWtlIHN1cmUgdGhpcyBjb2RlIGlzIGV2ZW4gKnVzZWQqLiBgc2dfYnVpbGRfaW5kaXJlY3RgIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlOyB0aGF0JiMzOTtzIHRoZSBjb3JlIG9mIHRoZSBgL2Rldi9zZypgIGRldmljZSBmdW5jdGlvbmFsaXR5LCBzbyBpdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgY29uc3RydWN0aW5nIHRoZSBzY2F0dGVyLWdhdGhlciBsaXN0cyBmb3IgU0NTSSBjb21tYW5kcy4gU28sIHRoYXQmIzM5O3Mgbm90IGEgY29uY2Vybi4gVGhlIG1haW4gY29uZmlnIGlzIHVuZGVyIGBDT05GSUdfQ0hSX0RFVl9TR2AuIEkmIzM5O2xsIHdhbnQgdG8gY2hlY2sgaG93IHRoZSBwYXJhbWV0ZXIgaXMgc2V0IGFuZCBob3cgdGhlIG5ldyBmdW5jdGlvbmFsaXR5IGludGVyYWN0cyB3aXRoIGFsbCBvZiB0aGUgb3RoZXIgcGFydHMgb2YgdGhlIGRyaXZlci4gT3ZlcmFsbCwgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgY2xlYW51cCBhbmQgc2ltcGxpZmljYXRpb24sIGxldCYjMzk7cyBzZWUgaG93IHdlbGwgaXQgd29ya3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX0NIUl9ERVZfU0cmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3Njc2kvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9zY3NpL01ha2VmaWxlPTE0OT1vYmotJChDT05GSUdfQkxLX0RFVl9TUilcdCYjNDM7PSBzcl9tb2Qub1xuZHJpdmVycy9zY3NpL01ha2VmaWxlOjE1MDpvYmotJChDT05GSUdfQ0hSX0RFVl9TRylcdCYjNDM7PSBzZy5vXG5kcml2ZXJzL3Njc2kvTWFrZWZpbGUtMTUxLW9iai0kKENPTkZJR19DSFJfREVWX1NDSClcdCYjNDM7PSBjaC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDEyNgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLCB0aGUgc3lzdGVtJiMzOTtzIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgaXMgYENIUl9ERVZfU0dgLiBSaWdodCwgdGhhdCYjMzk7cyB0aGUgb25lLiBOb3csIG15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgYHNnX2J1aWxkX2luZGlyZWN0YCBpcyBhIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2suIFRoYXQgZnVuY3Rpb24gaXMgY3J1Y2lhbCBiZWNhdXNlIGl0JiMzOTtzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW5nIGJ1ZmZlcnMgd2hlbiBTQ1NJIGNvbW1hbmRzIGFyZSBiZWluZyBpc3N1ZWQsIGFuZCBhbnkgc2xvd2Rvd24gdGhlcmUgaXMgZ29pbmcgdG8gcmlwcGxlIG91dHdhcmRzLgoKTXkgbWVudGFsIG1vZGVsIGlzIHRha2luZyBtZSB0aHJvdWdoIHRoZSBjYWxsIHN0YWNrLi4uIEkga25vdyBpdCYjMzk7cyAqcmVsYXRlZCogdG8gYHNnX2J1aWxkX3NnYXRgLCBidXQgSSBkb24mIzM5O3QgdGhpbmsgdGhhdCYjMzk7cyB0aGUgZGlyZWN0IGNhbGxlci4gTm8sIGhhbmcgb24sIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGBzZ19hZGRfc2ZwYCwgYHNnX3dyaXRlYCwgb3IgYHNnX2lvY3RsYC4gVGhvc2UgYXJlIGFsbCBkaWZmZXJlbnQgd2F5cyB1c2VycyBpbnRlcmFjdCB3aXRoIHRoZSBTQ1NJIHN1YnN5c3RlbSwgc28gdGhhdCBjb25maXJtcyB0aGlzICppcyogYSBrZXkgYXJlYSBmb3IgcGVyZm9ybWFuY2UuIFRpbWUgdG8gZGlnIGRlZXBlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxOToyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZ19idWlsZF9pbmRpcmVjdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvc2NzaS9zZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvc2NzaS9zZy5jPTE4Mj1zdGF0aWMgaW50IHNnX2ZpbmlzaF9yZW1fcmVxKFNnX3JlcXVlc3QgKiBzcnApO1xuZHJpdmVycy9zY3NpL3NnLmM6MTgzOnN0YXRpYyBpbnQgc2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpO1xuZHJpdmVycy9zY3NpL3NnLmMtMTg0LXN0YXRpYyBzc2l6ZV90IHNnX25ld19yZWFkKFNnX2ZkICogc2ZwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9zY3NpL3NnLmM9MTczMT1zZ19zdGFydF9yZXEoU2dfcmVxdWVzdCAqc3JwLCB1bnNpZ25lZCBjaGFyICpjbWQpXG4tLVxuZHJpdmVycy9zY3NpL3NnLmMtMTgwMi1cdFx0fSBlbHNlIHtcbmRyaXZlcnMvc2NzaS9zZy5jOjE4MDM6XHRcdFx0cmVzID0gc2dfYnVpbGRfaW5kaXJlY3QocmVxX3NjaHAsIHNmcCwgZHhmZXJfbGVuKTtcbmRyaXZlcnMvc2NzaS9zZy5jLTE4MDQtXHRcdFx0aWYgKHJlcykge1xuLS1cbmRyaXZlcnMvc2NzaS9zZy5jPTE4NzM9c3RhdGljIGludFxuZHJpdmVycy9zY3NpL3NnLmM6MTg3NDpzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlcbmRyaXZlcnMvc2NzaS9zZy5jLTE4NzUte1xuLS1cbmRyaXZlcnMvc2NzaS9zZy5jLTE4ODgtXHRTQ1NJX0xPR19USU1FT1VUKDQsIHNnX3ByaW50ayhLRVJOX0lORk8sIHNmcC1cdTAwM2VwYXJlbnRkcCxcbmRyaXZlcnMvc2NzaS9zZy5jOjE4ODk6XHRcdFwmIzM0O3NnX2J1aWxkX2luZGlyZWN0OiBidWZmX3NpemU9JWQsIGJsa19zaXplPSVkXFxuXCYjMzQ7LFxuZHJpdmVycy9zY3NpL3NnLmMtMTg5MC1cdFx0YnVmZl9zaXplLCBibGtfc2l6ZSkpO1xuLS1cbmRyaXZlcnMvc2NzaS9zZy5jLTE5MTQtXHRTQ1NJX0xPR19USU1FT1VUKDUsIHNnX3ByaW50ayhLRVJOX0lORk8sIHNmcC1cdTAwM2VwYXJlbnRkcCxcbmRyaXZlcnMvc2NzaS9zZy5jOjE5MTU6XHRcdFx0IFwmIzM0O3NnX2J1aWxkX2luZGlyZWN0OiBrX3VzZV9zZz0lZCwgcmVtX3N6PSVkXFxuXCYjMzQ7LFxuZHJpdmVycy9zY3NpL3NnLmMtMTkxNi1cdFx0XHQgaywgcmVtX3N6KSk7XG4tLVxuZHJpdmVycy9zY3NpL3NnLmM9MTk4OT1zZ19idWlsZF9yZXNlcnZlKFNnX2ZkICogc2ZwLCBpbnQgcmVxX3NpemUpXG4tLVxuZHJpdmVycy9zY3NpL3NnLmMtMTk5Ny1cdFx0XHRyZXFfc2l6ZSA9IFBBR0VfU0laRTtcbmRyaXZlcnMvc2NzaS9zZy5jOjE5OTg6XHRcdGlmICgwID09IHNnX2J1aWxkX2luZGlyZWN0KHNjaHAsIHNmcCwgcmVxX3NpemUpKVxuZHJpdmVycy9zY3NpL3NnLmMtMTk5OS1cdFx0XHRyZXR1cm47XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA3NQoJCQkJCQkJb3V0cHV0OiAxMjAKCQkJCQkJCXRob3VnaHRzOiA1MDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IFNDU0kgR2VuZXJpYyBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgYHNnX2J1aWxkX2luZGlyZWN0YCBsb29rcyBwcm9taXNpbmcgZm9yIGZ1enppbmcuIEl0JiMzOTtzIGNhbGxlZCBmcm9tIGBzZ19zdGFydF9yZXFgIGFuZCBgc2dfYnVpbGRfcmVzZXJ2ZWAsIHdoaWNoLCBpbiB0dXJuLCBhcmUgYXNzb2NpYXRlZCB3aXRoIFNDU0kgY29tbWFuZHMuIFRoYXQgbWFrZXMgaXQgYSBzb2xpZCB0YXJnZXQsIGVzcGVjaWFsbHkgc2luY2UgYHNnX3N0YXJ0X3JlcWAgaXMgYSBjb21tb24gZW50cnkgcG9pbnQuIFRoZSBmYWN0IHRoYXQgYHNjYXR0ZXJfZWxlbV9zel9zZXRgIGlzIGFsc28gaW4gdGhlIG1peCBhbmQgY2FuIGJlIG1hbmlwdWxhdGVkIHRocm91Z2ggc3lzZnMgaXMgYW5vdGhlciBhbmdsZSBJIG5lZWQgdG8gZXhwbG9yZS4KCkkgY29uZmlybWVkIHRoYXQgYENIUl9ERVZfU0dgIGlzIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgdGhlIGBzZy5jYCBkcml2ZXIsIHdoaWNoIGlzIGNydWNpYWwuIFNvLCB0aGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4KCkkgbmVlZCB0byBmb2N1cyBvbiB0aGVzZSBzcGVjaWZpYyBmdW5jdGlvbnM6IGBzZ19idWlsZF9pbmRpcmVjdGAgYW5kIGBzY2F0dGVyX2VsZW1fc3pfc2V0YC4gSSBjb25maXJtZWQgYm90aCBvZiB0aGVzZSBhcmUsIGluIGZhY3QsIGBzdGF0aWNgLCB3aGljaCBpcyB0eXBpY2FsIGZvciBpbnRlcm5hbCBmdW5jdGlvbnMsIGJ1dCBkb2VzbiYjMzk7dCBuZWNlc3NhcmlseSBtZWFuIHVucmVhY2hhYmxlLiBMZXQmIzM5O3Mgc2VlLi4uCgpOb3csIGxldCYjMzk7cyB2ZXJpZnkgcmVhY2hhYmlsaXR5LiBHb29kIG5ld3M6IGBzZ19idWlsZF9pbmRpcmVjdGAgaXMgcmVhY2hhYmxlIHZpYSBgc2dfc3RhcnRfcmVxYC4gIEFuZCB0aGF0JiMzOTtzIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgYHNnX3dyaXRlYCwgYHNnX25ld193cml0ZWAsIG9yIGBzZ19pb2N0bGAgaW50ZXJmYWNlcywgbWFraW5nIGl0IHVzZXItc3BhY2UgY29udHJvbGxlZC4gYHNjYXR0ZXJfZWxlbV9zel9zZXRgIGlzIHJlYWNoYWJsZSB2aWEgc3lzZnMsIGEgd3JpdGUgb3BlcmF0aW9uIHRvIGAvc3lzL21vZHVsZS9zZy9wYXJhbWV0ZXJzL3NjYXR0ZXJfZWxlbV9zemAuIFRoYXQmIzM5O3MgZWFzeSB0byB0ZXN0LgoKSSYjMzk7dmUgYWxzbyBkb3VibGUtY2hlY2tlZCB0aGUgZXhhY3QgZnVuY3Rpb24gbmFtZXMgYW5kIHBhcmFtZXRlcnMgdG8gbWFrZSBzdXJlIEkmIzM5O20gdGFyZ2V0aW5nIHRoZSBjb3JyZWN0IGZ1bmN0aW9ucyBmb3IgdGhlIHRlc3RpbmcgYW5kIHRoYXQmIzM5O3M6IGBzdGF0aWMgaW50IHNnX2J1aWxkX2luZGlyZWN0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIFNnX2ZkICogc2ZwLCBpbnQgYnVmZl9zaXplKWAgYW5kIGBzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zel9zZXQoY29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcClgLgoKVGhlIGZpbmFsIHRoaW5nIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgaXMgZGVwZW5kZW5jaWVzLCBidXQgaXQgbG9va3MgbGlrZSBgQ09ORklHX1NDU0lgIGlzIHJlcXVpcmVkIGZvciBgQ0hSX0RFVl9TR2AsIGJ1dCBgQ0hSX0RFVl9TR2AgaXMgdGhlIG1haW4gdGhpbmcgaGVyZS4KClNvLCBoZXJlJiMzOTtzIG15IHN1bW1hcml6ZWQgdmlldzoKCioqV29ydGhGdXp6aW5nOiBUcnVlKioKCioqRm9jdXNTeW1ib2xzOioqIGBzZ19idWlsZF9pbmRpcmVjdGAsIGBzY2F0dGVyX2VsZW1fc3pfc2V0YAoKKipFbmFibGVDb25maWdzOioqIGBDSFJfREVWX1NHYAoKKipSZWFzb25pbmc6KiogVGhpcyBwYXRjaCBtb2RpZmllcyBjcml0aWNhbCBsb2dpYyByZWxhdGVkIHRvIHNjYXR0ZXItZ2F0aGVyIGxpc3QgYWxsb2NhdGlvbiB3aXRoaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBpbnRyb2R1Y2VzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbi4gIFRoZXNlIGFyZSBjaGFuZ2VzIHdpdGggZGlyZWN0IHVzZXItc3BhY2UgaW50ZXJmYWNlcyAoU0NTSSBpb2N0bHMvd3JpdGVzIGFuZCBzeXNmcywgcmVzcGVjdGl2ZWx5KSBtYWtpbmcgdGhlbSBpZGVhbCB0YXJnZXRzIGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDE5OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDSFJfREVWX1NHJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2dfYnVpbGRfaW5kaXJlY3QmIzM0OywKICAgICYjMzQ7c2NhdHRlcl9lbGVtX3N6X3NldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGFsbG9jYXRpbmcgc2NhdHRlci1nYXRoZXIgbGlzdHMgaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBhZGRzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbiBsb2dpYy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSBTQ1NJIGlvY3Rscy93cml0ZXMgYW5kIHN5c2ZzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDSFJfREVWX1NHJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2dfYnVpbGRfaW5kaXJlY3QmIzM0OywKICAgICYjMzQ7c2NhdHRlcl9lbGVtX3N6X3NldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGFsbG9jYXRpbmcgc2NhdHRlci1nYXRoZXIgbGlzdHMgaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBhZGRzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbiBsb2dpYy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSBTQ1NJIGlvY3Rscy93cml0ZXMgYW5kIHN5c2ZzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDlUMTk6MjI6MTIuMzkwMDY5NzkxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzEzMDEzNTg4MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0hSX0RFVl9TR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNnX2J1aWxkX2luZGlyZWN0XCIsXG4gICAgXCJzY2F0dGVyX2VsZW1fc3pfc2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBhbGxvY2F0aW5nIHNjYXR0ZXItZ2F0aGVyIGxpc3RzIGluIHRoZSBTQ1NJIGdlbmVyaWMgZHJpdmVyIChgc2dfYnVpbGRfaW5kaXJlY3RgKSBhbmQgYWRkcyBhIG5ldyBtb2R1bGUgcGFyYW1ldGVyIHNldHRlciAoYHNjYXR0ZXJfZWxlbV9zel9zZXRgKSB3aXRoIHZhbGlkYXRpb24gbG9naWMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGZyb20gdXNlciBzcGFjZSB2aWEgU0NTSSBpb2N0bHMvd3JpdGVzIGFuZCBzeXNmcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTk6MjI6MTIuMzkwMDc2NTQxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTI4NDUwMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBjYTlkNzBiMmZhNTJiMDQ0Y2Y1MzVhMDZjODkwNjc4MWQxY2YwNzc2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDkgMTk6MjI6MTAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3NnLmMgYi9kcml2ZXJzL3Njc2kvc2cuY1xcbmluZGV4IDc0Y2Q0ZThhNjFjMmEwLi4zNzdjM2UxZGVlN2ZmOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvc2cuY1xcbisrKyBiL2RyaXZlcnMvc2NzaS9zZy5jXFxuQEAgLTkyLDcgKzkyLDYgQEAgc3RhdGljIGludCBkZWZfcmVzZXJ2ZWRfc2l6ZSA9IFNHX0RFRl9SRVNFUlZFRF9TSVpFO1xcbiBzdGF0aWMgaW50IHNnX2FsbG93X2RpbyA9IFNHX0FMTE9XX0RJT19ERUY7XFxuIFxcbiBzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zeiA9IFNHX1NDQVRURVJfU1o7XFxuLXN0YXRpYyBpbnQgc2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBTR19TQ0FUVEVSX1NaO1xcbiBcXG4gI2RlZmluZSBTR19TRUNUT1JfU1ogNTEyXFxuIFxcbkBAIC0xNjIyLDggKzE2MjEsMzQgQEAgc2dfcmVtb3ZlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpjbF9kZXYpXFxuIFxcdGtyZWZfcHV0KFxcdTAwMjZzZHAtXFx1MDAzZWRfcmVmLCBzZ19kZXZpY2VfZGVzdHJveSk7XFxuIH1cXG4gXFxuLW1vZHVsZV9wYXJhbV9uYW1lZChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zeiwgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7XFxuLW1vZHVsZV9wYXJhbV9uYW1lZChhbGxvd19kaW8sIHNnX2FsbG93X2RpbywgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7XFxuK3N0YXRpYyBpbnQgc2NhdHRlcl9lbGVtX3N6X3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxcbit7XFxuK1xcdGludCByZXQsIG5ld192YWwsIG9yZGVyO1xcbitcXG4rXFx0cmV0ID0ga3N0cnRvaW50KHZhbCwgMCwgXFx1MDAyNm5ld192YWwpO1xcbitcXHRpZiAocmV0KVxcbitcXHRcXHRyZXR1cm4gcmV0O1xcbitcXG4rXFx0aWYgKG5ld192YWwgXFx1MDAzYz0gMCkge1xcbitcXHRcXHRwcl9lcnIoXFxcInNnOiBzY2F0dGVyX2VsZW1fc3ogbXVzdCBiZSBwb3NpdGl2ZSwgZ290ICVkXFxcXG5cXFwiLCBuZXdfdmFsKTtcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdH1cXG4rXFxuK1xcdG9yZGVyID0gZ2V0X29yZGVyKG5ld192YWwpO1xcbitcXHRpZiAob3JkZXIgXFx1MDAzZSBNQVhfUEFHRV9PUkRFUikge1xcbitcXHRcXHRwcl9lcnIoXFxcInNnOiBzY2F0dGVyX2VsZW1fc3ogdG9vIGxhcmdlIChvcmRlciAlZCBcXHUwMDNlIE1BWF9QQUdFX09SREVSICVkKVxcXFxuXFxcIixcXG4rXFx0XFx0XFx0b3JkZXIsIE1BWF9QQUdFX09SREVSKTtcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdH1cXG4rXFxuK1xcdHNjYXR0ZXJfZWxlbV9zeiA9IDEgXFx1MDAzY1xcdTAwM2MgKFBBR0VfU0hJRlQgKyBvcmRlcik7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbittb2R1bGVfcGFyYW1fY2FsbChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zel9zZXQsIHBhcmFtX2dldF9pbnQsXFxuK1xcdFxcdCAgXFx1MDAyNnNjYXR0ZXJfZWxlbV9zeiwgMDY0NCk7XFxuK1xcbittb2R1bGVfcGFyYW1fbmFtZWQoYWxsb3dfZGlvLCBzZ19hbGxvd19kaW8sIGludCwgMDY0NCk7XFxuIFxcbiBzdGF0aWMgaW50IGRlZl9yZXNlcnZlZF9zaXplX3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxcbiB7XFxuQEAgLTE2NDksOCArMTY3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtX29wcyBkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMgPSB7XFxuIFxcdC5nZXRcXHQ9IHBhcmFtX2dldF9pbnQsXFxuIH07XFxuIFxcbi1tb2R1bGVfcGFyYW1fY2IoZGVmX3Jlc2VydmVkX3NpemUsIFxcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsIFxcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZSxcXG4tXFx0XFx0ICAgU19JUlVHTyB8IFNfSVdVU1IpO1xcbittb2R1bGVfcGFyYW1fY2IoZGVmX3Jlc2VydmVkX3NpemUsIFxcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsIFxcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZSwgMDY0NCk7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJEb3VnbGFzIEdpbGJlcnRcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJTQ1NJIGdlbmVyaWMgKHNnKSBkcml2ZXJcXFwiKTtcXG5AQCAtMTY2OCwxMSArMTY5Miw2IEBAIGluaXRfc2codm9pZClcXG4ge1xcbiBcXHRpbnQgcmM7XFxuIFxcbi1cXHRpZiAoc2NhdHRlcl9lbGVtX3N6IFxcdTAwM2MgUEFHRV9TSVpFKSB7XFxuLVxcdFxcdHNjYXR0ZXJfZWxlbV9zeiA9IFBBR0VfU0laRTtcXG4tXFx0XFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBzY2F0dGVyX2VsZW1fc3o7XFxuLVxcdH1cXG4tXFxuIFxcdHJjID0gcmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbihNS0RFVihTQ1NJX0dFTkVSSUNfTUFKT1IsIDApLCBcXG4gXFx0XFx0XFx0XFx0ICAgIFNHX01BWF9ERVZTLCBcXFwic2dcXFwiKTtcXG4gXFx0aWYgKHJjKVxcbkBAIC0xODU0LDkgKzE4NzMsMTAgQEAgc2dfYnVpbGRfc2dhdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBjb25zdCBTZ19mZCAqIHNmcCwgaW50IHRhYmxlc2l6ZSlcXG4gc3RhdGljIGludFxcbiBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlcXG4ge1xcbi1cXHRpbnQgcmV0X3N6ID0gMCwgaSwgaywgcmVtX3N6LCBudW0sIG14X3NjX2VsZW1zO1xcbitcXHRpbnQgcmV0X3N6ID0gMCwgaSwgaywgcmVtX3N6LCBteF9zY19lbGVtcztcXG4gXFx0aW50IHNnX3RhYmxlc2l6ZSA9IHNmcC1cXHUwMDNlcGFyZW50ZHAtXFx1MDAzZXNnX3RhYmxlc2l6ZTtcXG4gXFx0aW50IGJsa19zaXplID0gYnVmZl9zaXplLCBvcmRlcjtcXG4rXFx0aW50IGVsZW1fc3ogPSBzY2F0dGVyX2VsZW1fc3o7XFxuIFxcdGdmcF90IGdmcF9tYXNrID0gR0ZQX0FUT01JQyB8IF9fR0ZQX0NPTVAgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9aRVJPO1xcbiBcXG4gXFx0aWYgKGJsa19zaXplIFxcdTAwM2MgMClcXG5AQCAtMTg3NCwzOSArMTg5NCwxOSBAQCBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlcXG4gXFx0aWYgKG14X3NjX2VsZW1zIFxcdTAwM2MgMClcXG4gXFx0XFx0cmV0dXJuIG14X3NjX2VsZW1zO1xcdC8qIG1vc3QgbGlrZWx5IC1FTk9NRU0gKi9cXG4gXFxuLVxcdG51bSA9IHNjYXR0ZXJfZWxlbV9zejtcXG4tXFx0aWYgKHVubGlrZWx5KG51bSAhPSBzY2F0dGVyX2VsZW1fc3pfcHJldikpIHtcXG4tXFx0XFx0aWYgKG51bSBcXHUwMDNjIFBBR0VfU0laRSkge1xcbi1cXHRcXHRcXHRzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7XFxuLVxcdFxcdFxcdHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gUEFHRV9TSVpFO1xcbi1cXHRcXHR9IGVsc2VcXG4tXFx0XFx0XFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBudW07XFxuLVxcdH1cXG4tXFxuLVxcdG9yZGVyID0gZ2V0X29yZGVyKG51bSk7XFxuK1xcdG9yZGVyID0gZ2V0X29yZGVyKGVsZW1fc3opO1xcbiByZXRyeTpcXG4gXFx0cmV0X3N6ID0gMSBcXHUwMDNjXFx1MDAzYyAoUEFHRV9TSElGVCArIG9yZGVyKTtcXG4gXFxuIFxcdGZvciAoayA9IDAsIHJlbV9zeiA9IGJsa19zaXplOyByZW1fc3ogXFx1MDAzZSAwIFxcdTAwMjZcXHUwMDI2IGsgXFx1MDAzYyBteF9zY19lbGVtcztcXG4gXFx0ICAgICBrKyssIHJlbV9zeiAtPSByZXRfc3opIHtcXG4tXFxuLVxcdFxcdG51bSA9IChyZW1fc3ogXFx1MDAzZSBzY2F0dGVyX2VsZW1fc3pfcHJldikgP1xcbi1cXHRcXHRcXHRzY2F0dGVyX2VsZW1fc3pfcHJldiA6IHJlbV9zejtcXG4tXFxuIFxcdFxcdHNjaHAtXFx1MDAzZXBhZ2VzW2tdID0gYWxsb2NfcGFnZXMoZ2ZwX21hc2ssIG9yZGVyKTtcXG4gXFx0XFx0aWYgKCFzY2hwLVxcdTAwM2VwYWdlc1trXSlcXG4gXFx0XFx0XFx0Z290byBvdXQ7XFxuIFxcbi1cXHRcXHRpZiAobnVtID09IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSB7XFxuLVxcdFxcdFxcdGlmICh1bmxpa2VseShyZXRfc3ogXFx1MDAzZSBzY2F0dGVyX2VsZW1fc3pfcHJldikpIHtcXG4tXFx0XFx0XFx0XFx0c2NhdHRlcl9lbGVtX3N6ID0gcmV0X3N6O1xcbi1cXHRcXHRcXHRcXHRzY2F0dGVyX2VsZW1fc3pfcHJldiA9IHJldF9zejtcXG4tXFx0XFx0XFx0fVxcbi1cXHRcXHR9XFxuLVxcbiBcXHRcXHRTQ1NJX0xPR19USU1FT1VUKDUsIHNnX3ByaW50ayhLRVJOX0lORk8sIHNmcC1cXHUwMDNlcGFyZW50ZHAsXFxuLVxcdFxcdFxcdFxcdCBcXFwic2dfYnVpbGRfaW5kaXJlY3Q6IGs9JWQsIG51bT0lZCwgcmV0X3N6PSVkXFxcXG5cXFwiLFxcbi1cXHRcXHRcXHRcXHQgaywgbnVtLCByZXRfc3opKTtcXG4rXFx0XFx0XFx0XFx0IFxcXCIlczogaz0lZCwgcmV0X3N6PSVkXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHQgX19mdW5jX18sIGssIHJldF9zeikpO1xcbiBcXHR9XFx0XFx0LyogZW5kIG9mIGZvciBsb29wICovXFxuIFxcbiBcXHRzY2hwLVxcdTAwM2VwYWdlX29yZGVyID0gb3JkZXI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDE5OjIyOjEzLjEwMzkzNzUyMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA1ODc0NzczOTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0hSX0RFVl9TR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNnX2J1aWxkX2luZGlyZWN0XCIsXG4gICAgXCJzY2F0dGVyX2VsZW1fc3pfc2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBhbGxvY2F0aW5nIHNjYXR0ZXItZ2F0aGVyIGxpc3RzIGluIHRoZSBTQ1NJIGdlbmVyaWMgZHJpdmVyIChgc2dfYnVpbGRfaW5kaXJlY3RgKSBhbmQgYWRkcyBhIG5ldyBtb2R1bGUgcGFyYW1ldGVyIHNldHRlciAoYHNjYXR0ZXJfZWxlbV9zel9zZXRgKSB3aXRoIHZhbGlkYXRpb24gbG9naWMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGZyb20gdXNlciBzcGFjZSB2aWEgU0NTSSBpb2N0bHMvd3JpdGVzIGFuZCBzeXNmcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjYTlkNzBiMmZhNTJiMDQ0Y2Y1MzVhMDZjODkwNjc4MWQxY2YwNzc2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgOSAxOToyMjoxMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZy5jIGIvZHJpdmVycy9zY3NpL3NnLmNcbmluZGV4IDc0Y2Q0ZThhNjFjMmEwLi4zNzdjM2UxZGVlN2ZmOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9zZy5jXG4rKysgYi9kcml2ZXJzL3Njc2kvc2cuY1xuQEAgLTkyLDcgKzkyLDYgQEAgc3RhdGljIGludCBkZWZfcmVzZXJ2ZWRfc2l6ZSA9IFNHX0RFRl9SRVNFUlZFRF9TSVpFO1xuIHN0YXRpYyBpbnQgc2dfYWxsb3dfZGlvID0gU0dfQUxMT1dfRElPX0RFRjtcbiBcbiBzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zeiA9IFNHX1NDQVRURVJfU1o7XG4tc3RhdGljIGludCBzY2F0dGVyX2VsZW1fc3pfcHJldiA9IFNHX1NDQVRURVJfU1o7XG4gXG4gI2RlZmluZSBTR19TRUNUT1JfU1ogNTEyXG4gXG5AQCAtMTYyMiw4ICsxNjIxLDM0IEBAIHNnX3JlbW92ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqY2xfZGV2KVxuIFx0a3JlZl9wdXQoXHUwMDI2c2RwLVx1MDAzZWRfcmVmLCBzZ19kZXZpY2VfZGVzdHJveSk7XG4gfVxuIFxuLW1vZHVsZV9wYXJhbV9uYW1lZChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zeiwgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7XG4tbW9kdWxlX3BhcmFtX25hbWVkKGFsbG93X2Rpbywgc2dfYWxsb3dfZGlvLCBpbnQsIFNfSVJVR08gfCBTX0lXVVNSKTtcbitzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zel9zZXQoY29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcClcbit7XG4rXHRpbnQgcmV0LCBuZXdfdmFsLCBvcmRlcjtcbitcbitcdHJldCA9IGtzdHJ0b2ludCh2YWwsIDAsIFx1MDAyNm5ld192YWwpO1xuK1x0aWYgKHJldClcbitcdFx0cmV0dXJuIHJldDtcbitcbitcdGlmIChuZXdfdmFsIFx1MDAzYz0gMCkge1xuK1x0XHRwcl9lcnIoXCJzZzogc2NhdHRlcl9lbGVtX3N6IG11c3QgYmUgcG9zaXRpdmUsIGdvdCAlZFxcblwiLCBuZXdfdmFsKTtcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXHR9XG4rXG4rXHRvcmRlciA9IGdldF9vcmRlcihuZXdfdmFsKTtcbitcdGlmIChvcmRlciBcdTAwM2UgTUFYX1BBR0VfT1JERVIpIHtcbitcdFx0cHJfZXJyKFwic2c6IHNjYXR0ZXJfZWxlbV9zeiB0b28gbGFyZ2UgKG9yZGVyICVkIFx1MDAzZSBNQVhfUEFHRV9PUkRFUiAlZClcXG5cIixcbitcdFx0XHRvcmRlciwgTUFYX1BBR0VfT1JERVIpO1xuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbitcdH1cbitcbitcdHNjYXR0ZXJfZWxlbV9zeiA9IDEgXHUwMDNjXHUwMDNjIChQQUdFX1NISUZUICsgb3JkZXIpO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuK21vZHVsZV9wYXJhbV9jYWxsKHNjYXR0ZXJfZWxlbV9zeiwgc2NhdHRlcl9lbGVtX3N6X3NldCwgcGFyYW1fZ2V0X2ludCxcbitcdFx0ICBcdTAwMjZzY2F0dGVyX2VsZW1fc3osIDA2NDQpO1xuK1xuK21vZHVsZV9wYXJhbV9uYW1lZChhbGxvd19kaW8sIHNnX2FsbG93X2RpbywgaW50LCAwNjQ0KTtcbiBcbiBzdGF0aWMgaW50IGRlZl9yZXNlcnZlZF9zaXplX3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxuIHtcbkBAIC0xNjQ5LDggKzE2NzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbV9vcHMgZGVmX3Jlc2VydmVkX3NpemVfb3BzID0ge1xuIFx0LmdldFx0PSBwYXJhbV9nZXRfaW50LFxuIH07XG4gXG4tbW9kdWxlX3BhcmFtX2NiKGRlZl9yZXNlcnZlZF9zaXplLCBcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsIFx1MDAyNmRlZl9yZXNlcnZlZF9zaXplLFxuLVx0XHQgICBTX0lSVUdPIHwgU19JV1VTUik7XG4rbW9kdWxlX3BhcmFtX2NiKGRlZl9yZXNlcnZlZF9zaXplLCBcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsIFx1MDAyNmRlZl9yZXNlcnZlZF9zaXplLCAwNjQ0KTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwiRG91Z2xhcyBHaWxiZXJ0XCIpO1xuIE1PRFVMRV9ERVNDUklQVElPTihcIlNDU0kgZ2VuZXJpYyAoc2cpIGRyaXZlclwiKTtcbkBAIC0xNjY4LDExICsxNjkyLDYgQEAgaW5pdF9zZyh2b2lkKVxuIHtcbiBcdGludCByYztcbiBcbi1cdGlmIChzY2F0dGVyX2VsZW1fc3ogXHUwMDNjIFBBR0VfU0laRSkge1xuLVx0XHRzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7XG4tXHRcdHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gc2NhdHRlcl9lbGVtX3N6O1xuLVx0fVxuLVxuIFx0cmMgPSByZWdpc3Rlcl9jaHJkZXZfcmVnaW9uKE1LREVWKFNDU0lfR0VORVJJQ19NQUpPUiwgMCksIFxuIFx0XHRcdFx0ICAgIFNHX01BWF9ERVZTLCBcInNnXCIpO1xuIFx0aWYgKHJjKVxuQEAgLTE4NTQsOSArMTg3MywxMCBAQCBzZ19idWlsZF9zZ2F0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIGNvbnN0IFNnX2ZkICogc2ZwLCBpbnQgdGFibGVzaXplKVxuIHN0YXRpYyBpbnRcbiBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlcbiB7XG4tXHRpbnQgcmV0X3N6ID0gMCwgaSwgaywgcmVtX3N6LCBudW0sIG14X3NjX2VsZW1zO1xuK1x0aW50IHJldF9zeiA9IDAsIGksIGssIHJlbV9zeiwgbXhfc2NfZWxlbXM7XG4gXHRpbnQgc2dfdGFibGVzaXplID0gc2ZwLVx1MDAzZXBhcmVudGRwLVx1MDAzZXNnX3RhYmxlc2l6ZTtcbiBcdGludCBibGtfc2l6ZSA9IGJ1ZmZfc2l6ZSwgb3JkZXI7XG4rXHRpbnQgZWxlbV9zeiA9IHNjYXR0ZXJfZWxlbV9zejtcbiBcdGdmcF90IGdmcF9tYXNrID0gR0ZQX0FUT01JQyB8IF9fR0ZQX0NPTVAgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9aRVJPO1xuIFxuIFx0aWYgKGJsa19zaXplIFx1MDAzYyAwKVxuQEAgLTE4NzQsMzkgKzE4OTQsMTkgQEAgc2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpXG4gXHRpZiAobXhfc2NfZWxlbXMgXHUwMDNjIDApXG4gXHRcdHJldHVybiBteF9zY19lbGVtcztcdC8qIG1vc3QgbGlrZWx5IC1FTk9NRU0gKi9cbiBcbi1cdG51bSA9IHNjYXR0ZXJfZWxlbV9zejtcbi1cdGlmICh1bmxpa2VseShudW0gIT0gc2NhdHRlcl9lbGVtX3N6X3ByZXYpKSB7XG4tXHRcdGlmIChudW0gXHUwMDNjIFBBR0VfU0laRSkge1xuLVx0XHRcdHNjYXR0ZXJfZWxlbV9zeiA9IFBBR0VfU0laRTtcbi1cdFx0XHRzY2F0dGVyX2VsZW1fc3pfcHJldiA9IFBBR0VfU0laRTtcbi1cdFx0fSBlbHNlXG4tXHRcdFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBudW07XG4tXHR9XG4tXG4tXHRvcmRlciA9IGdldF9vcmRlcihudW0pO1xuK1x0b3JkZXIgPSBnZXRfb3JkZXIoZWxlbV9zeik7XG4gcmV0cnk6XG4gXHRyZXRfc3ogPSAxIFx1MDAzY1x1MDAzYyAoUEFHRV9TSElGVCArIG9yZGVyKTtcbiBcbiBcdGZvciAoayA9IDAsIHJlbV9zeiA9IGJsa19zaXplOyByZW1fc3ogXHUwMDNlIDAgXHUwMDI2XHUwMDI2IGsgXHUwMDNjIG14X3NjX2VsZW1zO1xuIFx0ICAgICBrKyssIHJlbV9zeiAtPSByZXRfc3opIHtcbi1cbi1cdFx0bnVtID0gKHJlbV9zeiBcdTAwM2Ugc2NhdHRlcl9lbGVtX3N6X3ByZXYpID9cbi1cdFx0XHRzY2F0dGVyX2VsZW1fc3pfcHJldiA6IHJlbV9zejtcbi1cbiBcdFx0c2NocC1cdTAwM2VwYWdlc1trXSA9IGFsbG9jX3BhZ2VzKGdmcF9tYXNrLCBvcmRlcik7XG4gXHRcdGlmICghc2NocC1cdTAwM2VwYWdlc1trXSlcbiBcdFx0XHRnb3RvIG91dDtcbiBcbi1cdFx0aWYgKG51bSA9PSBzY2F0dGVyX2VsZW1fc3pfcHJldikge1xuLVx0XHRcdGlmICh1bmxpa2VseShyZXRfc3ogXHUwMDNlIHNjYXR0ZXJfZWxlbV9zel9wcmV2KSkge1xuLVx0XHRcdFx0c2NhdHRlcl9lbGVtX3N6ID0gcmV0X3N6O1xuLVx0XHRcdFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSByZXRfc3o7XG4tXHRcdFx0fVxuLVx0XHR9XG4tXG4gXHRcdFNDU0lfTE9HX1RJTUVPVVQoNSwgc2dfcHJpbnRrKEtFUk5fSU5GTywgc2ZwLVx1MDAzZXBhcmVudGRwLFxuLVx0XHRcdFx0IFwic2dfYnVpbGRfaW5kaXJlY3Q6IGs9JWQsIG51bT0lZCwgcmV0X3N6PSVkXFxuXCIsXG4tXHRcdFx0XHQgaywgbnVtLCByZXRfc3opKTtcbitcdFx0XHRcdCBcIiVzOiBrPSVkLCByZXRfc3o9JWRcXG5cIixcbitcdFx0XHRcdCBfX2Z1bmNfXywgaywgcmV0X3N6KSk7XG4gXHR9XHRcdC8qIGVuZCBvZiBmb3IgbG9vcCAqL1xuIFxuIFx0c2NocC1cdTAwM2VwYWdlX29yZGVyID0gb3JkZXI7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxOToyMjoxMy4xMDM5Mzk3MDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5ODI4OTI3MjM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU0NTSSBHZW5lcmljIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBkcml2ZXJzL3Njc2kvc2cuY2AsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBob3cgdGhlIHNjYXR0ZXItZ2F0aGVyIGVsZW1lbnQgc2l6ZSAoYHNjYXR0ZXJfZWxlbV9zemApIGlzIGhhbmRsZWQuIEl0IGxvb2tzIGxpa2UgdGhleSdyZSBzaW1wbGlmeWluZyB0aGluZ3MgYSBiaXQuICBUaGV5J3ZlIGludHJvZHVjZWQgYSBgc2NhdHRlcl9lbGVtX3N6X3NldGAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLCBwcm9iYWJseSB0byBhbGxvdyBmb3IgZHluYW1pYyBhZGp1c3RtZW50IHZpYSBhIG1vZHVsZSBwYXJhbWV0ZXIsIHNvIHdlIG1pZ2h0IHdhbnQgdG8gc2VlIGhvdyB0aGF0J3MgdXNlZC4gIEdvb2QgcmlkZGFuY2UgdG8gdGhlIGBzY2F0dGVyX2VsZW1fc3pfcHJldmAsIHRoYXQgc2VlbXMgdW5uZWNlc3Nhcnkgbm93LlxuXG5UaGUgY29yZSBjaGFuZ2UgYXBwZWFycyB0byBiZSB3aXRoaW4gYHNnX2J1aWxkX2luZGlyZWN0YC4gIEl0IGxvb2tzIGxpa2UgdGhleSdyZSBub3cgdXNpbmcgdGhlIGRpcmVjdGx5IGNvbmZpZ3VyZWQgYHNjYXR0ZXJfZWxlbV9zemAgaW4gdGhhdCBmdW5jdGlvbiwgcmF0aGVyIHRoYW4gdGhlIHByZXZpb3VzIG1ldGhvZCB0aGF0IGludm9sdmVkIHRyYWNraW5nIGEgYHNjYXR0ZXJfZWxlbV9zel9wcmV2YC4gVGhhdCBtYWtlcyBzZW5zZTsgaXQgc2ltcGxpZmllcyB0aGUgbG9naWMuICBJJ2xsIHdhbnQgdG8gcmV2aWV3IGhvdyBgc2dfYnVpbGRfaW5kaXJlY3RgIGlzICphY3R1YWxseSogdXNpbmcgdGhpcyBzaXplLCB0aG91Z2guICBBbHNvLCBpdCBsb29rcyBsaWtlIHRoZXkndmUgZG9uZSBhIHBlcm1pc3Npb25zIGNoYW5nZSBmcm9tIGBTX0lSVUdPIHwgU19JV1VTUmAgdG8gYDA2NDRgLiAgU3RhbmRhcmQgcGVybWlzc2lvbnMgY2hhbmdlLCBub3RoaW5nIHRvIGJlIHRvbyBjb25jZXJuZWQgYWJvdXQsIGJ1dCBJIHNob3VsZCB2ZXJpZnkgdGhhdCBpdCB3b24ndCBpbXBhY3QgYW55IGRvd25zdHJlYW0gYXBwbGljYXRpb25zLlxuXG5MZXQncyBtYWtlIHN1cmUgdGhpcyBjb2RlIGlzIGV2ZW4gKnVzZWQqLiBgc2dfYnVpbGRfaW5kaXJlY3RgIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlOyB0aGF0J3MgdGhlIGNvcmUgb2YgdGhlIGAvZGV2L3NnKmAgZGV2aWNlIGZ1bmN0aW9uYWxpdHksIHNvIGl0J3MgcmVzcG9uc2libGUgZm9yIGNvbnN0cnVjdGluZyB0aGUgc2NhdHRlci1nYXRoZXIgbGlzdHMgZm9yIFNDU0kgY29tbWFuZHMuIFNvLCB0aGF0J3Mgbm90IGEgY29uY2Vybi4gVGhlIG1haW4gY29uZmlnIGlzIHVuZGVyIGBDT05GSUdfQ0hSX0RFVl9TR2AuIEknbGwgd2FudCB0byBjaGVjayBob3cgdGhlIHBhcmFtZXRlciBpcyBzZXQgYW5kIGhvdyB0aGUgbmV3IGZ1bmN0aW9uYWxpdHkgaW50ZXJhY3RzIHdpdGggYWxsIG9mIHRoZSBvdGhlciBwYXJ0cyBvZiB0aGUgZHJpdmVyLiBPdmVyYWxsLCB0aGlzIHNlZW1zIGxpa2UgYSBzb2xpZCBjbGVhbnVwIGFuZCBzaW1wbGlmaWNhdGlvbiwgbGV0J3Mgc2VlIGhvdyB3ZWxsIGl0IHdvcmtzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzM3LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTk6MjI6MjIuOTMyODcwODg1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxMjQ5MzE2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfQ0hSX0RFVl9TR1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3Njc2kvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9zY3NpL01ha2VmaWxlPTE0OT1vYmotJChDT05GSUdfQkxLX0RFVl9TUilcXHQrPSBzcl9tb2Qub1xcbmRyaXZlcnMvc2NzaS9NYWtlZmlsZToxNTA6b2JqLSQoQ09ORklHX0NIUl9ERVZfU0cpXFx0Kz0gc2cub1xcbmRyaXZlcnMvc2NzaS9NYWtlZmlsZS0xNTEtb2JqLSQoQ09ORklHX0NIUl9ERVZfU0NIKVxcdCs9IGNoLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTk6MjI6MjMuNjQ1MzY5NzM1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzE3NDU5NTAzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlLCB0aGUgc3lzdGVtJ3MgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBpcyBgQ0hSX0RFVl9TR2AuIFJpZ2h0LCB0aGF0J3MgdGhlIG9uZS4gTm93LCBteSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGV0aGVyIGBzZ19idWlsZF9pbmRpcmVjdGAgaXMgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrLiBUaGF0IGZ1bmN0aW9uIGlzIGNydWNpYWwgYmVjYXVzZSBpdCdzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW5nIGJ1ZmZlcnMgd2hlbiBTQ1NJIGNvbW1hbmRzIGFyZSBiZWluZyBpc3N1ZWQsIGFuZCBhbnkgc2xvd2Rvd24gdGhlcmUgaXMgZ29pbmcgdG8gcmlwcGxlIG91dHdhcmRzLlxuXG5NeSBtZW50YWwgbW9kZWwgaXMgdGFraW5nIG1lIHRocm91Z2ggdGhlIGNhbGwgc3RhY2suLi4gSSBrbm93IGl0J3MgKnJlbGF0ZWQqIHRvIGBzZ19idWlsZF9zZ2F0YCwgYnV0IEkgZG9uJ3QgdGhpbmsgdGhhdCdzIHRoZSBkaXJlY3QgY2FsbGVyLiBObywgaGFuZyBvbiwgaXQncyBjYWxsZWQgZnJvbSBgc2dfYWRkX3NmcGAsIGBzZ193cml0ZWAsIG9yIGBzZ19pb2N0bGAuIFRob3NlIGFyZSBhbGwgZGlmZmVyZW50IHdheXMgdXNlcnMgaW50ZXJhY3Qgd2l0aCB0aGUgU0NTSSBzdWJzeXN0ZW0sIHNvIHRoYXQgY29uZmlybXMgdGhpcyAqaXMqIGEga2V5IGFyZWEgZm9yIHBlcmZvcm1hbmNlLiBUaW1lIHRvIGRpZyBkZWVwZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxMjYsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxOToyMjozMC44MTk5Njc0NzZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQzNTczMjg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNnX2J1aWxkX2luZGlyZWN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvc2NzaS9zZy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvc2NzaS9zZy5jPTE4Mj1zdGF0aWMgaW50IHNnX2ZpbmlzaF9yZW1fcmVxKFNnX3JlcXVlc3QgKiBzcnApO1xcbmRyaXZlcnMvc2NzaS9zZy5jOjE4MzpzdGF0aWMgaW50IHNnX2J1aWxkX2luZGlyZWN0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIFNnX2ZkICogc2ZwLCBpbnQgYnVmZl9zaXplKTtcXG5kcml2ZXJzL3Njc2kvc2cuYy0xODQtc3RhdGljIHNzaXplX3Qgc2dfbmV3X3JlYWQoU2dfZmQgKiBzZnAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvc2NzaS9zZy5jPTE3MzE9c2dfc3RhcnRfcmVxKFNnX3JlcXVlc3QgKnNycCwgdW5zaWduZWQgY2hhciAqY21kKVxcbi0tXFxuZHJpdmVycy9zY3NpL3NnLmMtMTgwMi1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvc2NzaS9zZy5jOjE4MDM6XFx0XFx0XFx0cmVzID0gc2dfYnVpbGRfaW5kaXJlY3QocmVxX3NjaHAsIHNmcCwgZHhmZXJfbGVuKTtcXG5kcml2ZXJzL3Njc2kvc2cuYy0xODA0LVxcdFxcdFxcdGlmIChyZXMpIHtcXG4tLVxcbmRyaXZlcnMvc2NzaS9zZy5jPTE4NzM9c3RhdGljIGludFxcbmRyaXZlcnMvc2NzaS9zZy5jOjE4NzQ6c2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpXFxuZHJpdmVycy9zY3NpL3NnLmMtMTg3NS17XFxuLS1cXG5kcml2ZXJzL3Njc2kvc2cuYy0xODg4LVxcdFNDU0lfTE9HX1RJTUVPVVQoNCwgc2dfcHJpbnRrKEtFUk5fSU5GTywgc2ZwLVxcdTAwM2VwYXJlbnRkcCxcXG5kcml2ZXJzL3Njc2kvc2cuYzoxODg5OlxcdFxcdFxcXCJzZ19idWlsZF9pbmRpcmVjdDogYnVmZl9zaXplPSVkLCBibGtfc2l6ZT0lZFxcXFxuXFxcIixcXG5kcml2ZXJzL3Njc2kvc2cuYy0xODkwLVxcdFxcdGJ1ZmZfc2l6ZSwgYmxrX3NpemUpKTtcXG4tLVxcbmRyaXZlcnMvc2NzaS9zZy5jLTE5MTQtXFx0U0NTSV9MT0dfVElNRU9VVCg1LCBzZ19wcmludGsoS0VSTl9JTkZPLCBzZnAtXFx1MDAzZXBhcmVudGRwLFxcbmRyaXZlcnMvc2NzaS9zZy5jOjE5MTU6XFx0XFx0XFx0IFxcXCJzZ19idWlsZF9pbmRpcmVjdDoga191c2Vfc2c9JWQsIHJlbV9zej0lZFxcXFxuXFxcIixcXG5kcml2ZXJzL3Njc2kvc2cuYy0xOTE2LVxcdFxcdFxcdCBrLCByZW1fc3opKTtcXG4tLVxcbmRyaXZlcnMvc2NzaS9zZy5jPTE5ODk9c2dfYnVpbGRfcmVzZXJ2ZShTZ19mZCAqIHNmcCwgaW50IHJlcV9zaXplKVxcbi0tXFxuZHJpdmVycy9zY3NpL3NnLmMtMTk5Ny1cXHRcXHRcXHRyZXFfc2l6ZSA9IFBBR0VfU0laRTtcXG5kcml2ZXJzL3Njc2kvc2cuYzoxOTk4OlxcdFxcdGlmICgwID09IHNnX2J1aWxkX2luZGlyZWN0KHNjaHAsIHNmcCwgcmVxX3NpemUpKVxcbmRyaXZlcnMvc2NzaS9zZy5jLTE5OTktXFx0XFx0XFx0cmV0dXJuO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxOToyMjozMS4wNjM1NTA1NDJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjQzODIzNDAyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogU0NTSSBHZW5lcmljIERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgYHNnX2J1aWxkX2luZGlyZWN0YCBsb29rcyBwcm9taXNpbmcgZm9yIGZ1enppbmcuIEl0J3MgY2FsbGVkIGZyb20gYHNnX3N0YXJ0X3JlcWAgYW5kIGBzZ19idWlsZF9yZXNlcnZlYCwgd2hpY2gsIGluIHR1cm4sIGFyZSBhc3NvY2lhdGVkIHdpdGggU0NTSSBjb21tYW5kcy4gVGhhdCBtYWtlcyBpdCBhIHNvbGlkIHRhcmdldCwgZXNwZWNpYWxseSBzaW5jZSBgc2dfc3RhcnRfcmVxYCBpcyBhIGNvbW1vbiBlbnRyeSBwb2ludC4gVGhlIGZhY3QgdGhhdCBgc2NhdHRlcl9lbGVtX3N6X3NldGAgaXMgYWxzbyBpbiB0aGUgbWl4IGFuZCBjYW4gYmUgbWFuaXB1bGF0ZWQgdGhyb3VnaCBzeXNmcyBpcyBhbm90aGVyIGFuZ2xlIEkgbmVlZCB0byBleHBsb3JlLlxuXG5JIGNvbmZpcm1lZCB0aGF0IGBDSFJfREVWX1NHYCBpcyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIHRoZSBgc2cuY2AgZHJpdmVyLCB3aGljaCBpcyBjcnVjaWFsLiBTbywgdGhhdCdzIHRoZSBzdGFydGluZyBwb2ludC5cblxuSSBuZWVkIHRvIGZvY3VzIG9uIHRoZXNlIHNwZWNpZmljIGZ1bmN0aW9uczogYHNnX2J1aWxkX2luZGlyZWN0YCBhbmQgYHNjYXR0ZXJfZWxlbV9zel9zZXRgLiBJIGNvbmZpcm1lZCBib3RoIG9mIHRoZXNlIGFyZSwgaW4gZmFjdCwgYHN0YXRpY2AsIHdoaWNoIGlzIHR5cGljYWwgZm9yIGludGVybmFsIGZ1bmN0aW9ucywgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgbWVhbiB1bnJlYWNoYWJsZS4gTGV0J3Mgc2VlLi4uXG5cbk5vdywgbGV0J3MgdmVyaWZ5IHJlYWNoYWJpbGl0eS4gR29vZCBuZXdzOiBgc2dfYnVpbGRfaW5kaXJlY3RgIGlzIHJlYWNoYWJsZSB2aWEgYHNnX3N0YXJ0X3JlcWAuICBBbmQgdGhhdCdzIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgYHNnX3dyaXRlYCwgYHNnX25ld193cml0ZWAsIG9yIGBzZ19pb2N0bGAgaW50ZXJmYWNlcywgbWFraW5nIGl0IHVzZXItc3BhY2UgY29udHJvbGxlZC4gYHNjYXR0ZXJfZWxlbV9zel9zZXRgIGlzIHJlYWNoYWJsZSB2aWEgc3lzZnMsIGEgd3JpdGUgb3BlcmF0aW9uIHRvIGAvc3lzL21vZHVsZS9zZy9wYXJhbWV0ZXJzL3NjYXR0ZXJfZWxlbV9zemAuIFRoYXQncyBlYXN5IHRvIHRlc3QuXG5cbkkndmUgYWxzbyBkb3VibGUtY2hlY2tlZCB0aGUgZXhhY3QgZnVuY3Rpb24gbmFtZXMgYW5kIHBhcmFtZXRlcnMgdG8gbWFrZSBzdXJlIEknbSB0YXJnZXRpbmcgdGhlIGNvcnJlY3QgZnVuY3Rpb25zIGZvciB0aGUgdGVzdGluZyBhbmQgdGhhdCdzOiBgc3RhdGljIGludCBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlgIGFuZCBgc3RhdGljIGludCBzY2F0dGVyX2VsZW1fc3pfc2V0KGNvbnN0IGNoYXIgKnZhbCwgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSAqa3ApYC5cblxuVGhlIGZpbmFsIHRoaW5nIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgaXMgZGVwZW5kZW5jaWVzLCBidXQgaXQgbG9va3MgbGlrZSBgQ09ORklHX1NDU0lgIGlzIHJlcXVpcmVkIGZvciBgQ0hSX0RFVl9TR2AsIGJ1dCBgQ0hSX0RFVl9TR2AgaXMgdGhlIG1haW4gdGhpbmcgaGVyZS5cblxuU28sIGhlcmUncyBteSBzdW1tYXJpemVkIHZpZXc6XG5cbioqV29ydGhGdXp6aW5nOiBUcnVlKipcblxuKipGb2N1c1N5bWJvbHM6KiogYHNnX2J1aWxkX2luZGlyZWN0YCwgYHNjYXR0ZXJfZWxlbV9zel9zZXRgXG5cbioqRW5hYmxlQ29uZmlnczoqKiBgQ0hSX0RFVl9TR2BcblxuKipSZWFzb25pbmc6KiogVGhpcyBwYXRjaCBtb2RpZmllcyBjcml0aWNhbCBsb2dpYyByZWxhdGVkIHRvIHNjYXR0ZXItZ2F0aGVyIGxpc3QgYWxsb2NhdGlvbiB3aXRoaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBpbnRyb2R1Y2VzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbi4gIFRoZXNlIGFyZSBjaGFuZ2VzIHdpdGggZGlyZWN0IHVzZXItc3BhY2UgaW50ZXJmYWNlcyAoU0NTSSBpb2N0bHMvd3JpdGVzIGFuZCBzeXNmcywgcmVzcGVjdGl2ZWx5KSBtYWtpbmcgdGhlbSBpZGVhbCB0YXJnZXRzIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDc1LCJPdXRwdXRUb2tlbnMiOjEyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxOToyMjo0My41MDE3ODgzMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg5NjIwNzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDSFJfREVWX1NHXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2dfYnVpbGRfaW5kaXJlY3RcIixcbiAgICBcInNjYXR0ZXJfZWxlbV9zel9zZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGFsbG9jYXRpbmcgc2NhdHRlci1nYXRoZXIgbGlzdHMgaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBhZGRzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbiBsb2dpYy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSBTQ1NJIGlvY3Rscy93cml0ZXMgYW5kIHN5c2ZzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNIUl9ERVZfU0dcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzZ19idWlsZF9pbmRpcmVjdFwiLFxuICAgIFwic2NhdHRlcl9lbGVtX3N6X3NldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgYWxsb2NhdGluZyBzY2F0dGVyLWdhdGhlciBsaXN0cyBpbiB0aGUgU0NTSSBnZW5lcmljIGRyaXZlciAoYHNnX2J1aWxkX2luZGlyZWN0YCkgYW5kIGFkZHMgYSBuZXcgbW9kdWxlIHBhcmFtZXRlciBzZXR0ZXIgKGBzY2F0dGVyX2VsZW1fc3pfc2V0YCkgd2l0aCB2YWxpZGF0aW9uIGxvZ2ljLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCBmcm9tIHVzZXIgc3BhY2UgdmlhIFNDU0kgaW9jdGxzL3dyaXRlcyBhbmQgc3lzZnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfmxk[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-09 18:57:37 +0000 UTC FinishedAt: 2026-07-09 19:22:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "2c7c88a412aa6d09cd04b414211b4ef8553b5309", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CHR_DEV_SG" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "2c7c88a412aa6d09cd04b414211b4ef8553b5309", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CHR_DEV_SG" ], "series_id": "e98fb97a-392f-4194-bb5a-c74d37c3684b" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "sg_build_indirect", "scatter_elem_sz_set" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA5IDE5OjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0NIUl9ERVZfU0cmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzZ19idWlsZF9pbmRpcmVjdCYjMzQ7LAogICAgJiMzNDtzY2F0dGVyX2VsZW1fc3pfc2V0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgYWxsb2NhdGluZyBzY2F0dGVyLWdhdGhlciBsaXN0cyBpbiB0aGUgU0NTSSBnZW5lcmljIGRyaXZlciAoYHNnX2J1aWxkX2luZGlyZWN0YCkgYW5kIGFkZHMgYSBuZXcgbW9kdWxlIHBhcmFtZXRlciBzZXR0ZXIgKGBzY2F0dGVyX2VsZW1fc3pfc2V0YCkgd2l0aCB2YWxpZGF0aW9uIGxvZ2ljLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCBmcm9tIHVzZXIgc3BhY2UgdmlhIFNDU0kgaW9jdGxzL3dyaXRlcyBhbmQgc3lzZnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBjYTlkNzBiMmZhNTJiMDQ0Y2Y1MzVhMDZjODkwNjc4MWQxY2YwNzc2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgOSAxOToyMjoxMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvc2cuYyBiL2RyaXZlcnMvc2NzaS9zZy5jXG5pbmRleCA3NGNkNGU4YTYxYzJhMC4uMzc3YzNlMWRlZTdmZjkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL3Njc2kvc2cuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9zY3NpL3NnLmNcbkBAIC05Miw3ICYjNDM7OTIsNiBAQCBzdGF0aWMgaW50IGRlZl9yZXNlcnZlZF9zaXplID0gU0dfREVGX1JFU0VSVkVEX1NJWkU7XG4gc3RhdGljIGludCBzZ19hbGxvd19kaW8gPSBTR19BTExPV19ESU9fREVGO1xuIFxuIHN0YXRpYyBpbnQgc2NhdHRlcl9lbGVtX3N6ID0gU0dfU0NBVFRFUl9TWjtcbi1zdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gU0dfU0NBVFRFUl9TWjtcbiBcbiAjZGVmaW5lIFNHX1NFQ1RPUl9TWiA1MTJcbiBcbkBAIC0xNjIyLDggJiM0MzsxNjIxLDM0IEBAIHNnX3JlbW92ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqY2xfZGV2KVxuIFx0a3JlZl9wdXQoXHUwMDI2c2RwLVx1MDAzZWRfcmVmLCBzZ19kZXZpY2VfZGVzdHJveSk7XG4gfVxuIFxuLW1vZHVsZV9wYXJhbV9uYW1lZChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zeiwgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7XG4tbW9kdWxlX3BhcmFtX25hbWVkKGFsbG93X2Rpbywgc2dfYWxsb3dfZGlvLCBpbnQsIFNfSVJVR08gfCBTX0lXVVNSKTtcbiYjNDM7c3RhdGljIGludCBzY2F0dGVyX2VsZW1fc3pfc2V0KGNvbnN0IGNoYXIgKnZhbCwgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSAqa3ApXG4mIzQzO3tcbiYjNDM7XHRpbnQgcmV0LCBuZXdfdmFsLCBvcmRlcjtcbiYjNDM7XG4mIzQzO1x0cmV0ID0ga3N0cnRvaW50KHZhbCwgMCwgXHUwMDI2bmV3X3ZhbCk7XG4mIzQzO1x0aWYgKHJldClcbiYjNDM7XHRcdHJldHVybiByZXQ7XG4mIzQzO1xuJiM0MztcdGlmIChuZXdfdmFsIFx1MDAzYz0gMCkge1xuJiM0MztcdFx0cHJfZXJyKFwmIzM0O3NnOiBzY2F0dGVyX2VsZW1fc3ogbXVzdCBiZSBwb3NpdGl2ZSwgZ290ICVkXFxuXCYjMzQ7LCBuZXdfdmFsKTtcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcdH1cbiYjNDM7XG4mIzQzO1x0b3JkZXIgPSBnZXRfb3JkZXIobmV3X3ZhbCk7XG4mIzQzO1x0aWYgKG9yZGVyIFx1MDAzZSBNQVhfUEFHRV9PUkRFUikge1xuJiM0MztcdFx0cHJfZXJyKFwmIzM0O3NnOiBzY2F0dGVyX2VsZW1fc3ogdG9vIGxhcmdlIChvcmRlciAlZCBcdTAwM2UgTUFYX1BBR0VfT1JERVIgJWQpXFxuXCYjMzQ7LFxuJiM0MztcdFx0XHRvcmRlciwgTUFYX1BBR0VfT1JERVIpO1xuJiM0MztcdFx0cmV0dXJuIC1FSU5WQUw7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRzY2F0dGVyX2VsZW1fc3ogPSAxIFx1MDAzY1x1MDAzYyAoUEFHRV9TSElGVCAmIzQzOyBvcmRlcik7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO21vZHVsZV9wYXJhbV9jYWxsKHNjYXR0ZXJfZWxlbV9zeiwgc2NhdHRlcl9lbGVtX3N6X3NldCwgcGFyYW1fZ2V0X2ludCxcbiYjNDM7XHRcdCAgXHUwMDI2c2NhdHRlcl9lbGVtX3N6LCAwNjQ0KTtcbiYjNDM7XG4mIzQzO21vZHVsZV9wYXJhbV9uYW1lZChhbGxvd19kaW8sIHNnX2FsbG93X2RpbywgaW50LCAwNjQ0KTtcbiBcbiBzdGF0aWMgaW50IGRlZl9yZXNlcnZlZF9zaXplX3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxuIHtcbkBAIC0xNjQ5LDggJiM0MzsxNjc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW1fb3BzIGRlZl9yZXNlcnZlZF9zaXplX29wcyA9IHtcbiBcdC5nZXRcdD0gcGFyYW1fZ2V0X2ludCxcbiB9O1xuIFxuLW1vZHVsZV9wYXJhbV9jYihkZWZfcmVzZXJ2ZWRfc2l6ZSwgXHUwMDI2ZGVmX3Jlc2VydmVkX3NpemVfb3BzLCBcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZSxcbi1cdFx0ICAgU19JUlVHTyB8IFNfSVdVU1IpO1xuJiM0Mzttb2R1bGVfcGFyYW1fY2IoZGVmX3Jlc2VydmVkX3NpemUsIFx1MDAyNmRlZl9yZXNlcnZlZF9zaXplX29wcywgXHUwMDI2ZGVmX3Jlc2VydmVkX3NpemUsIDA2NDQpO1xuIFxuIE1PRFVMRV9BVVRIT1IoXCYjMzQ7RG91Z2xhcyBHaWxiZXJ0XCYjMzQ7KTtcbiBNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7U0NTSSBnZW5lcmljIChzZykgZHJpdmVyXCYjMzQ7KTtcbkBAIC0xNjY4LDExICYjNDM7MTY5Miw2IEBAIGluaXRfc2codm9pZClcbiB7XG4gXHRpbnQgcmM7XG4gXG4tXHRpZiAoc2NhdHRlcl9lbGVtX3N6IFx1MDAzYyBQQUdFX1NJWkUpIHtcbi1cdFx0c2NhdHRlcl9lbGVtX3N6ID0gUEFHRV9TSVpFO1xuLVx0XHRzY2F0dGVyX2VsZW1fc3pfcHJldiA9IHNjYXR0ZXJfZWxlbV9zejtcbi1cdH1cbi1cbiBcdHJjID0gcmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbihNS0RFVihTQ1NJX0dFTkVSSUNfTUFKT1IsIDApLCBcbiBcdFx0XHRcdCAgICBTR19NQVhfREVWUywgXCYjMzQ7c2dcJiMzNDspO1xuIFx0aWYgKHJjKVxuQEAgLTE4NTQsOSAmIzQzOzE4NzMsMTAgQEAgc2dfYnVpbGRfc2dhdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBjb25zdCBTZ19mZCAqIHNmcCwgaW50IHRhYmxlc2l6ZSlcbiBzdGF0aWMgaW50XG4gc2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpXG4ge1xuLVx0aW50IHJldF9zeiA9IDAsIGksIGssIHJlbV9zeiwgbnVtLCBteF9zY19lbGVtcztcbiYjNDM7XHRpbnQgcmV0X3N6ID0gMCwgaSwgaywgcmVtX3N6LCBteF9zY19lbGVtcztcbiBcdGludCBzZ190YWJsZXNpemUgPSBzZnAtXHUwMDNlcGFyZW50ZHAtXHUwMDNlc2dfdGFibGVzaXplO1xuIFx0aW50IGJsa19zaXplID0gYnVmZl9zaXplLCBvcmRlcjtcbiYjNDM7XHRpbnQgZWxlbV9zeiA9IHNjYXR0ZXJfZWxlbV9zejtcbiBcdGdmcF90IGdmcF9tYXNrID0gR0ZQX0FUT01JQyB8IF9fR0ZQX0NPTVAgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9aRVJPO1xuIFxuIFx0aWYgKGJsa19zaXplIFx1MDAzYyAwKVxuQEAgLTE4NzQsMzkgJiM0MzsxODk0LDE5IEBAIHNnX2J1aWxkX2luZGlyZWN0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIFNnX2ZkICogc2ZwLCBpbnQgYnVmZl9zaXplKVxuIFx0aWYgKG14X3NjX2VsZW1zIFx1MDAzYyAwKVxuIFx0XHRyZXR1cm4gbXhfc2NfZWxlbXM7XHQvKiBtb3N0IGxpa2VseSAtRU5PTUVNICovXG4gXG4tXHRudW0gPSBzY2F0dGVyX2VsZW1fc3o7XG4tXHRpZiAodW5saWtlbHkobnVtICE9IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSkge1xuLVx0XHRpZiAobnVtIFx1MDAzYyBQQUdFX1NJWkUpIHtcbi1cdFx0XHRzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7XG4tXHRcdFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBQQUdFX1NJWkU7XG4tXHRcdH0gZWxzZVxuLVx0XHRcdHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gbnVtO1xuLVx0fVxuLVxuLVx0b3JkZXIgPSBnZXRfb3JkZXIobnVtKTtcbiYjNDM7XHRvcmRlciA9IGdldF9vcmRlcihlbGVtX3N6KTtcbiByZXRyeTpcbiBcdHJldF9zeiA9IDEgXHUwMDNjXHUwMDNjIChQQUdFX1NISUZUICYjNDM7IG9yZGVyKTtcbiBcbiBcdGZvciAoayA9IDAsIHJlbV9zeiA9IGJsa19zaXplOyByZW1fc3ogXHUwMDNlIDAgXHUwMDI2XHUwMDI2IGsgXHUwMDNjIG14X3NjX2VsZW1zO1xuIFx0ICAgICBrJiM0MzsmIzQzOywgcmVtX3N6IC09IHJldF9zeikge1xuLVxuLVx0XHRudW0gPSAocmVtX3N6IFx1MDAzZSBzY2F0dGVyX2VsZW1fc3pfcHJldikgP1xuLVx0XHRcdHNjYXR0ZXJfZWxlbV9zel9wcmV2IDogcmVtX3N6O1xuLVxuIFx0XHRzY2hwLVx1MDAzZXBhZ2VzW2tdID0gYWxsb2NfcGFnZXMoZ2ZwX21hc2ssIG9yZGVyKTtcbiBcdFx0aWYgKCFzY2hwLVx1MDAzZXBhZ2VzW2tdKVxuIFx0XHRcdGdvdG8gb3V0O1xuIFxuLVx0XHRpZiAobnVtID09IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSB7XG4tXHRcdFx0aWYgKHVubGlrZWx5KHJldF9zeiBcdTAwM2Ugc2NhdHRlcl9lbGVtX3N6X3ByZXYpKSB7XG4tXHRcdFx0XHRzY2F0dGVyX2VsZW1fc3ogPSByZXRfc3o7XG4tXHRcdFx0XHRzY2F0dGVyX2VsZW1fc3pfcHJldiA9IHJldF9zejtcbi1cdFx0XHR9XG4tXHRcdH1cbi1cbiBcdFx0U0NTSV9MT0dfVElNRU9VVCg1LCBzZ19wcmludGsoS0VSTl9JTkZPLCBzZnAtXHUwMDNlcGFyZW50ZHAsXG4tXHRcdFx0XHQgXCYjMzQ7c2dfYnVpbGRfaW5kaXJlY3Q6IGs9JWQsIG51bT0lZCwgcmV0X3N6PSVkXFxuXCYjMzQ7LFxuLVx0XHRcdFx0IGssIG51bSwgcmV0X3N6KSk7XG4mIzQzO1x0XHRcdFx0IFwmIzM0OyVzOiBrPSVkLCByZXRfc3o9JWRcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0IF9fZnVuY19fLCBrLCByZXRfc3opKTtcbiBcdH1cdFx0LyogZW5kIG9mIGZvciBsb29wICovXG4gXG4gXHRzY2hwLVx1MDAzZXBhZ2Vfb3JkZXIgPSBvcmRlcjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxOToyMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDSFJfREVWX1NHJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2dfYnVpbGRfaW5kaXJlY3QmIzM0OywKICAgICYjMzQ7c2NhdHRlcl9lbGVtX3N6X3NldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGFsbG9jYXRpbmcgc2NhdHRlci1nYXRoZXIgbGlzdHMgaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBhZGRzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbiBsb2dpYy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSBTQ1NJIGlvY3Rscy93cml0ZXMgYW5kIHN5c2ZzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjYTlkNzBiMmZhNTJiMDQ0Y2Y1MzVhMDZjODkwNjc4MWQxY2YwNzc2CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBKdWwgOSAxOToyMjoxMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZy5jIGIvZHJpdmVycy9zY3NpL3NnLmMKaW5kZXggNzRjZDRlOGE2MWMyYTAuLjM3N2MzZTFkZWU3ZmY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3Njc2kvc2cuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL3Njc2kvc2cuYwpAQCAtOTIsNyAmIzQzOzkyLDYgQEAgc3RhdGljIGludCBkZWZfcmVzZXJ2ZWRfc2l6ZSA9IFNHX0RFRl9SRVNFUlZFRF9TSVpFOwogc3RhdGljIGludCBzZ19hbGxvd19kaW8gPSBTR19BTExPV19ESU9fREVGOwogCiBzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zeiA9IFNHX1NDQVRURVJfU1o7Ci1zdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gU0dfU0NBVFRFUl9TWjsKIAogI2RlZmluZSBTR19TRUNUT1JfU1ogNTEyCiAKQEAgLTE2MjIsOCAmIzQzOzE2MjEsMzQgQEAgc2dfcmVtb3ZlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpjbF9kZXYpCiAJa3JlZl9wdXQoJmFtcDtzZHAtJmd0O2RfcmVmLCBzZ19kZXZpY2VfZGVzdHJveSk7CiB9CiAKLW1vZHVsZV9wYXJhbV9uYW1lZChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zeiwgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7Ci1tb2R1bGVfcGFyYW1fbmFtZWQoYWxsb3dfZGlvLCBzZ19hbGxvd19kaW8sIGludCwgU19JUlVHTyB8IFNfSVdVU1IpOwomIzQzO3N0YXRpYyBpbnQgc2NhdHRlcl9lbGVtX3N6X3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKQomIzQzO3sKJiM0MzsJaW50IHJldCwgbmV3X3ZhbCwgb3JkZXI7CiYjNDM7CiYjNDM7CXJldCA9IGtzdHJ0b2ludCh2YWwsIDAsICZhbXA7bmV3X3ZhbCk7CiYjNDM7CWlmIChyZXQpCiYjNDM7CQlyZXR1cm4gcmV0OwomIzQzOwomIzQzOwlpZiAobmV3X3ZhbCAmbHQ7PSAwKSB7CiYjNDM7CQlwcl9lcnIoJiMzNDtzZzogc2NhdHRlcl9lbGVtX3N6IG11c3QgYmUgcG9zaXRpdmUsIGdvdCAlZFxuJiMzNDssIG5ld192YWwpOwomIzQzOwkJcmV0dXJuIC1FSU5WQUw7CiYjNDM7CX0KJiM0MzsKJiM0MzsJb3JkZXIgPSBnZXRfb3JkZXIobmV3X3ZhbCk7CiYjNDM7CWlmIChvcmRlciAmZ3Q7IE1BWF9QQUdFX09SREVSKSB7CiYjNDM7CQlwcl9lcnIoJiMzNDtzZzogc2NhdHRlcl9lbGVtX3N6IHRvbyBsYXJnZSAob3JkZXIgJWQgJmd0OyBNQVhfUEFHRV9PUkRFUiAlZClcbiYjMzQ7LAomIzQzOwkJCW9yZGVyLCBNQVhfUEFHRV9PUkRFUik7CiYjNDM7CQlyZXR1cm4gLUVJTlZBTDsKJiM0MzsJfQomIzQzOwomIzQzOwlzY2F0dGVyX2VsZW1fc3ogPSAxICZsdDsmbHQ7IChQQUdFX1NISUZUICYjNDM7IG9yZGVyKTsKJiM0MzsJcmV0dXJuIDA7CiYjNDM7fQomIzQzOwomIzQzO21vZHVsZV9wYXJhbV9jYWxsKHNjYXR0ZXJfZWxlbV9zeiwgc2NhdHRlcl9lbGVtX3N6X3NldCwgcGFyYW1fZ2V0X2ludCwKJiM0MzsJCSAgJmFtcDtzY2F0dGVyX2VsZW1fc3osIDA2NDQpOwomIzQzOwomIzQzO21vZHVsZV9wYXJhbV9uYW1lZChhbGxvd19kaW8sIHNnX2FsbG93X2RpbywgaW50LCAwNjQ0KTsKIAogc3RhdGljIGludCBkZWZfcmVzZXJ2ZWRfc2l6ZV9zZXQoY29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcCkKIHsKQEAgLTE2NDksOCAmIzQzOzE2NzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbV9vcHMgZGVmX3Jlc2VydmVkX3NpemVfb3BzID0gewogCS5nZXQJPSBwYXJhbV9nZXRfaW50LAogfTsKIAotbW9kdWxlX3BhcmFtX2NiKGRlZl9yZXNlcnZlZF9zaXplLCAmYW1wO2RlZl9yZXNlcnZlZF9zaXplX29wcywgJmFtcDtkZWZfcmVzZXJ2ZWRfc2l6ZSwKLQkJICAgU19JUlVHTyB8IFNfSVdVU1IpOwomIzQzO21vZHVsZV9wYXJhbV9jYihkZWZfcmVzZXJ2ZWRfc2l6ZSwgJmFtcDtkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsICZhbXA7ZGVmX3Jlc2VydmVkX3NpemUsIDA2NDQpOwogCiBNT0RVTEVfQVVUSE9SKCYjMzQ7RG91Z2xhcyBHaWxiZXJ0JiMzNDspOwogTU9EVUxFX0RFU0NSSVBUSU9OKCYjMzQ7U0NTSSBnZW5lcmljIChzZykgZHJpdmVyJiMzNDspOwpAQCAtMTY2OCwxMSAmIzQzOzE2OTIsNiBAQCBpbml0X3NnKHZvaWQpCiB7CiAJaW50IHJjOwogCi0JaWYgKHNjYXR0ZXJfZWxlbV9zeiAmbHQ7IFBBR0VfU0laRSkgewotCQlzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7Ci0JCXNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gc2NhdHRlcl9lbGVtX3N6OwotCX0KLQogCXJjID0gcmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbihNS0RFVihTQ1NJX0dFTkVSSUNfTUFKT1IsIDApLCAKIAkJCQkgICAgU0dfTUFYX0RFVlMsICYjMzQ7c2cmIzM0Oyk7CiAJaWYgKHJjKQpAQCAtMTg1NCw5ICYjNDM7MTg3MywxMCBAQCBzZ19idWlsZF9zZ2F0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIGNvbnN0IFNnX2ZkICogc2ZwLCBpbnQgdGFibGVzaXplKQogc3RhdGljIGludAogc2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpCiB7Ci0JaW50IHJldF9zeiA9IDAsIGksIGssIHJlbV9zeiwgbnVtLCBteF9zY19lbGVtczsKJiM0MzsJaW50IHJldF9zeiA9IDAsIGksIGssIHJlbV9zeiwgbXhfc2NfZWxlbXM7CiAJaW50IHNnX3RhYmxlc2l6ZSA9IHNmcC0mZ3Q7cGFyZW50ZHAtJmd0O3NnX3RhYmxlc2l6ZTsKIAlpbnQgYmxrX3NpemUgPSBidWZmX3NpemUsIG9yZGVyOwomIzQzOwlpbnQgZWxlbV9zeiA9IHNjYXR0ZXJfZWxlbV9zejsKIAlnZnBfdCBnZnBfbWFzayA9IEdGUF9BVE9NSUMgfCBfX0dGUF9DT01QIHwgX19HRlBfTk9XQVJOIHwgX19HRlBfWkVSTzsKIAogCWlmIChibGtfc2l6ZSAmbHQ7IDApCkBAIC0xODc0LDM5ICYjNDM7MTg5NCwxOSBAQCBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSkKIAlpZiAobXhfc2NfZWxlbXMgJmx0OyAwKQogCQlyZXR1cm4gbXhfc2NfZWxlbXM7CS8qIG1vc3QgbGlrZWx5IC1FTk9NRU0gKi8KIAotCW51bSA9IHNjYXR0ZXJfZWxlbV9zejsKLQlpZiAodW5saWtlbHkobnVtICE9IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSkgewotCQlpZiAobnVtICZsdDsgUEFHRV9TSVpFKSB7Ci0JCQlzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7Ci0JCQlzY2F0dGVyX2VsZW1fc3pfcHJldiA9IFBBR0VfU0laRTsKLQkJfSBlbHNlCi0JCQlzY2F0dGVyX2VsZW1fc3pfcHJldiA9IG51bTsKLQl9Ci0KLQlvcmRlciA9IGdldF9vcmRlcihudW0pOwomIzQzOwlvcmRlciA9IGdldF9vcmRlcihlbGVtX3N6KTsKIHJldHJ5OgogCXJldF9zeiA9IDEgJmx0OyZsdDsgKFBBR0VfU0hJRlQgJiM0Mzsgb3JkZXIpOwogCiAJZm9yIChrID0gMCwgcmVtX3N6ID0gYmxrX3NpemU7IHJlbV9zeiAmZ3Q7IDAgJmFtcDsmYW1wOyBrICZsdDsgbXhfc2NfZWxlbXM7CiAJICAgICBrJiM0MzsmIzQzOywgcmVtX3N6IC09IHJldF9zeikgewotCi0JCW51bSA9IChyZW1fc3ogJmd0OyBzY2F0dGVyX2VsZW1fc3pfcHJldikgPwotCQkJc2NhdHRlcl9lbGVtX3N6X3ByZXYgOiByZW1fc3o7Ci0KIAkJc2NocC0mZ3Q7cGFnZXNba10gPSBhbGxvY19wYWdlcyhnZnBfbWFzaywgb3JkZXIpOwogCQlpZiAoIXNjaHAtJmd0O3BhZ2VzW2tdKQogCQkJZ290byBvdXQ7CiAKLQkJaWYgKG51bSA9PSBzY2F0dGVyX2VsZW1fc3pfcHJldikgewotCQkJaWYgKHVubGlrZWx5KHJldF9zeiAmZ3Q7IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSkgewotCQkJCXNjYXR0ZXJfZWxlbV9zeiA9IHJldF9zejsKLQkJCQlzY2F0dGVyX2VsZW1fc3pfcHJldiA9IHJldF9zejsKLQkJCX0KLQkJfQotCiAJCVNDU0lfTE9HX1RJTUVPVVQoNSwgc2dfcHJpbnRrKEtFUk5fSU5GTywgc2ZwLSZndDtwYXJlbnRkcCwKLQkJCQkgJiMzNDtzZ19idWlsZF9pbmRpcmVjdDogaz0lZCwgbnVtPSVkLCByZXRfc3o9JWRcbiYjMzQ7LAotCQkJCSBrLCBudW0sIHJldF9zeikpOwomIzQzOwkJCQkgJiMzNDslczogaz0lZCwgcmV0X3N6PSVkXG4mIzM0OywKJiM0MzsJCQkJIF9fZnVuY19fLCBrLCByZXRfc3opKTsKIAl9CQkvKiBlbmQgb2YgZm9yIGxvb3AgKi8KIAogCXNjaHAtJmd0O3BhZ2Vfb3JkZXIgPSBvcmRlcjsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMzNwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDI2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFNDU0kgR2VuZXJpYyBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBkaWdnaW5nIGludG8gYGRyaXZlcnMvc2NzaS9zZy5jYCwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGhvdyB0aGUgc2NhdHRlci1nYXRoZXIgZWxlbWVudCBzaXplIChgc2NhdHRlcl9lbGVtX3N6YCkgaXMgaGFuZGxlZC4gSXQgbG9va3MgbGlrZSB0aGV5JiMzOTtyZSBzaW1wbGlmeWluZyB0aGluZ3MgYSBiaXQuICBUaGV5JiMzOTt2ZSBpbnRyb2R1Y2VkIGEgYHNjYXR0ZXJfZWxlbV9zel9zZXRgIGZ1bmN0aW9uLCB3aGljaCBpcyBpbnRlcmVzdGluZywgcHJvYmFibHkgdG8gYWxsb3cgZm9yIGR5bmFtaWMgYWRqdXN0bWVudCB2aWEgYSBtb2R1bGUgcGFyYW1ldGVyLCBzbyB3ZSBtaWdodCB3YW50IHRvIHNlZSBob3cgdGhhdCYjMzk7cyB1c2VkLiAgR29vZCByaWRkYW5jZSB0byB0aGUgYHNjYXR0ZXJfZWxlbV9zel9wcmV2YCwgdGhhdCBzZWVtcyB1bm5lY2Vzc2FyeSBub3cuCgpUaGUgY29yZSBjaGFuZ2UgYXBwZWFycyB0byBiZSB3aXRoaW4gYHNnX2J1aWxkX2luZGlyZWN0YC4gIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7cmUgbm93IHVzaW5nIHRoZSBkaXJlY3RseSBjb25maWd1cmVkIGBzY2F0dGVyX2VsZW1fc3pgIGluIHRoYXQgZnVuY3Rpb24sIHJhdGhlciB0aGFuIHRoZSBwcmV2aW91cyBtZXRob2QgdGhhdCBpbnZvbHZlZCB0cmFja2luZyBhIGBzY2F0dGVyX2VsZW1fc3pfcHJldmAuIFRoYXQgbWFrZXMgc2Vuc2U7IGl0IHNpbXBsaWZpZXMgdGhlIGxvZ2ljLiAgSSYjMzk7bGwgd2FudCB0byByZXZpZXcgaG93IGBzZ19idWlsZF9pbmRpcmVjdGAgaXMgKmFjdHVhbGx5KiB1c2luZyB0aGlzIHNpemUsIHRob3VnaC4gIEFsc28sIGl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgZG9uZSBhIHBlcm1pc3Npb25zIGNoYW5nZSBmcm9tIGBTX0lSVUdPIHwgU19JV1VTUmAgdG8gYDA2NDRgLiAgU3RhbmRhcmQgcGVybWlzc2lvbnMgY2hhbmdlLCBub3RoaW5nIHRvIGJlIHRvbyBjb25jZXJuZWQgYWJvdXQsIGJ1dCBJIHNob3VsZCB2ZXJpZnkgdGhhdCBpdCB3b24mIzM5O3QgaW1wYWN0IGFueSBkb3duc3RyZWFtIGFwcGxpY2F0aW9ucy4KCkxldCYjMzk7cyBtYWtlIHN1cmUgdGhpcyBjb2RlIGlzIGV2ZW4gKnVzZWQqLiBgc2dfYnVpbGRfaW5kaXJlY3RgIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlOyB0aGF0JiMzOTtzIHRoZSBjb3JlIG9mIHRoZSBgL2Rldi9zZypgIGRldmljZSBmdW5jdGlvbmFsaXR5LCBzbyBpdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgY29uc3RydWN0aW5nIHRoZSBzY2F0dGVyLWdhdGhlciBsaXN0cyBmb3IgU0NTSSBjb21tYW5kcy4gU28sIHRoYXQmIzM5O3Mgbm90IGEgY29uY2Vybi4gVGhlIG1haW4gY29uZmlnIGlzIHVuZGVyIGBDT05GSUdfQ0hSX0RFVl9TR2AuIEkmIzM5O2xsIHdhbnQgdG8gY2hlY2sgaG93IHRoZSBwYXJhbWV0ZXIgaXMgc2V0IGFuZCBob3cgdGhlIG5ldyBmdW5jdGlvbmFsaXR5IGludGVyYWN0cyB3aXRoIGFsbCBvZiB0aGUgb3RoZXIgcGFydHMgb2YgdGhlIGRyaXZlci4gT3ZlcmFsbCwgdGhpcyBzZWVtcyBsaWtlIGEgc29saWQgY2xlYW51cCBhbmQgc2ltcGxpZmljYXRpb24sIGxldCYjMzk7cyBzZWUgaG93IHdlbGwgaXQgd29ya3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Q09ORklHX0NIUl9ERVZfU0cmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL3Njc2kvTWFrZWZpbGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9zY3NpL01ha2VmaWxlPTE0OT1vYmotJChDT05GSUdfQkxLX0RFVl9TUilcdCYjNDM7PSBzcl9tb2Qub1xuZHJpdmVycy9zY3NpL01ha2VmaWxlOjE1MDpvYmotJChDT05GSUdfQ0hSX0RFVl9TRylcdCYjNDM7PSBzZy5vXG5kcml2ZXJzL3Njc2kvTWFrZWZpbGUtMTUxLW9iai0kKENPTkZJR19DSFJfREVWX1NDSClcdCYjNDM7PSBjaC5vXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDEyNgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlLCB0aGUgc3lzdGVtJiMzOTtzIGNvbmZpZ3VyYXRpb24gdmFyaWFibGUgaXMgYENIUl9ERVZfU0dgLiBSaWdodCwgdGhhdCYjMzk7cyB0aGUgb25lLiBOb3csIG15IGltbWVkaWF0ZSBjb25jZXJuIGlzIHdoZXRoZXIgYHNnX2J1aWxkX2luZGlyZWN0YCBpcyBhIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2suIFRoYXQgZnVuY3Rpb24gaXMgY3J1Y2lhbCBiZWNhdXNlIGl0JiMzOTtzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW5nIGJ1ZmZlcnMgd2hlbiBTQ1NJIGNvbW1hbmRzIGFyZSBiZWluZyBpc3N1ZWQsIGFuZCBhbnkgc2xvd2Rvd24gdGhlcmUgaXMgZ29pbmcgdG8gcmlwcGxlIG91dHdhcmRzLgoKTXkgbWVudGFsIG1vZGVsIGlzIHRha2luZyBtZSB0aHJvdWdoIHRoZSBjYWxsIHN0YWNrLi4uIEkga25vdyBpdCYjMzk7cyAqcmVsYXRlZCogdG8gYHNnX2J1aWxkX3NnYXRgLCBidXQgSSBkb24mIzM5O3QgdGhpbmsgdGhhdCYjMzk7cyB0aGUgZGlyZWN0IGNhbGxlci4gTm8sIGhhbmcgb24sIGl0JiMzOTtzIGNhbGxlZCBmcm9tIGBzZ19hZGRfc2ZwYCwgYHNnX3dyaXRlYCwgb3IgYHNnX2lvY3RsYC4gVGhvc2UgYXJlIGFsbCBkaWZmZXJlbnQgd2F5cyB1c2VycyBpbnRlcmFjdCB3aXRoIHRoZSBTQ1NJIHN1YnN5c3RlbSwgc28gdGhhdCBjb25maXJtcyB0aGlzICppcyogYSBrZXkgYXJlYSBmb3IgcGVyZm9ybWFuY2UuIFRpbWUgdG8gZGlnIGRlZXBlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOSAxOToyMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZ19idWlsZF9pbmRpcmVjdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvc2NzaS9zZy5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvc2NzaS9zZy5jPTE4Mj1zdGF0aWMgaW50IHNnX2ZpbmlzaF9yZW1fcmVxKFNnX3JlcXVlc3QgKiBzcnApO1xuZHJpdmVycy9zY3NpL3NnLmM6MTgzOnN0YXRpYyBpbnQgc2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpO1xuZHJpdmVycy9zY3NpL3NnLmMtMTg0LXN0YXRpYyBzc2l6ZV90IHNnX25ld19yZWFkKFNnX2ZkICogc2ZwLCBjaGFyIF9fdXNlciAqYnVmLCBzaXplX3QgY291bnQsXG4tLVxuZHJpdmVycy9zY3NpL3NnLmM9MTczMT1zZ19zdGFydF9yZXEoU2dfcmVxdWVzdCAqc3JwLCB1bnNpZ25lZCBjaGFyICpjbWQpXG4tLVxuZHJpdmVycy9zY3NpL3NnLmMtMTgwMi1cdFx0fSBlbHNlIHtcbmRyaXZlcnMvc2NzaS9zZy5jOjE4MDM6XHRcdFx0cmVzID0gc2dfYnVpbGRfaW5kaXJlY3QocmVxX3NjaHAsIHNmcCwgZHhmZXJfbGVuKTtcbmRyaXZlcnMvc2NzaS9zZy5jLTE4MDQtXHRcdFx0aWYgKHJlcykge1xuLS1cbmRyaXZlcnMvc2NzaS9zZy5jPTE4NzM9c3RhdGljIGludFxuZHJpdmVycy9zY3NpL3NnLmM6MTg3NDpzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlcbmRyaXZlcnMvc2NzaS9zZy5jLTE4NzUte1xuLS1cbmRyaXZlcnMvc2NzaS9zZy5jLTE4ODgtXHRTQ1NJX0xPR19USU1FT1VUKDQsIHNnX3ByaW50ayhLRVJOX0lORk8sIHNmcC1cdTAwM2VwYXJlbnRkcCxcbmRyaXZlcnMvc2NzaS9zZy5jOjE4ODk6XHRcdFwmIzM0O3NnX2J1aWxkX2luZGlyZWN0OiBidWZmX3NpemU9JWQsIGJsa19zaXplPSVkXFxuXCYjMzQ7LFxuZHJpdmVycy9zY3NpL3NnLmMtMTg5MC1cdFx0YnVmZl9zaXplLCBibGtfc2l6ZSkpO1xuLS1cbmRyaXZlcnMvc2NzaS9zZy5jLTE5MTQtXHRTQ1NJX0xPR19USU1FT1VUKDUsIHNnX3ByaW50ayhLRVJOX0lORk8sIHNmcC1cdTAwM2VwYXJlbnRkcCxcbmRyaXZlcnMvc2NzaS9zZy5jOjE5MTU6XHRcdFx0IFwmIzM0O3NnX2J1aWxkX2luZGlyZWN0OiBrX3VzZV9zZz0lZCwgcmVtX3N6PSVkXFxuXCYjMzQ7LFxuZHJpdmVycy9zY3NpL3NnLmMtMTkxNi1cdFx0XHQgaywgcmVtX3N6KSk7XG4tLVxuZHJpdmVycy9zY3NpL3NnLmM9MTk4OT1zZ19idWlsZF9yZXNlcnZlKFNnX2ZkICogc2ZwLCBpbnQgcmVxX3NpemUpXG4tLVxuZHJpdmVycy9zY3NpL3NnLmMtMTk5Ny1cdFx0XHRyZXFfc2l6ZSA9IFBBR0VfU0laRTtcbmRyaXZlcnMvc2NzaS9zZy5jOjE5OTg6XHRcdGlmICgwID09IHNnX2J1aWxkX2luZGlyZWN0KHNjaHAsIHNmcCwgcmVxX3NpemUpKVxuZHJpdmVycy9zY3NpL3NnLmMtMTk5OS1cdFx0XHRyZXR1cm47XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDkgMTk6MjI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTA3NQoJCQkJCQkJb3V0cHV0OiAxMjAKCQkJCQkJCXRob3VnaHRzOiA1MDUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IFNDU0kgR2VuZXJpYyBEcml2ZXIqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgYHNnX2J1aWxkX2luZGlyZWN0YCBsb29rcyBwcm9taXNpbmcgZm9yIGZ1enppbmcuIEl0JiMzOTtzIGNhbGxlZCBmcm9tIGBzZ19zdGFydF9yZXFgIGFuZCBgc2dfYnVpbGRfcmVzZXJ2ZWAsIHdoaWNoLCBpbiB0dXJuLCBhcmUgYXNzb2NpYXRlZCB3aXRoIFNDU0kgY29tbWFuZHMuIFRoYXQgbWFrZXMgaXQgYSBzb2xpZCB0YXJnZXQsIGVzcGVjaWFsbHkgc2luY2UgYHNnX3N0YXJ0X3JlcWAgaXMgYSBjb21tb24gZW50cnkgcG9pbnQuIFRoZSBmYWN0IHRoYXQgYHNjYXR0ZXJfZWxlbV9zel9zZXRgIGlzIGFsc28gaW4gdGhlIG1peCBhbmQgY2FuIGJlIG1hbmlwdWxhdGVkIHRocm91Z2ggc3lzZnMgaXMgYW5vdGhlciBhbmdsZSBJIG5lZWQgdG8gZXhwbG9yZS4KCkkgY29uZmlybWVkIHRoYXQgYENIUl9ERVZfU0dgIGlzIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbiBmb3IgdGhlIGBzZy5jYCBkcml2ZXIsIHdoaWNoIGlzIGNydWNpYWwuIFNvLCB0aGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4KCkkgbmVlZCB0byBmb2N1cyBvbiB0aGVzZSBzcGVjaWZpYyBmdW5jdGlvbnM6IGBzZ19idWlsZF9pbmRpcmVjdGAgYW5kIGBzY2F0dGVyX2VsZW1fc3pfc2V0YC4gSSBjb25maXJtZWQgYm90aCBvZiB0aGVzZSBhcmUsIGluIGZhY3QsIGBzdGF0aWNgLCB3aGljaCBpcyB0eXBpY2FsIGZvciBpbnRlcm5hbCBmdW5jdGlvbnMsIGJ1dCBkb2VzbiYjMzk7dCBuZWNlc3NhcmlseSBtZWFuIHVucmVhY2hhYmxlLiBMZXQmIzM5O3Mgc2VlLi4uCgpOb3csIGxldCYjMzk7cyB2ZXJpZnkgcmVhY2hhYmlsaXR5LiBHb29kIG5ld3M6IGBzZ19idWlsZF9pbmRpcmVjdGAgaXMgcmVhY2hhYmxlIHZpYSBgc2dfc3RhcnRfcmVxYC4gIEFuZCB0aGF0JiMzOTtzIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgYHNnX3dyaXRlYCwgYHNnX25ld193cml0ZWAsIG9yIGBzZ19pb2N0bGAgaW50ZXJmYWNlcywgbWFraW5nIGl0IHVzZXItc3BhY2UgY29udHJvbGxlZC4gYHNjYXR0ZXJfZWxlbV9zel9zZXRgIGlzIHJlYWNoYWJsZSB2aWEgc3lzZnMsIGEgd3JpdGUgb3BlcmF0aW9uIHRvIGAvc3lzL21vZHVsZS9zZy9wYXJhbWV0ZXJzL3NjYXR0ZXJfZWxlbV9zemAuIFRoYXQmIzM5O3MgZWFzeSB0byB0ZXN0LgoKSSYjMzk7dmUgYWxzbyBkb3VibGUtY2hlY2tlZCB0aGUgZXhhY3QgZnVuY3Rpb24gbmFtZXMgYW5kIHBhcmFtZXRlcnMgdG8gbWFrZSBzdXJlIEkmIzM5O20gdGFyZ2V0aW5nIHRoZSBjb3JyZWN0IGZ1bmN0aW9ucyBmb3IgdGhlIHRlc3RpbmcgYW5kIHRoYXQmIzM5O3M6IGBzdGF0aWMgaW50IHNnX2J1aWxkX2luZGlyZWN0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIFNnX2ZkICogc2ZwLCBpbnQgYnVmZl9zaXplKWAgYW5kIGBzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zel9zZXQoY29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcClgLgoKVGhlIGZpbmFsIHRoaW5nIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgaXMgZGVwZW5kZW5jaWVzLCBidXQgaXQgbG9va3MgbGlrZSBgQ09ORklHX1NDU0lgIGlzIHJlcXVpcmVkIGZvciBgQ0hSX0RFVl9TR2AsIGJ1dCBgQ0hSX0RFVl9TR2AgaXMgdGhlIG1haW4gdGhpbmcgaGVyZS4KClNvLCBoZXJlJiMzOTtzIG15IHN1bW1hcml6ZWQgdmlldzoKCioqV29ydGhGdXp6aW5nOiBUcnVlKioKCioqRm9jdXNTeW1ib2xzOioqIGBzZ19idWlsZF9pbmRpcmVjdGAsIGBzY2F0dGVyX2VsZW1fc3pfc2V0YAoKKipFbmFibGVDb25maWdzOioqIGBDSFJfREVWX1NHYAoKKipSZWFzb25pbmc6KiogVGhpcyBwYXRjaCBtb2RpZmllcyBjcml0aWNhbCBsb2dpYyByZWxhdGVkIHRvIHNjYXR0ZXItZ2F0aGVyIGxpc3QgYWxsb2NhdGlvbiB3aXRoaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBpbnRyb2R1Y2VzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbi4gIFRoZXNlIGFyZSBjaGFuZ2VzIHdpdGggZGlyZWN0IHVzZXItc3BhY2UgaW50ZXJmYWNlcyAoU0NTSSBpb2N0bHMvd3JpdGVzIGFuZCBzeXNmcywgcmVzcGVjdGl2ZWx5KSBtYWtpbmcgdGhlbSBpZGVhbCB0YXJnZXRzIGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA5IDE5OjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDSFJfREVWX1NHJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2dfYnVpbGRfaW5kaXJlY3QmIzM0OywKICAgICYjMzQ7c2NhdHRlcl9lbGVtX3N6X3NldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGFsbG9jYXRpbmcgc2NhdHRlci1nYXRoZXIgbGlzdHMgaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBhZGRzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbiBsb2dpYy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSBTQ1NJIGlvY3Rscy93cml0ZXMgYW5kIHN5c2ZzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDSFJfREVWX1NHJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2dfYnVpbGRfaW5kaXJlY3QmIzM0OywKICAgICYjMzQ7c2NhdHRlcl9lbGVtX3N6X3NldCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGFsbG9jYXRpbmcgc2NhdHRlci1nYXRoZXIgbGlzdHMgaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBhZGRzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbiBsb2dpYy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSBTQ1NJIGlvY3Rscy93cml0ZXMgYW5kIHN5c2ZzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMDlUMTk6MjI6MTIuMzkwMDY5NzkxWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzEzMDEzNTg4MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0hSX0RFVl9TR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNnX2J1aWxkX2luZGlyZWN0XCIsXG4gICAgXCJzY2F0dGVyX2VsZW1fc3pfc2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBhbGxvY2F0aW5nIHNjYXR0ZXItZ2F0aGVyIGxpc3RzIGluIHRoZSBTQ1NJIGdlbmVyaWMgZHJpdmVyIChgc2dfYnVpbGRfaW5kaXJlY3RgKSBhbmQgYWRkcyBhIG5ldyBtb2R1bGUgcGFyYW1ldGVyIHNldHRlciAoYHNjYXR0ZXJfZWxlbV9zel9zZXRgKSB3aXRoIHZhbGlkYXRpb24gbG9naWMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGZyb20gdXNlciBzcGFjZSB2aWEgU0NTSSBpb2N0bHMvd3JpdGVzIGFuZCBzeXNmcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTk6MjI6MTIuMzkwMDc2NTQxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTI4NDUwMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBjYTlkNzBiMmZhNTJiMDQ0Y2Y1MzVhMDZjODkwNjc4MWQxY2YwNzc2XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDkgMTk6MjI6MTAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9zY3NpL3NnLmMgYi9kcml2ZXJzL3Njc2kvc2cuY1xcbmluZGV4IDc0Y2Q0ZThhNjFjMmEwLi4zNzdjM2UxZGVlN2ZmOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL3Njc2kvc2cuY1xcbisrKyBiL2RyaXZlcnMvc2NzaS9zZy5jXFxuQEAgLTkyLDcgKzkyLDYgQEAgc3RhdGljIGludCBkZWZfcmVzZXJ2ZWRfc2l6ZSA9IFNHX0RFRl9SRVNFUlZFRF9TSVpFO1xcbiBzdGF0aWMgaW50IHNnX2FsbG93X2RpbyA9IFNHX0FMTE9XX0RJT19ERUY7XFxuIFxcbiBzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zeiA9IFNHX1NDQVRURVJfU1o7XFxuLXN0YXRpYyBpbnQgc2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBTR19TQ0FUVEVSX1NaO1xcbiBcXG4gI2RlZmluZSBTR19TRUNUT1JfU1ogNTEyXFxuIFxcbkBAIC0xNjIyLDggKzE2MjEsMzQgQEAgc2dfcmVtb3ZlX2RldmljZShzdHJ1Y3QgZGV2aWNlICpjbF9kZXYpXFxuIFxcdGtyZWZfcHV0KFxcdTAwMjZzZHAtXFx1MDAzZWRfcmVmLCBzZ19kZXZpY2VfZGVzdHJveSk7XFxuIH1cXG4gXFxuLW1vZHVsZV9wYXJhbV9uYW1lZChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zeiwgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7XFxuLW1vZHVsZV9wYXJhbV9uYW1lZChhbGxvd19kaW8sIHNnX2FsbG93X2RpbywgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7XFxuK3N0YXRpYyBpbnQgc2NhdHRlcl9lbGVtX3N6X3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxcbit7XFxuK1xcdGludCByZXQsIG5ld192YWwsIG9yZGVyO1xcbitcXG4rXFx0cmV0ID0ga3N0cnRvaW50KHZhbCwgMCwgXFx1MDAyNm5ld192YWwpO1xcbitcXHRpZiAocmV0KVxcbitcXHRcXHRyZXR1cm4gcmV0O1xcbitcXG4rXFx0aWYgKG5ld192YWwgXFx1MDAzYz0gMCkge1xcbitcXHRcXHRwcl9lcnIoXFxcInNnOiBzY2F0dGVyX2VsZW1fc3ogbXVzdCBiZSBwb3NpdGl2ZSwgZ290ICVkXFxcXG5cXFwiLCBuZXdfdmFsKTtcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdH1cXG4rXFxuK1xcdG9yZGVyID0gZ2V0X29yZGVyKG5ld192YWwpO1xcbitcXHRpZiAob3JkZXIgXFx1MDAzZSBNQVhfUEFHRV9PUkRFUikge1xcbitcXHRcXHRwcl9lcnIoXFxcInNnOiBzY2F0dGVyX2VsZW1fc3ogdG9vIGxhcmdlIChvcmRlciAlZCBcXHUwMDNlIE1BWF9QQUdFX09SREVSICVkKVxcXFxuXFxcIixcXG4rXFx0XFx0XFx0b3JkZXIsIE1BWF9QQUdFX09SREVSKTtcXG4rXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdH1cXG4rXFxuK1xcdHNjYXR0ZXJfZWxlbV9zeiA9IDEgXFx1MDAzY1xcdTAwM2MgKFBBR0VfU0hJRlQgKyBvcmRlcik7XFxuK1xcdHJldHVybiAwO1xcbit9XFxuK1xcbittb2R1bGVfcGFyYW1fY2FsbChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zel9zZXQsIHBhcmFtX2dldF9pbnQsXFxuK1xcdFxcdCAgXFx1MDAyNnNjYXR0ZXJfZWxlbV9zeiwgMDY0NCk7XFxuK1xcbittb2R1bGVfcGFyYW1fbmFtZWQoYWxsb3dfZGlvLCBzZ19hbGxvd19kaW8sIGludCwgMDY0NCk7XFxuIFxcbiBzdGF0aWMgaW50IGRlZl9yZXNlcnZlZF9zaXplX3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxcbiB7XFxuQEAgLTE2NDksOCArMTY3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtX29wcyBkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMgPSB7XFxuIFxcdC5nZXRcXHQ9IHBhcmFtX2dldF9pbnQsXFxuIH07XFxuIFxcbi1tb2R1bGVfcGFyYW1fY2IoZGVmX3Jlc2VydmVkX3NpemUsIFxcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsIFxcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZSxcXG4tXFx0XFx0ICAgU19JUlVHTyB8IFNfSVdVU1IpO1xcbittb2R1bGVfcGFyYW1fY2IoZGVmX3Jlc2VydmVkX3NpemUsIFxcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsIFxcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZSwgMDY0NCk7XFxuIFxcbiBNT0RVTEVfQVVUSE9SKFxcXCJEb3VnbGFzIEdpbGJlcnRcXFwiKTtcXG4gTU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJTQ1NJIGdlbmVyaWMgKHNnKSBkcml2ZXJcXFwiKTtcXG5AQCAtMTY2OCwxMSArMTY5Miw2IEBAIGluaXRfc2codm9pZClcXG4ge1xcbiBcXHRpbnQgcmM7XFxuIFxcbi1cXHRpZiAoc2NhdHRlcl9lbGVtX3N6IFxcdTAwM2MgUEFHRV9TSVpFKSB7XFxuLVxcdFxcdHNjYXR0ZXJfZWxlbV9zeiA9IFBBR0VfU0laRTtcXG4tXFx0XFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBzY2F0dGVyX2VsZW1fc3o7XFxuLVxcdH1cXG4tXFxuIFxcdHJjID0gcmVnaXN0ZXJfY2hyZGV2X3JlZ2lvbihNS0RFVihTQ1NJX0dFTkVSSUNfTUFKT1IsIDApLCBcXG4gXFx0XFx0XFx0XFx0ICAgIFNHX01BWF9ERVZTLCBcXFwic2dcXFwiKTtcXG4gXFx0aWYgKHJjKVxcbkBAIC0xODU0LDkgKzE4NzMsMTAgQEAgc2dfYnVpbGRfc2dhdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBjb25zdCBTZ19mZCAqIHNmcCwgaW50IHRhYmxlc2l6ZSlcXG4gc3RhdGljIGludFxcbiBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlcXG4ge1xcbi1cXHRpbnQgcmV0X3N6ID0gMCwgaSwgaywgcmVtX3N6LCBudW0sIG14X3NjX2VsZW1zO1xcbitcXHRpbnQgcmV0X3N6ID0gMCwgaSwgaywgcmVtX3N6LCBteF9zY19lbGVtcztcXG4gXFx0aW50IHNnX3RhYmxlc2l6ZSA9IHNmcC1cXHUwMDNlcGFyZW50ZHAtXFx1MDAzZXNnX3RhYmxlc2l6ZTtcXG4gXFx0aW50IGJsa19zaXplID0gYnVmZl9zaXplLCBvcmRlcjtcXG4rXFx0aW50IGVsZW1fc3ogPSBzY2F0dGVyX2VsZW1fc3o7XFxuIFxcdGdmcF90IGdmcF9tYXNrID0gR0ZQX0FUT01JQyB8IF9fR0ZQX0NPTVAgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9aRVJPO1xcbiBcXG4gXFx0aWYgKGJsa19zaXplIFxcdTAwM2MgMClcXG5AQCAtMTg3NCwzOSArMTg5NCwxOSBAQCBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlcXG4gXFx0aWYgKG14X3NjX2VsZW1zIFxcdTAwM2MgMClcXG4gXFx0XFx0cmV0dXJuIG14X3NjX2VsZW1zO1xcdC8qIG1vc3QgbGlrZWx5IC1FTk9NRU0gKi9cXG4gXFxuLVxcdG51bSA9IHNjYXR0ZXJfZWxlbV9zejtcXG4tXFx0aWYgKHVubGlrZWx5KG51bSAhPSBzY2F0dGVyX2VsZW1fc3pfcHJldikpIHtcXG4tXFx0XFx0aWYgKG51bSBcXHUwMDNjIFBBR0VfU0laRSkge1xcbi1cXHRcXHRcXHRzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7XFxuLVxcdFxcdFxcdHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gUEFHRV9TSVpFO1xcbi1cXHRcXHR9IGVsc2VcXG4tXFx0XFx0XFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBudW07XFxuLVxcdH1cXG4tXFxuLVxcdG9yZGVyID0gZ2V0X29yZGVyKG51bSk7XFxuK1xcdG9yZGVyID0gZ2V0X29yZGVyKGVsZW1fc3opO1xcbiByZXRyeTpcXG4gXFx0cmV0X3N6ID0gMSBcXHUwMDNjXFx1MDAzYyAoUEFHRV9TSElGVCArIG9yZGVyKTtcXG4gXFxuIFxcdGZvciAoayA9IDAsIHJlbV9zeiA9IGJsa19zaXplOyByZW1fc3ogXFx1MDAzZSAwIFxcdTAwMjZcXHUwMDI2IGsgXFx1MDAzYyBteF9zY19lbGVtcztcXG4gXFx0ICAgICBrKyssIHJlbV9zeiAtPSByZXRfc3opIHtcXG4tXFxuLVxcdFxcdG51bSA9IChyZW1fc3ogXFx1MDAzZSBzY2F0dGVyX2VsZW1fc3pfcHJldikgP1xcbi1cXHRcXHRcXHRzY2F0dGVyX2VsZW1fc3pfcHJldiA6IHJlbV9zejtcXG4tXFxuIFxcdFxcdHNjaHAtXFx1MDAzZXBhZ2VzW2tdID0gYWxsb2NfcGFnZXMoZ2ZwX21hc2ssIG9yZGVyKTtcXG4gXFx0XFx0aWYgKCFzY2hwLVxcdTAwM2VwYWdlc1trXSlcXG4gXFx0XFx0XFx0Z290byBvdXQ7XFxuIFxcbi1cXHRcXHRpZiAobnVtID09IHNjYXR0ZXJfZWxlbV9zel9wcmV2KSB7XFxuLVxcdFxcdFxcdGlmICh1bmxpa2VseShyZXRfc3ogXFx1MDAzZSBzY2F0dGVyX2VsZW1fc3pfcHJldikpIHtcXG4tXFx0XFx0XFx0XFx0c2NhdHRlcl9lbGVtX3N6ID0gcmV0X3N6O1xcbi1cXHRcXHRcXHRcXHRzY2F0dGVyX2VsZW1fc3pfcHJldiA9IHJldF9zejtcXG4tXFx0XFx0XFx0fVxcbi1cXHRcXHR9XFxuLVxcbiBcXHRcXHRTQ1NJX0xPR19USU1FT1VUKDUsIHNnX3ByaW50ayhLRVJOX0lORk8sIHNmcC1cXHUwMDNlcGFyZW50ZHAsXFxuLVxcdFxcdFxcdFxcdCBcXFwic2dfYnVpbGRfaW5kaXJlY3Q6IGs9JWQsIG51bT0lZCwgcmV0X3N6PSVkXFxcXG5cXFwiLFxcbi1cXHRcXHRcXHRcXHQgaywgbnVtLCByZXRfc3opKTtcXG4rXFx0XFx0XFx0XFx0IFxcXCIlczogaz0lZCwgcmV0X3N6PSVkXFxcXG5cXFwiLFxcbitcXHRcXHRcXHRcXHQgX19mdW5jX18sIGssIHJldF9zeikpO1xcbiBcXHR9XFx0XFx0LyogZW5kIG9mIGZvciBsb29wICovXFxuIFxcbiBcXHRzY2hwLVxcdTAwM2VwYWdlX29yZGVyID0gb3JkZXI7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA5VDE5OjIyOjEzLjEwMzkzNzUyMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA1ODc0NzczOTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiQ0hSX0RFVl9TR1wiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInNnX2J1aWxkX2luZGlyZWN0XCIsXG4gICAgXCJzY2F0dGVyX2VsZW1fc3pfc2V0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGxvZ2ljIGZvciBhbGxvY2F0aW5nIHNjYXR0ZXItZ2F0aGVyIGxpc3RzIGluIHRoZSBTQ1NJIGdlbmVyaWMgZHJpdmVyIChgc2dfYnVpbGRfaW5kaXJlY3RgKSBhbmQgYWRkcyBhIG5ldyBtb2R1bGUgcGFyYW1ldGVyIHNldHRlciAoYHNjYXR0ZXJfZWxlbV9zel9zZXRgKSB3aXRoIHZhbGlkYXRpb24gbG9naWMuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgdGhhdCBjYW4gYmUgdHJpZ2dlcmVkIGZyb20gdXNlciBzcGFjZSB2aWEgU0NTSSBpb2N0bHMvd3JpdGVzIGFuZCBzeXNmcy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBjYTlkNzBiMmZhNTJiMDQ0Y2Y1MzVhMDZjODkwNjc4MWQxY2YwNzc2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgOSAxOToyMjoxMCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zZy5jIGIvZHJpdmVycy9zY3NpL3NnLmNcbmluZGV4IDc0Y2Q0ZThhNjFjMmEwLi4zNzdjM2UxZGVlN2ZmOSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvc2NzaS9zZy5jXG4rKysgYi9kcml2ZXJzL3Njc2kvc2cuY1xuQEAgLTkyLDcgKzkyLDYgQEAgc3RhdGljIGludCBkZWZfcmVzZXJ2ZWRfc2l6ZSA9IFNHX0RFRl9SRVNFUlZFRF9TSVpFO1xuIHN0YXRpYyBpbnQgc2dfYWxsb3dfZGlvID0gU0dfQUxMT1dfRElPX0RFRjtcbiBcbiBzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zeiA9IFNHX1NDQVRURVJfU1o7XG4tc3RhdGljIGludCBzY2F0dGVyX2VsZW1fc3pfcHJldiA9IFNHX1NDQVRURVJfU1o7XG4gXG4gI2RlZmluZSBTR19TRUNUT1JfU1ogNTEyXG4gXG5AQCAtMTYyMiw4ICsxNjIxLDM0IEBAIHNnX3JlbW92ZV9kZXZpY2Uoc3RydWN0IGRldmljZSAqY2xfZGV2KVxuIFx0a3JlZl9wdXQoXHUwMDI2c2RwLVx1MDAzZWRfcmVmLCBzZ19kZXZpY2VfZGVzdHJveSk7XG4gfVxuIFxuLW1vZHVsZV9wYXJhbV9uYW1lZChzY2F0dGVyX2VsZW1fc3osIHNjYXR0ZXJfZWxlbV9zeiwgaW50LCBTX0lSVUdPIHwgU19JV1VTUik7XG4tbW9kdWxlX3BhcmFtX25hbWVkKGFsbG93X2Rpbywgc2dfYWxsb3dfZGlvLCBpbnQsIFNfSVJVR08gfCBTX0lXVVNSKTtcbitzdGF0aWMgaW50IHNjYXR0ZXJfZWxlbV9zel9zZXQoY29uc3QgY2hhciAqdmFsLCBjb25zdCBzdHJ1Y3Qga2VybmVsX3BhcmFtICprcClcbit7XG4rXHRpbnQgcmV0LCBuZXdfdmFsLCBvcmRlcjtcbitcbitcdHJldCA9IGtzdHJ0b2ludCh2YWwsIDAsIFx1MDAyNm5ld192YWwpO1xuK1x0aWYgKHJldClcbitcdFx0cmV0dXJuIHJldDtcbitcbitcdGlmIChuZXdfdmFsIFx1MDAzYz0gMCkge1xuK1x0XHRwcl9lcnIoXCJzZzogc2NhdHRlcl9lbGVtX3N6IG11c3QgYmUgcG9zaXRpdmUsIGdvdCAlZFxcblwiLCBuZXdfdmFsKTtcbitcdFx0cmV0dXJuIC1FSU5WQUw7XG4rXHR9XG4rXG4rXHRvcmRlciA9IGdldF9vcmRlcihuZXdfdmFsKTtcbitcdGlmIChvcmRlciBcdTAwM2UgTUFYX1BBR0VfT1JERVIpIHtcbitcdFx0cHJfZXJyKFwic2c6IHNjYXR0ZXJfZWxlbV9zeiB0b28gbGFyZ2UgKG9yZGVyICVkIFx1MDAzZSBNQVhfUEFHRV9PUkRFUiAlZClcXG5cIixcbitcdFx0XHRvcmRlciwgTUFYX1BBR0VfT1JERVIpO1xuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbitcdH1cbitcbitcdHNjYXR0ZXJfZWxlbV9zeiA9IDEgXHUwMDNjXHUwMDNjIChQQUdFX1NISUZUICsgb3JkZXIpO1xuK1x0cmV0dXJuIDA7XG4rfVxuK1xuK21vZHVsZV9wYXJhbV9jYWxsKHNjYXR0ZXJfZWxlbV9zeiwgc2NhdHRlcl9lbGVtX3N6X3NldCwgcGFyYW1fZ2V0X2ludCxcbitcdFx0ICBcdTAwMjZzY2F0dGVyX2VsZW1fc3osIDA2NDQpO1xuK1xuK21vZHVsZV9wYXJhbV9uYW1lZChhbGxvd19kaW8sIHNnX2FsbG93X2RpbywgaW50LCAwNjQ0KTtcbiBcbiBzdGF0aWMgaW50IGRlZl9yZXNlcnZlZF9zaXplX3NldChjb25zdCBjaGFyICp2YWwsIGNvbnN0IHN0cnVjdCBrZXJuZWxfcGFyYW0gKmtwKVxuIHtcbkBAIC0xNjQ5LDggKzE2NzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbV9vcHMgZGVmX3Jlc2VydmVkX3NpemVfb3BzID0ge1xuIFx0LmdldFx0PSBwYXJhbV9nZXRfaW50LFxuIH07XG4gXG4tbW9kdWxlX3BhcmFtX2NiKGRlZl9yZXNlcnZlZF9zaXplLCBcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsIFx1MDAyNmRlZl9yZXNlcnZlZF9zaXplLFxuLVx0XHQgICBTX0lSVUdPIHwgU19JV1VTUik7XG4rbW9kdWxlX3BhcmFtX2NiKGRlZl9yZXNlcnZlZF9zaXplLCBcdTAwMjZkZWZfcmVzZXJ2ZWRfc2l6ZV9vcHMsIFx1MDAyNmRlZl9yZXNlcnZlZF9zaXplLCAwNjQ0KTtcbiBcbiBNT0RVTEVfQVVUSE9SKFwiRG91Z2xhcyBHaWxiZXJ0XCIpO1xuIE1PRFVMRV9ERVNDUklQVElPTihcIlNDU0kgZ2VuZXJpYyAoc2cpIGRyaXZlclwiKTtcbkBAIC0xNjY4LDExICsxNjkyLDYgQEAgaW5pdF9zZyh2b2lkKVxuIHtcbiBcdGludCByYztcbiBcbi1cdGlmIChzY2F0dGVyX2VsZW1fc3ogXHUwMDNjIFBBR0VfU0laRSkge1xuLVx0XHRzY2F0dGVyX2VsZW1fc3ogPSBQQUdFX1NJWkU7XG4tXHRcdHNjYXR0ZXJfZWxlbV9zel9wcmV2ID0gc2NhdHRlcl9lbGVtX3N6O1xuLVx0fVxuLVxuIFx0cmMgPSByZWdpc3Rlcl9jaHJkZXZfcmVnaW9uKE1LREVWKFNDU0lfR0VORVJJQ19NQUpPUiwgMCksIFxuIFx0XHRcdFx0ICAgIFNHX01BWF9ERVZTLCBcInNnXCIpO1xuIFx0aWYgKHJjKVxuQEAgLTE4NTQsOSArMTg3MywxMCBAQCBzZ19idWlsZF9zZ2F0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIGNvbnN0IFNnX2ZkICogc2ZwLCBpbnQgdGFibGVzaXplKVxuIHN0YXRpYyBpbnRcbiBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlcbiB7XG4tXHRpbnQgcmV0X3N6ID0gMCwgaSwgaywgcmVtX3N6LCBudW0sIG14X3NjX2VsZW1zO1xuK1x0aW50IHJldF9zeiA9IDAsIGksIGssIHJlbV9zeiwgbXhfc2NfZWxlbXM7XG4gXHRpbnQgc2dfdGFibGVzaXplID0gc2ZwLVx1MDAzZXBhcmVudGRwLVx1MDAzZXNnX3RhYmxlc2l6ZTtcbiBcdGludCBibGtfc2l6ZSA9IGJ1ZmZfc2l6ZSwgb3JkZXI7XG4rXHRpbnQgZWxlbV9zeiA9IHNjYXR0ZXJfZWxlbV9zejtcbiBcdGdmcF90IGdmcF9tYXNrID0gR0ZQX0FUT01JQyB8IF9fR0ZQX0NPTVAgfCBfX0dGUF9OT1dBUk4gfCBfX0dGUF9aRVJPO1xuIFxuIFx0aWYgKGJsa19zaXplIFx1MDAzYyAwKVxuQEAgLTE4NzQsMzkgKzE4OTQsMTkgQEAgc2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpXG4gXHRpZiAobXhfc2NfZWxlbXMgXHUwMDNjIDApXG4gXHRcdHJldHVybiBteF9zY19lbGVtcztcdC8qIG1vc3QgbGlrZWx5IC1FTk9NRU0gKi9cbiBcbi1cdG51bSA9IHNjYXR0ZXJfZWxlbV9zejtcbi1cdGlmICh1bmxpa2VseShudW0gIT0gc2NhdHRlcl9lbGVtX3N6X3ByZXYpKSB7XG4tXHRcdGlmIChudW0gXHUwMDNjIFBBR0VfU0laRSkge1xuLVx0XHRcdHNjYXR0ZXJfZWxlbV9zeiA9IFBBR0VfU0laRTtcbi1cdFx0XHRzY2F0dGVyX2VsZW1fc3pfcHJldiA9IFBBR0VfU0laRTtcbi1cdFx0fSBlbHNlXG4tXHRcdFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSBudW07XG4tXHR9XG4tXG4tXHRvcmRlciA9IGdldF9vcmRlcihudW0pO1xuK1x0b3JkZXIgPSBnZXRfb3JkZXIoZWxlbV9zeik7XG4gcmV0cnk6XG4gXHRyZXRfc3ogPSAxIFx1MDAzY1x1MDAzYyAoUEFHRV9TSElGVCArIG9yZGVyKTtcbiBcbiBcdGZvciAoayA9IDAsIHJlbV9zeiA9IGJsa19zaXplOyByZW1fc3ogXHUwMDNlIDAgXHUwMDI2XHUwMDI2IGsgXHUwMDNjIG14X3NjX2VsZW1zO1xuIFx0ICAgICBrKyssIHJlbV9zeiAtPSByZXRfc3opIHtcbi1cbi1cdFx0bnVtID0gKHJlbV9zeiBcdTAwM2Ugc2NhdHRlcl9lbGVtX3N6X3ByZXYpID9cbi1cdFx0XHRzY2F0dGVyX2VsZW1fc3pfcHJldiA6IHJlbV9zejtcbi1cbiBcdFx0c2NocC1cdTAwM2VwYWdlc1trXSA9IGFsbG9jX3BhZ2VzKGdmcF9tYXNrLCBvcmRlcik7XG4gXHRcdGlmICghc2NocC1cdTAwM2VwYWdlc1trXSlcbiBcdFx0XHRnb3RvIG91dDtcbiBcbi1cdFx0aWYgKG51bSA9PSBzY2F0dGVyX2VsZW1fc3pfcHJldikge1xuLVx0XHRcdGlmICh1bmxpa2VseShyZXRfc3ogXHUwMDNlIHNjYXR0ZXJfZWxlbV9zel9wcmV2KSkge1xuLVx0XHRcdFx0c2NhdHRlcl9lbGVtX3N6ID0gcmV0X3N6O1xuLVx0XHRcdFx0c2NhdHRlcl9lbGVtX3N6X3ByZXYgPSByZXRfc3o7XG4tXHRcdFx0fVxuLVx0XHR9XG4tXG4gXHRcdFNDU0lfTE9HX1RJTUVPVVQoNSwgc2dfcHJpbnRrKEtFUk5fSU5GTywgc2ZwLVx1MDAzZXBhcmVudGRwLFxuLVx0XHRcdFx0IFwic2dfYnVpbGRfaW5kaXJlY3Q6IGs9JWQsIG51bT0lZCwgcmV0X3N6PSVkXFxuXCIsXG4tXHRcdFx0XHQgaywgbnVtLCByZXRfc3opKTtcbitcdFx0XHRcdCBcIiVzOiBrPSVkLCByZXRfc3o9JWRcXG5cIixcbitcdFx0XHRcdCBfX2Z1bmNfXywgaywgcmV0X3N6KSk7XG4gXHR9XHRcdC8qIGVuZCBvZiBmb3IgbG9vcCAqL1xuIFxuIFx0c2NocC1cdTAwM2VwYWdlX29yZGVyID0gb3JkZXI7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxOToyMjoxMy4xMDM5Mzk3MDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5ODI4OTI3MjM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgU0NTSSBHZW5lcmljIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgZGlnZ2luZyBpbnRvIGBkcml2ZXJzL3Njc2kvc2cuY2AsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBob3cgdGhlIHNjYXR0ZXItZ2F0aGVyIGVsZW1lbnQgc2l6ZSAoYHNjYXR0ZXJfZWxlbV9zemApIGlzIGhhbmRsZWQuIEl0IGxvb2tzIGxpa2UgdGhleSdyZSBzaW1wbGlmeWluZyB0aGluZ3MgYSBiaXQuICBUaGV5J3ZlIGludHJvZHVjZWQgYSBgc2NhdHRlcl9lbGVtX3N6X3NldGAgZnVuY3Rpb24sIHdoaWNoIGlzIGludGVyZXN0aW5nLCBwcm9iYWJseSB0byBhbGxvdyBmb3IgZHluYW1pYyBhZGp1c3RtZW50IHZpYSBhIG1vZHVsZSBwYXJhbWV0ZXIsIHNvIHdlIG1pZ2h0IHdhbnQgdG8gc2VlIGhvdyB0aGF0J3MgdXNlZC4gIEdvb2QgcmlkZGFuY2UgdG8gdGhlIGBzY2F0dGVyX2VsZW1fc3pfcHJldmAsIHRoYXQgc2VlbXMgdW5uZWNlc3Nhcnkgbm93LlxuXG5UaGUgY29yZSBjaGFuZ2UgYXBwZWFycyB0byBiZSB3aXRoaW4gYHNnX2J1aWxkX2luZGlyZWN0YC4gIEl0IGxvb2tzIGxpa2UgdGhleSdyZSBub3cgdXNpbmcgdGhlIGRpcmVjdGx5IGNvbmZpZ3VyZWQgYHNjYXR0ZXJfZWxlbV9zemAgaW4gdGhhdCBmdW5jdGlvbiwgcmF0aGVyIHRoYW4gdGhlIHByZXZpb3VzIG1ldGhvZCB0aGF0IGludm9sdmVkIHRyYWNraW5nIGEgYHNjYXR0ZXJfZWxlbV9zel9wcmV2YC4gVGhhdCBtYWtlcyBzZW5zZTsgaXQgc2ltcGxpZmllcyB0aGUgbG9naWMuICBJJ2xsIHdhbnQgdG8gcmV2aWV3IGhvdyBgc2dfYnVpbGRfaW5kaXJlY3RgIGlzICphY3R1YWxseSogdXNpbmcgdGhpcyBzaXplLCB0aG91Z2guICBBbHNvLCBpdCBsb29rcyBsaWtlIHRoZXkndmUgZG9uZSBhIHBlcm1pc3Npb25zIGNoYW5nZSBmcm9tIGBTX0lSVUdPIHwgU19JV1VTUmAgdG8gYDA2NDRgLiAgU3RhbmRhcmQgcGVybWlzc2lvbnMgY2hhbmdlLCBub3RoaW5nIHRvIGJlIHRvbyBjb25jZXJuZWQgYWJvdXQsIGJ1dCBJIHNob3VsZCB2ZXJpZnkgdGhhdCBpdCB3b24ndCBpbXBhY3QgYW55IGRvd25zdHJlYW0gYXBwbGljYXRpb25zLlxuXG5MZXQncyBtYWtlIHN1cmUgdGhpcyBjb2RlIGlzIGV2ZW4gKnVzZWQqLiBgc2dfYnVpbGRfaW5kaXJlY3RgIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlOyB0aGF0J3MgdGhlIGNvcmUgb2YgdGhlIGAvZGV2L3NnKmAgZGV2aWNlIGZ1bmN0aW9uYWxpdHksIHNvIGl0J3MgcmVzcG9uc2libGUgZm9yIGNvbnN0cnVjdGluZyB0aGUgc2NhdHRlci1nYXRoZXIgbGlzdHMgZm9yIFNDU0kgY29tbWFuZHMuIFNvLCB0aGF0J3Mgbm90IGEgY29uY2Vybi4gVGhlIG1haW4gY29uZmlnIGlzIHVuZGVyIGBDT05GSUdfQ0hSX0RFVl9TR2AuIEknbGwgd2FudCB0byBjaGVjayBob3cgdGhlIHBhcmFtZXRlciBpcyBzZXQgYW5kIGhvdyB0aGUgbmV3IGZ1bmN0aW9uYWxpdHkgaW50ZXJhY3RzIHdpdGggYWxsIG9mIHRoZSBvdGhlciBwYXJ0cyBvZiB0aGUgZHJpdmVyLiBPdmVyYWxsLCB0aGlzIHNlZW1zIGxpa2UgYSBzb2xpZCBjbGVhbnVwIGFuZCBzaW1wbGlmaWNhdGlvbiwgbGV0J3Mgc2VlIGhvdyB3ZWxsIGl0IHdvcmtzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzM3LCJPdXRwdXRUb2tlbnMiOjMzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjYwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTk6MjI6MjIuOTMyODcwODg1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxMjQ5MzE2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJDT05GSUdfQ0hSX0RFVl9TR1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL3Njc2kvTWFrZWZpbGVcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9zY3NpL01ha2VmaWxlPTE0OT1vYmotJChDT05GSUdfQkxLX0RFVl9TUilcXHQrPSBzcl9tb2Qub1xcbmRyaXZlcnMvc2NzaS9NYWtlZmlsZToxNTA6b2JqLSQoQ09ORklHX0NIUl9ERVZfU0cpXFx0Kz0gc2cub1xcbmRyaXZlcnMvc2NzaS9NYWtlZmlsZS0xNTEtb2JqLSQoQ09ORklHX0NIUl9ERVZfU0NIKVxcdCs9IGNoLm9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDlUMTk6MjI6MjMuNjQ1MzY5NzM1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzE3NDU5NTAzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlLCB0aGUgc3lzdGVtJ3MgY29uZmlndXJhdGlvbiB2YXJpYWJsZSBpcyBgQ0hSX0RFVl9TR2AuIFJpZ2h0LCB0aGF0J3MgdGhlIG9uZS4gTm93LCBteSBpbW1lZGlhdGUgY29uY2VybiBpcyB3aGV0aGVyIGBzZ19idWlsZF9pbmRpcmVjdGAgaXMgYSBwZXJmb3JtYW5jZSBib3R0bGVuZWNrLiBUaGF0IGZ1bmN0aW9uIGlzIGNydWNpYWwgYmVjYXVzZSBpdCdzIHJlc3BvbnNpYmxlIGZvciBhbGxvY2F0aW5nIGJ1ZmZlcnMgd2hlbiBTQ1NJIGNvbW1hbmRzIGFyZSBiZWluZyBpc3N1ZWQsIGFuZCBhbnkgc2xvd2Rvd24gdGhlcmUgaXMgZ29pbmcgdG8gcmlwcGxlIG91dHdhcmRzLlxuXG5NeSBtZW50YWwgbW9kZWwgaXMgdGFraW5nIG1lIHRocm91Z2ggdGhlIGNhbGwgc3RhY2suLi4gSSBrbm93IGl0J3MgKnJlbGF0ZWQqIHRvIGBzZ19idWlsZF9zZ2F0YCwgYnV0IEkgZG9uJ3QgdGhpbmsgdGhhdCdzIHRoZSBkaXJlY3QgY2FsbGVyLiBObywgaGFuZyBvbiwgaXQncyBjYWxsZWQgZnJvbSBgc2dfYWRkX3NmcGAsIGBzZ193cml0ZWAsIG9yIGBzZ19pb2N0bGAuIFRob3NlIGFyZSBhbGwgZGlmZmVyZW50IHdheXMgdXNlcnMgaW50ZXJhY3Qgd2l0aCB0aGUgU0NTSSBzdWJzeXN0ZW0sIHNvIHRoYXQgY29uZmlybXMgdGhpcyAqaXMqIGEga2V5IGFyZWEgZm9yIHBlcmZvcm1hbmNlLiBUaW1lIHRvIGRpZyBkZWVwZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxMjYsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxOToyMjozMC44MTk5Njc0NzZaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQzNTczMjg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNnX2J1aWxkX2luZGlyZWN0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvc2NzaS9zZy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvc2NzaS9zZy5jPTE4Mj1zdGF0aWMgaW50IHNnX2ZpbmlzaF9yZW1fcmVxKFNnX3JlcXVlc3QgKiBzcnApO1xcbmRyaXZlcnMvc2NzaS9zZy5jOjE4MzpzdGF0aWMgaW50IHNnX2J1aWxkX2luZGlyZWN0KFNnX3NjYXR0ZXJfaG9sZCAqIHNjaHAsIFNnX2ZkICogc2ZwLCBpbnQgYnVmZl9zaXplKTtcXG5kcml2ZXJzL3Njc2kvc2cuYy0xODQtc3RhdGljIHNzaXplX3Qgc2dfbmV3X3JlYWQoU2dfZmQgKiBzZnAsIGNoYXIgX191c2VyICpidWYsIHNpemVfdCBjb3VudCxcXG4tLVxcbmRyaXZlcnMvc2NzaS9zZy5jPTE3MzE9c2dfc3RhcnRfcmVxKFNnX3JlcXVlc3QgKnNycCwgdW5zaWduZWQgY2hhciAqY21kKVxcbi0tXFxuZHJpdmVycy9zY3NpL3NnLmMtMTgwMi1cXHRcXHR9IGVsc2Uge1xcbmRyaXZlcnMvc2NzaS9zZy5jOjE4MDM6XFx0XFx0XFx0cmVzID0gc2dfYnVpbGRfaW5kaXJlY3QocmVxX3NjaHAsIHNmcCwgZHhmZXJfbGVuKTtcXG5kcml2ZXJzL3Njc2kvc2cuYy0xODA0LVxcdFxcdFxcdGlmIChyZXMpIHtcXG4tLVxcbmRyaXZlcnMvc2NzaS9zZy5jPTE4NzM9c3RhdGljIGludFxcbmRyaXZlcnMvc2NzaS9zZy5jOjE4NzQ6c2dfYnVpbGRfaW5kaXJlY3QoU2dfc2NhdHRlcl9ob2xkICogc2NocCwgU2dfZmQgKiBzZnAsIGludCBidWZmX3NpemUpXFxuZHJpdmVycy9zY3NpL3NnLmMtMTg3NS17XFxuLS1cXG5kcml2ZXJzL3Njc2kvc2cuYy0xODg4LVxcdFNDU0lfTE9HX1RJTUVPVVQoNCwgc2dfcHJpbnRrKEtFUk5fSU5GTywgc2ZwLVxcdTAwM2VwYXJlbnRkcCxcXG5kcml2ZXJzL3Njc2kvc2cuYzoxODg5OlxcdFxcdFxcXCJzZ19idWlsZF9pbmRpcmVjdDogYnVmZl9zaXplPSVkLCBibGtfc2l6ZT0lZFxcXFxuXFxcIixcXG5kcml2ZXJzL3Njc2kvc2cuYy0xODkwLVxcdFxcdGJ1ZmZfc2l6ZSwgYmxrX3NpemUpKTtcXG4tLVxcbmRyaXZlcnMvc2NzaS9zZy5jLTE5MTQtXFx0U0NTSV9MT0dfVElNRU9VVCg1LCBzZ19wcmludGsoS0VSTl9JTkZPLCBzZnAtXFx1MDAzZXBhcmVudGRwLFxcbmRyaXZlcnMvc2NzaS9zZy5jOjE5MTU6XFx0XFx0XFx0IFxcXCJzZ19idWlsZF9pbmRpcmVjdDoga191c2Vfc2c9JWQsIHJlbV9zej0lZFxcXFxuXFxcIixcXG5kcml2ZXJzL3Njc2kvc2cuYy0xOTE2LVxcdFxcdFxcdCBrLCByZW1fc3opKTtcXG4tLVxcbmRyaXZlcnMvc2NzaS9zZy5jPTE5ODk9c2dfYnVpbGRfcmVzZXJ2ZShTZ19mZCAqIHNmcCwgaW50IHJlcV9zaXplKVxcbi0tXFxuZHJpdmVycy9zY3NpL3NnLmMtMTk5Ny1cXHRcXHRcXHRyZXFfc2l6ZSA9IFBBR0VfU0laRTtcXG5kcml2ZXJzL3Njc2kvc2cuYzoxOTk4OlxcdFxcdGlmICgwID09IHNnX2J1aWxkX2luZGlyZWN0KHNjaHAsIHNmcCwgcmVxX3NpemUpKVxcbmRyaXZlcnMvc2NzaS9zZy5jLTE5OTktXFx0XFx0XFx0cmV0dXJuO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxOToyMjozMS4wNjM1NTA1NDJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjQzODIzNDAyOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogU0NTSSBHZW5lcmljIERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgYHNnX2J1aWxkX2luZGlyZWN0YCBsb29rcyBwcm9taXNpbmcgZm9yIGZ1enppbmcuIEl0J3MgY2FsbGVkIGZyb20gYHNnX3N0YXJ0X3JlcWAgYW5kIGBzZ19idWlsZF9yZXNlcnZlYCwgd2hpY2gsIGluIHR1cm4sIGFyZSBhc3NvY2lhdGVkIHdpdGggU0NTSSBjb21tYW5kcy4gVGhhdCBtYWtlcyBpdCBhIHNvbGlkIHRhcmdldCwgZXNwZWNpYWxseSBzaW5jZSBgc2dfc3RhcnRfcmVxYCBpcyBhIGNvbW1vbiBlbnRyeSBwb2ludC4gVGhlIGZhY3QgdGhhdCBgc2NhdHRlcl9lbGVtX3N6X3NldGAgaXMgYWxzbyBpbiB0aGUgbWl4IGFuZCBjYW4gYmUgbWFuaXB1bGF0ZWQgdGhyb3VnaCBzeXNmcyBpcyBhbm90aGVyIGFuZ2xlIEkgbmVlZCB0byBleHBsb3JlLlxuXG5JIGNvbmZpcm1lZCB0aGF0IGBDSFJfREVWX1NHYCBpcyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIHRoZSBgc2cuY2AgZHJpdmVyLCB3aGljaCBpcyBjcnVjaWFsLiBTbywgdGhhdCdzIHRoZSBzdGFydGluZyBwb2ludC5cblxuSSBuZWVkIHRvIGZvY3VzIG9uIHRoZXNlIHNwZWNpZmljIGZ1bmN0aW9uczogYHNnX2J1aWxkX2luZGlyZWN0YCBhbmQgYHNjYXR0ZXJfZWxlbV9zel9zZXRgLiBJIGNvbmZpcm1lZCBib3RoIG9mIHRoZXNlIGFyZSwgaW4gZmFjdCwgYHN0YXRpY2AsIHdoaWNoIGlzIHR5cGljYWwgZm9yIGludGVybmFsIGZ1bmN0aW9ucywgYnV0IGRvZXNuJ3QgbmVjZXNzYXJpbHkgbWVhbiB1bnJlYWNoYWJsZS4gTGV0J3Mgc2VlLi4uXG5cbk5vdywgbGV0J3MgdmVyaWZ5IHJlYWNoYWJpbGl0eS4gR29vZCBuZXdzOiBgc2dfYnVpbGRfaW5kaXJlY3RgIGlzIHJlYWNoYWJsZSB2aWEgYHNnX3N0YXJ0X3JlcWAuICBBbmQgdGhhdCdzIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgYHNnX3dyaXRlYCwgYHNnX25ld193cml0ZWAsIG9yIGBzZ19pb2N0bGAgaW50ZXJmYWNlcywgbWFraW5nIGl0IHVzZXItc3BhY2UgY29udHJvbGxlZC4gYHNjYXR0ZXJfZWxlbV9zel9zZXRgIGlzIHJlYWNoYWJsZSB2aWEgc3lzZnMsIGEgd3JpdGUgb3BlcmF0aW9uIHRvIGAvc3lzL21vZHVsZS9zZy9wYXJhbWV0ZXJzL3NjYXR0ZXJfZWxlbV9zemAuIFRoYXQncyBlYXN5IHRvIHRlc3QuXG5cbkkndmUgYWxzbyBkb3VibGUtY2hlY2tlZCB0aGUgZXhhY3QgZnVuY3Rpb24gbmFtZXMgYW5kIHBhcmFtZXRlcnMgdG8gbWFrZSBzdXJlIEknbSB0YXJnZXRpbmcgdGhlIGNvcnJlY3QgZnVuY3Rpb25zIGZvciB0aGUgdGVzdGluZyBhbmQgdGhhdCdzOiBgc3RhdGljIGludCBzZ19idWlsZF9pbmRpcmVjdChTZ19zY2F0dGVyX2hvbGQgKiBzY2hwLCBTZ19mZCAqIHNmcCwgaW50IGJ1ZmZfc2l6ZSlgIGFuZCBgc3RhdGljIGludCBzY2F0dGVyX2VsZW1fc3pfc2V0KGNvbnN0IGNoYXIgKnZhbCwgY29uc3Qgc3RydWN0IGtlcm5lbF9wYXJhbSAqa3ApYC5cblxuVGhlIGZpbmFsIHRoaW5nIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgaXMgZGVwZW5kZW5jaWVzLCBidXQgaXQgbG9va3MgbGlrZSBgQ09ORklHX1NDU0lgIGlzIHJlcXVpcmVkIGZvciBgQ0hSX0RFVl9TR2AsIGJ1dCBgQ0hSX0RFVl9TR2AgaXMgdGhlIG1haW4gdGhpbmcgaGVyZS5cblxuU28sIGhlcmUncyBteSBzdW1tYXJpemVkIHZpZXc6XG5cbioqV29ydGhGdXp6aW5nOiBUcnVlKipcblxuKipGb2N1c1N5bWJvbHM6KiogYHNnX2J1aWxkX2luZGlyZWN0YCwgYHNjYXR0ZXJfZWxlbV9zel9zZXRgXG5cbioqRW5hYmxlQ29uZmlnczoqKiBgQ0hSX0RFVl9TR2BcblxuKipSZWFzb25pbmc6KiogVGhpcyBwYXRjaCBtb2RpZmllcyBjcml0aWNhbCBsb2dpYyByZWxhdGVkIHRvIHNjYXR0ZXItZ2F0aGVyIGxpc3QgYWxsb2NhdGlvbiB3aXRoaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBpbnRyb2R1Y2VzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbi4gIFRoZXNlIGFyZSBjaGFuZ2VzIHdpdGggZGlyZWN0IHVzZXItc3BhY2UgaW50ZXJmYWNlcyAoU0NTSSBpb2N0bHMvd3JpdGVzIGFuZCBzeXNmcywgcmVzcGVjdGl2ZWx5KSBtYWtpbmcgdGhlbSBpZGVhbCB0YXJnZXRzIGZvciBmdXp6aW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MDc1LCJPdXRwdXRUb2tlbnMiOjEyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUwNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOVQxOToyMjo0My41MDE3ODgzMloiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg5NjIwNzU3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDSFJfREVWX1NHXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2dfYnVpbGRfaW5kaXJlY3RcIixcbiAgICBcInNjYXR0ZXJfZWxlbV9zel9zZXRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbG9naWMgZm9yIGFsbG9jYXRpbmcgc2NhdHRlci1nYXRoZXIgbGlzdHMgaW4gdGhlIFNDU0kgZ2VuZXJpYyBkcml2ZXIgKGBzZ19idWlsZF9pbmRpcmVjdGApIGFuZCBhZGRzIGEgbmV3IG1vZHVsZSBwYXJhbWV0ZXIgc2V0dGVyIChgc2NhdHRlcl9lbGVtX3N6X3NldGApIHdpdGggdmFsaWRhdGlvbiBsb2dpYy4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyB0aGF0IGNhbiBiZSB0cmlnZ2VyZWQgZnJvbSB1c2VyIHNwYWNlIHZpYSBTQ1NJIGlvY3Rscy93cml0ZXMgYW5kIHN5c2ZzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNIUl9ERVZfU0dcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzZ19idWlsZF9pbmRpcmVjdFwiLFxuICAgIFwic2NhdHRlcl9lbGVtX3N6X3NldFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBsb2dpYyBmb3IgYWxsb2NhdGluZyBzY2F0dGVyLWdhdGhlciBsaXN0cyBpbiB0aGUgU0NTSSBnZW5lcmljIGRyaXZlciAoYHNnX2J1aWxkX2luZGlyZWN0YCkgYW5kIGFkZHMgYSBuZXcgbW9kdWxlIHBhcmFtZXRlciBzZXR0ZXIgKGBzY2F0dGVyX2VsZW1fc3pfc2V0YCkgd2l0aCB2YWxpZGF0aW9uIGxvZ2ljLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIHRoYXQgY2FuIGJlIHRyaWdnZXJlZCBmcm9tIHVzZXIgc3BhY2UgdmlhIFNDU0kgaW9jdGxzL3dyaXRlcyBhbmQgc3lzZnMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfmxk[1] Phase: Succeeded StartedAt: 2026-07-09 19:23:40 +0000 UTC FinishedAt: 2026-07-09 19:23:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-09 19:23:40 +0000 UTC FinishedAt: 2026-07-09 19:23:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2] Phase: Succeeded StartedAt: 2026-07-09 19:23:40 +0000 UTC FinishedAt: 2026-07-10 00:04:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-09 19:23:40 +0000 UTC FinishedAt: 2026-07-10 00:04:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-09 19:23:40 +0000 UTC FinishedAt: 2026-07-09 19:24:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-09 19:23:40 +0000 UTC FinishedAt: 2026-07-09 19:24:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowvfmxk/series-workflowvfmxk-convert-artifact-3623302074/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-09 19:24:37 +0000 UTC FinishedAt: 2026-07-09 20:13:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-09 19:24:37 +0000 UTC FinishedAt: 2026-07-09 20:13:03 +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:*930ed602-006f-4b28-bfef-97f27a9e9e12,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-workflowvfmxk/series-workflowvfmxk-convert-artifact-3623302074/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": "17c03304-81f0-46a6-b0f3-a604c6ef1696", "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-workflowvfmxk/series-workflowvfmxk-build-action-305424744/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-09 19:24:37 +0000 UTC FinishedAt: 2026-07-09 20:12:53 +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:*930ed602-006f-4b28-bfef-97f27a9e9e12,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-workflowvfmxk/series-workflowvfmxk-convert-artifact-3623302074/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": "17c03304-81f0-46a6-b0f3-a604c6ef1696", "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-workflowvfmxk/series-workflowvfmxk-build-action-305424744/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-09 20:13:03 +0000 UTC FinishedAt: 2026-07-09 20:13:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-09 20:13:03 +0000 UTC FinishedAt: 2026-07-09 20:13:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-09 20:13:03 +0000 UTC FinishedAt: 2026-07-09 20:13:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-09 20:13:03 +0000 UTC FinishedAt: 2026-07-09 20:13:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowvfmxk/series-workflowvfmxk-convert-artifact-1488472341/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-09 20:13:24 +0000 UTC FinishedAt: 2026-07-09 20:15:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-09 20:13:24 +0000 UTC FinishedAt: 2026-07-09 20:15:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*17c03304-81f0-46a6-b0f3-a604c6ef1696,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-workflowvfmxk/series-workflowvfmxk-build-action-305424744/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-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-09 20:15:46 +0000 UTC FinishedAt: 2026-07-09 20:15:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-09 20:15:46 +0000 UTC FinishedAt: 2026-07-09 20:15:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-09 20:15:46 +0000 UTC FinishedAt: 2026-07-09 20:59:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-09 20:15:46 +0000 UTC FinishedAt: 2026-07-09 20:59:14 +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:*930ed602-006f-4b28-bfef-97f27a9e9e12,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-workflowvfmxk/series-workflowvfmxk-convert-artifact-1488472341/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": "06ebf48c-b904-4b40-bb63-d7c4a3afeb6f", "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-workflowvfmxk/series-workflowvfmxk-build-action-1602678689/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-09 20:15:46 +0000 UTC FinishedAt: 2026-07-09 20:59:04 +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:*930ed602-006f-4b28-bfef-97f27a9e9e12,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-workflowvfmxk/series-workflowvfmxk-convert-artifact-1488472341/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": "06ebf48c-b904-4b40-bb63-d7c4a3afeb6f", "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-workflowvfmxk/series-workflowvfmxk-build-action-1602678689/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-09 20:59:14 +0000 UTC FinishedAt: 2026-07-09 20:59:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-09 20:59:14 +0000 UTC FinishedAt: 2026-07-09 20:59:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-09 20:59:14 +0000 UTC FinishedAt: 2026-07-09 21:01:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-09 20:59:14 +0000 UTC FinishedAt: 2026-07-09 21:01:03 +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:*06ebf48c-b904-4b40-bb63-d7c4a3afeb6f,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-workflowvfmxk/series-workflowvfmxk-build-action-1602678689/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-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-09 21:01:14 +0000 UTC FinishedAt: 2026-07-10 00:04:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-09 21:01:14 +0000 UTC FinishedAt: 2026-07-09 21:01:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-09 21:01:14 +0000 UTC FinishedAt: 2026-07-09 21:01:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-09 21:01:15 +0000 UTC FinishedAt: 2026-07-10 00:04:13 +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":["sg_build_indirect","scatter_elem_sz_set"],"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:*17c03304-81f0-46a6-b0f3-a604c6ef1696,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*06ebf48c-b904-4b40-bb63-d7c4a3afeb6f,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-workflowvfmxk/series-workflowvfmxk-build-action-305424744/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-workflowvfmxk/series-workflowvfmxk-build-action-1602678689/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-09 21:01:15 +0000 UTC FinishedAt: 2026-07-09 21:01:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-09 21:01:15 +0000 UTC FinishedAt: 2026-07-09 21:01:21 +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":["sg_build_indirect","scatter_elem_sz_set"],"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-workflowvfmxk/series-workflowvfmxk-convert-artifact-2451258618/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-09 21:01:15 +0000 UTC FinishedAt: 2026-07-09 21:01:15 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-09 21:01:26 +0000 UTC FinishedAt: 2026-07-10 00:04:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvfmxk[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["sg_build_indirect","scatter_elem_sz_set"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2c7c88a412aa6d09cd04b414211b4ef8553b5309","config_name":"upstream-apparmor-kasan.config","enable_configs":["CHR_DEV_SG"],"series_id":"e98fb97a-392f-4194-bb5a-c74d37c3684b","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-09 21:01:26 +0000 UTC FinishedAt: 2026-07-10 00:04:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*17c03304-81f0-46a6-b0f3-a604c6ef1696,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*06ebf48c-b904-4b40-bb63-d7c4a3afeb6f,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-workflowvfmxk/series-workflowvfmxk-build-action-305424744/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-workflowvfmxk/series-workflowvfmxk-build-action-1602678689/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-workflowvfmxk/series-workflowvfmxk-convert-artifact-2451258618/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,}