Name: series-workflowfv9jt Phase: Succeeded StartedAt: 2026-07-16 22:00:36 +0000 UTC FinishedAt: 2026-07-16 23:36:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[0] Phase: Succeeded StartedAt: 2026-07-16 22:00:36 +0000 UTC FinishedAt: 2026-07-16 22:25:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[0].run-triage Phase: Succeeded StartedAt: 2026-07-16 22:00:36 +0000 UTC FinishedAt: 2026-07-16 22:25:14 +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": "37e2f878a7a660a216cc7a60459995fefd150f25", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "37e2f878a7a660a216cc7a60459995fefd150f25", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U" ], "series_id": "fd28c83d-5a93-487e-be43-a91e8e26f39a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt7921_mcu_rx_event" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc5MjFfbWN1X3J4X2V2ZW50JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIG10NzkyMSB3aXJlbGVzcyBkcml2ZXIgd2hlbiBgc2tiX2xpbmVhcml6ZWAgZmFpbHMgZHVyaW5nIE1DVSBSWCBldmVudCBwcm9jZXNzaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChNVDc5MjFVKSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYjY0YjdlNmVhNTc1ZjczMzQyMTgyZDQwZmRhNWZkMDgwODI4NThmOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDIyOjIyOjM1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNcbmluZGV4IDI1Yjk0MzcyNTBmN2JhLi5mYjE4ZDNiNGUyN2JhZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuY1xuQEAgLTM1MSw4ICYjNDM7MzUxLDEwIEBAIHZvaWQgbXQ3OTIxX21jdV9yeF9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbiBcdHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqcnhkO1xuIFxuLVx0aWYgKHNrYl9saW5lYXJpemUoc2tiKSlcbiYjNDM7XHRpZiAoc2tiX2xpbmVhcml6ZShza2IpKSB7XG4mIzQzO1x0XHRkZXZfa2ZyZWVfc2tiKHNrYik7XG4gXHRcdHJldHVybjtcbiYjNDM7XHR9XG4gXG4gXHRyeGQgPSAoc3RydWN0IG10NzZfY29ubmFjMl9tY3VfcnhkICopc2tiLVx1MDAzZWRhdGE7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MjI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyMV9tY3VfcnhfZXZlbnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgbXQ3OTIxIHdpcmVsZXNzIGRyaXZlciB3aGVuIGBza2JfbGluZWFyaXplYCBmYWlscyBkdXJpbmcgTUNVIFJYIGV2ZW50IHByb2Nlc3NpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKE1UNzkyMVUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15X2hjZCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGI2NGI3ZTZlYTU3NWY3MzM0MjE4MmQ0MGZkYTVmZDA4MDgyODU4ZjgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAxNiAyMjoyMjozNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMKaW5kZXggMjViOTQzNzI1MGY3YmEuLmZiMThkM2I0ZTI3YmFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYwpAQCAtMzUxLDggJiM0MzszNTEsMTAgQEAgdm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IG10NzZfY29ubmFjMl9tY3VfcnhkICpyeGQ7CiAKLQlpZiAoc2tiX2xpbmVhcml6ZShza2IpKQomIzQzOwlpZiAoc2tiX2xpbmVhcml6ZShza2IpKSB7CiYjNDM7CQlkZXZfa2ZyZWVfc2tiKHNrYik7CiAJCXJldHVybjsKJiM0MzsJfQogCiAJcnhkID0gKHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqKXNrYi0mZ3Q7ZGF0YTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIzCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGFkZGluZyBgZGV2X2tmcmVlX3NrYihza2IpO2Agd2hlbiBgc2tiX2xpbmVhcml6ZShza2IpYCBmYWlscyB3aXRoaW4gYG10NzkyMV9tY3VfcnhfZXZlbnRgLiBUaGlzIGxvb2tzIGxpa2UgYSBzb2xpZCBmdW5jdGlvbmFsIGZpeDsgaXQmIzM5O3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBtZW1vcnkgbGVhay4gQnV0IG15IGltbWVkaWF0ZSB0aG91Z2h0IGlzOiBjYW4gSSBhY3R1YWxseSAqc2VlKiB0aGlzIGluIGFjdGlvbiwgZXNwZWNpYWxseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBUaGlzIGlzIGEgTWVkaWF0ZWsgTVQ3OTIxIHdpcmVsZXNzIGRyaXZlciwgcGFydCBvZiB0aGUgYG10NzZgIGRyaXZlciBmcmFtZXdvcmsuCgpOb3csIGBtdDc2YCBpcyB0eXBpY2FsbHkgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIuIFRoYXQgYnJpbmdzIHVwIHRoZSBlbXVsYXRpb24gcXVlc3Rpb24uIFdpcmVsZXNzIGRyaXZlcnMgYXJlIHVzdWFsbHkgdG91Z2ggdG8gZW11bGF0ZSB1bmxlc3MgeW91IGhhdmUgc3BlY2lmaWMgc29mdHdhcmUgc3VwcG9ydCBvciwgcG90ZW50aWFsbHksIGlmIGl0JiMzOTtzIGEgVVNCIGRldmljZSB0aGF0IGNvdWxkIGJlIGZha2VkIHVzaW5nIGEgVVNCIGdhZGdldCBvciBhIGR1bW15IGhvc3QgY29udHJvbGxlci4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgdG8gZmlndXJlIG91dCBpZiBgbXQ3OTIxYCB1c2VzIFVTQiwgUENJZSwgb3IgU0RJTy4gSSYjMzk7bGwgc2VhcmNoIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2AgZGlyZWN0b3J5IHRvIGdldCBhIGJldHRlciBzZW5zZSBvZiB0aGUgaGFyZHdhcmUgaW50ZXJmYWNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtpbml0LmMmIzM0OywKICAgICYjMzQ7bWFjLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21jdS5jJiMzNDssCiAgICAmIzM0O21jdS5oJiMzNDssCiAgICAmIzM0O210NzkyMS5oJiMzNDssCiAgICAmIzM0O3BjaS5jJiMzNDssCiAgICAmIzM0O3BjaV9tYWMuYyYjMzQ7LAogICAgJiMzNDtwY2lfbWN1LmMmIzM0OywKICAgICYjMzQ7cmVnZC5jJiMzNDssCiAgICAmIzM0O3JlZ2QuaCYjMzQ7LAogICAgJiMzNDtyZWdzLmgmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW9fbWFjLmMmIzM0OywKICAgICYjMzQ7c2Rpb19tY3UuYyYjMzQ7LAogICAgJiMzNDt0ZXN0bW9kZS5jJiMzNDssCiAgICAmIzM0O3VzYi5jJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjIxCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogODgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBTdHJhdGVneSBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IEkgc2VlIGl0IGluY2x1ZGVzIGB1c2IuY2AsIGBwY2kuY2AsIGFuZCBgc2Rpby5jYC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgYmVjYXVzZSB0aGUgcHJlc2VuY2Ugb2YgYHVzYi5jYCBvcGVucyB1cCBhIHdob2xlIGF2ZW51ZSBmb3IgZnV6emluZyB2aWEgVVNCIGVtdWxhdGlvbi4gV2UgY291bGQgbGV2ZXJhZ2Ugc29tZXRoaW5nIGxpa2UgYGR1bW15X2hjZGAgdG8gaW5qZWN0IGFuZCBvYnNlcnZlIGhvdyB0aGUgY29kZSByZXNwb25kcyB0byB2YXJpb3VzIFVTQiBwcm90b2NvbCBkZXZpYXRpb25zLiBUaGF0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggcHVyc3VpbmcuCgpOb3csIGxldCYjMzk7cyB6ZXJvIGluIG9uIGEgcG90ZW50aWFsIHRhcmdldC4gQmFzZWQgb24gdGhlIGxpa2VseSBmdW5jdGlvbmFsaXR5IGFuZCB0aGUgaW5jbHVzaW9uIG9mIHRob3NlIGRyaXZlcnMsIEkmIzM5O20gdGhpbmtpbmcgd2Ugc2hvdWxkIGV4YW1pbmUgdGhlIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jYC4gVGhpcyBsb29rcyBsaWtlIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBhbmFseXppbmcgaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBpbmNvbWluZyBNQ1UgZXZlbnRzLCB3aGljaCBjb3VsZCBiZSBhIHNvdXJjZSBvZiB2dWxuZXJhYmlsaXRpZXMuIEkmIzM5O2xsIHN0YXJ0IHRoZXJlIGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MjFfbWN1X3J4X2V2ZW50JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU4Nj12b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjA3LVx0Y2FzZSBQS1RfVFlQRV9SWF9FVkVOVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwODpcdFx0bXQ3OTIxX21jdV9yeF9ldmVudChkZXYsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDktXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTMzMz1tdDc5MjFfbWN1X3VuaV9yeF91bnNvbGljaXRlZF9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjM1MDp2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjE5PWludCBtdDc5MjFfbWN1X2Z3X2xvZ18yX2hvc3Qoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggY3RybCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyMjA6dm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjIxLWludCBtdDc5MjFfbWN1X3NldF9yeGZpbHRlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgZmlmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NDMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBmb3IgRnV6emluZyB0aGUgbXQ3OTIxIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYG10NzkyMV9tY3VfcnhfZXZlbnRgLiBJdCBsb29rcyBsaWtlIHRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIGZyb20gYG10NzkyMV9xdWV1ZV9yeF9za2JgLCB3aGljaCBJJiMzOTttIHByZXR0eSBzdXJlIGlzIGNhbGxlZCB3aGVuZXZlciB0aGUgZHJpdmVyIHJlY2VpdmVzIGEgcGFja2V0LiBHaXZlbiB0aGF0IGBtdDc5MjFgIGlzIGEgVVNCIGRldmljZSwgdGhhdCYjMzk7cyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZy4gV2UgY2FuIGRlZmluaXRlbHkgZXhwbG9yZSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzIHRoZXJlLiBCZWZvcmUgZGl2aW5nIGRlZXBlciwgSSBzaG91bGQgY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucyBmb3IgYG10NzkyMWAuIFRoYXQgd2lsbCBnaXZlIG1lIGEgZ29vZCBoYW5kbGUgb24gd2hhdOKAmXMgZW5hYmxlZCBhbmQgZGlzYWJsZWQgYW5kIG1pZ2h0IHBvaW50IHRvIHNwZWNpZmljIGFyZWFzIG9mIGludGVyZXN0IGZvciBhIGZ1enppbmcgY2FtcGFpZ24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjpjb25maWcgTVQ3OTIxX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyMUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoxNzpjb25maWcgTVQ3OTIxU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0xOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMzYKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipFbmFibGluZyBNVDc5MjFVIC0gQ29uc2lkZXJhdGlvbnMgYW5kIEltcGxpY2F0aW9ucyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB3ZSBuZWVkIHRvIGdldCBgTVQ3OTIxVWAgZW5hYmxlZC4gVGhhdCBzZWVtcyBsaWtlIHRoZSBsb2dpY2FsIG5leHQgc3RlcCBnaXZlbiB0aGUgY29udGV4dC4gTm93LCBJICpzdXNwZWN0KiB0aGF0IGVuYWJsaW5nIGBNVDc5MjFVYCB3aWxsIGF1dG9tYXRpY2FsbHkgcHVsbCBpbiBgTVQ3OTIxX0NPTU1PTmAgZHVlIHRvIHRoZSB3YXkgdGhlc2UgdGhpbmdzIG9mdGVuIHdvcmsgd2l0aCBkZXBlbmRlbmNpZXMsIGJ1dCBJIGNhbiYjMzk7dCBqdXN0IGFzc3VtZSB0aGF0LiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIHBvdGVudGlhbGx5IGRlbGljYXRlIGNvbmZpZ3VyYXRpb25zIGhlcmUsIGFuZCBhc3N1bXB0aW9ucyBhcmUgdGhlIG1vdGhlciBvZiBhbGwuLi4gd2VsbCwgeW91IGtub3cuIEkmIzM5O20gZ29pbmcgdG8gaGF2ZSB0byB2ZXJpZnkgd2hldGhlciB0aGUgYE1UNzkyMV9DT01NT05gIGNvbmZpZ3VyYXRpb24gaXMgYXV0b21hdGljYWxseSBzZWxlY3RlZCB3aGVuIHdlIGVuYWJsZSBgTVQ3OTIxVWAuIEl0JiMzOTtzIGEgcXVpY2sgY2hlY2ssIGJ1dCBhIG5lY2Vzc2FyeSBvbmUgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wbGV0ZSBhbmQgZnVuY3Rpb25hbCBidWlsZCBlbnZpcm9ubWVudC4gV2UgY2FuJiMzOTt0IGFmZm9yZCBhbnkgZ290Y2hhcyBsYXRlciBkb3duIHRoZSBsaW5lLiBJdCYjMzk7cyBhYm91dCBlbnN1cmluZyBhIHNvbGlkLCBwcmVkaWN0YWJsZSBzdGF0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIE1UNzkyMV9DT01NT05cbiAgIDM6XHRcdHRyaXN0YXRlXG4gICA0Olx0XHRzZWxlY3QgTVQ3OTJ4X0xJQlxuICAgNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gICA2Olx0XG4gICA3Olx0Y29uZmlnIE1UNzkyMUVcbiAgIDg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbiAgIDk6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4gIDEwOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDExOlx0XHRkZXBlbmRzIG9uIFBDSVxuICAxMjpcdFx0aGVscFxuICAxMzpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxRSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIE1UNzkyMVNcbiAgMTg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcJiMzNDtcbiAgMTk6XHRcdHNlbGVjdCBNVDc2X1NESU9cbiAgMjA6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4gIDIxOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDIyOlx0XHRkZXBlbmRzIG9uIE1NQ1xuICAyMzpcdFx0aGVscFxuICAyNDpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxUyA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXG4gIDI1Olx0XG4gIDI2Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDI3Olx0XG4gIDI4Olx0Y29uZmlnIE1UNzkyMVVcbiAgMjk6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuICAzMDpcdFx0c2VsZWN0IE1UNzkyeF9VU0JcbiAgMzE6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4gIDMyOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDMzOlx0XHRkZXBlbmRzIG9uIFVTQlxuICAzNDpcdFx0aGVscFxuICAzNTpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxVSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXG4gIDM2Olx0XG4gIDM3Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwODcKCQkJCQkJCW91dHB1dDogNTEKCQkJCQkJCXRob3VnaHRzOiA1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBxdWljayB0YWtlIG9uIHdoYXQgSSYjMzk7bSB0aGlua2luZywga2VlcGluZyBpdCBjb25jaXNlIGFuZCBmb2N1c2luZyBvbiB0aGUgY29yZSBwcm9ibGVtOgoKKipUYXJnZXRpbmcgdGhlIE1UNzkyMVUgYW5kIEFzc29jaWF0ZWQgTUNVIEZ1bmN0aW9ucyoqCgpSaWdodCwgc28gaXQgbG9va3MgbGlrZSB0aGUgYE1UNzkyMVVgIGlzIHRoZSBzcGVjaWZpYyBjb21wb25lbnQgSSBuZWVkIHRvIGJlIGVuYWJsaW5nIG9yIGludmVzdGlnYXRpbmcuIFRoZSBpbml0aWFsIHJlc2VhcmNoIGhhcyBuYXJyb3dlZCB0aGUgZm9jdXMgdG8gdGhhdCBkZXZpY2UuIEkmIzM5O3ZlIG5vdGVkIHRoYXQgdGhlIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBmdW5jdGlvbiBpcyB0aGUgb25lIHRvIGluc3BlY3QgZmlyc3QgYW5kIGZvcmVtb3N0LCBhbmQgaXQgbGl2ZXMgd2l0aGluIHRoZSBgbWN1LmNgIGZpbGUg4oCTIHRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucywgcGVyaGFwcyBoYW5kbGVycyBvciBjYWxsYmFja3MsIHdpdGhpbiB0aGUgYnJvYWRlciBgbWN1LmNgIG9yIGVsc2V3aGVyZSB0aGF0IG1pZ2h0IGJlIGNyaXRpY2FsIHRvIHVuZGVyc3RhbmRpbmcgdGhlIGNvbXBsZXRlIGRhdGEgZmxvdy4gSSBuZWVkIHRvIGJyb2FkZW4gdGhlIHNjb3BlIG9mIHRoZSBpbnZlc3RpZ2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MjFfbWN1X3J4X2V2ZW50JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU4Nj12b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjA3LVx0Y2FzZSBQS1RfVFlQRV9SWF9FVkVOVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwODpcdFx0bXQ3OTIxX21jdV9yeF9ldmVudChkZXYsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDktXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTMzMz1tdDc5MjFfbWN1X3VuaV9yeF91bnNvbGljaXRlZF9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjM1MDp2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjE5PWludCBtdDc5MjFfbWN1X2Z3X2xvZ18yX2hvc3Qoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggY3RybCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyMjA6dm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjIxLWludCBtdDc5MjFfbWN1X3NldF9yeGZpbHRlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgZmlmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTUwCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHByb3ZpZGVkIHRleHQsIHN0cnVjdHVyZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6CgoqKkluaXRpYWwgQXNzZXNzbWVudDogRm9jdXNpbmcgb24gdGhlIFJlY2VpdmVyIFBhdGgqKgoKT2theSwgc28gd2UmIzM5O3JlIHN0YXJ0aW5nIHdpdGggYG10NzkyMV9tY3VfcnhfZXZlbnRgLiBHb29kIGNob2ljZSBhcyBhIHN0YXJ0aW5nIHBvaW50LiBJdCYjMzk7cyBhIHJlYXNvbmFibHkgc3BlY2lmaWMgc3ltYm9sOyBpdCYjMzk7cyBjbGVhcmx5IHJlbGF0ZWQgdG8gaGFuZGxpbmcgaW5jb21pbmcgZGF0YSBmcm9tIHRoZSBNQ1UgaW4gdGhlIE1UNzkyMS4gVGhhdCBhbG9uZSBzdWdnZXN0cyBhIHBvdGVudGlhbCBob3QtcGF0aCwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBSWCBldmVudHMuIE1DVSBjb21tdW5pY2F0aW9uIGlzIG9mdGVuIHRpbWUtc2Vuc2l0aXZlLCBzbyB0aGlzIGNvdWxkIGJlIGEgYm90dGxlbmVjay4KCk5vdywgdGhlIG5hdHVyYWwgZm9sbG93LXVwIGlzIHRvIHZlcmlmeSB0aGF0IHN1c3BpY2lvbi4gV2hhdCBoYXBwZW5zIGRpcmVjdGx5IGFmdGVyIHdlIHByb2Nlc3MgdGhlIFJYIGV2ZW50PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1tZWRpYXRlIGltcGFjdC4gV2hlcmUmIzM5O3MgdGhpcyBkYXRhIGdvaW5nPyBUaGVyZWZvcmUsIEkgc2hvdWxkIGNoZWNrIHRoZSBgbXQ3OTIxX3F1ZXVlX3J4X3NrYmAgZnVuY3Rpb24gdG8gc2VlIHdoZXJlIGl0IHBhc3NlcyB0aGUgc2tfYnVmZnMuIFVuZGVyc3RhbmRpbmcgdGhpcyBkb3duc3RyZWFtIHBhdGggd2lsbCB0ZWxsIG1lIGlmIHRoZSBgbXQ3OTIxX21jdV9yeF9ldmVudGAgZnVuY3Rpb24gaXMgY3JpdGljYWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyMV9xdWV1ZV9yeF9za2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NTg0PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9yeF9jaGVjayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01ODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1ODY6dm9pZCBtdDc5MjFfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTg3LVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjI2LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYyNzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjFfcXVldWVfcnhfc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYyOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0yNzc9Ym9vbCBtdDc5MjFfcnhfY2hlY2soc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjI3ODp2b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yNzktXHRcdFx0IHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaW5mbyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy0yNzMtXHRcdC5yeF9jaGVjayA9IG10NzkyMV9yeF9jaGVjayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjI3NDpcdFx0LnJ4X3NrYiA9IG10NzkyMV9xdWV1ZV9yeF9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy0yNzUtXHRcdC5yeF9wb2xsX2NvbXBsZXRlID0gbXQ3OTJ4X3J4X3BvbGxfY29tcGxldGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy0xMDEtXHRcdC50eF9zdGF0dXNfZGF0YSA9IG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYzoxMDI6XHRcdC5yeF9za2IgPSBtdDc5MjFfcXVldWVfcnhfc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEwMy1cdFx0LnJ4X2NoZWNrID0gbXQ3OTIxX3J4X2NoZWNrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTE2Mi1cdFx0LnR4X3N0YXR1c19kYXRhID0gbXQ3OTIxX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MTYzOlx0XHQucnhfc2tiID0gbXQ3OTIxX3F1ZXVlX3J4X3NrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTE2NC1cdFx0LnJ4X2NoZWNrID0gbXQ3OTIxX3J4X2NoZWNrLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MzY1CgkJCQkJCQlvdXRwdXQ6IDEyMwoJCQkJCQkJdGhvdWdodHM6IDEyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1lbW9yeSBMZWFrIEZpeCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRhcmdldHMgdGhlIGByeF9za2JgIGNhbGxiYWNrIHdpdGhpbiB0aGUgZHJpdmVyLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBpcyBnb2luZyB0byBiZSBhIGtleSBmdW5jdGlvbiB0byB6ZXJvIGluIG9uLiBUaGUgZGVzY3JpcHRpb24gbWVudGlvbnMgYSBtZW1vcnkgbGVhaywgc3BlY2lmaWNhbGx5IHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzLiBUaGF0JiMzOTtzIGEgZ29vZCBicmVhZGNydW1iOyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gbWVtb3J5IG1hbmFnZW1lbnQgYWx3YXlzIGRlc2VydmVzIGNhcmVmdWwgc2NydXRpbnkuCgpTaW5jZSBgTVQ3OTIxVWAgaXMgYSBVU0IgZHJpdmVyLCB0aGUgZmFjdCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGVtdWxhdGlvbiB1c2luZyBgZHVtbXlfaGNkYCBpcyBpbXBvcnRhbnQuIFRoaXMgbWVhbnMgSSBjYW4gbGlrZWx5IHJlcHJvZHVjZSB0aGlzIHNjZW5hcmlvIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudCwgc2ltcGxpZnlpbmcgbXkgdGVzdGluZy4KCkdpdmVuIGFsbCBvZiB0aGlzLCBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLiBJIG5lZWQgdG8gZW5zdXJlIHRoaXMgZml4IGlzIHJvYnVzdCB1bmRlciB2YXJpb3VzIGNvbmRpdGlvbnMuIFRoZSBgRm9jdXNTeW1ib2xzYCB3aWxsIGRlZmluaXRlbHkgaW5jbHVkZSBgJiMzNDttdDc5MjFfbWN1X3J4X2V2ZW50JiMzNDtgLCBiZWNhdXNlIHRoYXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIGNhbGxiYWNrLiBBbmQgZmluYWxseSwgSSYjMzk7bGwgc2V0IGBFbmFibGVDb25maWdzPVsmIzM0O01UNzkyMVUmIzM0O11gIHRvIGxpbWl0IHRoZSB0ZXN0cyB0byB0aGUgVVNCLXNwZWNpZmljIGRyaXZlci4gVGhpcyBzaG91bGQga2VlcCB0aGUgZnV6emluZyBmb2N1c2VkIG9uIHRoZSByZWxldmFudCBjb2RlIHBhdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjFVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3OTIxX21jdV9yeF9ldmVudCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBtdDc5MjEgd2lyZWxlc3MgZHJpdmVyIHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzIGR1cmluZyBNQ1UgUlggZXZlbnQgcHJvY2Vzc2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAoTVQ3OTIxVSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyMV9tY3VfcnhfZXZlbnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgbXQ3OTIxIHdpcmVsZXNzIGRyaXZlciB3aGVuIGBza2JfbGluZWFyaXplYCBmYWlscyBkdXJpbmcgTUNVIFJYIGV2ZW50IHByb2Nlc3NpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKE1UNzkyMVUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15X2hjZCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMjozNy4yNjU2MDgwNjJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDYxMjk1MTI1NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyMV9tY3VfcnhfZXZlbnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBtdDc5MjEgd2lyZWxlc3MgZHJpdmVyIHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzIGR1cmluZyBNQ1UgUlggZXZlbnQgcHJvY2Vzc2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAoTVQ3OTIxVSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjI6MzcuMjY1NjEyMjMxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU1NjQ4NzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiNjRiN2U2ZWE1NzVmNzMzNDIxODJkNDBmZGE1ZmQwODA4Mjg1OGY4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDE2IDIyOjIyOjM1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNcXG5pbmRleCAyNWI5NDM3MjUwZjdiYS4uZmIxOGQzYjRlMjdiYWQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuY1xcbkBAIC0zNTEsOCArMzUxLDEwIEBAIHZvaWQgbXQ3OTIxX21jdV9yeF9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiB7XFxuIFxcdHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqcnhkO1xcbiBcXG4tXFx0aWYgKHNrYl9saW5lYXJpemUoc2tiKSlcXG4rXFx0aWYgKHNrYl9saW5lYXJpemUoc2tiKSkge1xcbitcXHRcXHRkZXZfa2ZyZWVfc2tiKHNrYik7XFxuIFxcdFxcdHJldHVybjtcXG4rXFx0fVxcbiBcXG4gXFx0cnhkID0gKHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqKXNrYi1cXHUwMDNlZGF0YTtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjIyOjM3Ljg2MTcxMDY3OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ1NTMzMzk2ODMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc5MjFfbWN1X3J4X2V2ZW50XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgbXQ3OTIxIHdpcmVsZXNzIGRyaXZlciB3aGVuIGBza2JfbGluZWFyaXplYCBmYWlscyBkdXJpbmcgTUNVIFJYIGV2ZW50IHByb2Nlc3NpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKE1UNzkyMVUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15X2hjZCkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjY0YjdlNmVhNTc1ZjczMzQyMTgyZDQwZmRhNWZkMDgwODI4NThmOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDIyOjIyOjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuY1xuaW5kZXggMjViOTQzNzI1MGY3YmEuLmZiMThkM2I0ZTI3YmFkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jXG5AQCAtMzUxLDggKzM1MSwxMCBAQCB2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgbXQ3Nl9jb25uYWMyX21jdV9yeGQgKnJ4ZDtcbiBcbi1cdGlmIChza2JfbGluZWFyaXplKHNrYikpXG4rXHRpZiAoc2tiX2xpbmVhcml6ZShza2IpKSB7XG4rXHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbiBcdFx0cmV0dXJuO1xuK1x0fVxuIFxuIFx0cnhkID0gKHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqKXNrYi1cdTAwM2VkYXRhO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjI6MzcuODYxNzExOTk4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODM2Mzk5MTk5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuY2AuIFNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYGRldl9rZnJlZV9za2Ioc2tiKTtgIHdoZW4gYHNrYl9saW5lYXJpemUoc2tiKWAgZmFpbHMgd2l0aGluIGBtdDc5MjFfbWN1X3J4X2V2ZW50YC4gVGhpcyBsb29rcyBsaWtlIGEgc29saWQgZnVuY3Rpb25hbCBmaXg7IGl0J3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBtZW1vcnkgbGVhay4gQnV0IG15IGltbWVkaWF0ZSB0aG91Z2h0IGlzOiBjYW4gSSBhY3R1YWxseSAqc2VlKiB0aGlzIGluIGFjdGlvbiwgZXNwZWNpYWxseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBUaGlzIGlzIGEgTWVkaWF0ZWsgTVQ3OTIxIHdpcmVsZXNzIGRyaXZlciwgcGFydCBvZiB0aGUgYG10NzZgIGRyaXZlciBmcmFtZXdvcmsuXG5cbk5vdywgYG10NzZgIGlzIHR5cGljYWxseSBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlci4gVGhhdCBicmluZ3MgdXAgdGhlIGVtdWxhdGlvbiBxdWVzdGlvbi4gV2lyZWxlc3MgZHJpdmVycyBhcmUgdXN1YWxseSB0b3VnaCB0byBlbXVsYXRlIHVubGVzcyB5b3UgaGF2ZSBzcGVjaWZpYyBzb2Z0d2FyZSBzdXBwb3J0IG9yLCBwb3RlbnRpYWxseSwgaWYgaXQncyBhIFVTQiBkZXZpY2UgdGhhdCBjb3VsZCBiZSBmYWtlZCB1c2luZyBhIFVTQiBnYWRnZXQgb3IgYSBkdW1teSBob3N0IGNvbnRyb2xsZXIuIExldCdzIGRpZyBkZWVwZXIgdG8gZmlndXJlIG91dCBpZiBgbXQ3OTIxYCB1c2VzIFVTQiwgUENJZSwgb3IgU0RJTy4gSSdsbCBzZWFyY2ggd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvYCBkaXJlY3RvcnkgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIHRoZSBoYXJkd2FyZSBpbnRlcmZhY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MjMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMjo0Ni4yMjU3MDYxOTdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNDMyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJkZWJ1Z2ZzLmNcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1haW4uY1wiLFxuICAgIFwibWN1LmNcIixcbiAgICBcIm1jdS5oXCIsXG4gICAgXCJtdDc5MjEuaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInBjaV9tYWMuY1wiLFxuICAgIFwicGNpX21jdS5jXCIsXG4gICAgXCJyZWdkLmNcIixcbiAgICBcInJlZ2QuaFwiLFxuICAgIFwicmVncy5oXCIsXG4gICAgXCJzZGlvLmNcIixcbiAgICBcInNkaW9fbWFjLmNcIixcbiAgICBcInNkaW9fbWN1LmNcIixcbiAgICBcInRlc3Rtb2RlLmNcIixcbiAgICBcInVzYi5jXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjIyOjQ2LjIyNTgzMzM5N1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0NDI4NTk3Nzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgU3RyYXRlZ3kgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaW1tZWRpYXRlbHkgSSBzZWUgaXQgaW5jbHVkZXMgYHVzYi5jYCwgYHBjaS5jYCwgYW5kIGBzZGlvLmNgLiBUaGF0J3MgaW50ZXJlc3RpbmcsIGJlY2F1c2UgdGhlIHByZXNlbmNlIG9mIGB1c2IuY2Agb3BlbnMgdXAgYSB3aG9sZSBhdmVudWUgZm9yIGZ1enppbmcgdmlhIFVTQiBlbXVsYXRpb24uIFdlIGNvdWxkIGxldmVyYWdlIHNvbWV0aGluZyBsaWtlIGBkdW1teV9oY2RgIHRvIGluamVjdCBhbmQgb2JzZXJ2ZSBob3cgdGhlIGNvZGUgcmVzcG9uZHMgdG8gdmFyaW91cyBVU0IgcHJvdG9jb2wgZGV2aWF0aW9ucy4gVGhhdCdzIGRlZmluaXRlbHkgd29ydGggcHVyc3VpbmcuXG5cbk5vdywgbGV0J3MgemVybyBpbiBvbiBhIHBvdGVudGlhbCB0YXJnZXQuIEJhc2VkIG9uIHRoZSBsaWtlbHkgZnVuY3Rpb25hbGl0eSBhbmQgdGhlIGluY2x1c2lvbiBvZiB0aG9zZSBkcml2ZXJzLCBJJ20gdGhpbmtpbmcgd2Ugc2hvdWxkIGV4YW1pbmUgdGhlIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jYC4gVGhpcyBsb29rcyBsaWtlIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBhbmFseXppbmcgaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBpbmNvbWluZyBNQ1UgZXZlbnRzLCB3aGljaCBjb3VsZCBiZSBhIHNvdXJjZSBvZiB2dWxuZXJhYmlsaXRpZXMuIEknbGwgc3RhcnQgdGhlcmUgYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjIxLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODgsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjIzOjMwLjY1NDQzMzMxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MTU5MDc4MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTIxX21jdV9yeF9ldmVudFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NTg2PXZvaWQgbXQ3OTIxX3F1ZXVlX3J4X3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYwNy1cXHRjYXNlIFBLVF9UWVBFX1JYX0VWRU5UOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwODpcXHRcXHRtdDc5MjFfbWN1X3J4X2V2ZW50KGRldiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz0zMzM9bXQ3OTIxX21jdV91bmlfcnhfdW5zb2xpY2l0ZWRfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzozNTA6dm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMzUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTIxOT1pbnQgbXQ3OTIxX21jdV9md19sb2dfMl9ob3N0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4IGN0cmwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIyMDp2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjIxLWludCBtdDc5MjFfbWN1X3NldF9yeGZpbHRlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgZmlmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMzozMS4wNzAzNDUzODVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDg5MTAwNjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIGZvciBGdXp6aW5nIHRoZSBtdDc5MjEgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYG10NzkyMV9tY3VfcnhfZXZlbnRgLiBJdCBsb29rcyBsaWtlIHRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIGZyb20gYG10NzkyMV9xdWV1ZV9yeF9za2JgLCB3aGljaCBJJ20gcHJldHR5IHN1cmUgaXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBkcml2ZXIgcmVjZWl2ZXMgYSBwYWNrZXQuIEdpdmVuIHRoYXQgYG10NzkyMWAgaXMgYSBVU0IgZGV2aWNlLCB0aGF0J3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIGNhbiBkZWZpbml0ZWx5IGV4cGxvcmUgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyB0aGVyZS4gQmVmb3JlIGRpdmluZyBkZWVwZXIsIEkgc2hvdWxkIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIG9wdGlvbnMgZm9yIGBtdDc5MjFgLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGdvb2QgaGFuZGxlIG9uIHdoYXTigJlzIGVuYWJsZWQgYW5kIGRpc2FibGVkIGFuZCBtaWdodCBwb2ludCB0byBzcGVjaWZpYyBhcmVhcyBvZiBpbnRlcmVzdCBmb3IgYSBmdXp6aW5nIGNhbXBhaWduLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTQzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjM6MzQuMTU5NDQ3ODU4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDM1Mjg1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTVQ3OTIxXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjI6Y29uZmlnIE1UNzkyMV9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTMtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyMUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTgtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6MTc6Y29uZmlnIE1UNzkyMVNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTE4LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFTIChTRElPKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjI4OmNvbmZpZyBNVDc5MjFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMzozNC4yNjM4MDQ2MTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDk0NjAyNjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipFbmFibGluZyBNVDc5MjFVIC0gQ29uc2lkZXJhdGlvbnMgYW5kIEltcGxpY2F0aW9ucyoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgd2UgbmVlZCB0byBnZXQgYE1UNzkyMVVgIGVuYWJsZWQuIFRoYXQgc2VlbXMgbGlrZSB0aGUgbG9naWNhbCBuZXh0IHN0ZXAgZ2l2ZW4gdGhlIGNvbnRleHQuIE5vdywgSSAqc3VzcGVjdCogdGhhdCBlbmFibGluZyBgTVQ3OTIxVWAgd2lsbCBhdXRvbWF0aWNhbGx5IHB1bGwgaW4gYE1UNzkyMV9DT01NT05gIGR1ZSB0byB0aGUgd2F5IHRoZXNlIHRoaW5ncyBvZnRlbiB3b3JrIHdpdGggZGVwZW5kZW5jaWVzLCBidXQgSSBjYW4ndCBqdXN0IGFzc3VtZSB0aGF0LiBXZSdyZSBkZWFsaW5nIHdpdGggcG90ZW50aWFsbHkgZGVsaWNhdGUgY29uZmlndXJhdGlvbnMgaGVyZSwgYW5kIGFzc3VtcHRpb25zIGFyZSB0aGUgbW90aGVyIG9mIGFsbC4uLiB3ZWxsLCB5b3Uga25vdy4gSSdtIGdvaW5nIHRvIGhhdmUgdG8gdmVyaWZ5IHdoZXRoZXIgdGhlIGBNVDc5MjFfQ09NTU9OYCBjb25maWd1cmF0aW9uIGlzIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgd2hlbiB3ZSBlbmFibGUgYE1UNzkyMVVgLiBJdCdzIGEgcXVpY2sgY2hlY2ssIGJ1dCBhIG5lY2Vzc2FyeSBvbmUgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wbGV0ZSBhbmQgZnVuY3Rpb25hbCBidWlsZCBlbnZpcm9ubWVudC4gV2UgY2FuJ3QgYWZmb3JkIGFueSBnb3RjaGFzIGxhdGVyIGRvd24gdGhlIGxpbmUuIEl0J3MgYWJvdXQgZW5zdXJpbmcgYSBzb2xpZCwgcHJlZGljdGFibGUgc3RhdGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMzYsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMzozNy43NTg0MDkxNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTE1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuICAgMjpcXHRjb25maWcgTVQ3OTIxX0NPTU1PTlxcbiAgIDM6XFx0XFx0dHJpc3RhdGVcXG4gICA0OlxcdFxcdHNlbGVjdCBNVDc5MnhfTElCXFxuICAgNTpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gICA2OlxcdFxcbiAgIDc6XFx0Y29uZmlnIE1UNzkyMUVcXG4gICA4OlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFFIChQQ0llKSBzdXBwb3J0XFxcIlxcbiAgIDk6XFx0XFx0c2VsZWN0IE1UNzkyMV9DT01NT05cXG4gIDEwOlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gIDExOlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICAxMjpcXHRcXHRoZWxwXFxuICAxMzpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFFIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgTVQ3OTIxU1xcbiAgMTg6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcXFwiXFxuICAxOTpcXHRcXHRzZWxlY3QgTVQ3Nl9TRElPXFxuICAyMDpcXHRcXHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxcbiAgMjE6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMjI6XFx0XFx0ZGVwZW5kcyBvbiBNTUNcXG4gIDIzOlxcdFxcdGhlbHBcXG4gIDI0OlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyMVMgODAyLjExYXggMngyOjJTUyB3aXJlbGVzcyBkZXZpY2VzLlxcbiAgMjU6XFx0XFxuICAyNjpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuICAyNzpcXHRcXG4gIDI4OlxcdGNvbmZpZyBNVDc5MjFVXFxuICAyOTpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XFxcIlxcbiAgMzA6XFx0XFx0c2VsZWN0IE1UNzkyeF9VU0JcXG4gIDMxOlxcdFxcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXFxuICAzMjpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAzMzpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAgMzQ6XFx0XFx0aGVscFxcbiAgMzU6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxVSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXFxuICAzNjpcXHRcXG4gIDM3OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjM6MzcuNzU4NDY2MjVaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjE0Nzg5NjU0OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBxdWljayB0YWtlIG9uIHdoYXQgSSdtIHRoaW5raW5nLCBrZWVwaW5nIGl0IGNvbmNpc2UgYW5kIGZvY3VzaW5nIG9uIHRoZSBjb3JlIHByb2JsZW06XG5cbioqVGFyZ2V0aW5nIHRoZSBNVDc5MjFVIGFuZCBBc3NvY2lhdGVkIE1DVSBGdW5jdGlvbnMqKlxuXG5SaWdodCwgc28gaXQgbG9va3MgbGlrZSB0aGUgYE1UNzkyMVVgIGlzIHRoZSBzcGVjaWZpYyBjb21wb25lbnQgSSBuZWVkIHRvIGJlIGVuYWJsaW5nIG9yIGludmVzdGlnYXRpbmcuIFRoZSBpbml0aWFsIHJlc2VhcmNoIGhhcyBuYXJyb3dlZCB0aGUgZm9jdXMgdG8gdGhhdCBkZXZpY2UuIEkndmUgbm90ZWQgdGhhdCB0aGUgYG10NzkyMV9tY3VfcnhfZXZlbnRgIGZ1bmN0aW9uIGlzIHRoZSBvbmUgdG8gaW5zcGVjdCBmaXJzdCBhbmQgZm9yZW1vc3QsIGFuZCBpdCBsaXZlcyB3aXRoaW4gdGhlIGBtY3UuY2AgZmlsZSDigJMgdGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMsIHBlcmhhcHMgaGFuZGxlcnMgb3IgY2FsbGJhY2tzLCB3aXRoaW4gdGhlIGJyb2FkZXIgYG1jdS5jYCBvciBlbHNld2hlcmUgdGhhdCBtaWdodCBiZSBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBkYXRhIGZsb3cuIEkgbmVlZCB0byBicm9hZGVuIHRoZSBzY29wZSBvZiB0aGUgaW52ZXN0aWdhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA4NywiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjM6NTkuMjM3NDMzOTk0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzY5NzY5NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTIxX21jdV9yeF9ldmVudFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NTg2PXZvaWQgbXQ3OTIxX3F1ZXVlX3J4X3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYwNy1cXHRjYXNlIFBLVF9UWVBFX1JYX0VWRU5UOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwODpcXHRcXHRtdDc5MjFfbWN1X3J4X2V2ZW50KGRldiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz0zMzM9bXQ3OTIxX21jdV91bmlfcnhfdW5zb2xpY2l0ZWRfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzozNTA6dm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMzUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTIxOT1pbnQgbXQ3OTIxX21jdV9md19sb2dfMl9ob3N0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4IGN0cmwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIyMDp2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjIxLWludCBtdDc5MjFfbWN1X3NldF9yeGZpbHRlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgZmlmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMzo1OS4zNzQ0MTQ5OTFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTUyNjI5OTY5NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgdGV4dCwgc3RydWN0dXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeTpcblxuKipJbml0aWFsIEFzc2Vzc21lbnQ6IEZvY3VzaW5nIG9uIHRoZSBSZWNlaXZlciBQYXRoKipcblxuT2theSwgc28gd2UncmUgc3RhcnRpbmcgd2l0aCBgbXQ3OTIxX21jdV9yeF9ldmVudGAuIEdvb2QgY2hvaWNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuIEl0J3MgYSByZWFzb25hYmx5IHNwZWNpZmljIHN5bWJvbDsgaXQncyBjbGVhcmx5IHJlbGF0ZWQgdG8gaGFuZGxpbmcgaW5jb21pbmcgZGF0YSBmcm9tIHRoZSBNQ1UgaW4gdGhlIE1UNzkyMS4gVGhhdCBhbG9uZSBzdWdnZXN0cyBhIHBvdGVudGlhbCBob3QtcGF0aCwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBSWCBldmVudHMuIE1DVSBjb21tdW5pY2F0aW9uIGlzIG9mdGVuIHRpbWUtc2Vuc2l0aXZlLCBzbyB0aGlzIGNvdWxkIGJlIGEgYm90dGxlbmVjay5cblxuTm93LCB0aGUgbmF0dXJhbCBmb2xsb3ctdXAgaXMgdG8gdmVyaWZ5IHRoYXQgc3VzcGljaW9uLiBXaGF0IGhhcHBlbnMgZGlyZWN0bHkgYWZ0ZXIgd2UgcHJvY2VzcyB0aGUgUlggZXZlbnQ/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbW1lZGlhdGUgaW1wYWN0LiBXaGVyZSdzIHRoaXMgZGF0YSBnb2luZz8gVGhlcmVmb3JlLCBJIHNob3VsZCBjaGVjayB0aGUgYG10NzkyMV9xdWV1ZV9yeF9za2JgIGZ1bmN0aW9uIHRvIHNlZSB3aGVyZSBpdCBwYXNzZXMgdGhlIHNrX2J1ZmZzLiBVbmRlcnN0YW5kaW5nIHRoaXMgZG93bnN0cmVhbSBwYXRoIHdpbGwgdGVsbCBtZSBpZiB0aGUgYG10NzkyMV9tY3VfcnhfZXZlbnRgIGZ1bmN0aW9uIGlzIGNyaXRpY2FsLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTUwLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjQ6MTQuNjM3NDE0NzFaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNDUzNTA2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MjFfcXVldWVfcnhfc2tiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz01ODQ9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX3J4X2NoZWNrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTg2OnZvaWQgbXQ3OTIxX3F1ZXVlX3J4X3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01ODctXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaW5mbylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYyNi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjI3OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9xdWV1ZV9yeF9za2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTI3Nz1ib29sIG10NzkyMV9yeF9jaGVjayhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjI3ODp2b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjc5LVxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTI3My1cXHRcXHQucnhfY2hlY2sgPSBtdDc5MjFfcnhfY2hlY2ssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6Mjc0OlxcdFxcdC5yeF9za2IgPSBtdDc5MjFfcXVldWVfcnhfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTI3NS1cXHRcXHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzkyeF9yeF9wb2xsX2NvbXBsZXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEwMS1cXHRcXHQudHhfc3RhdHVzX2RhdGEgPSBtdDc5MjFfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jOjEwMjpcXHRcXHQucnhfc2tiID0gbXQ3OTIxX3F1ZXVlX3J4X3NrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtMTAzLVxcdFxcdC5yeF9jaGVjayA9IG10NzkyMV9yeF9jaGVjayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTYyLVxcdFxcdC50eF9zdGF0dXNfZGF0YSA9IG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoxNjM6XFx0XFx0LnJ4X3NrYiA9IG10NzkyMV9xdWV1ZV9yeF9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTY0LVxcdFxcdC5yeF9jaGVjayA9IG10NzkyMV9yeF9jaGVjayxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjQ6MTQuOTYxOTUzNTYzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MzAzMDgxODgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTWVtb3J5IExlYWsgRml4KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRhcmdldHMgdGhlIGByeF9za2JgIGNhbGxiYWNrIHdpdGhpbiB0aGUgZHJpdmVyLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBpcyBnb2luZyB0byBiZSBhIGtleSBmdW5jdGlvbiB0byB6ZXJvIGluIG9uLiBUaGUgZGVzY3JpcHRpb24gbWVudGlvbnMgYSBtZW1vcnkgbGVhaywgc3BlY2lmaWNhbGx5IHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzLiBUaGF0J3MgYSBnb29kIGJyZWFkY3J1bWI7IGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVsYXRlZCB0byBtZW1vcnkgbWFuYWdlbWVudCBhbHdheXMgZGVzZXJ2ZXMgY2FyZWZ1bCBzY3J1dGlueS5cblxuU2luY2UgYE1UNzkyMVVgIGlzIGEgVVNCIGRyaXZlciwgdGhlIGZhY3QgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgdmlhIFVTQiBlbXVsYXRpb24gdXNpbmcgYGR1bW15X2hjZGAgaXMgaW1wb3J0YW50LiBUaGlzIG1lYW5zIEkgY2FuIGxpa2VseSByZXByb2R1Y2UgdGhpcyBzY2VuYXJpbyBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQsIHNpbXBsaWZ5aW5nIG15IHRlc3RpbmcuXG5cbkdpdmVuIGFsbCBvZiB0aGlzLCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuIEkgbmVlZCB0byBlbnN1cmUgdGhpcyBmaXggaXMgcm9idXN0IHVuZGVyIHZhcmlvdXMgY29uZGl0aW9ucy4gVGhlIGBGb2N1c1N5bWJvbHNgIHdpbGwgZGVmaW5pdGVseSBpbmNsdWRlIGBcIm10NzkyMV9tY3VfcnhfZXZlbnRcImAsIGJlY2F1c2UgdGhhdCdzIHRoZSBjb3JlIG9mIHRoZSBjYWxsYmFjay4gQW5kIGZpbmFsbHksIEknbGwgc2V0IGBFbmFibGVDb25maWdzPVtcIk1UNzkyMVVcIl1gIHRvIGxpbWl0IHRoZSB0ZXN0cyB0byB0aGUgVVNCLXNwZWNpZmljIGRyaXZlci4gVGhpcyBzaG91bGQga2VlcCB0aGUgZnV6emluZyBmb2N1c2VkIG9uIHRoZSByZWxldmFudCBjb2RlIHBhdGguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczNjUsIk91dHB1dFRva2VucyI6MTIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjI1OjAzLjI2NTAzNzM5NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMDA2NTMwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyMV9tY3VfcnhfZXZlbnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBtdDc5MjEgd2lyZWxlc3MgZHJpdmVyIHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzIGR1cmluZyBNQ1UgUlggZXZlbnQgcHJvY2Vzc2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAoTVQ3OTIxVSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjFVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3OTIxX21jdV9yeF9ldmVudFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIG10NzkyMSB3aXJlbGVzcyBkcml2ZXIgd2hlbiBgc2tiX2xpbmVhcml6ZWAgZmFpbHMgZHVyaW5nIE1DVSBSWCBldmVudCBwcm9jZXNzaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChNVDc5MjFVKSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfv9jt[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-16 22:00:36 +0000 UTC FinishedAt: 2026-07-16 22:25:05 +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": "37e2f878a7a660a216cc7a60459995fefd150f25", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "37e2f878a7a660a216cc7a60459995fefd150f25", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MT7921U" ], "series_id": "fd28c83d-5a93-487e-be43-a91e8e26f39a" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "mt7921_mcu_rx_event" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01UNzkyMVUmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDttdDc5MjFfbWN1X3J4X2V2ZW50JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIG10NzkyMSB3aXJlbGVzcyBkcml2ZXIgd2hlbiBgc2tiX2xpbmVhcml6ZWAgZmFpbHMgZHVyaW5nIE1DVSBSWCBldmVudCBwcm9jZXNzaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChNVDc5MjFVKSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIyPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgYjY0YjdlNmVhNTc1ZjczMzQyMTgyZDQwZmRhNWZkMDgwODI4NThmOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDIyOjIyOjM1IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNcbmluZGV4IDI1Yjk0MzcyNTBmN2JhLi5mYjE4ZDNiNGUyN2JhZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuY1xuQEAgLTM1MSw4ICYjNDM7MzUxLDEwIEBAIHZvaWQgbXQ3OTIxX21jdV9yeF9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxuIHtcbiBcdHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqcnhkO1xuIFxuLVx0aWYgKHNrYl9saW5lYXJpemUoc2tiKSlcbiYjNDM7XHRpZiAoc2tiX2xpbmVhcml6ZShza2IpKSB7XG4mIzQzO1x0XHRkZXZfa2ZyZWVfc2tiKHNrYik7XG4gXHRcdHJldHVybjtcbiYjNDM7XHR9XG4gXG4gXHRyeGQgPSAoc3RydWN0IG10NzZfY29ubmFjMl9tY3VfcnhkICopc2tiLVx1MDAzZWRhdGE7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MjI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyMV9tY3VfcnhfZXZlbnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgbXQ3OTIxIHdpcmVsZXNzIGRyaXZlciB3aGVuIGBza2JfbGluZWFyaXplYCBmYWlscyBkdXJpbmcgTUNVIFJYIGV2ZW50IHByb2Nlc3NpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKE1UNzkyMVUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15X2hjZCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGI2NGI3ZTZlYTU3NWY3MzM0MjE4MmQ0MGZkYTVmZDA4MDgyODU4ZjgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAxNiAyMjoyMjozNSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMKaW5kZXggMjViOTQzNzI1MGY3YmEuLmZiMThkM2I0ZTI3YmFkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYwpAQCAtMzUxLDggJiM0MzszNTEsMTAgQEAgdm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpCiB7CiAJc3RydWN0IG10NzZfY29ubmFjMl9tY3VfcnhkICpyeGQ7CiAKLQlpZiAoc2tiX2xpbmVhcml6ZShza2IpKQomIzQzOwlpZiAoc2tiX2xpbmVhcml6ZShza2IpKSB7CiYjNDM7CQlkZXZfa2ZyZWVfc2tiKHNrYik7CiAJCXJldHVybjsKJiM0MzsJfQogCiAJcnhkID0gKHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqKXNrYi0mZ3Q7ZGF0YTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIzCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMjMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIGFkZGluZyBgZGV2X2tmcmVlX3NrYihza2IpO2Agd2hlbiBgc2tiX2xpbmVhcml6ZShza2IpYCBmYWlscyB3aXRoaW4gYG10NzkyMV9tY3VfcnhfZXZlbnRgLiBUaGlzIGxvb2tzIGxpa2UgYSBzb2xpZCBmdW5jdGlvbmFsIGZpeDsgaXQmIzM5O3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBtZW1vcnkgbGVhay4gQnV0IG15IGltbWVkaWF0ZSB0aG91Z2h0IGlzOiBjYW4gSSBhY3R1YWxseSAqc2VlKiB0aGlzIGluIGFjdGlvbiwgZXNwZWNpYWxseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBUaGlzIGlzIGEgTWVkaWF0ZWsgTVQ3OTIxIHdpcmVsZXNzIGRyaXZlciwgcGFydCBvZiB0aGUgYG10NzZgIGRyaXZlciBmcmFtZXdvcmsuCgpOb3csIGBtdDc2YCBpcyB0eXBpY2FsbHkgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIuIFRoYXQgYnJpbmdzIHVwIHRoZSBlbXVsYXRpb24gcXVlc3Rpb24uIFdpcmVsZXNzIGRyaXZlcnMgYXJlIHVzdWFsbHkgdG91Z2ggdG8gZW11bGF0ZSB1bmxlc3MgeW91IGhhdmUgc3BlY2lmaWMgc29mdHdhcmUgc3VwcG9ydCBvciwgcG90ZW50aWFsbHksIGlmIGl0JiMzOTtzIGEgVVNCIGRldmljZSB0aGF0IGNvdWxkIGJlIGZha2VkIHVzaW5nIGEgVVNCIGdhZGdldCBvciBhIGR1bW15IGhvc3QgY29udHJvbGxlci4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgdG8gZmlndXJlIG91dCBpZiBgbXQ3OTIxYCB1c2VzIFVTQiwgUENJZSwgb3IgU0RJTy4gSSYjMzk7bGwgc2VhcmNoIHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL2AgZGlyZWN0b3J5IHRvIGdldCBhIGJldHRlciBzZW5zZSBvZiB0aGUgaGFyZHdhcmUgaW50ZXJmYWNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2RlYnVnZnMuYyYjMzQ7LAogICAgJiMzNDtpbml0LmMmIzM0OywKICAgICYjMzQ7bWFjLmMmIzM0OywKICAgICYjMzQ7bWFpbi5jJiMzNDssCiAgICAmIzM0O21jdS5jJiMzNDssCiAgICAmIzM0O21jdS5oJiMzNDssCiAgICAmIzM0O210NzkyMS5oJiMzNDssCiAgICAmIzM0O3BjaS5jJiMzNDssCiAgICAmIzM0O3BjaV9tYWMuYyYjMzQ7LAogICAgJiMzNDtwY2lfbWN1LmMmIzM0OywKICAgICYjMzQ7cmVnZC5jJiMzNDssCiAgICAmIzM0O3JlZ2QuaCYjMzQ7LAogICAgJiMzNDtyZWdzLmgmIzM0OywKICAgICYjMzQ7c2Rpby5jJiMzNDssCiAgICAmIzM0O3NkaW9fbWFjLmMmIzM0OywKICAgICYjMzQ7c2Rpb19tY3UuYyYjMzQ7LAogICAgJiMzNDt0ZXN0bW9kZS5jJiMzNDssCiAgICAmIzM0O3VzYi5jJiMzNDsKICBdLAogICYjMzQ7U3ViZGlycyYjMzQ7OiBudWxsCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjIxCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogODgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBTdHJhdGVneSBBc3Nlc3NtZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kIGltbWVkaWF0ZWx5IEkgc2VlIGl0IGluY2x1ZGVzIGB1c2IuY2AsIGBwY2kuY2AsIGFuZCBgc2Rpby5jYC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgYmVjYXVzZSB0aGUgcHJlc2VuY2Ugb2YgYHVzYi5jYCBvcGVucyB1cCBhIHdob2xlIGF2ZW51ZSBmb3IgZnV6emluZyB2aWEgVVNCIGVtdWxhdGlvbi4gV2UgY291bGQgbGV2ZXJhZ2Ugc29tZXRoaW5nIGxpa2UgYGR1bW15X2hjZGAgdG8gaW5qZWN0IGFuZCBvYnNlcnZlIGhvdyB0aGUgY29kZSByZXNwb25kcyB0byB2YXJpb3VzIFVTQiBwcm90b2NvbCBkZXZpYXRpb25zLiBUaGF0JiMzOTtzIGRlZmluaXRlbHkgd29ydGggcHVyc3VpbmcuCgpOb3csIGxldCYjMzk7cyB6ZXJvIGluIG9uIGEgcG90ZW50aWFsIHRhcmdldC4gQmFzZWQgb24gdGhlIGxpa2VseSBmdW5jdGlvbmFsaXR5IGFuZCB0aGUgaW5jbHVzaW9uIG9mIHRob3NlIGRyaXZlcnMsIEkmIzM5O20gdGhpbmtpbmcgd2Ugc2hvdWxkIGV4YW1pbmUgdGhlIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jYC4gVGhpcyBsb29rcyBsaWtlIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBhbmFseXppbmcgaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBpbmNvbWluZyBNQ1UgZXZlbnRzLCB3aGljaCBjb3VsZCBiZSBhIHNvdXJjZSBvZiB2dWxuZXJhYmlsaXRpZXMuIEkmIzM5O2xsIHN0YXJ0IHRoZXJlIGFuZCBzZWUgd2hhdCB3ZSBjYW4gZmluZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MjFfbWN1X3J4X2V2ZW50JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU4Nj12b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjA3LVx0Y2FzZSBQS1RfVFlQRV9SWF9FVkVOVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwODpcdFx0bXQ3OTIxX21jdV9yeF9ldmVudChkZXYsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDktXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTMzMz1tdDc5MjFfbWN1X3VuaV9yeF91bnNvbGljaXRlZF9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjM1MDp2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjE5PWludCBtdDc5MjFfbWN1X2Z3X2xvZ18yX2hvc3Qoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggY3RybCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyMjA6dm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjIxLWludCBtdDc5MjFfbWN1X3NldF9yeGZpbHRlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgZmlmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NDMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiA3MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBvdGVudGlhbCBmb3IgRnV6emluZyB0aGUgbXQ3OTIxIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYG10NzkyMV9tY3VfcnhfZXZlbnRgLiBJdCBsb29rcyBsaWtlIHRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIGZyb20gYG10NzkyMV9xdWV1ZV9yeF9za2JgLCB3aGljaCBJJiMzOTttIHByZXR0eSBzdXJlIGlzIGNhbGxlZCB3aGVuZXZlciB0aGUgZHJpdmVyIHJlY2VpdmVzIGEgcGFja2V0LiBHaXZlbiB0aGF0IGBtdDc5MjFgIGlzIGEgVVNCIGRldmljZSwgdGhhdCYjMzk7cyBhIHByaW1lIHRhcmdldCBmb3IgZnV6emluZy4gV2UgY2FuIGRlZmluaXRlbHkgZXhwbG9yZSBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzIHRoZXJlLiBCZWZvcmUgZGl2aW5nIGRlZXBlciwgSSBzaG91bGQgY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucyBmb3IgYG10NzkyMWAuIFRoYXQgd2lsbCBnaXZlIG1lIGEgZ29vZCBoYW5kbGUgb24gd2hhdOKAmXMgZW5hYmxlZCBhbmQgZGlzYWJsZWQgYW5kIG1pZ2h0IHBvaW50IHRvIHNwZWNpZmljIGFyZWFzIG9mIGludGVyZXN0IGZvciBhIGZ1enppbmcgY2FtcGFpZ24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1UNzkyMSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6Mjpjb25maWcgTVQ3OTIxX0NPTU1PTlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0zLVx0dHJpc3RhdGVcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyMUVcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoxNzpjb25maWcgTVQ3OTIxU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0xOC1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZzoyODpjb25maWcgTVQ3OTIxVVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyMzYKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipFbmFibGluZyBNVDc5MjFVIC0gQ29uc2lkZXJhdGlvbnMgYW5kIEltcGxpY2F0aW9ucyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB3ZSBuZWVkIHRvIGdldCBgTVQ3OTIxVWAgZW5hYmxlZC4gVGhhdCBzZWVtcyBsaWtlIHRoZSBsb2dpY2FsIG5leHQgc3RlcCBnaXZlbiB0aGUgY29udGV4dC4gTm93LCBJICpzdXNwZWN0KiB0aGF0IGVuYWJsaW5nIGBNVDc5MjFVYCB3aWxsIGF1dG9tYXRpY2FsbHkgcHVsbCBpbiBgTVQ3OTIxX0NPTU1PTmAgZHVlIHRvIHRoZSB3YXkgdGhlc2UgdGhpbmdzIG9mdGVuIHdvcmsgd2l0aCBkZXBlbmRlbmNpZXMsIGJ1dCBJIGNhbiYjMzk7dCBqdXN0IGFzc3VtZSB0aGF0LiBXZSYjMzk7cmUgZGVhbGluZyB3aXRoIHBvdGVudGlhbGx5IGRlbGljYXRlIGNvbmZpZ3VyYXRpb25zIGhlcmUsIGFuZCBhc3N1bXB0aW9ucyBhcmUgdGhlIG1vdGhlciBvZiBhbGwuLi4gd2VsbCwgeW91IGtub3cuIEkmIzM5O20gZ29pbmcgdG8gaGF2ZSB0byB2ZXJpZnkgd2hldGhlciB0aGUgYE1UNzkyMV9DT01NT05gIGNvbmZpZ3VyYXRpb24gaXMgYXV0b21hdGljYWxseSBzZWxlY3RlZCB3aGVuIHdlIGVuYWJsZSBgTVQ3OTIxVWAuIEl0JiMzOTtzIGEgcXVpY2sgY2hlY2ssIGJ1dCBhIG5lY2Vzc2FyeSBvbmUgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wbGV0ZSBhbmQgZnVuY3Rpb25hbCBidWlsZCBlbnZpcm9ubWVudC4gV2UgY2FuJiMzOTt0IGFmZm9yZCBhbnkgZ290Y2hhcyBsYXRlciBkb3duIHRoZSBsaW5lLiBJdCYjMzk7cyBhYm91dCBlbnN1cmluZyBhIHNvbGlkLCBwcmVkaWN0YWJsZSBzdGF0ZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjI6MjM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0Y29uZmlnIE1UNzkyMV9DT01NT05cbiAgIDM6XHRcdHRyaXN0YXRlXG4gICA0Olx0XHRzZWxlY3QgTVQ3OTJ4X0xJQlxuICAgNTpcdFx0c2VsZWN0IFdBTlRfREVWX0NPUkVEVU1QXG4gICA2Olx0XG4gICA3Olx0Y29uZmlnIE1UNzkyMUVcbiAgIDg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcJiMzNDtcbiAgIDk6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4gIDEwOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDExOlx0XHRkZXBlbmRzIG9uIFBDSVxuICAxMjpcdFx0aGVscFxuICAxMzpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxRSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDE2Olx0XG4gIDE3Olx0Y29uZmlnIE1UNzkyMVNcbiAgMTg6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcJiMzNDtcbiAgMTk6XHRcdHNlbGVjdCBNVDc2X1NESU9cbiAgMjA6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4gIDIxOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDIyOlx0XHRkZXBlbmRzIG9uIE1NQ1xuICAyMzpcdFx0aGVscFxuICAyNDpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxUyA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXG4gIDI1Olx0XG4gIDI2Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4gIDI3Olx0XG4gIDI4Olx0Y29uZmlnIE1UNzkyMVVcbiAgMjk6XHRcdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UNzkyMVUgKFVTQikgc3VwcG9ydFwmIzM0O1xuICAzMDpcdFx0c2VsZWN0IE1UNzkyeF9VU0JcbiAgMzE6XHRcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXG4gIDMyOlx0XHRkZXBlbmRzIG9uIE1BQzgwMjExXG4gIDMzOlx0XHRkZXBlbmRzIG9uIFVTQlxuICAzNDpcdFx0aGVscFxuICAzNTpcdFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxVSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXG4gIDM2Olx0XG4gIDM3Olx0XHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjIzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwODcKCQkJCQkJCW91dHB1dDogNTEKCQkJCQkJCXRob3VnaHRzOiA1NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBxdWljayB0YWtlIG9uIHdoYXQgSSYjMzk7bSB0aGlua2luZywga2VlcGluZyBpdCBjb25jaXNlIGFuZCBmb2N1c2luZyBvbiB0aGUgY29yZSBwcm9ibGVtOgoKKipUYXJnZXRpbmcgdGhlIE1UNzkyMVUgYW5kIEFzc29jaWF0ZWQgTUNVIEZ1bmN0aW9ucyoqCgpSaWdodCwgc28gaXQgbG9va3MgbGlrZSB0aGUgYE1UNzkyMVVgIGlzIHRoZSBzcGVjaWZpYyBjb21wb25lbnQgSSBuZWVkIHRvIGJlIGVuYWJsaW5nIG9yIGludmVzdGlnYXRpbmcuIFRoZSBpbml0aWFsIHJlc2VhcmNoIGhhcyBuYXJyb3dlZCB0aGUgZm9jdXMgdG8gdGhhdCBkZXZpY2UuIEkmIzM5O3ZlIG5vdGVkIHRoYXQgdGhlIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBmdW5jdGlvbiBpcyB0aGUgb25lIHRvIGluc3BlY3QgZmlyc3QgYW5kIGZvcmVtb3N0LCBhbmQgaXQgbGl2ZXMgd2l0aGluIHRoZSBgbWN1LmNgIGZpbGUg4oCTIHRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBvdGhlciByZWxhdGVkIGZ1bmN0aW9ucywgcGVyaGFwcyBoYW5kbGVycyBvciBjYWxsYmFja3MsIHdpdGhpbiB0aGUgYnJvYWRlciBgbWN1LmNgIG9yIGVsc2V3aGVyZSB0aGF0IG1pZ2h0IGJlIGNyaXRpY2FsIHRvIHVuZGVyc3RhbmRpbmcgdGhlIGNvbXBsZXRlIGRhdGEgZmxvdy4gSSBuZWVkIHRvIGJyb2FkZW4gdGhlIHNjb3BlIG9mIHRoZSBpbnZlc3RpZ2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5MjFfbWN1X3J4X2V2ZW50JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jPTU4Nj12b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjA3LVx0Y2FzZSBQS1RfVFlQRV9SWF9FVkVOVDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwODpcdFx0bXQ3OTIxX21jdV9yeF9ldmVudChkZXYsIHNrYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDktXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jPTMzMz1tdDc5MjFfbWN1X3VuaV9yeF91bnNvbGljaXRlZF9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jOjM1MDp2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM1MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmg9MjE5PWludCBtdDc5MjFfbWN1X2Z3X2xvZ18yX2hvc3Qoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgdTggY3RybCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaDoyMjA6dm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjIxLWludCBtdDc5MjFfbWN1X3NldF9yeGZpbHRlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgZmlmLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTUwCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhlIHByb3ZpZGVkIHRleHQsIHN0cnVjdHVyZWQgYXMgYSBmaXJzdC1wZXJzb24gZXhwZXJ0IHN1bW1hcnk6CgoqKkluaXRpYWwgQXNzZXNzbWVudDogRm9jdXNpbmcgb24gdGhlIFJlY2VpdmVyIFBhdGgqKgoKT2theSwgc28gd2UmIzM5O3JlIHN0YXJ0aW5nIHdpdGggYG10NzkyMV9tY3VfcnhfZXZlbnRgLiBHb29kIGNob2ljZSBhcyBhIHN0YXJ0aW5nIHBvaW50LiBJdCYjMzk7cyBhIHJlYXNvbmFibHkgc3BlY2lmaWMgc3ltYm9sOyBpdCYjMzk7cyBjbGVhcmx5IHJlbGF0ZWQgdG8gaGFuZGxpbmcgaW5jb21pbmcgZGF0YSBmcm9tIHRoZSBNQ1UgaW4gdGhlIE1UNzkyMS4gVGhhdCBhbG9uZSBzdWdnZXN0cyBhIHBvdGVudGlhbCBob3QtcGF0aCwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBSWCBldmVudHMuIE1DVSBjb21tdW5pY2F0aW9uIGlzIG9mdGVuIHRpbWUtc2Vuc2l0aXZlLCBzbyB0aGlzIGNvdWxkIGJlIGEgYm90dGxlbmVjay4KCk5vdywgdGhlIG5hdHVyYWwgZm9sbG93LXVwIGlzIHRvIHZlcmlmeSB0aGF0IHN1c3BpY2lvbi4gV2hhdCBoYXBwZW5zIGRpcmVjdGx5IGFmdGVyIHdlIHByb2Nlc3MgdGhlIFJYIGV2ZW50PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaW1tZWRpYXRlIGltcGFjdC4gV2hlcmUmIzM5O3MgdGhpcyBkYXRhIGdvaW5nPyBUaGVyZWZvcmUsIEkgc2hvdWxkIGNoZWNrIHRoZSBgbXQ3OTIxX3F1ZXVlX3J4X3NrYmAgZnVuY3Rpb24gdG8gc2VlIHdoZXJlIGl0IHBhc3NlcyB0aGUgc2tfYnVmZnMuIFVuZGVyc3RhbmRpbmcgdGhpcyBkb3duc3RyZWFtIHBhdGggd2lsbCB0ZWxsIG1lIGlmIHRoZSBgbXQ3OTIxX21jdV9yeF9ldmVudGAgZnVuY3Rpb24gaXMgY3JpdGljYWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjI0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzkyMV9xdWV1ZV9yeF9za2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NTg0PUVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9yeF9jaGVjayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01ODUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYzo1ODY6dm9pZCBtdDc5MjFfcXVldWVfcnhfc2tiKHN0cnVjdCBtdDc2X2RldiAqbWRldiwgZW51bSBtdDc2X3J4cV9pZCBxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNTg3LVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmMtNjI2LX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYyNzpFWFBPUlRfU1lNQk9MX0dQTChtdDc5MjFfcXVldWVfcnhfc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYyOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaD0yNzc9Ym9vbCBtdDc5MjFfcnhfY2hlY2soc3RydWN0IG10NzZfZGV2ICptZGV2LCB2b2lkICpkYXRhLCBpbnQgbGVuKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjI3ODp2b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tdDc5MjEuaC0yNzktXHRcdFx0IHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaW5mbyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy0yNzMtXHRcdC5yeF9jaGVjayA9IG10NzkyMV9yeF9jaGVjayxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jOjI3NDpcdFx0LnJ4X3NrYiA9IG10NzkyMV9xdWV1ZV9yeF9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9wY2kuYy0yNzUtXHRcdC5yeF9wb2xsX2NvbXBsZXRlID0gbXQ3OTJ4X3J4X3BvbGxfY29tcGxldGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYy0xMDEtXHRcdC50eF9zdGF0dXNfZGF0YSA9IG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3NkaW8uYzoxMDI6XHRcdC5yeF9za2IgPSBtdDc5MjFfcXVldWVfcnhfc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEwMy1cdFx0LnJ4X2NoZWNrID0gbXQ3OTIxX3J4X2NoZWNrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTE2Mi1cdFx0LnR4X3N0YXR1c19kYXRhID0gbXQ3OTIxX3VzYl9zZGlvX3R4X3N0YXR1c19kYXRhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmM6MTYzOlx0XHQucnhfc2tiID0gbXQ3OTIxX3F1ZXVlX3J4X3NrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jLTE2NC1cdFx0LnJ4X2NoZWNrID0gbXQ3OTIxX3J4X2NoZWNrLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMjoyNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MzY1CgkJCQkJCQlvdXRwdXQ6IDEyMwoJCQkJCQkJdGhvdWdodHM6IDEyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1lbW9yeSBMZWFrIEZpeCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRhcmdldHMgdGhlIGByeF9za2JgIGNhbGxiYWNrIHdpdGhpbiB0aGUgZHJpdmVyLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBpcyBnb2luZyB0byBiZSBhIGtleSBmdW5jdGlvbiB0byB6ZXJvIGluIG9uLiBUaGUgZGVzY3JpcHRpb24gbWVudGlvbnMgYSBtZW1vcnkgbGVhaywgc3BlY2lmaWNhbGx5IHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzLiBUaGF0JiMzOTtzIGEgZ29vZCBicmVhZGNydW1iOyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gbWVtb3J5IG1hbmFnZW1lbnQgYWx3YXlzIGRlc2VydmVzIGNhcmVmdWwgc2NydXRpbnkuCgpTaW5jZSBgTVQ3OTIxVWAgaXMgYSBVU0IgZHJpdmVyLCB0aGUgZmFjdCB0aGlzIHBhdGNoIGlzIHJlYWNoYWJsZSB2aWEgVVNCIGVtdWxhdGlvbiB1c2luZyBgZHVtbXlfaGNkYCBpcyBpbXBvcnRhbnQuIFRoaXMgbWVhbnMgSSBjYW4gbGlrZWx5IHJlcHJvZHVjZSB0aGlzIHNjZW5hcmlvIGluIGEgY29udHJvbGxlZCBlbnZpcm9ubWVudCwgc2ltcGxpZnlpbmcgbXkgdGVzdGluZy4KCkdpdmVuIGFsbCBvZiB0aGlzLCBJJiMzOTttIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPXRydWVgLiBJIG5lZWQgdG8gZW5zdXJlIHRoaXMgZml4IGlzIHJvYnVzdCB1bmRlciB2YXJpb3VzIGNvbmRpdGlvbnMuIFRoZSBgRm9jdXNTeW1ib2xzYCB3aWxsIGRlZmluaXRlbHkgaW5jbHVkZSBgJiMzNDttdDc5MjFfbWN1X3J4X2V2ZW50JiMzNDtgLCBiZWNhdXNlIHRoYXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIGNhbGxiYWNrLiBBbmQgZmluYWxseSwgSSYjMzk7bGwgc2V0IGBFbmFibGVDb25maWdzPVsmIzM0O01UNzkyMVUmIzM0O11gIHRvIGxpbWl0IHRoZSB0ZXN0cyB0byB0aGUgVVNCLXNwZWNpZmljIGRyaXZlci4gVGhpcyBzaG91bGQga2VlcCB0aGUgZnV6emluZyBmb2N1c2VkIG9uIHRoZSByZWxldmFudCBjb2RlIHBhdGguCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIyOjI1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNVDc5MjFVJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bXQ3OTIxX21jdV9yeF9ldmVudCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBtdDc5MjEgd2lyZWxlc3MgZHJpdmVyIHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzIGR1cmluZyBNQ1UgUlggZXZlbnQgcHJvY2Vzc2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAoTVQ3OTIxVSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkKS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7TVQ3OTIxVSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O210NzkyMV9tY3VfcnhfZXZlbnQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgbXQ3OTIxIHdpcmVsZXNzIGRyaXZlciB3aGVuIGBza2JfbGluZWFyaXplYCBmYWlscyBkdXJpbmcgTUNVIFJYIGV2ZW50IHByb2Nlc3NpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKE1UNzkyMVUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15X2hjZCkuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMjozNy4yNjU2MDgwNjJaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDYxMjk1MTI1NjAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyMV9tY3VfcnhfZXZlbnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBtdDc5MjEgd2lyZWxlc3MgZHJpdmVyIHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzIGR1cmluZyBNQ1UgUlggZXZlbnQgcHJvY2Vzc2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAoTVQ3OTIxVSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjI6MzcuMjY1NjEyMjMxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU1NjQ4NzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBiNjRiN2U2ZWE1NzVmNzMzNDIxODJkNDBmZGE1ZmQwODA4Mjg1OGY4XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBUaHUgSnVsIDE2IDIyOjIyOjM1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNcXG5pbmRleCAyNWI5NDM3MjUwZjdiYS4uZmIxOGQzYjRlMjdiYWQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuY1xcbkBAIC0zNTEsOCArMzUxLDEwIEBAIHZvaWQgbXQ3OTIxX21jdV9yeF9ldmVudChzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbiB7XFxuIFxcdHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqcnhkO1xcbiBcXG4tXFx0aWYgKHNrYl9saW5lYXJpemUoc2tiKSlcXG4rXFx0aWYgKHNrYl9saW5lYXJpemUoc2tiKSkge1xcbitcXHRcXHRkZXZfa2ZyZWVfc2tiKHNrYik7XFxuIFxcdFxcdHJldHVybjtcXG4rXFx0fVxcbiBcXG4gXFx0cnhkID0gKHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqKXNrYi1cXHUwMDNlZGF0YTtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjIyOjM3Ljg2MTcxMDY3OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ1NTMzMzk2ODMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1UNzkyMVVcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJtdDc5MjFfbWN1X3J4X2V2ZW50XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggZml4ZXMgYSBtZW1vcnkgbGVhayBpbiB0aGUgbXQ3OTIxIHdpcmVsZXNzIGRyaXZlciB3aGVuIGBza2JfbGluZWFyaXplYCBmYWlscyBkdXJpbmcgTUNVIFJYIGV2ZW50IHByb2Nlc3NpbmcuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiByZWFjaGFibGUgY29yZSBkcml2ZXIgbG9naWMuIFRoZSBkcml2ZXIgaGFzIGEgVVNCIHZhcmlhbnQgKE1UNzkyMVUpIHdoaWNoIGNhbiBiZSBmdXp6ZWQgdmlhIFVTQiBlbXVsYXRpb24gKGR1bW15X2hjZCkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjY0YjdlNmVhNTc1ZjczMzQyMTgyZDQwZmRhNWZkMDgwODI4NThmOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDIyOjIyOjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuY1xuaW5kZXggMjViOTQzNzI1MGY3YmEuLmZiMThkM2I0ZTI3YmFkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jXG5AQCAtMzUxLDggKzM1MSwxMCBAQCB2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbiB7XG4gXHRzdHJ1Y3QgbXQ3Nl9jb25uYWMyX21jdV9yeGQgKnJ4ZDtcbiBcbi1cdGlmIChza2JfbGluZWFyaXplKHNrYikpXG4rXHRpZiAoc2tiX2xpbmVhcml6ZShza2IpKSB7XG4rXHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbiBcdFx0cmV0dXJuO1xuK1x0fVxuIFxuIFx0cnhkID0gKHN0cnVjdCBtdDc2X2Nvbm5hYzJfbWN1X3J4ZCAqKXNrYi1cdTAwM2VkYXRhO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjI6MzcuODYxNzExOTk4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODM2Mzk5MTk5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuY2AuIFNwZWNpZmljYWxseSwgaXQncyBhZGRpbmcgYGRldl9rZnJlZV9za2Ioc2tiKTtgIHdoZW4gYHNrYl9saW5lYXJpemUoc2tiKWAgZmFpbHMgd2l0aGluIGBtdDc5MjFfbWN1X3J4X2V2ZW50YC4gVGhpcyBsb29rcyBsaWtlIGEgc29saWQgZnVuY3Rpb25hbCBmaXg7IGl0J3MgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBtZW1vcnkgbGVhay4gQnV0IG15IGltbWVkaWF0ZSB0aG91Z2h0IGlzOiBjYW4gSSBhY3R1YWxseSAqc2VlKiB0aGlzIGluIGFjdGlvbiwgZXNwZWNpYWxseSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBUaGlzIGlzIGEgTWVkaWF0ZWsgTVQ3OTIxIHdpcmVsZXNzIGRyaXZlciwgcGFydCBvZiB0aGUgYG10NzZgIGRyaXZlciBmcmFtZXdvcmsuXG5cbk5vdywgYG10NzZgIGlzIHR5cGljYWxseSBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlci4gVGhhdCBicmluZ3MgdXAgdGhlIGVtdWxhdGlvbiBxdWVzdGlvbi4gV2lyZWxlc3MgZHJpdmVycyBhcmUgdXN1YWxseSB0b3VnaCB0byBlbXVsYXRlIHVubGVzcyB5b3UgaGF2ZSBzcGVjaWZpYyBzb2Z0d2FyZSBzdXBwb3J0IG9yLCBwb3RlbnRpYWxseSwgaWYgaXQncyBhIFVTQiBkZXZpY2UgdGhhdCBjb3VsZCBiZSBmYWtlZCB1c2luZyBhIFVTQiBnYWRnZXQgb3IgYSBkdW1teSBob3N0IGNvbnRyb2xsZXIuIExldCdzIGRpZyBkZWVwZXIgdG8gZmlndXJlIG91dCBpZiBgbXQ3OTIxYCB1c2VzIFVTQiwgUENJZSwgb3IgU0RJTy4gSSdsbCBzZWFyY2ggd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvYCBkaXJlY3RvcnkgdG8gZ2V0IGEgYmV0dGVyIHNlbnNlIG9mIHRoZSBoYXJkd2FyZSBpbnRlcmZhY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MjMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMjo0Ni4yMjU3MDYxOTdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEyNDMyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJkZWJ1Z2ZzLmNcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1haW4uY1wiLFxuICAgIFwibWN1LmNcIixcbiAgICBcIm1jdS5oXCIsXG4gICAgXCJtdDc5MjEuaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInBjaV9tYWMuY1wiLFxuICAgIFwicGNpX21jdS5jXCIsXG4gICAgXCJyZWdkLmNcIixcbiAgICBcInJlZ2QuaFwiLFxuICAgIFwicmVncy5oXCIsXG4gICAgXCJzZGlvLmNcIixcbiAgICBcInNkaW9fbWFjLmNcIixcbiAgICBcInNkaW9fbWN1LmNcIixcbiAgICBcInRlc3Rtb2RlLmNcIixcbiAgICBcInVzYi5jXCJcbiAgXSxcbiAgXCJTdWJkaXJzXCI6IG51bGxcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjIyOjQ2LjIyNTgzMzM5N1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ0NDI4NTk3Nzg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgU3RyYXRlZ3kgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgY29kZSBhbmQgaW1tZWRpYXRlbHkgSSBzZWUgaXQgaW5jbHVkZXMgYHVzYi5jYCwgYHBjaS5jYCwgYW5kIGBzZGlvLmNgLiBUaGF0J3MgaW50ZXJlc3RpbmcsIGJlY2F1c2UgdGhlIHByZXNlbmNlIG9mIGB1c2IuY2Agb3BlbnMgdXAgYSB3aG9sZSBhdmVudWUgZm9yIGZ1enppbmcgdmlhIFVTQiBlbXVsYXRpb24uIFdlIGNvdWxkIGxldmVyYWdlIHNvbWV0aGluZyBsaWtlIGBkdW1teV9oY2RgIHRvIGluamVjdCBhbmQgb2JzZXJ2ZSBob3cgdGhlIGNvZGUgcmVzcG9uZHMgdG8gdmFyaW91cyBVU0IgcHJvdG9jb2wgZGV2aWF0aW9ucy4gVGhhdCdzIGRlZmluaXRlbHkgd29ydGggcHVyc3VpbmcuXG5cbk5vdywgbGV0J3MgemVybyBpbiBvbiBhIHBvdGVudGlhbCB0YXJnZXQuIEJhc2VkIG9uIHRoZSBsaWtlbHkgZnVuY3Rpb25hbGl0eSBhbmQgdGhlIGluY2x1c2lvbiBvZiB0aG9zZSBkcml2ZXJzLCBJJ20gdGhpbmtpbmcgd2Ugc2hvdWxkIGV4YW1pbmUgdGhlIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBmdW5jdGlvbiB3aXRoaW4gYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jYC4gVGhpcyBsb29rcyBsaWtlIGEgcHJpbWUgY2FuZGlkYXRlIGZvciBhbmFseXppbmcgaG93IHRoZSBkcml2ZXIgaGFuZGxlcyBpbmNvbWluZyBNQ1UgZXZlbnRzLCB3aGljaCBjb3VsZCBiZSBhIHNvdXJjZSBvZiB2dWxuZXJhYmlsaXRpZXMuIEknbGwgc3RhcnQgdGhlcmUgYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjIxLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODgsIlRvb2xDYWxscyI6WyJjb2Rlc2VhcmNoLWRpci1pbmRleCJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjIzOjMwLjY1NDQzMzMxNFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MTU5MDc4MzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTIxX21jdV9yeF9ldmVudFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NTg2PXZvaWQgbXQ3OTIxX3F1ZXVlX3J4X3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYwNy1cXHRjYXNlIFBLVF9UWVBFX1JYX0VWRU5UOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwODpcXHRcXHRtdDc5MjFfbWN1X3J4X2V2ZW50KGRldiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz0zMzM9bXQ3OTIxX21jdV91bmlfcnhfdW5zb2xpY2l0ZWRfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzozNTA6dm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMzUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTIxOT1pbnQgbXQ3OTIxX21jdV9md19sb2dfMl9ob3N0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4IGN0cmwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIyMDp2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjIxLWludCBtdDc5MjFfbWN1X3NldF9yeGZpbHRlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgZmlmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMzozMS4wNzAzNDUzODVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDg5MTAwNjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUG90ZW50aWFsIGZvciBGdXp6aW5nIHRoZSBtdDc5MjEgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYG10NzkyMV9tY3VfcnhfZXZlbnRgLiBJdCBsb29rcyBsaWtlIHRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIGZyb20gYG10NzkyMV9xdWV1ZV9yeF9za2JgLCB3aGljaCBJJ20gcHJldHR5IHN1cmUgaXMgY2FsbGVkIHdoZW5ldmVyIHRoZSBkcml2ZXIgcmVjZWl2ZXMgYSBwYWNrZXQuIEdpdmVuIHRoYXQgYG10NzkyMWAgaXMgYSBVU0IgZGV2aWNlLCB0aGF0J3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIGNhbiBkZWZpbml0ZWx5IGV4cGxvcmUgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcyB0aGVyZS4gQmVmb3JlIGRpdmluZyBkZWVwZXIsIEkgc2hvdWxkIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIG9wdGlvbnMgZm9yIGBtdDc5MjFgLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGdvb2QgaGFuZGxlIG9uIHdoYXTigJlzIGVuYWJsZWQgYW5kIGRpc2FibGVkIGFuZCBtaWdodCBwb2ludCB0byBzcGVjaWZpYyBhcmVhcyBvZiBpbnRlcmVzdCBmb3IgYSBmdXp6aW5nIGNhbXBhaWduLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTQzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjM6MzQuMTU5NDQ3ODU4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNDM1Mjg1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTVQ3OTIxXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjI6Y29uZmlnIE1UNzkyMV9DT01NT05cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTMtXFx0dHJpc3RhdGVcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWctNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjc6Y29uZmlnIE1UNzkyMUVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTgtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMUUgKFBDSWUpIHN1cHBvcnRcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL0tjb25maWc6MTc6Y29uZmlnIE1UNzkyMVNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnLTE4LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFTIChTRElPKSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnOjI4OmNvbmZpZyBNVDc5MjFVXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvS2NvbmZpZy0yOS1cXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMzozNC4yNjM4MDQ2MTVaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDk0NjAyNjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipFbmFibGluZyBNVDc5MjFVIC0gQ29uc2lkZXJhdGlvbnMgYW5kIEltcGxpY2F0aW9ucyoqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgd2UgbmVlZCB0byBnZXQgYE1UNzkyMVVgIGVuYWJsZWQuIFRoYXQgc2VlbXMgbGlrZSB0aGUgbG9naWNhbCBuZXh0IHN0ZXAgZ2l2ZW4gdGhlIGNvbnRleHQuIE5vdywgSSAqc3VzcGVjdCogdGhhdCBlbmFibGluZyBgTVQ3OTIxVWAgd2lsbCBhdXRvbWF0aWNhbGx5IHB1bGwgaW4gYE1UNzkyMV9DT01NT05gIGR1ZSB0byB0aGUgd2F5IHRoZXNlIHRoaW5ncyBvZnRlbiB3b3JrIHdpdGggZGVwZW5kZW5jaWVzLCBidXQgSSBjYW4ndCBqdXN0IGFzc3VtZSB0aGF0LiBXZSdyZSBkZWFsaW5nIHdpdGggcG90ZW50aWFsbHkgZGVsaWNhdGUgY29uZmlndXJhdGlvbnMgaGVyZSwgYW5kIGFzc3VtcHRpb25zIGFyZSB0aGUgbW90aGVyIG9mIGFsbC4uLiB3ZWxsLCB5b3Uga25vdy4gSSdtIGdvaW5nIHRvIGhhdmUgdG8gdmVyaWZ5IHdoZXRoZXIgdGhlIGBNVDc5MjFfQ09NTU9OYCBjb25maWd1cmF0aW9uIGlzIGF1dG9tYXRpY2FsbHkgc2VsZWN0ZWQgd2hlbiB3ZSBlbmFibGUgYE1UNzkyMVVgLiBJdCdzIGEgcXVpY2sgY2hlY2ssIGJ1dCBhIG5lY2Vzc2FyeSBvbmUgdG8gZW5zdXJlIHdlIGhhdmUgYSBjb21wbGV0ZSBhbmQgZnVuY3Rpb25hbCBidWlsZCBlbnZpcm9ubWVudC4gV2UgY2FuJ3QgYWZmb3JkIGFueSBnb3RjaGFzIGxhdGVyIGRvd24gdGhlIGxpbmUuIEl0J3MgYWJvdXQgZW5zdXJpbmcgYSBzb2xpZCwgcHJlZGljdGFibGUgc3RhdGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyMzYsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMzozNy43NTg0MDkxNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTE1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuICAgMjpcXHRjb25maWcgTVQ3OTIxX0NPTU1PTlxcbiAgIDM6XFx0XFx0dHJpc3RhdGVcXG4gICA0OlxcdFxcdHNlbGVjdCBNVDc5MnhfTElCXFxuICAgNTpcXHRcXHRzZWxlY3QgV0FOVF9ERVZfQ09SRURVTVBcXG4gICA2OlxcdFxcbiAgIDc6XFx0Y29uZmlnIE1UNzkyMUVcXG4gICA4OlxcdFxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDc5MjFFIChQQ0llKSBzdXBwb3J0XFxcIlxcbiAgIDk6XFx0XFx0c2VsZWN0IE1UNzkyMV9DT01NT05cXG4gIDEwOlxcdFxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG4gIDExOlxcdFxcdGRlcGVuZHMgb24gUENJXFxuICAxMjpcXHRcXHRoZWxwXFxuICAxMzpcXHRcXHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc5MjFFIDgwMi4xMWF4IDJ4MjoyU1Mgd2lyZWxlc3MgZGV2aWNlcy5cXG4gIDE0OlxcdFxcbiAgMTU6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlLCBjaG9vc2UgTSBoZXJlLlxcbiAgMTY6XFx0XFxuICAxNzpcXHRjb25maWcgTVQ3OTIxU1xcbiAgMTg6XFx0XFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UNzkyMVMgKFNESU8pIHN1cHBvcnRcXFwiXFxuICAxOTpcXHRcXHRzZWxlY3QgTVQ3Nl9TRElPXFxuICAyMDpcXHRcXHRzZWxlY3QgTVQ3OTIxX0NPTU1PTlxcbiAgMjE6XFx0XFx0ZGVwZW5kcyBvbiBNQUM4MDIxMVxcbiAgMjI6XFx0XFx0ZGVwZW5kcyBvbiBNTUNcXG4gIDIzOlxcdFxcdGhlbHBcXG4gIDI0OlxcdFxcdCAgVGhpcyBhZGRzIHN1cHBvcnQgZm9yIE1UNzkyMVMgODAyLjExYXggMngyOjJTUyB3aXJlbGVzcyBkZXZpY2VzLlxcbiAgMjU6XFx0XFxuICAyNjpcXHRcXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuXFxuICAyNzpcXHRcXG4gIDI4OlxcdGNvbmZpZyBNVDc5MjFVXFxuICAyOTpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3OTIxVSAoVVNCKSBzdXBwb3J0XFxcIlxcbiAgMzA6XFx0XFx0c2VsZWN0IE1UNzkyeF9VU0JcXG4gIDMxOlxcdFxcdHNlbGVjdCBNVDc5MjFfQ09NTU9OXFxuICAzMjpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAzMzpcXHRcXHRkZXBlbmRzIG9uIFVTQlxcbiAgMzQ6XFx0XFx0aGVscFxcbiAgMzU6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3OTIxVSA4MDIuMTFheCAyeDI6MlNTIHdpcmVsZXNzIGRldmljZXMuXFxuICAzNjpcXHRcXG4gIDM3OlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjM6MzcuNzU4NDY2MjVaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjE0Nzg5NjU0OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBxdWljayB0YWtlIG9uIHdoYXQgSSdtIHRoaW5raW5nLCBrZWVwaW5nIGl0IGNvbmNpc2UgYW5kIGZvY3VzaW5nIG9uIHRoZSBjb3JlIHByb2JsZW06XG5cbioqVGFyZ2V0aW5nIHRoZSBNVDc5MjFVIGFuZCBBc3NvY2lhdGVkIE1DVSBGdW5jdGlvbnMqKlxuXG5SaWdodCwgc28gaXQgbG9va3MgbGlrZSB0aGUgYE1UNzkyMVVgIGlzIHRoZSBzcGVjaWZpYyBjb21wb25lbnQgSSBuZWVkIHRvIGJlIGVuYWJsaW5nIG9yIGludmVzdGlnYXRpbmcuIFRoZSBpbml0aWFsIHJlc2VhcmNoIGhhcyBuYXJyb3dlZCB0aGUgZm9jdXMgdG8gdGhhdCBkZXZpY2UuIEkndmUgbm90ZWQgdGhhdCB0aGUgYG10NzkyMV9tY3VfcnhfZXZlbnRgIGZ1bmN0aW9uIGlzIHRoZSBvbmUgdG8gaW5zcGVjdCBmaXJzdCBhbmQgZm9yZW1vc3QsIGFuZCBpdCBsaXZlcyB3aXRoaW4gdGhlIGBtY3UuY2AgZmlsZSDigJMgdGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludC4gTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgb3RoZXIgcmVsYXRlZCBmdW5jdGlvbnMsIHBlcmhhcHMgaGFuZGxlcnMgb3IgY2FsbGJhY2tzLCB3aXRoaW4gdGhlIGJyb2FkZXIgYG1jdS5jYCBvciBlbHNld2hlcmUgdGhhdCBtaWdodCBiZSBjcml0aWNhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBkYXRhIGZsb3cuIEkgbmVlZCB0byBicm9hZGVuIHRoZSBzY29wZSBvZiB0aGUgaW52ZXN0aWdhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA4NywiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU0LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjM6NTkuMjM3NDMzOTk0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzY5NzY5NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTIxX21jdV9yeF9ldmVudFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM9NTg2PXZvaWQgbXQ3OTIxX3F1ZXVlX3J4X3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYwNy1cXHRjYXNlIFBLVF9UWVBFX1JYX0VWRU5UOlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jOjYwODpcXHRcXHRtdDc5MjFfbWN1X3J4X2V2ZW50KGRldiwgc2tiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy02MDktXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYz0zMzM9bXQ3OTIxX21jdV91bmlfcnhfdW5zb2xpY2l0ZWRfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21jdS5jLTM0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tY3UuYzozNTA6dm9pZCBtdDc5MjFfbWN1X3J4X2V2ZW50KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHN0cnVjdCBza19idWZmICpza2IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWN1LmMtMzUxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTIxOT1pbnQgbXQ3OTIxX21jdV9md19sb2dfMl9ob3N0KHN0cnVjdCBtdDc5MnhfZGV2ICpkZXYsIHU4IGN0cmwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjIyMDp2b2lkIG10NzkyMV9tY3VfcnhfZXZlbnQoc3RydWN0IG10NzkyeF9kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjIxLWludCBtdDc5MjFfbWN1X3NldF9yeGZpbHRlcihzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2LCB1MzIgZmlmLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMjoyMzo1OS4zNzQ0MTQ5OTFaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTUyNjI5OTY5NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgdGV4dCwgc3RydWN0dXJlZCBhcyBhIGZpcnN0LXBlcnNvbiBleHBlcnQgc3VtbWFyeTpcblxuKipJbml0aWFsIEFzc2Vzc21lbnQ6IEZvY3VzaW5nIG9uIHRoZSBSZWNlaXZlciBQYXRoKipcblxuT2theSwgc28gd2UncmUgc3RhcnRpbmcgd2l0aCBgbXQ3OTIxX21jdV9yeF9ldmVudGAuIEdvb2QgY2hvaWNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuIEl0J3MgYSByZWFzb25hYmx5IHNwZWNpZmljIHN5bWJvbDsgaXQncyBjbGVhcmx5IHJlbGF0ZWQgdG8gaGFuZGxpbmcgaW5jb21pbmcgZGF0YSBmcm9tIHRoZSBNQ1UgaW4gdGhlIE1UNzkyMS4gVGhhdCBhbG9uZSBzdWdnZXN0cyBhIHBvdGVudGlhbCBob3QtcGF0aCwgZ2l2ZW4gdGhlIG5hdHVyZSBvZiBSWCBldmVudHMuIE1DVSBjb21tdW5pY2F0aW9uIGlzIG9mdGVuIHRpbWUtc2Vuc2l0aXZlLCBzbyB0aGlzIGNvdWxkIGJlIGEgYm90dGxlbmVjay5cblxuTm93LCB0aGUgbmF0dXJhbCBmb2xsb3ctdXAgaXMgdG8gdmVyaWZ5IHRoYXQgc3VzcGljaW9uLiBXaGF0IGhhcHBlbnMgZGlyZWN0bHkgYWZ0ZXIgd2UgcHJvY2VzcyB0aGUgUlggZXZlbnQ/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbW1lZGlhdGUgaW1wYWN0LiBXaGVyZSdzIHRoaXMgZGF0YSBnb2luZz8gVGhlcmVmb3JlLCBJIHNob3VsZCBjaGVjayB0aGUgYG10NzkyMV9xdWV1ZV9yeF9za2JgIGZ1bmN0aW9uIHRvIHNlZSB3aGVyZSBpdCBwYXNzZXMgdGhlIHNrX2J1ZmZzLiBVbmRlcnN0YW5kaW5nIHRoaXMgZG93bnN0cmVhbSBwYXRoIHdpbGwgdGVsbCBtZSBpZiB0aGUgYG10NzkyMV9tY3VfcnhfZXZlbnRgIGZ1bmN0aW9uIGlzIGNyaXRpY2FsLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1OTUwLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjQ6MTQuNjM3NDE0NzFaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyNDUzNTA2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5MjFfcXVldWVfcnhfc2tiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYz01ODQ9RVhQT1JUX1NZTUJPTF9HUEwobXQ3OTIxX3J4X2NoZWNrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01ODUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NTg2OnZvaWQgbXQ3OTIxX3F1ZXVlX3J4X3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9tYWMuYy01ODctXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaW5mbylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYyNi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbWFjLmM6NjI3OkVYUE9SVF9TWU1CT0xfR1BMKG10NzkyMV9xdWV1ZV9yeF9za2IpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL21hYy5jLTYyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oPTI3Nz1ib29sIG10NzkyMV9yeF9jaGVjayhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHZvaWQgKmRhdGEsIGludCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL210NzkyMS5oOjI3ODp2b2lkIG10NzkyMV9xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvbXQ3OTIxLmgtMjc5LVxcdFxcdFxcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM9MjU5PXN0YXRpYyBpbnQgbXQ3OTIxX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTI3My1cXHRcXHQucnhfY2hlY2sgPSBtdDc5MjFfcnhfY2hlY2ssXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvcGNpLmM6Mjc0OlxcdFxcdC5yeF9za2IgPSBtdDc5MjFfcXVldWVfcnhfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3BjaS5jLTI3NS1cXHRcXHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzkyeF9yeF9wb2xsX2NvbXBsZXRlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jPTkwPXN0YXRpYyBpbnQgbXQ3OTIxc19wcm9iZShzdHJ1Y3Qgc2Rpb19mdW5jICpmdW5jLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jLTEwMS1cXHRcXHQudHhfc3RhdHVzX2RhdGEgPSBtdDc5MjFfdXNiX3NkaW9fdHhfc3RhdHVzX2RhdGEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvc2Rpby5jOjEwMjpcXHRcXHQucnhfc2tiID0gbXQ3OTIxX3F1ZXVlX3J4X3NrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS9zZGlvLmMtMTAzLVxcdFxcdC5yeF9jaGVjayA9IG10NzkyMV9yeF9jaGVjayxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTIxL3VzYi5jPTE1MD1zdGF0aWMgaW50IG10NzkyMXVfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKnVzYl9pbnRmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTYyLVxcdFxcdC50eF9zdGF0dXNfZGF0YSA9IG10NzkyMV91c2Jfc2Rpb190eF9zdGF0dXNfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyMS91c2IuYzoxNjM6XFx0XFx0LnJ4X3NrYiA9IG10NzkyMV9xdWV1ZV9yeF9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjEvdXNiLmMtMTY0LVxcdFxcdC5yeF9jaGVjayA9IG10NzkyMV9yeF9jaGVjayxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjI6MjQ6MTQuOTYxOTUzNTYzWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MzAzMDgxODgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTWVtb3J5IExlYWsgRml4KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRhcmdldHMgdGhlIGByeF9za2JgIGNhbGxiYWNrIHdpdGhpbiB0aGUgZHJpdmVyLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGBtdDc5MjFfbWN1X3J4X2V2ZW50YCBpcyBnb2luZyB0byBiZSBhIGtleSBmdW5jdGlvbiB0byB6ZXJvIGluIG9uLiBUaGUgZGVzY3JpcHRpb24gbWVudGlvbnMgYSBtZW1vcnkgbGVhaywgc3BlY2lmaWNhbGx5IHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzLiBUaGF0J3MgYSBnb29kIGJyZWFkY3J1bWI7IGEgZnVuY3Rpb25hbCBjaGFuZ2UgcmVsYXRlZCB0byBtZW1vcnkgbWFuYWdlbWVudCBhbHdheXMgZGVzZXJ2ZXMgY2FyZWZ1bCBzY3J1dGlueS5cblxuU2luY2UgYE1UNzkyMVVgIGlzIGEgVVNCIGRyaXZlciwgdGhlIGZhY3QgdGhpcyBwYXRjaCBpcyByZWFjaGFibGUgdmlhIFVTQiBlbXVsYXRpb24gdXNpbmcgYGR1bW15X2hjZGAgaXMgaW1wb3J0YW50LiBUaGlzIG1lYW5zIEkgY2FuIGxpa2VseSByZXByb2R1Y2UgdGhpcyBzY2VuYXJpbyBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQsIHNpbXBsaWZ5aW5nIG15IHRlc3RpbmcuXG5cbkdpdmVuIGFsbCBvZiB0aGlzLCBJJ20gZ29pbmcgdG8gc2V0IGBXb3J0aEZ1enppbmc9dHJ1ZWAuIEkgbmVlZCB0byBlbnN1cmUgdGhpcyBmaXggaXMgcm9idXN0IHVuZGVyIHZhcmlvdXMgY29uZGl0aW9ucy4gVGhlIGBGb2N1c1N5bWJvbHNgIHdpbGwgZGVmaW5pdGVseSBpbmNsdWRlIGBcIm10NzkyMV9tY3VfcnhfZXZlbnRcImAsIGJlY2F1c2UgdGhhdCdzIHRoZSBjb3JlIG9mIHRoZSBjYWxsYmFjay4gQW5kIGZpbmFsbHksIEknbGwgc2V0IGBFbmFibGVDb25maWdzPVtcIk1UNzkyMVVcIl1gIHRvIGxpbWl0IHRoZSB0ZXN0cyB0byB0aGUgVVNCLXNwZWNpZmljIGRyaXZlci4gVGhpcyBzaG91bGQga2VlcCB0aGUgZnV6emluZyBmb2N1c2VkIG9uIHRoZSByZWxldmFudCBjb2RlIHBhdGguXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczNjUsIk91dHB1dFRva2VucyI6MTIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIyOjI1OjAzLjI2NTAzNzM5NVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMDA2NTMwNywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTVQ3OTIxVVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcIm10NzkyMV9tY3VfcnhfZXZlbnRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGluIHRoZSBtdDc5MjEgd2lyZWxlc3MgZHJpdmVyIHdoZW4gYHNrYl9saW5lYXJpemVgIGZhaWxzIGR1cmluZyBNQ1UgUlggZXZlbnQgcHJvY2Vzc2luZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHJlYWNoYWJsZSBjb3JlIGRyaXZlciBsb2dpYy4gVGhlIGRyaXZlciBoYXMgYSBVU0IgdmFyaWFudCAoTVQ3OTIxVSkgd2hpY2ggY2FuIGJlIGZ1enplZCB2aWEgVVNCIGVtdWxhdGlvbiAoZHVtbXlfaGNkKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJNVDc5MjFVXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwibXQ3OTIxX21jdV9yeF9ldmVudFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgbWVtb3J5IGxlYWsgaW4gdGhlIG10NzkyMSB3aXJlbGVzcyBkcml2ZXIgd2hlbiBgc2tiX2xpbmVhcml6ZWAgZmFpbHMgZHVyaW5nIE1DVSBSWCBldmVudCBwcm9jZXNzaW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gcmVhY2hhYmxlIGNvcmUgZHJpdmVyIGxvZ2ljLiBUaGUgZHJpdmVyIGhhcyBhIFVTQiB2YXJpYW50IChNVDc5MjFVKSB3aGljaCBjYW4gYmUgZnV6emVkIHZpYSBVU0IgZW11bGF0aW9uIChkdW1teV9oY2QpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfv9jt[1] Phase: Succeeded StartedAt: 2026-07-16 22:25:14 +0000 UTC FinishedAt: 2026-07-16 22:25:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-16 22:25:14 +0000 UTC FinishedAt: 2026-07-16 22:25:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2] Phase: Succeeded StartedAt: 2026-07-16 22:25:14 +0000 UTC FinishedAt: 2026-07-16 23:36:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:25:14 +0000 UTC FinishedAt: 2026-07-16 23:36:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:25:14 +0000 UTC FinishedAt: 2026-07-16 22:25:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:25:14 +0000 UTC FinishedAt: 2026-07-16 22:25:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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-workflowfv9jt/series-workflowfv9jt-convert-artifact-3740417572/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:25:24 +0000 UTC FinishedAt: 2026-07-16 22:55:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:25:24 +0000 UTC FinishedAt: 2026-07-16 22:55:07 +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:*81263600-b057-41c9-b4f8-0e2f9de9b5fb,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-workflowfv9jt/series-workflowfv9jt-convert-artifact-3740417572/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": "748dc50e-8e0b-468a-b69d-c8e65c99005f", "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-workflowfv9jt/series-workflowfv9jt-build-action-1467076706/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:25:24 +0000 UTC FinishedAt: 2026-07-16 22:54:57 +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:*81263600-b057-41c9-b4f8-0e2f9de9b5fb,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-workflowfv9jt/series-workflowfv9jt-convert-artifact-3740417572/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": "748dc50e-8e0b-468a-b69d-c8e65c99005f", "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-workflowfv9jt/series-workflowfv9jt-build-action-1467076706/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:55:07 +0000 UTC FinishedAt: 2026-07-16 22:55:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:55:07 +0000 UTC FinishedAt: 2026-07-16 22:55:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:55:07 +0000 UTC FinishedAt: 2026-07-16 22:55:17 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:55:07 +0000 UTC FinishedAt: 2026-07-16 22:55:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-workflowfv9jt/series-workflowfv9jt-convert-artifact-4034749731/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:55:17 +0000 UTC FinishedAt: 2026-07-16 22:57:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:55:17 +0000 UTC FinishedAt: 2026-07-16 22:57:00 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*748dc50e-8e0b-468a-b69d-c8e65c99005f,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-workflowfv9jt/series-workflowfv9jt-build-action-1467076706/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-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:57:10 +0000 UTC FinishedAt: 2026-07-16 22:57:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:57:10 +0000 UTC FinishedAt: 2026-07-16 22:57:10 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:57:10 +0000 UTC FinishedAt: 2026-07-16 23:31:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:57:10 +0000 UTC FinishedAt: 2026-07-16 23:31:26 +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:*81263600-b057-41c9-b4f8-0e2f9de9b5fb,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-workflowfv9jt/series-workflowfv9jt-convert-artifact-4034749731/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": "bf6d99f5-8074-4648-9b73-4be27882da21", "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-workflowfv9jt/series-workflowfv9jt-build-action-410544599/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 22:57:10 +0000 UTC FinishedAt: 2026-07-16 23:31:16 +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:*81263600-b057-41c9-b4f8-0e2f9de9b5fb,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-workflowfv9jt/series-workflowfv9jt-convert-artifact-4034749731/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": "bf6d99f5-8074-4648-9b73-4be27882da21", "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-workflowfv9jt/series-workflowfv9jt-build-action-410544599/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:31:26 +0000 UTC FinishedAt: 2026-07-16 23:31:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:31:26 +0000 UTC FinishedAt: 2026-07-16 23:31:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:31:26 +0000 UTC FinishedAt: 2026-07-16 23:33:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:31:26 +0000 UTC FinishedAt: 2026-07-16 23:33:21 +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:*bf6d99f5-8074-4648-9b73-4be27882da21,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-workflowfv9jt/series-workflowfv9jt-build-action-410544599/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-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:33:31 +0000 UTC FinishedAt: 2026-07-16 23:36:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:33:31 +0000 UTC FinishedAt: 2026-07-16 23:36:11 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"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:*748dc50e-8e0b-468a-b69d-c8e65c99005f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*bf6d99f5-8074-4648-9b73-4be27882da21,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-workflowfv9jt/series-workflowfv9jt-build-action-1467076706/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-workflowfv9jt/series-workflowfv9jt-build-action-410544599/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:33:31 +0000 UTC FinishedAt: 2026-07-16 23:33:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:33:31 +0000 UTC FinishedAt: 2026-07-16 23:33:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"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-workflowfv9jt/series-workflowfv9jt-convert-artifact-2687138876/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:33:31 +0000 UTC FinishedAt: 2026-07-16 23:33:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:33:31 +0000 UTC FinishedAt: 2026-07-16 23:33:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:33:31 +0000 UTC FinishedAt: 2026-07-16 23:33:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:33:41 +0000 UTC FinishedAt: 2026-07-16 23:36:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfv9jt[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"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/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["mt7921_mcu_rx_event"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"37e2f878a7a660a216cc7a60459995fefd150f25","config_name":"upstream-apparmor-kasan.config","enable_configs":["MT7921U"],"series_id":"fd28c83d-5a93-487e-be43-a91e8e26f39a","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-16 23:33:41 +0000 UTC FinishedAt: 2026-07-16 23:35:51 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*748dc50e-8e0b-468a-b69d-c8e65c99005f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*bf6d99f5-8074-4648-9b73-4be27882da21,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-workflowfv9jt/series-workflowfv9jt-build-action-1467076706/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-workflowfv9jt/series-workflowfv9jt-build-action-410544599/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-workflowfv9jt/series-workflowfv9jt-convert-artifact-2687138876/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,}