Name: series-workflowr78kl Phase: Succeeded StartedAt: 2026-07-25 02:50:21 +0000 UTC FinishedAt: 2026-07-25 08:28:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[0] Phase: Succeeded StartedAt: 2026-07-25 02:50:21 +0000 UTC FinishedAt: 2026-07-25 03:38:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[0].run-triage Phase: Succeeded StartedAt: 2026-07-25 02:50:21 +0000 UTC FinishedAt: 2026-07-25 03:38:35 +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": "e2a936998ab25cf7272847356390041c3143b498", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "e2a936998ab25cf7272847356390041c3143b498", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "ext4_freeze", "ext4_unfreeze" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2ZyZWV6ZSYjMzQ7LAogICAgJiMzNDtleHQ0X3VuZnJlZXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNWFkNTY5NTBjMzliYzI3NjZiYzRhNGUxNTJmYmJhODJmYTYyMTgzN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDAzOjM0OjQyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NF9qYmQyLmMgYi9mcy9leHQ0L2V4dDRfamJkMi5jXG5pbmRleCA5YThjMjI1ZjI3NTMwOS4uMzEwYTA0ZGJlYmRkNjAgMTAwNjQ0XG4tLS0gYS9mcy9leHQ0L2V4dDRfamJkMi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9leHQ0L2V4dDRfamJkMi5jXG5AQCAtNzUsNyAmIzQzOzc1LDEyIEBAIHN0YXRpYyBpbnQgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gXHRpZiAoV0FSTl9PTl9PTkNFKHNiX3Jkb25seShzYikpKVxuIFx0XHRyZXR1cm4gLUVST0ZTO1xuIFxuLVx0V0FSTl9PTihzYi1cdTAwM2VzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSk7XG4mIzQzO1x0aWYgKHVubGlrZWx5KHNiLVx1MDAzZXNfd3JpdGVycy5mcm96ZW4gPT0gU0JfRlJFRVpFX0NPTVBMRVRFKSkge1xuJiM0MztcdFx0ZXh0NF9tc2coc2IsIEtFUk5fRVJSLFxuJiM0MztcdFx0XHQgXCYjMzQ7QXR0ZW1wdCB0byBzdGFydCBhIGpvdXJuYWwgdHJhbnNhY3Rpb24gb24gYSBmcm96ZW4gZmlsZXN5c3RlbVwmIzM0Oyk7XG4mIzQzO1x0XHRyZXR1cm4gLUVST0ZTO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRqb3VybmFsID0gRVhUNF9TQihzYiktXHUwMDNlc19qb3VybmFsO1xuIFx0LypcbiBcdCAqIFNwZWNpYWwgY2FzZSBoZXJlOiBpZiB0aGUgam91cm5hbCBoYXMgYWJvcnRlZCBiZWhpbmQgb3VyXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2ZyZWV6ZSYjMzQ7LAogICAgJiMzNDtleHQ0X3VuZnJlZXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWFkNTY5NTBjMzliYzI3NjZiYzRhNGUxNTJmYmJhODJmYTYyMTgzNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgSnVsIDI1IDAzOjM0OjQyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0X2piZDIuYyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmMKaW5kZXggOWE4YzIyNWYyNzUzMDkuLjMxMGEwNGRiZWJkZDYwIDEwMDY0NAotLS0gYS9mcy9leHQ0L2V4dDRfamJkMi5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmMKQEAgLTc1LDcgJiM0Mzs3NSwxMiBAQCBzdGF0aWMgaW50IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCWlmIChXQVJOX09OX09OQ0Uoc2JfcmRvbmx5KHNiKSkpCiAJCXJldHVybiAtRVJPRlM7CiAKLQlXQVJOX09OKHNiLSZndDtzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSk7CiYjNDM7CWlmICh1bmxpa2VseShzYi0mZ3Q7c193cml0ZXJzLmZyb3plbiA9PSBTQl9GUkVFWkVfQ09NUExFVEUpKSB7CiYjNDM7CQlleHQ0X21zZyhzYiwgS0VSTl9FUlIsCiYjNDM7CQkJICYjMzQ7QXR0ZW1wdCB0byBzdGFydCBhIGpvdXJuYWwgdHJhbnNhY3Rpb24gb24gYSBmcm96ZW4gZmlsZXN5c3RlbSYjMzQ7KTsKJiM0MzsJCXJldHVybiAtRVJPRlM7CiYjNDM7CX0KJiM0MzsKIAlqb3VybmFsID0gRVhUNF9TQihzYiktJmd0O3Nfam91cm5hbDsKIAkvKgogCSAqIFNwZWNpYWwgY2FzZSBoZXJlOiBpZiB0aGUgam91cm5hbCBoYXMgYWJvcnRlZCBiZWhpbmQgb3VyCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMjgKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAxODgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBFeHQ0IEpvdXJuYWwgQ2hlY2sgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YCB3aXRoaW4gYGZzL2V4dDQvZXh0NF9qYmQyLmNgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogdGhleSYjMzk7dmUgcmVwbGFjZWQgYSBzaW1wbGUgYFdBUk5fT05gIHdpdGggYW4gYWN0dWFsIGVycm9yIHJldHVybi4gU3BlY2lmaWNhbGx5LCB0aGUgbGluZSB0aGF0IHdhcyBwcmV2aW91c2x5IGBXQVJOX09OKHNiLSZndDtzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSk7YCBoYXMgYmVlbiBtb2RpZmllZCB0byBpbmNsdWRlIGFuIGBpZiAodW5saWtlbHkoLi4uKSlgIGJsb2NrLiBUaGlzIG5vdyByZXN1bHRzIGluIGFuIGAtRVJPRlNgIHJldHVybiBpZiB0aGUgZmlsZXN5c3RlbSBpcyBmcm96ZW4sIGFuZCBhbiBlcnJvciBtZXNzYWdlIGlzIHByaW50ZWQuCgpQcmV2aW91c2x5LCB0aGUgY29kZSB3b3VsZCBzaW1wbHkgZW1pdCBhIHdhcm5pbmcgYW5kIGNvbnRpbnVlIGV4ZWN1dGlvbiBpZiB0aGUgam91cm5hbCB3YXMgYXR0ZW1wdGVkIHRvIGJlIHN0YXJ0ZWQgb24gYSBmcm96ZW4gZmlsZXN5c3RlbS4gTm93IGl0IGV4cGxpY2l0bHkgcmV0dXJucyBhIHJlYWQtb25seSBmaWxlc3lzdGVtIGVycm9yIGNvZGUuIFRoaXMgaXMgYSBjcnVjaWFsIGRpZmZlcmVuY2UgYmVjYXVzZSB0aGUgcHJldmlvdXMgYmVoYXZpb3IgY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gaW4gY2VydGFpbiBzY2VuYXJpb3MgYnkgcHJvY2VlZGluZyB3aGVuIHRoZSBmaWxlc3lzdGVtIHN0YXRlIGlzIGNvbXByb21pc2VkLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsbHkgc2lnbmlmaWNhbnQgY2hhbmdlLCB0cmFuc2Zvcm1pbmcgYSB3YXJuaW5nIGludG8gYSBoYXJkIGVycm9yLCB3aGljaCBmb3JjZXMgdGhlIHN5c3RlbSB0byBoYW5kbGUgdGhlIHNpdHVhdGlvbiBhcHByb3ByaWF0ZWx5LiBMZXQgbWUgY29uZmlybSB0aGF0IGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgIGlzIGluZGVlZCB0aGUgZnVuY3Rpb24gaW4gcXVlc3Rpb24gYW5kIEkmIzM5O2xsIHN0YXJ0IGNoZWNraW5nIHRoZSBjb250ZXh0IGluIHdoaWNoIHRoaXMgaXMgdXNlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwMzozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0L2V4dDRfamJkMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4dDQvZXh0NF9qYmQyLmM9NDk9c3RhdGljIHZvaWQgZXh0NF9wdXRfbm9qb3VybmFsKGhhbmRsZV90ICpoYW5kbGUpXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuYy02My0gKi9cbmZzL2V4dDQvZXh0NF9qYmQyLmM6NjQ6c3RhdGljIGludCBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbmZzL2V4dDQvZXh0NF9qYmQyLmMtNjUte1xuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmM9OTc9aGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuYy0xMTEtXHRcdFx0XHRcdF9SRVRfSVBfKTtcbmZzL2V4dDQvZXh0NF9qYmQyLmM6MTEyOlx0ZXJyID0gZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHNiKTtcbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTEzLVx0aWYgKGVyciBcdTAwM2MgMClcbi0tXG5mcy9leHQ0L2V4dDRfamJkMi5jPTE1MD1oYW5kbGVfdCAqX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWQoaGFuZGxlX3QgKmhhbmRsZSwgdW5zaWduZWQgaW50IGxpbmUsXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuYy0xNjEtXHRcdFx0XHRqYmQyX2hhbmRsZV9idWZmZXJfY3JlZGl0cyhoYW5kbGUpLCBfUkVUX0lQXyk7XG5mcy9leHQ0L2V4dDRfamJkMi5jOjE2MjpcdGVyciA9IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzYik7XG5mcy9leHQ0L2V4dDRfamJkMi5jLTE2My1cdGlmIChlcnIgXHUwMDNjIDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwMzozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDEyCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBleHQ0IEpvdXJuYWwgVHJhbnNhY3Rpb24gU3RhcnQgUG9pbnRzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YC4gVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBgc3RhdGljYCBpcyBpbnRlcmVzdGluZywgYW5kIGl0IHN1Z2dlc3RzIGl0JiMzOTtzIGFuIGludGVybmFsIGhlbHBlciBmdW5jdGlvbi4gUmlnaHQsIGl0JiMzOTtzIGNhbGxlZCBieSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGFuZCBgX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWRgLiBUaG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cyBmb3IsIGVzc2VudGlhbGx5LCBzdGFydGluZyBhIGpvdXJuYWwgdHJhbnNhY3Rpb24sIHRoZSBmb3VuZGF0aW9uIG9mIGhvdyBleHQ0IGhhbmRsZXMgaXRzIGRhdGEgaW50ZWdyaXR5LgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGxpbmcgY29udGV4dHMuIEtub3dpbmcgd2hlcmUgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCBhbmQgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3Jlc2VydmVkYCBhcmUgdXNlZCBpcyBjcnVjaWFsLiBUaGV5JiMzOTtyZSBsaWtlbHkgdXNlZCBleHRlbnNpdmVseSB0aHJvdWdob3V0IHRoZSBmaWxlc3lzdGVtLiBBbHRob3VnaCwgSSBkb24mIzM5O3Qgd2FudCB0byBnZXQgZGlzdHJhY3RlZCBzbyBJJiMzOTtsbCBqdXN0IGZvY3VzIG9uIHRoZW0uCgpXYWl0IGEgc2Vjb25kLCBpcyBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGV4cG9ydGVkPyBUaGF0IGNoYW5nZXMgdGhpbmdzLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuLi4gdGhpcyBjb3VsZCBiZSB2ZXJ5IGltcG9ydGFudCB0byB0aGUgb3ZlcmFsbCBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19fZXh0NF9qb3VybmFsX3N0YXJ0X3NiJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZXh0NC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9leHQ0X2piZDIuYz02ND1zdGF0aWMgaW50IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmMtOTYtXG5mcy9leHQ0L2V4dDRfamJkMi5jOjk3OmhhbmRsZV90ICpfX2V4dDRfam91cm5hbF9zdGFydF9zYihzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuZnMvZXh0NC9leHQ0X2piZDIuYy05OC1cdFx0XHRcdCAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQgaW50IGxpbmUsXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuaD0xNjM9aW50IF9fZXh0NF9oYW5kbGVfZGlydHlfbWV0YWRhdGEoY29uc3QgY2hhciAqd2hlcmUsIHVuc2lnbmVkIGludCBsaW5lLFxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmgtMTc5LVxuZnMvZXh0NC9leHQ0X2piZDIuaDoxODA6aGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsXG5mcy9leHQ0L2V4dDRfamJkMi5oLTE4MS1cdFx0XHRcdCAgdW5zaWduZWQgaW50IGxpbmUsIGludCB0eXBlLCBpbnQgYmxvY2tzLFxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmg9MjE2PXN0YXRpYyBpbmxpbmUgaW50IGV4dDRfdHJhbnNfZGVmYXVsdF9yZXZva2VfY3JlZGl0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmgtMjIxLSNkZWZpbmUgZXh0NF9qb3VybmFsX3N0YXJ0X3NiKHNiLCB0eXBlLCBuYmxvY2tzKVx0XHRcdFxcXG5mcy9leHQ0L2V4dDRfamJkMi5oOjIyMjpcdF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKE5VTEwsIChzYiksIF9fTElORV9fLCAodHlwZSksIChuYmxvY2tzKSwgMCxcXFxuZnMvZXh0NC9leHQ0X2piZDIuaC0yMjMtXHRcdFx0XHRleHQ0X3RyYW5zX2RlZmF1bHRfcmV2b2tlX2NyZWRpdHMoc2IpKVxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmg9MjM3PXN0YXRpYyBpbmxpbmUgaGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0KHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuaC0yNDEte1xuZnMvZXh0NC9leHQ0X2piZDIuaDoyNDI6XHRyZXR1cm4gX19leHQ0X2pvdXJuYWxfc3RhcnRfc2IoaW5vZGUsIGlub2RlLVx1MDAzZWlfc2IsIGxpbmUsIHR5cGUsIGJsb2NrcyxcbmZzL2V4dDQvZXh0NF9qYmQyLmgtMjQzLVx0XHRcdFx0ICAgICAgIHJzdl9ibG9ja3MsIHJldm9rZV9jcmVkcyk7XG4tLVxuZnMvZXh0NC9pYWxsb2MuYz05MzM9c3RydWN0IGlub2RlICpfX2V4dDRfbmV3X2lub2RlKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLFxuLS1cbmZzL2V4dDQvaWFsbG9jLmMtMTA4OC1cdFx0XHRCVUdfT04obmJsb2NrcyBcdTAwM2M9IDApO1xuZnMvZXh0NC9pYWxsb2MuYzoxMDg5Olx0XHRcdGhhbmRsZSA9IF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKE5VTEwsIGRpci1cdTAwM2VpX3NiLFxuZnMvZXh0NC9pYWxsb2MuYy0xMDkwLVx0XHRcdFx0IGxpbmVfbm8sIGhhbmRsZV90eXBlLCBuYmxvY2tzLCAwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxMTUKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAzMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBFeHQ0IEZpbGVzeXN0ZW0gSm91cm5hbGluZyBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGV4dDQgam91cm5hbGluZyBjb2RlLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAsIHdoaWNoIGlzIHRoZSBjb3JlIGZ1bmN0aW9uIGNhbGxlZCBieSBgZXh0NF9qb3VybmFsX3N0YXJ0YCBhbmQgYGV4dDRfam91cm5hbF9zdGFydF9zYmAuIEdpdmVuIGhvdyBwZXJ2YXNpdmUgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbiB0aGUgZmlsZXN5c3RlbSBmb3IgKmFueSogbWV0YWRhdGEgY2hhbmdlLCBmdXp6aW5nIGRpcmVjdGx5IGF0IGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgZmVlbHMgYSBiaXQgdG9vIGJyb2FkIHRvIGJlIGltbWVkaWF0ZWx5IHVzZWZ1bC4gSXQmIzM5O3MgdGhlIHVsdGltYXRlIGVudHJ5IHBvaW50LCBncmFudGVkLCBidXQgbGV0JiMzOTtzIHNlZSBpZiB3ZSBjYW4gZmluZCBzb21lIG90aGVyIGZ1bmN0aW9ucyB0aGF0ICp0cmlnZ2VyKiB0aGlzIG9uZSBpbiBhIG1vcmUgdGFyZ2V0ZWQgd2F5LgoKVGhlIGNvcmUgaXNzdWUgaGVyZSBpcyBzdGFydGluZyBhIGpvdXJuYWwgdHJhbnNhY3Rpb24gb24gYSBmaWxlc3lzdGVtIHRoYXQmIzM5O3MgYmVlbiBmcm96ZW4uIEZyZWV6ZSBpcyBkb25lIHZpYSBgaW9jdGwoRklGUkVFWkUpYCBvciBhIHNpbWlsYXIgbWVjaGFuaXNtLiBUaGUgcGF0Y2ggc2VlbXMgdG8gZml4IGEgc2NlbmFyaW8gd2hlcmUgdGhlIGF0dGVtcHQgdG8gc3RhcnQgYSB0cmFuc2FjdGlvbiBvbiBhIGZyb3plbiBmaWxlc3lzdGVtIHdhcyBwcmV2aW91c2x5IGdlbmVyYXRpbmcgYSBgV0FSTl9PTmAsIGFuZCB0aGF0JiMzOTtzIGJlZW4gcmVwbGFjZWQgd2l0aCByZXR1cm5pbmcgYC1FUk9GU2AgaW5zdGVhZC4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBkaWZmZXJlbmNlIGluIGJlaGF2aW9yLiBEZWZpbml0ZWx5IHdvcnRoIGxvb2tpbmcgaW50byBmb3IgZnV6emluZy4KCk15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZm9jdXMgb24gYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCBhbmQgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3Jlc2VydmVkYCwgYnV0IHRoZW4gSSByZW1lbWJlciB0aGF0IGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgaXMgYSAqdmVyeSogaG90IHBhdGggZnVuY3Rpb24uIFJpZ2h0ISBUaGUgZG9jdW1lbnRhdGlvbiBhZHZpc2VzIGFnYWluc3QgbGlzdGluZyB0aG9zZSBnZW5lcmljIGZ1bmN0aW9ucyB0byBhdm9pZCBza2V3aW5nIG91ciB0ZXN0IGRpc3RyaWJ1dGlvbiwgbWVhbmluZyB3ZSBtaWdodCBlbmQgdXAgdGVzdGluZyBhbiBhcmVhIHRoYXQgaXMgYWxyZWFkeSB3ZWxsLXRlc3RlZC4gU28sIEkgaGF2ZSB0byByZXRoaW5rLiBJZiBub3QgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCwgd2hhdCB0aGVuPwoKUGVyaGFwcyB0aGUgZm9jdXMgc2hvdWxkIHNoaWZ0IHRvIHRoZSBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRoZW1zZWx2ZXMuIGBleHQ0X2ZyZWV6ZWAgbWlnaHQgYmUgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBXZSBuZWVkIHRvIGlkZW50aWZ5IGZ1bmN0aW9ucyBhbmQgaW5wdXRzIHRoYXQgdHJpZ2dlciB0aGUgZnJlZXplIGFuZCB0aGVuIGF0dGVtcHQgdG8gc3RhcnQgdGhlIHByb2JsZW1hdGljIHRyYW5zYWN0aW9uLiBXZSBzaG91bGQgZXhwbG9yZSB3YXlzIHRvIGZ1enogdGhlIGZyZWV6ZSBhbmQgdHJhbnNhY3Rpb24gc3RhcnQgc2VxdWVuY2VzLiBJIHRoaW5rIHRoaXMgd2lsbCBiZSB0aGUgbW9zdCBlZmZlY3RpdmUgd2F5IHRvIHRyaWdnZXIgdGhlIHZ1bG5lcmFiaWxpdHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZXh0NF9mcmVlemUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L3N1cGVyLmM9Nzk9c3RhdGljIGludCBleHQ0X3VuZnJlZXplKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuZnMvZXh0NC9zdXBlci5jOjgwOnN0YXRpYyBpbnQgZXh0NF9mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG5mcy9leHQ0L3N1cGVyLmMtODEtc3RhdGljIGlubGluZSBpbnQgZXh0Ml9mZWF0dXJlX3NldF9vayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbi0tXG5mcy9leHQ0L3N1cGVyLmM9MTY2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgZXh0NF9zb3BzID0ge1xuLS1cbmZzL2V4dDQvc3VwZXIuYy0xNjcxLVx0LnN5bmNfZnNcdD0gZXh0NF9zeW5jX2ZzLFxuZnMvZXh0NC9zdXBlci5jOjE2NzI6XHQuZnJlZXplX2ZzXHQ9IGV4dDRfZnJlZXplLFxuZnMvZXh0NC9zdXBlci5jLTE2NzMtXHQudW5mcmVlemVfZnNcdD0gZXh0NF91bmZyZWV6ZSxcbi0tXG5mcy9leHQ0L3N1cGVyLmM9NjQzNz1zdGF0aWMgaW50IGV4dDRfc3luY19mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgd2FpdClcbi0tXG5mcy9leHQ0L3N1cGVyLmMtNjQ5MC0gKi9cbmZzL2V4dDQvc3VwZXIuYzo2NDkxOnN0YXRpYyBpbnQgZXh0NF9mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbmZzL2V4dDQvc3VwZXIuYy02NDkyLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwMzozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTk2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgZXh0NCBGaWxlc3lzdGVtIEZyZWV6ZSBCdWcqKgoKT2theSwgc28gYGV4dDRfZnJlZXplYCBpcyBkZWZpbml0ZWx5IHRoZSBmdW5jdGlvbiB0aGF0IGZyZWV6ZXMgdGhlIGZpbGVzeXN0ZW0uIFRoZSBjb3JlIG9mIHRoaXMgYnVnIGlzIHRoYXQgc29tZXRoaW5nJiMzOTtzIHRyeWluZyB0byBzdGFydCBhIHRyYW5zYWN0aW9uICp3aGlsZSogdGhlIGZpbGVzeXN0ZW0gaXMgZnJvemVuLCB3aGljaCBpcyBjbGVhcmx5IHByb2JsZW1hdGljLiBUaGUgcXVlc3Rpb24gaXM6IHdoYXQgb3BlcmF0aW9uIGlzIHRyaWdnZXJpbmcgdGhpcz8KClRoZSBjb21taXQgbWVzc2FnZSBwb2ludHMgdG8gYSBwYXRjaCByZWxhdGVkIHRvIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgLCB3aGljaCBpcyBhIGhlbHBmdWwgY2x1ZS4gV2l0aG91dCBrbm93aW5nIHRoZSBleGFjdCBjdWxwcml0IG9wZXJhdGlvbiwgSSBzaG91bGQgZm9jdXMgb24gcmVsYXRlZCBzeW1ib2xzLiBJJiMzOTtsbCBpbmNsdWRlIGBleHQ0X2ZyZWV6ZWAgYW5kIGBleHQ0X3VuZnJlZXplYCBhcyBmb2N1cyBzeW1ib2xzLiBQZXJoYXBzIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgc2hvdWxkIGFsc28gYmUgaW5jbHVkZWQ/IFdhaXQsIGhvbGQgb24uIFNpbmNlIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgaXMgbGlrZWx5IGEgaG90IHBhdGgsIGl0IGdldHMgY2FsbGVkIGFsbCB0aGUgdGltZS4gSWYgSSBkb24mIzM5O3QgbGlzdCBpdCBleHBsaWNpdGx5LCB0aGUgZnV6emVyIHdpbGwgcHJvYmFibHkgaGl0IGl0IG5hdHVyYWxseSBiZWNhdXNlIGl0JiMzOTtzIHBhcnQgb2YgYWxtb3N0IGV2ZXJ5IGV4dDQgb3BlcmF0aW9uLiBTbyBsaXN0aW5nIGl0IG1pZ2h0IGp1c3QgYWRkIG5vaXNlLiBJJiMzOTtsbCBzdGljayB0byBgZXh0NF9mcmVlemVgIHRvIGVuc3VyZSB0aGUgZnV6emVyIGlzIGRlbGliZXJhdGVseSBhdHRlbXB0aW5nIHRvIGZyZWV6ZSB0aGUgZmlsZXN5c3RlbSBkdXJpbmcgaXRzIG9wZXJhdGlvbi4KCkZpbmFsbHksIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHRvIHJlcHJvZHVjZSB0aGlzIGJ1Zy4gSXQgc2VlbXMgdGhhdCBgRVhUNF9GU2AgaXMgYSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEVYVDRfRlMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5mcy9leHQ0L0tjb25maWc6Mjpjb25maWcgRVhUNF9GU1xuZnMvZXh0NC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtUaGUgRXh0ZW5kZWQgNCAoZXh0NCkgZmlsZXN5c3RlbVwmIzM0O1xuLS1cbmZzL2V4dDQvS2NvbmZpZz0zNT1jb25maWcgRVhUNF9VU0VfRk9SX0VYVDJcbi0tXG5mcy9leHQ0L0tjb25maWctNDUtXG5mcy9leHQ0L0tjb25maWc6NDY6Y29uZmlnIEVYVDRfRlNfUE9TSVhfQUNMXG5mcy9leHQ0L0tjb25maWctNDctXHRib29sIFwmIzM0O0V4dDQgUE9TSVggQWNjZXNzIENvbnRyb2wgTGlzdHNcJiMzNDtcbi0tXG5mcy9leHQ0L0tjb25maWctNTUtXG5mcy9leHQ0L0tjb25maWc6NTY6Y29uZmlnIEVYVDRfRlNfU0VDVVJJVFlcbmZzL2V4dDQvS2NvbmZpZy01Ny1cdGJvb2wgXCYjMzQ7RXh0NCBTZWN1cml0eSBMYWJlbHNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTk3NwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgRVhUNCBKb3VybmFsIEluaXRpYWxpemF0aW9uKioKClJpZ2h0LCBzbyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGBFWFQ0X0ZTYCBhcyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBpdGVtLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBkZWVwZXIgaW50byB0aGUgam91cm5hbCBpbml0aWFsaXphdGlvbiBwcm9jZXNzLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAuIEkgd2FudCB0byBxdWlja2x5IGFzY2VydGFpbiBpdHMgY2FsbCBncmFwaCBhbmQgdXNhZ2UgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UuIEkmIzM5O20gdGhpbmtpbmcgSSYjMzk7bGwgd2FudCB0byB0cmFjZSBhbGwgaW5zdGFuY2VzIHdoZXJlIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgIGlzIGludm9rZWQuIFVuZGVyc3RhbmRpbmcgd2hlcmUgYW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHRyaWdnZXJlZCB3aWxsIGdpdmUgbWUgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZSBFWFQ0IGpvdXJuYWwgaXMgdmFsaWRhdGVkIGR1cmluZyBzdGFydHVwIGFuZCwgcG90ZW50aWFsbHksIGR1cmluZyBvdGhlciBvcGVyYXRpb25zLiBUaGlzIHdpbGwgaGVscCBkZXRlcm1pbmUgaWYgdGhlcmUgYXJlIHVuaW50ZW5kZWQgc2lkZSBlZmZlY3RzIG9yIHBvdGVudGlhbCBpc3N1ZXMgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwMzozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L2V4dDRfamJkMi5jPTQ5PXN0YXRpYyB2b2lkIGV4dDRfcHV0X25vam91cm5hbChoYW5kbGVfdCAqaGFuZGxlKVxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmMtNjMtICovXG5mcy9leHQ0L2V4dDRfamJkMi5jOjY0OnN0YXRpYyBpbnQgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG5mcy9leHQ0L2V4dDRfamJkMi5jLTY1LXtcbi0tXG5mcy9leHQ0L2V4dDRfamJkMi5jPTk3PWhhbmRsZV90ICpfX2V4dDRfam91cm5hbF9zdGFydF9zYihzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTExLVx0XHRcdFx0XHRfUkVUX0lQXyk7XG5mcy9leHQ0L2V4dDRfamJkMi5jOjExMjpcdGVyciA9IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzYik7XG5mcy9leHQ0L2V4dDRfamJkMi5jLTExMy1cdGlmIChlcnIgXHUwMDNjIDApXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuYz0xNTA9aGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0X3Jlc2VydmVkKGhhbmRsZV90ICpoYW5kbGUsIHVuc2lnbmVkIGludCBsaW5lLFxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTYxLVx0XHRcdFx0amJkMl9oYW5kbGVfYnVmZmVyX2NyZWRpdHMoaGFuZGxlKSwgX1JFVF9JUF8pO1xuZnMvZXh0NC9leHQ0X2piZDIuYzoxNjI6XHRlcnIgPSBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc2IpO1xuZnMvZXh0NC9leHQ0X2piZDIuYy0xNjMtXHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY1OTgKCQkJCQkJCW91dHB1dDogMTA4CgkJCQkJCQl0aG91Z2h0czogMjY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIFRoaXMgZXh0NCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGNoYW5nZXMgYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAgdG8gcmV0dXJuIGAtRVJPRlNgIGlmIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmF0aGVyIHRoYW4ganVzdCBpc3N1aW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhhdCYjMzk7cyBhIGRlZmluaXRlIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBJJiMzOTttIG1hcmtpbmcgaXQgYXMgV29ydGhGdXp6aW5nLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIHVzZSBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YCBhcyBhIGBGb2N1c1N5bWJvbGAsIGJ1dCBzaW5jZSBpdCYjMzk7cyBub3cgcmV0dXJuaW5nIGFuIGVycm9yIGNvZGUgYW5kIG5vdCBqdXN0IHdhcm5pbmcsIGl0IG1heSBpbnRyb2R1Y2UgYSBuZXcgcmV0dXJuIHBhdGguCgpIYW5nIG9uIGEgc2VjLCBtYXliZSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGlzbiYjMzk7dCBzbyBjcml0aWNhbCBmb3IgZnV6emluZz8gV2FpdCwgeWVzIGl0IGlzISBJdCYjMzk7cyBpbnZva2VkIGZvciAqZXZlcnkqIG1ldGFkYXRhIG1vZGlmaWNhdGlvbi4gVGhhdCYjMzk7cyBkZWZpbml0ZWx5IGEgaG90IHBhdGggdG8gaWdub3JlLiBBbHNvLCBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YCBpdHNlbGYgaXMgc3RhdGljLCBzbyBpdCYjMzk7cyBub3QgYSB2aWFibGUgZm9jdXMgc3ltYm9sIGVpdGhlci4gU28gSSYjMzk7dmUgZ290IHRvIGZvY3VzIG9uIHRoZSBwb2ludHMgb2YgZW50cnksIHRoZSBmdW5jdGlvbnMgdGhhdCB0cmlnZ2VyIHRoZSBmcmVlemluZywgc28gYGV4dDRfZnJlZXplYCBhbmQgYGV4dDRfdW5mcmVlemVgIGFyZSBteSByZWFsIGZvY3VzLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBjb25maWdzLi4uIHllcCwganVzdCBgRVhUNF9GU2AuIEFscmlnaHQsIEkmIzM5O3ZlIGdvdCBpdC4gVGhlIHJlYXNvbmluZyBoZXJlIGlzIHRoYXQgYnkgdGFyZ2V0aW5nIHRoZSBmaWxlc3lzdGVtIGZyZWV6ZS91bmZyZWV6ZSBvcGVyYXRpb25zLCBJIGNhbiBzcGVjaWZpY2FsbHkgdHJpZ2dlciB0aGlzIG5ldyBlcnJvciBjb25kaXRpb24gaW4gYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAsIGFuZCBob3BlZnVsbHkgZmluZCBzb21lIGludGVyZXN0aW5nIGVkZ2UgY2FzZXMgb3IgcmVsYXRlZCBpc3N1ZXMuIFRoaXMgY2hhbmdlIHNwZWNpZmljYWxseSBpbXBhY3RzIHRoZSBqb3VybmFsIGhhbmRsaW5nIGR1cmluZyBhIGZyZWV6ZSwgc28gdGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gY29uY2VudHJhdGUgbXkgZWZmb3J0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2ZyZWV6ZSYjMzQ7LAogICAgJiMzNDtleHQ0X3VuZnJlZXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFWFQ0X0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXh0NF9mcmVlemUmIzM0OywKICAgICYjMzQ7ZXh0NF91bmZyZWV6ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQgd2hlbiB0aGUgZmlsZXN5c3RlbSBpcyBmcm96ZW4sIHJldHVybmluZyAtRVJPRlMgaW5zdGVhZCBvZiB0cmlnZ2VyaW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGV4dDQgam91cm5hbCBoYW5kbGluZy4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gZmlsZXN5c3RlbSBmcmVlemUgb3BlcmF0aW9ucyB0byB0cmlnZ2VyIHRoaXMgcGF0aC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDAzOjM0OjQ0LjI3Mjk4ODA4NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwMDY0NDM0NDc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVYVDRfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJleHQ0X2ZyZWV6ZVwiLFxuICAgIFwiZXh0NF91bmZyZWV6ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNDo0NC4yNzI5OTQ0MDRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MTkwNzkwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDVhZDU2OTUwYzM5YmMyNzY2YmM0YTRlMTUyZmJiYTgyZmE2MjE4MzdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDM6MzQ6NDIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0X2piZDIuYyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmNcXG5pbmRleCA5YThjMjI1ZjI3NTMwOS4uMzEwYTA0ZGJlYmRkNjAgMTAwNjQ0XFxuLS0tIGEvZnMvZXh0NC9leHQ0X2piZDIuY1xcbisrKyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmNcXG5AQCAtNzUsNyArNzUsMTIgQEAgc3RhdGljIGludCBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4gXFx0aWYgKFdBUk5fT05fT05DRShzYl9yZG9ubHkoc2IpKSlcXG4gXFx0XFx0cmV0dXJuIC1FUk9GUztcXG4gXFxuLVxcdFdBUk5fT04oc2ItXFx1MDAzZXNfd3JpdGVycy5mcm96ZW4gPT0gU0JfRlJFRVpFX0NPTVBMRVRFKTtcXG4rXFx0aWYgKHVubGlrZWx5KHNiLVxcdTAwM2VzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSkpIHtcXG4rXFx0XFx0ZXh0NF9tc2coc2IsIEtFUk5fRVJSLFxcbitcXHRcXHRcXHQgXFxcIkF0dGVtcHQgdG8gc3RhcnQgYSBqb3VybmFsIHRyYW5zYWN0aW9uIG9uIGEgZnJvemVuIGZpbGVzeXN0ZW1cXFwiKTtcXG4rXFx0XFx0cmV0dXJuIC1FUk9GUztcXG4rXFx0fVxcbitcXG4gXFx0am91cm5hbCA9IEVYVDRfU0Ioc2IpLVxcdTAwM2VzX2pvdXJuYWw7XFxuIFxcdC8qXFxuIFxcdCAqIFNwZWNpYWwgY2FzZSBoZXJlOiBpZiB0aGUgam91cm5hbCBoYXMgYWJvcnRlZCBiZWhpbmQgb3VyXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDAzOjM0OjQ0Ljg1NTUzMjAyNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI5NDgxODgxMzQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVYVDRfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJleHQ0X2ZyZWV6ZVwiLFxuICAgIFwiZXh0NF91bmZyZWV6ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1YWQ1Njk1MGMzOWJjMjc2NmJjNGE0ZTE1MmZiYmE4MmZhNjIxODM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDM6MzQ6NDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dDRfamJkMi5jIGIvZnMvZXh0NC9leHQ0X2piZDIuY1xuaW5kZXggOWE4YzIyNWYyNzUzMDkuLjMxMGEwNGRiZWJkZDYwIDEwMDY0NFxuLS0tIGEvZnMvZXh0NC9leHQ0X2piZDIuY1xuKysrIGIvZnMvZXh0NC9leHQ0X2piZDIuY1xuQEAgLTc1LDcgKzc1LDEyIEBAIHN0YXRpYyBpbnQgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gXHRpZiAoV0FSTl9PTl9PTkNFKHNiX3Jkb25seShzYikpKVxuIFx0XHRyZXR1cm4gLUVST0ZTO1xuIFxuLVx0V0FSTl9PTihzYi1cdTAwM2VzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSk7XG4rXHRpZiAodW5saWtlbHkoc2ItXHUwMDNlc193cml0ZXJzLmZyb3plbiA9PSBTQl9GUkVFWkVfQ09NUExFVEUpKSB7XG4rXHRcdGV4dDRfbXNnKHNiLCBLRVJOX0VSUixcbitcdFx0XHQgXCJBdHRlbXB0IHRvIHN0YXJ0IGEgam91cm5hbCB0cmFuc2FjdGlvbiBvbiBhIGZyb3plbiBmaWxlc3lzdGVtXCIpO1xuK1x0XHRyZXR1cm4gLUVST0ZTO1xuK1x0fVxuK1xuIFx0am91cm5hbCA9IEVYVDRfU0Ioc2IpLVx1MDAzZXNfam91cm5hbDtcbiBcdC8qXG4gXHQgKiBTcGVjaWFsIGNhc2UgaGVyZTogaWYgdGhlIGpvdXJuYWwgaGFzIGFib3J0ZWQgYmVoaW5kIG91clxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzQ6NDQuODU1NTMzMDM0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk4NjY3NzMxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEV4dDQgSm91cm5hbCBDaGVjayBNb2RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YCB3aXRoaW4gYGZzL2V4dDQvZXh0NF9qYmQyLmNgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogdGhleSd2ZSByZXBsYWNlZCBhIHNpbXBsZSBgV0FSTl9PTmAgd2l0aCBhbiBhY3R1YWwgZXJyb3IgcmV0dXJuLiBTcGVjaWZpY2FsbHksIHRoZSBsaW5lIHRoYXQgd2FzIHByZXZpb3VzbHkgYFdBUk5fT04oc2ItXHUwMDNlc193cml0ZXJzLmZyb3plbiA9PSBTQl9GUkVFWkVfQ09NUExFVEUpO2AgaGFzIGJlZW4gbW9kaWZpZWQgdG8gaW5jbHVkZSBhbiBgaWYgKHVubGlrZWx5KC4uLikpYCBibG9jay4gVGhpcyBub3cgcmVzdWx0cyBpbiBhbiBgLUVST0ZTYCByZXR1cm4gaWYgdGhlIGZpbGVzeXN0ZW0gaXMgZnJvemVuLCBhbmQgYW4gZXJyb3IgbWVzc2FnZSBpcyBwcmludGVkLlxuXG5QcmV2aW91c2x5LCB0aGUgY29kZSB3b3VsZCBzaW1wbHkgZW1pdCBhIHdhcm5pbmcgYW5kIGNvbnRpbnVlIGV4ZWN1dGlvbiBpZiB0aGUgam91cm5hbCB3YXMgYXR0ZW1wdGVkIHRvIGJlIHN0YXJ0ZWQgb24gYSBmcm96ZW4gZmlsZXN5c3RlbS4gTm93IGl0IGV4cGxpY2l0bHkgcmV0dXJucyBhIHJlYWQtb25seSBmaWxlc3lzdGVtIGVycm9yIGNvZGUuIFRoaXMgaXMgYSBjcnVjaWFsIGRpZmZlcmVuY2UgYmVjYXVzZSB0aGUgcHJldmlvdXMgYmVoYXZpb3IgY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gaW4gY2VydGFpbiBzY2VuYXJpb3MgYnkgcHJvY2VlZGluZyB3aGVuIHRoZSBmaWxlc3lzdGVtIHN0YXRlIGlzIGNvbXByb21pc2VkLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsbHkgc2lnbmlmaWNhbnQgY2hhbmdlLCB0cmFuc2Zvcm1pbmcgYSB3YXJuaW5nIGludG8gYSBoYXJkIGVycm9yLCB3aGljaCBmb3JjZXMgdGhlIHN5c3RlbSB0byBoYW5kbGUgdGhlIHNpdHVhdGlvbiBhcHByb3ByaWF0ZWx5LiBMZXQgbWUgY29uZmlybSB0aGF0IGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgIGlzIGluZGVlZCB0aGUgZnVuY3Rpb24gaW4gcXVlc3Rpb24gYW5kIEknbGwgc3RhcnQgY2hlY2tpbmcgdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhpcyBpcyB1c2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTI4LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzQ6NDguODQyMjEyNDAyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3NDU3NDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfam91cm5hbF9jaGVja19zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L2V4dDRfamJkMi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvZXh0NF9qYmQyLmM9NDk9c3RhdGljIHZvaWQgZXh0NF9wdXRfbm9qb3VybmFsKGhhbmRsZV90ICpoYW5kbGUpXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jLTYzLSAqL1xcbmZzL2V4dDQvZXh0NF9qYmQyLmM6NjQ6c3RhdGljIGludCBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9leHQ0L2V4dDRfamJkMi5jLTY1LXtcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmM9OTc9aGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jLTExMS1cXHRcXHRcXHRcXHRcXHRfUkVUX0lQXyk7XFxuZnMvZXh0NC9leHQ0X2piZDIuYzoxMTI6XFx0ZXJyID0gZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHNiKTtcXG5mcy9leHQ0L2V4dDRfamJkMi5jLTExMy1cXHRpZiAoZXJyIFxcdTAwM2MgMClcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmM9MTUwPWhhbmRsZV90ICpfX2V4dDRfam91cm5hbF9zdGFydF9yZXNlcnZlZChoYW5kbGVfdCAqaGFuZGxlLCB1bnNpZ25lZCBpbnQgbGluZSxcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTYxLVxcdFxcdFxcdFxcdGpiZDJfaGFuZGxlX2J1ZmZlcl9jcmVkaXRzKGhhbmRsZSksIF9SRVRfSVBfKTtcXG5mcy9leHQ0L2V4dDRfamJkMi5jOjE2MjpcXHRlcnIgPSBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc2IpO1xcbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTYzLVxcdGlmIChlcnIgXFx1MDAzYyAwKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDAzOjM0OjQ4LjkxOTY3Nzg2NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NjE4MjM5MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGV4dDQgSm91cm5hbCBUcmFuc2FjdGlvbiBTdGFydCBQb2ludHMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YC4gVGhlIGZhY3QgdGhhdCBpdCdzIGBzdGF0aWNgIGlzIGludGVyZXN0aW5nLCBhbmQgaXQgc3VnZ2VzdHMgaXQncyBhbiBpbnRlcm5hbCBoZWxwZXIgZnVuY3Rpb24uIFJpZ2h0LCBpdCdzIGNhbGxlZCBieSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGFuZCBgX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWRgLiBUaG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cyBmb3IsIGVzc2VudGlhbGx5LCBzdGFydGluZyBhIGpvdXJuYWwgdHJhbnNhY3Rpb24sIHRoZSBmb3VuZGF0aW9uIG9mIGhvdyBleHQ0IGhhbmRsZXMgaXRzIGRhdGEgaW50ZWdyaXR5LlxuXG5JIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbGluZyBjb250ZXh0cy4gS25vd2luZyB3aGVyZSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGFuZCBgX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWRgIGFyZSB1c2VkIGlzIGNydWNpYWwuIFRoZXkncmUgbGlrZWx5IHVzZWQgZXh0ZW5zaXZlbHkgdGhyb3VnaG91dCB0aGUgZmlsZXN5c3RlbS4gQWx0aG91Z2gsIEkgZG9uJ3Qgd2FudCB0byBnZXQgZGlzdHJhY3RlZCBzbyBJJ2xsIGp1c3QgZm9jdXMgb24gdGhlbS5cblxuV2FpdCBhIHNlY29uZCwgaXMgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCBleHBvcnRlZD8gVGhhdCBjaGFuZ2VzIHRoaW5ncy4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0Li4uIHRoaXMgY291bGQgYmUgdmVyeSBpbXBvcnRhbnQgdG8gdGhlIG92ZXJhbGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAxMiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNDo1Mi40ODE1MDUwNTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM1MDAyMzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4dDQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvZXh0NF9qYmQyLmM9NjQ9c3RhdGljIGludCBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmMtOTYtXFxuZnMvZXh0NC9leHQ0X2piZDIuYzo5NzpoYW5kbGVfdCAqX19leHQ0X2pvdXJuYWxfc3RhcnRfc2Ioc3RydWN0IGlub2RlICppbm9kZSxcXG5mcy9leHQ0L2V4dDRfamJkMi5jLTk4LVxcdFxcdFxcdFxcdCAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQgaW50IGxpbmUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5oPTE2Mz1pbnQgX19leHQ0X2hhbmRsZV9kaXJ0eV9tZXRhZGF0YShjb25zdCBjaGFyICp3aGVyZSwgdW5zaWduZWQgaW50IGxpbmUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5oLTE3OS1cXG5mcy9leHQ0L2V4dDRfamJkMi5oOjE4MDpoYW5kbGVfdCAqX19leHQ0X2pvdXJuYWxfc3RhcnRfc2Ioc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYixcXG5mcy9leHQ0L2V4dDRfamJkMi5oLTE4MS1cXHRcXHRcXHRcXHQgIHVuc2lnbmVkIGludCBsaW5lLCBpbnQgdHlwZSwgaW50IGJsb2NrcyxcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmg9MjE2PXN0YXRpYyBpbmxpbmUgaW50IGV4dDRfdHJhbnNfZGVmYXVsdF9yZXZva2VfY3JlZGl0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbi0tXFxuZnMvZXh0NC9leHQ0X2piZDIuaC0yMjEtI2RlZmluZSBleHQ0X2pvdXJuYWxfc3RhcnRfc2Ioc2IsIHR5cGUsIG5ibG9ja3MpXFx0XFx0XFx0XFxcXFxcbmZzL2V4dDQvZXh0NF9qYmQyLmg6MjIyOlxcdF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKE5VTEwsIChzYiksIF9fTElORV9fLCAodHlwZSksIChuYmxvY2tzKSwgMCxcXFxcXFxuZnMvZXh0NC9leHQ0X2piZDIuaC0yMjMtXFx0XFx0XFx0XFx0ZXh0NF90cmFuc19kZWZhdWx0X3Jldm9rZV9jcmVkaXRzKHNiKSlcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmg9MjM3PXN0YXRpYyBpbmxpbmUgaGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0KHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5oLTI0MS17XFxuZnMvZXh0NC9leHQ0X2piZDIuaDoyNDI6XFx0cmV0dXJuIF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKGlub2RlLCBpbm9kZS1cXHUwMDNlaV9zYiwgbGluZSwgdHlwZSwgYmxvY2tzLFxcbmZzL2V4dDQvZXh0NF9qYmQyLmgtMjQzLVxcdFxcdFxcdFxcdCAgICAgICByc3ZfYmxvY2tzLCByZXZva2VfY3JlZHMpO1xcbi0tXFxuZnMvZXh0NC9pYWxsb2MuYz05MzM9c3RydWN0IGlub2RlICpfX2V4dDRfbmV3X2lub2RlKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLFxcbi0tXFxuZnMvZXh0NC9pYWxsb2MuYy0xMDg4LVxcdFxcdFxcdEJVR19PTihuYmxvY2tzIFxcdTAwM2M9IDApO1xcbmZzL2V4dDQvaWFsbG9jLmM6MTA4OTpcXHRcXHRcXHRoYW5kbGUgPSBfX2V4dDRfam91cm5hbF9zdGFydF9zYihOVUxMLCBkaXItXFx1MDAzZWlfc2IsXFxuZnMvZXh0NC9pYWxsb2MuYy0xMDkwLVxcdFxcdFxcdFxcdCBsaW5lX25vLCBoYW5kbGVfdHlwZSwgbmJsb2NrcywgMCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzQ6NTIuODE2NTEyMzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTA0NTQ0MjA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRXh0NCBGaWxlc3lzdGVtIEpvdXJuYWxpbmcgVnVsbmVyYWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZXh0NCBqb3VybmFsaW5nIGNvZGUsIHNwZWNpZmljYWxseSBhcm91bmQgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCwgd2hpY2ggaXMgdGhlIGNvcmUgZnVuY3Rpb24gY2FsbGVkIGJ5IGBleHQ0X2pvdXJuYWxfc3RhcnRgIGFuZCBgZXh0NF9qb3VybmFsX3N0YXJ0X3NiYC4gR2l2ZW4gaG93IHBlcnZhc2l2ZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGluIHRoZSBmaWxlc3lzdGVtIGZvciAqYW55KiBtZXRhZGF0YSBjaGFuZ2UsIGZ1enppbmcgZGlyZWN0bHkgYXQgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCBmZWVscyBhIGJpdCB0b28gYnJvYWQgdG8gYmUgaW1tZWRpYXRlbHkgdXNlZnVsLiBJdCdzIHRoZSB1bHRpbWF0ZSBlbnRyeSBwb2ludCwgZ3JhbnRlZCwgYnV0IGxldCdzIHNlZSBpZiB3ZSBjYW4gZmluZCBzb21lIG90aGVyIGZ1bmN0aW9ucyB0aGF0ICp0cmlnZ2VyKiB0aGlzIG9uZSBpbiBhIG1vcmUgdGFyZ2V0ZWQgd2F5LlxuXG5UaGUgY29yZSBpc3N1ZSBoZXJlIGlzIHN0YXJ0aW5nIGEgam91cm5hbCB0cmFuc2FjdGlvbiBvbiBhIGZpbGVzeXN0ZW0gdGhhdCdzIGJlZW4gZnJvemVuLiBGcmVlemUgaXMgZG9uZSB2aWEgYGlvY3RsKEZJRlJFRVpFKWAgb3IgYSBzaW1pbGFyIG1lY2hhbmlzbS4gVGhlIHBhdGNoIHNlZW1zIHRvIGZpeCBhIHNjZW5hcmlvIHdoZXJlIHRoZSBhdHRlbXB0IHRvIHN0YXJ0IGEgdHJhbnNhY3Rpb24gb24gYSBmcm96ZW4gZmlsZXN5c3RlbSB3YXMgcHJldmlvdXNseSBnZW5lcmF0aW5nIGEgYFdBUk5fT05gLCBhbmQgdGhhdCdzIGJlZW4gcmVwbGFjZWQgd2l0aCByZXR1cm5pbmcgYC1FUk9GU2AgaW5zdGVhZC4gSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGRpZmZlcmVuY2UgaW4gYmVoYXZpb3IuIERlZmluaXRlbHkgd29ydGggbG9va2luZyBpbnRvIGZvciBmdXp6aW5nLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIGZvY3VzIG9uIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgYW5kIGBfX2V4dDRfam91cm5hbF9zdGFydF9yZXNlcnZlZGAsIGJ1dCB0aGVuIEkgcmVtZW1iZXIgdGhhdCBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGlzIGEgKnZlcnkqIGhvdCBwYXRoIGZ1bmN0aW9uLiBSaWdodCEgVGhlIGRvY3VtZW50YXRpb24gYWR2aXNlcyBhZ2FpbnN0IGxpc3RpbmcgdGhvc2UgZ2VuZXJpYyBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2luZyBvdXIgdGVzdCBkaXN0cmlidXRpb24sIG1lYW5pbmcgd2UgbWlnaHQgZW5kIHVwIHRlc3RpbmcgYW4gYXJlYSB0aGF0IGlzIGFscmVhZHkgd2VsbC10ZXN0ZWQuIFNvLCBJIGhhdmUgdG8gcmV0aGluay4gSWYgbm90IGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAsIHdoYXQgdGhlbj9cblxuUGVyaGFwcyB0aGUgZm9jdXMgc2hvdWxkIHNoaWZ0IHRvIHRoZSBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRoZW1zZWx2ZXMuIGBleHQ0X2ZyZWV6ZWAgbWlnaHQgYmUgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBXZSBuZWVkIHRvIGlkZW50aWZ5IGZ1bmN0aW9ucyBhbmQgaW5wdXRzIHRoYXQgdHJpZ2dlciB0aGUgZnJlZXplIGFuZCB0aGVuIGF0dGVtcHQgdG8gc3RhcnQgdGhlIHByb2JsZW1hdGljIHRyYW5zYWN0aW9uLiBXZSBzaG91bGQgZXhwbG9yZSB3YXlzIHRvIGZ1enogdGhlIGZyZWV6ZSBhbmQgdHJhbnNhY3Rpb24gc3RhcnQgc2VxdWVuY2VzLiBJIHRoaW5rIHRoaXMgd2lsbCBiZSB0aGUgbW9zdCBlZmZlY3RpdmUgd2F5IHRvIHRyaWdnZXIgdGhlIHZ1bG5lcmFiaWxpdHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxMTUsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzQ6NTguMzIxMDU4NTg4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2NTU5NjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfZnJlZXplXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4dDQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvc3VwZXIuYz03OT1zdGF0aWMgaW50IGV4dDRfdW5mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuZnMvZXh0NC9zdXBlci5jOjgwOnN0YXRpYyBpbnQgZXh0NF9mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuZnMvZXh0NC9zdXBlci5jLTgxLXN0YXRpYyBpbmxpbmUgaW50IGV4dDJfZmVhdHVyZV9zZXRfb2soc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuLS1cXG5mcy9leHQ0L3N1cGVyLmM9MTY2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgZXh0NF9zb3BzID0ge1xcbi0tXFxuZnMvZXh0NC9zdXBlci5jLTE2NzEtXFx0LnN5bmNfZnNcXHQ9IGV4dDRfc3luY19mcyxcXG5mcy9leHQ0L3N1cGVyLmM6MTY3MjpcXHQuZnJlZXplX2ZzXFx0PSBleHQ0X2ZyZWV6ZSxcXG5mcy9leHQ0L3N1cGVyLmMtMTY3My1cXHQudW5mcmVlemVfZnNcXHQ9IGV4dDRfdW5mcmVlemUsXFxuLS1cXG5mcy9leHQ0L3N1cGVyLmM9NjQzNz1zdGF0aWMgaW50IGV4dDRfc3luY19mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgd2FpdClcXG4tLVxcbmZzL2V4dDQvc3VwZXIuYy02NDkwLSAqL1xcbmZzL2V4dDQvc3VwZXIuYzo2NDkxOnN0YXRpYyBpbnQgZXh0NF9mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9leHQ0L3N1cGVyLmMtNjQ5Mi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDAzOjM0OjU4LjM5NzYyMjA1MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwNzkxNDg4OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBleHQ0IEZpbGVzeXN0ZW0gRnJlZXplIEJ1ZyoqXG5cbk9rYXksIHNvIGBleHQ0X2ZyZWV6ZWAgaXMgZGVmaW5pdGVseSB0aGUgZnVuY3Rpb24gdGhhdCBmcmVlemVzIHRoZSBmaWxlc3lzdGVtLiBUaGUgY29yZSBvZiB0aGlzIGJ1ZyBpcyB0aGF0IHNvbWV0aGluZydzIHRyeWluZyB0byBzdGFydCBhIHRyYW5zYWN0aW9uICp3aGlsZSogdGhlIGZpbGVzeXN0ZW0gaXMgZnJvemVuLCB3aGljaCBpcyBjbGVhcmx5IHByb2JsZW1hdGljLiBUaGUgcXVlc3Rpb24gaXM6IHdoYXQgb3BlcmF0aW9uIGlzIHRyaWdnZXJpbmcgdGhpcz9cblxuVGhlIGNvbW1pdCBtZXNzYWdlIHBvaW50cyB0byBhIHBhdGNoIHJlbGF0ZWQgdG8gYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAsIHdoaWNoIGlzIGEgaGVscGZ1bCBjbHVlLiBXaXRob3V0IGtub3dpbmcgdGhlIGV4YWN0IGN1bHByaXQgb3BlcmF0aW9uLCBJIHNob3VsZCBmb2N1cyBvbiByZWxhdGVkIHN5bWJvbHMuIEknbGwgaW5jbHVkZSBgZXh0NF9mcmVlemVgIGFuZCBgZXh0NF91bmZyZWV6ZWAgYXMgZm9jdXMgc3ltYm9scy4gUGVyaGFwcyBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIHNob3VsZCBhbHNvIGJlIGluY2x1ZGVkPyBXYWl0LCBob2xkIG9uLiBTaW5jZSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGlzIGxpa2VseSBhIGhvdCBwYXRoLCBpdCBnZXRzIGNhbGxlZCBhbGwgdGhlIHRpbWUuIElmIEkgZG9uJ3QgbGlzdCBpdCBleHBsaWNpdGx5LCB0aGUgZnV6emVyIHdpbGwgcHJvYmFibHkgaGl0IGl0IG5hdHVyYWxseSBiZWNhdXNlIGl0J3MgcGFydCBvZiBhbG1vc3QgZXZlcnkgZXh0NCBvcGVyYXRpb24uIFNvIGxpc3RpbmcgaXQgbWlnaHQganVzdCBhZGQgbm9pc2UuIEknbGwgc3RpY2sgdG8gYGV4dDRfZnJlZXplYCB0byBlbnN1cmUgdGhlIGZ1enplciBpcyBkZWxpYmVyYXRlbHkgYXR0ZW1wdGluZyB0byBmcmVlemUgdGhlIGZpbGVzeXN0ZW0gZHVyaW5nIGl0cyBvcGVyYXRpb24uXG5cbkZpbmFsbHksIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHRvIHJlcHJvZHVjZSB0aGlzIGJ1Zy4gSXQgc2VlbXMgdGhhdCBgRVhUNF9GU2AgaXMgYSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE5NiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNTowMy40NzY3NzMxNzVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4Mjg4NzI0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRVhUNF9GU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXh0NC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMvZXh0NC9LY29uZmlnOjI6Y29uZmlnIEVYVDRfRlNcXG5mcy9leHQ0L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiVGhlIEV4dGVuZGVkIDQgKGV4dDQpIGZpbGVzeXN0ZW1cXFwiXFxuLS1cXG5mcy9leHQ0L0tjb25maWc9MzU9Y29uZmlnIEVYVDRfVVNFX0ZPUl9FWFQyXFxuLS1cXG5mcy9leHQ0L0tjb25maWctNDUtXFxuZnMvZXh0NC9LY29uZmlnOjQ2OmNvbmZpZyBFWFQ0X0ZTX1BPU0lYX0FDTFxcbmZzL2V4dDQvS2NvbmZpZy00Ny1cXHRib29sIFxcXCJFeHQ0IFBPU0lYIEFjY2VzcyBDb250cm9sIExpc3RzXFxcIlxcbi0tXFxuZnMvZXh0NC9LY29uZmlnLTU1LVxcbmZzL2V4dDQvS2NvbmZpZzo1Njpjb25maWcgRVhUNF9GU19TRUNVUklUWVxcbmZzL2V4dDQvS2NvbmZpZy01Ny1cXHRib29sIFxcXCJFeHQ0IFNlY3VyaXR5IExhYmVsc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzU6MDMuNjU5NjY2OTU5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1MDc3NzI3NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgRVhUNCBKb3VybmFsIEluaXRpYWxpemF0aW9uKipcblxuUmlnaHQsIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBgRVhUNF9GU2AgYXMgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaXRlbS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgZGVlcGVyIGludG8gdGhlIGpvdXJuYWwgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcywgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgLiBJIHdhbnQgdG8gcXVpY2tseSBhc2NlcnRhaW4gaXRzIGNhbGwgZ3JhcGggYW5kIHVzYWdlIHRocm91Z2hvdXQgdGhlIGNvZGViYXNlLiBJJ20gdGhpbmtpbmcgSSdsbCB3YW50IHRvIHRyYWNlIGFsbCBpbnN0YW5jZXMgd2hlcmUgYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAgaXMgaW52b2tlZC4gVW5kZXJzdGFuZGluZyB3aGVyZSBhbmQgaG93IHRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdpbGwgZ2l2ZSBtZSBhIGNvbXByZWhlbnNpdmUgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlIEVYVDQgam91cm5hbCBpcyB2YWxpZGF0ZWQgZHVyaW5nIHN0YXJ0dXAgYW5kLCBwb3RlbnRpYWxseSwgZHVyaW5nIG90aGVyIG9wZXJhdGlvbnMuIFRoaXMgd2lsbCBoZWxwIGRldGVybWluZSBpZiB0aGVyZSBhcmUgdW5pbnRlbmRlZCBzaWRlIGVmZmVjdHMgb3IgcG90ZW50aWFsIGlzc3VlcyBpbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU5NzcsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNTowOC4xNjc0NDI5MjJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0MDUzMDc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfam91cm5hbF9jaGVja19zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2V4dDRfamJkMi5jPTQ5PXN0YXRpYyB2b2lkIGV4dDRfcHV0X25vam91cm5hbChoYW5kbGVfdCAqaGFuZGxlKVxcbi0tXFxuZnMvZXh0NC9leHQ0X2piZDIuYy02My0gKi9cXG5mcy9leHQ0L2V4dDRfamJkMi5jOjY0OnN0YXRpYyBpbnQgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuZnMvZXh0NC9leHQ0X2piZDIuYy02NS17XFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jPTk3PWhhbmRsZV90ICpfX2V4dDRfam91cm5hbF9zdGFydF9zYihzdHJ1Y3QgaW5vZGUgKmlub2RlLFxcbi0tXFxuZnMvZXh0NC9leHQ0X2piZDIuYy0xMTEtXFx0XFx0XFx0XFx0XFx0X1JFVF9JUF8pO1xcbmZzL2V4dDQvZXh0NF9qYmQyLmM6MTEyOlxcdGVyciA9IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzYik7XFxuZnMvZXh0NC9leHQ0X2piZDIuYy0xMTMtXFx0aWYgKGVyciBcXHUwMDNjIDApXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jPTE1MD1oYW5kbGVfdCAqX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWQoaGFuZGxlX3QgKmhhbmRsZSwgdW5zaWduZWQgaW50IGxpbmUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jLTE2MS1cXHRcXHRcXHRcXHRqYmQyX2hhbmRsZV9idWZmZXJfY3JlZGl0cyhoYW5kbGUpLCBfUkVUX0lQXyk7XFxuZnMvZXh0NC9leHQ0X2piZDIuYzoxNjI6XFx0ZXJyID0gZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHNiKTtcXG5mcy9leHQ0L2V4dDRfamJkMi5jLTE2My1cXHRpZiAoZXJyIFxcdTAwM2MgMCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNTowOC4yMzE1MDk2MTdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg1NzA2NDY5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciBUaGlzIGV4dDQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGNoYW5nZXMgYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAgdG8gcmV0dXJuIGAtRVJPRlNgIGlmIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmF0aGVyIHRoYW4ganVzdCBpc3N1aW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhhdCdzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIEknbSBtYXJraW5nIGl0IGFzIFdvcnRoRnV6emluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byB1c2UgYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAgYXMgYSBgRm9jdXNTeW1ib2xgLCBidXQgc2luY2UgaXQncyBub3cgcmV0dXJuaW5nIGFuIGVycm9yIGNvZGUgYW5kIG5vdCBqdXN0IHdhcm5pbmcsIGl0IG1heSBpbnRyb2R1Y2UgYSBuZXcgcmV0dXJuIHBhdGguXG5cbkhhbmcgb24gYSBzZWMsIG1heWJlIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgaXNuJ3Qgc28gY3JpdGljYWwgZm9yIGZ1enppbmc/IFdhaXQsIHllcyBpdCBpcyEgSXQncyBpbnZva2VkIGZvciAqZXZlcnkqIG1ldGFkYXRhIG1vZGlmaWNhdGlvbi4gVGhhdCdzIGRlZmluaXRlbHkgYSBob3QgcGF0aCB0byBpZ25vcmUuIEFsc28sIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgIGl0c2VsZiBpcyBzdGF0aWMsIHNvIGl0J3Mgbm90IGEgdmlhYmxlIGZvY3VzIHN5bWJvbCBlaXRoZXIuIFNvIEkndmUgZ290IHRvIGZvY3VzIG9uIHRoZSBwb2ludHMgb2YgZW50cnksIHRoZSBmdW5jdGlvbnMgdGhhdCB0cmlnZ2VyIHRoZSBmcmVlemluZywgc28gYGV4dDRfZnJlZXplYCBhbmQgYGV4dDRfdW5mcmVlemVgIGFyZSBteSByZWFsIGZvY3VzLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3MuLi4geWVwLCBqdXN0IGBFWFQ0X0ZTYC4gQWxyaWdodCwgSSd2ZSBnb3QgaXQuIFRoZSByZWFzb25pbmcgaGVyZSBpcyB0aGF0IGJ5IHRhcmdldGluZyB0aGUgZmlsZXN5c3RlbSBmcmVlemUvdW5mcmVlemUgb3BlcmF0aW9ucywgSSBjYW4gc3BlY2lmaWNhbGx5IHRyaWdnZXIgdGhpcyBuZXcgZXJyb3IgY29uZGl0aW9uIGluIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgLCBhbmQgaG9wZWZ1bGx5IGZpbmQgc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzIG9yIHJlbGF0ZWQgaXNzdWVzLiBUaGlzIGNoYW5nZSBzcGVjaWZpY2FsbHkgaW1wYWN0cyB0aGUgam91cm5hbCBoYW5kbGluZyBkdXJpbmcgYSBmcmVlemUsIHNvIHRoYXQncyB3aGVyZSBJIG5lZWQgdG8gY29uY2VudHJhdGUgbXkgZWZmb3J0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjU5OCwiT3V0cHV0VG9rZW5zIjoxMDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzU6MTQuMDg4NTc3MjA0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ4ODMyODA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9mcmVlemVcIixcbiAgICBcImV4dDRfdW5mcmVlemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQgd2hlbiB0aGUgZmlsZXN5c3RlbSBpcyBmcm96ZW4sIHJldHVybmluZyAtRVJPRlMgaW5zdGVhZCBvZiB0cmlnZ2VyaW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGV4dDQgam91cm5hbCBoYW5kbGluZy4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gZmlsZXN5c3RlbSBmcmVlemUgb3BlcmF0aW9ucyB0byB0cmlnZ2VyIHRoaXMgcGF0aC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9mcmVlemVcIixcbiAgICBcImV4dDRfdW5mcmVlemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQgd2hlbiB0aGUgZmlsZXN5c3RlbSBpcyBmcm96ZW4sIHJldHVybmluZyAtRVJPRlMgaW5zdGVhZCBvZiB0cmlnZ2VyaW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGV4dDQgam91cm5hbCBoYW5kbGluZy4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gZmlsZXN5c3RlbSBmcmVlemUgb3BlcmF0aW9ucyB0byB0cmlnZ2VyIHRoaXMgcGF0aC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowr78kl[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-25 02:50:21 +0000 UTC FinishedAt: 2026-07-25 03:35:15 +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": "e2a936998ab25cf7272847356390041c3143b498", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "e2a936998ab25cf7272847356390041c3143b498", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EXT4_FS" ], "series_id": "8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18" }, "track": "KASAN", "fuzz": { "focus": [ "fs" ], "focus_symbols": [ "ext4_freeze", "ext4_unfreeze" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2ZyZWV6ZSYjMzQ7LAogICAgJiMzNDtleHQ0X3VuZnJlZXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNWFkNTY5NTBjMzliYzI3NjZiYzRhNGUxNTJmYmJhODJmYTYyMTgzN1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDI1IDAzOjM0OjQyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2ZzL2V4dDQvZXh0NF9qYmQyLmMgYi9mcy9leHQ0L2V4dDRfamJkMi5jXG5pbmRleCA5YThjMjI1ZjI3NTMwOS4uMzEwYTA0ZGJlYmRkNjAgMTAwNjQ0XG4tLS0gYS9mcy9leHQ0L2V4dDRfamJkMi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9mcy9leHQ0L2V4dDRfamJkMi5jXG5AQCAtNzUsNyAmIzQzOzc1LDEyIEBAIHN0YXRpYyBpbnQgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gXHRpZiAoV0FSTl9PTl9PTkNFKHNiX3Jkb25seShzYikpKVxuIFx0XHRyZXR1cm4gLUVST0ZTO1xuIFxuLVx0V0FSTl9PTihzYi1cdTAwM2VzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSk7XG4mIzQzO1x0aWYgKHVubGlrZWx5KHNiLVx1MDAzZXNfd3JpdGVycy5mcm96ZW4gPT0gU0JfRlJFRVpFX0NPTVBMRVRFKSkge1xuJiM0MztcdFx0ZXh0NF9tc2coc2IsIEtFUk5fRVJSLFxuJiM0MztcdFx0XHQgXCYjMzQ7QXR0ZW1wdCB0byBzdGFydCBhIGpvdXJuYWwgdHJhbnNhY3Rpb24gb24gYSBmcm96ZW4gZmlsZXN5c3RlbVwmIzM0Oyk7XG4mIzQzO1x0XHRyZXR1cm4gLUVST0ZTO1xuJiM0MztcdH1cbiYjNDM7XG4gXHRqb3VybmFsID0gRVhUNF9TQihzYiktXHUwMDNlc19qb3VybmFsO1xuIFx0LypcbiBcdCAqIFNwZWNpYWwgY2FzZSBoZXJlOiBpZiB0aGUgam91cm5hbCBoYXMgYWJvcnRlZCBiZWhpbmQgb3VyXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2ZyZWV6ZSYjMzQ7LAogICAgJiMzNDtleHQ0X3VuZnJlZXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNWFkNTY5NTBjMzliYzI3NjZiYzRhNGUxNTJmYmJhODJmYTYyMTgzNwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgSnVsIDI1IDAzOjM0OjQyIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0X2piZDIuYyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmMKaW5kZXggOWE4YzIyNWYyNzUzMDkuLjMxMGEwNGRiZWJkZDYwIDEwMDY0NAotLS0gYS9mcy9leHQ0L2V4dDRfamJkMi5jCiYjNDM7JiM0MzsmIzQzOyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmMKQEAgLTc1LDcgJiM0Mzs3NSwxMiBAQCBzdGF0aWMgaW50IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCWlmIChXQVJOX09OX09OQ0Uoc2JfcmRvbmx5KHNiKSkpCiAJCXJldHVybiAtRVJPRlM7CiAKLQlXQVJOX09OKHNiLSZndDtzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSk7CiYjNDM7CWlmICh1bmxpa2VseShzYi0mZ3Q7c193cml0ZXJzLmZyb3plbiA9PSBTQl9GUkVFWkVfQ09NUExFVEUpKSB7CiYjNDM7CQlleHQ0X21zZyhzYiwgS0VSTl9FUlIsCiYjNDM7CQkJICYjMzQ7QXR0ZW1wdCB0byBzdGFydCBhIGpvdXJuYWwgdHJhbnNhY3Rpb24gb24gYSBmcm96ZW4gZmlsZXN5c3RlbSYjMzQ7KTsKJiM0MzsJCXJldHVybiAtRVJPRlM7CiYjNDM7CX0KJiM0MzsKIAlqb3VybmFsID0gRVhUNF9TQihzYiktJmd0O3Nfam91cm5hbDsKIAkvKgogCSAqIFNwZWNpYWwgY2FzZSBoZXJlOiBpZiB0aGUgam91cm5hbCBoYXMgYWJvcnRlZCBiZWhpbmQgb3VyCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxMjgKCQkJCQkJCW91dHB1dDogNDEKCQkJCQkJCXRob3VnaHRzOiAxODgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBFeHQ0IEpvdXJuYWwgQ2hlY2sgTW9kaWZpY2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YCB3aXRoaW4gYGZzL2V4dDQvZXh0NF9qYmQyLmNgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogdGhleSYjMzk7dmUgcmVwbGFjZWQgYSBzaW1wbGUgYFdBUk5fT05gIHdpdGggYW4gYWN0dWFsIGVycm9yIHJldHVybi4gU3BlY2lmaWNhbGx5LCB0aGUgbGluZSB0aGF0IHdhcyBwcmV2aW91c2x5IGBXQVJOX09OKHNiLSZndDtzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSk7YCBoYXMgYmVlbiBtb2RpZmllZCB0byBpbmNsdWRlIGFuIGBpZiAodW5saWtlbHkoLi4uKSlgIGJsb2NrLiBUaGlzIG5vdyByZXN1bHRzIGluIGFuIGAtRVJPRlNgIHJldHVybiBpZiB0aGUgZmlsZXN5c3RlbSBpcyBmcm96ZW4sIGFuZCBhbiBlcnJvciBtZXNzYWdlIGlzIHByaW50ZWQuCgpQcmV2aW91c2x5LCB0aGUgY29kZSB3b3VsZCBzaW1wbHkgZW1pdCBhIHdhcm5pbmcgYW5kIGNvbnRpbnVlIGV4ZWN1dGlvbiBpZiB0aGUgam91cm5hbCB3YXMgYXR0ZW1wdGVkIHRvIGJlIHN0YXJ0ZWQgb24gYSBmcm96ZW4gZmlsZXN5c3RlbS4gTm93IGl0IGV4cGxpY2l0bHkgcmV0dXJucyBhIHJlYWQtb25seSBmaWxlc3lzdGVtIGVycm9yIGNvZGUuIFRoaXMgaXMgYSBjcnVjaWFsIGRpZmZlcmVuY2UgYmVjYXVzZSB0aGUgcHJldmlvdXMgYmVoYXZpb3IgY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gaW4gY2VydGFpbiBzY2VuYXJpb3MgYnkgcHJvY2VlZGluZyB3aGVuIHRoZSBmaWxlc3lzdGVtIHN0YXRlIGlzIGNvbXByb21pc2VkLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsbHkgc2lnbmlmaWNhbnQgY2hhbmdlLCB0cmFuc2Zvcm1pbmcgYSB3YXJuaW5nIGludG8gYSBoYXJkIGVycm9yLCB3aGljaCBmb3JjZXMgdGhlIHN5c3RlbSB0byBoYW5kbGUgdGhlIHNpdHVhdGlvbiBhcHByb3ByaWF0ZWx5LiBMZXQgbWUgY29uZmlybSB0aGF0IGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgIGlzIGluZGVlZCB0aGUgZnVuY3Rpb24gaW4gcXVlc3Rpb24gYW5kIEkmIzM5O2xsIHN0YXJ0IGNoZWNraW5nIHRoZSBjb250ZXh0IGluIHdoaWNoIHRoaXMgaXMgdXNlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwMzozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0L2V4dDRfamJkMi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL2V4dDQvZXh0NF9qYmQyLmM9NDk9c3RhdGljIHZvaWQgZXh0NF9wdXRfbm9qb3VybmFsKGhhbmRsZV90ICpoYW5kbGUpXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuYy02My0gKi9cbmZzL2V4dDQvZXh0NF9qYmQyLmM6NjQ6c3RhdGljIGludCBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbmZzL2V4dDQvZXh0NF9qYmQyLmMtNjUte1xuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmM9OTc9aGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuYy0xMTEtXHRcdFx0XHRcdF9SRVRfSVBfKTtcbmZzL2V4dDQvZXh0NF9qYmQyLmM6MTEyOlx0ZXJyID0gZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHNiKTtcbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTEzLVx0aWYgKGVyciBcdTAwM2MgMClcbi0tXG5mcy9leHQ0L2V4dDRfamJkMi5jPTE1MD1oYW5kbGVfdCAqX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWQoaGFuZGxlX3QgKmhhbmRsZSwgdW5zaWduZWQgaW50IGxpbmUsXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuYy0xNjEtXHRcdFx0XHRqYmQyX2hhbmRsZV9idWZmZXJfY3JlZGl0cyhoYW5kbGUpLCBfUkVUX0lQXyk7XG5mcy9leHQ0L2V4dDRfamJkMi5jOjE2MjpcdGVyciA9IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzYik7XG5mcy9leHQ0L2V4dDRfamJkMi5jLTE2My1cdGlmIChlcnIgXHUwMDNjIDApIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwMzozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMDEyCgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMTQ2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBleHQ0IEpvdXJuYWwgVHJhbnNhY3Rpb24gU3RhcnQgUG9pbnRzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YC4gVGhlIGZhY3QgdGhhdCBpdCYjMzk7cyBgc3RhdGljYCBpcyBpbnRlcmVzdGluZywgYW5kIGl0IHN1Z2dlc3RzIGl0JiMzOTtzIGFuIGludGVybmFsIGhlbHBlciBmdW5jdGlvbi4gUmlnaHQsIGl0JiMzOTtzIGNhbGxlZCBieSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGFuZCBgX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWRgLiBUaG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cyBmb3IsIGVzc2VudGlhbGx5LCBzdGFydGluZyBhIGpvdXJuYWwgdHJhbnNhY3Rpb24sIHRoZSBmb3VuZGF0aW9uIG9mIGhvdyBleHQ0IGhhbmRsZXMgaXRzIGRhdGEgaW50ZWdyaXR5LgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNhbGxpbmcgY29udGV4dHMuIEtub3dpbmcgd2hlcmUgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCBhbmQgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3Jlc2VydmVkYCBhcmUgdXNlZCBpcyBjcnVjaWFsLiBUaGV5JiMzOTtyZSBsaWtlbHkgdXNlZCBleHRlbnNpdmVseSB0aHJvdWdob3V0IHRoZSBmaWxlc3lzdGVtLiBBbHRob3VnaCwgSSBkb24mIzM5O3Qgd2FudCB0byBnZXQgZGlzdHJhY3RlZCBzbyBJJiMzOTtsbCBqdXN0IGZvY3VzIG9uIHRoZW0uCgpXYWl0IGEgc2Vjb25kLCBpcyBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGV4cG9ydGVkPyBUaGF0IGNoYW5nZXMgdGhpbmdzLiBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQuLi4gdGhpcyBjb3VsZCBiZSB2ZXJ5IGltcG9ydGFudCB0byB0aGUgb3ZlcmFsbCBwaWN0dXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O19fZXh0NF9qb3VybmFsX3N0YXJ0X3NiJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvZXh0NC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9leHQ0X2piZDIuYz02ND1zdGF0aWMgaW50IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmMtOTYtXG5mcy9leHQ0L2V4dDRfamJkMi5jOjk3OmhhbmRsZV90ICpfX2V4dDRfam91cm5hbF9zdGFydF9zYihzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuZnMvZXh0NC9leHQ0X2piZDIuYy05OC1cdFx0XHRcdCAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQgaW50IGxpbmUsXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuaD0xNjM9aW50IF9fZXh0NF9oYW5kbGVfZGlydHlfbWV0YWRhdGEoY29uc3QgY2hhciAqd2hlcmUsIHVuc2lnbmVkIGludCBsaW5lLFxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmgtMTc5LVxuZnMvZXh0NC9leHQ0X2piZDIuaDoxODA6aGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsXG5mcy9leHQ0L2V4dDRfamJkMi5oLTE4MS1cdFx0XHRcdCAgdW5zaWduZWQgaW50IGxpbmUsIGludCB0eXBlLCBpbnQgYmxvY2tzLFxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmg9MjE2PXN0YXRpYyBpbmxpbmUgaW50IGV4dDRfdHJhbnNfZGVmYXVsdF9yZXZva2VfY3JlZGl0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmgtMjIxLSNkZWZpbmUgZXh0NF9qb3VybmFsX3N0YXJ0X3NiKHNiLCB0eXBlLCBuYmxvY2tzKVx0XHRcdFxcXG5mcy9leHQ0L2V4dDRfamJkMi5oOjIyMjpcdF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKE5VTEwsIChzYiksIF9fTElORV9fLCAodHlwZSksIChuYmxvY2tzKSwgMCxcXFxuZnMvZXh0NC9leHQ0X2piZDIuaC0yMjMtXHRcdFx0XHRleHQ0X3RyYW5zX2RlZmF1bHRfcmV2b2tlX2NyZWRpdHMoc2IpKVxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmg9MjM3PXN0YXRpYyBpbmxpbmUgaGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0KHN0cnVjdCBpbm9kZSAqaW5vZGUsXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuaC0yNDEte1xuZnMvZXh0NC9leHQ0X2piZDIuaDoyNDI6XHRyZXR1cm4gX19leHQ0X2pvdXJuYWxfc3RhcnRfc2IoaW5vZGUsIGlub2RlLVx1MDAzZWlfc2IsIGxpbmUsIHR5cGUsIGJsb2NrcyxcbmZzL2V4dDQvZXh0NF9qYmQyLmgtMjQzLVx0XHRcdFx0ICAgICAgIHJzdl9ibG9ja3MsIHJldm9rZV9jcmVkcyk7XG4tLVxuZnMvZXh0NC9pYWxsb2MuYz05MzM9c3RydWN0IGlub2RlICpfX2V4dDRfbmV3X2lub2RlKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLFxuLS1cbmZzL2V4dDQvaWFsbG9jLmMtMTA4OC1cdFx0XHRCVUdfT04obmJsb2NrcyBcdTAwM2M9IDApO1xuZnMvZXh0NC9pYWxsb2MuYzoxMDg5Olx0XHRcdGhhbmRsZSA9IF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKE5VTEwsIGRpci1cdTAwM2VpX3NiLFxuZnMvZXh0NC9pYWxsb2MuYy0xMDkwLVx0XHRcdFx0IGxpbmVfbm8sIGhhbmRsZV90eXBlLCBuYmxvY2tzLCAwLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM0PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxMTUKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAzMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBFeHQ0IEZpbGVzeXN0ZW0gSm91cm5hbGluZyBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGV4dDQgam91cm5hbGluZyBjb2RlLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAsIHdoaWNoIGlzIHRoZSBjb3JlIGZ1bmN0aW9uIGNhbGxlZCBieSBgZXh0NF9qb3VybmFsX3N0YXJ0YCBhbmQgYGV4dDRfam91cm5hbF9zdGFydF9zYmAuIEdpdmVuIGhvdyBwZXJ2YXNpdmUgdGhlc2UgZnVuY3Rpb25zIGFyZSBpbiB0aGUgZmlsZXN5c3RlbSBmb3IgKmFueSogbWV0YWRhdGEgY2hhbmdlLCBmdXp6aW5nIGRpcmVjdGx5IGF0IGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgZmVlbHMgYSBiaXQgdG9vIGJyb2FkIHRvIGJlIGltbWVkaWF0ZWx5IHVzZWZ1bC4gSXQmIzM5O3MgdGhlIHVsdGltYXRlIGVudHJ5IHBvaW50LCBncmFudGVkLCBidXQgbGV0JiMzOTtzIHNlZSBpZiB3ZSBjYW4gZmluZCBzb21lIG90aGVyIGZ1bmN0aW9ucyB0aGF0ICp0cmlnZ2VyKiB0aGlzIG9uZSBpbiBhIG1vcmUgdGFyZ2V0ZWQgd2F5LgoKVGhlIGNvcmUgaXNzdWUgaGVyZSBpcyBzdGFydGluZyBhIGpvdXJuYWwgdHJhbnNhY3Rpb24gb24gYSBmaWxlc3lzdGVtIHRoYXQmIzM5O3MgYmVlbiBmcm96ZW4uIEZyZWV6ZSBpcyBkb25lIHZpYSBgaW9jdGwoRklGUkVFWkUpYCBvciBhIHNpbWlsYXIgbWVjaGFuaXNtLiBUaGUgcGF0Y2ggc2VlbXMgdG8gZml4IGEgc2NlbmFyaW8gd2hlcmUgdGhlIGF0dGVtcHQgdG8gc3RhcnQgYSB0cmFuc2FjdGlvbiBvbiBhIGZyb3plbiBmaWxlc3lzdGVtIHdhcyBwcmV2aW91c2x5IGdlbmVyYXRpbmcgYSBgV0FSTl9PTmAsIGFuZCB0aGF0JiMzOTtzIGJlZW4gcmVwbGFjZWQgd2l0aCByZXR1cm5pbmcgYC1FUk9GU2AgaW5zdGVhZC4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYSBkaWZmZXJlbmNlIGluIGJlaGF2aW9yLiBEZWZpbml0ZWx5IHdvcnRoIGxvb2tpbmcgaW50byBmb3IgZnV6emluZy4KCk15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gZm9jdXMgb24gYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCBhbmQgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3Jlc2VydmVkYCwgYnV0IHRoZW4gSSByZW1lbWJlciB0aGF0IGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgaXMgYSAqdmVyeSogaG90IHBhdGggZnVuY3Rpb24uIFJpZ2h0ISBUaGUgZG9jdW1lbnRhdGlvbiBhZHZpc2VzIGFnYWluc3QgbGlzdGluZyB0aG9zZSBnZW5lcmljIGZ1bmN0aW9ucyB0byBhdm9pZCBza2V3aW5nIG91ciB0ZXN0IGRpc3RyaWJ1dGlvbiwgbWVhbmluZyB3ZSBtaWdodCBlbmQgdXAgdGVzdGluZyBhbiBhcmVhIHRoYXQgaXMgYWxyZWFkeSB3ZWxsLXRlc3RlZC4gU28sIEkgaGF2ZSB0byByZXRoaW5rLiBJZiBub3QgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCwgd2hhdCB0aGVuPwoKUGVyaGFwcyB0aGUgZm9jdXMgc2hvdWxkIHNoaWZ0IHRvIHRoZSBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRoZW1zZWx2ZXMuIGBleHQ0X2ZyZWV6ZWAgbWlnaHQgYmUgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBXZSBuZWVkIHRvIGlkZW50aWZ5IGZ1bmN0aW9ucyBhbmQgaW5wdXRzIHRoYXQgdHJpZ2dlciB0aGUgZnJlZXplIGFuZCB0aGVuIGF0dGVtcHQgdG8gc3RhcnQgdGhlIHByb2JsZW1hdGljIHRyYW5zYWN0aW9uLiBXZSBzaG91bGQgZXhwbG9yZSB3YXlzIHRvIGZ1enogdGhlIGZyZWV6ZSBhbmQgdHJhbnNhY3Rpb24gc3RhcnQgc2VxdWVuY2VzLiBJIHRoaW5rIHRoaXMgd2lsbCBiZSB0aGUgbW9zdCBlZmZlY3RpdmUgd2F5IHRvIHRyaWdnZXIgdGhlIHZ1bG5lcmFiaWxpdHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZXh0NF9mcmVlemUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L3N1cGVyLmM9Nzk9c3RhdGljIGludCBleHQ0X3VuZnJlZXplKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpO1xuZnMvZXh0NC9zdXBlci5jOjgwOnN0YXRpYyBpbnQgZXh0NF9mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XG5mcy9leHQ0L3N1cGVyLmMtODEtc3RhdGljIGlubGluZSBpbnQgZXh0Ml9mZWF0dXJlX3NldF9vayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKTtcbi0tXG5mcy9leHQ0L3N1cGVyLmM9MTY2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgZXh0NF9zb3BzID0ge1xuLS1cbmZzL2V4dDQvc3VwZXIuYy0xNjcxLVx0LnN5bmNfZnNcdD0gZXh0NF9zeW5jX2ZzLFxuZnMvZXh0NC9zdXBlci5jOjE2NzI6XHQuZnJlZXplX2ZzXHQ9IGV4dDRfZnJlZXplLFxuZnMvZXh0NC9zdXBlci5jLTE2NzMtXHQudW5mcmVlemVfZnNcdD0gZXh0NF91bmZyZWV6ZSxcbi0tXG5mcy9leHQ0L3N1cGVyLmM9NjQzNz1zdGF0aWMgaW50IGV4dDRfc3luY19mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgd2FpdClcbi0tXG5mcy9leHQ0L3N1cGVyLmMtNjQ5MC0gKi9cbmZzL2V4dDQvc3VwZXIuYzo2NDkxOnN0YXRpYyBpbnQgZXh0NF9mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcbmZzL2V4dDQvc3VwZXIuYy02NDkyLXtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwMzozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTk2CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMjU4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgZXh0NCBGaWxlc3lzdGVtIEZyZWV6ZSBCdWcqKgoKT2theSwgc28gYGV4dDRfZnJlZXplYCBpcyBkZWZpbml0ZWx5IHRoZSBmdW5jdGlvbiB0aGF0IGZyZWV6ZXMgdGhlIGZpbGVzeXN0ZW0uIFRoZSBjb3JlIG9mIHRoaXMgYnVnIGlzIHRoYXQgc29tZXRoaW5nJiMzOTtzIHRyeWluZyB0byBzdGFydCBhIHRyYW5zYWN0aW9uICp3aGlsZSogdGhlIGZpbGVzeXN0ZW0gaXMgZnJvemVuLCB3aGljaCBpcyBjbGVhcmx5IHByb2JsZW1hdGljLiBUaGUgcXVlc3Rpb24gaXM6IHdoYXQgb3BlcmF0aW9uIGlzIHRyaWdnZXJpbmcgdGhpcz8KClRoZSBjb21taXQgbWVzc2FnZSBwb2ludHMgdG8gYSBwYXRjaCByZWxhdGVkIHRvIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgLCB3aGljaCBpcyBhIGhlbHBmdWwgY2x1ZS4gV2l0aG91dCBrbm93aW5nIHRoZSBleGFjdCBjdWxwcml0IG9wZXJhdGlvbiwgSSBzaG91bGQgZm9jdXMgb24gcmVsYXRlZCBzeW1ib2xzLiBJJiMzOTtsbCBpbmNsdWRlIGBleHQ0X2ZyZWV6ZWAgYW5kIGBleHQ0X3VuZnJlZXplYCBhcyBmb2N1cyBzeW1ib2xzLiBQZXJoYXBzIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgc2hvdWxkIGFsc28gYmUgaW5jbHVkZWQ/IFdhaXQsIGhvbGQgb24uIFNpbmNlIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgaXMgbGlrZWx5IGEgaG90IHBhdGgsIGl0IGdldHMgY2FsbGVkIGFsbCB0aGUgdGltZS4gSWYgSSBkb24mIzM5O3QgbGlzdCBpdCBleHBsaWNpdGx5LCB0aGUgZnV6emVyIHdpbGwgcHJvYmFibHkgaGl0IGl0IG5hdHVyYWxseSBiZWNhdXNlIGl0JiMzOTtzIHBhcnQgb2YgYWxtb3N0IGV2ZXJ5IGV4dDQgb3BlcmF0aW9uLiBTbyBsaXN0aW5nIGl0IG1pZ2h0IGp1c3QgYWRkIG5vaXNlLiBJJiMzOTtsbCBzdGljayB0byBgZXh0NF9mcmVlemVgIHRvIGVuc3VyZSB0aGUgZnV6emVyIGlzIGRlbGliZXJhdGVseSBhdHRlbXB0aW5nIHRvIGZyZWV6ZSB0aGUgZmlsZXN5c3RlbSBkdXJpbmcgaXRzIG9wZXJhdGlvbi4KCkZpbmFsbHksIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHRvIHJlcHJvZHVjZSB0aGlzIGJ1Zy4gSXQgc2VlbXMgdGhhdCBgRVhUNF9GU2AgaXMgYSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIEVYVDRfRlMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvZXh0NC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG5mcy9leHQ0L0tjb25maWc6Mjpjb25maWcgRVhUNF9GU1xuZnMvZXh0NC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtUaGUgRXh0ZW5kZWQgNCAoZXh0NCkgZmlsZXN5c3RlbVwmIzM0O1xuLS1cbmZzL2V4dDQvS2NvbmZpZz0zNT1jb25maWcgRVhUNF9VU0VfRk9SX0VYVDJcbi0tXG5mcy9leHQ0L0tjb25maWctNDUtXG5mcy9leHQ0L0tjb25maWc6NDY6Y29uZmlnIEVYVDRfRlNfUE9TSVhfQUNMXG5mcy9leHQ0L0tjb25maWctNDctXHRib29sIFwmIzM0O0V4dDQgUE9TSVggQWNjZXNzIENvbnRyb2wgTGlzdHNcJiMzNDtcbi0tXG5mcy9leHQ0L0tjb25maWctNTUtXG5mcy9leHQ0L0tjb25maWc6NTY6Y29uZmlnIEVYVDRfRlNfU0VDVVJJVFlcbmZzL2V4dDQvS2NvbmZpZy01Ny1cdGJvb2wgXCYjMzQ7RXh0NCBTZWN1cml0eSBMYWJlbHNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTk3NwoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDMyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkFuYWx5emluZyB0aGUgRVhUNCBKb3VybmFsIEluaXRpYWxpemF0aW9uKioKClJpZ2h0LCBzbyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGBFWFQ0X0ZTYCBhcyB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBpdGVtLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGl2ZSBkZWVwZXIgaW50byB0aGUgam91cm5hbCBpbml0aWFsaXphdGlvbiBwcm9jZXNzLCBzcGVjaWZpY2FsbHkgZm9jdXNpbmcgb24gYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAuIEkgd2FudCB0byBxdWlja2x5IGFzY2VydGFpbiBpdHMgY2FsbCBncmFwaCBhbmQgdXNhZ2UgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UuIEkmIzM5O20gdGhpbmtpbmcgSSYjMzk7bGwgd2FudCB0byB0cmFjZSBhbGwgaW5zdGFuY2VzIHdoZXJlIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgIGlzIGludm9rZWQuIFVuZGVyc3RhbmRpbmcgd2hlcmUgYW5kIGhvdyB0aGlzIGZ1bmN0aW9uIGlzIHRyaWdnZXJlZCB3aWxsIGdpdmUgbWUgYSBjb21wcmVoZW5zaXZlIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZSBFWFQ0IGpvdXJuYWwgaXMgdmFsaWRhdGVkIGR1cmluZyBzdGFydHVwIGFuZCwgcG90ZW50aWFsbHksIGR1cmluZyBvdGhlciBvcGVyYXRpb25zLiBUaGlzIHdpbGwgaGVscCBkZXRlcm1pbmUgaWYgdGhlcmUgYXJlIHVuaW50ZW5kZWQgc2lkZSBlZmZlY3RzIG9yIHBvdGVudGlhbCBpc3N1ZXMgaW4gdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwMzozNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9leHQ0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtmcy9leHQ0L2V4dDRfamJkMi5jPTQ5PXN0YXRpYyB2b2lkIGV4dDRfcHV0X25vam91cm5hbChoYW5kbGVfdCAqaGFuZGxlKVxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmMtNjMtICovXG5mcy9leHQ0L2V4dDRfamJkMi5jOjY0OnN0YXRpYyBpbnQgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG5mcy9leHQ0L2V4dDRfamJkMi5jLTY1LXtcbi0tXG5mcy9leHQ0L2V4dDRfamJkMi5jPTk3PWhhbmRsZV90ICpfX2V4dDRfam91cm5hbF9zdGFydF9zYihzdHJ1Y3QgaW5vZGUgKmlub2RlLFxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTExLVx0XHRcdFx0XHRfUkVUX0lQXyk7XG5mcy9leHQ0L2V4dDRfamJkMi5jOjExMjpcdGVyciA9IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzYik7XG5mcy9leHQ0L2V4dDRfamJkMi5jLTExMy1cdGlmIChlcnIgXHUwMDNjIDApXG4tLVxuZnMvZXh0NC9leHQ0X2piZDIuYz0xNTA9aGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0X3Jlc2VydmVkKGhhbmRsZV90ICpoYW5kbGUsIHVuc2lnbmVkIGludCBsaW5lLFxuLS1cbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTYxLVx0XHRcdFx0amJkMl9oYW5kbGVfYnVmZmVyX2NyZWRpdHMoaGFuZGxlKSwgX1JFVF9JUF8pO1xuZnMvZXh0NC9leHQ0X2piZDIuYzoxNjI6XHRlcnIgPSBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc2IpO1xuZnMvZXh0NC9leHQ0X2piZDIuYy0xNjMtXHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDAzOjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY1OTgKCQkJCQkJCW91dHB1dDogMTA4CgkJCQkJCQl0aG91Z2h0czogMjY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEZ1enppbmcgU3RyYXRlZ3kgZm9yIFRoaXMgZXh0NCBQYXRjaCoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGNoYW5nZXMgYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAgdG8gcmV0dXJuIGAtRVJPRlNgIGlmIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmF0aGVyIHRoYW4ganVzdCBpc3N1aW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhhdCYjMzk7cyBhIGRlZmluaXRlIGZ1bmN0aW9uYWwgY2hhbmdlLCBzbyBJJiMzOTttIG1hcmtpbmcgaXQgYXMgV29ydGhGdXp6aW5nLiBNeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIHVzZSBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YCBhcyBhIGBGb2N1c1N5bWJvbGAsIGJ1dCBzaW5jZSBpdCYjMzk7cyBub3cgcmV0dXJuaW5nIGFuIGVycm9yIGNvZGUgYW5kIG5vdCBqdXN0IHdhcm5pbmcsIGl0IG1heSBpbnRyb2R1Y2UgYSBuZXcgcmV0dXJuIHBhdGguCgpIYW5nIG9uIGEgc2VjLCBtYXliZSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGlzbiYjMzk7dCBzbyBjcml0aWNhbCBmb3IgZnV6emluZz8gV2FpdCwgeWVzIGl0IGlzISBJdCYjMzk7cyBpbnZva2VkIGZvciAqZXZlcnkqIG1ldGFkYXRhIG1vZGlmaWNhdGlvbi4gVGhhdCYjMzk7cyBkZWZpbml0ZWx5IGEgaG90IHBhdGggdG8gaWdub3JlLiBBbHNvLCBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YCBpdHNlbGYgaXMgc3RhdGljLCBzbyBpdCYjMzk7cyBub3QgYSB2aWFibGUgZm9jdXMgc3ltYm9sIGVpdGhlci4gU28gSSYjMzk7dmUgZ290IHRvIGZvY3VzIG9uIHRoZSBwb2ludHMgb2YgZW50cnksIHRoZSBmdW5jdGlvbnMgdGhhdCB0cmlnZ2VyIHRoZSBmcmVlemluZywgc28gYGV4dDRfZnJlZXplYCBhbmQgYGV4dDRfdW5mcmVlemVgIGFyZSBteSByZWFsIGZvY3VzLgoKTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoZSBjb25maWdzLi4uIHllcCwganVzdCBgRVhUNF9GU2AuIEFscmlnaHQsIEkmIzM5O3ZlIGdvdCBpdC4gVGhlIHJlYXNvbmluZyBoZXJlIGlzIHRoYXQgYnkgdGFyZ2V0aW5nIHRoZSBmaWxlc3lzdGVtIGZyZWV6ZS91bmZyZWV6ZSBvcGVyYXRpb25zLCBJIGNhbiBzcGVjaWZpY2FsbHkgdHJpZ2dlciB0aGlzIG5ldyBlcnJvciBjb25kaXRpb24gaW4gYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAsIGFuZCBob3BlZnVsbHkgZmluZCBzb21lIGludGVyZXN0aW5nIGVkZ2UgY2FzZXMgb3IgcmVsYXRlZCBpc3N1ZXMuIFRoaXMgY2hhbmdlIHNwZWNpZmljYWxseSBpbXBhY3RzIHRoZSBqb3VybmFsIGhhbmRsaW5nIGR1cmluZyBhIGZyZWV6ZSwgc28gdGhhdCYjMzk7cyB3aGVyZSBJIG5lZWQgdG8gY29uY2VudHJhdGUgbXkgZWZmb3J0cy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDM6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VYVDRfRlMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtleHQ0X2ZyZWV6ZSYjMzQ7LAogICAgJiMzNDtleHQ0X3VuZnJlZXplJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFWFQ0X0ZTJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZXh0NF9mcmVlemUmIzM0OywKICAgICYjMzQ7ZXh0NF91bmZyZWV6ZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQgd2hlbiB0aGUgZmlsZXN5c3RlbSBpcyBmcm96ZW4sIHJldHVybmluZyAtRVJPRlMgaW5zdGVhZCBvZiB0cmlnZ2VyaW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGV4dDQgam91cm5hbCBoYW5kbGluZy4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gZmlsZXN5c3RlbSBmcmVlemUgb3BlcmF0aW9ucyB0byB0cmlnZ2VyIHRoaXMgcGF0aC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDAzOjM0OjQ0LjI3Mjk4ODA4NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwMDY0NDM0NDc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVYVDRfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJleHQ0X2ZyZWV6ZVwiLFxuICAgIFwiZXh0NF91bmZyZWV6ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNDo0NC4yNzI5OTQ0MDRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MTkwNzkwMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDVhZDU2OTUwYzM5YmMyNzY2YmM0YTRlMTUyZmJiYTgyZmE2MjE4MzdcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDM6MzQ6NDIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvZXh0NC9leHQ0X2piZDIuYyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmNcXG5pbmRleCA5YThjMjI1ZjI3NTMwOS4uMzEwYTA0ZGJlYmRkNjAgMTAwNjQ0XFxuLS0tIGEvZnMvZXh0NC9leHQ0X2piZDIuY1xcbisrKyBiL2ZzL2V4dDQvZXh0NF9qYmQyLmNcXG5AQCAtNzUsNyArNzUsMTIgQEAgc3RhdGljIGludCBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4gXFx0aWYgKFdBUk5fT05fT05DRShzYl9yZG9ubHkoc2IpKSlcXG4gXFx0XFx0cmV0dXJuIC1FUk9GUztcXG4gXFxuLVxcdFdBUk5fT04oc2ItXFx1MDAzZXNfd3JpdGVycy5mcm96ZW4gPT0gU0JfRlJFRVpFX0NPTVBMRVRFKTtcXG4rXFx0aWYgKHVubGlrZWx5KHNiLVxcdTAwM2VzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSkpIHtcXG4rXFx0XFx0ZXh0NF9tc2coc2IsIEtFUk5fRVJSLFxcbitcXHRcXHRcXHQgXFxcIkF0dGVtcHQgdG8gc3RhcnQgYSBqb3VybmFsIHRyYW5zYWN0aW9uIG9uIGEgZnJvemVuIGZpbGVzeXN0ZW1cXFwiKTtcXG4rXFx0XFx0cmV0dXJuIC1FUk9GUztcXG4rXFx0fVxcbitcXG4gXFx0am91cm5hbCA9IEVYVDRfU0Ioc2IpLVxcdTAwM2VzX2pvdXJuYWw7XFxuIFxcdC8qXFxuIFxcdCAqIFNwZWNpYWwgY2FzZSBoZXJlOiBpZiB0aGUgam91cm5hbCBoYXMgYWJvcnRlZCBiZWhpbmQgb3VyXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDAzOjM0OjQ0Ljg1NTUzMjAyNFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI5NDgxODgxMzQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVYVDRfRlNcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJleHQ0X2ZyZWV6ZVwiLFxuICAgIFwiZXh0NF91bmZyZWV6ZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGNoYW5nZXMgdGhlIGJlaGF2aW9yIG9mIGV4dDRfam91cm5hbF9jaGVja19zdGFydCB3aGVuIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmV0dXJuaW5nIC1FUk9GUyBpbnN0ZWFkIG9mIHRyaWdnZXJpbmcgYSB3YXJuaW5nIGFuZCBjb250aW51aW5nLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gZXh0NCBqb3VybmFsIGhhbmRsaW5nLiBGdXp6aW5nIHNob3VsZCBmb2N1cyBvbiBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRvIHRyaWdnZXIgdGhpcyBwYXRoLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1YWQ1Njk1MGMzOWJjMjc2NmJjNGE0ZTE1MmZiYmE4MmZhNjIxODM3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDM6MzQ6NDIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9leHQ0L2V4dDRfamJkMi5jIGIvZnMvZXh0NC9leHQ0X2piZDIuY1xuaW5kZXggOWE4YzIyNWYyNzUzMDkuLjMxMGEwNGRiZWJkZDYwIDEwMDY0NFxuLS0tIGEvZnMvZXh0NC9leHQ0X2piZDIuY1xuKysrIGIvZnMvZXh0NC9leHQ0X2piZDIuY1xuQEAgLTc1LDcgKzc1LDEyIEBAIHN0YXRpYyBpbnQgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXG4gXHRpZiAoV0FSTl9PTl9PTkNFKHNiX3Jkb25seShzYikpKVxuIFx0XHRyZXR1cm4gLUVST0ZTO1xuIFxuLVx0V0FSTl9PTihzYi1cdTAwM2VzX3dyaXRlcnMuZnJvemVuID09IFNCX0ZSRUVaRV9DT01QTEVURSk7XG4rXHRpZiAodW5saWtlbHkoc2ItXHUwMDNlc193cml0ZXJzLmZyb3plbiA9PSBTQl9GUkVFWkVfQ09NUExFVEUpKSB7XG4rXHRcdGV4dDRfbXNnKHNiLCBLRVJOX0VSUixcbitcdFx0XHQgXCJBdHRlbXB0IHRvIHN0YXJ0IGEgam91cm5hbCB0cmFuc2FjdGlvbiBvbiBhIGZyb3plbiBmaWxlc3lzdGVtXCIpO1xuK1x0XHRyZXR1cm4gLUVST0ZTO1xuK1x0fVxuK1xuIFx0am91cm5hbCA9IEVYVDRfU0Ioc2IpLVx1MDAzZXNfam91cm5hbDtcbiBcdC8qXG4gXHQgKiBTcGVjaWFsIGNhc2UgaGVyZTogaWYgdGhlIGpvdXJuYWwgaGFzIGFib3J0ZWQgYmVoaW5kIG91clxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzQ6NDQuODU1NTMzMDM0WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzk4NjY3NzMxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEV4dDQgSm91cm5hbCBDaGVjayBNb2RpZmljYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YCB3aXRoaW4gYGZzL2V4dDQvZXh0NF9qYmQyLmNgLiBUaGUgY29yZSBvZiB0aGUgY2hhbmdlIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogdGhleSd2ZSByZXBsYWNlZCBhIHNpbXBsZSBgV0FSTl9PTmAgd2l0aCBhbiBhY3R1YWwgZXJyb3IgcmV0dXJuLiBTcGVjaWZpY2FsbHksIHRoZSBsaW5lIHRoYXQgd2FzIHByZXZpb3VzbHkgYFdBUk5fT04oc2ItXHUwMDNlc193cml0ZXJzLmZyb3plbiA9PSBTQl9GUkVFWkVfQ09NUExFVEUpO2AgaGFzIGJlZW4gbW9kaWZpZWQgdG8gaW5jbHVkZSBhbiBgaWYgKHVubGlrZWx5KC4uLikpYCBibG9jay4gVGhpcyBub3cgcmVzdWx0cyBpbiBhbiBgLUVST0ZTYCByZXR1cm4gaWYgdGhlIGZpbGVzeXN0ZW0gaXMgZnJvemVuLCBhbmQgYW4gZXJyb3IgbWVzc2FnZSBpcyBwcmludGVkLlxuXG5QcmV2aW91c2x5LCB0aGUgY29kZSB3b3VsZCBzaW1wbHkgZW1pdCBhIHdhcm5pbmcgYW5kIGNvbnRpbnVlIGV4ZWN1dGlvbiBpZiB0aGUgam91cm5hbCB3YXMgYXR0ZW1wdGVkIHRvIGJlIHN0YXJ0ZWQgb24gYSBmcm96ZW4gZmlsZXN5c3RlbS4gTm93IGl0IGV4cGxpY2l0bHkgcmV0dXJucyBhIHJlYWQtb25seSBmaWxlc3lzdGVtIGVycm9yIGNvZGUuIFRoaXMgaXMgYSBjcnVjaWFsIGRpZmZlcmVuY2UgYmVjYXVzZSB0aGUgcHJldmlvdXMgYmVoYXZpb3IgY291bGQgbGVhZCB0byBkYXRhIGNvcnJ1cHRpb24gaW4gY2VydGFpbiBzY2VuYXJpb3MgYnkgcHJvY2VlZGluZyB3aGVuIHRoZSBmaWxlc3lzdGVtIHN0YXRlIGlzIGNvbXByb21pc2VkLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsbHkgc2lnbmlmaWNhbnQgY2hhbmdlLCB0cmFuc2Zvcm1pbmcgYSB3YXJuaW5nIGludG8gYSBoYXJkIGVycm9yLCB3aGljaCBmb3JjZXMgdGhlIHN5c3RlbSB0byBoYW5kbGUgdGhlIHNpdHVhdGlvbiBhcHByb3ByaWF0ZWx5LiBMZXQgbWUgY29uZmlybSB0aGF0IGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgIGlzIGluZGVlZCB0aGUgZnVuY3Rpb24gaW4gcXVlc3Rpb24gYW5kIEknbGwgc3RhcnQgY2hlY2tpbmcgdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhpcyBpcyB1c2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTI4LCJPdXRwdXRUb2tlbnMiOjQxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg4LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzQ6NDguODQyMjEyNDAyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc3NDU3NDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfam91cm5hbF9jaGVja19zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L2V4dDRfamJkMi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvZXh0NF9qYmQyLmM9NDk9c3RhdGljIHZvaWQgZXh0NF9wdXRfbm9qb3VybmFsKGhhbmRsZV90ICpoYW5kbGUpXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jLTYzLSAqL1xcbmZzL2V4dDQvZXh0NF9qYmQyLmM6NjQ6c3RhdGljIGludCBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9leHQ0L2V4dDRfamJkMi5jLTY1LXtcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmM9OTc9aGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jLTExMS1cXHRcXHRcXHRcXHRcXHRfUkVUX0lQXyk7XFxuZnMvZXh0NC9leHQ0X2piZDIuYzoxMTI6XFx0ZXJyID0gZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHNiKTtcXG5mcy9leHQ0L2V4dDRfamJkMi5jLTExMy1cXHRpZiAoZXJyIFxcdTAwM2MgMClcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmM9MTUwPWhhbmRsZV90ICpfX2V4dDRfam91cm5hbF9zdGFydF9yZXNlcnZlZChoYW5kbGVfdCAqaGFuZGxlLCB1bnNpZ25lZCBpbnQgbGluZSxcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTYxLVxcdFxcdFxcdFxcdGpiZDJfaGFuZGxlX2J1ZmZlcl9jcmVkaXRzKGhhbmRsZSksIF9SRVRfSVBfKTtcXG5mcy9leHQ0L2V4dDRfamJkMi5jOjE2MjpcXHRlcnIgPSBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc2IpO1xcbmZzL2V4dDQvZXh0NF9qYmQyLmMtMTYzLVxcdGlmIChlcnIgXFx1MDAzYyAwKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDAzOjM0OjQ4LjkxOTY3Nzg2NVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NjE4MjM5MjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGV4dDQgSm91cm5hbCBUcmFuc2FjdGlvbiBTdGFydCBQb2ludHMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0YC4gVGhlIGZhY3QgdGhhdCBpdCdzIGBzdGF0aWNgIGlzIGludGVyZXN0aW5nLCBhbmQgaXQgc3VnZ2VzdHMgaXQncyBhbiBpbnRlcm5hbCBoZWxwZXIgZnVuY3Rpb24uIFJpZ2h0LCBpdCdzIGNhbGxlZCBieSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGFuZCBgX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWRgLiBUaG9zZSBhcmUgdGhlIGVudHJ5IHBvaW50cyBmb3IsIGVzc2VudGlhbGx5LCBzdGFydGluZyBhIGpvdXJuYWwgdHJhbnNhY3Rpb24sIHRoZSBmb3VuZGF0aW9uIG9mIGhvdyBleHQ0IGhhbmRsZXMgaXRzIGRhdGEgaW50ZWdyaXR5LlxuXG5JIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY2FsbGluZyBjb250ZXh0cy4gS25vd2luZyB3aGVyZSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGFuZCBgX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWRgIGFyZSB1c2VkIGlzIGNydWNpYWwuIFRoZXkncmUgbGlrZWx5IHVzZWQgZXh0ZW5zaXZlbHkgdGhyb3VnaG91dCB0aGUgZmlsZXN5c3RlbS4gQWx0aG91Z2gsIEkgZG9uJ3Qgd2FudCB0byBnZXQgZGlzdHJhY3RlZCBzbyBJJ2xsIGp1c3QgZm9jdXMgb24gdGhlbS5cblxuV2FpdCBhIHNlY29uZCwgaXMgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCBleHBvcnRlZD8gVGhhdCBjaGFuZ2VzIHRoaW5ncy4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0Li4uIHRoaXMgY291bGQgYmUgdmVyeSBpbXBvcnRhbnQgdG8gdGhlIG92ZXJhbGwgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAxMiwiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNDo1Mi40ODE1MDUwNTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzM1MDAyMzYxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4dDQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvZXh0NF9qYmQyLmM9NjQ9c3RhdGljIGludCBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmMtOTYtXFxuZnMvZXh0NC9leHQ0X2piZDIuYzo5NzpoYW5kbGVfdCAqX19leHQ0X2pvdXJuYWxfc3RhcnRfc2Ioc3RydWN0IGlub2RlICppbm9kZSxcXG5mcy9leHQ0L2V4dDRfamJkMi5jLTk4LVxcdFxcdFxcdFxcdCAgc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdW5zaWduZWQgaW50IGxpbmUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5oPTE2Mz1pbnQgX19leHQ0X2hhbmRsZV9kaXJ0eV9tZXRhZGF0YShjb25zdCBjaGFyICp3aGVyZSwgdW5zaWduZWQgaW50IGxpbmUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5oLTE3OS1cXG5mcy9leHQ0L2V4dDRfamJkMi5oOjE4MDpoYW5kbGVfdCAqX19leHQ0X2pvdXJuYWxfc3RhcnRfc2Ioc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IHN1cGVyX2Jsb2NrICpzYixcXG5mcy9leHQ0L2V4dDRfamJkMi5oLTE4MS1cXHRcXHRcXHRcXHQgIHVuc2lnbmVkIGludCBsaW5lLCBpbnQgdHlwZSwgaW50IGJsb2NrcyxcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmg9MjE2PXN0YXRpYyBpbmxpbmUgaW50IGV4dDRfdHJhbnNfZGVmYXVsdF9yZXZva2VfY3JlZGl0cyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKVxcbi0tXFxuZnMvZXh0NC9leHQ0X2piZDIuaC0yMjEtI2RlZmluZSBleHQ0X2pvdXJuYWxfc3RhcnRfc2Ioc2IsIHR5cGUsIG5ibG9ja3MpXFx0XFx0XFx0XFxcXFxcbmZzL2V4dDQvZXh0NF9qYmQyLmg6MjIyOlxcdF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKE5VTEwsIChzYiksIF9fTElORV9fLCAodHlwZSksIChuYmxvY2tzKSwgMCxcXFxcXFxuZnMvZXh0NC9leHQ0X2piZDIuaC0yMjMtXFx0XFx0XFx0XFx0ZXh0NF90cmFuc19kZWZhdWx0X3Jldm9rZV9jcmVkaXRzKHNiKSlcXG4tLVxcbmZzL2V4dDQvZXh0NF9qYmQyLmg9MjM3PXN0YXRpYyBpbmxpbmUgaGFuZGxlX3QgKl9fZXh0NF9qb3VybmFsX3N0YXJ0KHN0cnVjdCBpbm9kZSAqaW5vZGUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5oLTI0MS17XFxuZnMvZXh0NC9leHQ0X2piZDIuaDoyNDI6XFx0cmV0dXJuIF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiKGlub2RlLCBpbm9kZS1cXHUwMDNlaV9zYiwgbGluZSwgdHlwZSwgYmxvY2tzLFxcbmZzL2V4dDQvZXh0NF9qYmQyLmgtMjQzLVxcdFxcdFxcdFxcdCAgICAgICByc3ZfYmxvY2tzLCByZXZva2VfY3JlZHMpO1xcbi0tXFxuZnMvZXh0NC9pYWxsb2MuYz05MzM9c3RydWN0IGlub2RlICpfX2V4dDRfbmV3X2lub2RlKHN0cnVjdCBtbnRfaWRtYXAgKmlkbWFwLFxcbi0tXFxuZnMvZXh0NC9pYWxsb2MuYy0xMDg4LVxcdFxcdFxcdEJVR19PTihuYmxvY2tzIFxcdTAwM2M9IDApO1xcbmZzL2V4dDQvaWFsbG9jLmM6MTA4OTpcXHRcXHRcXHRoYW5kbGUgPSBfX2V4dDRfam91cm5hbF9zdGFydF9zYihOVUxMLCBkaXItXFx1MDAzZWlfc2IsXFxuZnMvZXh0NC9pYWxsb2MuYy0xMDkwLVxcdFxcdFxcdFxcdCBsaW5lX25vLCBoYW5kbGVfdHlwZSwgbmJsb2NrcywgMCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzQ6NTIuODE2NTEyMzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NTA0NTQ0MjA4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRXh0NCBGaWxlc3lzdGVtIEpvdXJuYWxpbmcgVnVsbmVyYWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZXh0NCBqb3VybmFsaW5nIGNvZGUsIHNwZWNpZmljYWxseSBhcm91bmQgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCwgd2hpY2ggaXMgdGhlIGNvcmUgZnVuY3Rpb24gY2FsbGVkIGJ5IGBleHQ0X2pvdXJuYWxfc3RhcnRgIGFuZCBgZXh0NF9qb3VybmFsX3N0YXJ0X3NiYC4gR2l2ZW4gaG93IHBlcnZhc2l2ZSB0aGVzZSBmdW5jdGlvbnMgYXJlIGluIHRoZSBmaWxlc3lzdGVtIGZvciAqYW55KiBtZXRhZGF0YSBjaGFuZ2UsIGZ1enppbmcgZGlyZWN0bHkgYXQgYF9fZXh0NF9qb3VybmFsX3N0YXJ0X3NiYCBmZWVscyBhIGJpdCB0b28gYnJvYWQgdG8gYmUgaW1tZWRpYXRlbHkgdXNlZnVsLiBJdCdzIHRoZSB1bHRpbWF0ZSBlbnRyeSBwb2ludCwgZ3JhbnRlZCwgYnV0IGxldCdzIHNlZSBpZiB3ZSBjYW4gZmluZCBzb21lIG90aGVyIGZ1bmN0aW9ucyB0aGF0ICp0cmlnZ2VyKiB0aGlzIG9uZSBpbiBhIG1vcmUgdGFyZ2V0ZWQgd2F5LlxuXG5UaGUgY29yZSBpc3N1ZSBoZXJlIGlzIHN0YXJ0aW5nIGEgam91cm5hbCB0cmFuc2FjdGlvbiBvbiBhIGZpbGVzeXN0ZW0gdGhhdCdzIGJlZW4gZnJvemVuLiBGcmVlemUgaXMgZG9uZSB2aWEgYGlvY3RsKEZJRlJFRVpFKWAgb3IgYSBzaW1pbGFyIG1lY2hhbmlzbS4gVGhlIHBhdGNoIHNlZW1zIHRvIGZpeCBhIHNjZW5hcmlvIHdoZXJlIHRoZSBhdHRlbXB0IHRvIHN0YXJ0IGEgdHJhbnNhY3Rpb24gb24gYSBmcm96ZW4gZmlsZXN5c3RlbSB3YXMgcHJldmlvdXNseSBnZW5lcmF0aW5nIGEgYFdBUk5fT05gLCBhbmQgdGhhdCdzIGJlZW4gcmVwbGFjZWQgd2l0aCByZXR1cm5pbmcgYC1FUk9GU2AgaW5zdGVhZC4gSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGRpZmZlcmVuY2UgaW4gYmVoYXZpb3IuIERlZmluaXRlbHkgd29ydGggbG9va2luZyBpbnRvIGZvciBmdXp6aW5nLlxuXG5NeSBpbml0aWFsIHRob3VnaHQgd2FzIHRvIGZvY3VzIG9uIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgYW5kIGBfX2V4dDRfam91cm5hbF9zdGFydF9yZXNlcnZlZGAsIGJ1dCB0aGVuIEkgcmVtZW1iZXIgdGhhdCBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGlzIGEgKnZlcnkqIGhvdCBwYXRoIGZ1bmN0aW9uLiBSaWdodCEgVGhlIGRvY3VtZW50YXRpb24gYWR2aXNlcyBhZ2FpbnN0IGxpc3RpbmcgdGhvc2UgZ2VuZXJpYyBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2luZyBvdXIgdGVzdCBkaXN0cmlidXRpb24sIG1lYW5pbmcgd2UgbWlnaHQgZW5kIHVwIHRlc3RpbmcgYW4gYXJlYSB0aGF0IGlzIGFscmVhZHkgd2VsbC10ZXN0ZWQuIFNvLCBJIGhhdmUgdG8gcmV0aGluay4gSWYgbm90IGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAsIHdoYXQgdGhlbj9cblxuUGVyaGFwcyB0aGUgZm9jdXMgc2hvdWxkIHNoaWZ0IHRvIHRoZSBmaWxlc3lzdGVtIGZyZWV6ZSBvcGVyYXRpb25zIHRoZW1zZWx2ZXMuIGBleHQ0X2ZyZWV6ZWAgbWlnaHQgYmUgYSBnb29kIHN0YXJ0aW5nIHBvaW50LiBXZSBuZWVkIHRvIGlkZW50aWZ5IGZ1bmN0aW9ucyBhbmQgaW5wdXRzIHRoYXQgdHJpZ2dlciB0aGUgZnJlZXplIGFuZCB0aGVuIGF0dGVtcHQgdG8gc3RhcnQgdGhlIHByb2JsZW1hdGljIHRyYW5zYWN0aW9uLiBXZSBzaG91bGQgZXhwbG9yZSB3YXlzIHRvIGZ1enogdGhlIGZyZWV6ZSBhbmQgdHJhbnNhY3Rpb24gc3RhcnQgc2VxdWVuY2VzLiBJIHRoaW5rIHRoaXMgd2lsbCBiZSB0aGUgbW9zdCBlZmZlY3RpdmUgd2F5IHRvIHRyaWdnZXIgdGhlIHZ1bG5lcmFiaWxpdHkuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxMTUsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzQ6NTguMzIxMDU4NTg4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc2NTU5NjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfZnJlZXplXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL2V4dDQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImZzL2V4dDQvc3VwZXIuYz03OT1zdGF0aWMgaW50IGV4dDRfdW5mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuZnMvZXh0NC9zdXBlci5jOjgwOnN0YXRpYyBpbnQgZXh0NF9mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuZnMvZXh0NC9zdXBlci5jLTgxLXN0YXRpYyBpbmxpbmUgaW50IGV4dDJfZmVhdHVyZV9zZXRfb2soc3RydWN0IHN1cGVyX2Jsb2NrICpzYik7XFxuLS1cXG5mcy9leHQ0L3N1cGVyLmM9MTY2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IHN1cGVyX29wZXJhdGlvbnMgZXh0NF9zb3BzID0ge1xcbi0tXFxuZnMvZXh0NC9zdXBlci5jLTE2NzEtXFx0LnN5bmNfZnNcXHQ9IGV4dDRfc3luY19mcyxcXG5mcy9leHQ0L3N1cGVyLmM6MTY3MjpcXHQuZnJlZXplX2ZzXFx0PSBleHQ0X2ZyZWV6ZSxcXG5mcy9leHQ0L3N1cGVyLmMtMTY3My1cXHQudW5mcmVlemVfZnNcXHQ9IGV4dDRfdW5mcmVlemUsXFxuLS1cXG5mcy9leHQ0L3N1cGVyLmM9NjQzNz1zdGF0aWMgaW50IGV4dDRfc3luY19mcyhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBpbnQgd2FpdClcXG4tLVxcbmZzL2V4dDQvc3VwZXIuYy02NDkwLSAqL1xcbmZzL2V4dDQvc3VwZXIuYzo2NDkxOnN0YXRpYyBpbnQgZXh0NF9mcmVlemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYilcXG5mcy9leHQ0L3N1cGVyLmMtNjQ5Mi17XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDAzOjM0OjU4LjM5NzYyMjA1MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjUwNzkxNDg4OTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBleHQ0IEZpbGVzeXN0ZW0gRnJlZXplIEJ1ZyoqXG5cbk9rYXksIHNvIGBleHQ0X2ZyZWV6ZWAgaXMgZGVmaW5pdGVseSB0aGUgZnVuY3Rpb24gdGhhdCBmcmVlemVzIHRoZSBmaWxlc3lzdGVtLiBUaGUgY29yZSBvZiB0aGlzIGJ1ZyBpcyB0aGF0IHNvbWV0aGluZydzIHRyeWluZyB0byBzdGFydCBhIHRyYW5zYWN0aW9uICp3aGlsZSogdGhlIGZpbGVzeXN0ZW0gaXMgZnJvemVuLCB3aGljaCBpcyBjbGVhcmx5IHByb2JsZW1hdGljLiBUaGUgcXVlc3Rpb24gaXM6IHdoYXQgb3BlcmF0aW9uIGlzIHRyaWdnZXJpbmcgdGhpcz9cblxuVGhlIGNvbW1pdCBtZXNzYWdlIHBvaW50cyB0byBhIHBhdGNoIHJlbGF0ZWQgdG8gYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAsIHdoaWNoIGlzIGEgaGVscGZ1bCBjbHVlLiBXaXRob3V0IGtub3dpbmcgdGhlIGV4YWN0IGN1bHByaXQgb3BlcmF0aW9uLCBJIHNob3VsZCBmb2N1cyBvbiByZWxhdGVkIHN5bWJvbHMuIEknbGwgaW5jbHVkZSBgZXh0NF9mcmVlemVgIGFuZCBgZXh0NF91bmZyZWV6ZWAgYXMgZm9jdXMgc3ltYm9scy4gUGVyaGFwcyBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIHNob3VsZCBhbHNvIGJlIGluY2x1ZGVkPyBXYWl0LCBob2xkIG9uLiBTaW5jZSBgX19leHQ0X2pvdXJuYWxfc3RhcnRfc2JgIGlzIGxpa2VseSBhIGhvdCBwYXRoLCBpdCBnZXRzIGNhbGxlZCBhbGwgdGhlIHRpbWUuIElmIEkgZG9uJ3QgbGlzdCBpdCBleHBsaWNpdGx5LCB0aGUgZnV6emVyIHdpbGwgcHJvYmFibHkgaGl0IGl0IG5hdHVyYWxseSBiZWNhdXNlIGl0J3MgcGFydCBvZiBhbG1vc3QgZXZlcnkgZXh0NCBvcGVyYXRpb24uIFNvIGxpc3RpbmcgaXQgbWlnaHQganVzdCBhZGQgbm9pc2UuIEknbGwgc3RpY2sgdG8gYGV4dDRfZnJlZXplYCB0byBlbnN1cmUgdGhlIGZ1enplciBpcyBkZWxpYmVyYXRlbHkgYXR0ZW1wdGluZyB0byBmcmVlemUgdGhlIGZpbGVzeXN0ZW0gZHVyaW5nIGl0cyBvcGVyYXRpb24uXG5cbkZpbmFsbHksIEkgbmVlZCB0byBjaGVjayBmb3IgYW55IHNwZWNpZmljIGtlcm5lbCBjb25maWd1cmF0aW9ucyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIHRvIHJlcHJvZHVjZSB0aGlzIGJ1Zy4gSXQgc2VlbXMgdGhhdCBgRVhUNF9GU2AgaXMgYSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6NTE5NiwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNTowMy40NzY3NzMxNzVaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4Mjg4NzI0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRVhUNF9GU1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvZXh0NC9LY29uZmlnLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuZnMvZXh0NC9LY29uZmlnOjI6Y29uZmlnIEVYVDRfRlNcXG5mcy9leHQ0L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiVGhlIEV4dGVuZGVkIDQgKGV4dDQpIGZpbGVzeXN0ZW1cXFwiXFxuLS1cXG5mcy9leHQ0L0tjb25maWc9MzU9Y29uZmlnIEVYVDRfVVNFX0ZPUl9FWFQyXFxuLS1cXG5mcy9leHQ0L0tjb25maWctNDUtXFxuZnMvZXh0NC9LY29uZmlnOjQ2OmNvbmZpZyBFWFQ0X0ZTX1BPU0lYX0FDTFxcbmZzL2V4dDQvS2NvbmZpZy00Ny1cXHRib29sIFxcXCJFeHQ0IFBPU0lYIEFjY2VzcyBDb250cm9sIExpc3RzXFxcIlxcbi0tXFxuZnMvZXh0NC9LY29uZmlnLTU1LVxcbmZzL2V4dDQvS2NvbmZpZzo1Njpjb25maWcgRVhUNF9GU19TRUNVUklUWVxcbmZzL2V4dDQvS2NvbmZpZy01Ny1cXHRib29sIFxcXCJFeHQ0IFNlY3VyaXR5IExhYmVsc1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzU6MDMuNjU5NjY2OTU5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1MDc3NzI3NTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgRVhUNCBKb3VybmFsIEluaXRpYWxpemF0aW9uKipcblxuUmlnaHQsIHNvIHdlJ3JlIGRlYWxpbmcgd2l0aCBgRVhUNF9GU2AgYXMgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaXRlbS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGRpdmUgZGVlcGVyIGludG8gdGhlIGpvdXJuYWwgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcywgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgLiBJIHdhbnQgdG8gcXVpY2tseSBhc2NlcnRhaW4gaXRzIGNhbGwgZ3JhcGggYW5kIHVzYWdlIHRocm91Z2hvdXQgdGhlIGNvZGViYXNlLiBJJ20gdGhpbmtpbmcgSSdsbCB3YW50IHRvIHRyYWNlIGFsbCBpbnN0YW5jZXMgd2hlcmUgYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAgaXMgaW52b2tlZC4gVW5kZXJzdGFuZGluZyB3aGVyZSBhbmQgaG93IHRoaXMgZnVuY3Rpb24gaXMgdHJpZ2dlcmVkIHdpbGwgZ2l2ZSBtZSBhIGNvbXByZWhlbnNpdmUgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlIEVYVDQgam91cm5hbCBpcyB2YWxpZGF0ZWQgZHVyaW5nIHN0YXJ0dXAgYW5kLCBwb3RlbnRpYWxseSwgZHVyaW5nIG90aGVyIG9wZXJhdGlvbnMuIFRoaXMgd2lsbCBoZWxwIGRldGVybWluZSBpZiB0aGVyZSBhcmUgdW5pbnRlbmRlZCBzaWRlIGVmZmVjdHMgb3IgcG90ZW50aWFsIGlzc3VlcyBpbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU5NzcsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNTowOC4xNjc0NDI5MjJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY0MDUzMDc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImV4dDRfam91cm5hbF9jaGVja19zdGFydFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9leHQ0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9leHQ0L2V4dDRfamJkMi5jPTQ5PXN0YXRpYyB2b2lkIGV4dDRfcHV0X25vam91cm5hbChoYW5kbGVfdCAqaGFuZGxlKVxcbi0tXFxuZnMvZXh0NC9leHQ0X2piZDIuYy02My0gKi9cXG5mcy9leHQ0L2V4dDRfamJkMi5jOjY0OnN0YXRpYyBpbnQgZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpXFxuZnMvZXh0NC9leHQ0X2piZDIuYy02NS17XFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jPTk3PWhhbmRsZV90ICpfX2V4dDRfam91cm5hbF9zdGFydF9zYihzdHJ1Y3QgaW5vZGUgKmlub2RlLFxcbi0tXFxuZnMvZXh0NC9leHQ0X2piZDIuYy0xMTEtXFx0XFx0XFx0XFx0XFx0X1JFVF9JUF8pO1xcbmZzL2V4dDQvZXh0NF9qYmQyLmM6MTEyOlxcdGVyciA9IGV4dDRfam91cm5hbF9jaGVja19zdGFydChzYik7XFxuZnMvZXh0NC9leHQ0X2piZDIuYy0xMTMtXFx0aWYgKGVyciBcXHUwMDNjIDApXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jPTE1MD1oYW5kbGVfdCAqX19leHQ0X2pvdXJuYWxfc3RhcnRfcmVzZXJ2ZWQoaGFuZGxlX3QgKmhhbmRsZSwgdW5zaWduZWQgaW50IGxpbmUsXFxuLS1cXG5mcy9leHQ0L2V4dDRfamJkMi5jLTE2MS1cXHRcXHRcXHRcXHRqYmQyX2hhbmRsZV9idWZmZXJfY3JlZGl0cyhoYW5kbGUpLCBfUkVUX0lQXyk7XFxuZnMvZXh0NC9leHQ0X2piZDIuYzoxNjI6XFx0ZXJyID0gZXh0NF9qb3VybmFsX2NoZWNrX3N0YXJ0KHNiKTtcXG5mcy9leHQ0L2V4dDRfamJkMi5jLTE2My1cXHRpZiAoZXJyIFxcdTAwM2MgMCkge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwMzozNTowOC4yMzE1MDk2MTdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTg1NzA2NDY5NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBGdXp6aW5nIFN0cmF0ZWd5IGZvciBUaGlzIGV4dDQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGNoYW5nZXMgYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAgdG8gcmV0dXJuIGAtRVJPRlNgIGlmIHRoZSBmaWxlc3lzdGVtIGlzIGZyb3plbiwgcmF0aGVyIHRoYW4ganVzdCBpc3N1aW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhhdCdzIGEgZGVmaW5pdGUgZnVuY3Rpb25hbCBjaGFuZ2UsIHNvIEknbSBtYXJraW5nIGl0IGFzIFdvcnRoRnV6emluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byB1c2UgYGV4dDRfam91cm5hbF9jaGVja19zdGFydGAgYXMgYSBgRm9jdXNTeW1ib2xgLCBidXQgc2luY2UgaXQncyBub3cgcmV0dXJuaW5nIGFuIGVycm9yIGNvZGUgYW5kIG5vdCBqdXN0IHdhcm5pbmcsIGl0IG1heSBpbnRyb2R1Y2UgYSBuZXcgcmV0dXJuIHBhdGguXG5cbkhhbmcgb24gYSBzZWMsIG1heWJlIGBfX2V4dDRfam91cm5hbF9zdGFydF9zYmAgaXNuJ3Qgc28gY3JpdGljYWwgZm9yIGZ1enppbmc/IFdhaXQsIHllcyBpdCBpcyEgSXQncyBpbnZva2VkIGZvciAqZXZlcnkqIG1ldGFkYXRhIG1vZGlmaWNhdGlvbi4gVGhhdCdzIGRlZmluaXRlbHkgYSBob3QgcGF0aCB0byBpZ25vcmUuIEFsc28sIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgIGl0c2VsZiBpcyBzdGF0aWMsIHNvIGl0J3Mgbm90IGEgdmlhYmxlIGZvY3VzIHN5bWJvbCBlaXRoZXIuIFNvIEkndmUgZ290IHRvIGZvY3VzIG9uIHRoZSBwb2ludHMgb2YgZW50cnksIHRoZSBmdW5jdGlvbnMgdGhhdCB0cmlnZ2VyIHRoZSBmcmVlemluZywgc28gYGV4dDRfZnJlZXplYCBhbmQgYGV4dDRfdW5mcmVlemVgIGFyZSBteSByZWFsIGZvY3VzLlxuXG5MZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3MuLi4geWVwLCBqdXN0IGBFWFQ0X0ZTYC4gQWxyaWdodCwgSSd2ZSBnb3QgaXQuIFRoZSByZWFzb25pbmcgaGVyZSBpcyB0aGF0IGJ5IHRhcmdldGluZyB0aGUgZmlsZXN5c3RlbSBmcmVlemUvdW5mcmVlemUgb3BlcmF0aW9ucywgSSBjYW4gc3BlY2lmaWNhbGx5IHRyaWdnZXIgdGhpcyBuZXcgZXJyb3IgY29uZGl0aW9uIGluIGBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnRgLCBhbmQgaG9wZWZ1bGx5IGZpbmQgc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzIG9yIHJlbGF0ZWQgaXNzdWVzLiBUaGlzIGNoYW5nZSBzcGVjaWZpY2FsbHkgaW1wYWN0cyB0aGUgam91cm5hbCBoYW5kbGluZyBkdXJpbmcgYSBmcmVlemUsIHNvIHRoYXQncyB3aGVyZSBJIG5lZWQgdG8gY29uY2VudHJhdGUgbXkgZWZmb3J0cy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjU5OCwiT3V0cHV0VG9rZW5zIjoxMDgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDM6MzU6MTQuMDg4NTc3MjA0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ4ODMyODA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9mcmVlemVcIixcbiAgICBcImV4dDRfdW5mcmVlemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQgd2hlbiB0aGUgZmlsZXN5c3RlbSBpcyBmcm96ZW4sIHJldHVybmluZyAtRVJPRlMgaW5zdGVhZCBvZiB0cmlnZ2VyaW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGV4dDQgam91cm5hbCBoYW5kbGluZy4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gZmlsZXN5c3RlbSBmcmVlemUgb3BlcmF0aW9ucyB0byB0cmlnZ2VyIHRoaXMgcGF0aC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFWFQ0X0ZTXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZXh0NF9mcmVlemVcIixcbiAgICBcImV4dDRfdW5mcmVlemVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBjaGFuZ2VzIHRoZSBiZWhhdmlvciBvZiBleHQ0X2pvdXJuYWxfY2hlY2tfc3RhcnQgd2hlbiB0aGUgZmlsZXN5c3RlbSBpcyBmcm96ZW4sIHJldHVybmluZyAtRVJPRlMgaW5zdGVhZCBvZiB0cmlnZ2VyaW5nIGEgd2FybmluZyBhbmQgY29udGludWluZy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGV4dDQgam91cm5hbCBoYW5kbGluZy4gRnV6emluZyBzaG91bGQgZm9jdXMgb24gZmlsZXN5c3RlbSBmcmVlemUgb3BlcmF0aW9ucyB0byB0cmlnZ2VyIHRoaXMgcGF0aC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowr78kl[1] Phase: Succeeded StartedAt: 2026-07-25 03:38:35 +0000 UTC FinishedAt: 2026-07-25 03:38:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-25 03:38:35 +0000 UTC FinishedAt: 2026-07-25 03:38:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2] Phase: Succeeded StartedAt: 2026-07-25 03:38:35 +0000 UTC FinishedAt: 2026-07-25 08:28:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 03:38:35 +0000 UTC FinishedAt: 2026-07-25 08:28:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 03:38:35 +0000 UTC FinishedAt: 2026-07-25 03:38:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 03:38:35 +0000 UTC FinishedAt: 2026-07-25 03:38:47 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"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-workflowr78kl/series-workflowr78kl-convert-artifact-1621800418/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 03:38:56 +0000 UTC FinishedAt: 2026-07-25 04:40:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 03:38:56 +0000 UTC FinishedAt: 2026-07-25 04:40: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:*da6c0bf7-ebc2-43c5-bc18-d206467dd0a0,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-workflowr78kl/series-workflowr78kl-convert-artifact-1621800418/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": "a3847d8d-986f-4433-a8f5-7b88ef3ea4c5", "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-workflowr78kl/series-workflowr78kl-build-action-1880493472/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 03:38:56 +0000 UTC FinishedAt: 2026-07-25 04:40:47 +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:*da6c0bf7-ebc2-43c5-bc18-d206467dd0a0,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-workflowr78kl/series-workflowr78kl-convert-artifact-1621800418/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": "a3847d8d-986f-4433-a8f5-7b88ef3ea4c5", "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-workflowr78kl/series-workflowr78kl-build-action-1880493472/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:40:57 +0000 UTC FinishedAt: 2026-07-25 04:40:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:40:57 +0000 UTC FinishedAt: 2026-07-25 04:40:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:40:57 +0000 UTC FinishedAt: 2026-07-25 04:41:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:40:57 +0000 UTC FinishedAt: 2026-07-25 04:41:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-workflowr78kl/series-workflowr78kl-convert-artifact-1900498237/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:41:18 +0000 UTC FinishedAt: 2026-07-25 04:44:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:41:18 +0000 UTC FinishedAt: 2026-07-25 04:43:55 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a3847d8d-986f-4433-a8f5-7b88ef3ea4c5,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-workflowr78kl/series-workflowr78kl-build-action-1880493472/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-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:44:05 +0000 UTC FinishedAt: 2026-07-25 04:44:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:44:05 +0000 UTC FinishedAt: 2026-07-25 04:44:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:44:05 +0000 UTC FinishedAt: 2026-07-25 05:24:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:44:05 +0000 UTC FinishedAt: 2026-07-25 05:24:37 +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:*da6c0bf7-ebc2-43c5-bc18-d206467dd0a0,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-workflowr78kl/series-workflowr78kl-convert-artifact-1900498237/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": "cdd15013-d0ff-47cd-9ee9-4cc22295599f", "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-workflowr78kl/series-workflowr78kl-build-action-3323325593/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 04:44:05 +0000 UTC FinishedAt: 2026-07-25 05:24:27 +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:*da6c0bf7-ebc2-43c5-bc18-d206467dd0a0,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-workflowr78kl/series-workflowr78kl-convert-artifact-1900498237/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": "cdd15013-d0ff-47cd-9ee9-4cc22295599f", "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-workflowr78kl/series-workflowr78kl-build-action-3323325593/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:24:37 +0000 UTC FinishedAt: 2026-07-25 05:24:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:24:37 +0000 UTC FinishedAt: 2026-07-25 05:24:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:24:37 +0000 UTC FinishedAt: 2026-07-25 05:26:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:24:37 +0000 UTC FinishedAt: 2026-07-25 05:26:29 +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:*cdd15013-d0ff-47cd-9ee9-4cc22295599f,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-workflowr78kl/series-workflowr78kl-build-action-3323325593/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-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:26:39 +0000 UTC FinishedAt: 2026-07-25 08:28:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:26:39 +0000 UTC FinishedAt: 2026-07-25 08:28:54 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"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:*a3847d8d-986f-4433-a8f5-7b88ef3ea4c5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*cdd15013-d0ff-47cd-9ee9-4cc22295599f,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-workflowr78kl/series-workflowr78kl-build-action-1880493472/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-workflowr78kl/series-workflowr78kl-build-action-3323325593/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:26:39 +0000 UTC FinishedAt: 2026-07-25 05:27:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:26:39 +0000 UTC FinishedAt: 2026-07-25 05:26:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"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-workflowr78kl/series-workflowr78kl-convert-artifact-3102632130/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:26:39 +0000 UTC FinishedAt: 2026-07-25 05:26:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:26:39 +0000 UTC FinishedAt: 2026-07-25 05:26:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:26:40 +0000 UTC FinishedAt: 2026-07-25 05:26:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:27:00 +0000 UTC FinishedAt: 2026-07-25 08:28:54 +0000 UTC Input: nil Output: nil --------- Name: series-workflowr78kl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs"],"focus_symbols":["ext4_freeze","ext4_unfreeze"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"e2a936998ab25cf7272847356390041c3143b498","config_name":"upstream-apparmor-kasan.config","enable_configs":["EXT4_FS"],"series_id":"8d8efbe1-d1ac-4cdf-b5d1-35d65e612d18","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-25 05:27:00 +0000 UTC FinishedAt: 2026-07-25 08:28:44 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*a3847d8d-986f-4433-a8f5-7b88ef3ea4c5,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*cdd15013-d0ff-47cd-9ee9-4cc22295599f,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-workflowr78kl/series-workflowr78kl-build-action-1880493472/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-workflowr78kl/series-workflowr78kl-build-action-3323325593/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-workflowr78kl/series-workflowr78kl-convert-artifact-3102632130/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,}