Name: series-workflow7z6mx Phase: Succeeded StartedAt: 2026-07-20 19:03:56 +0000 UTC FinishedAt: 2026-07-20 23:46:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[0] Phase: Succeeded StartedAt: 2026-07-20 19:03:56 +0000 UTC FinishedAt: 2026-07-20 19:27:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[0].run-triage Phase: Succeeded StartedAt: 2026-07-20 19:03:56 +0000 UTC FinishedAt: 2026-07-20 19:27:26 +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": "1590cf0329716306e948a8fc29f1d3ee87d3989f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "XFS_FS", "XFS_RT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "1590cf0329716306e948a8fc29f1d3ee87d3989f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "XFS_FS", "XFS_RT" ], "series_id": "c038cfba-9f76-497a-8eb8-b21d337a8021" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "xfs_update_bdi_rahead", "xfs_restore_bdi_rahead" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIwIDE5OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1hGU19GUyYjMzQ7LAogICAgJiMzNDtYRlNfUlQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4ZnNfdXBkYXRlX2JkaV9yYWhlYWQmIzM0OywKICAgICYjMzQ7eGZzX3Jlc3RvcmVfYmRpX3JhaGVhZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBYRlMgbW91bnQgYW5kIHVubW91bnQgcGF0aHMgdG8gYWRqdXN0IHRoZSBiYWNraW5nIGRldmljZSBpbmZvIChCREkpIHJlYWRhaGVhZCBhbmQgaW9fcGFnZXMgc2V0dGluZ3Mgd2hlbiBhIHJlYWx0aW1lIGRldmljZSBpcyBwcmVzZW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZmlsZXN5c3RlbSBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2YWQ4MWJiN2UzZTFiZWY5MTkxMWRkOGYzZDAzOWUwY2FkZmRlNDYzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMTk6MjY6MDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19tb3VudC5oIGIvZnMveGZzL3hmc19tb3VudC5oXG5pbmRleCA2NmEwMmQxYjlhZDdhMS4uMjE2YTM4YTM1NGU3YzIgMTAwNjQ0XG4tLS0gYS9mcy94ZnMveGZzX21vdW50LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL3hmcy94ZnNfbW91bnQuaFxuQEAgLTM0OSw2ICYjNDM7MzQ5LDEzIEBAIHR5cGVkZWYgc3RydWN0IHhmc19tb3VudCB7XG4gXG4gXHQvKiBJbmRleCBvZiB1dWlkIHJlY29yZCBpbiB0aGUgdXVpZCB4YXJyYXkuICovXG4gXHR1bnNpZ25lZCBpbnRcdFx0bV91dWlkX3RhYmxlX2luZGV4O1xuJiM0MztcbiYjNDM7XHQvKlxuJiM0MztcdCAqIE9sZCBpb19wYWdlcy9yYV9wYWdlcyB2YWx1ZWQgaW4gdGhlIG1haW4gYmRldiBCREksIGFuZCBvdXIgaW5pdGlhbFxuJiM0MztcdCAqIGNhbGN1bGF0ZWQgdmFsdWVzLlxuJiM0MztcdCAqL1xuJiM0MztcdHVuc2lnbmVkIGxvbmdcdFx0bV9vbGRfaW9fcGFnZXMsIG1faW5pdGlhbF9pb19wYWdlcztcbiYjNDM7XHR1bnNpZ25lZCBsb25nXHRcdG1fb2xkX3JhX3BhZ2VzLCBtX2luaXRpYWxfcmFfcGFnZXM7XG4gfSB4ZnNfbW91bnRfdDtcbiBcbiAjZGVmaW5lIE1fSUdFTyhtcClcdFx0KFx1MDAyNihtcCktXHUwMDNlbV9pbm9fZ2VvKVxuZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfc3VwZXIuYyBiL2ZzL3hmcy94ZnNfc3VwZXIuY1xuaW5kZXggODUzMWQ1MjZmYzQ0MDkuLjYzYzRiY2JlNmMyYmM0IDEwMDY0NFxuLS0tIGEvZnMveGZzL3hmc19zdXBlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy94ZnMveGZzX3N1cGVyLmNcbkBAIC01NDgsNiAmIzQzOzU0OCw1MiBAQCB4ZnNfb3Blbl9kZXZpY2VzKFxuIFx0cmV0dXJuIGVycm9yO1xuIH1cbiBcbiYjNDM7LypcbiYjNDM7ICogV2hlbiB1c2luZyBhIFJUIGRldmljZSBzb21lIG9yIGFsbCBkYXRhIEkvTyBpcyB1c2luZyB0aGUgUlQgZGV2aWNlLCBidXRcbiYjNDM7ICogdGhlIEJESSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgbWFpbiBkYXRhIGRldmljZS4gIFdoZW4gdGhlIHVuZGVybHlpbmcgYmxvY2tcbiYjNDM7ICogZGV2aWNlIGZvciB0aGUgUlQgZGV2aWNlIGhhcyBsYXJnZXIgSS9PIHNpemVzLCB0aGUgQkRJIHNldHRpbmdzIG1pZ2h0IGJlXG4mIzQzOyAqIGluY29ycmVjdCwgd2hpY2ggaXMgZXNwZWNpYWxseSBiYWQgaWYgdGhlIG1haW4gZGV2aWNlIGlzIGEgU1NEIGFuZCB0aGVcbiYjNDM7ICogUlQgZGV2aWNlIGlzIGEgSERELCBhcyB0aGUgaW9fb3B0IGZpeHVwIGluIGJsa19hcHBseV9iZGlfbGltaXRzIGlzIG1pc3NpbmdcbiYjNDM7ICogZm9yIHRoaXMgY2FzZS5cbiYjNDM7ICpcbiYjNDM7ICogVXBkYXRlIHRoZSBCREkgdmFsdWVzIHRvIHRoZSBtYXggb2YgdGhlIGRhdGEgYW5kIFJUIGRldmljZSB0byBjb3ZlciBvdXJcbiYjNDM7ICogYmFzZXMuXG4mIzQzOyAqL1xuJiM0MztzdGF0aWMgdm9pZFxuJiM0Mzt4ZnNfdXBkYXRlX2JkaV9yYWhlYWQoXG4mIzQzO1x0c3RydWN0IHhmc19tb3VudFx0Km1wKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGJhY2tpbmdfZGV2X2luZm9cdCpydF9iZGkgPVxuJiM0MztcdFx0bXAtXHUwMDNlbV9ydGRldl90YXJncC1cdTAwM2VidF9iZGV2LVx1MDAzZWJkX2Rpc2stXHUwMDNlYmRpO1xuJiM0MztcdHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvXHQqc2JfYmRpID0gbXAtXHUwMDNlbV9zdXBlci1cdTAwM2VzX2JkaTtcbiYjNDM7XG4mIzQzO1x0bXAtXHUwMDNlbV9vbGRfaW9fcGFnZXMgPSBzYl9iZGktXHUwMDNlaW9fcGFnZXM7XG4mIzQzO1x0bXAtXHUwMDNlbV9vbGRfcmFfcGFnZXMgPSBzYl9iZGktXHUwMDNlcmFfcGFnZXM7XG4mIzQzO1xuJiM0MztcdHNiX2JkaS1cdTAwM2Vpb19wYWdlcyA9IG1wLVx1MDAzZW1faW5pdGlhbF9pb19wYWdlcyA9XG4mIzQzO1x0XHRtYXgoc2JfYmRpLVx1MDAzZWlvX3BhZ2VzLCBydF9iZGktXHUwMDNlaW9fcGFnZXMpO1xuJiM0MztcdHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9IG1wLVx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcyA9XG4mIzQzO1x0XHRtYXgoc2JfYmRpLVx1MDAzZXJhX3BhZ2VzLCBydF9iZGktXHUwMDNlcmFfcGFnZXMpO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZFxuJiM0Mzt4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkKFxuJiM0MztcdHN0cnVjdCB4ZnNfbW91bnRcdCptcClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvXHQqc2JfYmRpID0gbXAtXHUwMDNlbV9zdXBlci1cdTAwM2VzX2JkaTtcbiYjNDM7XG4mIzQzO1x0aWYgKHNiX2JkaS1cdTAwM2Vpb19wYWdlcyA9PSBtcC1cdTAwM2VtX2luaXRpYWxfaW9fcGFnZXMpXG4mIzQzO1x0XHRzYl9iZGktXHUwMDNlaW9fcGFnZXMgPSBtcC1cdTAwM2VtX29sZF9pb19wYWdlcztcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHR4ZnNfaW5mbyhtcCwgXCYjMzQ7aW9fcGFnZXMgY2hhbmdlZCBmcm9tICVsdSB0byAlbHUsIG5vdCByZXN0b3JpbmcuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdG1wLVx1MDAzZW1faW5pdGlhbF9pb19wYWdlcywgc2JfYmRpLVx1MDAzZWlvX3BhZ2VzKTtcbiYjNDM7XHRpZiAoc2JfYmRpLVx1MDAzZXJhX3BhZ2VzID09IG1wLVx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcylcbiYjNDM7XHRcdHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9IG1wLVx1MDAzZW1fb2xkX3JhX3BhZ2VzO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdHhmc19pbmZvKG1wLCBcJiMzNDtyYV9wYWdlcyBjaGFuZ2VkIGZyb20gJWx1IHRvICVsdSwgbm90IHJlc3RvcmluZy5cJiMzNDssXG4mIzQzO1x0XHRcdFx0bXAtXHUwMDNlbV9pbml0aWFsX3JhX3BhZ2VzLCBzYl9iZGktXHUwMDNlcmFfcGFnZXMpO1xuJiM0Mzt9XG4mIzQzO1xuIC8qXG4gICogU2V0dXAgeGZzX21vdW50IGJ1ZmZlciB0YXJnZXQgcG9pbnRlcnMgYmFzZWQgb24gc3VwZXJibG9ja1xuICAqL1xuQEAgLTU4NSw2ICYjNDM7NjMxLDcgQEAgeGZzX3NldHVwX2RldmljZXMoXG4gXHRcdFx0XHRtcC1cdTAwM2VtX3NiLnNiX3NlY3RzaXplLCBtcC1cdTAwM2VtX3NiLnNiX3JibG9ja3MpO1xuIFx0XHRpZiAoZXJyb3IpXG4gXHRcdFx0cmV0dXJuIGVycm9yO1xuJiM0MztcdFx0eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTtcbiBcdH1cbiBcbiBcdHJldHVybiAwO1xuQEAgLTIyODMsOCAmIzQzOzIzMzAsMTIgQEAgc3RhdGljIHZvaWRcbiB4ZnNfa2lsbF9zYihcbiBcdHN0cnVjdCBzdXBlcl9ibG9ja1x0XHQqc2IpXG4ge1xuJiM0MztcdHN0cnVjdCB4ZnNfbW91bnRcdFx0Km1wID0gWEZTX00oc2IpO1xuJiM0MztcbiYjNDM7XHRpZiAobXAtXHUwMDNlbV9ydGRldl90YXJncCBcdTAwMjZcdTAwMjYgbXAtXHUwMDNlbV9ydGRldl90YXJncCAhPSBtcC1cdTAwM2VtX2RkZXZfdGFyZ3ApXG4mIzQzO1x0XHR4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkKG1wKTtcbiBcdGtpbGxfYmxvY2tfc3VwZXIoc2IpO1xuLVx0eGZzX21vdW50X2ZyZWUoWEZTX00oc2IpKTtcbiYjNDM7XHR4ZnNfbW91bnRfZnJlZShtcCk7XG4gfVxuIFxuIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB4ZnNfZnNfdHlwZSA9IHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxOToyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7WEZTX0ZTJiMzNDssCiAgICAmIzM0O1hGU19SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmc191cGRhdGVfYmRpX3JhaGVhZCYjMzQ7LAogICAgJiMzNDt4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFhGUyBtb3VudCBhbmQgdW5tb3VudCBwYXRocyB0byBhZGp1c3QgdGhlIGJhY2tpbmcgZGV2aWNlIGluZm8gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuIGEgcmVhbHRpbWUgZGV2aWNlIGlzIHByZXNlbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmFkODFiYjdlM2UxYmVmOTE5MTFkZDhmM2QwMzllMGNhZGZkZTQ2MwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDIwIDE5OjI2OjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19tb3VudC5oIGIvZnMveGZzL3hmc19tb3VudC5oCmluZGV4IDY2YTAyZDFiOWFkN2ExLi4yMTZhMzhhMzU0ZTdjMiAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc19tb3VudC5oCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL3hmcy94ZnNfbW91bnQuaApAQCAtMzQ5LDYgJiM0MzszNDksMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX21vdW50IHsKIAogCS8qIEluZGV4IG9mIHV1aWQgcmVjb3JkIGluIHRoZSB1dWlkIHhhcnJheS4gKi8KIAl1bnNpZ25lZCBpbnQJCW1fdXVpZF90YWJsZV9pbmRleDsKJiM0MzsKJiM0MzsJLyoKJiM0MzsJICogT2xkIGlvX3BhZ2VzL3JhX3BhZ2VzIHZhbHVlZCBpbiB0aGUgbWFpbiBiZGV2IEJESSwgYW5kIG91ciBpbml0aWFsCiYjNDM7CSAqIGNhbGN1bGF0ZWQgdmFsdWVzLgomIzQzOwkgKi8KJiM0MzsJdW5zaWduZWQgbG9uZwkJbV9vbGRfaW9fcGFnZXMsIG1faW5pdGlhbF9pb19wYWdlczsKJiM0MzsJdW5zaWduZWQgbG9uZwkJbV9vbGRfcmFfcGFnZXMsIG1faW5pdGlhbF9yYV9wYWdlczsKIH0geGZzX21vdW50X3Q7CiAKICNkZWZpbmUgTV9JR0VPKG1wKQkJKCZhbXA7KG1wKS0mZ3Q7bV9pbm9fZ2VvKQpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19zdXBlci5jIGIvZnMveGZzL3hmc19zdXBlci5jCmluZGV4IDg1MzFkNTI2ZmM0NDA5Li42M2M0YmNiZTZjMmJjNCAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc19zdXBlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL3hmcy94ZnNfc3VwZXIuYwpAQCAtNTQ4LDYgJiM0Mzs1NDgsNTIgQEAgeGZzX29wZW5fZGV2aWNlcygKIAlyZXR1cm4gZXJyb3I7CiB9CiAKJiM0MzsvKgomIzQzOyAqIFdoZW4gdXNpbmcgYSBSVCBkZXZpY2Ugc29tZSBvciBhbGwgZGF0YSBJL08gaXMgdXNpbmcgdGhlIFJUIGRldmljZSwgYnV0CiYjNDM7ICogdGhlIEJESSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgbWFpbiBkYXRhIGRldmljZS4gIFdoZW4gdGhlIHVuZGVybHlpbmcgYmxvY2sKJiM0MzsgKiBkZXZpY2UgZm9yIHRoZSBSVCBkZXZpY2UgaGFzIGxhcmdlciBJL08gc2l6ZXMsIHRoZSBCREkgc2V0dGluZ3MgbWlnaHQgYmUKJiM0MzsgKiBpbmNvcnJlY3QsIHdoaWNoIGlzIGVzcGVjaWFsbHkgYmFkIGlmIHRoZSBtYWluIGRldmljZSBpcyBhIFNTRCBhbmQgdGhlCiYjNDM7ICogUlQgZGV2aWNlIGlzIGEgSERELCBhcyB0aGUgaW9fb3B0IGZpeHVwIGluIGJsa19hcHBseV9iZGlfbGltaXRzIGlzIG1pc3NpbmcKJiM0MzsgKiBmb3IgdGhpcyBjYXNlLgomIzQzOyAqCiYjNDM7ICogVXBkYXRlIHRoZSBCREkgdmFsdWVzIHRvIHRoZSBtYXggb2YgdGhlIGRhdGEgYW5kIFJUIGRldmljZSB0byBjb3ZlciBvdXIKJiM0MzsgKiBiYXNlcy4KJiM0MzsgKi8KJiM0MztzdGF0aWMgdm9pZAomIzQzO3hmc191cGRhdGVfYmRpX3JhaGVhZCgKJiM0MzsJc3RydWN0IHhmc19tb3VudAkqbXApCiYjNDM7ewomIzQzOwlzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbwkqcnRfYmRpID0KJiM0MzsJCW1wLSZndDttX3J0ZGV2X3RhcmdwLSZndDtidF9iZGV2LSZndDtiZF9kaXNrLSZndDtiZGk7CiYjNDM7CXN0cnVjdCBiYWNraW5nX2Rldl9pbmZvCSpzYl9iZGkgPSBtcC0mZ3Q7bV9zdXBlci0mZ3Q7c19iZGk7CiYjNDM7CiYjNDM7CW1wLSZndDttX29sZF9pb19wYWdlcyA9IHNiX2JkaS0mZ3Q7aW9fcGFnZXM7CiYjNDM7CW1wLSZndDttX29sZF9yYV9wYWdlcyA9IHNiX2JkaS0mZ3Q7cmFfcGFnZXM7CiYjNDM7CiYjNDM7CXNiX2JkaS0mZ3Q7aW9fcGFnZXMgPSBtcC0mZ3Q7bV9pbml0aWFsX2lvX3BhZ2VzID0KJiM0MzsJCW1heChzYl9iZGktJmd0O2lvX3BhZ2VzLCBydF9iZGktJmd0O2lvX3BhZ2VzKTsKJiM0MzsJc2JfYmRpLSZndDtyYV9wYWdlcyA9IG1wLSZndDttX2luaXRpYWxfcmFfcGFnZXMgPQomIzQzOwkJbWF4KHNiX2JkaS0mZ3Q7cmFfcGFnZXMsIHJ0X2JkaS0mZ3Q7cmFfcGFnZXMpOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgdm9pZAomIzQzO3hmc19yZXN0b3JlX2JkaV9yYWhlYWQoCiYjNDM7CXN0cnVjdCB4ZnNfbW91bnQJKm1wKQomIzQzO3sKJiM0MzsJc3RydWN0IGJhY2tpbmdfZGV2X2luZm8JKnNiX2JkaSA9IG1wLSZndDttX3N1cGVyLSZndDtzX2JkaTsKJiM0MzsKJiM0MzsJaWYgKHNiX2JkaS0mZ3Q7aW9fcGFnZXMgPT0gbXAtJmd0O21faW5pdGlhbF9pb19wYWdlcykKJiM0MzsJCXNiX2JkaS0mZ3Q7aW9fcGFnZXMgPSBtcC0mZ3Q7bV9vbGRfaW9fcGFnZXM7CiYjNDM7CWVsc2UKJiM0MzsJCXhmc19pbmZvKG1wLCAmIzM0O2lvX3BhZ2VzIGNoYW5nZWQgZnJvbSAlbHUgdG8gJWx1LCBub3QgcmVzdG9yaW5nLiYjMzQ7LAomIzQzOwkJCQltcC0mZ3Q7bV9pbml0aWFsX2lvX3BhZ2VzLCBzYl9iZGktJmd0O2lvX3BhZ2VzKTsKJiM0MzsJaWYgKHNiX2JkaS0mZ3Q7cmFfcGFnZXMgPT0gbXAtJmd0O21faW5pdGlhbF9yYV9wYWdlcykKJiM0MzsJCXNiX2JkaS0mZ3Q7cmFfcGFnZXMgPSBtcC0mZ3Q7bV9vbGRfcmFfcGFnZXM7CiYjNDM7CWVsc2UKJiM0MzsJCXhmc19pbmZvKG1wLCAmIzM0O3JhX3BhZ2VzIGNoYW5nZWQgZnJvbSAlbHUgdG8gJWx1LCBub3QgcmVzdG9yaW5nLiYjMzQ7LAomIzQzOwkJCQltcC0mZ3Q7bV9pbml0aWFsX3JhX3BhZ2VzLCBzYl9iZGktJmd0O3JhX3BhZ2VzKTsKJiM0Mzt9CiYjNDM7CiAvKgogICogU2V0dXAgeGZzX21vdW50IGJ1ZmZlciB0YXJnZXQgcG9pbnRlcnMgYmFzZWQgb24gc3VwZXJibG9jawogICovCkBAIC01ODUsNiAmIzQzOzYzMSw3IEBAIHhmc19zZXR1cF9kZXZpY2VzKAogCQkJCW1wLSZndDttX3NiLnNiX3NlY3RzaXplLCBtcC0mZ3Q7bV9zYi5zYl9yYmxvY2tzKTsKIAkJaWYgKGVycm9yKQogCQkJcmV0dXJuIGVycm9yOwomIzQzOwkJeGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTIyODMsOCAmIzQzOzIzMzAsMTIgQEAgc3RhdGljIHZvaWQKIHhmc19raWxsX3NiKAogCXN0cnVjdCBzdXBlcl9ibG9jawkJKnNiKQogewomIzQzOwlzdHJ1Y3QgeGZzX21vdW50CQkqbXAgPSBYRlNfTShzYik7CiYjNDM7CiYjNDM7CWlmIChtcC0mZ3Q7bV9ydGRldl90YXJncCAmYW1wOyZhbXA7IG1wLSZndDttX3J0ZGV2X3RhcmdwICE9IG1wLSZndDttX2RkZXZfdGFyZ3ApCiYjNDM7CQl4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkKG1wKTsKIAlraWxsX2Jsb2NrX3N1cGVyKHNiKTsKLQl4ZnNfbW91bnRfZnJlZShYRlNfTShzYikpOwomIzQzOwl4ZnNfbW91bnRfZnJlZShtcCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB4ZnNfZnNfdHlwZSA9IHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAxMgoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipYRlMgUmVhZGFoZWFkIE1hbmFnZW1lbnQgZm9yIFJlYWx0aW1lIERldmljZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBYRlMgZmlsZXN5c3RlbS4gSXQgaW50cm9kdWNlcyB0aGVzZSBuZXcgZnVuY3Rpb25zLCBgeGZzX3VwZGF0ZV9iZGlfcmFoZWFkYCBhbmQgYHhmc19yZXN0b3JlX2JkaV9yYWhlYWRgLCByaWdodCBpbnRvIGBmcy94ZnMveGZzX3N1cGVyLmNgLiBUaGUgY29yZSBpZGVhIGlzIHRvIHR3ZWFrIHRoZSBiYWNraW5nX2Rldl9pbmZvIChCREkpIHJlYWRhaGVhZCBhbmQgaW9fcGFnZXMgc2V0dGluZ3Mgd2hlbiBhbiBYRlMgZmlsZXN5c3RlbSBpcyBtb3VudGVkIHdpdGggYSByZWFsdGltZSBkZXZpY2UsIHNwZWNpZmljYWxseSB3aGVuIGBtX3J0ZGV2X3RhcmdwYCBpcyBpbnZvbHZlZC4gVGhpcyBpcyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGZ1bmN0aW9uYWwgY2hhbmdlLCBpbXBhY3RpbmcgdGhlIG1vdW50IGFuZCB1bm1vdW50IHBhdGhzIHdpdGhpbiBYRlMuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gbWFrZSBzdXJlIHRoaXMgYWxsIGxpbmVzIHVwIHdpdGggdGhlIHJlbGV2YW50IFhGUyBjb25maWd1cmF0aW9ucy4gV2Uga25vdyBYRlMgaXRzZWxmIGlzIGVuYWJsZWQgdGhyb3VnaCBgQ09ORklHX1hGU19GU2AsIGJ1dCB0aGUgcmVhbHRpbWUgc3Vidm9sdW1lIGFzcGVjdCB0eXBpY2FsbHkgZGVwZW5kcyBvbiBgQ09ORklHX1hGU19SVGAuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYENPTkZJR19YRlNfUlRgIGlzIGluZGVlZCBhIGRlcGVuZGVuY3kgaGVyZS4gSXQmIzM5O3MgY3J1Y2lhbCB3ZSYjMzk7cmUgbm90IG1pc3NpbmcgYW55IGNvbmZpZ3VyYXRpb24gc3RlcHMgdG8gZW5zdXJlIGV2ZXJ5dGhpbmcgYmVoYXZlcyBhcyBleHBlY3RlZCB3aXRoIHRoZXNlIHJlYWx0aW1lIGRldmljZXMuIEdvdHRhIG1ha2Ugc3VyZSB3ZSBjb3ZlciBhbGwgdGhlIGJhc2VzIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE5OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19YRlNfUlQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy94ZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3hmcy9NYWtlZmlsZT0xNj14ZnMteVx0XHRcdFx0JiM0Mzs9ICQoYWRkcHJlZml4IGxpYnhmcy8sIFxcXG4tLVxuZnMveGZzL01ha2VmaWxlLTYzLSMgeGZzX3J0Yml0bWFwIGlzIHNoYXJlZCB3aXRoIGxpYnhmc1xuZnMveGZzL01ha2VmaWxlOjY0Onhmcy0kKENPTkZJR19YRlNfUlQpXHRcdCYjNDM7PSAkKGFkZHByZWZpeCBsaWJ4ZnMvLCBcXFxuZnMveGZzL01ha2VmaWxlLTY1LVx0XHRcdFx0ICAgeGZzX3J0Yml0bWFwLm8gXFxcbi0tXG5mcy94ZnMvTWFrZWZpbGU9MTMzPXhmcy0kKENPTkZJR19YRlNfUVVPVEEpXHRcdCYjNDM7PSB4ZnNfZHF1b3QubyBcXFxuLS1cbmZzL3hmcy9NYWtlZmlsZS0xNDEtIyB4ZnNfcnRiaXRtYXAgaXMgc2hhcmVkIHdpdGggbGlieGZzXG5mcy94ZnMvTWFrZWZpbGU6MTQyOnhmcy0kKENPTkZJR19YRlNfUlQpXHRcdCYjNDM7PSB4ZnNfcnRhbGxvYy5vIFxcXG5mcy94ZnMvTWFrZWZpbGUtMTQzLVx0XHRcdFx0ICAgeGZzX3pvbmVfYWxsb2MubyBcXFxuLS1cbmZzL3hmcy9NYWtlZmlsZT0yMDA9eGZzLSQoQ09ORklHX1hGU19PTkxJTkVfU0NSVUJfU1RBVFMpICYjNDM7PSBzY3J1Yi9zdGF0cy5vXG5mcy94ZnMvTWFrZWZpbGUtMjAxLVxuZnMveGZzL01ha2VmaWxlOjIwMjp4ZnMtJChDT05GSUdfWEZTX1JUKVx0XHQmIzQzOz0gJChhZGRwcmVmaXggc2NydWIvLCBcXFxuZnMveGZzL01ha2VmaWxlLTIwMy1cdFx0XHRcdCAgIHJnc3VwZXIubyBcXFxuLS1cbmZzL3hmcy9NYWtlZmlsZT0yMTg9eGZzLXlcdFx0XHRcdCYjNDM7PSAkKGFkZHByZWZpeCBzY3J1Yi8sIFxcXG4tLVxuZnMveGZzL01ha2VmaWxlLTI0My1cbmZzL3hmcy9NYWtlZmlsZToyNDQ6eGZzLSQoQ09ORklHX1hGU19SVClcdFx0JiM0Mzs9ICQoYWRkcHJlZml4IHNjcnViLywgXFxcbmZzL3hmcy9NYWtlZmlsZS0yNDUtXHRcdFx0XHQgICBydGJpdG1hcF9yZXBhaXIubyBcXFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmg9Mzc4PXR5cGVkZWYgaW50ICgqeGZzX3J0YWxsb2NfcXVlcnlfcmFuZ2VfZm4pKFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtMzgzLVxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaDozODQ6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtMzg1LXZvaWQgeGZzX3J0YnVmX2NhY2hlX3JlbHNlKHN0cnVjdCB4ZnNfcnRhbGxvY19hcmdzICphcmdzKTtcbi0tXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oPTQyNz1pbnQgeGZzX3J0c3VtbWFyeV9jcmVhdGUoc3RydWN0IHhmc19ydGdyb3VwICpydGcsIHN0cnVjdCB4ZnNfaW5vZGUgKmlwLFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtNDI5LVxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaDo0MzA6I2Vsc2UgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaC00MzEtIyBkZWZpbmUgeGZzX3J0ZnJlZV9leHRlbnQodCxiLGwpXHRcdFx0KC1FTk9TWVMpXG4tLVxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaD00NDY9eGZzX3J0Yml0bWFwX2Jsb2NrY291bnRfbGVuKHN0cnVjdCB4ZnNfbW91bnQgKm1wLCB4ZnNfcnRieGxlbl90IHJ0ZXh0ZW50cylcbi0tXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oLTQ1MC19XG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oOjQ1MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaC00NTItXG4tLVxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oPTI1OT14ZnNfZGFkZHJfdG9fcnRiKFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Z3JvdXAuaC0yNzctXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg6Mjc4OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmgtMjc5LWludCB4ZnNfcnRncm91cF9hbGxvYyhzdHJ1Y3QgeGZzX21vdW50ICptcCwgeGZzX3JnbnVtYmVyX3Qgcmdubyxcbi0tXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg9MzQ5PXN0YXRpYyBpbmxpbmUgaW50IHhmc19pbml0aWFsaXplX3J0Z3JvdXBzKHN0cnVjdCB4ZnNfbW91bnQgKm1wLFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Z3JvdXAuaC0zNjMtIyBkZWZpbmUgeGZzX3J0Z3JvdXBfZ2V0X2dlb21ldHJ5KHJ0ZywgcmdlbylcdCgtRU9QTk9UU1VQUClcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Z3JvdXAuaDozNjQ6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Z3JvdXAuaC0zNjUtXG4tLVxuZnMveGZzL3NjcnViL2JtYXBfcmVwYWlyLmM9MzU1PXhyZXBfYm1hcF9zY2FuX2FnKFxuLS1cbmZzL3hmcy9zY3J1Yi9ibWFwX3JlcGFpci5jLTM3MC1cbmZzL3hmcy9zY3J1Yi9ibWFwX3JlcGFpci5jOjM3MTojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL2JtYXBfcmVwYWlyLmMtMzcyLS8qIENoZWNrIGZvciBhbnkgb2J2aW91cyBlcnJvcnMgb3IgY29uZmxpY3RzIGluIHRoZSBmaWxlIG1hcHBpbmcuICovXG4tLVxuZnMveGZzL3NjcnViL2NvbW1vbi5jPTcwMj14Y2hrX2FnX2luaXQoXG4tLVxuZnMveGZzL3NjcnViL2NvbW1vbi5jLTcxNi1cbmZzL3hmcy9zY3J1Yi9jb21tb24uYzo3MTc6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9jb21tb24uYy03MTgtLypcbi0tXG5mcy94ZnMvc2NydWIvY29tbW9uLmM9ODYxPXhjaGtfcnRncm91cF9mcmVlKFxuLS1cbmZzL3hmcy9zY3J1Yi9jb21tb24uYy04NzEtfVxuZnMveGZzL3NjcnViL2NvbW1vbi5jOjg3MjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3NjcnViL2NvbW1vbi5jLTg3My1cbi0tXG5mcy94ZnMvc2NydWIvY29tbW9uLmg9ODM9aW50IHhjaGtfc2V0dXBfbWV0YXBhdGgoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xuZnMveGZzL3NjcnViL2NvbW1vbi5oOjg0OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtODUtaW50IHhjaGtfc2V0dXBfcnRiaXRtYXAoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xuLS1cbmZzL3hmcy9zY3J1Yi9jb21tb24uaD0xMjQ9eGNoa19hZ19pbml0X2V4aXN0aW5nKFxuLS1cbmZzL3hmcy9zY3J1Yi9jb21tb24uaC0xMzMtXG5mcy94ZnMvc2NydWIvY29tbW9uLmg6MTM0OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTM1LVxuLS1cbmZzL3hmcy9zY3J1Yi9jb21tb24uaD0xNTk9dm9pZCB4Y2hrX3J0Z3JvdXBfZnJlZShzdHJ1Y3QgeGZzX3NjcnViICpzYywgc3RydWN0IHhjaGtfcnQgKnNyKTtcbi0tXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTY2LSMgZGVmaW5lIHhjaGtfcnRncm91cF9mcmVlKHNjLCBzcilcdFx0XHRkbyB7IH0gd2hpbGUgKDApXG5mcy94ZnMvc2NydWIvY29tbW9uLmg6MTY3OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTY4LVxuLS1cbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmM9Mjk0PXhjaGtfZnNjb3VudF9hZ2dyZWdhdGVfYWdjb3VudHMoXG4tLVxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYy0zODctXG5mcy94ZnMvc2NydWIvZnNjb3VudGVycy5jOjM4ODojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYy0zODktU1RBVElDIGludFxuLS1cbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmM9NDQzPXhjaGtfZnNjb3VudF9jb3VudF9mcmV4dGVudHMoXG4tLVxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYy00NTAtfVxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYzo0NTE6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmMtNDUyLVxuLS1cbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jPTg3PXhjaGtfc2V0dXBfbWV0YXBhdGhfc2Nhbihcbi0tXG5mcy94ZnMvc2NydWIvbWV0YXBhdGguYy0xMjQtXG5mcy94ZnMvc2NydWIvbWV0YXBhdGguYzoxMjU6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jLTEyNi0vKiBTY2FuIHRoZSAvcnRncm91cHMgZGlyZWN0b3J5IGl0c2VsZi4gKi9cbi0tXG5mcy94ZnMvc2NydWIvbWV0YXBhdGguYz0xNDA9eGNoa19zZXR1cF9tZXRhcGF0aF9ydGdpbm9kZShcbi0tXG5mcy94ZnMvc2NydWIvbWV0YXBhdGguYy0xNjctIyBkZWZpbmUgeGNoa19zZXR1cF9tZXRhcGF0aF9ydGdpbm9kZSguLi4pXHQoLUVOT0VOVClcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jOjE2ODojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3NjcnViL21ldGFwYXRoLmMtMTY5LVxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmM9ODY4PXhyZXBfcmVhcF9mc2Jsb2Nrcyhcbi0tXG5mcy94ZnMvc2NydWIvcmVhcC5jLTg5Ni1cbmZzL3hmcy9zY3J1Yi9yZWFwLmM6ODk3OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvcmVhcC5jLTg5OC0vKlxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmM9MTE1Mz14cmVwX3JlYXBfcnRibG9ja3MoXG4tLVxuZnMveGZzL3NjcnViL3JlYXAuYy0xMTc4LX1cbmZzL3hmcy9zY3J1Yi9yZWFwLmM6MTE3OTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3NjcnViL3JlYXAuYy0xMTgwLVxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmg9MTc9aW50IHhyZXBfcmVhcF9tZXRhZGlyX2ZzYmxvY2tzKHN0cnVjdCB4ZnNfc2NydWIgKnNjLFxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMTktXG5mcy94ZnMvc2NydWIvcmVhcC5oOjIwOiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvcmVhcC5oLTIxLWludCB4cmVwX3JlYXBfcnRibG9ja3Moc3RydWN0IHhmc19zY3J1YiAqc2MsIHN0cnVjdCB4cnRiX2JpdG1hcCAqYml0bWFwLFxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMjQtIyBkZWZpbmUgeHJlcF9yZWFwX3J0YmxvY2tzKC4uLilcdCgtRU9QTk9UU1VQUClcbmZzL3hmcy9zY3J1Yi9yZWFwLmg6MjU6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMjYtXG4tLVxuZnMveGZzL3NjcnViL3JlcGFpci5jPTI4MT14cmVwX2NhbGNfYWdfcmVzYmxrcyhcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmMtMzg4LVxuZnMveGZzL3NjcnViL3JlcGFpci5jOjM4OTojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL3JlcGFpci5jLTM5MC0vKlxuLS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYz0zOTY9eHJlcF9jYWxjX3J0Z3JvdXBfcmVzYmxrcyhcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmMtNDIxLX1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYzo0MjI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy00MjMtXG4tLVxuZnMveGZzL3NjcnViL3JlcGFpci5jPTk3Nj14cmVwX2FnX2luaXQoXG4tLVxuZnMveGZzL3NjcnViL3JlcGFpci5jLTk5OC1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYzo5OTk6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDAwLS8qIEluaXRpYWxpemUgYWxsIHRoZSBidHJlZSBjdXJzb3JzIGZvciBhIFJUIHJlcGFpci4gKi9cbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM9MTA0NT14cmVwX3JlcXVpcmVfcnRleHRfaW51c2UoXG4tLVxuZnMveGZzL3NjcnViL3JlcGFpci5jLTEwNzMtfVxuZnMveGZzL3NjcnViL3JlcGFpci5jOjEwNzQ6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDc1LVxuLS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaD0xMDQ9aW50IHhyZXBfYWdfaW5pdChzdHJ1Y3QgeGZzX3NjcnViICpzYywgc3RydWN0IHhmc19wZXJhZyAqcGFnLFxuZnMveGZzL3NjcnViL3JlcGFpci5oLTEwNS1cdFx0c3RydWN0IHhjaGtfYWcgKnNhKTtcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaDoxMDY6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xMDctaW50IHhyZXBfcnRncm91cF9pbml0KHN0cnVjdCB4ZnNfc2NydWIgKnNjLCBzdHJ1Y3QgeGZzX3J0Z3JvdXAgKnJ0Zyxcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg9MTEyPXhmc19leHRsZW5fdCB4cmVwX2NhbGNfcnRncm91cF9yZXNibGtzKHN0cnVjdCB4ZnNfc2NydWIgKnNjKTtcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTE1LSMgZGVmaW5lIHhyZXBfY2FsY19ydGdyb3VwX3Jlc2Jsa3Moc2MpXHRcdFx0KDApXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg6MTE2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTE3LVxuLS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaD0xNDg9aW50IHhyZXBfbWV0YXBhdGgoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xuZnMveGZzL3NjcnViL3JlcGFpci5oLTE0OS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaDoxNTA6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xNTEtaW50IHhyZXBfcnRiaXRtYXAoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xuLS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaD0xNTU9aW50IHhyZXBfcnRyZWZjb3VudGJ0KHN0cnVjdCB4ZnNfc2NydWIgKnNjKTtcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTYxLSMgZGVmaW5lIHhyZXBfcnRyZWZjb3VudGJ0XHRcdHhyZXBfbm90c3VwcG9ydGVkXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg6MTYyOiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTYzLVxuLS1cbmZzL3hmcy9zY3J1Yi9zY3J1Yi5oPTI4Mj1pbnQgeGNoa19tZXRhcGF0aChzdHJ1Y3QgeGZzX3NjcnViICpzYyk7XG5mcy94ZnMvc2NydWIvc2NydWIuaDoyODM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9zY3J1Yi5oLTI4NC1pbnQgeGNoa19ydGJpdG1hcChzdHJ1Y3QgeGZzX3NjcnViICpzYyk7XG4tLVxuZnMveGZzL3NjcnViL3NjcnViLmg9MzIzPXZvaWQgeGNoa194cmVmX2lzX25vdF9jb3dfc3RhZ2luZyhzdHJ1Y3QgeGZzX3NjcnViICpzYywgeGZzX2FnYmxvY2tfdCBibm8sXG5mcy94ZnMvc2NydWIvc2NydWIuaC0zMjQtXHRcdHhmc19leHRsZW5fdCBsZW4pO1xuZnMveGZzL3NjcnViL3NjcnViLmg6MzI1OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvc2NydWIuaC0zMjYtdm9pZCB4Y2hrX3hyZWZfaXNfdXNlZF9ydF9zcGFjZShzdHJ1Y3QgeGZzX3NjcnViICpzYywgeGZzX3J0YmxvY2tfdCBydGJubyxcbi0tXG5mcy94ZnMvc2NydWIvdHJhY2UuaD0xMTk4PVRSQUNFX0VWRU5UKHhmYXJyYXlfc29ydF9zdGF0cyxcbi0tXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0xMjQyLVxuZnMveGZzL3NjcnViL3RyYWNlLmg6MTI0MzojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMTI0NC1UUkFDRV9FVkVOVCh4Y2hrX3J0c3VtX3JlY29yZF9mcmVlLFxuLS1cbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNzUtKTtcbmZzL3hmcy9zY3J1Yi90cmFjZS5oOjEyNzY6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNzctXG4tLVxuZnMveGZzL3NjcnViL3RyYWNlLmg9MjMxMz1UUkFDRV9FVkVOVCh4cmVwX2NhbGNfYWdfcmVzYmxrc19idHNpemUsXG4tLVxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM0Mi1cbmZzL3hmcy9zY3J1Yi90cmFjZS5oOjIzNDM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTIzNDQtVFJBQ0VfRVZFTlQoeHJlcF9jYWxjX3J0Z3JvdXBfcmVzYmxrc19idHNpemUsXG4tLVxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM2NS0pO1xuZnMveGZzL3NjcnViL3RyYWNlLmg6MjM2NjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM2Ny1cbi0tXG5mcy94ZnMvc2NydWIvdHJhY2UuaD0zNjU4PURFRklORV9YQ0hLX01FVEFQQVRIX0VWRU5UKHhyZXBfbWV0YXBhdGhfbGluayk7XG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zNjU5LVxuZnMveGZzL3NjcnViL3RyYWNlLmg6MzY2MDojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMzY2MS1ERUNMQVJFX0VWRU5UX0NMQVNTKHhyZXBfcnRiaXRtYXBfY2xhc3MsXG4tLVxuZnMveGZzL3NjcnViL3RyYWNlLmg9MzgwOD1UUkFDRV9FVkVOVCh4cmVwX3J0cm1hcF9mb3VuZCxcbi0tXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zODM3LSk7XG5mcy94ZnMvc2NydWIvdHJhY2UuaDozODM4OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zODM5LVxuLS1cbmZzL3hmcy94ZnNfYW9wcy5jPTIyNz14ZnNfZW5kX2Jpbyhcbi0tXG5mcy94ZnMveGZzX2FvcHMuYy0yMzgtXHQgKi9cbmZzL3hmcy94ZnNfYW9wcy5jOjIzOTpcdGlmIChJU19FTkFCTEVEKENPTkZJR19YRlNfUlQpIFx1MDAyNlx1MDAyNiBiaW9faXNfem9uZV9hcHBlbmQoYmlvKSkge1xuZnMveGZzL3hmc19hb3BzLmMtMjQwLVx0XHRpb2VuZC1cdTAwM2Vpb19zZWN0b3IgPSBiaW8tXHUwMDNlYmlfaXRlci5iaV9zZWN0b3I7XG4tLVxuZnMveGZzL3hmc19ibWFwX3V0aWwuaD0xOD1zdHJ1Y3QgeGZzX3pvbmVfYWxsb2NfY3R4O1xuZnMveGZzL3hmc19ibWFwX3V0aWwuaC0xOS1cbmZzL3hmcy94ZnNfYm1hcF91dGlsLmg6MjA6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMjEtaW50XHR4ZnNfYm1hcF9ydGFsbG9jKHN0cnVjdCB4ZnNfYm1hbGxvY2EgKmFwKTtcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmg6MjI6I2Vsc2UgLyogIUNPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMjMtLypcbi0tXG5mcy94ZnMveGZzX2JtYXBfdXRpbC5oPTI4PXhmc19ibWFwX3J0YWxsb2Moc3RydWN0IHhmc19ibWFsbG9jYSAqYXApXG4tLVxuZnMveGZzL3hmc19ibWFwX3V0aWwuaC0zMS19XG5mcy94ZnMveGZzX2JtYXBfdXRpbC5oOjMyOiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX2JtYXBfdXRpbC5oLTMzLVxuLS1cbmZzL3hmcy94ZnNfYnVmX2l0ZW1fcmVjb3Zlci5jPTIxNj14bG9nX3JlY292ZXJfdmFsaWRhdGVfYnVmX3R5cGUoXG4tLVxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDAxLVx0XHRicmVhaztcbmZzL3hmcy94ZnNfYnVmX2l0ZW1fcmVjb3Zlci5jOjQwMjojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDAzLVx0Y2FzZSBYRlNfQkxGVF9SVEJJVE1BUF9CVUY6XG4tLVxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDE2LVx0XHRicmVhaztcbmZzL3hmcy94ZnNfYnVmX2l0ZW1fcmVjb3Zlci5jOjQxNzojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDE4LVx0ZGVmYXVsdDpcbi0tXG5mcy94ZnMveGZzX2Rpc2NhcmQuYz0zODk9eGZzX3RyaW1fZGF0YWRldl9leHRlbnRzKFxuLS1cbmZzL3hmcy94ZnNfZGlzY2FyZC5jLTQyNy1cbmZzL3hmcy94ZnNfZGlzY2FyZC5jOjQyODojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19kaXNjYXJkLmMtNDI5LXN0cnVjdCB4ZnNfdHJpbV9ydGRldiB7XG4tLVxuZnMveGZzL3hmc19kaXNjYXJkLmM9NzM5PXhmc190cmltX3J0ZGV2X2V4dGVudHMoXG4tLVxuZnMveGZzL3hmc19kaXNjYXJkLmMtNzk1LSMgZGVmaW5lIHhmc190cmltX3J0ZGV2X2V4dGVudHMoLi4uKVx0KC1FT1BOT1RTVVBQKVxuZnMveGZzL3hmc19kaXNjYXJkLmM6Nzk2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX2Rpc2NhcmQuYy03OTctXG4tLVxuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYz03NDE9Y29uc3Qgc3RydWN0IHhmc19kZWZlcl9vcF90eXBlIHhmc19hZ2ZsX2ZyZWVfZGVmZXJfdHlwZSA9IHtcbi0tXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTc1Mi1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM6NzUzOiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTc1NC0vKiBDcmVhdGUgYSByZWFsdGltZSBleHRlbnQgZnJlZWluZyAqL1xuLS1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM9ODI4PWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfcnRleHRlbnRfZnJlZV9kZWZlcl90eXBlID0ge1xuLS1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtODMwLX07XG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jOjgzMTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYy04MzItXG4tLVxuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYz04OTA9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX2VmaV9pdGVtX29wcyA9IHtcbi0tXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTg5NC1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM6ODk1OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTg5Ni1TVEFUSUMgaW50XG4tLVxuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYz05ODU9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX2VmZF9pdGVtX29wcyA9IHtcbi0tXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTk4OS1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM6OTkwOiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTk5MS1TVEFUSUMgaW50XG4tLVxuZnMveGZzL3hmc19mc21hcC5jPTY3Nz14ZnNfZ2V0ZnNtYXBfbG9nZGV2KFxuLS1cbmZzL3hmcy94ZnNfZnNtYXAuYy03MTItXG5mcy94ZnMveGZzX2ZzbWFwLmM6NzEzOiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2ZzbWFwLmMtNzE0LS8qIFRyYW5zZm9ybSBhIHJ0Yml0bWFwIFwmIzM0O3JlY29yZFwmIzM0OyBpbnRvIGEgZnNtYXAgKi9cbi0tXG5mcy94ZnMveGZzX2ZzbWFwLmM9ODc0PXhmc19nZXRmc21hcF9ydGRldl9ybWFwYnQoXG4tLVxuZnMveGZzL3hmc19mc21hcC5jLTEwNDEtfVxuZnMveGZzL3hmc19mc21hcC5jOjEwNDI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfZnNtYXAuYy0xMDQzLVxuLS1cbmZzL3hmcy94ZnNfZnNtYXAuYz0xMDgyPXhmc19nZXRmc21hcF9jaGVja19rZXlzKFxuLS1cbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTI0LSAqL1xuZnMveGZzL3hmc19mc21hcC5jOjExMjU6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTI2LSNkZWZpbmUgWEZTX0dFVEZTTUFQX0RFVlNcdDNcbi0tXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTEyOC0jZGVmaW5lIFhGU19HRVRGU01BUF9ERVZTXHQyXG5mcy94ZnMveGZzX2ZzbWFwLmM6MTEyOTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc19mc21hcC5jLTExMzAtXG4tLVxuZnMveGZzL3hmc19mc21hcC5jPTExNTM9eGZzX2dldGZzbWFwKFxuLS1cbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTk0LVx0fVxuZnMveGZzL3hmc19mc21hcC5jOjExOTU6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTk2LVx0Lypcbi0tXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTIwNy1cdH1cbmZzL3hmcy94ZnNfZnNtYXAuYzoxMjA4OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTIwOS1cbi0tXG5mcy94ZnMveGZzX2ljYWNoZS5jPTIwNjg9eGZzX2lub2RlZ2Nfc3RhcnQoXG4tLVxuZnMveGZzL3hmc19pY2FjaGUuYy0yMDc3LVxuZnMveGZzL3hmc19pY2FjaGUuYzoyMDc4OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2ljYWNoZS5jLTIwNzktc3RhdGljIGlubGluZSBib29sXG5mcy94ZnMveGZzX2ljYWNoZS5jPTIwODA9eGZzX2lub2RlZ2Nfd2FudF9xdWV1ZV9ydF9maWxlKFxuLS1cbmZzL3hmcy94ZnNfaWNhY2hlLmMtMjA5Ni0jIGRlZmluZSB4ZnNfaW5vZGVnY193YW50X3F1ZXVlX3J0X2ZpbGUoaXApXHQoZmFsc2UpXG5mcy94ZnMveGZzX2ljYWNoZS5jOjIwOTc6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfaWNhY2hlLmMtMjA5OC1cbi0tXG5mcy94ZnMveGZzX2lvbWFwLmM9MTA0MD1jb25zdCBzdHJ1Y3QgaW9tYXBfb3BzIHhmc19kaXJlY3Rfd3JpdGVfaW9tYXBfb3BzID0ge1xuLS1cbmZzL3hmcy94ZnNfaW9tYXAuYy0xMDQzLVxuZnMveGZzL3hmc19pb21hcC5jOjEwNDQ6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfaW9tYXAuYy0xMDQ1LS8qXG4tLVxuZnMveGZzL3hmc19pb21hcC5jPTEwOTI9Y29uc3Qgc3RydWN0IGlvbWFwX29wcyB4ZnNfem9uZWRfZGlyZWN0X3dyaXRlX2lvbWFwX29wcyA9IHtcbi0tXG5mcy94ZnMveGZzX2lvbWFwLmMtMTA5NC19O1xuZnMveGZzL3hmc19pb21hcC5jOjEwOTU6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfaW9tYXAuYy0xMDk2LVxuLS1cbmZzL3hmcy94ZnNfbG9nLmM9MzMxNj14bG9nX2ZvcmNlX3NodXRkb3duKFxuLS1cbmZzL3hmcy94ZnNfbG9nLmMtMzQxMS1cdHdha2VfdXBfdmFyKFx1MDAyNmxvZy1cdTAwM2VsX29wc3RhdGUpO1xuZnMveGZzL3hmc19sb2cuYzozNDEyOlx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgXHUwMDI2XHUwMDI2IHhmc19oYXNfem9uZWQobG9nLVx1MDAzZWxfbXApKVxuZnMveGZzL3hmc19sb2cuYy0zNDEzLVx0XHR4ZnNfem9uZWRfd2FrZV9hbGwobG9nLVx1MDAzZWxfbXApO1xuLS1cbmZzL3hmcy94ZnNfbW91bnQuYz00NzE9eGZzX2RlZmF1bHRfcmVzYmxrcyhcbi0tXG5mcy94ZnMveGZzX21vdW50LmMtNDg4LVx0Y2FzZSBYQ19GUkVFX1JUQVZBSUxBQkxFOlxuZnMveGZzL3hmc19tb3VudC5jOjQ4OTpcdFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgXHUwMDI2XHUwMDI2IHhmc19oYXNfem9uZWQobXApKVxuZnMveGZzL3hmc19tb3VudC5jLTQ5MC1cdFx0XHRyZXR1cm4geGZzX3pvbmVkX2RlZmF1bHRfcmVzYmxrcyhtcCwgY3RyKTtcbi0tXG5mcy94ZnMveGZzX3BsYXRmb3JtLmg9MjI0PWludCB4ZnNfcndfYmRldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0b3JfdCBzZWN0b3IsIHVuc2lnbmVkIGludCBjb3VudCxcbi0tXG5mcy94ZnMveGZzX3BsYXRmb3JtLmgtMjY0LVxuZnMveGZzL3hmc19wbGF0Zm9ybS5oOjI2NTojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19wbGF0Zm9ybS5oLTI2Ni1cbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYz01OTA9Y29uc3Qgc3RydWN0IHhmc19kZWZlcl9vcF90eXBlIHhmc19yZWZjb3VudF91cGRhdGVfZGVmZXJfdHlwZSA9IHtcbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02MDItXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYzo2MDM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jLTYwNC1zdGF0aWMgc3RydWN0IHhmc19sb2dfaXRlbSAqXG4tLVxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM9NjYzPWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfcnRyZWZjb3VudF91cGRhdGVfZGVmZXJfdHlwZSA9IHtcbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02NjUtfTtcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jOjY2NjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmMtNjY3LVxuLS1cbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jPTc0Mj1jb25zdCBzdHJ1Y3QgeGxvZ19yZWNvdmVyX2l0ZW1fb3BzIHhsb2dfY3VpX2l0ZW1fb3BzID0ge1xuLS1cbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jLTc0Ni1cbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jOjc0NzojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmMtNzQ4LVNUQVRJQyBpbnRcbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYz04Mjk9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX2N1ZF9pdGVtX29wcyA9IHtcbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy04MzMtXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYzo4MzQ6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jLTgzNS1TVEFUSUMgaW50XG4tLVxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYz02NDM9Y29uc3Qgc3RydWN0IHhmc19kZWZlcl9vcF90eXBlIHhmc19ybWFwX3VwZGF0ZV9kZWZlcl90eXBlID0ge1xuLS1cbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNjU1LVxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYzo2NTY6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNjU3LXN0YXRpYyBzdHJ1Y3QgeGZzX2xvZ19pdGVtICpcbi0tXG5mcy94ZnMveGZzX3JtYXBfaXRlbS5jPTc3MT1jb25zdCBzdHJ1Y3QgeGxvZ19yZWNvdmVyX2l0ZW1fb3BzIHhsb2dfcnVpX2l0ZW1fb3BzID0ge1xuLS1cbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNzc1LVxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYzo3NzY6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNzc3LVNUQVRJQyBpbnRcbi0tXG5mcy94ZnMveGZzX3JtYXBfaXRlbS5jPTg1OD1jb25zdCBzdHJ1Y3QgeGxvZ19yZWNvdmVyX2l0ZW1fb3BzIHhsb2dfcnVkX2l0ZW1fb3BzID0ge1xuLS1cbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtODYyLVxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYzo4NjM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtODY0LVNUQVRJQyBpbnRcbi0tXG5mcy94ZnMveGZzX3J0YWxsb2MuaD0xMj1zdHJ1Y3QgeGZzX3RyYW5zO1xuZnMveGZzL3hmc19ydGFsbG9jLmgtMTMtXG5mcy94ZnMveGZzX3J0YWxsb2MuaDoxNDojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19ydGFsbG9jLmgtMTUtLyogcnRncm91cCBzdXBlcmJsb2NrIGluaXRpYWxpemF0aW9uICovXG4tLVxuZnMveGZzL3hmc19ydGFsbG9jLmg9NTQ9eGZzX3J0bW91bnRfaW5pdChcbi0tXG5mcy94ZnMveGZzX3J0YWxsb2MuaC01OS1cbmZzL3hmcy94ZnNfcnRhbGxvYy5oOjYwOlx0eGZzX3dhcm4obXAsIFwmIzM0O05vdCBidWlsdCB3aXRoIENPTkZJR19YRlNfUlRcJiMzNDspO1xuZnMveGZzL3hmc19ydGFsbG9jLmgtNjEtXHRyZXR1cm4gLUVOT1NZUztcbi0tXG5mcy94ZnMveGZzX3J0YWxsb2MuaD02Nz14ZnNfZ3Jvd2ZzX2NoZWNrX3J0Z2VvbShjb25zdCBzdHJ1Y3QgeGZzX21vdW50ICptcCxcbi0tXG5mcy94ZnMveGZzX3J0YWxsb2MuaC03Mi19XG5mcy94ZnMveGZzX3J0YWxsb2MuaDo3MzojZW5kaWZcdC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTc0LVxuLS1cbmZzL3hmcy94ZnNfc3RhdHMuYz0xMjg9c3RhdGljIGludCB4cW1fcHJvY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdilcbi0tXG5mcy94ZnMveGZzX3N0YXRzLmMtMTMzLVx0XHQgICAwLCBjb3VudGVyX3ZhbCh4ZnNzdGF0cy54c19zdGF0cywgWEZTU1RBVF9FTkRfWFFNU1RBVCAmIzQzOyAxKSxcbmZzL3hmcy94ZnNfc3RhdHMuYzoxMzQ6XHRcdCAgIElTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgPyBcJiMzNDtydHF1b3RhXCYjMzQ7IDogXCYjMzQ7cXVvdGFcJiMzNDspO1xuZnMveGZzL3hmc19zdGF0cy5jLTEzNS1cdHJldHVybiAwO1xuLS1cbmZzL3hmcy94ZnNfc3VwZXIuYz04MjI9eGZzX2ZzX2V2aWN0X2lub2RlKFxuLS1cbmZzL3hmcy94ZnNfc3VwZXIuYy04MzAtXG5mcy94ZnMveGZzX3N1cGVyLmM6ODMxOlx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgXHUwMDI2XHUwMDI2XG5mcy94ZnMveGZzX3N1cGVyLmMtODMyLVx0ICAgIFNfSVNSRUcoaW5vZGUtXHUwMDNlaV9tb2RlKSBcdTAwMjZcdTAwMjYgaW5vZGUtXHUwMDNlaV9wcml2YXRlKSB7XG4tLVxuZnMveGZzL3hmc19zdXBlci5jPTEzMTQ9eGZzX2ZzX3Nob3dfc3RhdHMoXG4tLVxuZnMveGZzL3hmc19zdXBlci5jLTEzMTktXG5mcy94ZnMveGZzX3N1cGVyLmM6MTMyMDpcdGlmICh4ZnNfaGFzX3pvbmVkKG1wKSBcdTAwMjZcdTAwMjYgSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSlcbmZzL3hmcy94ZnNfc3VwZXIuYy0xMzIxLVx0XHR4ZnNfem9uZWRfc2hvd19zdGF0cyhtLCBtcCk7XG4tLVxuZnMveGZzL3hmc19zdXBlci5oPTEzPWV4dGVybiB2b2lkIHhmc19xbV9leGl0KHZvaWQpO1xuLS1cbmZzL3hmcy94ZnNfc3VwZXIuaC0zMC1cbmZzL3hmcy94ZnNfc3VwZXIuaDozMTojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19zdXBlci5oLTMyLSMgZGVmaW5lIFhGU19SRUFMVElNRV9TVFJJTkdcdFwmIzM0O3JlYWx0aW1lLCBcJiMzNDtcbi0tXG5mcy94ZnMveGZzX3N5c2ZzLmM9Nzg0PXhmc196b25lZF9zeXNmc19pbml0KHN0cnVjdCB4ZnNfbW91bnQgKm1wKVxuZnMveGZzL3hmc19zeXNmcy5jLTc4NS17XG5mcy94ZnMveGZzX3N5c2ZzLmM6Nzg2Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19YRlNfUlQpIHx8ICF4ZnNfaGFzX3pvbmVkKG1wKSlcbmZzL3hmcy94ZnNfc3lzZnMuYy03ODctXHRcdHJldHVybiAwO1xuLS1cbmZzL3hmcy94ZnNfc3lzZnMuYz03OTQ9eGZzX3pvbmVkX3N5c2ZzX2RlbChzdHJ1Y3QgeGZzX21vdW50ICptcClcbmZzL3hmcy94ZnNfc3lzZnMuYy03OTUte1xuZnMveGZzL3hmc19zeXNmcy5jOjc5NjpcdGlmIChJU19FTkFCTEVEKENPTkZJR19YRlNfUlQpIFx1MDAyNlx1MDAyNiB4ZnNfaGFzX3pvbmVkKG1wKSlcbmZzL3hmcy94ZnNfc3lzZnMuYy03OTctXHRcdHhmc19zeXNmc19kZWwoXHUwMDI2bXAtXHUwMDNlbV96b25lZF9rb2JqKTtcbi0tXG5mcy94ZnMveGZzX3RyYWNlLmg9MzYxPURFRklORV9HUk9VUF9SRUZfRVZFTlQoeGZzX2dyb3VwX3JlbGUpO1xuZnMveGZzL3hmc190cmFjZS5oLTM2Mi1cbmZzL3hmcy94ZnNfdHJhY2UuaDozNjM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfdHJhY2UuaC0zNjQtREVDTEFSRV9FVkVOVF9DTEFTUyh4ZnNfem9uZV9jbGFzcyxcbi0tXG5mcy94ZnMveGZzX3RyYWNlLmg9NDg5PVRSQUNFX0VWRU5UKHhmc196b25lc19tb3VudCxcbi0tXG5mcy94ZnMveGZzX3RyYWNlLmgtNTA5LSk7XG5mcy94ZnMveGZzX3RyYWNlLmg6NTEwOiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX3RyYWNlLmgtNTExLVxuLS1cbmZzL3hmcy94ZnNfdHJhY2UuaD0xOTk5PVRSQUNFX0VWRU5UKHhmc19leHRlbnRfYnVzeV90cmltLFxuLS1cbmZzL3hmcy94ZnNfdHJhY2UuaC0yMDMxLVxuZnMveGZzL3hmc190cmFjZS5oOjIwMzI6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfdHJhY2UuaC0yMDMzLVRSQUNFX0VWRU5UKHhmc19ydGFsbG9jX2V4dGVudF9idXN5LFxuLS1cbmZzL3hmcy94ZnNfdHJhY2UuaD0yMDc1PVRSQUNFX0VWRU5UKHhmc19ydGFsbG9jX2V4dGVudF9idXN5X3RyaW0sXG4tLVxuZnMveGZzL3hmc190cmFjZS5oLTIxMDMtKTtcbmZzL3hmcy94ZnNfdHJhY2UuaDoyMTA0OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX3RyYWNlLmgtMjEwNS1cbi0tXG5mcy94ZnMveGZzX3RyYWNlLmg9NTg3MD1ERUZJTkVfTUVUQUZJTEVfUkVTVl9FVkVOVCh4ZnNfbWV0YWZpbGVfcmVzdl9pbml0X2Vycm9yKTtcbmZzL3hmcy94ZnNfdHJhY2UuaC01ODcxLVxuZnMveGZzL3hmc190cmFjZS5oOjU4NzI6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfdHJhY2UuaC01ODczLVRSQUNFX0VWRU5UKHhmc19ncm93ZnNfY2hlY2tfcnRnZW9tLFxuLS1cbmZzL3hmcy94ZnNfdHJhY2UuaC01ODkwLSk7XG5mcy94ZnMveGZzX3RyYWNlLmg6NTg5MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc190cmFjZS5oLTU4OTItXG4tLVxuZnMveGZzL3hmc196b25lX2FsbG9jLmg9NDg9dm9pZCB4ZnNfem9uZWRfc2hvd19zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCB4ZnNfbW91bnQgKm1wKTtcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTQ5LVxuZnMveGZzL3hmc196b25lX2FsbG9jLmg6NTA6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTUxLWludCB4ZnNfbW91bnRfem9uZXMoc3RydWN0IHhmc19tb3VudCAqbXApO1xuLS1cbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oPTcwPXN0YXRpYyBpbmxpbmUgdm9pZCB4ZnNfem9uZV9nY193YWtldXAoc3RydWN0IHhmc19tb3VudCAqbXApXG4tLVxuZnMveGZzL3hmc196b25lX2FsbG9jLmgtNzItfVxuZnMveGZzL3hmc196b25lX2FsbG9jLmg6NzM6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTc0LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzMDU1CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlhGUyBSZWFkYWhlYWQgTWFuYWdlbWVudCB3aXRoIFJlYWx0aW1lIERldmljZXMqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgaGFuZGxpbmcgcmVhZGFoZWFkIHZhbHVlcyBmb3IgdGhlIGJsb2NrIGRldmljZSBpbmZyYXN0cnVjdHVyZSAoQkRJKSB3aGVuIHdlJiMzOTtyZSB1c2luZyByZWFsdGltZSBkZXZpY2VzIHdpdGhpbiBhbiBYRlMgZmlsZXN5c3RlbS4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyB0d2Vha2luZyBgeGZzX3NldHVwX2RldmljZXNgIGFuZCBgeGZzX2tpbGxfc2JgIHRvIGVuc3VyZSB0aGVzZSByZWFkYWhlYWQgdmFsdWVzIGFyZSBjb3JyZWN0bHkgdXBkYXRlZCBkdXJpbmcgbW91bnRpbmcgYW5kIHJlc3RvcmVkIGR1cmluZyB1bm1vdW50aW5nLiBUaGUgY29yZSBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkgbGllcyBpbiB0aGUgbmV3IGB4ZnNfdXBkYXRlX2JkaV9yYWhlYWRgIGFuZCBgeGZzX3Jlc3RvcmVfYmRpX3JhaGVhZGAgZnVuY3Rpb25zLgoKVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCB0YXJnZXRlZCBhdCBjb25maWd1cmF0aW9ucyB3aGVyZSBhbiBYRlMgZmlsZXN5c3RlbSBpcyBtb3VudGVkIHdpdGggYSByZWFsdGltZSBkZXZpY2UuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93OyBpdCBwcm92aWRlcyBhIGRlZmluaXRlIGZvY3VzLgoKSWYgSSB3ZXJlIHRvIGZ1enogdGhpcywgSSYjMzk7ZCBob25lIGluIG9uIHRob3NlIG5ldyBmdW5jdGlvbnMsIGB4ZnNfdXBkYXRlX2JkaV9yYWhlYWRgIGFuZCBgeGZzX3Jlc3RvcmVfYmRpX3JhaGVhZGAsIGFzIHRoZXkmIzM5O3JlIHRoZSBuZXcgbG9naWMuIFRoZSBtb2RpZmllZCBjYWxscyB0byBgeGZzX3NldHVwX2RldmljZXNgIGFuZCBgeGZzX2tpbGxfc2JgIGFyZSBhbHNvIGtleSBhcmVhcy4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgbW91bnQgYW5kIHVubW91bnQgb3BlcmF0aW9ucywgc28gdGhvc2UgZW50cnkgcG9pbnRzIGFyZSBwcmltZSB0YXJnZXRzLgoKQW5kIHRoZSBjb25maWcgaXMgc3RyYWlnaHRmb3J3YXJkOiB3ZSYjMzk7cmUgbG9va2luZyBhdCBgWEZTX1JUYCBhbmQsIG5hdHVyYWxseSwgYFhGU19GU2AuIFRoaXMgZGljdGF0ZXMgdGhlIHRlc3QgY2FzZXMuCgpUaW1lIHRvIGRyaWxsIGRvd24gaW50byB0aGUgY29kZSBpdHNlbGYsIGBmcy94ZnMveGZzX3N1cGVyLmNgIGlzIHdoZXJlIEkmIzM5O2xsIGZpbmQgYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYC4gTGV0JiMzOTtzIHNlZSBob3cgdGhleSYjMzk7cmUgaW1wbGVtZW50ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7eGZzX3VwZGF0ZV9iZGlfcmFoZWFkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMveGZzL3hmc19zdXBlci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3hmcy94ZnNfc3VwZXIuYz01NjI9c3RhdGljIHZvaWRcbmZzL3hmcy94ZnNfc3VwZXIuYzo1NjM6eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKFxuZnMveGZzL3hmc19zdXBlci5jLTU2NC1cdHN0cnVjdCB4ZnNfbW91bnRcdCptcClcbi0tXG5mcy94ZnMveGZzX3N1cGVyLmM9NjAxPXhmc19zZXR1cF9kZXZpY2VzKFxuLS1cbmZzL3hmcy94ZnNfc3VwZXIuYy02MzMtXHRcdFx0cmV0dXJuIGVycm9yO1xuZnMveGZzL3hmc19zdXBlci5jOjYzNDpcdFx0eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTtcbmZzL3hmcy94ZnNfc3VwZXIuYy02MzUtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM4NjEKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAzMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFhGUyBSZWFkLUFoZWFkIENvbmZpZ3VyYXRpb24gZm9yIFJlYWx0aW1lIERldmljZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIGZ1bmN0aW9uczogYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYC4gVGhleSYjMzk7cmUgc3RhdGljLCBidXQgdGhleSYjMzk7cmUgc3RpbGwgc29saWQgZW50cnkgcG9pbnRzIGZvciB1bmRlcnN0YW5kaW5nIHRoaXMgY2hhbmdlLiBUaGUgZ29hbCBoZXJlIHNlZW1zIHRvIGJlIGFib3V0IGhvdyBYRlMgaGFuZGxlcyByZWFkYWhlYWQgc2V0dGluZ3Mgd2l0aCByZWFsdGltZSBkZXZpY2VzLgoKTm93LCB0aGUgY29kZSBpdHNlbGYgZG9lc24mIzM5O3QgZXhwbGljaXRseSB1c2UgYCNpZmRlZiBDT05GSUdfWEZTX1JUYCBhcm91bmQgYHhmc191cGRhdGVfYmRpX3JhaGVhZGAuIEl0JiMzOTtzIGNoZWNraW5nIGBpZiAobXAtJmd0O21fcnRkZXZfdGFyZ3AgJmFtcDsmYW1wOyBtcC0mZ3Q7bV9ydGRldl90YXJncCAhPSBtcC0mZ3Q7bV9kZGV2X3RhcmdwKWAgaW5zdGVhZC4gQnV0IHRvIGhhdmUgYG1fcnRkZXZfdGFyZ3BgIGFjdHVhbGx5IGluaXRpYWxpemVkIGFuZCBpbiBwbGF5LCAqSSBiZWxpZXZlKiB3ZSYjMzk7bGwgbmVlZCBgQ09ORklHX1hGU19SVGAgZW5hYmxlZC4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoYXQgYXNzdW1wdGlvbiB0aG91Z2guIFl1cCwgY29uZmlybWVkOyBgWEZTX1JUYCBpcyBpbmRlZWQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGZvciBYRlMgcmVhbHRpbWUgc3VwcG9ydC4KCkkgc2hvdWxkIHByb2JhYmx5IGFsc28gdmVyaWZ5IGlmIGBYRlNfRlNgIGlzIGEgcmVxdWlyZW1lbnQuIFllcywgaXQmIzM5O3MgdGhlIGNvcmUgWEZTIGNvbmZpZy4KClNvLCB0byBzdW1tYXJpemUgbXkgZm9jdXM6IEkmIzM5O20gZXhhbWluaW5nIHRoZSBgeGZzX3VwZGF0ZV9iZGlfcmFoZWFkYCBhbmQgYHhmc19yZXN0b3JlX2JkaV9yYWhlYWRgIGZ1bmN0aW9ucyBhbmQgdGhlaXIgcmVsYXRpb24gdG8gdGhlIGBYRlNfRlNgIGFuZCBgWEZTX1JUYCBjb25maWd1cmF0aW9ucy4KCkVzc2VudGlhbGx5LCB0aGlzIHBhdGNoIGlzIHR3ZWFraW5nIHRoZSBYRlMgbW91bnQgYW5kIHVubW91bnQgcHJvY2Vzc2VzIHRvIGR5bmFtaWNhbGx5IGFkanVzdCB0aGUgYmFja2luZyBkZXZpY2UgaW5mb3JtYXRpb24gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuZXZlciBhIHJlYWx0aW1lIGRldmljZSBpcyB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGRpcmVjdGx5IGltcGFjdGluZyBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCBzaHV0ZG93bi4gQW5kIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0byBtYWtlIHN1cmUgdGhvc2UgY29uZmlnIG5hbWVzIGFyZSBjb3JyZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE5OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBYRlNfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMveGZzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMveGZzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmZzL3hmcy9LY29uZmlnOjI6Y29uZmlnIFhGU19GU1xuZnMveGZzL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1hGUyBmaWxlc3lzdGVtIHN1cHBvcnRcJiMzNDtcbi0tXG5mcy94ZnMvS2NvbmZpZy0yNC1cbmZzL3hmcy9LY29uZmlnOjI1OmNvbmZpZyBYRlNfU1VQUE9SVF9WNFxuZnMveGZzL0tjb25maWctMjYtXHRib29sIFwmIzM0O1N1cHBvcnQgZGVwcmVjYXRlZCBWNCAoY3JjPTApIGZvcm1hdFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTQ5LVxuZnMveGZzL0tjb25maWc6NTA6Y29uZmlnIFhGU19TVVBQT1JUX0FTQ0lJX0NJXG5mcy94ZnMvS2NvbmZpZy01MS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBkZXByZWNhdGVkIGNhc2UtaW5zZW5zaXRpdmUgYXNjaWkgKGFzY2lpLWNpPTEpIGZvcm1hdFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTc2LVxuZnMveGZzL0tjb25maWc6Nzc6Y29uZmlnIFhGU19RVU9UQVxuZnMveGZzL0tjb25maWctNzgtXHRib29sIFwmIzM0O1hGUyBRdW90YSBzdXBwb3J0XCYjMzQ7XG4tLVxuZnMveGZzL0tjb25maWctOTQtXG5mcy94ZnMvS2NvbmZpZzo5NTpjb25maWcgWEZTX1BPU0lYX0FDTFxuZnMveGZzL0tjb25maWctOTYtXHRib29sIFwmIzM0O1hGUyBQT1NJWCBBQ0wgc3VwcG9ydFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTEwNC1cbmZzL3hmcy9LY29uZmlnOjEwNTpjb25maWcgWEZTX1JUXG5mcy94ZnMvS2NvbmZpZy0xMDYtXHRib29sIFwmIzM0O1hGUyBSZWFsdGltZSBzdWJ2b2x1bWUgc3VwcG9ydFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTEzMi1cbmZzL3hmcy9LY29uZmlnOjEzMzpjb25maWcgWEZTX0RSQUlOX0lOVEVOVFNcbmZzL3hmcy9LY29uZmlnLTEzNC1cdGJvb2xcbi0tXG5mcy94ZnMvS2NvbmZpZy0xMzYtXG5mcy94ZnMvS2NvbmZpZzoxMzc6Y29uZmlnIFhGU19MSVZFX0hPT0tTXG5mcy94ZnMvS2NvbmZpZy0xMzgtXHRib29sXG4tLVxuZnMveGZzL0tjb25maWctMTQwLVxuZnMveGZzL0tjb25maWc6MTQxOmNvbmZpZyBYRlNfTUVNT1JZX0JVRlNcbmZzL3hmcy9LY29uZmlnLTE0Mi1cdGJvb2xcbmZzL3hmcy9LY29uZmlnLTE0My1cbmZzL3hmcy9LY29uZmlnOjE0NDpjb25maWcgWEZTX0JUUkVFX0lOX01FTVxuZnMveGZzL0tjb25maWctMTQ1LVx0Ym9vbFxuZnMveGZzL0tjb25maWctMTQ2LVxuZnMveGZzL0tjb25maWc6MTQ3OmNvbmZpZyBYRlNfT05MSU5FX1NDUlVCXG5mcy94ZnMvS2NvbmZpZy0xNDgtXHRib29sIFwmIzM0O1hGUyBvbmxpbmUgbWV0YWRhdGEgY2hlY2sgc3VwcG9ydFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTE2My1cbmZzL3hmcy9LY29uZmlnOjE2NDpjb25maWcgWEZTX09OTElORV9TQ1JVQl9TVEFUU1xuZnMveGZzL0tjb25maWctMTY1LVx0Ym9vbCBcJiMzNDtYRlMgb25saW5lIG1ldGFkYXRhIGNoZWNrIHVzYWdlIGRhdGEgY29sbGVjdGlvblwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTE3OC1cbmZzL3hmcy9LY29uZmlnOjE3OTpjb25maWcgWEZTX09OTElORV9SRVBBSVJcbmZzL3hmcy9LY29uZmlnLTE4MC1cdGJvb2wgXCYjMzQ7WEZTIG9ubGluZSBtZXRhZGF0YSByZXBhaXIgc3VwcG9ydFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTE5My1cbmZzL3hmcy9LY29uZmlnOjE5NDpjb25maWcgWEZTX1dBUk5cbmZzL3hmcy9LY29uZmlnLTE5NS1cdGJvb2wgXCYjMzQ7WEZTIFZlcmJvc2UgV2FybmluZ3NcJiMzNDtcbi0tXG5mcy94ZnMvS2NvbmZpZy0yMDYtXG5mcy94ZnMvS2NvbmZpZzoyMDc6Y29uZmlnIFhGU19ERUJVR1xuZnMveGZzL0tjb25maWctMjA4LVx0Ym9vbCBcJiMzNDtYRlMgRGVidWdnaW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5mcy94ZnMvS2NvbmZpZy0yMTktXG5mcy94ZnMvS2NvbmZpZzoyMjA6Y29uZmlnIFhGU19ERUJVR19FWFBFTlNJVkVcbmZzL3hmcy9LY29uZmlnLTIyMS1cdGJvb2wgXCYjMzQ7WEZTIGV4cGVuc2l2ZSBkZWJ1Z2dpbmcgY2hlY2tzXCYjMzQ7XG4tLVxuZnMveGZzL0tjb25maWctMjMxLVxuZnMveGZzL0tjb25maWc6MjMyOmNvbmZpZyBYRlNfQVNTRVJUX0ZBVEFMXG5mcy94ZnMvS2NvbmZpZy0yMzMtXHRib29sIFwmIzM0O1hGUyBmYXRhbCBhc3NlcnRzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU1ODUKCQkJCQkJCW91dHB1dDogMTE3CgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqWEZTIENvbmZpZ3VyYXRpb24gQXNzZXNzbWVudCBhbmQgUmVwb3J0aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBjb25maWd1cmF0aW9uczogYFhGU19GU2AgYW5kIGBYRlNfUlRgLiBJbW1lZGlhdGVseSwgbXkgYnJhaW4ga2lja3MgaW50byBhc3Nlc3NtZW50IG1vZGUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgZW5hYmxlZCwgd2hhdCBpbXBsaWNhdGlvbnMgdGhpcyBoYXMsIGFuZCBob3cgdG8gZWZmZWN0aXZlbHkgY29tbXVuaWNhdGUgdGhlIHJlc3VsdGluZyBzdGF0ZS4gSSYjMzk7bGwgbmVlZCB0byB1c2UgYHNldC1yZXN1bHRzYCB0byBwcm9wZXJseSBvdXRwdXQgbXkgZmluZGluZ3MuIFRoaXMgZW5zdXJlcyBhIGNsZWFuLCBzdHJ1Y3R1cmVkIHByZXNlbnRhdGlvbiBvZiB0aGUgZmFjdHMuIEdpdmVuIHRoZSBjb250ZXh0LCBJJiMzOTttIGxpa2VseSBkZWFsaW5nIHdpdGggYW4gWEZTIGZpbGVzeXN0ZW0gY29uZmlndXJhdGlvbiBhbmQgYSBSZWFsLXRpbWUgZmlsZXN5c3RlbSBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxOToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7WEZTX0ZTJiMzNDssCiAgICAmIzM0O1hGU19SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmc191cGRhdGVfYmRpX3JhaGVhZCYjMzQ7LAogICAgJiMzNDt4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFhGUyBtb3VudCBhbmQgdW5tb3VudCBwYXRocyB0byBhZGp1c3QgdGhlIGJhY2tpbmcgZGV2aWNlIGluZm8gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuIGEgcmVhbHRpbWUgZGV2aWNlIGlzIHByZXNlbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7WEZTX0ZTJiMzNDssCiAgICAmIzM0O1hGU19SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmc191cGRhdGVfYmRpX3JhaGVhZCYjMzQ7LAogICAgJiMzNDt4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFhGUyBtb3VudCBhbmQgdW5tb3VudCBwYXRocyB0byBhZGp1c3QgdGhlIGJhY2tpbmcgZGV2aWNlIGluZm8gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuIGEgcmVhbHRpbWUgZGV2aWNlIGlzIHByZXNlbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjExLjI5MzgyNTQ1N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMjUxNDM0MjUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlhGU19GU1wiLFxuICAgIFwiWEZTX1JUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZzX3VwZGF0ZV9iZGlfcmFoZWFkXCIsXG4gICAgXCJ4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgWEZTIG1vdW50IGFuZCB1bm1vdW50IHBhdGhzIHRvIGFkanVzdCB0aGUgYmFja2luZyBkZXZpY2UgaW5mbyAoQkRJKSByZWFkYWhlYWQgYW5kIGlvX3BhZ2VzIHNldHRpbmdzIHdoZW4gYSByZWFsdGltZSBkZXZpY2UgaXMgcHJlc2VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGZpbGVzeXN0ZW0gaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxOToyNjoxMS4yOTM4MzI0MjdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0MjU3OTk1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZhZDgxYmI3ZTNlMWJlZjkxOTExZGQ4ZjNkMDM5ZTBjYWRmZGU0NjNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgMjAgMTk6MjY6MDkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19tb3VudC5oIGIvZnMveGZzL3hmc19tb3VudC5oXFxuaW5kZXggNjZhMDJkMWI5YWQ3YTEuLjIxNmEzOGEzNTRlN2MyIDEwMDY0NFxcbi0tLSBhL2ZzL3hmcy94ZnNfbW91bnQuaFxcbisrKyBiL2ZzL3hmcy94ZnNfbW91bnQuaFxcbkBAIC0zNDksNiArMzQ5LDEzIEBAIHR5cGVkZWYgc3RydWN0IHhmc19tb3VudCB7XFxuIFxcbiBcXHQvKiBJbmRleCBvZiB1dWlkIHJlY29yZCBpbiB0aGUgdXVpZCB4YXJyYXkuICovXFxuIFxcdHVuc2lnbmVkIGludFxcdFxcdG1fdXVpZF90YWJsZV9pbmRleDtcXG4rXFxuK1xcdC8qXFxuK1xcdCAqIE9sZCBpb19wYWdlcy9yYV9wYWdlcyB2YWx1ZWQgaW4gdGhlIG1haW4gYmRldiBCREksIGFuZCBvdXIgaW5pdGlhbFxcbitcXHQgKiBjYWxjdWxhdGVkIHZhbHVlcy5cXG4rXFx0ICovXFxuK1xcdHVuc2lnbmVkIGxvbmdcXHRcXHRtX29sZF9pb19wYWdlcywgbV9pbml0aWFsX2lvX3BhZ2VzO1xcbitcXHR1bnNpZ25lZCBsb25nXFx0XFx0bV9vbGRfcmFfcGFnZXMsIG1faW5pdGlhbF9yYV9wYWdlcztcXG4gfSB4ZnNfbW91bnRfdDtcXG4gXFxuICNkZWZpbmUgTV9JR0VPKG1wKVxcdFxcdChcXHUwMDI2KG1wKS1cXHUwMDNlbV9pbm9fZ2VvKVxcbmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX3N1cGVyLmMgYi9mcy94ZnMveGZzX3N1cGVyLmNcXG5pbmRleCA4NTMxZDUyNmZjNDQwOS4uNjNjNGJjYmU2YzJiYzQgMTAwNjQ0XFxuLS0tIGEvZnMveGZzL3hmc19zdXBlci5jXFxuKysrIGIvZnMveGZzL3hmc19zdXBlci5jXFxuQEAgLTU0OCw2ICs1NDgsNTIgQEAgeGZzX29wZW5fZGV2aWNlcyhcXG4gXFx0cmV0dXJuIGVycm9yO1xcbiB9XFxuIFxcbisvKlxcbisgKiBXaGVuIHVzaW5nIGEgUlQgZGV2aWNlIHNvbWUgb3IgYWxsIGRhdGEgSS9PIGlzIHVzaW5nIHRoZSBSVCBkZXZpY2UsIGJ1dFxcbisgKiB0aGUgQkRJIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBtYWluIGRhdGEgZGV2aWNlLiAgV2hlbiB0aGUgdW5kZXJseWluZyBibG9ja1xcbisgKiBkZXZpY2UgZm9yIHRoZSBSVCBkZXZpY2UgaGFzIGxhcmdlciBJL08gc2l6ZXMsIHRoZSBCREkgc2V0dGluZ3MgbWlnaHQgYmVcXG4rICogaW5jb3JyZWN0LCB3aGljaCBpcyBlc3BlY2lhbGx5IGJhZCBpZiB0aGUgbWFpbiBkZXZpY2UgaXMgYSBTU0QgYW5kIHRoZVxcbisgKiBSVCBkZXZpY2UgaXMgYSBIREQsIGFzIHRoZSBpb19vcHQgZml4dXAgaW4gYmxrX2FwcGx5X2JkaV9saW1pdHMgaXMgbWlzc2luZ1xcbisgKiBmb3IgdGhpcyBjYXNlLlxcbisgKlxcbisgKiBVcGRhdGUgdGhlIEJESSB2YWx1ZXMgdG8gdGhlIG1heCBvZiB0aGUgZGF0YSBhbmQgUlQgZGV2aWNlIHRvIGNvdmVyIG91clxcbisgKiBiYXNlcy5cXG4rICovXFxuK3N0YXRpYyB2b2lkXFxuK3hmc191cGRhdGVfYmRpX3JhaGVhZChcXG4rXFx0c3RydWN0IHhmc19tb3VudFxcdCptcClcXG4re1xcbitcXHRzdHJ1Y3QgYmFja2luZ19kZXZfaW5mb1xcdCpydF9iZGkgPVxcbitcXHRcXHRtcC1cXHUwMDNlbV9ydGRldl90YXJncC1cXHUwMDNlYnRfYmRldi1cXHUwMDNlYmRfZGlzay1cXHUwMDNlYmRpO1xcbitcXHRzdHJ1Y3QgYmFja2luZ19kZXZfaW5mb1xcdCpzYl9iZGkgPSBtcC1cXHUwMDNlbV9zdXBlci1cXHUwMDNlc19iZGk7XFxuK1xcbitcXHRtcC1cXHUwMDNlbV9vbGRfaW9fcGFnZXMgPSBzYl9iZGktXFx1MDAzZWlvX3BhZ2VzO1xcbitcXHRtcC1cXHUwMDNlbV9vbGRfcmFfcGFnZXMgPSBzYl9iZGktXFx1MDAzZXJhX3BhZ2VzO1xcbitcXG4rXFx0c2JfYmRpLVxcdTAwM2Vpb19wYWdlcyA9IG1wLVxcdTAwM2VtX2luaXRpYWxfaW9fcGFnZXMgPVxcbitcXHRcXHRtYXgoc2JfYmRpLVxcdTAwM2Vpb19wYWdlcywgcnRfYmRpLVxcdTAwM2Vpb19wYWdlcyk7XFxuK1xcdHNiX2JkaS1cXHUwMDNlcmFfcGFnZXMgPSBtcC1cXHUwMDNlbV9pbml0aWFsX3JhX3BhZ2VzID1cXG4rXFx0XFx0bWF4KHNiX2JkaS1cXHUwMDNlcmFfcGFnZXMsIHJ0X2JkaS1cXHUwMDNlcmFfcGFnZXMpO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZFxcbit4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkKFxcbitcXHRzdHJ1Y3QgeGZzX21vdW50XFx0Km1wKVxcbit7XFxuK1xcdHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvXFx0KnNiX2JkaSA9IG1wLVxcdTAwM2VtX3N1cGVyLVxcdTAwM2VzX2JkaTtcXG4rXFxuK1xcdGlmIChzYl9iZGktXFx1MDAzZWlvX3BhZ2VzID09IG1wLVxcdTAwM2VtX2luaXRpYWxfaW9fcGFnZXMpXFxuK1xcdFxcdHNiX2JkaS1cXHUwMDNlaW9fcGFnZXMgPSBtcC1cXHUwMDNlbV9vbGRfaW9fcGFnZXM7XFxuK1xcdGVsc2VcXG4rXFx0XFx0eGZzX2luZm8obXAsIFxcXCJpb19wYWdlcyBjaGFuZ2VkIGZyb20gJWx1IHRvICVsdSwgbm90IHJlc3RvcmluZy5cXFwiLFxcbitcXHRcXHRcXHRcXHRtcC1cXHUwMDNlbV9pbml0aWFsX2lvX3BhZ2VzLCBzYl9iZGktXFx1MDAzZWlvX3BhZ2VzKTtcXG4rXFx0aWYgKHNiX2JkaS1cXHUwMDNlcmFfcGFnZXMgPT0gbXAtXFx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcylcXG4rXFx0XFx0c2JfYmRpLVxcdTAwM2VyYV9wYWdlcyA9IG1wLVxcdTAwM2VtX29sZF9yYV9wYWdlcztcXG4rXFx0ZWxzZVxcbitcXHRcXHR4ZnNfaW5mbyhtcCwgXFxcInJhX3BhZ2VzIGNoYW5nZWQgZnJvbSAlbHUgdG8gJWx1LCBub3QgcmVzdG9yaW5nLlxcXCIsXFxuK1xcdFxcdFxcdFxcdG1wLVxcdTAwM2VtX2luaXRpYWxfcmFfcGFnZXMsIHNiX2JkaS1cXHUwMDNlcmFfcGFnZXMpO1xcbit9XFxuK1xcbiAvKlxcbiAgKiBTZXR1cCB4ZnNfbW91bnQgYnVmZmVyIHRhcmdldCBwb2ludGVycyBiYXNlZCBvbiBzdXBlcmJsb2NrXFxuICAqL1xcbkBAIC01ODUsNiArNjMxLDcgQEAgeGZzX3NldHVwX2RldmljZXMoXFxuIFxcdFxcdFxcdFxcdG1wLVxcdTAwM2VtX3NiLnNiX3NlY3RzaXplLCBtcC1cXHUwMDNlbV9zYi5zYl9yYmxvY2tzKTtcXG4gXFx0XFx0aWYgKGVycm9yKVxcbiBcXHRcXHRcXHRyZXR1cm4gZXJyb3I7XFxuK1xcdFxcdHhmc191cGRhdGVfYmRpX3JhaGVhZChtcCk7XFxuIFxcdH1cXG4gXFxuIFxcdHJldHVybiAwO1xcbkBAIC0yMjgzLDggKzIzMzAsMTIgQEAgc3RhdGljIHZvaWRcXG4geGZzX2tpbGxfc2IoXFxuIFxcdHN0cnVjdCBzdXBlcl9ibG9ja1xcdFxcdCpzYilcXG4ge1xcbitcXHRzdHJ1Y3QgeGZzX21vdW50XFx0XFx0Km1wID0gWEZTX00oc2IpO1xcbitcXG4rXFx0aWYgKG1wLVxcdTAwM2VtX3J0ZGV2X3RhcmdwIFxcdTAwMjZcXHUwMDI2IG1wLVxcdTAwM2VtX3J0ZGV2X3RhcmdwICE9IG1wLVxcdTAwM2VtX2RkZXZfdGFyZ3ApXFxuK1xcdFxcdHhmc19yZXN0b3JlX2JkaV9yYWhlYWQobXApO1xcbiBcXHRraWxsX2Jsb2NrX3N1cGVyKHNiKTtcXG4tXFx0eGZzX21vdW50X2ZyZWUoWEZTX00oc2IpKTtcXG4rXFx0eGZzX21vdW50X2ZyZWUobXApO1xcbiB9XFxuIFxcbiBzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgeGZzX2ZzX3R5cGUgPSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjEyLjAzNzMzMDExMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIwNTA3OTE2Mzg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlhGU19GU1wiLFxuICAgIFwiWEZTX1JUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZzX3VwZGF0ZV9iZGlfcmFoZWFkXCIsXG4gICAgXCJ4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgWEZTIG1vdW50IGFuZCB1bm1vdW50IHBhdGhzIHRvIGFkanVzdCB0aGUgYmFja2luZyBkZXZpY2UgaW5mbyAoQkRJKSByZWFkYWhlYWQgYW5kIGlvX3BhZ2VzIHNldHRpbmdzIHdoZW4gYSByZWFsdGltZSBkZXZpY2UgaXMgcHJlc2VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGZpbGVzeXN0ZW0gaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDZhZDgxYmI3ZTNlMWJlZjkxOTExZGQ4ZjNkMDM5ZTBjYWRmZGU0NjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAxOToyNjowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfbW91bnQuaCBiL2ZzL3hmcy94ZnNfbW91bnQuaFxuaW5kZXggNjZhMDJkMWI5YWQ3YTEuLjIxNmEzOGEzNTRlN2MyIDEwMDY0NFxuLS0tIGEvZnMveGZzL3hmc19tb3VudC5oXG4rKysgYi9mcy94ZnMveGZzX21vdW50LmhcbkBAIC0zNDksNiArMzQ5LDEzIEBAIHR5cGVkZWYgc3RydWN0IHhmc19tb3VudCB7XG4gXG4gXHQvKiBJbmRleCBvZiB1dWlkIHJlY29yZCBpbiB0aGUgdXVpZCB4YXJyYXkuICovXG4gXHR1bnNpZ25lZCBpbnRcdFx0bV91dWlkX3RhYmxlX2luZGV4O1xuK1xuK1x0LypcbitcdCAqIE9sZCBpb19wYWdlcy9yYV9wYWdlcyB2YWx1ZWQgaW4gdGhlIG1haW4gYmRldiBCREksIGFuZCBvdXIgaW5pdGlhbFxuK1x0ICogY2FsY3VsYXRlZCB2YWx1ZXMuXG4rXHQgKi9cbitcdHVuc2lnbmVkIGxvbmdcdFx0bV9vbGRfaW9fcGFnZXMsIG1faW5pdGlhbF9pb19wYWdlcztcbitcdHVuc2lnbmVkIGxvbmdcdFx0bV9vbGRfcmFfcGFnZXMsIG1faW5pdGlhbF9yYV9wYWdlcztcbiB9IHhmc19tb3VudF90O1xuIFxuICNkZWZpbmUgTV9JR0VPKG1wKVx0XHQoXHUwMDI2KG1wKS1cdTAwM2VtX2lub19nZW8pXG5kaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19zdXBlci5jIGIvZnMveGZzL3hmc19zdXBlci5jXG5pbmRleCA4NTMxZDUyNmZjNDQwOS4uNjNjNGJjYmU2YzJiYzQgMTAwNjQ0XG4tLS0gYS9mcy94ZnMveGZzX3N1cGVyLmNcbisrKyBiL2ZzL3hmcy94ZnNfc3VwZXIuY1xuQEAgLTU0OCw2ICs1NDgsNTIgQEAgeGZzX29wZW5fZGV2aWNlcyhcbiBcdHJldHVybiBlcnJvcjtcbiB9XG4gXG4rLypcbisgKiBXaGVuIHVzaW5nIGEgUlQgZGV2aWNlIHNvbWUgb3IgYWxsIGRhdGEgSS9PIGlzIHVzaW5nIHRoZSBSVCBkZXZpY2UsIGJ1dFxuKyAqIHRoZSBCREkgaXMgaW5oZXJpdGVkIGZyb20gdGhlIG1haW4gZGF0YSBkZXZpY2UuICBXaGVuIHRoZSB1bmRlcmx5aW5nIGJsb2NrXG4rICogZGV2aWNlIGZvciB0aGUgUlQgZGV2aWNlIGhhcyBsYXJnZXIgSS9PIHNpemVzLCB0aGUgQkRJIHNldHRpbmdzIG1pZ2h0IGJlXG4rICogaW5jb3JyZWN0LCB3aGljaCBpcyBlc3BlY2lhbGx5IGJhZCBpZiB0aGUgbWFpbiBkZXZpY2UgaXMgYSBTU0QgYW5kIHRoZVxuKyAqIFJUIGRldmljZSBpcyBhIEhERCwgYXMgdGhlIGlvX29wdCBmaXh1cCBpbiBibGtfYXBwbHlfYmRpX2xpbWl0cyBpcyBtaXNzaW5nXG4rICogZm9yIHRoaXMgY2FzZS5cbisgKlxuKyAqIFVwZGF0ZSB0aGUgQkRJIHZhbHVlcyB0byB0aGUgbWF4IG9mIHRoZSBkYXRhIGFuZCBSVCBkZXZpY2UgdG8gY292ZXIgb3VyXG4rICogYmFzZXMuXG4rICovXG4rc3RhdGljIHZvaWRcbit4ZnNfdXBkYXRlX2JkaV9yYWhlYWQoXG4rXHRzdHJ1Y3QgeGZzX21vdW50XHQqbXApXG4re1xuK1x0c3RydWN0IGJhY2tpbmdfZGV2X2luZm9cdCpydF9iZGkgPVxuK1x0XHRtcC1cdTAwM2VtX3J0ZGV2X3RhcmdwLVx1MDAzZWJ0X2JkZXYtXHUwMDNlYmRfZGlzay1cdTAwM2ViZGk7XG4rXHRzdHJ1Y3QgYmFja2luZ19kZXZfaW5mb1x0KnNiX2JkaSA9IG1wLVx1MDAzZW1fc3VwZXItXHUwMDNlc19iZGk7XG4rXG4rXHRtcC1cdTAwM2VtX29sZF9pb19wYWdlcyA9IHNiX2JkaS1cdTAwM2Vpb19wYWdlcztcbitcdG1wLVx1MDAzZW1fb2xkX3JhX3BhZ2VzID0gc2JfYmRpLVx1MDAzZXJhX3BhZ2VzO1xuK1xuK1x0c2JfYmRpLVx1MDAzZWlvX3BhZ2VzID0gbXAtXHUwMDNlbV9pbml0aWFsX2lvX3BhZ2VzID1cbitcdFx0bWF4KHNiX2JkaS1cdTAwM2Vpb19wYWdlcywgcnRfYmRpLVx1MDAzZWlvX3BhZ2VzKTtcbitcdHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9IG1wLVx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcyA9XG4rXHRcdG1heChzYl9iZGktXHUwMDNlcmFfcGFnZXMsIHJ0X2JkaS1cdTAwM2VyYV9wYWdlcyk7XG4rfVxuK1xuK3N0YXRpYyB2b2lkXG4reGZzX3Jlc3RvcmVfYmRpX3JhaGVhZChcbitcdHN0cnVjdCB4ZnNfbW91bnRcdCptcClcbit7XG4rXHRzdHJ1Y3QgYmFja2luZ19kZXZfaW5mb1x0KnNiX2JkaSA9IG1wLVx1MDAzZW1fc3VwZXItXHUwMDNlc19iZGk7XG4rXG4rXHRpZiAoc2JfYmRpLVx1MDAzZWlvX3BhZ2VzID09IG1wLVx1MDAzZW1faW5pdGlhbF9pb19wYWdlcylcbitcdFx0c2JfYmRpLVx1MDAzZWlvX3BhZ2VzID0gbXAtXHUwMDNlbV9vbGRfaW9fcGFnZXM7XG4rXHRlbHNlXG4rXHRcdHhmc19pbmZvKG1wLCBcImlvX3BhZ2VzIGNoYW5nZWQgZnJvbSAlbHUgdG8gJWx1LCBub3QgcmVzdG9yaW5nLlwiLFxuK1x0XHRcdFx0bXAtXHUwMDNlbV9pbml0aWFsX2lvX3BhZ2VzLCBzYl9iZGktXHUwMDNlaW9fcGFnZXMpO1xuK1x0aWYgKHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9PSBtcC1cdTAwM2VtX2luaXRpYWxfcmFfcGFnZXMpXG4rXHRcdHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9IG1wLVx1MDAzZW1fb2xkX3JhX3BhZ2VzO1xuK1x0ZWxzZVxuK1x0XHR4ZnNfaW5mbyhtcCwgXCJyYV9wYWdlcyBjaGFuZ2VkIGZyb20gJWx1IHRvICVsdSwgbm90IHJlc3RvcmluZy5cIixcbitcdFx0XHRcdG1wLVx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcywgc2JfYmRpLVx1MDAzZXJhX3BhZ2VzKTtcbit9XG4rXG4gLypcbiAgKiBTZXR1cCB4ZnNfbW91bnQgYnVmZmVyIHRhcmdldCBwb2ludGVycyBiYXNlZCBvbiBzdXBlcmJsb2NrXG4gICovXG5AQCAtNTg1LDYgKzYzMSw3IEBAIHhmc19zZXR1cF9kZXZpY2VzKFxuIFx0XHRcdFx0bXAtXHUwMDNlbV9zYi5zYl9zZWN0c2l6ZSwgbXAtXHUwMDNlbV9zYi5zYl9yYmxvY2tzKTtcbiBcdFx0aWYgKGVycm9yKVxuIFx0XHRcdHJldHVybiBlcnJvcjtcbitcdFx0eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTtcbiBcdH1cbiBcbiBcdHJldHVybiAwO1xuQEAgLTIyODMsOCArMjMzMCwxMiBAQCBzdGF0aWMgdm9pZFxuIHhmc19raWxsX3NiKFxuIFx0c3RydWN0IHN1cGVyX2Jsb2NrXHRcdCpzYilcbiB7XG4rXHRzdHJ1Y3QgeGZzX21vdW50XHRcdCptcCA9IFhGU19NKHNiKTtcbitcbitcdGlmIChtcC1cdTAwM2VtX3J0ZGV2X3RhcmdwIFx1MDAyNlx1MDAyNiBtcC1cdTAwM2VtX3J0ZGV2X3RhcmdwICE9IG1wLVx1MDAzZW1fZGRldl90YXJncClcbitcdFx0eGZzX3Jlc3RvcmVfYmRpX3JhaGVhZChtcCk7XG4gXHRraWxsX2Jsb2NrX3N1cGVyKHNiKTtcbi1cdHhmc19tb3VudF9mcmVlKFhGU19NKHNiKSk7XG4rXHR4ZnNfbW91bnRfZnJlZShtcCk7XG4gfVxuIFxuIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB4ZnNfZnNfdHlwZSA9IHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjEyLjAzNzMzMTg3MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NTk3MjgwMjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqWEZTIFJlYWRhaGVhZCBNYW5hZ2VtZW50IGZvciBSZWFsdGltZSBEZXZpY2VzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIFhGUyBmaWxlc3lzdGVtLiBJdCBpbnRyb2R1Y2VzIHRoZXNlIG5ldyBmdW5jdGlvbnMsIGB4ZnNfdXBkYXRlX2JkaV9yYWhlYWRgIGFuZCBgeGZzX3Jlc3RvcmVfYmRpX3JhaGVhZGAsIHJpZ2h0IGludG8gYGZzL3hmcy94ZnNfc3VwZXIuY2AuIFRoZSBjb3JlIGlkZWEgaXMgdG8gdHdlYWsgdGhlIGJhY2tpbmdfZGV2X2luZm8gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuIGFuIFhGUyBmaWxlc3lzdGVtIGlzIG1vdW50ZWQgd2l0aCBhIHJlYWx0aW1lIGRldmljZSwgc3BlY2lmaWNhbGx5IHdoZW4gYG1fcnRkZXZfdGFyZ3BgIGlzIGludm9sdmVkLiBUaGlzIGlzIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgZnVuY3Rpb25hbCBjaGFuZ2UsIGltcGFjdGluZyB0aGUgbW91bnQgYW5kIHVubW91bnQgcGF0aHMgd2l0aGluIFhGUy5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIG1ha2Ugc3VyZSB0aGlzIGFsbCBsaW5lcyB1cCB3aXRoIHRoZSByZWxldmFudCBYRlMgY29uZmlndXJhdGlvbnMuIFdlIGtub3cgWEZTIGl0c2VsZiBpcyBlbmFibGVkIHRocm91Z2ggYENPTkZJR19YRlNfRlNgLCBidXQgdGhlIHJlYWx0aW1lIHN1YnZvbHVtZSBhc3BlY3QgdHlwaWNhbGx5IGRlcGVuZHMgb24gYENPTkZJR19YRlNfUlRgLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0IGBDT05GSUdfWEZTX1JUYCBpcyBpbmRlZWQgYSBkZXBlbmRlbmN5IGhlcmUuIEl0J3MgY3J1Y2lhbCB3ZSdyZSBub3QgbWlzc2luZyBhbnkgY29uZmlndXJhdGlvbiBzdGVwcyB0byBlbnN1cmUgZXZlcnl0aGluZyBiZWhhdmVzIGFzIGV4cGVjdGVkIHdpdGggdGhlc2UgcmVhbHRpbWUgZGV2aWNlcy4gR290dGEgbWFrZSBzdXJlIHdlIGNvdmVyIGFsbCB0aGUgYmFzZXMhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMTIsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxOToyNjoxNi44OTcwNjI1ODlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk5NzY4OTg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19YRlNfUlRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMveGZzL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy94ZnMvTWFrZWZpbGU9MTY9eGZzLXlcXHRcXHRcXHRcXHQrPSAkKGFkZHByZWZpeCBsaWJ4ZnMvLCBcXFxcXFxuLS1cXG5mcy94ZnMvTWFrZWZpbGUtNjMtIyB4ZnNfcnRiaXRtYXAgaXMgc2hhcmVkIHdpdGggbGlieGZzXFxuZnMveGZzL01ha2VmaWxlOjY0Onhmcy0kKENPTkZJR19YRlNfUlQpXFx0XFx0Kz0gJChhZGRwcmVmaXggbGlieGZzLywgXFxcXFxcbmZzL3hmcy9NYWtlZmlsZS02NS1cXHRcXHRcXHRcXHQgICB4ZnNfcnRiaXRtYXAubyBcXFxcXFxuLS1cXG5mcy94ZnMvTWFrZWZpbGU9MTMzPXhmcy0kKENPTkZJR19YRlNfUVVPVEEpXFx0XFx0Kz0geGZzX2RxdW90Lm8gXFxcXFxcbi0tXFxuZnMveGZzL01ha2VmaWxlLTE0MS0jIHhmc19ydGJpdG1hcCBpcyBzaGFyZWQgd2l0aCBsaWJ4ZnNcXG5mcy94ZnMvTWFrZWZpbGU6MTQyOnhmcy0kKENPTkZJR19YRlNfUlQpXFx0XFx0Kz0geGZzX3J0YWxsb2MubyBcXFxcXFxuZnMveGZzL01ha2VmaWxlLTE0My1cXHRcXHRcXHRcXHQgICB4ZnNfem9uZV9hbGxvYy5vIFxcXFxcXG4tLVxcbmZzL3hmcy9NYWtlZmlsZT0yMDA9eGZzLSQoQ09ORklHX1hGU19PTkxJTkVfU0NSVUJfU1RBVFMpICs9IHNjcnViL3N0YXRzLm9cXG5mcy94ZnMvTWFrZWZpbGUtMjAxLVxcbmZzL3hmcy9NYWtlZmlsZToyMDI6eGZzLSQoQ09ORklHX1hGU19SVClcXHRcXHQrPSAkKGFkZHByZWZpeCBzY3J1Yi8sIFxcXFxcXG5mcy94ZnMvTWFrZWZpbGUtMjAzLVxcdFxcdFxcdFxcdCAgIHJnc3VwZXIubyBcXFxcXFxuLS1cXG5mcy94ZnMvTWFrZWZpbGU9MjE4PXhmcy15XFx0XFx0XFx0XFx0Kz0gJChhZGRwcmVmaXggc2NydWIvLCBcXFxcXFxuLS1cXG5mcy94ZnMvTWFrZWZpbGUtMjQzLVxcbmZzL3hmcy9NYWtlZmlsZToyNDQ6eGZzLSQoQ09ORklHX1hGU19SVClcXHRcXHQrPSAkKGFkZHByZWZpeCBzY3J1Yi8sIFxcXFxcXG5mcy94ZnMvTWFrZWZpbGUtMjQ1LVxcdFxcdFxcdFxcdCAgIHJ0Yml0bWFwX3JlcGFpci5vIFxcXFxcXG4tLVxcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmg9Mzc4PXR5cGVkZWYgaW50ICgqeGZzX3J0YWxsb2NfcXVlcnlfcmFuZ2VfZm4pKFxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaC0zODMtXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaDozODQ6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oLTM4NS12b2lkIHhmc19ydGJ1Zl9jYWNoZV9yZWxzZShzdHJ1Y3QgeGZzX3J0YWxsb2NfYXJncyAqYXJncyk7XFxuLS1cXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oPTQyNz1pbnQgeGZzX3J0c3VtbWFyeV9jcmVhdGUoc3RydWN0IHhmc19ydGdyb3VwICpydGcsIHN0cnVjdCB4ZnNfaW5vZGUgKmlwLFxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaC00MjktXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaDo0MzA6I2Vsc2UgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtNDMxLSMgZGVmaW5lIHhmc19ydGZyZWVfZXh0ZW50KHQsYixsKVxcdFxcdFxcdCgtRU5PU1lTKVxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaD00NDY9eGZzX3J0Yml0bWFwX2Jsb2NrY291bnRfbGVuKHN0cnVjdCB4ZnNfbW91bnQgKm1wLCB4ZnNfcnRieGxlbl90IHJ0ZXh0ZW50cylcXG4tLVxcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtNDUwLX1cXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oOjQ1MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtNDUyLVxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oPTI1OT14ZnNfZGFkZHJfdG9fcnRiKFxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oLTI3Ny1cXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg6Mjc4OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oLTI3OS1pbnQgeGZzX3J0Z3JvdXBfYWxsb2Moc3RydWN0IHhmc19tb3VudCAqbXAsIHhmc19yZ251bWJlcl90IHJnbm8sXFxuLS1cXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg9MzQ5PXN0YXRpYyBpbmxpbmUgaW50IHhmc19pbml0aWFsaXplX3J0Z3JvdXBzKHN0cnVjdCB4ZnNfbW91bnQgKm1wLFxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oLTM2My0jIGRlZmluZSB4ZnNfcnRncm91cF9nZXRfZ2VvbWV0cnkocnRnLCByZ2VvKVxcdCgtRU9QTk9UU1VQUClcXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg6MzY0OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oLTM2NS1cXG4tLVxcbmZzL3hmcy9zY3J1Yi9ibWFwX3JlcGFpci5jPTM1NT14cmVwX2JtYXBfc2Nhbl9hZyhcXG4tLVxcbmZzL3hmcy9zY3J1Yi9ibWFwX3JlcGFpci5jLTM3MC1cXG5mcy94ZnMvc2NydWIvYm1hcF9yZXBhaXIuYzozNzE6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvYm1hcF9yZXBhaXIuYy0zNzItLyogQ2hlY2sgZm9yIGFueSBvYnZpb3VzIGVycm9ycyBvciBjb25mbGljdHMgaW4gdGhlIGZpbGUgbWFwcGluZy4gKi9cXG4tLVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uYz03MDI9eGNoa19hZ19pbml0KFxcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5jLTcxNi1cXG5mcy94ZnMvc2NydWIvY29tbW9uLmM6NzE3OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL2NvbW1vbi5jLTcxOC0vKlxcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5jPTg2MT14Y2hrX3J0Z3JvdXBfZnJlZShcXG4tLVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uYy04NzEtfVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uYzo4NzI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMvc2NydWIvY29tbW9uLmMtODczLVxcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5oPTgzPWludCB4Y2hrX3NldHVwX21ldGFwYXRoKHN0cnVjdCB4ZnNfc2NydWIgKnNjKTtcXG5mcy94ZnMvc2NydWIvY29tbW9uLmg6ODQ6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtODUtaW50IHhjaGtfc2V0dXBfcnRiaXRtYXAoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5oPTEyND14Y2hrX2FnX2luaXRfZXhpc3RpbmcoXFxuLS1cXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTMzLVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uaDoxMzQ6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTM1LVxcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5oPTE1OT12b2lkIHhjaGtfcnRncm91cF9mcmVlKHN0cnVjdCB4ZnNfc2NydWIgKnNjLCBzdHJ1Y3QgeGNoa19ydCAqc3IpO1xcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5oLTE2Ni0jIGRlZmluZSB4Y2hrX3J0Z3JvdXBfZnJlZShzYywgc3IpXFx0XFx0XFx0ZG8geyB9IHdoaWxlICgwKVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uaDoxNjc6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTY4LVxcbi0tXFxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYz0yOTQ9eGNoa19mc2NvdW50X2FnZ3JlZ2F0ZV9hZ2NvdW50cyhcXG4tLVxcbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmMtMzg3LVxcbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmM6Mzg4OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYy0zODktU1RBVElDIGludFxcbi0tXFxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYz00NDM9eGNoa19mc2NvdW50X2NvdW50X2ZyZXh0ZW50cyhcXG4tLVxcbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmMtNDUwLX1cXG5mcy94ZnMvc2NydWIvZnNjb3VudGVycy5jOjQ1MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmMtNDUyLVxcbi0tXFxuZnMveGZzL3NjcnViL21ldGFwYXRoLmM9ODc9eGNoa19zZXR1cF9tZXRhcGF0aF9zY2FuKFxcbi0tXFxuZnMveGZzL3NjcnViL21ldGFwYXRoLmMtMTI0LVxcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jOjEyNTojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jLTEyNi0vKiBTY2FuIHRoZSAvcnRncm91cHMgZGlyZWN0b3J5IGl0c2VsZi4gKi9cXG4tLVxcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jPTE0MD14Y2hrX3NldHVwX21ldGFwYXRoX3J0Z2lub2RlKFxcbi0tXFxuZnMveGZzL3NjcnViL21ldGFwYXRoLmMtMTY3LSMgZGVmaW5lIHhjaGtfc2V0dXBfbWV0YXBhdGhfcnRnaW5vZGUoLi4uKVxcdCgtRU5PRU5UKVxcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jOjE2ODojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jLTE2OS1cXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmM9ODY4PXhyZXBfcmVhcF9mc2Jsb2NrcyhcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmMtODk2LVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmM6ODk3OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3JlYXAuYy04OTgtLypcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmM9MTE1Mz14cmVwX3JlYXBfcnRibG9ja3MoXFxuLS1cXG5mcy94ZnMvc2NydWIvcmVhcC5jLTExNzgtfVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmM6MTE3OTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZWFwLmMtMTE4MC1cXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmg9MTc9aW50IHhyZXBfcmVhcF9tZXRhZGlyX2ZzYmxvY2tzKHN0cnVjdCB4ZnNfc2NydWIgKnNjLFxcbi0tXFxuZnMveGZzL3NjcnViL3JlYXAuaC0xOS1cXG5mcy94ZnMvc2NydWIvcmVhcC5oOjIwOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3JlYXAuaC0yMS1pbnQgeHJlcF9yZWFwX3J0YmxvY2tzKHN0cnVjdCB4ZnNfc2NydWIgKnNjLCBzdHJ1Y3QgeHJ0Yl9iaXRtYXAgKmJpdG1hcCxcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMjQtIyBkZWZpbmUgeHJlcF9yZWFwX3J0YmxvY2tzKC4uLilcXHQoLUVPUE5PVFNVUFApXFxuZnMveGZzL3NjcnViL3JlYXAuaDoyNTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMjYtXFxuLS1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM9MjgxPXhyZXBfY2FsY19hZ19yZXNibGtzKFxcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5jLTM4OC1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM6Mzg5OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3JlcGFpci5jLTM5MC0vKlxcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5jPTM5Nj14cmVwX2NhbGNfcnRncm91cF9yZXNibGtzKFxcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5jLTQyMS19XFxuZnMveGZzL3NjcnViL3JlcGFpci5jOjQyMjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy00MjMtXFxuLS1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM9OTc2PXhyZXBfYWdfaW5pdChcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy05OTgtXFxuZnMveGZzL3NjcnViL3JlcGFpci5jOjk5OTojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDAwLS8qIEluaXRpYWxpemUgYWxsIHRoZSBidHJlZSBjdXJzb3JzIGZvciBhIFJUIHJlcGFpci4gKi9cXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYz0xMDQ1PXhyZXBfcmVxdWlyZV9ydGV4dF9pbnVzZShcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDczLX1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM6MTA3NDojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDc1LVxcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5oPTEwND1pbnQgeHJlcF9hZ19pbml0KHN0cnVjdCB4ZnNfc2NydWIgKnNjLCBzdHJ1Y3QgeGZzX3BlcmFnICpwYWcsXFxuZnMveGZzL3NjcnViL3JlcGFpci5oLTEwNS1cXHRcXHRzdHJ1Y3QgeGNoa19hZyAqc2EpO1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaDoxMDY6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTA3LWludCB4cmVwX3J0Z3JvdXBfaW5pdChzdHJ1Y3QgeGZzX3NjcnViICpzYywgc3RydWN0IHhmc19ydGdyb3VwICpydGcsXFxuLS1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg9MTEyPXhmc19leHRsZW5fdCB4cmVwX2NhbGNfcnRncm91cF9yZXNibGtzKHN0cnVjdCB4ZnNfc2NydWIgKnNjKTtcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xMTUtIyBkZWZpbmUgeHJlcF9jYWxjX3J0Z3JvdXBfcmVzYmxrcyhzYylcXHRcXHRcXHQoMClcXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg6MTE2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3NjcnViL3JlcGFpci5oLTExNy1cXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaD0xNDg9aW50IHhyZXBfbWV0YXBhdGgoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xNDktXFxuZnMveGZzL3NjcnViL3JlcGFpci5oOjE1MDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xNTEtaW50IHhyZXBfcnRiaXRtYXAoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5oPTE1NT1pbnQgeHJlcF9ydHJlZmNvdW50YnQoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5oLTE2MS0jIGRlZmluZSB4cmVwX3J0cmVmY291bnRidFxcdFxcdHhyZXBfbm90c3VwcG9ydGVkXFxuZnMveGZzL3NjcnViL3JlcGFpci5oOjE2MjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xNjMtXFxuLS1cXG5mcy94ZnMvc2NydWIvc2NydWIuaD0yODI9aW50IHhjaGtfbWV0YXBhdGgoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbmZzL3hmcy9zY3J1Yi9zY3J1Yi5oOjI4MzojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi9zY3J1Yi5oLTI4NC1pbnQgeGNoa19ydGJpdG1hcChzdHJ1Y3QgeGZzX3NjcnViICpzYyk7XFxuLS1cXG5mcy94ZnMvc2NydWIvc2NydWIuaD0zMjM9dm9pZCB4Y2hrX3hyZWZfaXNfbm90X2Nvd19zdGFnaW5nKHN0cnVjdCB4ZnNfc2NydWIgKnNjLCB4ZnNfYWdibG9ja190IGJubyxcXG5mcy94ZnMvc2NydWIvc2NydWIuaC0zMjQtXFx0XFx0eGZzX2V4dGxlbl90IGxlbik7XFxuZnMveGZzL3NjcnViL3NjcnViLmg6MzI1OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3NjcnViLmgtMzI2LXZvaWQgeGNoa194cmVmX2lzX3VzZWRfcnRfc3BhY2Uoc3RydWN0IHhmc19zY3J1YiAqc2MsIHhmc19ydGJsb2NrX3QgcnRibm8sXFxuLS1cXG5mcy94ZnMvc2NydWIvdHJhY2UuaD0xMTk4PVRSQUNFX0VWRU5UKHhmYXJyYXlfc29ydF9zdGF0cyxcXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNDItXFxuZnMveGZzL3NjcnViL3RyYWNlLmg6MTI0MzojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNDQtVFJBQ0VfRVZFTlQoeGNoa19ydHN1bV9yZWNvcmRfZnJlZSxcXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNzUtKTtcXG5mcy94ZnMvc2NydWIvdHJhY2UuaDoxMjc2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMTI3Ny1cXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oPTIzMTM9VFJBQ0VfRVZFTlQoeHJlcF9jYWxjX2FnX3Jlc2Jsa3NfYnRzaXplLFxcbi0tXFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM0Mi1cXG5mcy94ZnMvc2NydWIvdHJhY2UuaDoyMzQzOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM0NC1UUkFDRV9FVkVOVCh4cmVwX2NhbGNfcnRncm91cF9yZXNibGtzX2J0c2l6ZSxcXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTIzNjUtKTtcXG5mcy94ZnMvc2NydWIvdHJhY2UuaDoyMzY2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM2Ny1cXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oPTM2NTg9REVGSU5FX1hDSEtfTUVUQVBBVEhfRVZFTlQoeHJlcF9tZXRhcGF0aF9saW5rKTtcXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zNjU5LVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oOjM2NjA6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zNjYxLURFQ0xBUkVfRVZFTlRfQ0xBU1MoeHJlcF9ydGJpdG1hcF9jbGFzcyxcXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oPTM4MDg9VFJBQ0VfRVZFTlQoeHJlcF9ydHJtYXBfZm91bmQsXFxuLS1cXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zODM3LSk7XFxuZnMveGZzL3NjcnViL3RyYWNlLmg6MzgzODojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTM4MzktXFxuLS1cXG5mcy94ZnMveGZzX2FvcHMuYz0yMjc9eGZzX2VuZF9iaW8oXFxuLS1cXG5mcy94ZnMveGZzX2FvcHMuYy0yMzgtXFx0ICovXFxuZnMveGZzL3hmc19hb3BzLmM6MjM5OlxcdGlmIChJU19FTkFCTEVEKENPTkZJR19YRlNfUlQpIFxcdTAwMjZcXHUwMDI2IGJpb19pc196b25lX2FwcGVuZChiaW8pKSB7XFxuZnMveGZzL3hmc19hb3BzLmMtMjQwLVxcdFxcdGlvZW5kLVxcdTAwM2Vpb19zZWN0b3IgPSBiaW8tXFx1MDAzZWJpX2l0ZXIuYmlfc2VjdG9yO1xcbi0tXFxuZnMveGZzL3hmc19ibWFwX3V0aWwuaD0xOD1zdHJ1Y3QgeGZzX3pvbmVfYWxsb2NfY3R4O1xcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMTktXFxuZnMveGZzL3hmc19ibWFwX3V0aWwuaDoyMDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMjEtaW50XFx0eGZzX2JtYXBfcnRhbGxvYyhzdHJ1Y3QgeGZzX2JtYWxsb2NhICphcCk7XFxuZnMveGZzL3hmc19ibWFwX3V0aWwuaDoyMjojZWxzZSAvKiAhQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMjMtLypcXG4tLVxcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmg9Mjg9eGZzX2JtYXBfcnRhbGxvYyhzdHJ1Y3QgeGZzX2JtYWxsb2NhICphcClcXG4tLVxcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMzEtfVxcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmg6MzI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMveGZzX2JtYXBfdXRpbC5oLTMzLVxcbi0tXFxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmM9MjE2PXhsb2dfcmVjb3Zlcl92YWxpZGF0ZV9idWZfdHlwZShcXG4tLVxcbmZzL3hmcy94ZnNfYnVmX2l0ZW1fcmVjb3Zlci5jLTQwMS1cXHRcXHRicmVhaztcXG5mcy94ZnMveGZzX2J1Zl9pdGVtX3JlY292ZXIuYzo0MDI6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX2J1Zl9pdGVtX3JlY292ZXIuYy00MDMtXFx0Y2FzZSBYRlNfQkxGVF9SVEJJVE1BUF9CVUY6XFxuLS1cXG5mcy94ZnMveGZzX2J1Zl9pdGVtX3JlY292ZXIuYy00MTYtXFx0XFx0YnJlYWs7XFxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmM6NDE3OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDE4LVxcdGRlZmF1bHQ6XFxuLS1cXG5mcy94ZnMveGZzX2Rpc2NhcmQuYz0zODk9eGZzX3RyaW1fZGF0YWRldl9leHRlbnRzKFxcbi0tXFxuZnMveGZzL3hmc19kaXNjYXJkLmMtNDI3LVxcbmZzL3hmcy94ZnNfZGlzY2FyZC5jOjQyODojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZGlzY2FyZC5jLTQyOS1zdHJ1Y3QgeGZzX3RyaW1fcnRkZXYge1xcbi0tXFxuZnMveGZzL3hmc19kaXNjYXJkLmM9NzM5PXhmc190cmltX3J0ZGV2X2V4dGVudHMoXFxuLS1cXG5mcy94ZnMveGZzX2Rpc2NhcmQuYy03OTUtIyBkZWZpbmUgeGZzX3RyaW1fcnRkZXZfZXh0ZW50cyguLi4pXFx0KC1FT1BOT1RTVVBQKVxcbmZzL3hmcy94ZnNfZGlzY2FyZC5jOjc5NjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfZGlzY2FyZC5jLTc5Ny1cXG4tLVxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM9NzQxPWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfYWdmbF9mcmVlX2RlZmVyX3R5cGUgPSB7XFxuLS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTc1Mi1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jOjc1MzojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtNzU0LS8qIENyZWF0ZSBhIHJlYWx0aW1lIGV4dGVudCBmcmVlaW5nICovXFxuLS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jPTgyOD1jb25zdCBzdHJ1Y3QgeGZzX2RlZmVyX29wX3R5cGUgeGZzX3J0ZXh0ZW50X2ZyZWVfZGVmZXJfdHlwZSA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtODMwLX07XFxuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYzo4MzE6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTgzMi1cXG4tLVxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM9ODkwPWNvbnN0IHN0cnVjdCB4bG9nX3JlY292ZXJfaXRlbV9vcHMgeGxvZ19lZmlfaXRlbV9vcHMgPSB7XFxuLS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTg5NC1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jOjg5NTojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtODk2LVNUQVRJQyBpbnRcXG4tLVxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM9OTg1PWNvbnN0IHN0cnVjdCB4bG9nX3JlY292ZXJfaXRlbV9vcHMgeGxvZ19lZmRfaXRlbV9vcHMgPSB7XFxuLS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTk4OS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jOjk5MDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtOTkxLVNUQVRJQyBpbnRcXG4tLVxcbmZzL3hmcy94ZnNfZnNtYXAuYz02Nzc9eGZzX2dldGZzbWFwX2xvZ2RldihcXG4tLVxcbmZzL3hmcy94ZnNfZnNtYXAuYy03MTItXFxuZnMveGZzL3hmc19mc21hcC5jOjcxMzojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZnNtYXAuYy03MTQtLyogVHJhbnNmb3JtIGEgcnRiaXRtYXAgXFxcInJlY29yZFxcXCIgaW50byBhIGZzbWFwICovXFxuLS1cXG5mcy94ZnMveGZzX2ZzbWFwLmM9ODc0PXhmc19nZXRmc21hcF9ydGRldl9ybWFwYnQoXFxuLS1cXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTA0MS19XFxuZnMveGZzL3hmc19mc21hcC5jOjEwNDI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTA0My1cXG4tLVxcbmZzL3hmcy94ZnNfZnNtYXAuYz0xMDgyPXhmc19nZXRmc21hcF9jaGVja19rZXlzKFxcbi0tXFxuZnMveGZzL3hmc19mc21hcC5jLTExMjQtICovXFxuZnMveGZzL3hmc19mc21hcC5jOjExMjU6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTEyNi0jZGVmaW5lIFhGU19HRVRGU01BUF9ERVZTXFx0M1xcbi0tXFxuZnMveGZzL3hmc19mc21hcC5jLTExMjgtI2RlZmluZSBYRlNfR0VURlNNQVBfREVWU1xcdDJcXG5mcy94ZnMveGZzX2ZzbWFwLmM6MTEyOTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTMwLVxcbi0tXFxuZnMveGZzL3hmc19mc21hcC5jPTExNTM9eGZzX2dldGZzbWFwKFxcbi0tXFxuZnMveGZzL3hmc19mc21hcC5jLTExOTQtXFx0fVxcbmZzL3hmcy94ZnNfZnNtYXAuYzoxMTk1OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19mc21hcC5jLTExOTYtXFx0LypcXG4tLVxcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMjA3LVxcdH1cXG5mcy94ZnMveGZzX2ZzbWFwLmM6MTIwODojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMjA5LVxcbi0tXFxuZnMveGZzL3hmc19pY2FjaGUuYz0yMDY4PXhmc19pbm9kZWdjX3N0YXJ0KFxcbi0tXFxuZnMveGZzL3hmc19pY2FjaGUuYy0yMDc3LVxcbmZzL3hmcy94ZnNfaWNhY2hlLmM6MjA3ODojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfaWNhY2hlLmMtMjA3OS1zdGF0aWMgaW5saW5lIGJvb2xcXG5mcy94ZnMveGZzX2ljYWNoZS5jPTIwODA9eGZzX2lub2RlZ2Nfd2FudF9xdWV1ZV9ydF9maWxlKFxcbi0tXFxuZnMveGZzL3hmc19pY2FjaGUuYy0yMDk2LSMgZGVmaW5lIHhmc19pbm9kZWdjX3dhbnRfcXVldWVfcnRfZmlsZShpcClcXHQoZmFsc2UpXFxuZnMveGZzL3hmc19pY2FjaGUuYzoyMDk3OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc19pY2FjaGUuYy0yMDk4LVxcbi0tXFxuZnMveGZzL3hmc19pb21hcC5jPTEwNDA9Y29uc3Qgc3RydWN0IGlvbWFwX29wcyB4ZnNfZGlyZWN0X3dyaXRlX2lvbWFwX29wcyA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfaW9tYXAuYy0xMDQzLVxcbmZzL3hmcy94ZnNfaW9tYXAuYzoxMDQ0OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19pb21hcC5jLTEwNDUtLypcXG4tLVxcbmZzL3hmcy94ZnNfaW9tYXAuYz0xMDkyPWNvbnN0IHN0cnVjdCBpb21hcF9vcHMgeGZzX3pvbmVkX2RpcmVjdF93cml0ZV9pb21hcF9vcHMgPSB7XFxuLS1cXG5mcy94ZnMveGZzX2lvbWFwLmMtMTA5NC19O1xcbmZzL3hmcy94ZnNfaW9tYXAuYzoxMDk1OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc19pb21hcC5jLTEwOTYtXFxuLS1cXG5mcy94ZnMveGZzX2xvZy5jPTMzMTY9eGxvZ19mb3JjZV9zaHV0ZG93bihcXG4tLVxcbmZzL3hmcy94ZnNfbG9nLmMtMzQxMS1cXHR3YWtlX3VwX3ZhcihcXHUwMDI2bG9nLVxcdTAwM2VsX29wc3RhdGUpO1xcbmZzL3hmcy94ZnNfbG9nLmM6MzQxMjpcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSBcXHUwMDI2XFx1MDAyNiB4ZnNfaGFzX3pvbmVkKGxvZy1cXHUwMDNlbF9tcCkpXFxuZnMveGZzL3hmc19sb2cuYy0zNDEzLVxcdFxcdHhmc196b25lZF93YWtlX2FsbChsb2ctXFx1MDAzZWxfbXApO1xcbi0tXFxuZnMveGZzL3hmc19tb3VudC5jPTQ3MT14ZnNfZGVmYXVsdF9yZXNibGtzKFxcbi0tXFxuZnMveGZzL3hmc19tb3VudC5jLTQ4OC1cXHRjYXNlIFhDX0ZSRUVfUlRBVkFJTEFCTEU6XFxuZnMveGZzL3hmc19tb3VudC5jOjQ4OTpcXHRcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSBcXHUwMDI2XFx1MDAyNiB4ZnNfaGFzX3pvbmVkKG1wKSlcXG5mcy94ZnMveGZzX21vdW50LmMtNDkwLVxcdFxcdFxcdHJldHVybiB4ZnNfem9uZWRfZGVmYXVsdF9yZXNibGtzKG1wLCBjdHIpO1xcbi0tXFxuZnMveGZzL3hmc19wbGF0Zm9ybS5oPTIyND1pbnQgeGZzX3J3X2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc2VjdG9yX3Qgc2VjdG9yLCB1bnNpZ25lZCBpbnQgY291bnQsXFxuLS1cXG5mcy94ZnMveGZzX3BsYXRmb3JtLmgtMjY0LVxcbmZzL3hmcy94ZnNfcGxhdGZvcm0uaDoyNjU6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX3BsYXRmb3JtLmgtMjY2LVxcbi0tXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM9NTkwPWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfcmVmY291bnRfdXBkYXRlX2RlZmVyX3R5cGUgPSB7XFxuLS1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02MDItXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM6NjAzOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmMtNjA0LXN0YXRpYyBzdHJ1Y3QgeGZzX2xvZ19pdGVtICpcXG4tLVxcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jPTY2Mz1jb25zdCBzdHJ1Y3QgeGZzX2RlZmVyX29wX3R5cGUgeGZzX3J0cmVmY291bnRfdXBkYXRlX2RlZmVyX3R5cGUgPSB7XFxuLS1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02NjUtfTtcXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYzo2NjY6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02NjctXFxuLS1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYz03NDI9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX2N1aV9pdGVtX29wcyA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jLTc0Ni1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYzo3NDc6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy03NDgtU1RBVElDIGludFxcbi0tXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM9ODI5PWNvbnN0IHN0cnVjdCB4bG9nX3JlY292ZXJfaXRlbV9vcHMgeGxvZ19jdWRfaXRlbV9vcHMgPSB7XFxuLS1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy04MzMtXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM6ODM0OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmMtODM1LVNUQVRJQyBpbnRcXG4tLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmM9NjQzPWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfcm1hcF91cGRhdGVfZGVmZXJfdHlwZSA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNjU1LVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmM6NjU2OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYy02NTctc3RhdGljIHN0cnVjdCB4ZnNfbG9nX2l0ZW0gKlxcbi0tXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYz03NzE9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX3J1aV9pdGVtX29wcyA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNzc1LVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmM6Nzc2OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYy03NzctU1RBVElDIGludFxcbi0tXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYz04NTg9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX3J1ZF9pdGVtX29wcyA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtODYyLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmM6ODYzOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYy04NjQtU1RBVElDIGludFxcbi0tXFxuZnMveGZzL3hmc19ydGFsbG9jLmg9MTI9c3RydWN0IHhmc190cmFucztcXG5mcy94ZnMveGZzX3J0YWxsb2MuaC0xMy1cXG5mcy94ZnMveGZzX3J0YWxsb2MuaDoxNDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTE1LS8qIHJ0Z3JvdXAgc3VwZXJibG9jayBpbml0aWFsaXphdGlvbiAqL1xcbi0tXFxuZnMveGZzL3hmc19ydGFsbG9jLmg9NTQ9eGZzX3J0bW91bnRfaW5pdChcXG4tLVxcbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTU5LVxcbmZzL3hmcy94ZnNfcnRhbGxvYy5oOjYwOlxcdHhmc193YXJuKG1wLCBcXFwiTm90IGJ1aWx0IHdpdGggQ09ORklHX1hGU19SVFxcXCIpO1xcbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTYxLVxcdHJldHVybiAtRU5PU1lTO1xcbi0tXFxuZnMveGZzL3hmc19ydGFsbG9jLmg9Njc9eGZzX2dyb3dmc19jaGVja19ydGdlb20oY29uc3Qgc3RydWN0IHhmc19tb3VudCAqbXAsXFxuLS1cXG5mcy94ZnMveGZzX3J0YWxsb2MuaC03Mi19XFxuZnMveGZzL3hmc19ydGFsbG9jLmg6NzM6I2VuZGlmXFx0LyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTc0LVxcbi0tXFxuZnMveGZzL3hmc19zdGF0cy5jPTEyOD1zdGF0aWMgaW50IHhxbV9wcm9jX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KVxcbi0tXFxuZnMveGZzL3hmc19zdGF0cy5jLTEzMy1cXHRcXHQgICAwLCBjb3VudGVyX3ZhbCh4ZnNzdGF0cy54c19zdGF0cywgWEZTU1RBVF9FTkRfWFFNU1RBVCArIDEpLFxcbmZzL3hmcy94ZnNfc3RhdHMuYzoxMzQ6XFx0XFx0ICAgSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSA/IFxcXCJydHF1b3RhXFxcIiA6IFxcXCJxdW90YVxcXCIpO1xcbmZzL3hmcy94ZnNfc3RhdHMuYy0xMzUtXFx0cmV0dXJuIDA7XFxuLS1cXG5mcy94ZnMveGZzX3N1cGVyLmM9ODIyPXhmc19mc19ldmljdF9pbm9kZShcXG4tLVxcbmZzL3hmcy94ZnNfc3VwZXIuYy04MzAtXFxuZnMveGZzL3hmc19zdXBlci5jOjgzMTpcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSBcXHUwMDI2XFx1MDAyNlxcbmZzL3hmcy94ZnNfc3VwZXIuYy04MzItXFx0ICAgIFNfSVNSRUcoaW5vZGUtXFx1MDAzZWlfbW9kZSkgXFx1MDAyNlxcdTAwMjYgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZSkge1xcbi0tXFxuZnMveGZzL3hmc19zdXBlci5jPTEzMTQ9eGZzX2ZzX3Nob3dfc3RhdHMoXFxuLS1cXG5mcy94ZnMveGZzX3N1cGVyLmMtMTMxOS1cXG5mcy94ZnMveGZzX3N1cGVyLmM6MTMyMDpcXHRpZiAoeGZzX2hhc196b25lZChtcCkgXFx1MDAyNlxcdTAwMjYgSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSlcXG5mcy94ZnMveGZzX3N1cGVyLmMtMTMyMS1cXHRcXHR4ZnNfem9uZWRfc2hvd19zdGF0cyhtLCBtcCk7XFxuLS1cXG5mcy94ZnMveGZzX3N1cGVyLmg9MTM9ZXh0ZXJuIHZvaWQgeGZzX3FtX2V4aXQodm9pZCk7XFxuLS1cXG5mcy94ZnMveGZzX3N1cGVyLmgtMzAtXFxuZnMveGZzL3hmc19zdXBlci5oOjMxOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19zdXBlci5oLTMyLSMgZGVmaW5lIFhGU19SRUFMVElNRV9TVFJJTkdcXHRcXFwicmVhbHRpbWUsIFxcXCJcXG4tLVxcbmZzL3hmcy94ZnNfc3lzZnMuYz03ODQ9eGZzX3pvbmVkX3N5c2ZzX2luaXQoc3RydWN0IHhmc19tb3VudCAqbXApXFxuZnMveGZzL3hmc19zeXNmcy5jLTc4NS17XFxuZnMveGZzL3hmc19zeXNmcy5jOjc4NjpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgfHwgIXhmc19oYXNfem9uZWQobXApKVxcbmZzL3hmcy94ZnNfc3lzZnMuYy03ODctXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5mcy94ZnMveGZzX3N5c2ZzLmM9Nzk0PXhmc196b25lZF9zeXNmc19kZWwoc3RydWN0IHhmc19tb3VudCAqbXApXFxuZnMveGZzL3hmc19zeXNmcy5jLTc5NS17XFxuZnMveGZzL3hmc19zeXNmcy5jOjc5NjpcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSBcXHUwMDI2XFx1MDAyNiB4ZnNfaGFzX3pvbmVkKG1wKSlcXG5mcy94ZnMveGZzX3N5c2ZzLmMtNzk3LVxcdFxcdHhmc19zeXNmc19kZWwoXFx1MDAyNm1wLVxcdTAwM2VtX3pvbmVkX2tvYmopO1xcbi0tXFxuZnMveGZzL3hmc190cmFjZS5oPTM2MT1ERUZJTkVfR1JPVVBfUkVGX0VWRU5UKHhmc19ncm91cF9yZWxlKTtcXG5mcy94ZnMveGZzX3RyYWNlLmgtMzYyLVxcbmZzL3hmcy94ZnNfdHJhY2UuaDozNjM6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX3RyYWNlLmgtMzY0LURFQ0xBUkVfRVZFTlRfQ0xBU1MoeGZzX3pvbmVfY2xhc3MsXFxuLS1cXG5mcy94ZnMveGZzX3RyYWNlLmg9NDg5PVRSQUNFX0VWRU5UKHhmc196b25lc19tb3VudCxcXG4tLVxcbmZzL3hmcy94ZnNfdHJhY2UuaC01MDktKTtcXG5mcy94ZnMveGZzX3RyYWNlLmg6NTEwOiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc190cmFjZS5oLTUxMS1cXG4tLVxcbmZzL3hmcy94ZnNfdHJhY2UuaD0xOTk5PVRSQUNFX0VWRU5UKHhmc19leHRlbnRfYnVzeV90cmltLFxcbi0tXFxuZnMveGZzL3hmc190cmFjZS5oLTIwMzEtXFxuZnMveGZzL3hmc190cmFjZS5oOjIwMzI6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX3RyYWNlLmgtMjAzMy1UUkFDRV9FVkVOVCh4ZnNfcnRhbGxvY19leHRlbnRfYnVzeSxcXG4tLVxcbmZzL3hmcy94ZnNfdHJhY2UuaD0yMDc1PVRSQUNFX0VWRU5UKHhmc19ydGFsbG9jX2V4dGVudF9idXN5X3RyaW0sXFxuLS1cXG5mcy94ZnMveGZzX3RyYWNlLmgtMjEwMy0pO1xcbmZzL3hmcy94ZnNfdHJhY2UuaDoyMTA0OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc190cmFjZS5oLTIxMDUtXFxuLS1cXG5mcy94ZnMveGZzX3RyYWNlLmg9NTg3MD1ERUZJTkVfTUVUQUZJTEVfUkVTVl9FVkVOVCh4ZnNfbWV0YWZpbGVfcmVzdl9pbml0X2Vycm9yKTtcXG5mcy94ZnMveGZzX3RyYWNlLmgtNTg3MS1cXG5mcy94ZnMveGZzX3RyYWNlLmg6NTg3MjojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfdHJhY2UuaC01ODczLVRSQUNFX0VWRU5UKHhmc19ncm93ZnNfY2hlY2tfcnRnZW9tLFxcbi0tXFxuZnMveGZzL3hmc190cmFjZS5oLTU4OTAtKTtcXG5mcy94ZnMveGZzX3RyYWNlLmg6NTg5MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfdHJhY2UuaC01ODkyLVxcbi0tXFxuZnMveGZzL3hmc196b25lX2FsbG9jLmg9NDg9dm9pZCB4ZnNfem9uZWRfc2hvd19zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCB4ZnNfbW91bnQgKm1wKTtcXG5mcy94ZnMveGZzX3pvbmVfYWxsb2MuaC00OS1cXG5mcy94ZnMveGZzX3pvbmVfYWxsb2MuaDo1MDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTUxLWludCB4ZnNfbW91bnRfem9uZXMoc3RydWN0IHhmc19tb3VudCAqbXApO1xcbi0tXFxuZnMveGZzL3hmc196b25lX2FsbG9jLmg9NzA9c3RhdGljIGlubGluZSB2b2lkIHhmc196b25lX2djX3dha2V1cChzdHJ1Y3QgeGZzX21vdW50ICptcClcXG4tLVxcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTcyLX1cXG5mcy94ZnMveGZzX3pvbmVfYWxsb2MuaDo3MzojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTc0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxOToyNjoxNy4wOTY4MzcyNTVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDE0NTE2MjcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlhGUyBSZWFkYWhlYWQgTWFuYWdlbWVudCB3aXRoIFJlYWx0aW1lIERldmljZXMqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFsbCBhYm91dCBoYW5kbGluZyByZWFkYWhlYWQgdmFsdWVzIGZvciB0aGUgYmxvY2sgZGV2aWNlIGluZnJhc3RydWN0dXJlIChCREkpIHdoZW4gd2UncmUgdXNpbmcgcmVhbHRpbWUgZGV2aWNlcyB3aXRoaW4gYW4gWEZTIGZpbGVzeXN0ZW0uIFNwZWNpZmljYWxseSwgaXQncyB0d2Vha2luZyBgeGZzX3NldHVwX2RldmljZXNgIGFuZCBgeGZzX2tpbGxfc2JgIHRvIGVuc3VyZSB0aGVzZSByZWFkYWhlYWQgdmFsdWVzIGFyZSBjb3JyZWN0bHkgdXBkYXRlZCBkdXJpbmcgbW91bnRpbmcgYW5kIHJlc3RvcmVkIGR1cmluZyB1bm1vdW50aW5nLiBUaGUgY29yZSBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkgbGllcyBpbiB0aGUgbmV3IGB4ZnNfdXBkYXRlX2JkaV9yYWhlYWRgIGFuZCBgeGZzX3Jlc3RvcmVfYmRpX3JhaGVhZGAgZnVuY3Rpb25zLlxuXG5UaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIHRhcmdldGVkIGF0IGNvbmZpZ3VyYXRpb25zIHdoZXJlIGFuIFhGUyBmaWxlc3lzdGVtIGlzIG1vdW50ZWQgd2l0aCBhIHJlYWx0aW1lIGRldmljZS4gVGhhdCdzIGdvb2QgdG8ga25vdzsgaXQgcHJvdmlkZXMgYSBkZWZpbml0ZSBmb2N1cy5cblxuSWYgSSB3ZXJlIHRvIGZ1enogdGhpcywgSSdkIGhvbmUgaW4gb24gdGhvc2UgbmV3IGZ1bmN0aW9ucywgYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYCwgYXMgdGhleSdyZSB0aGUgbmV3IGxvZ2ljLiBUaGUgbW9kaWZpZWQgY2FsbHMgdG8gYHhmc19zZXR1cF9kZXZpY2VzYCBhbmQgYHhmc19raWxsX3NiYCBhcmUgYWxzbyBrZXkgYXJlYXMuIFdlJ3JlIHRhbGtpbmcgYWJvdXQgbW91bnQgYW5kIHVubW91bnQgb3BlcmF0aW9ucywgc28gdGhvc2UgZW50cnkgcG9pbnRzIGFyZSBwcmltZSB0YXJnZXRzLlxuXG5BbmQgdGhlIGNvbmZpZyBpcyBzdHJhaWdodGZvcndhcmQ6IHdlJ3JlIGxvb2tpbmcgYXQgYFhGU19SVGAgYW5kLCBuYXR1cmFsbHksIGBYRlNfRlNgLiBUaGlzIGRpY3RhdGVzIHRoZSB0ZXN0IGNhc2VzLlxuXG5UaW1lIHRvIGRyaWxsIGRvd24gaW50byB0aGUgY29kZSBpdHNlbGYsIGBmcy94ZnMveGZzX3N1cGVyLmNgIGlzIHdoZXJlIEknbGwgZmluZCBgeGZzX3VwZGF0ZV9iZGlfcmFoZWFkYCBhbmQgYHhmc19yZXN0b3JlX2JkaV9yYWhlYWRgLiBMZXQncyBzZWUgaG93IHRoZXkncmUgaW1wbGVtZW50ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMDU1LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjIyLjExMTM1NjIwNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzk4NTIyMjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieGZzX3VwZGF0ZV9iZGlfcmFoZWFkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL3hmcy94ZnNfc3VwZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy94ZnMveGZzX3N1cGVyLmM9NTYyPXN0YXRpYyB2b2lkXFxuZnMveGZzL3hmc19zdXBlci5jOjU2Mzp4ZnNfdXBkYXRlX2JkaV9yYWhlYWQoXFxuZnMveGZzL3hmc19zdXBlci5jLTU2NC1cXHRzdHJ1Y3QgeGZzX21vdW50XFx0Km1wKVxcbi0tXFxuZnMveGZzL3hmc19zdXBlci5jPTYwMT14ZnNfc2V0dXBfZGV2aWNlcyhcXG4tLVxcbmZzL3hmcy94ZnNfc3VwZXIuYy02MzMtXFx0XFx0XFx0cmV0dXJuIGVycm9yO1xcbmZzL3hmcy94ZnNfc3VwZXIuYzo2MzQ6XFx0XFx0eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTtcXG5mcy94ZnMveGZzX3N1cGVyLmMtNjM1LVxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTk6MjY6MjIuMjkxMjE0MDUyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjYxNjM3MDExNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgWEZTIFJlYWQtQWhlYWQgQ29uZmlndXJhdGlvbiBmb3IgUmVhbHRpbWUgRGV2aWNlcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGZ1bmN0aW9uczogYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYC4gVGhleSdyZSBzdGF0aWMsIGJ1dCB0aGV5J3JlIHN0aWxsIHNvbGlkIGVudHJ5IHBvaW50cyBmb3IgdW5kZXJzdGFuZGluZyB0aGlzIGNoYW5nZS4gVGhlIGdvYWwgaGVyZSBzZWVtcyB0byBiZSBhYm91dCBob3cgWEZTIGhhbmRsZXMgcmVhZGFoZWFkIHNldHRpbmdzIHdpdGggcmVhbHRpbWUgZGV2aWNlcy5cblxuTm93LCB0aGUgY29kZSBpdHNlbGYgZG9lc24ndCBleHBsaWNpdGx5IHVzZSBgI2lmZGVmIENPTkZJR19YRlNfUlRgIGFyb3VuZCBgeGZzX3VwZGF0ZV9iZGlfcmFoZWFkYC4gSXQncyBjaGVja2luZyBgaWYgKG1wLVx1MDAzZW1fcnRkZXZfdGFyZ3AgXHUwMDI2XHUwMDI2IG1wLVx1MDAzZW1fcnRkZXZfdGFyZ3AgIT0gbXAtXHUwMDNlbV9kZGV2X3RhcmdwKWAgaW5zdGVhZC4gQnV0IHRvIGhhdmUgYG1fcnRkZXZfdGFyZ3BgIGFjdHVhbGx5IGluaXRpYWxpemVkIGFuZCBpbiBwbGF5LCAqSSBiZWxpZXZlKiB3ZSdsbCBuZWVkIGBDT05GSUdfWEZTX1JUYCBlbmFibGVkLiBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgdGhhdCBhc3N1bXB0aW9uIHRob3VnaC4gWXVwLCBjb25maXJtZWQ7IGBYRlNfUlRgIGlzIGluZGVlZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIFhGUyByZWFsdGltZSBzdXBwb3J0LlxuXG5JIHNob3VsZCBwcm9iYWJseSBhbHNvIHZlcmlmeSBpZiBgWEZTX0ZTYCBpcyBhIHJlcXVpcmVtZW50LiBZZXMsIGl0J3MgdGhlIGNvcmUgWEZTIGNvbmZpZy5cblxuU28sIHRvIHN1bW1hcml6ZSBteSBmb2N1czogSSdtIGV4YW1pbmluZyB0aGUgYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYCBmdW5jdGlvbnMgYW5kIHRoZWlyIHJlbGF0aW9uIHRvIHRoZSBgWEZTX0ZTYCBhbmQgYFhGU19SVGAgY29uZmlndXJhdGlvbnMuXG5cbkVzc2VudGlhbGx5LCB0aGlzIHBhdGNoIGlzIHR3ZWFraW5nIHRoZSBYRlMgbW91bnQgYW5kIHVubW91bnQgcHJvY2Vzc2VzIHRvIGR5bmFtaWNhbGx5IGFkanVzdCB0aGUgYmFja2luZyBkZXZpY2UgaW5mb3JtYXRpb24gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuZXZlciBhIHJlYWx0aW1lIGRldmljZSBpcyB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGRpcmVjdGx5IGltcGFjdGluZyBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCBzaHV0ZG93bi4gQW5kIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0byBtYWtlIHN1cmUgdGhvc2UgY29uZmlnIG5hbWVzIGFyZSBjb3JyZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzg2MSwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxOToyNjoyOC45MDc1ODcyMThaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcyMDMzNTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBYRlNfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL3hmcy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL3hmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMveGZzL0tjb25maWc6Mjpjb25maWcgWEZTX0ZTXFxuZnMveGZzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiWEZTIGZpbGVzeXN0ZW0gc3VwcG9ydFxcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTI0LVxcbmZzL3hmcy9LY29uZmlnOjI1OmNvbmZpZyBYRlNfU1VQUE9SVF9WNFxcbmZzL3hmcy9LY29uZmlnLTI2LVxcdGJvb2wgXFxcIlN1cHBvcnQgZGVwcmVjYXRlZCBWNCAoY3JjPTApIGZvcm1hdFxcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTQ5LVxcbmZzL3hmcy9LY29uZmlnOjUwOmNvbmZpZyBYRlNfU1VQUE9SVF9BU0NJSV9DSVxcbmZzL3hmcy9LY29uZmlnLTUxLVxcdGJvb2wgXFxcIlN1cHBvcnQgZGVwcmVjYXRlZCBjYXNlLWluc2Vuc2l0aXZlIGFzY2lpIChhc2NpaS1jaT0xKSBmb3JtYXRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy03Ni1cXG5mcy94ZnMvS2NvbmZpZzo3Nzpjb25maWcgWEZTX1FVT1RBXFxuZnMveGZzL0tjb25maWctNzgtXFx0Ym9vbCBcXFwiWEZTIFF1b3RhIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy05NC1cXG5mcy94ZnMvS2NvbmZpZzo5NTpjb25maWcgWEZTX1BPU0lYX0FDTFxcbmZzL3hmcy9LY29uZmlnLTk2LVxcdGJvb2wgXFxcIlhGUyBQT1NJWCBBQ0wgc3VwcG9ydFxcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTEwNC1cXG5mcy94ZnMvS2NvbmZpZzoxMDU6Y29uZmlnIFhGU19SVFxcbmZzL3hmcy9LY29uZmlnLTEwNi1cXHRib29sIFxcXCJYRlMgUmVhbHRpbWUgc3Vidm9sdW1lIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0xMzItXFxuZnMveGZzL0tjb25maWc6MTMzOmNvbmZpZyBYRlNfRFJBSU5fSU5URU5UU1xcbmZzL3hmcy9LY29uZmlnLTEzNC1cXHRib29sXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0xMzYtXFxuZnMveGZzL0tjb25maWc6MTM3OmNvbmZpZyBYRlNfTElWRV9IT09LU1xcbmZzL3hmcy9LY29uZmlnLTEzOC1cXHRib29sXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0xNDAtXFxuZnMveGZzL0tjb25maWc6MTQxOmNvbmZpZyBYRlNfTUVNT1JZX0JVRlNcXG5mcy94ZnMvS2NvbmZpZy0xNDItXFx0Ym9vbFxcbmZzL3hmcy9LY29uZmlnLTE0My1cXG5mcy94ZnMvS2NvbmZpZzoxNDQ6Y29uZmlnIFhGU19CVFJFRV9JTl9NRU1cXG5mcy94ZnMvS2NvbmZpZy0xNDUtXFx0Ym9vbFxcbmZzL3hmcy9LY29uZmlnLTE0Ni1cXG5mcy94ZnMvS2NvbmZpZzoxNDc6Y29uZmlnIFhGU19PTkxJTkVfU0NSVUJcXG5mcy94ZnMvS2NvbmZpZy0xNDgtXFx0Ym9vbCBcXFwiWEZTIG9ubGluZSBtZXRhZGF0YSBjaGVjayBzdXBwb3J0XFxcIlxcbi0tXFxuZnMveGZzL0tjb25maWctMTYzLVxcbmZzL3hmcy9LY29uZmlnOjE2NDpjb25maWcgWEZTX09OTElORV9TQ1JVQl9TVEFUU1xcbmZzL3hmcy9LY29uZmlnLTE2NS1cXHRib29sIFxcXCJYRlMgb25saW5lIG1ldGFkYXRhIGNoZWNrIHVzYWdlIGRhdGEgY29sbGVjdGlvblxcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTE3OC1cXG5mcy94ZnMvS2NvbmZpZzoxNzk6Y29uZmlnIFhGU19PTkxJTkVfUkVQQUlSXFxuZnMveGZzL0tjb25maWctMTgwLVxcdGJvb2wgXFxcIlhGUyBvbmxpbmUgbWV0YWRhdGEgcmVwYWlyIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0xOTMtXFxuZnMveGZzL0tjb25maWc6MTk0OmNvbmZpZyBYRlNfV0FSTlxcbmZzL3hmcy9LY29uZmlnLTE5NS1cXHRib29sIFxcXCJYRlMgVmVyYm9zZSBXYXJuaW5nc1xcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTIwNi1cXG5mcy94ZnMvS2NvbmZpZzoyMDc6Y29uZmlnIFhGU19ERUJVR1xcbmZzL3hmcy9LY29uZmlnLTIwOC1cXHRib29sIFxcXCJYRlMgRGVidWdnaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0yMTktXFxuZnMveGZzL0tjb25maWc6MjIwOmNvbmZpZyBYRlNfREVCVUdfRVhQRU5TSVZFXFxuZnMveGZzL0tjb25maWctMjIxLVxcdGJvb2wgXFxcIlhGUyBleHBlbnNpdmUgZGVidWdnaW5nIGNoZWNrc1xcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTIzMS1cXG5mcy94ZnMvS2NvbmZpZzoyMzI6Y29uZmlnIFhGU19BU1NFUlRfRkFUQUxcXG5mcy94ZnMvS2NvbmZpZy0yMzMtXFx0Ym9vbCBcXFwiWEZTIGZhdGFsIGFzc2VydHNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjI5LjE3OTYyODc0MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNjk0ODg3NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKlhGUyBDb25maWd1cmF0aW9uIEFzc2Vzc21lbnQgYW5kIFJlcG9ydGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zOiBgWEZTX0ZTYCBhbmQgYFhGU19SVGAuIEltbWVkaWF0ZWx5LCBteSBicmFpbiBraWNrcyBpbnRvIGFzc2Vzc21lbnQgbW9kZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCdzIGVuYWJsZWQsIHdoYXQgaW1wbGljYXRpb25zIHRoaXMgaGFzLCBhbmQgaG93IHRvIGVmZmVjdGl2ZWx5IGNvbW11bmljYXRlIHRoZSByZXN1bHRpbmcgc3RhdGUuIEknbGwgbmVlZCB0byB1c2UgYHNldC1yZXN1bHRzYCB0byBwcm9wZXJseSBvdXRwdXQgbXkgZmluZGluZ3MuIFRoaXMgZW5zdXJlcyBhIGNsZWFuLCBzdHJ1Y3R1cmVkIHByZXNlbnRhdGlvbiBvZiB0aGUgZmFjdHMuIEdpdmVuIHRoZSBjb250ZXh0LCBJJ20gbGlrZWx5IGRlYWxpbmcgd2l0aCBhbiBYRlMgZmlsZXN5c3RlbSBjb25maWd1cmF0aW9uIGFuZCBhIFJlYWwtdGltZSBmaWxlc3lzdGVtIGNvbmZpZ3VyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1NTg1LCJPdXRwdXRUb2tlbnMiOjExNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjMyLjM0OTEyMDU3M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NjExOTE1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiWEZTX0ZTXCIsXG4gICAgXCJYRlNfUlRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ4ZnNfdXBkYXRlX2JkaV9yYWhlYWRcIixcbiAgICBcInhmc19yZXN0b3JlX2JkaV9yYWhlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBYRlMgbW91bnQgYW5kIHVubW91bnQgcGF0aHMgdG8gYWRqdXN0IHRoZSBiYWNraW5nIGRldmljZSBpbmZvIChCREkpIHJlYWRhaGVhZCBhbmQgaW9fcGFnZXMgc2V0dGluZ3Mgd2hlbiBhIHJlYWx0aW1lIGRldmljZSBpcyBwcmVzZW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZmlsZXN5c3RlbSBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiWEZTX0ZTXCIsXG4gICAgXCJYRlNfUlRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ4ZnNfdXBkYXRlX2JkaV9yYWhlYWRcIixcbiAgICBcInhmc19yZXN0b3JlX2JkaV9yYWhlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBYRlMgbW91bnQgYW5kIHVubW91bnQgcGF0aHMgdG8gYWRqdXN0IHRoZSBiYWNraW5nIGRldmljZSBpbmZvIChCREkpIHJlYWRhaGVhZCBhbmQgaW9fcGFnZXMgc2V0dGluZ3Mgd2hlbiBhIHJlYWx0aW1lIGRldmljZSBpcyBwcmVzZW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZmlsZXN5c3RlbSBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow7z6mx[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-20 19:03:56 +0000 UTC FinishedAt: 2026-07-20 19:26:33 +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": "1590cf0329716306e948a8fc29f1d3ee87d3989f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "XFS_FS", "XFS_RT" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "1590cf0329716306e948a8fc29f1d3ee87d3989f", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "XFS_FS", "XFS_RT" ], "series_id": "c038cfba-9f76-497a-8eb8-b21d337a8021" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "xfs_update_bdi_rahead", "xfs_restore_bdi_rahead" ], "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+CgkJCTx0ZD4yMDI2LzA3LzIwIDE5OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1hGU19GUyYjMzQ7LAogICAgJiMzNDtYRlNfUlQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4ZnNfdXBkYXRlX2JkaV9yYWhlYWQmIzM0OywKICAgICYjMzQ7eGZzX3Jlc3RvcmVfYmRpX3JhaGVhZCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBYRlMgbW91bnQgYW5kIHVubW91bnQgcGF0aHMgdG8gYWRqdXN0IHRoZSBiYWNraW5nIGRldmljZSBpbmZvIChCREkpIHJlYWRhaGVhZCBhbmQgaW9fcGFnZXMgc2V0dGluZ3Mgd2hlbiBhIHJlYWx0aW1lIGRldmljZSBpcyBwcmVzZW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZmlsZXN5c3RlbSBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gbG9naWMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA2YWQ4MWJiN2UzZTFiZWY5MTkxMWRkOGYzZDAzOWUwY2FkZmRlNDYzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBKdWwgMjAgMTk6MjY6MDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19tb3VudC5oIGIvZnMveGZzL3hmc19tb3VudC5oXG5pbmRleCA2NmEwMmQxYjlhZDdhMS4uMjE2YTM4YTM1NGU3YzIgMTAwNjQ0XG4tLS0gYS9mcy94ZnMveGZzX21vdW50LmhcbiYjNDM7JiM0MzsmIzQzOyBiL2ZzL3hmcy94ZnNfbW91bnQuaFxuQEAgLTM0OSw2ICYjNDM7MzQ5LDEzIEBAIHR5cGVkZWYgc3RydWN0IHhmc19tb3VudCB7XG4gXG4gXHQvKiBJbmRleCBvZiB1dWlkIHJlY29yZCBpbiB0aGUgdXVpZCB4YXJyYXkuICovXG4gXHR1bnNpZ25lZCBpbnRcdFx0bV91dWlkX3RhYmxlX2luZGV4O1xuJiM0MztcbiYjNDM7XHQvKlxuJiM0MztcdCAqIE9sZCBpb19wYWdlcy9yYV9wYWdlcyB2YWx1ZWQgaW4gdGhlIG1haW4gYmRldiBCREksIGFuZCBvdXIgaW5pdGlhbFxuJiM0MztcdCAqIGNhbGN1bGF0ZWQgdmFsdWVzLlxuJiM0MztcdCAqL1xuJiM0MztcdHVuc2lnbmVkIGxvbmdcdFx0bV9vbGRfaW9fcGFnZXMsIG1faW5pdGlhbF9pb19wYWdlcztcbiYjNDM7XHR1bnNpZ25lZCBsb25nXHRcdG1fb2xkX3JhX3BhZ2VzLCBtX2luaXRpYWxfcmFfcGFnZXM7XG4gfSB4ZnNfbW91bnRfdDtcbiBcbiAjZGVmaW5lIE1fSUdFTyhtcClcdFx0KFx1MDAyNihtcCktXHUwMDNlbV9pbm9fZ2VvKVxuZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfc3VwZXIuYyBiL2ZzL3hmcy94ZnNfc3VwZXIuY1xuaW5kZXggODUzMWQ1MjZmYzQ0MDkuLjYzYzRiY2JlNmMyYmM0IDEwMDY0NFxuLS0tIGEvZnMveGZzL3hmc19zdXBlci5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy94ZnMveGZzX3N1cGVyLmNcbkBAIC01NDgsNiAmIzQzOzU0OCw1MiBAQCB4ZnNfb3Blbl9kZXZpY2VzKFxuIFx0cmV0dXJuIGVycm9yO1xuIH1cbiBcbiYjNDM7LypcbiYjNDM7ICogV2hlbiB1c2luZyBhIFJUIGRldmljZSBzb21lIG9yIGFsbCBkYXRhIEkvTyBpcyB1c2luZyB0aGUgUlQgZGV2aWNlLCBidXRcbiYjNDM7ICogdGhlIEJESSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgbWFpbiBkYXRhIGRldmljZS4gIFdoZW4gdGhlIHVuZGVybHlpbmcgYmxvY2tcbiYjNDM7ICogZGV2aWNlIGZvciB0aGUgUlQgZGV2aWNlIGhhcyBsYXJnZXIgSS9PIHNpemVzLCB0aGUgQkRJIHNldHRpbmdzIG1pZ2h0IGJlXG4mIzQzOyAqIGluY29ycmVjdCwgd2hpY2ggaXMgZXNwZWNpYWxseSBiYWQgaWYgdGhlIG1haW4gZGV2aWNlIGlzIGEgU1NEIGFuZCB0aGVcbiYjNDM7ICogUlQgZGV2aWNlIGlzIGEgSERELCBhcyB0aGUgaW9fb3B0IGZpeHVwIGluIGJsa19hcHBseV9iZGlfbGltaXRzIGlzIG1pc3NpbmdcbiYjNDM7ICogZm9yIHRoaXMgY2FzZS5cbiYjNDM7ICpcbiYjNDM7ICogVXBkYXRlIHRoZSBCREkgdmFsdWVzIHRvIHRoZSBtYXggb2YgdGhlIGRhdGEgYW5kIFJUIGRldmljZSB0byBjb3ZlciBvdXJcbiYjNDM7ICogYmFzZXMuXG4mIzQzOyAqL1xuJiM0MztzdGF0aWMgdm9pZFxuJiM0Mzt4ZnNfdXBkYXRlX2JkaV9yYWhlYWQoXG4mIzQzO1x0c3RydWN0IHhmc19tb3VudFx0Km1wKVxuJiM0Mzt7XG4mIzQzO1x0c3RydWN0IGJhY2tpbmdfZGV2X2luZm9cdCpydF9iZGkgPVxuJiM0MztcdFx0bXAtXHUwMDNlbV9ydGRldl90YXJncC1cdTAwM2VidF9iZGV2LVx1MDAzZWJkX2Rpc2stXHUwMDNlYmRpO1xuJiM0MztcdHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvXHQqc2JfYmRpID0gbXAtXHUwMDNlbV9zdXBlci1cdTAwM2VzX2JkaTtcbiYjNDM7XG4mIzQzO1x0bXAtXHUwMDNlbV9vbGRfaW9fcGFnZXMgPSBzYl9iZGktXHUwMDNlaW9fcGFnZXM7XG4mIzQzO1x0bXAtXHUwMDNlbV9vbGRfcmFfcGFnZXMgPSBzYl9iZGktXHUwMDNlcmFfcGFnZXM7XG4mIzQzO1xuJiM0MztcdHNiX2JkaS1cdTAwM2Vpb19wYWdlcyA9IG1wLVx1MDAzZW1faW5pdGlhbF9pb19wYWdlcyA9XG4mIzQzO1x0XHRtYXgoc2JfYmRpLVx1MDAzZWlvX3BhZ2VzLCBydF9iZGktXHUwMDNlaW9fcGFnZXMpO1xuJiM0MztcdHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9IG1wLVx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcyA9XG4mIzQzO1x0XHRtYXgoc2JfYmRpLVx1MDAzZXJhX3BhZ2VzLCBydF9iZGktXHUwMDNlcmFfcGFnZXMpO1xuJiM0Mzt9XG4mIzQzO1xuJiM0MztzdGF0aWMgdm9pZFxuJiM0Mzt4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkKFxuJiM0MztcdHN0cnVjdCB4ZnNfbW91bnRcdCptcClcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvXHQqc2JfYmRpID0gbXAtXHUwMDNlbV9zdXBlci1cdTAwM2VzX2JkaTtcbiYjNDM7XG4mIzQzO1x0aWYgKHNiX2JkaS1cdTAwM2Vpb19wYWdlcyA9PSBtcC1cdTAwM2VtX2luaXRpYWxfaW9fcGFnZXMpXG4mIzQzO1x0XHRzYl9iZGktXHUwMDNlaW9fcGFnZXMgPSBtcC1cdTAwM2VtX29sZF9pb19wYWdlcztcbiYjNDM7XHRlbHNlXG4mIzQzO1x0XHR4ZnNfaW5mbyhtcCwgXCYjMzQ7aW9fcGFnZXMgY2hhbmdlZCBmcm9tICVsdSB0byAlbHUsIG5vdCByZXN0b3JpbmcuXCYjMzQ7LFxuJiM0MztcdFx0XHRcdG1wLVx1MDAzZW1faW5pdGlhbF9pb19wYWdlcywgc2JfYmRpLVx1MDAzZWlvX3BhZ2VzKTtcbiYjNDM7XHRpZiAoc2JfYmRpLVx1MDAzZXJhX3BhZ2VzID09IG1wLVx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcylcbiYjNDM7XHRcdHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9IG1wLVx1MDAzZW1fb2xkX3JhX3BhZ2VzO1xuJiM0MztcdGVsc2VcbiYjNDM7XHRcdHhmc19pbmZvKG1wLCBcJiMzNDtyYV9wYWdlcyBjaGFuZ2VkIGZyb20gJWx1IHRvICVsdSwgbm90IHJlc3RvcmluZy5cJiMzNDssXG4mIzQzO1x0XHRcdFx0bXAtXHUwMDNlbV9pbml0aWFsX3JhX3BhZ2VzLCBzYl9iZGktXHUwMDNlcmFfcGFnZXMpO1xuJiM0Mzt9XG4mIzQzO1xuIC8qXG4gICogU2V0dXAgeGZzX21vdW50IGJ1ZmZlciB0YXJnZXQgcG9pbnRlcnMgYmFzZWQgb24gc3VwZXJibG9ja1xuICAqL1xuQEAgLTU4NSw2ICYjNDM7NjMxLDcgQEAgeGZzX3NldHVwX2RldmljZXMoXG4gXHRcdFx0XHRtcC1cdTAwM2VtX3NiLnNiX3NlY3RzaXplLCBtcC1cdTAwM2VtX3NiLnNiX3JibG9ja3MpO1xuIFx0XHRpZiAoZXJyb3IpXG4gXHRcdFx0cmV0dXJuIGVycm9yO1xuJiM0MztcdFx0eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTtcbiBcdH1cbiBcbiBcdHJldHVybiAwO1xuQEAgLTIyODMsOCAmIzQzOzIzMzAsMTIgQEAgc3RhdGljIHZvaWRcbiB4ZnNfa2lsbF9zYihcbiBcdHN0cnVjdCBzdXBlcl9ibG9ja1x0XHQqc2IpXG4ge1xuJiM0MztcdHN0cnVjdCB4ZnNfbW91bnRcdFx0Km1wID0gWEZTX00oc2IpO1xuJiM0MztcbiYjNDM7XHRpZiAobXAtXHUwMDNlbV9ydGRldl90YXJncCBcdTAwMjZcdTAwMjYgbXAtXHUwMDNlbV9ydGRldl90YXJncCAhPSBtcC1cdTAwM2VtX2RkZXZfdGFyZ3ApXG4mIzQzO1x0XHR4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkKG1wKTtcbiBcdGtpbGxfYmxvY2tfc3VwZXIoc2IpO1xuLVx0eGZzX21vdW50X2ZyZWUoWEZTX00oc2IpKTtcbiYjNDM7XHR4ZnNfbW91bnRfZnJlZShtcCk7XG4gfVxuIFxuIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB4ZnNfZnNfdHlwZSA9IHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxOToyNjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7WEZTX0ZTJiMzNDssCiAgICAmIzM0O1hGU19SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmc191cGRhdGVfYmRpX3JhaGVhZCYjMzQ7LAogICAgJiMzNDt4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFhGUyBtb3VudCBhbmQgdW5tb3VudCBwYXRocyB0byBhZGp1c3QgdGhlIGJhY2tpbmcgZGV2aWNlIGluZm8gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuIGEgcmVhbHRpbWUgZGV2aWNlIGlzIHByZXNlbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmFkODFiYjdlM2UxYmVmOTE5MTFkZDhmM2QwMzllMGNhZGZkZTQ2MwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gSnVsIDIwIDE5OjI2OjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19tb3VudC5oIGIvZnMveGZzL3hmc19tb3VudC5oCmluZGV4IDY2YTAyZDFiOWFkN2ExLi4yMTZhMzhhMzU0ZTdjMiAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc19tb3VudC5oCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL3hmcy94ZnNfbW91bnQuaApAQCAtMzQ5LDYgJiM0MzszNDksMTMgQEAgdHlwZWRlZiBzdHJ1Y3QgeGZzX21vdW50IHsKIAogCS8qIEluZGV4IG9mIHV1aWQgcmVjb3JkIGluIHRoZSB1dWlkIHhhcnJheS4gKi8KIAl1bnNpZ25lZCBpbnQJCW1fdXVpZF90YWJsZV9pbmRleDsKJiM0MzsKJiM0MzsJLyoKJiM0MzsJICogT2xkIGlvX3BhZ2VzL3JhX3BhZ2VzIHZhbHVlZCBpbiB0aGUgbWFpbiBiZGV2IEJESSwgYW5kIG91ciBpbml0aWFsCiYjNDM7CSAqIGNhbGN1bGF0ZWQgdmFsdWVzLgomIzQzOwkgKi8KJiM0MzsJdW5zaWduZWQgbG9uZwkJbV9vbGRfaW9fcGFnZXMsIG1faW5pdGlhbF9pb19wYWdlczsKJiM0MzsJdW5zaWduZWQgbG9uZwkJbV9vbGRfcmFfcGFnZXMsIG1faW5pdGlhbF9yYV9wYWdlczsKIH0geGZzX21vdW50X3Q7CiAKICNkZWZpbmUgTV9JR0VPKG1wKQkJKCZhbXA7KG1wKS0mZ3Q7bV9pbm9fZ2VvKQpkaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19zdXBlci5jIGIvZnMveGZzL3hmc19zdXBlci5jCmluZGV4IDg1MzFkNTI2ZmM0NDA5Li42M2M0YmNiZTZjMmJjNCAxMDA2NDQKLS0tIGEvZnMveGZzL3hmc19zdXBlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL3hmcy94ZnNfc3VwZXIuYwpAQCAtNTQ4LDYgJiM0Mzs1NDgsNTIgQEAgeGZzX29wZW5fZGV2aWNlcygKIAlyZXR1cm4gZXJyb3I7CiB9CiAKJiM0MzsvKgomIzQzOyAqIFdoZW4gdXNpbmcgYSBSVCBkZXZpY2Ugc29tZSBvciBhbGwgZGF0YSBJL08gaXMgdXNpbmcgdGhlIFJUIGRldmljZSwgYnV0CiYjNDM7ICogdGhlIEJESSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgbWFpbiBkYXRhIGRldmljZS4gIFdoZW4gdGhlIHVuZGVybHlpbmcgYmxvY2sKJiM0MzsgKiBkZXZpY2UgZm9yIHRoZSBSVCBkZXZpY2UgaGFzIGxhcmdlciBJL08gc2l6ZXMsIHRoZSBCREkgc2V0dGluZ3MgbWlnaHQgYmUKJiM0MzsgKiBpbmNvcnJlY3QsIHdoaWNoIGlzIGVzcGVjaWFsbHkgYmFkIGlmIHRoZSBtYWluIGRldmljZSBpcyBhIFNTRCBhbmQgdGhlCiYjNDM7ICogUlQgZGV2aWNlIGlzIGEgSERELCBhcyB0aGUgaW9fb3B0IGZpeHVwIGluIGJsa19hcHBseV9iZGlfbGltaXRzIGlzIG1pc3NpbmcKJiM0MzsgKiBmb3IgdGhpcyBjYXNlLgomIzQzOyAqCiYjNDM7ICogVXBkYXRlIHRoZSBCREkgdmFsdWVzIHRvIHRoZSBtYXggb2YgdGhlIGRhdGEgYW5kIFJUIGRldmljZSB0byBjb3ZlciBvdXIKJiM0MzsgKiBiYXNlcy4KJiM0MzsgKi8KJiM0MztzdGF0aWMgdm9pZAomIzQzO3hmc191cGRhdGVfYmRpX3JhaGVhZCgKJiM0MzsJc3RydWN0IHhmc19tb3VudAkqbXApCiYjNDM7ewomIzQzOwlzdHJ1Y3QgYmFja2luZ19kZXZfaW5mbwkqcnRfYmRpID0KJiM0MzsJCW1wLSZndDttX3J0ZGV2X3RhcmdwLSZndDtidF9iZGV2LSZndDtiZF9kaXNrLSZndDtiZGk7CiYjNDM7CXN0cnVjdCBiYWNraW5nX2Rldl9pbmZvCSpzYl9iZGkgPSBtcC0mZ3Q7bV9zdXBlci0mZ3Q7c19iZGk7CiYjNDM7CiYjNDM7CW1wLSZndDttX29sZF9pb19wYWdlcyA9IHNiX2JkaS0mZ3Q7aW9fcGFnZXM7CiYjNDM7CW1wLSZndDttX29sZF9yYV9wYWdlcyA9IHNiX2JkaS0mZ3Q7cmFfcGFnZXM7CiYjNDM7CiYjNDM7CXNiX2JkaS0mZ3Q7aW9fcGFnZXMgPSBtcC0mZ3Q7bV9pbml0aWFsX2lvX3BhZ2VzID0KJiM0MzsJCW1heChzYl9iZGktJmd0O2lvX3BhZ2VzLCBydF9iZGktJmd0O2lvX3BhZ2VzKTsKJiM0MzsJc2JfYmRpLSZndDtyYV9wYWdlcyA9IG1wLSZndDttX2luaXRpYWxfcmFfcGFnZXMgPQomIzQzOwkJbWF4KHNiX2JkaS0mZ3Q7cmFfcGFnZXMsIHJ0X2JkaS0mZ3Q7cmFfcGFnZXMpOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgdm9pZAomIzQzO3hmc19yZXN0b3JlX2JkaV9yYWhlYWQoCiYjNDM7CXN0cnVjdCB4ZnNfbW91bnQJKm1wKQomIzQzO3sKJiM0MzsJc3RydWN0IGJhY2tpbmdfZGV2X2luZm8JKnNiX2JkaSA9IG1wLSZndDttX3N1cGVyLSZndDtzX2JkaTsKJiM0MzsKJiM0MzsJaWYgKHNiX2JkaS0mZ3Q7aW9fcGFnZXMgPT0gbXAtJmd0O21faW5pdGlhbF9pb19wYWdlcykKJiM0MzsJCXNiX2JkaS0mZ3Q7aW9fcGFnZXMgPSBtcC0mZ3Q7bV9vbGRfaW9fcGFnZXM7CiYjNDM7CWVsc2UKJiM0MzsJCXhmc19pbmZvKG1wLCAmIzM0O2lvX3BhZ2VzIGNoYW5nZWQgZnJvbSAlbHUgdG8gJWx1LCBub3QgcmVzdG9yaW5nLiYjMzQ7LAomIzQzOwkJCQltcC0mZ3Q7bV9pbml0aWFsX2lvX3BhZ2VzLCBzYl9iZGktJmd0O2lvX3BhZ2VzKTsKJiM0MzsJaWYgKHNiX2JkaS0mZ3Q7cmFfcGFnZXMgPT0gbXAtJmd0O21faW5pdGlhbF9yYV9wYWdlcykKJiM0MzsJCXNiX2JkaS0mZ3Q7cmFfcGFnZXMgPSBtcC0mZ3Q7bV9vbGRfcmFfcGFnZXM7CiYjNDM7CWVsc2UKJiM0MzsJCXhmc19pbmZvKG1wLCAmIzM0O3JhX3BhZ2VzIGNoYW5nZWQgZnJvbSAlbHUgdG8gJWx1LCBub3QgcmVzdG9yaW5nLiYjMzQ7LAomIzQzOwkJCQltcC0mZ3Q7bV9pbml0aWFsX3JhX3BhZ2VzLCBzYl9iZGktJmd0O3JhX3BhZ2VzKTsKJiM0Mzt9CiYjNDM7CiAvKgogICogU2V0dXAgeGZzX21vdW50IGJ1ZmZlciB0YXJnZXQgcG9pbnRlcnMgYmFzZWQgb24gc3VwZXJibG9jawogICovCkBAIC01ODUsNiAmIzQzOzYzMSw3IEBAIHhmc19zZXR1cF9kZXZpY2VzKAogCQkJCW1wLSZndDttX3NiLnNiX3NlY3RzaXplLCBtcC0mZ3Q7bV9zYi5zYl9yYmxvY2tzKTsKIAkJaWYgKGVycm9yKQogCQkJcmV0dXJuIGVycm9yOwomIzQzOwkJeGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTsKIAl9CiAKIAlyZXR1cm4gMDsKQEAgLTIyODMsOCAmIzQzOzIzMzAsMTIgQEAgc3RhdGljIHZvaWQKIHhmc19raWxsX3NiKAogCXN0cnVjdCBzdXBlcl9ibG9jawkJKnNiKQogewomIzQzOwlzdHJ1Y3QgeGZzX21vdW50CQkqbXAgPSBYRlNfTShzYik7CiYjNDM7CiYjNDM7CWlmIChtcC0mZ3Q7bV9ydGRldl90YXJncCAmYW1wOyZhbXA7IG1wLSZndDttX3J0ZGV2X3RhcmdwICE9IG1wLSZndDttX2RkZXZfdGFyZ3ApCiYjNDM7CQl4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkKG1wKTsKIAlraWxsX2Jsb2NrX3N1cGVyKHNiKTsKLQl4ZnNfbW91bnRfZnJlZShYRlNfTShzYikpOwomIzQzOwl4ZnNfbW91bnRfZnJlZShtcCk7CiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB4ZnNfZnNfdHlwZSA9IHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAxMgoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDE2OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipYRlMgUmVhZGFoZWFkIE1hbmFnZW1lbnQgZm9yIFJlYWx0aW1lIERldmljZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBYRlMgZmlsZXN5c3RlbS4gSXQgaW50cm9kdWNlcyB0aGVzZSBuZXcgZnVuY3Rpb25zLCBgeGZzX3VwZGF0ZV9iZGlfcmFoZWFkYCBhbmQgYHhmc19yZXN0b3JlX2JkaV9yYWhlYWRgLCByaWdodCBpbnRvIGBmcy94ZnMveGZzX3N1cGVyLmNgLiBUaGUgY29yZSBpZGVhIGlzIHRvIHR3ZWFrIHRoZSBiYWNraW5nX2Rldl9pbmZvIChCREkpIHJlYWRhaGVhZCBhbmQgaW9fcGFnZXMgc2V0dGluZ3Mgd2hlbiBhbiBYRlMgZmlsZXN5c3RlbSBpcyBtb3VudGVkIHdpdGggYSByZWFsdGltZSBkZXZpY2UsIHNwZWNpZmljYWxseSB3aGVuIGBtX3J0ZGV2X3RhcmdwYCBpcyBpbnZvbHZlZC4gVGhpcyBpcyBhIHByZXR0eSBzdHJhaWdodGZvcndhcmQsIGZ1bmN0aW9uYWwgY2hhbmdlLCBpbXBhY3RpbmcgdGhlIG1vdW50IGFuZCB1bm1vdW50IHBhdGhzIHdpdGhpbiBYRlMuCgpNeSBuZXh0IHN0ZXAgaXMgdG8gbWFrZSBzdXJlIHRoaXMgYWxsIGxpbmVzIHVwIHdpdGggdGhlIHJlbGV2YW50IFhGUyBjb25maWd1cmF0aW9ucy4gV2Uga25vdyBYRlMgaXRzZWxmIGlzIGVuYWJsZWQgdGhyb3VnaCBgQ09ORklHX1hGU19GU2AsIGJ1dCB0aGUgcmVhbHRpbWUgc3Vidm9sdW1lIGFzcGVjdCB0eXBpY2FsbHkgZGVwZW5kcyBvbiBgQ09ORklHX1hGU19SVGAuIEkgbmVlZCB0byBjb25maXJtIHRoYXQgYENPTkZJR19YRlNfUlRgIGlzIGluZGVlZCBhIGRlcGVuZGVuY3kgaGVyZS4gSXQmIzM5O3MgY3J1Y2lhbCB3ZSYjMzk7cmUgbm90IG1pc3NpbmcgYW55IGNvbmZpZ3VyYXRpb24gc3RlcHMgdG8gZW5zdXJlIGV2ZXJ5dGhpbmcgYmVoYXZlcyBhcyBleHBlY3RlZCB3aXRoIHRoZXNlIHJlYWx0aW1lIGRldmljZXMuIEdvdHRhIG1ha2Ugc3VyZSB3ZSBjb3ZlciBhbGwgdGhlIGJhc2VzIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE5OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0NPTkZJR19YRlNfUlQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy94ZnMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3hmcy9NYWtlZmlsZT0xNj14ZnMteVx0XHRcdFx0JiM0Mzs9ICQoYWRkcHJlZml4IGxpYnhmcy8sIFxcXG4tLVxuZnMveGZzL01ha2VmaWxlLTYzLSMgeGZzX3J0Yml0bWFwIGlzIHNoYXJlZCB3aXRoIGxpYnhmc1xuZnMveGZzL01ha2VmaWxlOjY0Onhmcy0kKENPTkZJR19YRlNfUlQpXHRcdCYjNDM7PSAkKGFkZHByZWZpeCBsaWJ4ZnMvLCBcXFxuZnMveGZzL01ha2VmaWxlLTY1LVx0XHRcdFx0ICAgeGZzX3J0Yml0bWFwLm8gXFxcbi0tXG5mcy94ZnMvTWFrZWZpbGU9MTMzPXhmcy0kKENPTkZJR19YRlNfUVVPVEEpXHRcdCYjNDM7PSB4ZnNfZHF1b3QubyBcXFxuLS1cbmZzL3hmcy9NYWtlZmlsZS0xNDEtIyB4ZnNfcnRiaXRtYXAgaXMgc2hhcmVkIHdpdGggbGlieGZzXG5mcy94ZnMvTWFrZWZpbGU6MTQyOnhmcy0kKENPTkZJR19YRlNfUlQpXHRcdCYjNDM7PSB4ZnNfcnRhbGxvYy5vIFxcXG5mcy94ZnMvTWFrZWZpbGUtMTQzLVx0XHRcdFx0ICAgeGZzX3pvbmVfYWxsb2MubyBcXFxuLS1cbmZzL3hmcy9NYWtlZmlsZT0yMDA9eGZzLSQoQ09ORklHX1hGU19PTkxJTkVfU0NSVUJfU1RBVFMpICYjNDM7PSBzY3J1Yi9zdGF0cy5vXG5mcy94ZnMvTWFrZWZpbGUtMjAxLVxuZnMveGZzL01ha2VmaWxlOjIwMjp4ZnMtJChDT05GSUdfWEZTX1JUKVx0XHQmIzQzOz0gJChhZGRwcmVmaXggc2NydWIvLCBcXFxuZnMveGZzL01ha2VmaWxlLTIwMy1cdFx0XHRcdCAgIHJnc3VwZXIubyBcXFxuLS1cbmZzL3hmcy9NYWtlZmlsZT0yMTg9eGZzLXlcdFx0XHRcdCYjNDM7PSAkKGFkZHByZWZpeCBzY3J1Yi8sIFxcXG4tLVxuZnMveGZzL01ha2VmaWxlLTI0My1cbmZzL3hmcy9NYWtlZmlsZToyNDQ6eGZzLSQoQ09ORklHX1hGU19SVClcdFx0JiM0Mzs9ICQoYWRkcHJlZml4IHNjcnViLywgXFxcbmZzL3hmcy9NYWtlZmlsZS0yNDUtXHRcdFx0XHQgICBydGJpdG1hcF9yZXBhaXIubyBcXFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmg9Mzc4PXR5cGVkZWYgaW50ICgqeGZzX3J0YWxsb2NfcXVlcnlfcmFuZ2VfZm4pKFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtMzgzLVxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaDozODQ6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtMzg1LXZvaWQgeGZzX3J0YnVmX2NhY2hlX3JlbHNlKHN0cnVjdCB4ZnNfcnRhbGxvY19hcmdzICphcmdzKTtcbi0tXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oPTQyNz1pbnQgeGZzX3J0c3VtbWFyeV9jcmVhdGUoc3RydWN0IHhmc19ydGdyb3VwICpydGcsIHN0cnVjdCB4ZnNfaW5vZGUgKmlwLFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtNDI5LVxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaDo0MzA6I2Vsc2UgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaC00MzEtIyBkZWZpbmUgeGZzX3J0ZnJlZV9leHRlbnQodCxiLGwpXHRcdFx0KC1FTk9TWVMpXG4tLVxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaD00NDY9eGZzX3J0Yml0bWFwX2Jsb2NrY291bnRfbGVuKHN0cnVjdCB4ZnNfbW91bnQgKm1wLCB4ZnNfcnRieGxlbl90IHJ0ZXh0ZW50cylcbi0tXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oLTQ1MC19XG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oOjQ1MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaC00NTItXG4tLVxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oPTI1OT14ZnNfZGFkZHJfdG9fcnRiKFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Z3JvdXAuaC0yNzctXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg6Mjc4OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmgtMjc5LWludCB4ZnNfcnRncm91cF9hbGxvYyhzdHJ1Y3QgeGZzX21vdW50ICptcCwgeGZzX3JnbnVtYmVyX3Qgcmdubyxcbi0tXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg9MzQ5PXN0YXRpYyBpbmxpbmUgaW50IHhmc19pbml0aWFsaXplX3J0Z3JvdXBzKHN0cnVjdCB4ZnNfbW91bnQgKm1wLFxuLS1cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Z3JvdXAuaC0zNjMtIyBkZWZpbmUgeGZzX3J0Z3JvdXBfZ2V0X2dlb21ldHJ5KHJ0ZywgcmdlbylcdCgtRU9QTk9UU1VQUClcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Z3JvdXAuaDozNjQ6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9saWJ4ZnMveGZzX3J0Z3JvdXAuaC0zNjUtXG4tLVxuZnMveGZzL3NjcnViL2JtYXBfcmVwYWlyLmM9MzU1PXhyZXBfYm1hcF9zY2FuX2FnKFxuLS1cbmZzL3hmcy9zY3J1Yi9ibWFwX3JlcGFpci5jLTM3MC1cbmZzL3hmcy9zY3J1Yi9ibWFwX3JlcGFpci5jOjM3MTojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL2JtYXBfcmVwYWlyLmMtMzcyLS8qIENoZWNrIGZvciBhbnkgb2J2aW91cyBlcnJvcnMgb3IgY29uZmxpY3RzIGluIHRoZSBmaWxlIG1hcHBpbmcuICovXG4tLVxuZnMveGZzL3NjcnViL2NvbW1vbi5jPTcwMj14Y2hrX2FnX2luaXQoXG4tLVxuZnMveGZzL3NjcnViL2NvbW1vbi5jLTcxNi1cbmZzL3hmcy9zY3J1Yi9jb21tb24uYzo3MTc6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9jb21tb24uYy03MTgtLypcbi0tXG5mcy94ZnMvc2NydWIvY29tbW9uLmM9ODYxPXhjaGtfcnRncm91cF9mcmVlKFxuLS1cbmZzL3hmcy9zY3J1Yi9jb21tb24uYy04NzEtfVxuZnMveGZzL3NjcnViL2NvbW1vbi5jOjg3MjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3NjcnViL2NvbW1vbi5jLTg3My1cbi0tXG5mcy94ZnMvc2NydWIvY29tbW9uLmg9ODM9aW50IHhjaGtfc2V0dXBfbWV0YXBhdGgoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xuZnMveGZzL3NjcnViL2NvbW1vbi5oOjg0OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtODUtaW50IHhjaGtfc2V0dXBfcnRiaXRtYXAoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xuLS1cbmZzL3hmcy9zY3J1Yi9jb21tb24uaD0xMjQ9eGNoa19hZ19pbml0X2V4aXN0aW5nKFxuLS1cbmZzL3hmcy9zY3J1Yi9jb21tb24uaC0xMzMtXG5mcy94ZnMvc2NydWIvY29tbW9uLmg6MTM0OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTM1LVxuLS1cbmZzL3hmcy9zY3J1Yi9jb21tb24uaD0xNTk9dm9pZCB4Y2hrX3J0Z3JvdXBfZnJlZShzdHJ1Y3QgeGZzX3NjcnViICpzYywgc3RydWN0IHhjaGtfcnQgKnNyKTtcbi0tXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTY2LSMgZGVmaW5lIHhjaGtfcnRncm91cF9mcmVlKHNjLCBzcilcdFx0XHRkbyB7IH0gd2hpbGUgKDApXG5mcy94ZnMvc2NydWIvY29tbW9uLmg6MTY3OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTY4LVxuLS1cbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmM9Mjk0PXhjaGtfZnNjb3VudF9hZ2dyZWdhdGVfYWdjb3VudHMoXG4tLVxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYy0zODctXG5mcy94ZnMvc2NydWIvZnNjb3VudGVycy5jOjM4ODojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYy0zODktU1RBVElDIGludFxuLS1cbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmM9NDQzPXhjaGtfZnNjb3VudF9jb3VudF9mcmV4dGVudHMoXG4tLVxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYy00NTAtfVxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYzo0NTE6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmMtNDUyLVxuLS1cbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jPTg3PXhjaGtfc2V0dXBfbWV0YXBhdGhfc2Nhbihcbi0tXG5mcy94ZnMvc2NydWIvbWV0YXBhdGguYy0xMjQtXG5mcy94ZnMvc2NydWIvbWV0YXBhdGguYzoxMjU6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jLTEyNi0vKiBTY2FuIHRoZSAvcnRncm91cHMgZGlyZWN0b3J5IGl0c2VsZi4gKi9cbi0tXG5mcy94ZnMvc2NydWIvbWV0YXBhdGguYz0xNDA9eGNoa19zZXR1cF9tZXRhcGF0aF9ydGdpbm9kZShcbi0tXG5mcy94ZnMvc2NydWIvbWV0YXBhdGguYy0xNjctIyBkZWZpbmUgeGNoa19zZXR1cF9tZXRhcGF0aF9ydGdpbm9kZSguLi4pXHQoLUVOT0VOVClcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jOjE2ODojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3NjcnViL21ldGFwYXRoLmMtMTY5LVxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmM9ODY4PXhyZXBfcmVhcF9mc2Jsb2Nrcyhcbi0tXG5mcy94ZnMvc2NydWIvcmVhcC5jLTg5Ni1cbmZzL3hmcy9zY3J1Yi9yZWFwLmM6ODk3OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvcmVhcC5jLTg5OC0vKlxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmM9MTE1Mz14cmVwX3JlYXBfcnRibG9ja3MoXG4tLVxuZnMveGZzL3NjcnViL3JlYXAuYy0xMTc4LX1cbmZzL3hmcy9zY3J1Yi9yZWFwLmM6MTE3OTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3NjcnViL3JlYXAuYy0xMTgwLVxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmg9MTc9aW50IHhyZXBfcmVhcF9tZXRhZGlyX2ZzYmxvY2tzKHN0cnVjdCB4ZnNfc2NydWIgKnNjLFxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMTktXG5mcy94ZnMvc2NydWIvcmVhcC5oOjIwOiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvcmVhcC5oLTIxLWludCB4cmVwX3JlYXBfcnRibG9ja3Moc3RydWN0IHhmc19zY3J1YiAqc2MsIHN0cnVjdCB4cnRiX2JpdG1hcCAqYml0bWFwLFxuLS1cbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMjQtIyBkZWZpbmUgeHJlcF9yZWFwX3J0YmxvY2tzKC4uLilcdCgtRU9QTk9UU1VQUClcbmZzL3hmcy9zY3J1Yi9yZWFwLmg6MjU6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMjYtXG4tLVxuZnMveGZzL3NjcnViL3JlcGFpci5jPTI4MT14cmVwX2NhbGNfYWdfcmVzYmxrcyhcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmMtMzg4LVxuZnMveGZzL3NjcnViL3JlcGFpci5jOjM4OTojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL3JlcGFpci5jLTM5MC0vKlxuLS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYz0zOTY9eHJlcF9jYWxjX3J0Z3JvdXBfcmVzYmxrcyhcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmMtNDIxLX1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYzo0MjI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy00MjMtXG4tLVxuZnMveGZzL3NjcnViL3JlcGFpci5jPTk3Nj14cmVwX2FnX2luaXQoXG4tLVxuZnMveGZzL3NjcnViL3JlcGFpci5jLTk5OC1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYzo5OTk6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDAwLS8qIEluaXRpYWxpemUgYWxsIHRoZSBidHJlZSBjdXJzb3JzIGZvciBhIFJUIHJlcGFpci4gKi9cbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM9MTA0NT14cmVwX3JlcXVpcmVfcnRleHRfaW51c2UoXG4tLVxuZnMveGZzL3NjcnViL3JlcGFpci5jLTEwNzMtfVxuZnMveGZzL3NjcnViL3JlcGFpci5jOjEwNzQ6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDc1LVxuLS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaD0xMDQ9aW50IHhyZXBfYWdfaW5pdChzdHJ1Y3QgeGZzX3NjcnViICpzYywgc3RydWN0IHhmc19wZXJhZyAqcGFnLFxuZnMveGZzL3NjcnViL3JlcGFpci5oLTEwNS1cdFx0c3RydWN0IHhjaGtfYWcgKnNhKTtcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaDoxMDY6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xMDctaW50IHhyZXBfcnRncm91cF9pbml0KHN0cnVjdCB4ZnNfc2NydWIgKnNjLCBzdHJ1Y3QgeGZzX3J0Z3JvdXAgKnJ0Zyxcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg9MTEyPXhmc19leHRsZW5fdCB4cmVwX2NhbGNfcnRncm91cF9yZXNibGtzKHN0cnVjdCB4ZnNfc2NydWIgKnNjKTtcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTE1LSMgZGVmaW5lIHhyZXBfY2FsY19ydGdyb3VwX3Jlc2Jsa3Moc2MpXHRcdFx0KDApXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg6MTE2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTE3LVxuLS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaD0xNDg9aW50IHhyZXBfbWV0YXBhdGgoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xuZnMveGZzL3NjcnViL3JlcGFpci5oLTE0OS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaDoxNTA6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xNTEtaW50IHhyZXBfcnRiaXRtYXAoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xuLS1cbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaD0xNTU9aW50IHhyZXBfcnRyZWZjb3VudGJ0KHN0cnVjdCB4ZnNfc2NydWIgKnNjKTtcbi0tXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTYxLSMgZGVmaW5lIHhyZXBfcnRyZWZjb3VudGJ0XHRcdHhyZXBfbm90c3VwcG9ydGVkXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg6MTYyOiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTYzLVxuLS1cbmZzL3hmcy9zY3J1Yi9zY3J1Yi5oPTI4Mj1pbnQgeGNoa19tZXRhcGF0aChzdHJ1Y3QgeGZzX3NjcnViICpzYyk7XG5mcy94ZnMvc2NydWIvc2NydWIuaDoyODM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi9zY3J1Yi5oLTI4NC1pbnQgeGNoa19ydGJpdG1hcChzdHJ1Y3QgeGZzX3NjcnViICpzYyk7XG4tLVxuZnMveGZzL3NjcnViL3NjcnViLmg9MzIzPXZvaWQgeGNoa194cmVmX2lzX25vdF9jb3dfc3RhZ2luZyhzdHJ1Y3QgeGZzX3NjcnViICpzYywgeGZzX2FnYmxvY2tfdCBibm8sXG5mcy94ZnMvc2NydWIvc2NydWIuaC0zMjQtXHRcdHhmc19leHRsZW5fdCBsZW4pO1xuZnMveGZzL3NjcnViL3NjcnViLmg6MzI1OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMvc2NydWIvc2NydWIuaC0zMjYtdm9pZCB4Y2hrX3hyZWZfaXNfdXNlZF9ydF9zcGFjZShzdHJ1Y3QgeGZzX3NjcnViICpzYywgeGZzX3J0YmxvY2tfdCBydGJubyxcbi0tXG5mcy94ZnMvc2NydWIvdHJhY2UuaD0xMTk4PVRSQUNFX0VWRU5UKHhmYXJyYXlfc29ydF9zdGF0cyxcbi0tXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0xMjQyLVxuZnMveGZzL3NjcnViL3RyYWNlLmg6MTI0MzojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMTI0NC1UUkFDRV9FVkVOVCh4Y2hrX3J0c3VtX3JlY29yZF9mcmVlLFxuLS1cbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNzUtKTtcbmZzL3hmcy9zY3J1Yi90cmFjZS5oOjEyNzY6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNzctXG4tLVxuZnMveGZzL3NjcnViL3RyYWNlLmg9MjMxMz1UUkFDRV9FVkVOVCh4cmVwX2NhbGNfYWdfcmVzYmxrc19idHNpemUsXG4tLVxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM0Mi1cbmZzL3hmcy9zY3J1Yi90cmFjZS5oOjIzNDM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTIzNDQtVFJBQ0VfRVZFTlQoeHJlcF9jYWxjX3J0Z3JvdXBfcmVzYmxrc19idHNpemUsXG4tLVxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM2NS0pO1xuZnMveGZzL3NjcnViL3RyYWNlLmg6MjM2NjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM2Ny1cbi0tXG5mcy94ZnMvc2NydWIvdHJhY2UuaD0zNjU4PURFRklORV9YQ0hLX01FVEFQQVRIX0VWRU5UKHhyZXBfbWV0YXBhdGhfbGluayk7XG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zNjU5LVxuZnMveGZzL3NjcnViL3RyYWNlLmg6MzY2MDojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMzY2MS1ERUNMQVJFX0VWRU5UX0NMQVNTKHhyZXBfcnRiaXRtYXBfY2xhc3MsXG4tLVxuZnMveGZzL3NjcnViL3RyYWNlLmg9MzgwOD1UUkFDRV9FVkVOVCh4cmVwX3J0cm1hcF9mb3VuZCxcbi0tXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zODM3LSk7XG5mcy94ZnMvc2NydWIvdHJhY2UuaDozODM4OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zODM5LVxuLS1cbmZzL3hmcy94ZnNfYW9wcy5jPTIyNz14ZnNfZW5kX2Jpbyhcbi0tXG5mcy94ZnMveGZzX2FvcHMuYy0yMzgtXHQgKi9cbmZzL3hmcy94ZnNfYW9wcy5jOjIzOTpcdGlmIChJU19FTkFCTEVEKENPTkZJR19YRlNfUlQpIFx1MDAyNlx1MDAyNiBiaW9faXNfem9uZV9hcHBlbmQoYmlvKSkge1xuZnMveGZzL3hmc19hb3BzLmMtMjQwLVx0XHRpb2VuZC1cdTAwM2Vpb19zZWN0b3IgPSBiaW8tXHUwMDNlYmlfaXRlci5iaV9zZWN0b3I7XG4tLVxuZnMveGZzL3hmc19ibWFwX3V0aWwuaD0xOD1zdHJ1Y3QgeGZzX3pvbmVfYWxsb2NfY3R4O1xuZnMveGZzL3hmc19ibWFwX3V0aWwuaC0xOS1cbmZzL3hmcy94ZnNfYm1hcF91dGlsLmg6MjA6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMjEtaW50XHR4ZnNfYm1hcF9ydGFsbG9jKHN0cnVjdCB4ZnNfYm1hbGxvY2EgKmFwKTtcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmg6MjI6I2Vsc2UgLyogIUNPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMjMtLypcbi0tXG5mcy94ZnMveGZzX2JtYXBfdXRpbC5oPTI4PXhmc19ibWFwX3J0YWxsb2Moc3RydWN0IHhmc19ibWFsbG9jYSAqYXApXG4tLVxuZnMveGZzL3hmc19ibWFwX3V0aWwuaC0zMS19XG5mcy94ZnMveGZzX2JtYXBfdXRpbC5oOjMyOiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX2JtYXBfdXRpbC5oLTMzLVxuLS1cbmZzL3hmcy94ZnNfYnVmX2l0ZW1fcmVjb3Zlci5jPTIxNj14bG9nX3JlY292ZXJfdmFsaWRhdGVfYnVmX3R5cGUoXG4tLVxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDAxLVx0XHRicmVhaztcbmZzL3hmcy94ZnNfYnVmX2l0ZW1fcmVjb3Zlci5jOjQwMjojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDAzLVx0Y2FzZSBYRlNfQkxGVF9SVEJJVE1BUF9CVUY6XG4tLVxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDE2LVx0XHRicmVhaztcbmZzL3hmcy94ZnNfYnVmX2l0ZW1fcmVjb3Zlci5jOjQxNzojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDE4LVx0ZGVmYXVsdDpcbi0tXG5mcy94ZnMveGZzX2Rpc2NhcmQuYz0zODk9eGZzX3RyaW1fZGF0YWRldl9leHRlbnRzKFxuLS1cbmZzL3hmcy94ZnNfZGlzY2FyZC5jLTQyNy1cbmZzL3hmcy94ZnNfZGlzY2FyZC5jOjQyODojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19kaXNjYXJkLmMtNDI5LXN0cnVjdCB4ZnNfdHJpbV9ydGRldiB7XG4tLVxuZnMveGZzL3hmc19kaXNjYXJkLmM9NzM5PXhmc190cmltX3J0ZGV2X2V4dGVudHMoXG4tLVxuZnMveGZzL3hmc19kaXNjYXJkLmMtNzk1LSMgZGVmaW5lIHhmc190cmltX3J0ZGV2X2V4dGVudHMoLi4uKVx0KC1FT1BOT1RTVVBQKVxuZnMveGZzL3hmc19kaXNjYXJkLmM6Nzk2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX2Rpc2NhcmQuYy03OTctXG4tLVxuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYz03NDE9Y29uc3Qgc3RydWN0IHhmc19kZWZlcl9vcF90eXBlIHhmc19hZ2ZsX2ZyZWVfZGVmZXJfdHlwZSA9IHtcbi0tXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTc1Mi1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM6NzUzOiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTc1NC0vKiBDcmVhdGUgYSByZWFsdGltZSBleHRlbnQgZnJlZWluZyAqL1xuLS1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM9ODI4PWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfcnRleHRlbnRfZnJlZV9kZWZlcl90eXBlID0ge1xuLS1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtODMwLX07XG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jOjgzMTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYy04MzItXG4tLVxuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYz04OTA9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX2VmaV9pdGVtX29wcyA9IHtcbi0tXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTg5NC1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM6ODk1OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTg5Ni1TVEFUSUMgaW50XG4tLVxuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYz05ODU9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX2VmZF9pdGVtX29wcyA9IHtcbi0tXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTk4OS1cbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM6OTkwOiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTk5MS1TVEFUSUMgaW50XG4tLVxuZnMveGZzL3hmc19mc21hcC5jPTY3Nz14ZnNfZ2V0ZnNtYXBfbG9nZGV2KFxuLS1cbmZzL3hmcy94ZnNfZnNtYXAuYy03MTItXG5mcy94ZnMveGZzX2ZzbWFwLmM6NzEzOiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2ZzbWFwLmMtNzE0LS8qIFRyYW5zZm9ybSBhIHJ0Yml0bWFwIFwmIzM0O3JlY29yZFwmIzM0OyBpbnRvIGEgZnNtYXAgKi9cbi0tXG5mcy94ZnMveGZzX2ZzbWFwLmM9ODc0PXhmc19nZXRmc21hcF9ydGRldl9ybWFwYnQoXG4tLVxuZnMveGZzL3hmc19mc21hcC5jLTEwNDEtfVxuZnMveGZzL3hmc19mc21hcC5jOjEwNDI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfZnNtYXAuYy0xMDQzLVxuLS1cbmZzL3hmcy94ZnNfZnNtYXAuYz0xMDgyPXhmc19nZXRmc21hcF9jaGVja19rZXlzKFxuLS1cbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTI0LSAqL1xuZnMveGZzL3hmc19mc21hcC5jOjExMjU6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTI2LSNkZWZpbmUgWEZTX0dFVEZTTUFQX0RFVlNcdDNcbi0tXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTEyOC0jZGVmaW5lIFhGU19HRVRGU01BUF9ERVZTXHQyXG5mcy94ZnMveGZzX2ZzbWFwLmM6MTEyOTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc19mc21hcC5jLTExMzAtXG4tLVxuZnMveGZzL3hmc19mc21hcC5jPTExNTM9eGZzX2dldGZzbWFwKFxuLS1cbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTk0LVx0fVxuZnMveGZzL3hmc19mc21hcC5jOjExOTU6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTk2LVx0Lypcbi0tXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTIwNy1cdH1cbmZzL3hmcy94ZnNfZnNtYXAuYzoxMjA4OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTIwOS1cbi0tXG5mcy94ZnMveGZzX2ljYWNoZS5jPTIwNjg9eGZzX2lub2RlZ2Nfc3RhcnQoXG4tLVxuZnMveGZzL3hmc19pY2FjaGUuYy0yMDc3LVxuZnMveGZzL3hmc19pY2FjaGUuYzoyMDc4OiNpZmRlZiBDT05GSUdfWEZTX1JUXG5mcy94ZnMveGZzX2ljYWNoZS5jLTIwNzktc3RhdGljIGlubGluZSBib29sXG5mcy94ZnMveGZzX2ljYWNoZS5jPTIwODA9eGZzX2lub2RlZ2Nfd2FudF9xdWV1ZV9ydF9maWxlKFxuLS1cbmZzL3hmcy94ZnNfaWNhY2hlLmMtMjA5Ni0jIGRlZmluZSB4ZnNfaW5vZGVnY193YW50X3F1ZXVlX3J0X2ZpbGUoaXApXHQoZmFsc2UpXG5mcy94ZnMveGZzX2ljYWNoZS5jOjIwOTc6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfaWNhY2hlLmMtMjA5OC1cbi0tXG5mcy94ZnMveGZzX2lvbWFwLmM9MTA0MD1jb25zdCBzdHJ1Y3QgaW9tYXBfb3BzIHhmc19kaXJlY3Rfd3JpdGVfaW9tYXBfb3BzID0ge1xuLS1cbmZzL3hmcy94ZnNfaW9tYXAuYy0xMDQzLVxuZnMveGZzL3hmc19pb21hcC5jOjEwNDQ6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfaW9tYXAuYy0xMDQ1LS8qXG4tLVxuZnMveGZzL3hmc19pb21hcC5jPTEwOTI9Y29uc3Qgc3RydWN0IGlvbWFwX29wcyB4ZnNfem9uZWRfZGlyZWN0X3dyaXRlX2lvbWFwX29wcyA9IHtcbi0tXG5mcy94ZnMveGZzX2lvbWFwLmMtMTA5NC19O1xuZnMveGZzL3hmc19pb21hcC5jOjEwOTU6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfaW9tYXAuYy0xMDk2LVxuLS1cbmZzL3hmcy94ZnNfbG9nLmM9MzMxNj14bG9nX2ZvcmNlX3NodXRkb3duKFxuLS1cbmZzL3hmcy94ZnNfbG9nLmMtMzQxMS1cdHdha2VfdXBfdmFyKFx1MDAyNmxvZy1cdTAwM2VsX29wc3RhdGUpO1xuZnMveGZzL3hmc19sb2cuYzozNDEyOlx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgXHUwMDI2XHUwMDI2IHhmc19oYXNfem9uZWQobG9nLVx1MDAzZWxfbXApKVxuZnMveGZzL3hmc19sb2cuYy0zNDEzLVx0XHR4ZnNfem9uZWRfd2FrZV9hbGwobG9nLVx1MDAzZWxfbXApO1xuLS1cbmZzL3hmcy94ZnNfbW91bnQuYz00NzE9eGZzX2RlZmF1bHRfcmVzYmxrcyhcbi0tXG5mcy94ZnMveGZzX21vdW50LmMtNDg4LVx0Y2FzZSBYQ19GUkVFX1JUQVZBSUxBQkxFOlxuZnMveGZzL3hmc19tb3VudC5jOjQ4OTpcdFx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgXHUwMDI2XHUwMDI2IHhmc19oYXNfem9uZWQobXApKVxuZnMveGZzL3hmc19tb3VudC5jLTQ5MC1cdFx0XHRyZXR1cm4geGZzX3pvbmVkX2RlZmF1bHRfcmVzYmxrcyhtcCwgY3RyKTtcbi0tXG5mcy94ZnMveGZzX3BsYXRmb3JtLmg9MjI0PWludCB4ZnNfcndfYmRldihzdHJ1Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0b3JfdCBzZWN0b3IsIHVuc2lnbmVkIGludCBjb3VudCxcbi0tXG5mcy94ZnMveGZzX3BsYXRmb3JtLmgtMjY0LVxuZnMveGZzL3hmc19wbGF0Zm9ybS5oOjI2NTojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19wbGF0Zm9ybS5oLTI2Ni1cbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYz01OTA9Y29uc3Qgc3RydWN0IHhmc19kZWZlcl9vcF90eXBlIHhmc19yZWZjb3VudF91cGRhdGVfZGVmZXJfdHlwZSA9IHtcbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02MDItXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYzo2MDM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jLTYwNC1zdGF0aWMgc3RydWN0IHhmc19sb2dfaXRlbSAqXG4tLVxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM9NjYzPWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfcnRyZWZjb3VudF91cGRhdGVfZGVmZXJfdHlwZSA9IHtcbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02NjUtfTtcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jOjY2NjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmMtNjY3LVxuLS1cbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jPTc0Mj1jb25zdCBzdHJ1Y3QgeGxvZ19yZWNvdmVyX2l0ZW1fb3BzIHhsb2dfY3VpX2l0ZW1fb3BzID0ge1xuLS1cbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jLTc0Ni1cbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jOjc0NzojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmMtNzQ4LVNUQVRJQyBpbnRcbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYz04Mjk9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX2N1ZF9pdGVtX29wcyA9IHtcbi0tXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy04MzMtXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYzo4MzQ6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jLTgzNS1TVEFUSUMgaW50XG4tLVxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYz02NDM9Y29uc3Qgc3RydWN0IHhmc19kZWZlcl9vcF90eXBlIHhmc19ybWFwX3VwZGF0ZV9kZWZlcl90eXBlID0ge1xuLS1cbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNjU1LVxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYzo2NTY6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNjU3LXN0YXRpYyBzdHJ1Y3QgeGZzX2xvZ19pdGVtICpcbi0tXG5mcy94ZnMveGZzX3JtYXBfaXRlbS5jPTc3MT1jb25zdCBzdHJ1Y3QgeGxvZ19yZWNvdmVyX2l0ZW1fb3BzIHhsb2dfcnVpX2l0ZW1fb3BzID0ge1xuLS1cbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNzc1LVxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYzo3NzY6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNzc3LVNUQVRJQyBpbnRcbi0tXG5mcy94ZnMveGZzX3JtYXBfaXRlbS5jPTg1OD1jb25zdCBzdHJ1Y3QgeGxvZ19yZWNvdmVyX2l0ZW1fb3BzIHhsb2dfcnVkX2l0ZW1fb3BzID0ge1xuLS1cbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtODYyLVxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYzo4NjM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtODY0LVNUQVRJQyBpbnRcbi0tXG5mcy94ZnMveGZzX3J0YWxsb2MuaD0xMj1zdHJ1Y3QgeGZzX3RyYW5zO1xuZnMveGZzL3hmc19ydGFsbG9jLmgtMTMtXG5mcy94ZnMveGZzX3J0YWxsb2MuaDoxNDojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19ydGFsbG9jLmgtMTUtLyogcnRncm91cCBzdXBlcmJsb2NrIGluaXRpYWxpemF0aW9uICovXG4tLVxuZnMveGZzL3hmc19ydGFsbG9jLmg9NTQ9eGZzX3J0bW91bnRfaW5pdChcbi0tXG5mcy94ZnMveGZzX3J0YWxsb2MuaC01OS1cbmZzL3hmcy94ZnNfcnRhbGxvYy5oOjYwOlx0eGZzX3dhcm4obXAsIFwmIzM0O05vdCBidWlsdCB3aXRoIENPTkZJR19YRlNfUlRcJiMzNDspO1xuZnMveGZzL3hmc19ydGFsbG9jLmgtNjEtXHRyZXR1cm4gLUVOT1NZUztcbi0tXG5mcy94ZnMveGZzX3J0YWxsb2MuaD02Nz14ZnNfZ3Jvd2ZzX2NoZWNrX3J0Z2VvbShjb25zdCBzdHJ1Y3QgeGZzX21vdW50ICptcCxcbi0tXG5mcy94ZnMveGZzX3J0YWxsb2MuaC03Mi19XG5mcy94ZnMveGZzX3J0YWxsb2MuaDo3MzojZW5kaWZcdC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTc0LVxuLS1cbmZzL3hmcy94ZnNfc3RhdHMuYz0xMjg9c3RhdGljIGludCB4cW1fcHJvY19zaG93KHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqdilcbi0tXG5mcy94ZnMveGZzX3N0YXRzLmMtMTMzLVx0XHQgICAwLCBjb3VudGVyX3ZhbCh4ZnNzdGF0cy54c19zdGF0cywgWEZTU1RBVF9FTkRfWFFNU1RBVCAmIzQzOyAxKSxcbmZzL3hmcy94ZnNfc3RhdHMuYzoxMzQ6XHRcdCAgIElTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgPyBcJiMzNDtydHF1b3RhXCYjMzQ7IDogXCYjMzQ7cXVvdGFcJiMzNDspO1xuZnMveGZzL3hmc19zdGF0cy5jLTEzNS1cdHJldHVybiAwO1xuLS1cbmZzL3hmcy94ZnNfc3VwZXIuYz04MjI9eGZzX2ZzX2V2aWN0X2lub2RlKFxuLS1cbmZzL3hmcy94ZnNfc3VwZXIuYy04MzAtXG5mcy94ZnMveGZzX3N1cGVyLmM6ODMxOlx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgXHUwMDI2XHUwMDI2XG5mcy94ZnMveGZzX3N1cGVyLmMtODMyLVx0ICAgIFNfSVNSRUcoaW5vZGUtXHUwMDNlaV9tb2RlKSBcdTAwMjZcdTAwMjYgaW5vZGUtXHUwMDNlaV9wcml2YXRlKSB7XG4tLVxuZnMveGZzL3hmc19zdXBlci5jPTEzMTQ9eGZzX2ZzX3Nob3dfc3RhdHMoXG4tLVxuZnMveGZzL3hmc19zdXBlci5jLTEzMTktXG5mcy94ZnMveGZzX3N1cGVyLmM6MTMyMDpcdGlmICh4ZnNfaGFzX3pvbmVkKG1wKSBcdTAwMjZcdTAwMjYgSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSlcbmZzL3hmcy94ZnNfc3VwZXIuYy0xMzIxLVx0XHR4ZnNfem9uZWRfc2hvd19zdGF0cyhtLCBtcCk7XG4tLVxuZnMveGZzL3hmc19zdXBlci5oPTEzPWV4dGVybiB2b2lkIHhmc19xbV9leGl0KHZvaWQpO1xuLS1cbmZzL3hmcy94ZnNfc3VwZXIuaC0zMC1cbmZzL3hmcy94ZnNfc3VwZXIuaDozMTojaWZkZWYgQ09ORklHX1hGU19SVFxuZnMveGZzL3hmc19zdXBlci5oLTMyLSMgZGVmaW5lIFhGU19SRUFMVElNRV9TVFJJTkdcdFwmIzM0O3JlYWx0aW1lLCBcJiMzNDtcbi0tXG5mcy94ZnMveGZzX3N5c2ZzLmM9Nzg0PXhmc196b25lZF9zeXNmc19pbml0KHN0cnVjdCB4ZnNfbW91bnQgKm1wKVxuZnMveGZzL3hmc19zeXNmcy5jLTc4NS17XG5mcy94ZnMveGZzX3N5c2ZzLmM6Nzg2Olx0aWYgKCFJU19FTkFCTEVEKENPTkZJR19YRlNfUlQpIHx8ICF4ZnNfaGFzX3pvbmVkKG1wKSlcbmZzL3hmcy94ZnNfc3lzZnMuYy03ODctXHRcdHJldHVybiAwO1xuLS1cbmZzL3hmcy94ZnNfc3lzZnMuYz03OTQ9eGZzX3pvbmVkX3N5c2ZzX2RlbChzdHJ1Y3QgeGZzX21vdW50ICptcClcbmZzL3hmcy94ZnNfc3lzZnMuYy03OTUte1xuZnMveGZzL3hmc19zeXNmcy5jOjc5NjpcdGlmIChJU19FTkFCTEVEKENPTkZJR19YRlNfUlQpIFx1MDAyNlx1MDAyNiB4ZnNfaGFzX3pvbmVkKG1wKSlcbmZzL3hmcy94ZnNfc3lzZnMuYy03OTctXHRcdHhmc19zeXNmc19kZWwoXHUwMDI2bXAtXHUwMDNlbV96b25lZF9rb2JqKTtcbi0tXG5mcy94ZnMveGZzX3RyYWNlLmg9MzYxPURFRklORV9HUk9VUF9SRUZfRVZFTlQoeGZzX2dyb3VwX3JlbGUpO1xuZnMveGZzL3hmc190cmFjZS5oLTM2Mi1cbmZzL3hmcy94ZnNfdHJhY2UuaDozNjM6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfdHJhY2UuaC0zNjQtREVDTEFSRV9FVkVOVF9DTEFTUyh4ZnNfem9uZV9jbGFzcyxcbi0tXG5mcy94ZnMveGZzX3RyYWNlLmg9NDg5PVRSQUNFX0VWRU5UKHhmc196b25lc19tb3VudCxcbi0tXG5mcy94ZnMveGZzX3RyYWNlLmgtNTA5LSk7XG5mcy94ZnMveGZzX3RyYWNlLmg6NTEwOiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX3RyYWNlLmgtNTExLVxuLS1cbmZzL3hmcy94ZnNfdHJhY2UuaD0xOTk5PVRSQUNFX0VWRU5UKHhmc19leHRlbnRfYnVzeV90cmltLFxuLS1cbmZzL3hmcy94ZnNfdHJhY2UuaC0yMDMxLVxuZnMveGZzL3hmc190cmFjZS5oOjIwMzI6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfdHJhY2UuaC0yMDMzLVRSQUNFX0VWRU5UKHhmc19ydGFsbG9jX2V4dGVudF9idXN5LFxuLS1cbmZzL3hmcy94ZnNfdHJhY2UuaD0yMDc1PVRSQUNFX0VWRU5UKHhmc19ydGFsbG9jX2V4dGVudF9idXN5X3RyaW0sXG4tLVxuZnMveGZzL3hmc190cmFjZS5oLTIxMDMtKTtcbmZzL3hmcy94ZnNfdHJhY2UuaDoyMTA0OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXG5mcy94ZnMveGZzX3RyYWNlLmgtMjEwNS1cbi0tXG5mcy94ZnMveGZzX3RyYWNlLmg9NTg3MD1ERUZJTkVfTUVUQUZJTEVfUkVTVl9FVkVOVCh4ZnNfbWV0YWZpbGVfcmVzdl9pbml0X2Vycm9yKTtcbmZzL3hmcy94ZnNfdHJhY2UuaC01ODcxLVxuZnMveGZzL3hmc190cmFjZS5oOjU4NzI6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfdHJhY2UuaC01ODczLVRSQUNFX0VWRU5UKHhmc19ncm93ZnNfY2hlY2tfcnRnZW9tLFxuLS1cbmZzL3hmcy94ZnNfdHJhY2UuaC01ODkwLSk7XG5mcy94ZnMveGZzX3RyYWNlLmg6NTg5MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xuZnMveGZzL3hmc190cmFjZS5oLTU4OTItXG4tLVxuZnMveGZzL3hmc196b25lX2FsbG9jLmg9NDg9dm9pZCB4ZnNfem9uZWRfc2hvd19zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCB4ZnNfbW91bnQgKm1wKTtcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTQ5LVxuZnMveGZzL3hmc196b25lX2FsbG9jLmg6NTA6I2lmZGVmIENPTkZJR19YRlNfUlRcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTUxLWludCB4ZnNfbW91bnRfem9uZXMoc3RydWN0IHhmc19tb3VudCAqbXApO1xuLS1cbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oPTcwPXN0YXRpYyBpbmxpbmUgdm9pZCB4ZnNfem9uZV9nY193YWtldXAoc3RydWN0IHhmc19tb3VudCAqbXApXG4tLVxuZnMveGZzL3hmc196b25lX2FsbG9jLmgtNzItfVxuZnMveGZzL3hmc196b25lX2FsbG9jLmg6NzM6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTc0LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzMDU1CgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMjI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKlhGUyBSZWFkYWhlYWQgTWFuYWdlbWVudCB3aXRoIFJlYWx0aW1lIERldmljZXMqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpcyBhbGwgYWJvdXQgaGFuZGxpbmcgcmVhZGFoZWFkIHZhbHVlcyBmb3IgdGhlIGJsb2NrIGRldmljZSBpbmZyYXN0cnVjdHVyZSAoQkRJKSB3aGVuIHdlJiMzOTtyZSB1c2luZyByZWFsdGltZSBkZXZpY2VzIHdpdGhpbiBhbiBYRlMgZmlsZXN5c3RlbS4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyB0d2Vha2luZyBgeGZzX3NldHVwX2RldmljZXNgIGFuZCBgeGZzX2tpbGxfc2JgIHRvIGVuc3VyZSB0aGVzZSByZWFkYWhlYWQgdmFsdWVzIGFyZSBjb3JyZWN0bHkgdXBkYXRlZCBkdXJpbmcgbW91bnRpbmcgYW5kIHJlc3RvcmVkIGR1cmluZyB1bm1vdW50aW5nLiBUaGUgY29yZSBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkgbGllcyBpbiB0aGUgbmV3IGB4ZnNfdXBkYXRlX2JkaV9yYWhlYWRgIGFuZCBgeGZzX3Jlc3RvcmVfYmRpX3JhaGVhZGAgZnVuY3Rpb25zLgoKVGhpcyBpcyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLCB0YXJnZXRlZCBhdCBjb25maWd1cmF0aW9ucyB3aGVyZSBhbiBYRlMgZmlsZXN5c3RlbSBpcyBtb3VudGVkIHdpdGggYSByZWFsdGltZSBkZXZpY2UuIFRoYXQmIzM5O3MgZ29vZCB0byBrbm93OyBpdCBwcm92aWRlcyBhIGRlZmluaXRlIGZvY3VzLgoKSWYgSSB3ZXJlIHRvIGZ1enogdGhpcywgSSYjMzk7ZCBob25lIGluIG9uIHRob3NlIG5ldyBmdW5jdGlvbnMsIGB4ZnNfdXBkYXRlX2JkaV9yYWhlYWRgIGFuZCBgeGZzX3Jlc3RvcmVfYmRpX3JhaGVhZGAsIGFzIHRoZXkmIzM5O3JlIHRoZSBuZXcgbG9naWMuIFRoZSBtb2RpZmllZCBjYWxscyB0byBgeGZzX3NldHVwX2RldmljZXNgIGFuZCBgeGZzX2tpbGxfc2JgIGFyZSBhbHNvIGtleSBhcmVhcy4gV2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgbW91bnQgYW5kIHVubW91bnQgb3BlcmF0aW9ucywgc28gdGhvc2UgZW50cnkgcG9pbnRzIGFyZSBwcmltZSB0YXJnZXRzLgoKQW5kIHRoZSBjb25maWcgaXMgc3RyYWlnaHRmb3J3YXJkOiB3ZSYjMzk7cmUgbG9va2luZyBhdCBgWEZTX1JUYCBhbmQsIG5hdHVyYWxseSwgYFhGU19GU2AuIFRoaXMgZGljdGF0ZXMgdGhlIHRlc3QgY2FzZXMuCgpUaW1lIHRvIGRyaWxsIGRvd24gaW50byB0aGUgY29kZSBpdHNlbGYsIGBmcy94ZnMveGZzX3N1cGVyLmNgIGlzIHdoZXJlIEkmIzM5O2xsIGZpbmQgYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYC4gTGV0JiMzOTtzIHNlZSBob3cgdGhleSYjMzk7cmUgaW1wbGVtZW50ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7eGZzX3VwZGF0ZV9iZGlfcmFoZWFkJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMveGZzL3hmc19zdXBlci5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3hmcy94ZnNfc3VwZXIuYz01NjI9c3RhdGljIHZvaWRcbmZzL3hmcy94ZnNfc3VwZXIuYzo1NjM6eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKFxuZnMveGZzL3hmc19zdXBlci5jLTU2NC1cdHN0cnVjdCB4ZnNfbW91bnRcdCptcClcbi0tXG5mcy94ZnMveGZzX3N1cGVyLmM9NjAxPXhmc19zZXR1cF9kZXZpY2VzKFxuLS1cbmZzL3hmcy94ZnNfc3VwZXIuYy02MzMtXHRcdFx0cmV0dXJuIGVycm9yO1xuZnMveGZzL3hmc19zdXBlci5jOjYzNDpcdFx0eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTtcbmZzL3hmcy94ZnNfc3VwZXIuYy02MzUtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM4NjEKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAzMzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFhGUyBSZWFkLUFoZWFkIENvbmZpZ3VyYXRpb24gZm9yIFJlYWx0aW1lIERldmljZXMqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZXNlIGZ1bmN0aW9uczogYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYC4gVGhleSYjMzk7cmUgc3RhdGljLCBidXQgdGhleSYjMzk7cmUgc3RpbGwgc29saWQgZW50cnkgcG9pbnRzIGZvciB1bmRlcnN0YW5kaW5nIHRoaXMgY2hhbmdlLiBUaGUgZ29hbCBoZXJlIHNlZW1zIHRvIGJlIGFib3V0IGhvdyBYRlMgaGFuZGxlcyByZWFkYWhlYWQgc2V0dGluZ3Mgd2l0aCByZWFsdGltZSBkZXZpY2VzLgoKTm93LCB0aGUgY29kZSBpdHNlbGYgZG9lc24mIzM5O3QgZXhwbGljaXRseSB1c2UgYCNpZmRlZiBDT05GSUdfWEZTX1JUYCBhcm91bmQgYHhmc191cGRhdGVfYmRpX3JhaGVhZGAuIEl0JiMzOTtzIGNoZWNraW5nIGBpZiAobXAtJmd0O21fcnRkZXZfdGFyZ3AgJmFtcDsmYW1wOyBtcC0mZ3Q7bV9ydGRldl90YXJncCAhPSBtcC0mZ3Q7bV9kZGV2X3RhcmdwKWAgaW5zdGVhZC4gQnV0IHRvIGhhdmUgYG1fcnRkZXZfdGFyZ3BgIGFjdHVhbGx5IGluaXRpYWxpemVkIGFuZCBpbiBwbGF5LCAqSSBiZWxpZXZlKiB3ZSYjMzk7bGwgbmVlZCBgQ09ORklHX1hGU19SVGAgZW5hYmxlZC4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoYXQgYXNzdW1wdGlvbiB0aG91Z2guIFl1cCwgY29uZmlybWVkOyBgWEZTX1JUYCBpcyBpbmRlZWQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9uIGZvciBYRlMgcmVhbHRpbWUgc3VwcG9ydC4KCkkgc2hvdWxkIHByb2JhYmx5IGFsc28gdmVyaWZ5IGlmIGBYRlNfRlNgIGlzIGEgcmVxdWlyZW1lbnQuIFllcywgaXQmIzM5O3MgdGhlIGNvcmUgWEZTIGNvbmZpZy4KClNvLCB0byBzdW1tYXJpemUgbXkgZm9jdXM6IEkmIzM5O20gZXhhbWluaW5nIHRoZSBgeGZzX3VwZGF0ZV9iZGlfcmFoZWFkYCBhbmQgYHhmc19yZXN0b3JlX2JkaV9yYWhlYWRgIGZ1bmN0aW9ucyBhbmQgdGhlaXIgcmVsYXRpb24gdG8gdGhlIGBYRlNfRlNgIGFuZCBgWEZTX1JUYCBjb25maWd1cmF0aW9ucy4KCkVzc2VudGlhbGx5LCB0aGlzIHBhdGNoIGlzIHR3ZWFraW5nIHRoZSBYRlMgbW91bnQgYW5kIHVubW91bnQgcHJvY2Vzc2VzIHRvIGR5bmFtaWNhbGx5IGFkanVzdCB0aGUgYmFja2luZyBkZXZpY2UgaW5mb3JtYXRpb24gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuZXZlciBhIHJlYWx0aW1lIGRldmljZSBpcyB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGRpcmVjdGx5IGltcGFjdGluZyBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCBzaHV0ZG93bi4gQW5kIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0byBtYWtlIHN1cmUgdGhvc2UgY29uZmlnIG5hbWVzIGFyZSBjb3JyZWN0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzIwIDE5OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBYRlNfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMveGZzL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMveGZzL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmZzL3hmcy9LY29uZmlnOjI6Y29uZmlnIFhGU19GU1xuZnMveGZzL0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O1hGUyBmaWxlc3lzdGVtIHN1cHBvcnRcJiMzNDtcbi0tXG5mcy94ZnMvS2NvbmZpZy0yNC1cbmZzL3hmcy9LY29uZmlnOjI1OmNvbmZpZyBYRlNfU1VQUE9SVF9WNFxuZnMveGZzL0tjb25maWctMjYtXHRib29sIFwmIzM0O1N1cHBvcnQgZGVwcmVjYXRlZCBWNCAoY3JjPTApIGZvcm1hdFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTQ5LVxuZnMveGZzL0tjb25maWc6NTA6Y29uZmlnIFhGU19TVVBQT1JUX0FTQ0lJX0NJXG5mcy94ZnMvS2NvbmZpZy01MS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBkZXByZWNhdGVkIGNhc2UtaW5zZW5zaXRpdmUgYXNjaWkgKGFzY2lpLWNpPTEpIGZvcm1hdFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTc2LVxuZnMveGZzL0tjb25maWc6Nzc6Y29uZmlnIFhGU19RVU9UQVxuZnMveGZzL0tjb25maWctNzgtXHRib29sIFwmIzM0O1hGUyBRdW90YSBzdXBwb3J0XCYjMzQ7XG4tLVxuZnMveGZzL0tjb25maWctOTQtXG5mcy94ZnMvS2NvbmZpZzo5NTpjb25maWcgWEZTX1BPU0lYX0FDTFxuZnMveGZzL0tjb25maWctOTYtXHRib29sIFwmIzM0O1hGUyBQT1NJWCBBQ0wgc3VwcG9ydFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTEwNC1cbmZzL3hmcy9LY29uZmlnOjEwNTpjb25maWcgWEZTX1JUXG5mcy94ZnMvS2NvbmZpZy0xMDYtXHRib29sIFwmIzM0O1hGUyBSZWFsdGltZSBzdWJ2b2x1bWUgc3VwcG9ydFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTEzMi1cbmZzL3hmcy9LY29uZmlnOjEzMzpjb25maWcgWEZTX0RSQUlOX0lOVEVOVFNcbmZzL3hmcy9LY29uZmlnLTEzNC1cdGJvb2xcbi0tXG5mcy94ZnMvS2NvbmZpZy0xMzYtXG5mcy94ZnMvS2NvbmZpZzoxMzc6Y29uZmlnIFhGU19MSVZFX0hPT0tTXG5mcy94ZnMvS2NvbmZpZy0xMzgtXHRib29sXG4tLVxuZnMveGZzL0tjb25maWctMTQwLVxuZnMveGZzL0tjb25maWc6MTQxOmNvbmZpZyBYRlNfTUVNT1JZX0JVRlNcbmZzL3hmcy9LY29uZmlnLTE0Mi1cdGJvb2xcbmZzL3hmcy9LY29uZmlnLTE0My1cbmZzL3hmcy9LY29uZmlnOjE0NDpjb25maWcgWEZTX0JUUkVFX0lOX01FTVxuZnMveGZzL0tjb25maWctMTQ1LVx0Ym9vbFxuZnMveGZzL0tjb25maWctMTQ2LVxuZnMveGZzL0tjb25maWc6MTQ3OmNvbmZpZyBYRlNfT05MSU5FX1NDUlVCXG5mcy94ZnMvS2NvbmZpZy0xNDgtXHRib29sIFwmIzM0O1hGUyBvbmxpbmUgbWV0YWRhdGEgY2hlY2sgc3VwcG9ydFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTE2My1cbmZzL3hmcy9LY29uZmlnOjE2NDpjb25maWcgWEZTX09OTElORV9TQ1JVQl9TVEFUU1xuZnMveGZzL0tjb25maWctMTY1LVx0Ym9vbCBcJiMzNDtYRlMgb25saW5lIG1ldGFkYXRhIGNoZWNrIHVzYWdlIGRhdGEgY29sbGVjdGlvblwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTE3OC1cbmZzL3hmcy9LY29uZmlnOjE3OTpjb25maWcgWEZTX09OTElORV9SRVBBSVJcbmZzL3hmcy9LY29uZmlnLTE4MC1cdGJvb2wgXCYjMzQ7WEZTIG9ubGluZSBtZXRhZGF0YSByZXBhaXIgc3VwcG9ydFwmIzM0O1xuLS1cbmZzL3hmcy9LY29uZmlnLTE5My1cbmZzL3hmcy9LY29uZmlnOjE5NDpjb25maWcgWEZTX1dBUk5cbmZzL3hmcy9LY29uZmlnLTE5NS1cdGJvb2wgXCYjMzQ7WEZTIFZlcmJvc2UgV2FybmluZ3NcJiMzNDtcbi0tXG5mcy94ZnMvS2NvbmZpZy0yMDYtXG5mcy94ZnMvS2NvbmZpZzoyMDc6Y29uZmlnIFhGU19ERUJVR1xuZnMveGZzL0tjb25maWctMjA4LVx0Ym9vbCBcJiMzNDtYRlMgRGVidWdnaW5nIHN1cHBvcnRcJiMzNDtcbi0tXG5mcy94ZnMvS2NvbmZpZy0yMTktXG5mcy94ZnMvS2NvbmZpZzoyMjA6Y29uZmlnIFhGU19ERUJVR19FWFBFTlNJVkVcbmZzL3hmcy9LY29uZmlnLTIyMS1cdGJvb2wgXCYjMzQ7WEZTIGV4cGVuc2l2ZSBkZWJ1Z2dpbmcgY2hlY2tzXCYjMzQ7XG4tLVxuZnMveGZzL0tjb25maWctMjMxLVxuZnMveGZzL0tjb25maWc6MjMyOmNvbmZpZyBYRlNfQVNTRVJUX0ZBVEFMXG5mcy94ZnMvS2NvbmZpZy0yMzMtXHRib29sIFwmIzM0O1hGUyBmYXRhbCBhc3NlcnRzXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjAgMTk6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTU1ODUKCQkJCQkJCW91dHB1dDogMTE3CgkJCQkJCQl0aG91Z2h0czogMjgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqWEZTIENvbmZpZ3VyYXRpb24gQXNzZXNzbWVudCBhbmQgUmVwb3J0aW5nKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGVzZSBjb25maWd1cmF0aW9uczogYFhGU19GU2AgYW5kIGBYRlNfUlRgLiBJbW1lZGlhdGVseSwgbXkgYnJhaW4ga2lja3MgaW50byBhc3Nlc3NtZW50IG1vZGUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQmIzM5O3MgZW5hYmxlZCwgd2hhdCBpbXBsaWNhdGlvbnMgdGhpcyBoYXMsIGFuZCBob3cgdG8gZWZmZWN0aXZlbHkgY29tbXVuaWNhdGUgdGhlIHJlc3VsdGluZyBzdGF0ZS4gSSYjMzk7bGwgbmVlZCB0byB1c2UgYHNldC1yZXN1bHRzYCB0byBwcm9wZXJseSBvdXRwdXQgbXkgZmluZGluZ3MuIFRoaXMgZW5zdXJlcyBhIGNsZWFuLCBzdHJ1Y3R1cmVkIHByZXNlbnRhdGlvbiBvZiB0aGUgZmFjdHMuIEdpdmVuIHRoZSBjb250ZXh0LCBJJiMzOTttIGxpa2VseSBkZWFsaW5nIHdpdGggYW4gWEZTIGZpbGVzeXN0ZW0gY29uZmlndXJhdGlvbiBhbmQgYSBSZWFsLXRpbWUgZmlsZXN5c3RlbSBjb25maWd1cmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yMCAxOToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7WEZTX0ZTJiMzNDssCiAgICAmIzM0O1hGU19SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmc191cGRhdGVfYmRpX3JhaGVhZCYjMzQ7LAogICAgJiMzNDt4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFhGUyBtb3VudCBhbmQgdW5tb3VudCBwYXRocyB0byBhZGp1c3QgdGhlIGJhY2tpbmcgZGV2aWNlIGluZm8gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuIGEgcmVhbHRpbWUgZGV2aWNlIGlzIHByZXNlbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7WEZTX0ZTJiMzNDssCiAgICAmIzM0O1hGU19SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmc191cGRhdGVfYmRpX3JhaGVhZCYjMzQ7LAogICAgJiMzNDt4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIFhGUyBtb3VudCBhbmQgdW5tb3VudCBwYXRocyB0byBhZGp1c3QgdGhlIGJhY2tpbmcgZGV2aWNlIGluZm8gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuIGEgcmVhbHRpbWUgZGV2aWNlIGlzIHByZXNlbnQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCB0ZWFyZG93biBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjExLjI5MzgyNTQ1N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMjUxNDM0MjUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlhGU19GU1wiLFxuICAgIFwiWEZTX1JUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZzX3VwZGF0ZV9iZGlfcmFoZWFkXCIsXG4gICAgXCJ4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgWEZTIG1vdW50IGFuZCB1bm1vdW50IHBhdGhzIHRvIGFkanVzdCB0aGUgYmFja2luZyBkZXZpY2UgaW5mbyAoQkRJKSByZWFkYWhlYWQgYW5kIGlvX3BhZ2VzIHNldHRpbmdzIHdoZW4gYSByZWFsdGltZSBkZXZpY2UgaXMgcHJlc2VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGZpbGVzeXN0ZW0gaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxOToyNjoxMS4yOTM4MzI0MjdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0MjU3OTk1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZhZDgxYmI3ZTNlMWJlZjkxOTExZGQ4ZjNkMDM5ZTBjYWRmZGU0NjNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIE1vbiBKdWwgMjAgMTk6MjY6MDkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19tb3VudC5oIGIvZnMveGZzL3hmc19tb3VudC5oXFxuaW5kZXggNjZhMDJkMWI5YWQ3YTEuLjIxNmEzOGEzNTRlN2MyIDEwMDY0NFxcbi0tLSBhL2ZzL3hmcy94ZnNfbW91bnQuaFxcbisrKyBiL2ZzL3hmcy94ZnNfbW91bnQuaFxcbkBAIC0zNDksNiArMzQ5LDEzIEBAIHR5cGVkZWYgc3RydWN0IHhmc19tb3VudCB7XFxuIFxcbiBcXHQvKiBJbmRleCBvZiB1dWlkIHJlY29yZCBpbiB0aGUgdXVpZCB4YXJyYXkuICovXFxuIFxcdHVuc2lnbmVkIGludFxcdFxcdG1fdXVpZF90YWJsZV9pbmRleDtcXG4rXFxuK1xcdC8qXFxuK1xcdCAqIE9sZCBpb19wYWdlcy9yYV9wYWdlcyB2YWx1ZWQgaW4gdGhlIG1haW4gYmRldiBCREksIGFuZCBvdXIgaW5pdGlhbFxcbitcXHQgKiBjYWxjdWxhdGVkIHZhbHVlcy5cXG4rXFx0ICovXFxuK1xcdHVuc2lnbmVkIGxvbmdcXHRcXHRtX29sZF9pb19wYWdlcywgbV9pbml0aWFsX2lvX3BhZ2VzO1xcbitcXHR1bnNpZ25lZCBsb25nXFx0XFx0bV9vbGRfcmFfcGFnZXMsIG1faW5pdGlhbF9yYV9wYWdlcztcXG4gfSB4ZnNfbW91bnRfdDtcXG4gXFxuICNkZWZpbmUgTV9JR0VPKG1wKVxcdFxcdChcXHUwMDI2KG1wKS1cXHUwMDNlbV9pbm9fZ2VvKVxcbmRpZmYgLS1naXQgYS9mcy94ZnMveGZzX3N1cGVyLmMgYi9mcy94ZnMveGZzX3N1cGVyLmNcXG5pbmRleCA4NTMxZDUyNmZjNDQwOS4uNjNjNGJjYmU2YzJiYzQgMTAwNjQ0XFxuLS0tIGEvZnMveGZzL3hmc19zdXBlci5jXFxuKysrIGIvZnMveGZzL3hmc19zdXBlci5jXFxuQEAgLTU0OCw2ICs1NDgsNTIgQEAgeGZzX29wZW5fZGV2aWNlcyhcXG4gXFx0cmV0dXJuIGVycm9yO1xcbiB9XFxuIFxcbisvKlxcbisgKiBXaGVuIHVzaW5nIGEgUlQgZGV2aWNlIHNvbWUgb3IgYWxsIGRhdGEgSS9PIGlzIHVzaW5nIHRoZSBSVCBkZXZpY2UsIGJ1dFxcbisgKiB0aGUgQkRJIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBtYWluIGRhdGEgZGV2aWNlLiAgV2hlbiB0aGUgdW5kZXJseWluZyBibG9ja1xcbisgKiBkZXZpY2UgZm9yIHRoZSBSVCBkZXZpY2UgaGFzIGxhcmdlciBJL08gc2l6ZXMsIHRoZSBCREkgc2V0dGluZ3MgbWlnaHQgYmVcXG4rICogaW5jb3JyZWN0LCB3aGljaCBpcyBlc3BlY2lhbGx5IGJhZCBpZiB0aGUgbWFpbiBkZXZpY2UgaXMgYSBTU0QgYW5kIHRoZVxcbisgKiBSVCBkZXZpY2UgaXMgYSBIREQsIGFzIHRoZSBpb19vcHQgZml4dXAgaW4gYmxrX2FwcGx5X2JkaV9saW1pdHMgaXMgbWlzc2luZ1xcbisgKiBmb3IgdGhpcyBjYXNlLlxcbisgKlxcbisgKiBVcGRhdGUgdGhlIEJESSB2YWx1ZXMgdG8gdGhlIG1heCBvZiB0aGUgZGF0YSBhbmQgUlQgZGV2aWNlIHRvIGNvdmVyIG91clxcbisgKiBiYXNlcy5cXG4rICovXFxuK3N0YXRpYyB2b2lkXFxuK3hmc191cGRhdGVfYmRpX3JhaGVhZChcXG4rXFx0c3RydWN0IHhmc19tb3VudFxcdCptcClcXG4re1xcbitcXHRzdHJ1Y3QgYmFja2luZ19kZXZfaW5mb1xcdCpydF9iZGkgPVxcbitcXHRcXHRtcC1cXHUwMDNlbV9ydGRldl90YXJncC1cXHUwMDNlYnRfYmRldi1cXHUwMDNlYmRfZGlzay1cXHUwMDNlYmRpO1xcbitcXHRzdHJ1Y3QgYmFja2luZ19kZXZfaW5mb1xcdCpzYl9iZGkgPSBtcC1cXHUwMDNlbV9zdXBlci1cXHUwMDNlc19iZGk7XFxuK1xcbitcXHRtcC1cXHUwMDNlbV9vbGRfaW9fcGFnZXMgPSBzYl9iZGktXFx1MDAzZWlvX3BhZ2VzO1xcbitcXHRtcC1cXHUwMDNlbV9vbGRfcmFfcGFnZXMgPSBzYl9iZGktXFx1MDAzZXJhX3BhZ2VzO1xcbitcXG4rXFx0c2JfYmRpLVxcdTAwM2Vpb19wYWdlcyA9IG1wLVxcdTAwM2VtX2luaXRpYWxfaW9fcGFnZXMgPVxcbitcXHRcXHRtYXgoc2JfYmRpLVxcdTAwM2Vpb19wYWdlcywgcnRfYmRpLVxcdTAwM2Vpb19wYWdlcyk7XFxuK1xcdHNiX2JkaS1cXHUwMDNlcmFfcGFnZXMgPSBtcC1cXHUwMDNlbV9pbml0aWFsX3JhX3BhZ2VzID1cXG4rXFx0XFx0bWF4KHNiX2JkaS1cXHUwMDNlcmFfcGFnZXMsIHJ0X2JkaS1cXHUwMDNlcmFfcGFnZXMpO1xcbit9XFxuK1xcbitzdGF0aWMgdm9pZFxcbit4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkKFxcbitcXHRzdHJ1Y3QgeGZzX21vdW50XFx0Km1wKVxcbit7XFxuK1xcdHN0cnVjdCBiYWNraW5nX2Rldl9pbmZvXFx0KnNiX2JkaSA9IG1wLVxcdTAwM2VtX3N1cGVyLVxcdTAwM2VzX2JkaTtcXG4rXFxuK1xcdGlmIChzYl9iZGktXFx1MDAzZWlvX3BhZ2VzID09IG1wLVxcdTAwM2VtX2luaXRpYWxfaW9fcGFnZXMpXFxuK1xcdFxcdHNiX2JkaS1cXHUwMDNlaW9fcGFnZXMgPSBtcC1cXHUwMDNlbV9vbGRfaW9fcGFnZXM7XFxuK1xcdGVsc2VcXG4rXFx0XFx0eGZzX2luZm8obXAsIFxcXCJpb19wYWdlcyBjaGFuZ2VkIGZyb20gJWx1IHRvICVsdSwgbm90IHJlc3RvcmluZy5cXFwiLFxcbitcXHRcXHRcXHRcXHRtcC1cXHUwMDNlbV9pbml0aWFsX2lvX3BhZ2VzLCBzYl9iZGktXFx1MDAzZWlvX3BhZ2VzKTtcXG4rXFx0aWYgKHNiX2JkaS1cXHUwMDNlcmFfcGFnZXMgPT0gbXAtXFx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcylcXG4rXFx0XFx0c2JfYmRpLVxcdTAwM2VyYV9wYWdlcyA9IG1wLVxcdTAwM2VtX29sZF9yYV9wYWdlcztcXG4rXFx0ZWxzZVxcbitcXHRcXHR4ZnNfaW5mbyhtcCwgXFxcInJhX3BhZ2VzIGNoYW5nZWQgZnJvbSAlbHUgdG8gJWx1LCBub3QgcmVzdG9yaW5nLlxcXCIsXFxuK1xcdFxcdFxcdFxcdG1wLVxcdTAwM2VtX2luaXRpYWxfcmFfcGFnZXMsIHNiX2JkaS1cXHUwMDNlcmFfcGFnZXMpO1xcbit9XFxuK1xcbiAvKlxcbiAgKiBTZXR1cCB4ZnNfbW91bnQgYnVmZmVyIHRhcmdldCBwb2ludGVycyBiYXNlZCBvbiBzdXBlcmJsb2NrXFxuICAqL1xcbkBAIC01ODUsNiArNjMxLDcgQEAgeGZzX3NldHVwX2RldmljZXMoXFxuIFxcdFxcdFxcdFxcdG1wLVxcdTAwM2VtX3NiLnNiX3NlY3RzaXplLCBtcC1cXHUwMDNlbV9zYi5zYl9yYmxvY2tzKTtcXG4gXFx0XFx0aWYgKGVycm9yKVxcbiBcXHRcXHRcXHRyZXR1cm4gZXJyb3I7XFxuK1xcdFxcdHhmc191cGRhdGVfYmRpX3JhaGVhZChtcCk7XFxuIFxcdH1cXG4gXFxuIFxcdHJldHVybiAwO1xcbkBAIC0yMjgzLDggKzIzMzAsMTIgQEAgc3RhdGljIHZvaWRcXG4geGZzX2tpbGxfc2IoXFxuIFxcdHN0cnVjdCBzdXBlcl9ibG9ja1xcdFxcdCpzYilcXG4ge1xcbitcXHRzdHJ1Y3QgeGZzX21vdW50XFx0XFx0Km1wID0gWEZTX00oc2IpO1xcbitcXG4rXFx0aWYgKG1wLVxcdTAwM2VtX3J0ZGV2X3RhcmdwIFxcdTAwMjZcXHUwMDI2IG1wLVxcdTAwM2VtX3J0ZGV2X3RhcmdwICE9IG1wLVxcdTAwM2VtX2RkZXZfdGFyZ3ApXFxuK1xcdFxcdHhmc19yZXN0b3JlX2JkaV9yYWhlYWQobXApO1xcbiBcXHRraWxsX2Jsb2NrX3N1cGVyKHNiKTtcXG4tXFx0eGZzX21vdW50X2ZyZWUoWEZTX00oc2IpKTtcXG4rXFx0eGZzX21vdW50X2ZyZWUobXApO1xcbiB9XFxuIFxcbiBzdGF0aWMgc3RydWN0IGZpbGVfc3lzdGVtX3R5cGUgeGZzX2ZzX3R5cGUgPSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjEyLjAzNzMzMDExMVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjIwNTA3OTE2Mzg4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlhGU19GU1wiLFxuICAgIFwiWEZTX1JUXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZzX3VwZGF0ZV9iZGlfcmFoZWFkXCIsXG4gICAgXCJ4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgWEZTIG1vdW50IGFuZCB1bm1vdW50IHBhdGhzIHRvIGFkanVzdCB0aGUgYmFja2luZyBkZXZpY2UgaW5mbyAoQkRJKSByZWFkYWhlYWQgYW5kIGlvX3BhZ2VzIHNldHRpbmdzIHdoZW4gYSByZWFsdGltZSBkZXZpY2UgaXMgcHJlc2VudC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGZpbGVzeXN0ZW0gaW5pdGlhbGl6YXRpb24gYW5kIHRlYXJkb3duIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDZhZDgxYmI3ZTNlMWJlZjkxOTExZGQ4ZjNkMDM5ZTBjYWRmZGU0NjNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEp1bCAyMCAxOToyNjowOSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL3hmcy94ZnNfbW91bnQuaCBiL2ZzL3hmcy94ZnNfbW91bnQuaFxuaW5kZXggNjZhMDJkMWI5YWQ3YTEuLjIxNmEzOGEzNTRlN2MyIDEwMDY0NFxuLS0tIGEvZnMveGZzL3hmc19tb3VudC5oXG4rKysgYi9mcy94ZnMveGZzX21vdW50LmhcbkBAIC0zNDksNiArMzQ5LDEzIEBAIHR5cGVkZWYgc3RydWN0IHhmc19tb3VudCB7XG4gXG4gXHQvKiBJbmRleCBvZiB1dWlkIHJlY29yZCBpbiB0aGUgdXVpZCB4YXJyYXkuICovXG4gXHR1bnNpZ25lZCBpbnRcdFx0bV91dWlkX3RhYmxlX2luZGV4O1xuK1xuK1x0LypcbitcdCAqIE9sZCBpb19wYWdlcy9yYV9wYWdlcyB2YWx1ZWQgaW4gdGhlIG1haW4gYmRldiBCREksIGFuZCBvdXIgaW5pdGlhbFxuK1x0ICogY2FsY3VsYXRlZCB2YWx1ZXMuXG4rXHQgKi9cbitcdHVuc2lnbmVkIGxvbmdcdFx0bV9vbGRfaW9fcGFnZXMsIG1faW5pdGlhbF9pb19wYWdlcztcbitcdHVuc2lnbmVkIGxvbmdcdFx0bV9vbGRfcmFfcGFnZXMsIG1faW5pdGlhbF9yYV9wYWdlcztcbiB9IHhmc19tb3VudF90O1xuIFxuICNkZWZpbmUgTV9JR0VPKG1wKVx0XHQoXHUwMDI2KG1wKS1cdTAwM2VtX2lub19nZW8pXG5kaWZmIC0tZ2l0IGEvZnMveGZzL3hmc19zdXBlci5jIGIvZnMveGZzL3hmc19zdXBlci5jXG5pbmRleCA4NTMxZDUyNmZjNDQwOS4uNjNjNGJjYmU2YzJiYzQgMTAwNjQ0XG4tLS0gYS9mcy94ZnMveGZzX3N1cGVyLmNcbisrKyBiL2ZzL3hmcy94ZnNfc3VwZXIuY1xuQEAgLTU0OCw2ICs1NDgsNTIgQEAgeGZzX29wZW5fZGV2aWNlcyhcbiBcdHJldHVybiBlcnJvcjtcbiB9XG4gXG4rLypcbisgKiBXaGVuIHVzaW5nIGEgUlQgZGV2aWNlIHNvbWUgb3IgYWxsIGRhdGEgSS9PIGlzIHVzaW5nIHRoZSBSVCBkZXZpY2UsIGJ1dFxuKyAqIHRoZSBCREkgaXMgaW5oZXJpdGVkIGZyb20gdGhlIG1haW4gZGF0YSBkZXZpY2UuICBXaGVuIHRoZSB1bmRlcmx5aW5nIGJsb2NrXG4rICogZGV2aWNlIGZvciB0aGUgUlQgZGV2aWNlIGhhcyBsYXJnZXIgSS9PIHNpemVzLCB0aGUgQkRJIHNldHRpbmdzIG1pZ2h0IGJlXG4rICogaW5jb3JyZWN0LCB3aGljaCBpcyBlc3BlY2lhbGx5IGJhZCBpZiB0aGUgbWFpbiBkZXZpY2UgaXMgYSBTU0QgYW5kIHRoZVxuKyAqIFJUIGRldmljZSBpcyBhIEhERCwgYXMgdGhlIGlvX29wdCBmaXh1cCBpbiBibGtfYXBwbHlfYmRpX2xpbWl0cyBpcyBtaXNzaW5nXG4rICogZm9yIHRoaXMgY2FzZS5cbisgKlxuKyAqIFVwZGF0ZSB0aGUgQkRJIHZhbHVlcyB0byB0aGUgbWF4IG9mIHRoZSBkYXRhIGFuZCBSVCBkZXZpY2UgdG8gY292ZXIgb3VyXG4rICogYmFzZXMuXG4rICovXG4rc3RhdGljIHZvaWRcbit4ZnNfdXBkYXRlX2JkaV9yYWhlYWQoXG4rXHRzdHJ1Y3QgeGZzX21vdW50XHQqbXApXG4re1xuK1x0c3RydWN0IGJhY2tpbmdfZGV2X2luZm9cdCpydF9iZGkgPVxuK1x0XHRtcC1cdTAwM2VtX3J0ZGV2X3RhcmdwLVx1MDAzZWJ0X2JkZXYtXHUwMDNlYmRfZGlzay1cdTAwM2ViZGk7XG4rXHRzdHJ1Y3QgYmFja2luZ19kZXZfaW5mb1x0KnNiX2JkaSA9IG1wLVx1MDAzZW1fc3VwZXItXHUwMDNlc19iZGk7XG4rXG4rXHRtcC1cdTAwM2VtX29sZF9pb19wYWdlcyA9IHNiX2JkaS1cdTAwM2Vpb19wYWdlcztcbitcdG1wLVx1MDAzZW1fb2xkX3JhX3BhZ2VzID0gc2JfYmRpLVx1MDAzZXJhX3BhZ2VzO1xuK1xuK1x0c2JfYmRpLVx1MDAzZWlvX3BhZ2VzID0gbXAtXHUwMDNlbV9pbml0aWFsX2lvX3BhZ2VzID1cbitcdFx0bWF4KHNiX2JkaS1cdTAwM2Vpb19wYWdlcywgcnRfYmRpLVx1MDAzZWlvX3BhZ2VzKTtcbitcdHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9IG1wLVx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcyA9XG4rXHRcdG1heChzYl9iZGktXHUwMDNlcmFfcGFnZXMsIHJ0X2JkaS1cdTAwM2VyYV9wYWdlcyk7XG4rfVxuK1xuK3N0YXRpYyB2b2lkXG4reGZzX3Jlc3RvcmVfYmRpX3JhaGVhZChcbitcdHN0cnVjdCB4ZnNfbW91bnRcdCptcClcbit7XG4rXHRzdHJ1Y3QgYmFja2luZ19kZXZfaW5mb1x0KnNiX2JkaSA9IG1wLVx1MDAzZW1fc3VwZXItXHUwMDNlc19iZGk7XG4rXG4rXHRpZiAoc2JfYmRpLVx1MDAzZWlvX3BhZ2VzID09IG1wLVx1MDAzZW1faW5pdGlhbF9pb19wYWdlcylcbitcdFx0c2JfYmRpLVx1MDAzZWlvX3BhZ2VzID0gbXAtXHUwMDNlbV9vbGRfaW9fcGFnZXM7XG4rXHRlbHNlXG4rXHRcdHhmc19pbmZvKG1wLCBcImlvX3BhZ2VzIGNoYW5nZWQgZnJvbSAlbHUgdG8gJWx1LCBub3QgcmVzdG9yaW5nLlwiLFxuK1x0XHRcdFx0bXAtXHUwMDNlbV9pbml0aWFsX2lvX3BhZ2VzLCBzYl9iZGktXHUwMDNlaW9fcGFnZXMpO1xuK1x0aWYgKHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9PSBtcC1cdTAwM2VtX2luaXRpYWxfcmFfcGFnZXMpXG4rXHRcdHNiX2JkaS1cdTAwM2VyYV9wYWdlcyA9IG1wLVx1MDAzZW1fb2xkX3JhX3BhZ2VzO1xuK1x0ZWxzZVxuK1x0XHR4ZnNfaW5mbyhtcCwgXCJyYV9wYWdlcyBjaGFuZ2VkIGZyb20gJWx1IHRvICVsdSwgbm90IHJlc3RvcmluZy5cIixcbitcdFx0XHRcdG1wLVx1MDAzZW1faW5pdGlhbF9yYV9wYWdlcywgc2JfYmRpLVx1MDAzZXJhX3BhZ2VzKTtcbit9XG4rXG4gLypcbiAgKiBTZXR1cCB4ZnNfbW91bnQgYnVmZmVyIHRhcmdldCBwb2ludGVycyBiYXNlZCBvbiBzdXBlcmJsb2NrXG4gICovXG5AQCAtNTg1LDYgKzYzMSw3IEBAIHhmc19zZXR1cF9kZXZpY2VzKFxuIFx0XHRcdFx0bXAtXHUwMDNlbV9zYi5zYl9zZWN0c2l6ZSwgbXAtXHUwMDNlbV9zYi5zYl9yYmxvY2tzKTtcbiBcdFx0aWYgKGVycm9yKVxuIFx0XHRcdHJldHVybiBlcnJvcjtcbitcdFx0eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTtcbiBcdH1cbiBcbiBcdHJldHVybiAwO1xuQEAgLTIyODMsOCArMjMzMCwxMiBAQCBzdGF0aWMgdm9pZFxuIHhmc19raWxsX3NiKFxuIFx0c3RydWN0IHN1cGVyX2Jsb2NrXHRcdCpzYilcbiB7XG4rXHRzdHJ1Y3QgeGZzX21vdW50XHRcdCptcCA9IFhGU19NKHNiKTtcbitcbitcdGlmIChtcC1cdTAwM2VtX3J0ZGV2X3RhcmdwIFx1MDAyNlx1MDAyNiBtcC1cdTAwM2VtX3J0ZGV2X3RhcmdwICE9IG1wLVx1MDAzZW1fZGRldl90YXJncClcbitcdFx0eGZzX3Jlc3RvcmVfYmRpX3JhaGVhZChtcCk7XG4gXHRraWxsX2Jsb2NrX3N1cGVyKHNiKTtcbi1cdHhmc19tb3VudF9mcmVlKFhGU19NKHNiKSk7XG4rXHR4ZnNfbW91bnRfZnJlZShtcCk7XG4gfVxuIFxuIHN0YXRpYyBzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSB4ZnNfZnNfdHlwZSA9IHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjEyLjAzNzMzMTg3MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NTk3MjgwMjgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqWEZTIFJlYWRhaGVhZCBNYW5hZ2VtZW50IGZvciBSZWFsdGltZSBEZXZpY2VzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgdGhlIFhGUyBmaWxlc3lzdGVtLiBJdCBpbnRyb2R1Y2VzIHRoZXNlIG5ldyBmdW5jdGlvbnMsIGB4ZnNfdXBkYXRlX2JkaV9yYWhlYWRgIGFuZCBgeGZzX3Jlc3RvcmVfYmRpX3JhaGVhZGAsIHJpZ2h0IGludG8gYGZzL3hmcy94ZnNfc3VwZXIuY2AuIFRoZSBjb3JlIGlkZWEgaXMgdG8gdHdlYWsgdGhlIGJhY2tpbmdfZGV2X2luZm8gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuIGFuIFhGUyBmaWxlc3lzdGVtIGlzIG1vdW50ZWQgd2l0aCBhIHJlYWx0aW1lIGRldmljZSwgc3BlY2lmaWNhbGx5IHdoZW4gYG1fcnRkZXZfdGFyZ3BgIGlzIGludm9sdmVkLiBUaGlzIGlzIGEgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgZnVuY3Rpb25hbCBjaGFuZ2UsIGltcGFjdGluZyB0aGUgbW91bnQgYW5kIHVubW91bnQgcGF0aHMgd2l0aGluIFhGUy5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIG1ha2Ugc3VyZSB0aGlzIGFsbCBsaW5lcyB1cCB3aXRoIHRoZSByZWxldmFudCBYRlMgY29uZmlndXJhdGlvbnMuIFdlIGtub3cgWEZTIGl0c2VsZiBpcyBlbmFibGVkIHRocm91Z2ggYENPTkZJR19YRlNfRlNgLCBidXQgdGhlIHJlYWx0aW1lIHN1YnZvbHVtZSBhc3BlY3QgdHlwaWNhbGx5IGRlcGVuZHMgb24gYENPTkZJR19YRlNfUlRgLiBJIG5lZWQgdG8gY29uZmlybSB0aGF0IGBDT05GSUdfWEZTX1JUYCBpcyBpbmRlZWQgYSBkZXBlbmRlbmN5IGhlcmUuIEl0J3MgY3J1Y2lhbCB3ZSdyZSBub3QgbWlzc2luZyBhbnkgY29uZmlndXJhdGlvbiBzdGVwcyB0byBlbnN1cmUgZXZlcnl0aGluZyBiZWhhdmVzIGFzIGV4cGVjdGVkIHdpdGggdGhlc2UgcmVhbHRpbWUgZGV2aWNlcy4gR290dGEgbWFrZSBzdXJlIHdlIGNvdmVyIGFsbCB0aGUgYmFzZXMhXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMTIsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjksIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxOToyNjoxNi44OTcwNjI1ODlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk5NzY4OTg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19YRlNfUlRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZnMveGZzL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy94ZnMvTWFrZWZpbGU9MTY9eGZzLXlcXHRcXHRcXHRcXHQrPSAkKGFkZHByZWZpeCBsaWJ4ZnMvLCBcXFxcXFxuLS1cXG5mcy94ZnMvTWFrZWZpbGUtNjMtIyB4ZnNfcnRiaXRtYXAgaXMgc2hhcmVkIHdpdGggbGlieGZzXFxuZnMveGZzL01ha2VmaWxlOjY0Onhmcy0kKENPTkZJR19YRlNfUlQpXFx0XFx0Kz0gJChhZGRwcmVmaXggbGlieGZzLywgXFxcXFxcbmZzL3hmcy9NYWtlZmlsZS02NS1cXHRcXHRcXHRcXHQgICB4ZnNfcnRiaXRtYXAubyBcXFxcXFxuLS1cXG5mcy94ZnMvTWFrZWZpbGU9MTMzPXhmcy0kKENPTkZJR19YRlNfUVVPVEEpXFx0XFx0Kz0geGZzX2RxdW90Lm8gXFxcXFxcbi0tXFxuZnMveGZzL01ha2VmaWxlLTE0MS0jIHhmc19ydGJpdG1hcCBpcyBzaGFyZWQgd2l0aCBsaWJ4ZnNcXG5mcy94ZnMvTWFrZWZpbGU6MTQyOnhmcy0kKENPTkZJR19YRlNfUlQpXFx0XFx0Kz0geGZzX3J0YWxsb2MubyBcXFxcXFxuZnMveGZzL01ha2VmaWxlLTE0My1cXHRcXHRcXHRcXHQgICB4ZnNfem9uZV9hbGxvYy5vIFxcXFxcXG4tLVxcbmZzL3hmcy9NYWtlZmlsZT0yMDA9eGZzLSQoQ09ORklHX1hGU19PTkxJTkVfU0NSVUJfU1RBVFMpICs9IHNjcnViL3N0YXRzLm9cXG5mcy94ZnMvTWFrZWZpbGUtMjAxLVxcbmZzL3hmcy9NYWtlZmlsZToyMDI6eGZzLSQoQ09ORklHX1hGU19SVClcXHRcXHQrPSAkKGFkZHByZWZpeCBzY3J1Yi8sIFxcXFxcXG5mcy94ZnMvTWFrZWZpbGUtMjAzLVxcdFxcdFxcdFxcdCAgIHJnc3VwZXIubyBcXFxcXFxuLS1cXG5mcy94ZnMvTWFrZWZpbGU9MjE4PXhmcy15XFx0XFx0XFx0XFx0Kz0gJChhZGRwcmVmaXggc2NydWIvLCBcXFxcXFxuLS1cXG5mcy94ZnMvTWFrZWZpbGUtMjQzLVxcbmZzL3hmcy9NYWtlZmlsZToyNDQ6eGZzLSQoQ09ORklHX1hGU19SVClcXHRcXHQrPSAkKGFkZHByZWZpeCBzY3J1Yi8sIFxcXFxcXG5mcy94ZnMvTWFrZWZpbGUtMjQ1LVxcdFxcdFxcdFxcdCAgIHJ0Yml0bWFwX3JlcGFpci5vIFxcXFxcXG4tLVxcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmg9Mzc4PXR5cGVkZWYgaW50ICgqeGZzX3J0YWxsb2NfcXVlcnlfcmFuZ2VfZm4pKFxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaC0zODMtXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaDozODQ6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oLTM4NS12b2lkIHhmc19ydGJ1Zl9jYWNoZV9yZWxzZShzdHJ1Y3QgeGZzX3J0YWxsb2NfYXJncyAqYXJncyk7XFxuLS1cXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oPTQyNz1pbnQgeGZzX3J0c3VtbWFyeV9jcmVhdGUoc3RydWN0IHhmc19ydGdyb3VwICpydGcsIHN0cnVjdCB4ZnNfaW5vZGUgKmlwLFxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaC00MjktXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaDo0MzA6I2Vsc2UgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtNDMxLSMgZGVmaW5lIHhmc19ydGZyZWVfZXh0ZW50KHQsYixsKVxcdFxcdFxcdCgtRU5PU1lTKVxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRiaXRtYXAuaD00NDY9eGZzX3J0Yml0bWFwX2Jsb2NrY291bnRfbGVuKHN0cnVjdCB4ZnNfbW91bnQgKm1wLCB4ZnNfcnRieGxlbl90IHJ0ZXh0ZW50cylcXG4tLVxcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtNDUwLX1cXG5mcy94ZnMvbGlieGZzL3hmc19ydGJpdG1hcC5oOjQ1MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9saWJ4ZnMveGZzX3J0Yml0bWFwLmgtNDUyLVxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oPTI1OT14ZnNfZGFkZHJfdG9fcnRiKFxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oLTI3Ny1cXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg6Mjc4OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oLTI3OS1pbnQgeGZzX3J0Z3JvdXBfYWxsb2Moc3RydWN0IHhmc19tb3VudCAqbXAsIHhmc19yZ251bWJlcl90IHJnbm8sXFxuLS1cXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg9MzQ5PXN0YXRpYyBpbmxpbmUgaW50IHhmc19pbml0aWFsaXplX3J0Z3JvdXBzKHN0cnVjdCB4ZnNfbW91bnQgKm1wLFxcbi0tXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oLTM2My0jIGRlZmluZSB4ZnNfcnRncm91cF9nZXRfZ2VvbWV0cnkocnRnLCByZ2VvKVxcdCgtRU9QTk9UU1VQUClcXG5mcy94ZnMvbGlieGZzL3hmc19ydGdyb3VwLmg6MzY0OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL2xpYnhmcy94ZnNfcnRncm91cC5oLTM2NS1cXG4tLVxcbmZzL3hmcy9zY3J1Yi9ibWFwX3JlcGFpci5jPTM1NT14cmVwX2JtYXBfc2Nhbl9hZyhcXG4tLVxcbmZzL3hmcy9zY3J1Yi9ibWFwX3JlcGFpci5jLTM3MC1cXG5mcy94ZnMvc2NydWIvYm1hcF9yZXBhaXIuYzozNzE6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvYm1hcF9yZXBhaXIuYy0zNzItLyogQ2hlY2sgZm9yIGFueSBvYnZpb3VzIGVycm9ycyBvciBjb25mbGljdHMgaW4gdGhlIGZpbGUgbWFwcGluZy4gKi9cXG4tLVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uYz03MDI9eGNoa19hZ19pbml0KFxcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5jLTcxNi1cXG5mcy94ZnMvc2NydWIvY29tbW9uLmM6NzE3OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL2NvbW1vbi5jLTcxOC0vKlxcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5jPTg2MT14Y2hrX3J0Z3JvdXBfZnJlZShcXG4tLVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uYy04NzEtfVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uYzo4NzI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMvc2NydWIvY29tbW9uLmMtODczLVxcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5oPTgzPWludCB4Y2hrX3NldHVwX21ldGFwYXRoKHN0cnVjdCB4ZnNfc2NydWIgKnNjKTtcXG5mcy94ZnMvc2NydWIvY29tbW9uLmg6ODQ6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtODUtaW50IHhjaGtfc2V0dXBfcnRiaXRtYXAoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5oPTEyND14Y2hrX2FnX2luaXRfZXhpc3RpbmcoXFxuLS1cXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTMzLVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uaDoxMzQ6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTM1LVxcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5oPTE1OT12b2lkIHhjaGtfcnRncm91cF9mcmVlKHN0cnVjdCB4ZnNfc2NydWIgKnNjLCBzdHJ1Y3QgeGNoa19ydCAqc3IpO1xcbi0tXFxuZnMveGZzL3NjcnViL2NvbW1vbi5oLTE2Ni0jIGRlZmluZSB4Y2hrX3J0Z3JvdXBfZnJlZShzYywgc3IpXFx0XFx0XFx0ZG8geyB9IHdoaWxlICgwKVxcbmZzL3hmcy9zY3J1Yi9jb21tb24uaDoxNjc6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMvc2NydWIvY29tbW9uLmgtMTY4LVxcbi0tXFxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYz0yOTQ9eGNoa19mc2NvdW50X2FnZ3JlZ2F0ZV9hZ2NvdW50cyhcXG4tLVxcbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmMtMzg3LVxcbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmM6Mzg4OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYy0zODktU1RBVElDIGludFxcbi0tXFxuZnMveGZzL3NjcnViL2ZzY291bnRlcnMuYz00NDM9eGNoa19mc2NvdW50X2NvdW50X2ZyZXh0ZW50cyhcXG4tLVxcbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmMtNDUwLX1cXG5mcy94ZnMvc2NydWIvZnNjb3VudGVycy5jOjQ1MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9mc2NvdW50ZXJzLmMtNDUyLVxcbi0tXFxuZnMveGZzL3NjcnViL21ldGFwYXRoLmM9ODc9eGNoa19zZXR1cF9tZXRhcGF0aF9zY2FuKFxcbi0tXFxuZnMveGZzL3NjcnViL21ldGFwYXRoLmMtMTI0LVxcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jOjEyNTojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jLTEyNi0vKiBTY2FuIHRoZSAvcnRncm91cHMgZGlyZWN0b3J5IGl0c2VsZi4gKi9cXG4tLVxcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jPTE0MD14Y2hrX3NldHVwX21ldGFwYXRoX3J0Z2lub2RlKFxcbi0tXFxuZnMveGZzL3NjcnViL21ldGFwYXRoLmMtMTY3LSMgZGVmaW5lIHhjaGtfc2V0dXBfbWV0YXBhdGhfcnRnaW5vZGUoLi4uKVxcdCgtRU5PRU5UKVxcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jOjE2ODojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9tZXRhcGF0aC5jLTE2OS1cXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmM9ODY4PXhyZXBfcmVhcF9mc2Jsb2NrcyhcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmMtODk2LVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmM6ODk3OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3JlYXAuYy04OTgtLypcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmM9MTE1Mz14cmVwX3JlYXBfcnRibG9ja3MoXFxuLS1cXG5mcy94ZnMvc2NydWIvcmVhcC5jLTExNzgtfVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmM6MTE3OTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZWFwLmMtMTE4MC1cXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmg9MTc9aW50IHhyZXBfcmVhcF9tZXRhZGlyX2ZzYmxvY2tzKHN0cnVjdCB4ZnNfc2NydWIgKnNjLFxcbi0tXFxuZnMveGZzL3NjcnViL3JlYXAuaC0xOS1cXG5mcy94ZnMvc2NydWIvcmVhcC5oOjIwOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3JlYXAuaC0yMS1pbnQgeHJlcF9yZWFwX3J0YmxvY2tzKHN0cnVjdCB4ZnNfc2NydWIgKnNjLCBzdHJ1Y3QgeHJ0Yl9iaXRtYXAgKmJpdG1hcCxcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMjQtIyBkZWZpbmUgeHJlcF9yZWFwX3J0YmxvY2tzKC4uLilcXHQoLUVPUE5PVFNVUFApXFxuZnMveGZzL3NjcnViL3JlYXAuaDoyNTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZWFwLmgtMjYtXFxuLS1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM9MjgxPXhyZXBfY2FsY19hZ19yZXNibGtzKFxcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5jLTM4OC1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM6Mzg5OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3JlcGFpci5jLTM5MC0vKlxcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5jPTM5Nj14cmVwX2NhbGNfcnRncm91cF9yZXNibGtzKFxcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5jLTQyMS19XFxuZnMveGZzL3NjcnViL3JlcGFpci5jOjQyMjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy00MjMtXFxuLS1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM9OTc2PXhyZXBfYWdfaW5pdChcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy05OTgtXFxuZnMveGZzL3NjcnViL3JlcGFpci5jOjk5OTojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDAwLS8qIEluaXRpYWxpemUgYWxsIHRoZSBidHJlZSBjdXJzb3JzIGZvciBhIFJUIHJlcGFpci4gKi9cXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYz0xMDQ1PXhyZXBfcmVxdWlyZV9ydGV4dF9pbnVzZShcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDczLX1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmM6MTA3NDojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuYy0xMDc1LVxcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5oPTEwND1pbnQgeHJlcF9hZ19pbml0KHN0cnVjdCB4ZnNfc2NydWIgKnNjLCBzdHJ1Y3QgeGZzX3BlcmFnICpwYWcsXFxuZnMveGZzL3NjcnViL3JlcGFpci5oLTEwNS1cXHRcXHRzdHJ1Y3QgeGNoa19hZyAqc2EpO1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaDoxMDY6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvcmVwYWlyLmgtMTA3LWludCB4cmVwX3J0Z3JvdXBfaW5pdChzdHJ1Y3QgeGZzX3NjcnViICpzYywgc3RydWN0IHhmc19ydGdyb3VwICpydGcsXFxuLS1cXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg9MTEyPXhmc19leHRsZW5fdCB4cmVwX2NhbGNfcnRncm91cF9yZXNibGtzKHN0cnVjdCB4ZnNfc2NydWIgKnNjKTtcXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xMTUtIyBkZWZpbmUgeHJlcF9jYWxjX3J0Z3JvdXBfcmVzYmxrcyhzYylcXHRcXHRcXHQoMClcXG5mcy94ZnMvc2NydWIvcmVwYWlyLmg6MTE2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3NjcnViL3JlcGFpci5oLTExNy1cXG4tLVxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaD0xNDg9aW50IHhyZXBfbWV0YXBhdGgoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xNDktXFxuZnMveGZzL3NjcnViL3JlcGFpci5oOjE1MDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xNTEtaW50IHhyZXBfcnRiaXRtYXAoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5oPTE1NT1pbnQgeHJlcF9ydHJlZmNvdW50YnQoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbi0tXFxuZnMveGZzL3NjcnViL3JlcGFpci5oLTE2MS0jIGRlZmluZSB4cmVwX3J0cmVmY291bnRidFxcdFxcdHhyZXBfbm90c3VwcG9ydGVkXFxuZnMveGZzL3NjcnViL3JlcGFpci5oOjE2MjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi9yZXBhaXIuaC0xNjMtXFxuLS1cXG5mcy94ZnMvc2NydWIvc2NydWIuaD0yODI9aW50IHhjaGtfbWV0YXBhdGgoc3RydWN0IHhmc19zY3J1YiAqc2MpO1xcbmZzL3hmcy9zY3J1Yi9zY3J1Yi5oOjI4MzojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi9zY3J1Yi5oLTI4NC1pbnQgeGNoa19ydGJpdG1hcChzdHJ1Y3QgeGZzX3NjcnViICpzYyk7XFxuLS1cXG5mcy94ZnMvc2NydWIvc2NydWIuaD0zMjM9dm9pZCB4Y2hrX3hyZWZfaXNfbm90X2Nvd19zdGFnaW5nKHN0cnVjdCB4ZnNfc2NydWIgKnNjLCB4ZnNfYWdibG9ja190IGJubyxcXG5mcy94ZnMvc2NydWIvc2NydWIuaC0zMjQtXFx0XFx0eGZzX2V4dGxlbl90IGxlbik7XFxuZnMveGZzL3NjcnViL3NjcnViLmg6MzI1OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3NjcnViLmgtMzI2LXZvaWQgeGNoa194cmVmX2lzX3VzZWRfcnRfc3BhY2Uoc3RydWN0IHhmc19zY3J1YiAqc2MsIHhmc19ydGJsb2NrX3QgcnRibm8sXFxuLS1cXG5mcy94ZnMvc2NydWIvdHJhY2UuaD0xMTk4PVRSQUNFX0VWRU5UKHhmYXJyYXlfc29ydF9zdGF0cyxcXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNDItXFxuZnMveGZzL3NjcnViL3RyYWNlLmg6MTI0MzojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNDQtVFJBQ0VfRVZFTlQoeGNoa19ydHN1bV9yZWNvcmRfZnJlZSxcXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTEyNzUtKTtcXG5mcy94ZnMvc2NydWIvdHJhY2UuaDoxMjc2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMTI3Ny1cXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oPTIzMTM9VFJBQ0VfRVZFTlQoeHJlcF9jYWxjX2FnX3Jlc2Jsa3NfYnRzaXplLFxcbi0tXFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM0Mi1cXG5mcy94ZnMvc2NydWIvdHJhY2UuaDoyMzQzOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM0NC1UUkFDRV9FVkVOVCh4cmVwX2NhbGNfcnRncm91cF9yZXNibGtzX2J0c2l6ZSxcXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTIzNjUtKTtcXG5mcy94ZnMvc2NydWIvdHJhY2UuaDoyMzY2OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3NjcnViL3RyYWNlLmgtMjM2Ny1cXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oPTM2NTg9REVGSU5FX1hDSEtfTUVUQVBBVEhfRVZFTlQoeHJlcF9tZXRhcGF0aF9saW5rKTtcXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zNjU5LVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oOjM2NjA6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zNjYxLURFQ0xBUkVfRVZFTlRfQ0xBU1MoeHJlcF9ydGJpdG1hcF9jbGFzcyxcXG4tLVxcbmZzL3hmcy9zY3J1Yi90cmFjZS5oPTM4MDg9VFJBQ0VfRVZFTlQoeHJlcF9ydHJtYXBfZm91bmQsXFxuLS1cXG5mcy94ZnMvc2NydWIvdHJhY2UuaC0zODM3LSk7XFxuZnMveGZzL3NjcnViL3RyYWNlLmg6MzgzODojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy9zY3J1Yi90cmFjZS5oLTM4MzktXFxuLS1cXG5mcy94ZnMveGZzX2FvcHMuYz0yMjc9eGZzX2VuZF9iaW8oXFxuLS1cXG5mcy94ZnMveGZzX2FvcHMuYy0yMzgtXFx0ICovXFxuZnMveGZzL3hmc19hb3BzLmM6MjM5OlxcdGlmIChJU19FTkFCTEVEKENPTkZJR19YRlNfUlQpIFxcdTAwMjZcXHUwMDI2IGJpb19pc196b25lX2FwcGVuZChiaW8pKSB7XFxuZnMveGZzL3hmc19hb3BzLmMtMjQwLVxcdFxcdGlvZW5kLVxcdTAwM2Vpb19zZWN0b3IgPSBiaW8tXFx1MDAzZWJpX2l0ZXIuYmlfc2VjdG9yO1xcbi0tXFxuZnMveGZzL3hmc19ibWFwX3V0aWwuaD0xOD1zdHJ1Y3QgeGZzX3pvbmVfYWxsb2NfY3R4O1xcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMTktXFxuZnMveGZzL3hmc19ibWFwX3V0aWwuaDoyMDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMjEtaW50XFx0eGZzX2JtYXBfcnRhbGxvYyhzdHJ1Y3QgeGZzX2JtYWxsb2NhICphcCk7XFxuZnMveGZzL3hmc19ibWFwX3V0aWwuaDoyMjojZWxzZSAvKiAhQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMjMtLypcXG4tLVxcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmg9Mjg9eGZzX2JtYXBfcnRhbGxvYyhzdHJ1Y3QgeGZzX2JtYWxsb2NhICphcClcXG4tLVxcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmgtMzEtfVxcbmZzL3hmcy94ZnNfYm1hcF91dGlsLmg6MzI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMveGZzX2JtYXBfdXRpbC5oLTMzLVxcbi0tXFxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmM9MjE2PXhsb2dfcmVjb3Zlcl92YWxpZGF0ZV9idWZfdHlwZShcXG4tLVxcbmZzL3hmcy94ZnNfYnVmX2l0ZW1fcmVjb3Zlci5jLTQwMS1cXHRcXHRicmVhaztcXG5mcy94ZnMveGZzX2J1Zl9pdGVtX3JlY292ZXIuYzo0MDI6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX2J1Zl9pdGVtX3JlY292ZXIuYy00MDMtXFx0Y2FzZSBYRlNfQkxGVF9SVEJJVE1BUF9CVUY6XFxuLS1cXG5mcy94ZnMveGZzX2J1Zl9pdGVtX3JlY292ZXIuYy00MTYtXFx0XFx0YnJlYWs7XFxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmM6NDE3OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc19idWZfaXRlbV9yZWNvdmVyLmMtNDE4LVxcdGRlZmF1bHQ6XFxuLS1cXG5mcy94ZnMveGZzX2Rpc2NhcmQuYz0zODk9eGZzX3RyaW1fZGF0YWRldl9leHRlbnRzKFxcbi0tXFxuZnMveGZzL3hmc19kaXNjYXJkLmMtNDI3LVxcbmZzL3hmcy94ZnNfZGlzY2FyZC5jOjQyODojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZGlzY2FyZC5jLTQyOS1zdHJ1Y3QgeGZzX3RyaW1fcnRkZXYge1xcbi0tXFxuZnMveGZzL3hmc19kaXNjYXJkLmM9NzM5PXhmc190cmltX3J0ZGV2X2V4dGVudHMoXFxuLS1cXG5mcy94ZnMveGZzX2Rpc2NhcmQuYy03OTUtIyBkZWZpbmUgeGZzX3RyaW1fcnRkZXZfZXh0ZW50cyguLi4pXFx0KC1FT1BOT1RTVVBQKVxcbmZzL3hmcy94ZnNfZGlzY2FyZC5jOjc5NjojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfZGlzY2FyZC5jLTc5Ny1cXG4tLVxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM9NzQxPWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfYWdmbF9mcmVlX2RlZmVyX3R5cGUgPSB7XFxuLS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTc1Mi1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jOjc1MzojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtNzU0LS8qIENyZWF0ZSBhIHJlYWx0aW1lIGV4dGVudCBmcmVlaW5nICovXFxuLS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jPTgyOD1jb25zdCBzdHJ1Y3QgeGZzX2RlZmVyX29wX3R5cGUgeGZzX3J0ZXh0ZW50X2ZyZWVfZGVmZXJfdHlwZSA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtODMwLX07XFxuZnMveGZzL3hmc19leHRmcmVlX2l0ZW0uYzo4MzE6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTgzMi1cXG4tLVxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM9ODkwPWNvbnN0IHN0cnVjdCB4bG9nX3JlY292ZXJfaXRlbV9vcHMgeGxvZ19lZmlfaXRlbV9vcHMgPSB7XFxuLS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTg5NC1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jOjg5NTojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtODk2LVNUQVRJQyBpbnRcXG4tLVxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmM9OTg1PWNvbnN0IHN0cnVjdCB4bG9nX3JlY292ZXJfaXRlbV9vcHMgeGxvZ19lZmRfaXRlbV9vcHMgPSB7XFxuLS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jLTk4OS1cXG5mcy94ZnMveGZzX2V4dGZyZWVfaXRlbS5jOjk5MDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZXh0ZnJlZV9pdGVtLmMtOTkxLVNUQVRJQyBpbnRcXG4tLVxcbmZzL3hmcy94ZnNfZnNtYXAuYz02Nzc9eGZzX2dldGZzbWFwX2xvZ2RldihcXG4tLVxcbmZzL3hmcy94ZnNfZnNtYXAuYy03MTItXFxuZnMveGZzL3hmc19mc21hcC5jOjcxMzojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfZnNtYXAuYy03MTQtLyogVHJhbnNmb3JtIGEgcnRiaXRtYXAgXFxcInJlY29yZFxcXCIgaW50byBhIGZzbWFwICovXFxuLS1cXG5mcy94ZnMveGZzX2ZzbWFwLmM9ODc0PXhmc19nZXRmc21hcF9ydGRldl9ybWFwYnQoXFxuLS1cXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTA0MS19XFxuZnMveGZzL3hmc19mc21hcC5jOjEwNDI6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTA0My1cXG4tLVxcbmZzL3hmcy94ZnNfZnNtYXAuYz0xMDgyPXhmc19nZXRmc21hcF9jaGVja19rZXlzKFxcbi0tXFxuZnMveGZzL3hmc19mc21hcC5jLTExMjQtICovXFxuZnMveGZzL3hmc19mc21hcC5jOjExMjU6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX2ZzbWFwLmMtMTEyNi0jZGVmaW5lIFhGU19HRVRGU01BUF9ERVZTXFx0M1xcbi0tXFxuZnMveGZzL3hmc19mc21hcC5jLTExMjgtI2RlZmluZSBYRlNfR0VURlNNQVBfREVWU1xcdDJcXG5mcy94ZnMveGZzX2ZzbWFwLmM6MTEyOTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMTMwLVxcbi0tXFxuZnMveGZzL3hmc19mc21hcC5jPTExNTM9eGZzX2dldGZzbWFwKFxcbi0tXFxuZnMveGZzL3hmc19mc21hcC5jLTExOTQtXFx0fVxcbmZzL3hmcy94ZnNfZnNtYXAuYzoxMTk1OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19mc21hcC5jLTExOTYtXFx0LypcXG4tLVxcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMjA3LVxcdH1cXG5mcy94ZnMveGZzX2ZzbWFwLmM6MTIwODojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfZnNtYXAuYy0xMjA5LVxcbi0tXFxuZnMveGZzL3hmc19pY2FjaGUuYz0yMDY4PXhmc19pbm9kZWdjX3N0YXJ0KFxcbi0tXFxuZnMveGZzL3hmc19pY2FjaGUuYy0yMDc3LVxcbmZzL3hmcy94ZnNfaWNhY2hlLmM6MjA3ODojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfaWNhY2hlLmMtMjA3OS1zdGF0aWMgaW5saW5lIGJvb2xcXG5mcy94ZnMveGZzX2ljYWNoZS5jPTIwODA9eGZzX2lub2RlZ2Nfd2FudF9xdWV1ZV9ydF9maWxlKFxcbi0tXFxuZnMveGZzL3hmc19pY2FjaGUuYy0yMDk2LSMgZGVmaW5lIHhmc19pbm9kZWdjX3dhbnRfcXVldWVfcnRfZmlsZShpcClcXHQoZmFsc2UpXFxuZnMveGZzL3hmc19pY2FjaGUuYzoyMDk3OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc19pY2FjaGUuYy0yMDk4LVxcbi0tXFxuZnMveGZzL3hmc19pb21hcC5jPTEwNDA9Y29uc3Qgc3RydWN0IGlvbWFwX29wcyB4ZnNfZGlyZWN0X3dyaXRlX2lvbWFwX29wcyA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfaW9tYXAuYy0xMDQzLVxcbmZzL3hmcy94ZnNfaW9tYXAuYzoxMDQ0OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19pb21hcC5jLTEwNDUtLypcXG4tLVxcbmZzL3hmcy94ZnNfaW9tYXAuYz0xMDkyPWNvbnN0IHN0cnVjdCBpb21hcF9vcHMgeGZzX3pvbmVkX2RpcmVjdF93cml0ZV9pb21hcF9vcHMgPSB7XFxuLS1cXG5mcy94ZnMveGZzX2lvbWFwLmMtMTA5NC19O1xcbmZzL3hmcy94ZnNfaW9tYXAuYzoxMDk1OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc19pb21hcC5jLTEwOTYtXFxuLS1cXG5mcy94ZnMveGZzX2xvZy5jPTMzMTY9eGxvZ19mb3JjZV9zaHV0ZG93bihcXG4tLVxcbmZzL3hmcy94ZnNfbG9nLmMtMzQxMS1cXHR3YWtlX3VwX3ZhcihcXHUwMDI2bG9nLVxcdTAwM2VsX29wc3RhdGUpO1xcbmZzL3hmcy94ZnNfbG9nLmM6MzQxMjpcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSBcXHUwMDI2XFx1MDAyNiB4ZnNfaGFzX3pvbmVkKGxvZy1cXHUwMDNlbF9tcCkpXFxuZnMveGZzL3hmc19sb2cuYy0zNDEzLVxcdFxcdHhmc196b25lZF93YWtlX2FsbChsb2ctXFx1MDAzZWxfbXApO1xcbi0tXFxuZnMveGZzL3hmc19tb3VudC5jPTQ3MT14ZnNfZGVmYXVsdF9yZXNibGtzKFxcbi0tXFxuZnMveGZzL3hmc19tb3VudC5jLTQ4OC1cXHRjYXNlIFhDX0ZSRUVfUlRBVkFJTEFCTEU6XFxuZnMveGZzL3hmc19tb3VudC5jOjQ4OTpcXHRcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSBcXHUwMDI2XFx1MDAyNiB4ZnNfaGFzX3pvbmVkKG1wKSlcXG5mcy94ZnMveGZzX21vdW50LmMtNDkwLVxcdFxcdFxcdHJldHVybiB4ZnNfem9uZWRfZGVmYXVsdF9yZXNibGtzKG1wLCBjdHIpO1xcbi0tXFxuZnMveGZzL3hmc19wbGF0Zm9ybS5oPTIyND1pbnQgeGZzX3J3X2JkZXYoc3RydWN0IGJsb2NrX2RldmljZSAqYmRldiwgc2VjdG9yX3Qgc2VjdG9yLCB1bnNpZ25lZCBpbnQgY291bnQsXFxuLS1cXG5mcy94ZnMveGZzX3BsYXRmb3JtLmgtMjY0LVxcbmZzL3hmcy94ZnNfcGxhdGZvcm0uaDoyNjU6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX3BsYXRmb3JtLmgtMjY2LVxcbi0tXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM9NTkwPWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfcmVmY291bnRfdXBkYXRlX2RlZmVyX3R5cGUgPSB7XFxuLS1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02MDItXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM6NjAzOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmMtNjA0LXN0YXRpYyBzdHJ1Y3QgeGZzX2xvZ19pdGVtICpcXG4tLVxcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jPTY2Mz1jb25zdCBzdHJ1Y3QgeGZzX2RlZmVyX29wX3R5cGUgeGZzX3J0cmVmY291bnRfdXBkYXRlX2RlZmVyX3R5cGUgPSB7XFxuLS1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02NjUtfTtcXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYzo2NjY6I2VuZGlmIC8qIENPTkZJR19YRlNfUlQgKi9cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy02NjctXFxuLS1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYz03NDI9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX2N1aV9pdGVtX29wcyA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfcmVmY291bnRfaXRlbS5jLTc0Ni1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYzo3NDc6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy03NDgtU1RBVElDIGludFxcbi0tXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM9ODI5PWNvbnN0IHN0cnVjdCB4bG9nX3JlY292ZXJfaXRlbV9vcHMgeGxvZ19jdWRfaXRlbV9vcHMgPSB7XFxuLS1cXG5mcy94ZnMveGZzX3JlZmNvdW50X2l0ZW0uYy04MzMtXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmM6ODM0OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19yZWZjb3VudF9pdGVtLmMtODM1LVNUQVRJQyBpbnRcXG4tLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmM9NjQzPWNvbnN0IHN0cnVjdCB4ZnNfZGVmZXJfb3BfdHlwZSB4ZnNfcm1hcF91cGRhdGVfZGVmZXJfdHlwZSA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNjU1LVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmM6NjU2OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYy02NTctc3RhdGljIHN0cnVjdCB4ZnNfbG9nX2l0ZW0gKlxcbi0tXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYz03NzE9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX3J1aV9pdGVtX29wcyA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtNzc1LVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmM6Nzc2OiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYy03NzctU1RBVElDIGludFxcbi0tXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYz04NTg9Y29uc3Qgc3RydWN0IHhsb2dfcmVjb3Zlcl9pdGVtX29wcyB4bG9nX3J1ZF9pdGVtX29wcyA9IHtcXG4tLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmMtODYyLVxcbmZzL3hmcy94ZnNfcm1hcF9pdGVtLmM6ODYzOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19ybWFwX2l0ZW0uYy04NjQtU1RBVElDIGludFxcbi0tXFxuZnMveGZzL3hmc19ydGFsbG9jLmg9MTI9c3RydWN0IHhmc190cmFucztcXG5mcy94ZnMveGZzX3J0YWxsb2MuaC0xMy1cXG5mcy94ZnMveGZzX3J0YWxsb2MuaDoxNDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTE1LS8qIHJ0Z3JvdXAgc3VwZXJibG9jayBpbml0aWFsaXphdGlvbiAqL1xcbi0tXFxuZnMveGZzL3hmc19ydGFsbG9jLmg9NTQ9eGZzX3J0bW91bnRfaW5pdChcXG4tLVxcbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTU5LVxcbmZzL3hmcy94ZnNfcnRhbGxvYy5oOjYwOlxcdHhmc193YXJuKG1wLCBcXFwiTm90IGJ1aWx0IHdpdGggQ09ORklHX1hGU19SVFxcXCIpO1xcbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTYxLVxcdHJldHVybiAtRU5PU1lTO1xcbi0tXFxuZnMveGZzL3hmc19ydGFsbG9jLmg9Njc9eGZzX2dyb3dmc19jaGVja19ydGdlb20oY29uc3Qgc3RydWN0IHhmc19tb3VudCAqbXAsXFxuLS1cXG5mcy94ZnMveGZzX3J0YWxsb2MuaC03Mi19XFxuZnMveGZzL3hmc19ydGFsbG9jLmg6NzM6I2VuZGlmXFx0LyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfcnRhbGxvYy5oLTc0LVxcbi0tXFxuZnMveGZzL3hmc19zdGF0cy5jPTEyOD1zdGF0aWMgaW50IHhxbV9wcm9jX3Nob3coc3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2KVxcbi0tXFxuZnMveGZzL3hmc19zdGF0cy5jLTEzMy1cXHRcXHQgICAwLCBjb3VudGVyX3ZhbCh4ZnNzdGF0cy54c19zdGF0cywgWEZTU1RBVF9FTkRfWFFNU1RBVCArIDEpLFxcbmZzL3hmcy94ZnNfc3RhdHMuYzoxMzQ6XFx0XFx0ICAgSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSA/IFxcXCJydHF1b3RhXFxcIiA6IFxcXCJxdW90YVxcXCIpO1xcbmZzL3hmcy94ZnNfc3RhdHMuYy0xMzUtXFx0cmV0dXJuIDA7XFxuLS1cXG5mcy94ZnMveGZzX3N1cGVyLmM9ODIyPXhmc19mc19ldmljdF9pbm9kZShcXG4tLVxcbmZzL3hmcy94ZnNfc3VwZXIuYy04MzAtXFxuZnMveGZzL3hmc19zdXBlci5jOjgzMTpcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSBcXHUwMDI2XFx1MDAyNlxcbmZzL3hmcy94ZnNfc3VwZXIuYy04MzItXFx0ICAgIFNfSVNSRUcoaW5vZGUtXFx1MDAzZWlfbW9kZSkgXFx1MDAyNlxcdTAwMjYgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZSkge1xcbi0tXFxuZnMveGZzL3hmc19zdXBlci5jPTEzMTQ9eGZzX2ZzX3Nob3dfc3RhdHMoXFxuLS1cXG5mcy94ZnMveGZzX3N1cGVyLmMtMTMxOS1cXG5mcy94ZnMveGZzX3N1cGVyLmM6MTMyMDpcXHRpZiAoeGZzX2hhc196b25lZChtcCkgXFx1MDAyNlxcdTAwMjYgSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSlcXG5mcy94ZnMveGZzX3N1cGVyLmMtMTMyMS1cXHRcXHR4ZnNfem9uZWRfc2hvd19zdGF0cyhtLCBtcCk7XFxuLS1cXG5mcy94ZnMveGZzX3N1cGVyLmg9MTM9ZXh0ZXJuIHZvaWQgeGZzX3FtX2V4aXQodm9pZCk7XFxuLS1cXG5mcy94ZnMveGZzX3N1cGVyLmgtMzAtXFxuZnMveGZzL3hmc19zdXBlci5oOjMxOiNpZmRlZiBDT05GSUdfWEZTX1JUXFxuZnMveGZzL3hmc19zdXBlci5oLTMyLSMgZGVmaW5lIFhGU19SRUFMVElNRV9TVFJJTkdcXHRcXFwicmVhbHRpbWUsIFxcXCJcXG4tLVxcbmZzL3hmcy94ZnNfc3lzZnMuYz03ODQ9eGZzX3pvbmVkX3N5c2ZzX2luaXQoc3RydWN0IHhmc19tb3VudCAqbXApXFxuZnMveGZzL3hmc19zeXNmcy5jLTc4NS17XFxuZnMveGZzL3hmc19zeXNmcy5jOjc4NjpcXHRpZiAoIUlTX0VOQUJMRUQoQ09ORklHX1hGU19SVCkgfHwgIXhmc19oYXNfem9uZWQobXApKVxcbmZzL3hmcy94ZnNfc3lzZnMuYy03ODctXFx0XFx0cmV0dXJuIDA7XFxuLS1cXG5mcy94ZnMveGZzX3N5c2ZzLmM9Nzk0PXhmc196b25lZF9zeXNmc19kZWwoc3RydWN0IHhmc19tb3VudCAqbXApXFxuZnMveGZzL3hmc19zeXNmcy5jLTc5NS17XFxuZnMveGZzL3hmc19zeXNmcy5jOjc5NjpcXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfWEZTX1JUKSBcXHUwMDI2XFx1MDAyNiB4ZnNfaGFzX3pvbmVkKG1wKSlcXG5mcy94ZnMveGZzX3N5c2ZzLmMtNzk3LVxcdFxcdHhmc19zeXNmc19kZWwoXFx1MDAyNm1wLVxcdTAwM2VtX3pvbmVkX2tvYmopO1xcbi0tXFxuZnMveGZzL3hmc190cmFjZS5oPTM2MT1ERUZJTkVfR1JPVVBfUkVGX0VWRU5UKHhmc19ncm91cF9yZWxlKTtcXG5mcy94ZnMveGZzX3RyYWNlLmgtMzYyLVxcbmZzL3hmcy94ZnNfdHJhY2UuaDozNjM6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX3RyYWNlLmgtMzY0LURFQ0xBUkVfRVZFTlRfQ0xBU1MoeGZzX3pvbmVfY2xhc3MsXFxuLS1cXG5mcy94ZnMveGZzX3RyYWNlLmg9NDg5PVRSQUNFX0VWRU5UKHhmc196b25lc19tb3VudCxcXG4tLVxcbmZzL3hmcy94ZnNfdHJhY2UuaC01MDktKTtcXG5mcy94ZnMveGZzX3RyYWNlLmg6NTEwOiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc190cmFjZS5oLTUxMS1cXG4tLVxcbmZzL3hmcy94ZnNfdHJhY2UuaD0xOTk5PVRSQUNFX0VWRU5UKHhmc19leHRlbnRfYnVzeV90cmltLFxcbi0tXFxuZnMveGZzL3hmc190cmFjZS5oLTIwMzEtXFxuZnMveGZzL3hmc190cmFjZS5oOjIwMzI6I2lmZGVmIENPTkZJR19YRlNfUlRcXG5mcy94ZnMveGZzX3RyYWNlLmgtMjAzMy1UUkFDRV9FVkVOVCh4ZnNfcnRhbGxvY19leHRlbnRfYnVzeSxcXG4tLVxcbmZzL3hmcy94ZnNfdHJhY2UuaD0yMDc1PVRSQUNFX0VWRU5UKHhmc19ydGFsbG9jX2V4dGVudF9idXN5X3RyaW0sXFxuLS1cXG5mcy94ZnMveGZzX3RyYWNlLmgtMjEwMy0pO1xcbmZzL3hmcy94ZnNfdHJhY2UuaDoyMTA0OiNlbmRpZiAvKiBDT05GSUdfWEZTX1JUICovXFxuZnMveGZzL3hmc190cmFjZS5oLTIxMDUtXFxuLS1cXG5mcy94ZnMveGZzX3RyYWNlLmg9NTg3MD1ERUZJTkVfTUVUQUZJTEVfUkVTVl9FVkVOVCh4ZnNfbWV0YWZpbGVfcmVzdl9pbml0X2Vycm9yKTtcXG5mcy94ZnMveGZzX3RyYWNlLmgtNTg3MS1cXG5mcy94ZnMveGZzX3RyYWNlLmg6NTg3MjojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfdHJhY2UuaC01ODczLVRSQUNFX0VWRU5UKHhmc19ncm93ZnNfY2hlY2tfcnRnZW9tLFxcbi0tXFxuZnMveGZzL3hmc190cmFjZS5oLTU4OTAtKTtcXG5mcy94ZnMveGZzX3RyYWNlLmg6NTg5MTojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfdHJhY2UuaC01ODkyLVxcbi0tXFxuZnMveGZzL3hmc196b25lX2FsbG9jLmg9NDg9dm9pZCB4ZnNfem9uZWRfc2hvd19zdGF0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCB4ZnNfbW91bnQgKm1wKTtcXG5mcy94ZnMveGZzX3pvbmVfYWxsb2MuaC00OS1cXG5mcy94ZnMveGZzX3pvbmVfYWxsb2MuaDo1MDojaWZkZWYgQ09ORklHX1hGU19SVFxcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTUxLWludCB4ZnNfbW91bnRfem9uZXMoc3RydWN0IHhmc19tb3VudCAqbXApO1xcbi0tXFxuZnMveGZzL3hmc196b25lX2FsbG9jLmg9NzA9c3RhdGljIGlubGluZSB2b2lkIHhmc196b25lX2djX3dha2V1cChzdHJ1Y3QgeGZzX21vdW50ICptcClcXG4tLVxcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTcyLX1cXG5mcy94ZnMveGZzX3pvbmVfYWxsb2MuaDo3MzojZW5kaWYgLyogQ09ORklHX1hGU19SVCAqL1xcbmZzL3hmcy94ZnNfem9uZV9hbGxvYy5oLTc0LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxOToyNjoxNy4wOTY4MzcyNTVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDE0NTE2MjcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlhGUyBSZWFkYWhlYWQgTWFuYWdlbWVudCB3aXRoIFJlYWx0aW1lIERldmljZXMqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGlzIGFsbCBhYm91dCBoYW5kbGluZyByZWFkYWhlYWQgdmFsdWVzIGZvciB0aGUgYmxvY2sgZGV2aWNlIGluZnJhc3RydWN0dXJlIChCREkpIHdoZW4gd2UncmUgdXNpbmcgcmVhbHRpbWUgZGV2aWNlcyB3aXRoaW4gYW4gWEZTIGZpbGVzeXN0ZW0uIFNwZWNpZmljYWxseSwgaXQncyB0d2Vha2luZyBgeGZzX3NldHVwX2RldmljZXNgIGFuZCBgeGZzX2tpbGxfc2JgIHRvIGVuc3VyZSB0aGVzZSByZWFkYWhlYWQgdmFsdWVzIGFyZSBjb3JyZWN0bHkgdXBkYXRlZCBkdXJpbmcgbW91bnRpbmcgYW5kIHJlc3RvcmVkIGR1cmluZyB1bm1vdW50aW5nLiBUaGUgY29yZSBvZiB0aGlzIGZ1bmN0aW9uYWxpdHkgbGllcyBpbiB0aGUgbmV3IGB4ZnNfdXBkYXRlX2JkaV9yYWhlYWRgIGFuZCBgeGZzX3Jlc3RvcmVfYmRpX3JhaGVhZGAgZnVuY3Rpb25zLlxuXG5UaGlzIGlzIGEgY2xlYXIgZnVuY3Rpb25hbCBjaGFuZ2UsIHRhcmdldGVkIGF0IGNvbmZpZ3VyYXRpb25zIHdoZXJlIGFuIFhGUyBmaWxlc3lzdGVtIGlzIG1vdW50ZWQgd2l0aCBhIHJlYWx0aW1lIGRldmljZS4gVGhhdCdzIGdvb2QgdG8ga25vdzsgaXQgcHJvdmlkZXMgYSBkZWZpbml0ZSBmb2N1cy5cblxuSWYgSSB3ZXJlIHRvIGZ1enogdGhpcywgSSdkIGhvbmUgaW4gb24gdGhvc2UgbmV3IGZ1bmN0aW9ucywgYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYCwgYXMgdGhleSdyZSB0aGUgbmV3IGxvZ2ljLiBUaGUgbW9kaWZpZWQgY2FsbHMgdG8gYHhmc19zZXR1cF9kZXZpY2VzYCBhbmQgYHhmc19raWxsX3NiYCBhcmUgYWxzbyBrZXkgYXJlYXMuIFdlJ3JlIHRhbGtpbmcgYWJvdXQgbW91bnQgYW5kIHVubW91bnQgb3BlcmF0aW9ucywgc28gdGhvc2UgZW50cnkgcG9pbnRzIGFyZSBwcmltZSB0YXJnZXRzLlxuXG5BbmQgdGhlIGNvbmZpZyBpcyBzdHJhaWdodGZvcndhcmQ6IHdlJ3JlIGxvb2tpbmcgYXQgYFhGU19SVGAgYW5kLCBuYXR1cmFsbHksIGBYRlNfRlNgLiBUaGlzIGRpY3RhdGVzIHRoZSB0ZXN0IGNhc2VzLlxuXG5UaW1lIHRvIGRyaWxsIGRvd24gaW50byB0aGUgY29kZSBpdHNlbGYsIGBmcy94ZnMveGZzX3N1cGVyLmNgIGlzIHdoZXJlIEknbGwgZmluZCBgeGZzX3VwZGF0ZV9iZGlfcmFoZWFkYCBhbmQgYHhmc19yZXN0b3JlX2JkaV9yYWhlYWRgLiBMZXQncyBzZWUgaG93IHRoZXkncmUgaW1wbGVtZW50ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzMDU1LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjIyLjExMTM1NjIwNloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzk4NTIyMjYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieGZzX3VwZGF0ZV9iZGlfcmFoZWFkXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL3hmcy94ZnNfc3VwZXIuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy94ZnMveGZzX3N1cGVyLmM9NTYyPXN0YXRpYyB2b2lkXFxuZnMveGZzL3hmc19zdXBlci5jOjU2Mzp4ZnNfdXBkYXRlX2JkaV9yYWhlYWQoXFxuZnMveGZzL3hmc19zdXBlci5jLTU2NC1cXHRzdHJ1Y3QgeGZzX21vdW50XFx0Km1wKVxcbi0tXFxuZnMveGZzL3hmc19zdXBlci5jPTYwMT14ZnNfc2V0dXBfZGV2aWNlcyhcXG4tLVxcbmZzL3hmcy94ZnNfc3VwZXIuYy02MzMtXFx0XFx0XFx0cmV0dXJuIGVycm9yO1xcbmZzL3hmcy94ZnNfc3VwZXIuYzo2MzQ6XFx0XFx0eGZzX3VwZGF0ZV9iZGlfcmFoZWFkKG1wKTtcXG5mcy94ZnMveGZzX3N1cGVyLmMtNjM1LVxcdH1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjBUMTk6MjY6MjIuMjkxMjE0MDUyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjYxNjM3MDExNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgWEZTIFJlYWQtQWhlYWQgQ29uZmlndXJhdGlvbiBmb3IgUmVhbHRpbWUgRGV2aWNlcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGZ1bmN0aW9uczogYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYC4gVGhleSdyZSBzdGF0aWMsIGJ1dCB0aGV5J3JlIHN0aWxsIHNvbGlkIGVudHJ5IHBvaW50cyBmb3IgdW5kZXJzdGFuZGluZyB0aGlzIGNoYW5nZS4gVGhlIGdvYWwgaGVyZSBzZWVtcyB0byBiZSBhYm91dCBob3cgWEZTIGhhbmRsZXMgcmVhZGFoZWFkIHNldHRpbmdzIHdpdGggcmVhbHRpbWUgZGV2aWNlcy5cblxuTm93LCB0aGUgY29kZSBpdHNlbGYgZG9lc24ndCBleHBsaWNpdGx5IHVzZSBgI2lmZGVmIENPTkZJR19YRlNfUlRgIGFyb3VuZCBgeGZzX3VwZGF0ZV9iZGlfcmFoZWFkYC4gSXQncyBjaGVja2luZyBgaWYgKG1wLVx1MDAzZW1fcnRkZXZfdGFyZ3AgXHUwMDI2XHUwMDI2IG1wLVx1MDAzZW1fcnRkZXZfdGFyZ3AgIT0gbXAtXHUwMDNlbV9kZGV2X3RhcmdwKWAgaW5zdGVhZC4gQnV0IHRvIGhhdmUgYG1fcnRkZXZfdGFyZ3BgIGFjdHVhbGx5IGluaXRpYWxpemVkIGFuZCBpbiBwbGF5LCAqSSBiZWxpZXZlKiB3ZSdsbCBuZWVkIGBDT05GSUdfWEZTX1JUYCBlbmFibGVkLiBJIHNob3VsZCBwcm9iYWJseSBkb3VibGUtY2hlY2sgdGhhdCBhc3N1bXB0aW9uIHRob3VnaC4gWXVwLCBjb25maXJtZWQ7IGBYRlNfUlRgIGlzIGluZGVlZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb24gZm9yIFhGUyByZWFsdGltZSBzdXBwb3J0LlxuXG5JIHNob3VsZCBwcm9iYWJseSBhbHNvIHZlcmlmeSBpZiBgWEZTX0ZTYCBpcyBhIHJlcXVpcmVtZW50LiBZZXMsIGl0J3MgdGhlIGNvcmUgWEZTIGNvbmZpZy5cblxuU28sIHRvIHN1bW1hcml6ZSBteSBmb2N1czogSSdtIGV4YW1pbmluZyB0aGUgYHhmc191cGRhdGVfYmRpX3JhaGVhZGAgYW5kIGB4ZnNfcmVzdG9yZV9iZGlfcmFoZWFkYCBmdW5jdGlvbnMgYW5kIHRoZWlyIHJlbGF0aW9uIHRvIHRoZSBgWEZTX0ZTYCBhbmQgYFhGU19SVGAgY29uZmlndXJhdGlvbnMuXG5cbkVzc2VudGlhbGx5LCB0aGlzIHBhdGNoIGlzIHR3ZWFraW5nIHRoZSBYRlMgbW91bnQgYW5kIHVubW91bnQgcHJvY2Vzc2VzIHRvIGR5bmFtaWNhbGx5IGFkanVzdCB0aGUgYmFja2luZyBkZXZpY2UgaW5mb3JtYXRpb24gKEJESSkgcmVhZGFoZWFkIGFuZCBpb19wYWdlcyBzZXR0aW5ncyB3aGVuZXZlciBhIHJlYWx0aW1lIGRldmljZSBpcyB1c2VkLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGRpcmVjdGx5IGltcGFjdGluZyBmaWxlc3lzdGVtIGluaXRpYWxpemF0aW9uIGFuZCBzaHV0ZG93bi4gQW5kIEkgc2hvdWxkIGRvdWJsZSBjaGVjayB0byBtYWtlIHN1cmUgdGhvc2UgY29uZmlnIG5hbWVzIGFyZSBjb3JyZWN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzg2MSwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yMFQxOToyNjoyOC45MDc1ODcyMThaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcyMDMzNTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBYRlNfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL3hmcy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL3hmcy9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMveGZzL0tjb25maWc6Mjpjb25maWcgWEZTX0ZTXFxuZnMveGZzL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiWEZTIGZpbGVzeXN0ZW0gc3VwcG9ydFxcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTI0LVxcbmZzL3hmcy9LY29uZmlnOjI1OmNvbmZpZyBYRlNfU1VQUE9SVF9WNFxcbmZzL3hmcy9LY29uZmlnLTI2LVxcdGJvb2wgXFxcIlN1cHBvcnQgZGVwcmVjYXRlZCBWNCAoY3JjPTApIGZvcm1hdFxcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTQ5LVxcbmZzL3hmcy9LY29uZmlnOjUwOmNvbmZpZyBYRlNfU1VQUE9SVF9BU0NJSV9DSVxcbmZzL3hmcy9LY29uZmlnLTUxLVxcdGJvb2wgXFxcIlN1cHBvcnQgZGVwcmVjYXRlZCBjYXNlLWluc2Vuc2l0aXZlIGFzY2lpIChhc2NpaS1jaT0xKSBmb3JtYXRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy03Ni1cXG5mcy94ZnMvS2NvbmZpZzo3Nzpjb25maWcgWEZTX1FVT1RBXFxuZnMveGZzL0tjb25maWctNzgtXFx0Ym9vbCBcXFwiWEZTIFF1b3RhIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy05NC1cXG5mcy94ZnMvS2NvbmZpZzo5NTpjb25maWcgWEZTX1BPU0lYX0FDTFxcbmZzL3hmcy9LY29uZmlnLTk2LVxcdGJvb2wgXFxcIlhGUyBQT1NJWCBBQ0wgc3VwcG9ydFxcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTEwNC1cXG5mcy94ZnMvS2NvbmZpZzoxMDU6Y29uZmlnIFhGU19SVFxcbmZzL3hmcy9LY29uZmlnLTEwNi1cXHRib29sIFxcXCJYRlMgUmVhbHRpbWUgc3Vidm9sdW1lIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0xMzItXFxuZnMveGZzL0tjb25maWc6MTMzOmNvbmZpZyBYRlNfRFJBSU5fSU5URU5UU1xcbmZzL3hmcy9LY29uZmlnLTEzNC1cXHRib29sXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0xMzYtXFxuZnMveGZzL0tjb25maWc6MTM3OmNvbmZpZyBYRlNfTElWRV9IT09LU1xcbmZzL3hmcy9LY29uZmlnLTEzOC1cXHRib29sXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0xNDAtXFxuZnMveGZzL0tjb25maWc6MTQxOmNvbmZpZyBYRlNfTUVNT1JZX0JVRlNcXG5mcy94ZnMvS2NvbmZpZy0xNDItXFx0Ym9vbFxcbmZzL3hmcy9LY29uZmlnLTE0My1cXG5mcy94ZnMvS2NvbmZpZzoxNDQ6Y29uZmlnIFhGU19CVFJFRV9JTl9NRU1cXG5mcy94ZnMvS2NvbmZpZy0xNDUtXFx0Ym9vbFxcbmZzL3hmcy9LY29uZmlnLTE0Ni1cXG5mcy94ZnMvS2NvbmZpZzoxNDc6Y29uZmlnIFhGU19PTkxJTkVfU0NSVUJcXG5mcy94ZnMvS2NvbmZpZy0xNDgtXFx0Ym9vbCBcXFwiWEZTIG9ubGluZSBtZXRhZGF0YSBjaGVjayBzdXBwb3J0XFxcIlxcbi0tXFxuZnMveGZzL0tjb25maWctMTYzLVxcbmZzL3hmcy9LY29uZmlnOjE2NDpjb25maWcgWEZTX09OTElORV9TQ1JVQl9TVEFUU1xcbmZzL3hmcy9LY29uZmlnLTE2NS1cXHRib29sIFxcXCJYRlMgb25saW5lIG1ldGFkYXRhIGNoZWNrIHVzYWdlIGRhdGEgY29sbGVjdGlvblxcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTE3OC1cXG5mcy94ZnMvS2NvbmZpZzoxNzk6Y29uZmlnIFhGU19PTkxJTkVfUkVQQUlSXFxuZnMveGZzL0tjb25maWctMTgwLVxcdGJvb2wgXFxcIlhGUyBvbmxpbmUgbWV0YWRhdGEgcmVwYWlyIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0xOTMtXFxuZnMveGZzL0tjb25maWc6MTk0OmNvbmZpZyBYRlNfV0FSTlxcbmZzL3hmcy9LY29uZmlnLTE5NS1cXHRib29sIFxcXCJYRlMgVmVyYm9zZSBXYXJuaW5nc1xcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTIwNi1cXG5mcy94ZnMvS2NvbmZpZzoyMDc6Y29uZmlnIFhGU19ERUJVR1xcbmZzL3hmcy9LY29uZmlnLTIwOC1cXHRib29sIFxcXCJYRlMgRGVidWdnaW5nIHN1cHBvcnRcXFwiXFxuLS1cXG5mcy94ZnMvS2NvbmZpZy0yMTktXFxuZnMveGZzL0tjb25maWc6MjIwOmNvbmZpZyBYRlNfREVCVUdfRVhQRU5TSVZFXFxuZnMveGZzL0tjb25maWctMjIxLVxcdGJvb2wgXFxcIlhGUyBleHBlbnNpdmUgZGVidWdnaW5nIGNoZWNrc1xcXCJcXG4tLVxcbmZzL3hmcy9LY29uZmlnLTIzMS1cXG5mcy94ZnMvS2NvbmZpZzoyMzI6Y29uZmlnIFhGU19BU1NFUlRfRkFUQUxcXG5mcy94ZnMvS2NvbmZpZy0yMzMtXFx0Ym9vbCBcXFwiWEZTIGZhdGFsIGFzc2VydHNcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjI5LjE3OTYyODc0MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNjk0ODg3NDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKlhGUyBDb25maWd1cmF0aW9uIEFzc2Vzc21lbnQgYW5kIFJlcG9ydGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGNvbmZpZ3VyYXRpb25zOiBgWEZTX0ZTYCBhbmQgYFhGU19SVGAuIEltbWVkaWF0ZWx5LCBteSBicmFpbiBraWNrcyBpbnRvIGFzc2Vzc21lbnQgbW9kZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCdzIGVuYWJsZWQsIHdoYXQgaW1wbGljYXRpb25zIHRoaXMgaGFzLCBhbmQgaG93IHRvIGVmZmVjdGl2ZWx5IGNvbW11bmljYXRlIHRoZSByZXN1bHRpbmcgc3RhdGUuIEknbGwgbmVlZCB0byB1c2UgYHNldC1yZXN1bHRzYCB0byBwcm9wZXJseSBvdXRwdXQgbXkgZmluZGluZ3MuIFRoaXMgZW5zdXJlcyBhIGNsZWFuLCBzdHJ1Y3R1cmVkIHByZXNlbnRhdGlvbiBvZiB0aGUgZmFjdHMuIEdpdmVuIHRoZSBjb250ZXh0LCBJJ20gbGlrZWx5IGRlYWxpbmcgd2l0aCBhbiBYRlMgZmlsZXN5c3RlbSBjb25maWd1cmF0aW9uIGFuZCBhIFJlYWwtdGltZSBmaWxlc3lzdGVtIGNvbmZpZ3VyYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE1NTg1LCJPdXRwdXRUb2tlbnMiOjExNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTIwVDE5OjI2OjMyLjM0OTEyMDU3M1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5NjExOTE1NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiWEZTX0ZTXCIsXG4gICAgXCJYRlNfUlRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ4ZnNfdXBkYXRlX2JkaV9yYWhlYWRcIixcbiAgICBcInhmc19yZXN0b3JlX2JkaV9yYWhlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBYRlMgbW91bnQgYW5kIHVubW91bnQgcGF0aHMgdG8gYWRqdXN0IHRoZSBiYWNraW5nIGRldmljZSBpbmZvIChCREkpIHJlYWRhaGVhZCBhbmQgaW9fcGFnZXMgc2V0dGluZ3Mgd2hlbiBhIHJlYWx0aW1lIGRldmljZSBpcyBwcmVzZW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZmlsZXN5c3RlbSBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiWEZTX0ZTXCIsXG4gICAgXCJYRlNfUlRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ4ZnNfdXBkYXRlX2JkaV9yYWhlYWRcIixcbiAgICBcInhmc19yZXN0b3JlX2JkaV9yYWhlYWRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBYRlMgbW91bnQgYW5kIHVubW91bnQgcGF0aHMgdG8gYWRqdXN0IHRoZSBiYWNraW5nIGRldmljZSBpbmZvIChCREkpIHJlYWRhaGVhZCBhbmQgaW9fcGFnZXMgc2V0dGluZ3Mgd2hlbiBhIHJlYWx0aW1lIGRldmljZSBpcyBwcmVzZW50LiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZmlsZXN5c3RlbSBpbml0aWFsaXphdGlvbiBhbmQgdGVhcmRvd24gbG9naWMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow7z6mx[1] Phase: Succeeded StartedAt: 2026-07-20 19:27:26 +0000 UTC FinishedAt: 2026-07-20 19:27:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-20 19:27:26 +0000 UTC FinishedAt: 2026-07-20 19:27:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2] Phase: Succeeded StartedAt: 2026-07-20 19:27:26 +0000 UTC FinishedAt: 2026-07-20 23:46:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 19:27:27 +0000 UTC FinishedAt: 2026-07-20 23:46:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 19:27:27 +0000 UTC FinishedAt: 2026-07-20 19:28:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 19:27:27 +0000 UTC FinishedAt: 2026-07-20 19:27:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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-workflow7z6mx/series-workflow7z6mx-convert-artifact-1769048445/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 19:28:02 +0000 UTC FinishedAt: 2026-07-20 20:05:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 19:28:03 +0000 UTC FinishedAt: 2026-07-20 20:05:39 +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:*dec7f5b6-fb25-49e8-a940-8b5b4b8fc48e,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-workflow7z6mx/series-workflow7z6mx-convert-artifact-1769048445/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": "afa74a76-b570-4ba4-9c87-051c57869476", "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-workflow7z6mx/series-workflow7z6mx-build-action-2490790579/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 19:28:03 +0000 UTC FinishedAt: 2026-07-20 20:05:17 +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:*dec7f5b6-fb25-49e8-a940-8b5b4b8fc48e,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-workflow7z6mx/series-workflow7z6mx-convert-artifact-1769048445/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": "afa74a76-b570-4ba4-9c87-051c57869476", "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-workflow7z6mx/series-workflow7z6mx-build-action-2490790579/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:05:39 +0000 UTC FinishedAt: 2026-07-20 20:05:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:05:39 +0000 UTC FinishedAt: 2026-07-20 20:05:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:05:39 +0000 UTC FinishedAt: 2026-07-20 20:06:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:05:39 +0000 UTC FinishedAt: 2026-07-20 20:05:50 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-workflow7z6mx/series-workflow7z6mx-convert-artifact-720191192/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:06:00 +0000 UTC FinishedAt: 2026-07-20 20:08:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:06:00 +0000 UTC FinishedAt: 2026-07-20 20:08:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*afa74a76-b570-4ba4-9c87-051c57869476,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-workflow7z6mx/series-workflow7z6mx-build-action-2490790579/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-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:08:20 +0000 UTC FinishedAt: 2026-07-20 20:08:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:08:20 +0000 UTC FinishedAt: 2026-07-20 20:08:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:08:20 +0000 UTC FinishedAt: 2026-07-20 20:42:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:08:20 +0000 UTC FinishedAt: 2026-07-20 20:42:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*dec7f5b6-fb25-49e8-a940-8b5b4b8fc48e,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-workflow7z6mx/series-workflow7z6mx-convert-artifact-720191192/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": "d05b88d5-f28d-48b3-acd1-d39ecb85cd8a", "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-workflow7z6mx/series-workflow7z6mx-build-action-2476271684/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:08:20 +0000 UTC FinishedAt: 2026-07-20 20:42:28 +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:*dec7f5b6-fb25-49e8-a940-8b5b4b8fc48e,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-workflow7z6mx/series-workflow7z6mx-convert-artifact-720191192/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": "d05b88d5-f28d-48b3-acd1-d39ecb85cd8a", "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-workflow7z6mx/series-workflow7z6mx-build-action-2476271684/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:42:38 +0000 UTC FinishedAt: 2026-07-20 20:42:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:42:38 +0000 UTC FinishedAt: 2026-07-20 20:42:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:42:38 +0000 UTC FinishedAt: 2026-07-20 20:44:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:42:38 +0000 UTC FinishedAt: 2026-07-20 20:44:43 +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:*d05b88d5-f28d-48b3-acd1-d39ecb85cd8a,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-workflow7z6mx/series-workflow7z6mx-build-action-2476271684/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-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:44:52 +0000 UTC FinishedAt: 2026-07-20 23:46:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:44:52 +0000 UTC FinishedAt: 2026-07-20 23:46:16 +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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"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:*afa74a76-b570-4ba4-9c87-051c57869476,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d05b88d5-f28d-48b3-acd1-d39ecb85cd8a,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-workflow7z6mx/series-workflow7z6mx-build-action-2490790579/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-workflow7z6mx/series-workflow7z6mx-build-action-2476271684/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:44:52 +0000 UTC FinishedAt: 2026-07-20 20:45:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:44:52 +0000 UTC FinishedAt: 2026-07-20 20:44:57 +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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"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-workflow7z6mx/series-workflow7z6mx-convert-artifact-3009748401/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:44:52 +0000 UTC FinishedAt: 2026-07-20 20:44:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:44:52 +0000 UTC FinishedAt: 2026-07-20 20:44:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:44:52 +0000 UTC FinishedAt: 2026-07-20 20:44:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:45:02 +0000 UTC FinishedAt: 2026-07-20 23:46:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7z6mx[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"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":["xfs_update_bdi_rahead","xfs_restore_bdi_rahead"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1590cf0329716306e948a8fc29f1d3ee87d3989f","config_name":"upstream-apparmor-kasan.config","enable_configs":["XFS_FS","XFS_RT"],"series_id":"c038cfba-9f76-497a-8eb8-b21d337a8021","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-20 20:45:02 +0000 UTC FinishedAt: 2026-07-20 23:46:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*afa74a76-b570-4ba4-9c87-051c57869476,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d05b88d5-f28d-48b3-acd1-d39ecb85cd8a,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-workflow7z6mx/series-workflow7z6mx-build-action-2490790579/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-workflow7z6mx/series-workflow7z6mx-build-action-2476271684/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-workflow7z6mx/series-workflow7z6mx-convert-artifact-3009748401/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,}