Name: series-workflowllltd Phase: Succeeded StartedAt: 2026-06-27 17:05:10 +0000 UTC FinishedAt: 2026-06-27 21:09:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[0] Phase: Succeeded StartedAt: 2026-06-27 17:05:10 +0000 UTC FinishedAt: 2026-06-27 17:17:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[0].run-triage Phase: Succeeded StartedAt: 2026-06-27 17:05:10 +0000 UTC FinishedAt: 2026-06-27 17:17:05 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "189ce3c81f8188fb737d59a8a8784f074e830238", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_SYSFS", "DAMON_VADDR", "DAMON_PADDR" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "189ce3c81f8188fb737d59a8a8784f074e830238", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_SYSFS", "DAMON_VADDR", "DAMON_PADDR" ], "series_id": "c40bc102-fd46-4e62-9e25-e7189b6dd2e4" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "damon_set_regions" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZGFtb25fc2V0X3JlZ2lvbnMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGxvZ2ljIHRvIGBkYW1vbl9zZXRfcmVnaW9uc2AgdG8gcmVqZWN0IGFkZHJlc3MgcmFuZ2VzIHdoZXJlIHN0YXJ0IFx1MDAzZT0gZW5kLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIERBTU9OIGNvcmUgbG9naWMsIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHRoZSBEQU1PTiBzeXNmcyBpbnRlcmZhY2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0ZTM3YTFlZDJjMjQ4ZTIwOTg1MTliZTU4MzkwNDQwZDdlMWNhZTczXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdW4gMjcgMTc6MTM6MDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vY29yZS5jIGIvbW0vZGFtb24vY29yZS5jXG5pbmRleCA3ZTRiOWFmZmM1YjA2MC4uYjMxMDBkN2ZhNTU5NjkgMTAwNjQ0XG4tLS0gYS9tbS9kYW1vbi9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL2RhbW9uL2NvcmUuY1xuQEAgLTM1OCw2ICYjNDM7MzU4LDExIEBAIGludCBkYW1vbl9zZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2VzLFxuIFx0dW5zaWduZWQgaW50IGk7XG4gXHRpbnQgZXJyO1xuIFxuJiM0MztcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG5yX3JhbmdlczsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdGlmIChyYW5nZXNbaV0uc3RhcnQgXHUwMDNlPSByYW5nZXNbaV0uZW5kKVxuJiM0MztcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0LyogUmVtb3ZlIHJlZ2lvbnMgd2hpY2ggYXJlIG5vdCBpbiB0aGUgbmV3IHJhbmdlcyAqL1xuIFx0ZGFtb25fZm9yX2VhY2hfcmVnaW9uX3NhZmUociwgbmV4dCwgdCkge1xuIFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBucl9yYW5nZXM7IGkmIzQzOyYjNDM7KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT04mIzM0OywKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OywKICAgICYjMzQ7REFNT05fVkFERFImIzM0OywKICAgICYjMzQ7REFNT05fUEFERFImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkYW1vbl9zZXRfcmVnaW9ucyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgdG8gYGRhbW9uX3NldF9yZWdpb25zYCB0byByZWplY3QgYWRkcmVzcyByYW5nZXMgd2hlcmUgc3RhcnQgXHUwMDNlPSBlbmQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgREFNT04gY29yZSBsb2dpYywgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgdGhlIERBTU9OIHN5c2ZzIGludGVyZmFjZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGUzN2ExZWQyYzI0OGUyMDk4NTE5YmU1ODM5MDQ0MGQ3ZTFjYWU3MwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgSnVuIDI3IDE3OjEzOjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbW0vZGFtb24vY29yZS5jIGIvbW0vZGFtb24vY29yZS5jCmluZGV4IDdlNGI5YWZmYzViMDYwLi5iMzEwMGQ3ZmE1NTk2OSAxMDA2NDQKLS0tIGEvbW0vZGFtb24vY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL21tL2RhbW9uL2NvcmUuYwpAQCAtMzU4LDYgJiM0MzszNTgsMTEgQEAgaW50IGRhbW9uX3NldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlICpyYW5nZXMsCiAJdW5zaWduZWQgaW50IGk7CiAJaW50IGVycjsKIAomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgbnJfcmFuZ2VzOyBpJiM0MzsmIzQzOykgewomIzQzOwkJaWYgKHJhbmdlc1tpXS5zdGFydCAmZ3Q7PSByYW5nZXNbaV0uZW5kKQomIzQzOwkJCXJldHVybiAtRUlOVkFMOwomIzQzOwl9CiYjNDM7CiAJLyogUmVtb3ZlIHJlZ2lvbnMgd2hpY2ggYXJlIG5vdCBpbiB0aGUgbmV3IHJhbmdlcyAqLwogCWRhbW9uX2Zvcl9lYWNoX3JlZ2lvbl9zYWZlKHIsIG5leHQsIHQpIHsKIAkJZm9yIChpID0gMDsgaSAmbHQ7IG5yX3JhbmdlczsgaSYjNDM7JiM0MzspIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg3MAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDEwMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBEQU1PTiBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG1tL2RhbW9uL2NvcmUuY2AuIFNlZW1zIGxpa2UgdGhleSYjMzk7dmUgYWRkZWQgYSBjaGVjayB3aXRoaW4gYGRhbW9uX3NldF9yZWdpb25zYC4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTtyZSBlbnN1cmluZyB0aGF0IHRoZSBzdGFydCBvZiBhIHJlZ2lvbiBpc24mIzM5O3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBlbmQuIE1ha2VzIHNlbnNlLCB0aGF0JiMzOTtzIGEgYmFzaWMgc2FuaXR5IGNoZWNrIOKAkyB5b3UgY2FuJiMzOTt0IGhhdmUgYSByZWdpb24gZGVmaW5lZCB0aGF0IHdheS4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCBjb3VsZCBhZmZlY3QgYmVoYXZpb3IuCgpNeSBpbW1lZGlhdGUgdGhvdWdodHMgYXJlLCAmIzM0O0lzIHRoaXMgcmVhY2hhYmxlPyYjMzQ7IGFuZCAmIzM0O1doYXQgYXJlIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcz8mIzM0OyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29kZSBwYXRocyB0aGF0IGFjdHVhbGx5IGNhbGwgYGRhbW9uX3NldF9yZWdpb25zYCBhbmQgdW5kZXIgd2hhdCBrZXJuZWwgY29uZmlndXJhdGlvbnMuIEkmIzM5O2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIHNlYXJjaCB0b29scyB0byBsb2NhdGUgYWxsIGluc3RhbmNlcyBvZiB0aGF0IGZ1bmN0aW9uLCBhcyB3ZWxsIGFzIGNvbmZpcm0gaXQgaXMgd2l0aGluIHRoZSBtb2RpZmllZCBjb3JlIGZpbGUuIEtub3dpbmcgdGhlIENPTkZJRyBvcHRpb25zIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIHNjb3BlIG9mIHRoaXMgY2hhbmdlLiBMZXQmIzM5O3MgZGlnIGluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RhbW9uX3NldF9yZWdpb25zJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZGFtb24vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL2NvcmUuYz0zMjE9c3RhdGljIGludCBkYW1vbl9maWxsX3JlZ2lvbnNfaG9sZXMoc3RydWN0IGRhbW9uX3JlZ2lvbiAqZmlyc3QsXG4tLVxubW0vZGFtb24vY29yZS5jLTM0Mi0vKlxubW0vZGFtb24vY29yZS5jOjM0MzogKiBkYW1vbl9zZXRfcmVnaW9ucygpIC0gU2V0IHJlZ2lvbnMgb2YgYSB0YXJnZXQgZm9yIGdpdmVuIGFkZHJlc3MgcmFuZ2VzLlxubW0vZGFtb24vY29yZS5jLTM0NC0gKiBAdDpcdFx0dGhlIGdpdmVuIHRhcmdldC5cbi0tXG5tbS9kYW1vbi9jb3JlLmMtMzUzLSAqL1xubW0vZGFtb24vY29yZS5jOjM1NDppbnQgZGFtb25fc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlcyxcbm1tL2RhbW9uL2NvcmUuYy0zNTUtXHRcdHVuc2lnbmVkIGludCBucl9yYW5nZXMsIHVuc2lnbmVkIGxvbmcgbWluX3JlZ2lvbl9zeilcbi0tXG5tbS9kYW1vbi9jb3JlLmM9MTM1ND1zdGF0aWMgaW50IGRhbW9uX2NvbW1pdF90YXJnZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICpkc3QsXG4tLVxubW0vZGFtb24vY29yZS5jLTEzNzEtXHRcdHJhbmdlc1tpJiM0MzsmIzQzO10gPSBzcmNfcmVnaW9uLVx1MDAzZWFyO1xubW0vZGFtb24vY29yZS5jOjEzNzI6XHRlcnIgPSBkYW1vbl9zZXRfcmVnaW9ucyhkc3QsIHJhbmdlcywgaSwgc3JjX21pbl9yZWdpb25fc3opO1xubW0vZGFtb24vY29yZS5jLTEzNzMtXHRrZnJlZShyYW5nZXMpO1xuLS1cbm1tL2RhbW9uL2NvcmUuYz0zNzAzPWludCBkYW1vbl9zZXRfcmVnaW9uX3N5c3RlbV9yYW1zX2RlZmF1bHQoc3RydWN0IGRhbW9uX3RhcmdldCAqdCxcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMzcxNy1cdGFkZHJfcmFuZ2UuZW5kID0gKmVuZDtcbm1tL2RhbW9uL2NvcmUuYzozNzE4Olx0cmV0dXJuIGRhbW9uX3NldF9yZWdpb25zKHQsIFx1MDAyNmFkZHJfcmFuZ2UsIDEsIG1pbl9yZWdpb25fc3opO1xubW0vZGFtb24vY29yZS5jLTM3MTktfVxuLS1cbm1tL2RhbW9uL3N5c2ZzLmM9MTk0Nz1zdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3NldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsXG4tLVxubW0vZGFtb24vc3lzZnMuYy0xOTcxLVx0fVxubW0vZGFtb24vc3lzZnMuYzoxOTcyOlx0ZXJyID0gZGFtb25fc2V0X3JlZ2lvbnModCwgcmFuZ2VzLCBzeXNmc19yZWdpb25zLVx1MDAzZW5yLCBtaW5fcmVnaW9uX3N6KTtcbm1tL2RhbW9uL3N5c2ZzLmMtMTk3My1vdXQ6XG4tLVxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oPTM5Mz1zdGF0aWMgdm9pZCBkYW1vbl90ZXN0X3NldF9yZWdpb25zX2ZvcihzdHJ1Y3Qga3VuaXQgKnRlc3QsXG4tLVxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oLTQxNC1cbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaDo0MTU6XHRkYW1vbl9zZXRfcmVnaW9ucyh0LCBuZXdfcmFuZ2VzLCBzel9uZXdfcmFuZ2VzLCBtaW5fcmVnaW9uX3N6KTtcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC00MTYtXG4tLVxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaD05ND1zdGF0aWMgc3RydWN0IGRhbW9uX3JlZ2lvbiAqX19udGhfcmVnaW9uX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIGludCBpZHgpXG4tLVxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xMDctLypcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg6MTA4OiAqIFRlc3QgJiMzOTtkYW1vbl9zZXRfcmVnaW9ucygpJiMzOTtcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTA5LSAqXG4tLVxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xMjItICogcmVnaW9ucy4gIFRoZSB1cGRhdGUgb2YgY3VycmVudCB0YXJnZXQgcmVnaW9ucyBpcyB0aGUgcm9sZSBvZlxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxMjM6ICogJiMzOTtkYW1vbl9zZXRfcmVnaW9ucygpJiMzOTsuXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTEyNC0gKlxuLS1cbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg9MTI5PXN0YXRpYyB2b2lkIGRhbW9uX2RvX3Rlc3RfYXBwbHlfdGhyZWVfcmVnaW9ucyhzdHJ1Y3Qga3VuaXQgKnRlc3QsXG4tLVxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTEtXHR9XG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oOjE1MjpcdGlmIChkYW1vbl9zZXRfcmVnaW9ucyh0LCByYW5nZXMsIG5yX3JlZ2lvbnMgLyAyLFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTMtXHRcdFx0XHREQU1PTl9NSU5fUkVHSU9OX1NaKSkge1xuLS1cbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTU1LVx0XHRkYW1vbl9kZXN0cm95X3RhcmdldCh0LCBOVUxMKTtcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg6MTU2Olx0XHRrdW5pdF9za2lwKHRlc3QsIFwmIzM0O2RhbW9uX3NldF9yZWdpb25zKCkgZmFpbFwmIzM0Oyk7XG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTE1Ny1cdH1cbi0tXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTE1OS1cbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg6MTYwOlx0aWYgKGRhbW9uX3NldF9yZWdpb25zKHQsIHRocmVlX3JlZ2lvbnMsIDMsIERBTU9OX01JTl9SRUdJT05fU1opKSB7XG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTE2MS1cdFx0ZGFtb25fZGVzdHJveV90YXJnZXQodCwgTlVMTCk7XG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oOjE2MjpcdFx0a3VuaXRfc2tpcCh0ZXN0LCBcJiMzNDtzZWNvbmQgZGFtb25fc2V0X3JlZ2lvbnMoKSBmYWlsXCYjMzQ7KTtcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTYzLVx0fVxuLS1cbm1tL2RhbW9uL3ZhZGRyLmM9MTkzPXN0YXRpYyB2b2lkIF9fZGFtb25fdmFfaW5pdF9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmN0eCxcbi0tXG5tbS9kYW1vbi92YWRkci5jLTIwOS1cbm1tL2RhbW9uL3ZhZGRyLmM6MjEwOlx0ZGFtb25fc2V0X3JlZ2lvbnModCwgcmVnaW9ucywgMywgREFNT05fTUlOX1JFR0lPTl9TWik7XG5tbS9kYW1vbi92YWRkci5jLTIxMS19XG4tLVxubW0vZGFtb24vdmFkZHIuYz0yMjg9c3RhdGljIHZvaWQgZGFtb25fdmFfdXBkYXRlKHN0cnVjdCBkYW1vbl9jdHggKmN0eClcbi0tXG5tbS9kYW1vbi92YWRkci5jLTIzNS1cdFx0XHRjb250aW51ZTtcbm1tL2RhbW9uL3ZhZGRyLmM6MjM2Olx0XHRkYW1vbl9zZXRfcmVnaW9ucyh0LCB0aHJlZV9yZWdpb25zLCAzLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTtcbm1tL2RhbW9uL3ZhZGRyLmMtMjM3LVx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MjIKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAxMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEQU1PTiBSZWdpb24gVXBkYXRlKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIHNhbml0eSBjaGVjayB3aXRoaW4gYGRhbW9uX3NldF9yZWdpb25zYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhZGRpbmcgYSBjaGVjazogYGlmIChyYW5nZXNbaV0uc3RhcnQgJmd0Oz0gcmFuZ2VzW2ldLmVuZClgLCBhbmQgaWYgdGhhdCBjb25kaXRpb24gaXMgbWV0LCBpdCByZXR1cm5zIGAtRUlOVkFMYC4gVGhhdCBtYWtlcyBzZW5zZSAtIHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGVuc3VyZSB0aGUgc3RhcnQgb2YgYSBtZW1vcnkgcmFuZ2UgaXMgYmVmb3JlIGl0cyBlbmQ7IG90aGVyd2lzZSwgdGhlIHdob2xlIHRoaW5nIGZhbGxzIGFwYXJ0LgoKTm93LCB3aGVyZSBpcyB0aGlzIGBkYW1vbl9zZXRfcmVnaW9uc2AgZnVuY3Rpb24gYWN0dWFsbHkgKnVzZWQqPyBMZXQmIzM5O3Mgc2VlLi4uIGl0JiMzOTtzIGNhbGxlZCBmcm9tIHNldmVyYWwgcGxhY2VzOiBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgLCBgZGFtb25fc2V0X3JlZ2lvbl9zeXN0ZW1fcmFtc19kZWZhdWx0YCwgYGRhbW9uX2NvbW1pdF90YXJnZXRfcmVnaW9uc2AsIGBfX2RhbW9uX3ZhX2luaXRfcmVnaW9uc2AsIGFuZCBgZGFtb25fdmFfdXBkYXRlYC4gVGhhdCBjb3ZlcnMgYSBwcmV0dHkgYnJvYWQgcmFuZ2Ugb2YgaW50ZXJhY3Rpb25zIHdpdGggdGhlIERBTU9OIHN1YnN5c3RlbS4gU28sIGVzc2VudGlhbGx5IGFueXdoZXJlIHdlJiMzOTtyZSBzZXR0aW5nIG9yIHVwZGF0aW5nIHRoZSByZWdpb25zIERBTU9OIGlzIG1vbml0b3JpbmcsIHRoaXMgY2hlY2sgbm93IGZpcmVzLgoKT2YgY291cnNlLCBEQU1PTiBpcyBEYXRhIEFjY2VzcyBNT05pdG9yLCBzbyBJIG5lZWQgdG8gZ28gc2VlIGlmIHRoZXJlIGFyZSBhbnkgY29uZmlnIG9wdGlvbnMgdGhhdCBpbmZsdWVuY2UgdGhlIHdheSBpdCB3b3Jrcy4gVGhpcyBzYW5pdHkgY2hlY2sgd291bGQgY2VydGFpbmx5IGludGVyYWN0IHdpdGggdGhlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAxNzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgREFNT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vS2NvbmZpZz0zPW1lbnUgXCYjMzQ7RGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1wmIzM0O1xubW0vZGFtb24vS2NvbmZpZy00LVxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxubW0vZGFtb24vS2NvbmZpZy02LVx0Ym9vbCBcJiMzNDtEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxubW0vZGFtb24vS2NvbmZpZzoxNTpjb25maWcgREFNT05fREVCVUdfU0FOSVRZXG5tbS9kYW1vbi9LY29uZmlnLTE2LVx0Ym9vbCBcJiMzNDtDaGVjayBzYW5pdHkgb2YgREFNT04gY29kZVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMjUtXG5tbS9kYW1vbi9LY29uZmlnOjI2OmNvbmZpZyBEQU1PTl9LVU5JVF9URVNUXG5tbS9kYW1vbi9LY29uZmlnLTI3LVx0Ym9vbCBcJiMzNDtUZXN0IGZvciBkYW1vblwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy0zNy1cbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXG5tbS9kYW1vbi9LY29uZmlnLTM5LVx0Ym9vbCBcJiMzNDtEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxubW0vZGFtb24vS2NvbmZpZzo0Nzpjb25maWcgREFNT05fUEFERFJcbm1tL2RhbW9uL0tjb25maWctNDgtXHRib29sIFwmIzM0O0RhdGEgYWNjZXNzIG1vbml0b3Jpbmcgb3BlcmF0aW9ucyBmb3IgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2VcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTU1LVxubW0vZGFtb24vS2NvbmZpZzo1Njpjb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy01Ny1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgREFNT04gb3BlcmF0aW9uc1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy02Ny1cbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXG5tbS9kYW1vbi9LY29uZmlnLTY5LVx0Ym9vbCBcJiMzNDtEQU1PTiBzeXNmcyBpbnRlcmZhY2VcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxubW0vZGFtb24vS2NvbmZpZzo3Njpjb25maWcgREFNT05fU1lTRlNfS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy03Ny1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgZGFtb24gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTg3LVxubW0vZGFtb24vS2NvbmZpZzo4ODpjb25maWcgREFNT05fUkVDTEFJTVxubW0vZGFtb24vS2NvbmZpZy04OS1cdGJvb2wgXCYjMzQ7QnVpbGQgREFNT04tYmFzZWQgcmVjbGFpbSAoREFNT05fUkVDTEFJTSlcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTk5LVxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXG5tbS9kYW1vbi9LY29uZmlnLTEwMS1cdGJvb2wgXCYjMzQ7QnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMTA3LVxubW0vZGFtb24vS2NvbmZpZzoxMDg6Y29uZmlnIERBTU9OX1NUQVRcbm1tL2RhbW9uL0tjb25maWctMTA5LVx0Ym9vbCBcJiMzNDtCdWlsZCBkYXRhIGFjY2VzcyBtb25pdG9yaW5nIHN0YXQgKERBTU9OX1NUQVQpXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy0xMTUtXG5tbS9kYW1vbi9LY29uZmlnOjExNjpjb25maWcgREFNT05fU1RBVF9FTkFCTEVEX0RFRkFVTFRcbm1tL2RhbW9uL0tjb25maWctMTE3LVx0Ym9vbCBcJiMzNDtFbmFibGUgREFNT05fU1RBVCBieSBkZWZhdWx0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDg3NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDEyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERBTU9OIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgREFNT04gY29uZmlndXJhdGlvbi4gVGhlIGtleSBoZXJlIGlzLCBvZiBjb3Vyc2UsIGBEQU1PTmAuIEFuZCBpdCBsb29rcyBsaWtlIGBEQU1PTl9TWVNGU2AgaXMgbGlrZWx5IGEgY3J1Y2lhbCBjb21wb25lbnQsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIGNhbGwgdG8gaXQgZnJvbSBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgLiBBbHNvLCBJJiMzOTtsbCBuZWVkIHRvIHJlbWVtYmVyIGBEQU1PTl9WQUREUmAgYW5kIGBEQU1PTl9QQUREUmAuIE5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBpcyBob3cgdXNlci1zcGFjZSBpbnRlcmFjdHMgd2l0aCBgZGFtb25fc2V0X3JlZ2lvbnNgLiBJIHNlZSB0aGF0IGBkYW1vbl9zeXNmc19zZXRfcmVnaW9uc2AgaXMgdGhlIGdhdGV3YXkuIEFuZCB0aGF0IGlzIGNhbGxlZCBmcm9tIGBkYW1vbl9zeXNmc19yZWdpb25zX3VwZGF0ZWAsIHdoaWNoIHNlZW1zIHRvIGJlIHRyaWdnZXJlZCBieSBzeXNmcyB3cml0ZXMsIHNvIEkgbmVlZCB0byBjaGVjayBgbW0vZGFtb24vc3lzZnMuY2AgdG8gdHJhY2UgdGhlIGRhdGEgZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAxNzoxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkYW1vbl9zeXNmc19zZXRfcmVnaW9ucyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL2RhbW9uL3N5c2ZzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vc3lzZnMuYz0xOTAyPXN0YXRpYyBpbnQgZGFtb25fc3lzZnNfc2V0X3Byb2JlcyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsXG4tLVxubW0vZGFtb24vc3lzZnMuYy0xOTQ2LVxubW0vZGFtb24vc3lzZnMuYzoxOTQ3OnN0YXRpYyBpbnQgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCxcbm1tL2RhbW9uL3N5c2ZzLmMtMTk0OC1cdFx0c3RydWN0IGRhbW9uX3N5c2ZzX3JlZ2lvbnMgKnN5c2ZzX3JlZ2lvbnMsXG4tLVxubW0vZGFtb24vc3lzZnMuYz0xOTc5PXN0YXRpYyBpbnQgZGFtb25fc3lzZnNfYWRkX3RhcmdldChzdHJ1Y3QgZGFtb25fc3lzZnNfdGFyZ2V0ICpzeXNfdGFyZ2V0LFxuLS1cbm1tL2RhbW9uL3N5c2ZzLmMtMTk5My1cdHQtXHUwMDNlb2Jzb2xldGUgPSBzeXNfdGFyZ2V0LVx1MDAzZW9ic29sZXRlO1xubW0vZGFtb24vc3lzZnMuYzoxOTk0Olx0cmV0dXJuIGRhbW9uX3N5c2ZzX3NldF9yZWdpb25zKHQsIHN5c190YXJnZXQtXHUwMDNlcmVnaW9ucyxcbm1tL2RhbW9uL3N5c2ZzLmMtMTk5NS1cdFx0XHRjdHgtXHUwMDNlbWluX3JlZ2lvbl9zeik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ4MAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogREFNT04gU3lzZnMgSW50ZXJmYWNlKioKCk9rYXksIHNvIGBkYW1vbl9zeXNmc19hZGRfdGFyZ2V0YCBpcyB0aGUgY3JpdGljYWwgZnVuY3Rpb24gaGVyZSwgYW5kIGl0JiMzOTtzIHJlYWNoZWQgZnJvbSBgZGFtb25fc3lzZnNfc2V0X3RhcmdldHNgLCB3aGljaCBpbiB0dXJuLCBpcyBjYWxsZWQgYnkgc29tZXRoaW5nIGxpa2UgYGRhbW9uX3N5c2ZzX3R1cm5fZGFtb25fb25gLiBFc3NlbnRpYWxseSwgdGhhdCBtZWFucyB1c2VyLXNwYWNlIGNhbiBjb250cm9sIGl0IHZpYSB0aGUgc3lzZnMgaW50ZXJmYWNlLiBUaGUgcGF0Y2ggYWRkcyBhIGJhc2ljIGNoZWNrLCBzcGVjaWZpY2FsbHkgZm9yIGBzdGFydCAmZ3Q7PSBlbmRgLCByZXR1cm5pbmcgYC1FSU5WQUxgLiBUaGF0JiMzOTtzIGEgY2xhc3NpYyBmdXp6aW5nIHRhcmdldCByaWdodCB0aGVyZS4gQSBxdWljayBhbmQgZWFzeSBwYXRoIHRvIGZpbmQgYnVncyBpZiB0aGVyZSBpcyBvbmUuCgpNeSBmb2N1cyBzaG91bGQgYmUgb24gYGRhbW9uX3NldF9yZWdpb25zYCBhbmQgYGRhbW9uX3N5c2ZzX3NldF9yZWdpb25zYCwga2VlcGluZyBpbiBtaW5kIHRoZSBjb25maWd1cmF0aW9ucyBpbnZvbHZlZC4gSSYjMzk7bGwgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGZ1enppbmcgY29uZmlndXJhdGlvbiBjb3ZlcnMgYERBTU9OYCwgYERBTU9OX1NZU0ZTYCwgdGhhdCYjMzk7cyBhIGdpdmVuLiBCdXQgSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLCBqdXN0IHRvIGJlIHRob3JvdWdoLgoKQWxyaWdodCwgYSBxdWljayBsb29rIHJldmVhbHMgYERBTU9OX1ZBRERSYCBhbmQgYERBTU9OX1BBRERSYCwgdGhvc2UgZGVhbCB3aXRoIHZpcnR1YWwgYW5kIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2VzLCByZXNwZWN0aXZlbHkuIERlZmluaXRlbHkgd29ydGggaW5jbHVkaW5nLCBleHBhbmRpbmcgdGhlIGNvdmVyYWdlIGZvciB2aXJ0dWFsIGFuZCBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlcy4gU28gdGhlIGNvbmZpZyBsaXN0IHdpbGwgYmUgYERBTU9OYCwgYERBTU9OX1NZU0ZTYCwgYERBTU9OX1ZBRERSYCwgYW5kIGBEQU1PTl9QQUREUmAuCgpJJiMzOTtsbCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBkYW1vbl9zZXRfcmVnaW9uc2AgaW1wbGVtZW50YXRpb24gaW4gYG1tL2RhbW9uL2NvcmUuY2AganVzdCB0byBzb2xpZGlmeSBteSB1bmRlcnN0YW5kaW5nLiBUaGF0JiMzOTtzIGEga2V5IGZ1bmN0aW9uIGFuZCB3b3J0aCBhbm90aGVyIGdsYW5jZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGFtb25fc2V0X3JlZ2lvbnMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vY29yZS5jPTMyMT1zdGF0aWMgaW50IGRhbW9uX2ZpbGxfcmVnaW9uc19ob2xlcyhzdHJ1Y3QgZGFtb25fcmVnaW9uICpmaXJzdCxcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMzQyLS8qXG5tbS9kYW1vbi9jb3JlLmM6MzQzOiAqIGRhbW9uX3NldF9yZWdpb25zKCkgLSBTZXQgcmVnaW9ucyBvZiBhIHRhcmdldCBmb3IgZ2l2ZW4gYWRkcmVzcyByYW5nZXMuXG5tbS9kYW1vbi9jb3JlLmMtMzQ0LSAqIEB0Olx0XHR0aGUgZ2l2ZW4gdGFyZ2V0LlxuLS1cbm1tL2RhbW9uL2NvcmUuYy0zNTMtICovXG5tbS9kYW1vbi9jb3JlLmM6MzU0OmludCBkYW1vbl9zZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2VzLFxubW0vZGFtb24vY29yZS5jLTM1NS1cdFx0dW5zaWduZWQgaW50IG5yX3JhbmdlcywgdW5zaWduZWQgbG9uZyBtaW5fcmVnaW9uX3N6KVxuLS1cbm1tL2RhbW9uL2NvcmUuYz0xMzU0PXN0YXRpYyBpbnQgZGFtb25fY29tbWl0X3RhcmdldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKmRzdCxcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMTM3MS1cdFx0cmFuZ2VzW2kmIzQzOyYjNDM7XSA9IHNyY19yZWdpb24tXHUwMDNlYXI7XG5tbS9kYW1vbi9jb3JlLmM6MTM3MjpcdGVyciA9IGRhbW9uX3NldF9yZWdpb25zKGRzdCwgcmFuZ2VzLCBpLCBzcmNfbWluX3JlZ2lvbl9zeik7XG5tbS9kYW1vbi9jb3JlLmMtMTM3My1cdGtmcmVlKHJhbmdlcyk7XG4tLVxubW0vZGFtb24vY29yZS5jPTM3MDM9aW50IGRhbW9uX3NldF9yZWdpb25fc3lzdGVtX3JhbXNfZGVmYXVsdChzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LFxuLS1cbm1tL2RhbW9uL2NvcmUuYy0zNzE3LVx0YWRkcl9yYW5nZS5lbmQgPSAqZW5kO1xubW0vZGFtb24vY29yZS5jOjM3MTg6XHRyZXR1cm4gZGFtb25fc2V0X3JlZ2lvbnModCwgXHUwMDI2YWRkcl9yYW5nZSwgMSwgbWluX3JlZ2lvbl9zeik7XG5tbS9kYW1vbi9jb3JlLmMtMzcxOS19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY1MzEKCQkJCQkJCW91dHB1dDogMTE1CgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBjaGFuZ2VzLCB2aWV3ZWQgdGhyb3VnaCB0aGUgbGVucyBvZiBteSBleHBlcnRpc2U6CgoqKkRBTU9OIFJlZ2lvbiBTZXR0aW5nOiBBIFRhcmdldGVkIEFkanVzdG1lbnQqKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGEgZm9jdXNlZCBtb2RpZmljYXRpb24gd2l0aGluIGBkYW1vbl9zZXRfcmVnaW9uc2AuIFRoZSBjaGFuZ2UgaXRzZWxmIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCDigJMgYSBuZXcgYFdvcnRoRnV6emluZz10cnVlYCBmbGFnIGJlaW5nIHNldC4gVGhpcyBpcyBpbnRlcmVzdGluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoaXMgaXMgbGlrZWx5IGEgc2lnbmFsIHRvIHNvbWUgZG93bnN0cmVhbSBjb21wb25lbnQsIHBlcmhhcHMgdGhlIGZ1enppbmcgZW5naW5lIGl0c2VsZiwgb3IgYSB0ZXN0IGhhcm5lc3MsIGluZGljYXRpbmcgdGhhdCB0aGlzIHBhcnRpY3VsYXIgcmVnaW9uIHNldHRpbmcgaXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IsIG9yICpkZXNlcnZlcyosIGZ1enppbmcuIEl04oCZcyBhIHZlcnkgdGFyZ2V0ZWQgb3B0aW1pemF0aW9uLCB3aGljaCBpcyBrZXkuIFRoZSBmb2N1cyBpcyBzcGVjaWZpY2FsbHkgb24gYGRhbW9uX3NldF9yZWdpb25zYCDigJMgdGhhdOKAmXMgdGhlIGZ1bmN0aW9uIG9mIGludGVyZXN0LgoKVGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb25zLCBgREFNT05gLCBgREFNT05fU1lTRlNgLCBgREFNT05fVkFERFJgLCBhbmQgYERBTU9OX1BBRERSYCwgYXJlIGNydWNpYWwgY29udGV4dC4gVGhleSB0ZWxsIG1lIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggREFNT04mIzM5O3MgY29yZSBmdW5jdGlvbmFsaXR5LCBsaWtlbHkgaW52b2x2aW5nIHN5c3RlbS1sZXZlbCBtb25pdG9yaW5nLCBmaWxlc3lzdGVtIGludGVncmF0aW9uLCBhbmQgdmlydHVhbC9waHlzaWNhbCBhZGRyZXNzIHNwYWNlIG1hbmFnZW1lbnQuIFRoZSBwcmVzZW5jZSBvZiB0aGVzZSBjb25maWd1cmF0aW9ucyBzdHJvbmdseSBzdWdnZXN0cyB0aGlzIGlzIHBhcnQgb2YgYSBsYXJnZXIgZWZmb3J0IHRvIGltcHJvdmUgREFNT04mIzM5O3Mgcm9idXN0bmVzcywgcGVyaGFwcyB0aHJvdWdoIGlucHV0IHZhbGlkYXRpb24gaW4gdGhlIHN5c2ZzIGludGVyZmFjZS4KCkkmIzM5O20gbm93IHRoaW5raW5nIHRoaXMgbWlnaHQgYmUgY29ubmVjdGVkIHRvIGFuIGVhcmxpZXIgZGlzY3Vzc2lvbiBhYm91dCBwb3RlbnRpYWwgY29ybmVyIGNhc2VzIG9yIHVuZXhwZWN0ZWQgaW5wdXRzIHRoYXQgY291bGQgYXJpc2UgZnJvbSB0aGUgc3lzdGVtLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIHN5c2ZzLXByb3ZpZGVkIHJlZ2lvbiBkZWZpbml0aW9ucy4gQnkgZmxhZ2dpbmcgc3BlY2lmaWMgY2FsbHMgdG8gYGRhbW9uX3NldF9yZWdpb25zYCBhcyAmIzM0O2Z1enotd29ydGh5LCYjMzQ7IHdlJiMzOTtyZSBwcm9iYWJseSBhaW1pbmcgdG8gdW5jb3ZlciBhbnkgc3VjaCB2dWxuZXJhYmlsaXRpZXMgb3IgdW5leHBlY3RlZCBiZWhhdmlvciB1bmRlciBzdHJlc3MgdGVzdGluZy4KCkZpbmFsbHksIHRoZSBtZW50aW9uIG9mICYjMzQ7c2V0LXJlc3VsdHMmIzM0OyBzdWdnZXN0cyBhIGxvZ2dpbmcgb3IgZGF0YSBjb2xsZWN0aW9uIGFzcGVjdCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFdlIHByb2JhYmx5IHdhbnQgdG8gc2VlIHdoYXQgaGFwcGVucyB3aGVuIHRoZSByZWdpb24gc2V0dGluZ3MgYXJlIHNlbnQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEQU1PTiYjMzQ7LAogICAgJiMzNDtEQU1PTl9TWVNGUyYjMzQ7LAogICAgJiMzNDtEQU1PTl9WQUREUiYjMzQ7LAogICAgJiMzNDtEQU1PTl9QQUREUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX3NldF9yZWdpb25zJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyB0byBgZGFtb25fc2V0X3JlZ2lvbnNgIHRvIHJlamVjdCBhZGRyZXNzIHJhbmdlcyB3aGVyZSBzdGFydCBcdTAwM2U9IGVuZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBEQU1PTiBjb3JlIGxvZ2ljLCByZWFjaGFibGUgZnJvbSB1c2VyLXNwYWNlIHZpYSB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEQU1PTiYjMzQ7LAogICAgJiMzNDtEQU1PTl9TWVNGUyYjMzQ7LAogICAgJiMzNDtEQU1PTl9WQUREUiYjMzQ7LAogICAgJiMzNDtEQU1PTl9QQUREUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX3NldF9yZWdpb25zJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyB0byBgZGFtb25fc2V0X3JlZ2lvbnNgIHRvIHJlamVjdCBhZGRyZXNzIHJhbmdlcyB3aGVyZSBzdGFydCBcdTAwM2U9IGVuZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBEQU1PTiBjb3JlIGxvZ2ljLCByZWFjaGFibGUgZnJvbSB1c2VyLXNwYWNlIHZpYSB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTM6MTEuMTc1NzgyMTU1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM4ODEwMTIyMDQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRBTU9OXCIsXG4gICAgXCJEQU1PTl9TWVNGU1wiLFxuICAgIFwiREFNT05fVkFERFJcIixcbiAgICBcIkRBTU9OX1BBRERSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZGFtb25fc2V0X3JlZ2lvbnNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgdG8gYGRhbW9uX3NldF9yZWdpb25zYCB0byByZWplY3QgYWRkcmVzcyByYW5nZXMgd2hlcmUgc3RhcnQgXFx1MDAzZT0gZW5kLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIERBTU9OIGNvcmUgbG9naWMsIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHRoZSBEQU1PTiBzeXNmcyBpbnRlcmZhY2UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjEzOjExLjE3NTc5MTg4NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU0NjcxNzQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGUzN2ExZWQyYzI0OGUyMDk4NTE5YmU1ODM5MDQ0MGQ3ZTFjYWU3M1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1biAyNyAxNzoxMzowOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9jb3JlLmMgYi9tbS9kYW1vbi9jb3JlLmNcXG5pbmRleCA3ZTRiOWFmZmM1YjA2MC4uYjMxMDBkN2ZhNTU5NjkgMTAwNjQ0XFxuLS0tIGEvbW0vZGFtb24vY29yZS5jXFxuKysrIGIvbW0vZGFtb24vY29yZS5jXFxuQEAgLTM1OCw2ICszNTgsMTEgQEAgaW50IGRhbW9uX3NldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlICpyYW5nZXMsXFxuIFxcdHVuc2lnbmVkIGludCBpO1xcbiBcXHRpbnQgZXJyO1xcbiBcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIG5yX3JhbmdlczsgaSsrKSB7XFxuK1xcdFxcdGlmIChyYW5nZXNbaV0uc3RhcnQgXFx1MDAzZT0gcmFuZ2VzW2ldLmVuZClcXG4rXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdH1cXG4rXFxuIFxcdC8qIFJlbW92ZSByZWdpb25zIHdoaWNoIGFyZSBub3QgaW4gdGhlIG5ldyByYW5nZXMgKi9cXG4gXFx0ZGFtb25fZm9yX2VhY2hfcmVnaW9uX3NhZmUociwgbmV4dCwgdCkge1xcbiBcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbnJfcmFuZ2VzOyBpKyspIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTM6MTEuNTMxMjEyOTEyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzg0NTQ2Nzg1OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05cIixcbiAgICBcIkRBTU9OX1NZU0ZTXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zZXRfcmVnaW9uc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyB0byBgZGFtb25fc2V0X3JlZ2lvbnNgIHRvIHJlamVjdCBhZGRyZXNzIHJhbmdlcyB3aGVyZSBzdGFydCBcXHUwMDNlPSBlbmQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgREFNT04gY29yZSBsb2dpYywgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgdGhlIERBTU9OIHN5c2ZzIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0ZTM3YTFlZDJjMjQ4ZTIwOTg1MTliZTU4MzkwNDQwZDdlMWNhZTczXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdW4gMjcgMTc6MTM6MDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9jb3JlLmMgYi9tbS9kYW1vbi9jb3JlLmNcbmluZGV4IDdlNGI5YWZmYzViMDYwLi5iMzEwMGQ3ZmE1NTk2OSAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL2NvcmUuY1xuKysrIGIvbW0vZGFtb24vY29yZS5jXG5AQCAtMzU4LDYgKzM1OCwxMSBAQCBpbnQgZGFtb25fc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlcyxcbiBcdHVuc2lnbmVkIGludCBpO1xuIFx0aW50IGVycjtcbiBcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG5yX3JhbmdlczsgaSsrKSB7XG4rXHRcdGlmIChyYW5nZXNbaV0uc3RhcnQgXHUwMDNlPSByYW5nZXNbaV0uZW5kKVxuK1x0XHRcdHJldHVybiAtRUlOVkFMO1xuK1x0fVxuK1xuIFx0LyogUmVtb3ZlIHJlZ2lvbnMgd2hpY2ggYXJlIG5vdCBpbiB0aGUgbmV3IHJhbmdlcyAqL1xuIFx0ZGFtb25fZm9yX2VhY2hfcmVnaW9uX3NhZmUociwgbmV4dCwgdCkge1xuIFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBucl9yYW5nZXM7IGkrKykge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTM6MTEuNTMxMjIyODAxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg3MzI5MDQyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBEQU1PTiBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBtbS9kYW1vbi9jb3JlLmNgLiBTZWVtcyBsaWtlIHRoZXkndmUgYWRkZWQgYSBjaGVjayB3aXRoaW4gYGRhbW9uX3NldF9yZWdpb25zYC4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGVuc3VyaW5nIHRoYXQgdGhlIHN0YXJ0IG9mIGEgcmVnaW9uIGlzbid0IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZW5kLiBNYWtlcyBzZW5zZSwgdGhhdCdzIGEgYmFzaWMgc2FuaXR5IGNoZWNrIOKAkyB5b3UgY2FuJ3QgaGF2ZSBhIHJlZ2lvbiBkZWZpbmVkIHRoYXQgd2F5LiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgY291bGQgYWZmZWN0IGJlaGF2aW9yLlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodHMgYXJlLCBcIklzIHRoaXMgcmVhY2hhYmxlP1wiIGFuZCBcIldoYXQgYXJlIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcz9cIiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29kZSBwYXRocyB0aGF0IGFjdHVhbGx5IGNhbGwgYGRhbW9uX3NldF9yZWdpb25zYCBhbmQgdW5kZXIgd2hhdCBrZXJuZWwgY29uZmlndXJhdGlvbnMuIEknbGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgc2VhcmNoIHRvb2xzIHRvIGxvY2F0ZSBhbGwgaW5zdGFuY2VzIG9mIHRoYXQgZnVuY3Rpb24sIGFzIHdlbGwgYXMgY29uZmlybSBpdCBpcyB3aXRoaW4gdGhlIG1vZGlmaWVkIGNvcmUgZmlsZS4gS25vd2luZyB0aGUgQ09ORklHIG9wdGlvbnMgd2lsbCBiZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgc2NvcGUgb2YgdGhpcyBjaGFuZ2UuIExldCdzIGRpZyBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg3MCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjEzOjE1LjQwNDUxNjE0NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU0ODk3NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkYW1vbl9zZXRfcmVnaW9uc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9kYW1vbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vY29yZS5jPTMyMT1zdGF0aWMgaW50IGRhbW9uX2ZpbGxfcmVnaW9uc19ob2xlcyhzdHJ1Y3QgZGFtb25fcmVnaW9uICpmaXJzdCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zNDItLypcXG5tbS9kYW1vbi9jb3JlLmM6MzQzOiAqIGRhbW9uX3NldF9yZWdpb25zKCkgLSBTZXQgcmVnaW9ucyBvZiBhIHRhcmdldCBmb3IgZ2l2ZW4gYWRkcmVzcyByYW5nZXMuXFxubW0vZGFtb24vY29yZS5jLTM0NC0gKiBAdDpcXHRcXHR0aGUgZ2l2ZW4gdGFyZ2V0Llxcbi0tXFxubW0vZGFtb24vY29yZS5jLTM1My0gKi9cXG5tbS9kYW1vbi9jb3JlLmM6MzU0OmludCBkYW1vbl9zZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2VzLFxcbm1tL2RhbW9uL2NvcmUuYy0zNTUtXFx0XFx0dW5zaWduZWQgaW50IG5yX3JhbmdlcywgdW5zaWduZWQgbG9uZyBtaW5fcmVnaW9uX3N6KVxcbi0tXFxubW0vZGFtb24vY29yZS5jPTEzNTQ9c3RhdGljIGludCBkYW1vbl9jb21taXRfdGFyZ2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqZHN0LFxcbi0tXFxubW0vZGFtb24vY29yZS5jLTEzNzEtXFx0XFx0cmFuZ2VzW2krK10gPSBzcmNfcmVnaW9uLVxcdTAwM2VhcjtcXG5tbS9kYW1vbi9jb3JlLmM6MTM3MjpcXHRlcnIgPSBkYW1vbl9zZXRfcmVnaW9ucyhkc3QsIHJhbmdlcywgaSwgc3JjX21pbl9yZWdpb25fc3opO1xcbm1tL2RhbW9uL2NvcmUuYy0xMzczLVxcdGtmcmVlKHJhbmdlcyk7XFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MzcwMz1pbnQgZGFtb25fc2V0X3JlZ2lvbl9zeXN0ZW1fcmFtc19kZWZhdWx0KHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMzcxNy1cXHRhZGRyX3JhbmdlLmVuZCA9ICplbmQ7XFxubW0vZGFtb24vY29yZS5jOjM3MTg6XFx0cmV0dXJuIGRhbW9uX3NldF9yZWdpb25zKHQsIFxcdTAwMjZhZGRyX3JhbmdlLCAxLCBtaW5fcmVnaW9uX3N6KTtcXG5tbS9kYW1vbi9jb3JlLmMtMzcxOS19XFxuLS1cXG5tbS9kYW1vbi9zeXNmcy5jPTE5NDc9c3RhdGljIGludCBkYW1vbl9zeXNmc19zZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LFxcbi0tXFxubW0vZGFtb24vc3lzZnMuYy0xOTcxLVxcdH1cXG5tbS9kYW1vbi9zeXNmcy5jOjE5NzI6XFx0ZXJyID0gZGFtb25fc2V0X3JlZ2lvbnModCwgcmFuZ2VzLCBzeXNmc19yZWdpb25zLVxcdTAwM2VuciwgbWluX3JlZ2lvbl9zeik7XFxubW0vZGFtb24vc3lzZnMuYy0xOTczLW91dDpcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaD0zOTM9c3RhdGljIHZvaWQgZGFtb25fdGVzdF9zZXRfcmVnaW9uc19mb3Ioc3RydWN0IGt1bml0ICp0ZXN0LFxcbi0tXFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oLTQxNC1cXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0Lmg6NDE1OlxcdGRhbW9uX3NldF9yZWdpb25zKHQsIG5ld19yYW5nZXMsIHN6X25ld19yYW5nZXMsIG1pbl9yZWdpb25fc3opO1xcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC00MTYtXFxuLS1cXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oPTk0PXN0YXRpYyBzdHJ1Y3QgZGFtb25fcmVnaW9uICpfX250aF9yZWdpb25fb2Yoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgaW50IGlkeClcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTA3LS8qXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxMDg6ICogVGVzdCAnZGFtb25fc2V0X3JlZ2lvbnMoKSdcXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTEwOS0gKlxcbi0tXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xMjItICogcmVnaW9ucy4gIFRoZSB1cGRhdGUgb2YgY3VycmVudCB0YXJnZXQgcmVnaW9ucyBpcyB0aGUgcm9sZSBvZlxcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg6MTIzOiAqICdkYW1vbl9zZXRfcmVnaW9ucygpJy5cXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTEyNC0gKlxcbi0tXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaD0xMjk9c3RhdGljIHZvaWQgZGFtb25fZG9fdGVzdF9hcHBseV90aHJlZV9yZWdpb25zKHN0cnVjdCBrdW5pdCAqdGVzdCxcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTUxLVxcdH1cXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oOjE1MjpcXHRpZiAoZGFtb25fc2V0X3JlZ2lvbnModCwgcmFuZ2VzLCBucl9yZWdpb25zIC8gMixcXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTE1My1cXHRcXHRcXHRcXHREQU1PTl9NSU5fUkVHSU9OX1NaKSkge1xcbi0tXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTUtXFx0XFx0ZGFtb25fZGVzdHJveV90YXJnZXQodCwgTlVMTCk7XFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxNTY6XFx0XFx0a3VuaXRfc2tpcCh0ZXN0LCBcXFwiZGFtb25fc2V0X3JlZ2lvbnMoKSBmYWlsXFxcIik7XFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTctXFx0fVxcbi0tXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTktXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxNjA6XFx0aWYgKGRhbW9uX3NldF9yZWdpb25zKHQsIHRocmVlX3JlZ2lvbnMsIDMsIERBTU9OX01JTl9SRUdJT05fU1opKSB7XFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNjEtXFx0XFx0ZGFtb25fZGVzdHJveV90YXJnZXQodCwgTlVMTCk7XFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxNjI6XFx0XFx0a3VuaXRfc2tpcCh0ZXN0LCBcXFwic2Vjb25kIGRhbW9uX3NldF9yZWdpb25zKCkgZmFpbFxcXCIpO1xcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTYzLVxcdH1cXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmM9MTkzPXN0YXRpYyB2b2lkIF9fZGFtb25fdmFfaW5pdF9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmN0eCxcXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmMtMjA5LVxcbm1tL2RhbW9uL3ZhZGRyLmM6MjEwOlxcdGRhbW9uX3NldF9yZWdpb25zKHQsIHJlZ2lvbnMsIDMsIERBTU9OX01JTl9SRUdJT05fU1opO1xcbm1tL2RhbW9uL3ZhZGRyLmMtMjExLX1cXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmM9MjI4PXN0YXRpYyB2b2lkIGRhbW9uX3ZhX3VwZGF0ZShzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpXFxuLS1cXG5tbS9kYW1vbi92YWRkci5jLTIzNS1cXHRcXHRcXHRjb250aW51ZTtcXG5tbS9kYW1vbi92YWRkci5jOjIzNjpcXHRcXHRkYW1vbl9zZXRfcmVnaW9ucyh0LCB0aHJlZV9yZWdpb25zLCAzLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTtcXG5tbS9kYW1vbi92YWRkci5jLTIzNy1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjEzOjE1LjQ2NDA3MzE4MVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDMxNzA3MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEQU1PTiBSZWdpb24gVXBkYXRlKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2FuaXR5IGNoZWNrIHdpdGhpbiBgZGFtb25fc2V0X3JlZ2lvbnNgLiBTcGVjaWZpY2FsbHksIGl0J3MgYWRkaW5nIGEgY2hlY2s6IGBpZiAocmFuZ2VzW2ldLnN0YXJ0IFx1MDAzZT0gcmFuZ2VzW2ldLmVuZClgLCBhbmQgaWYgdGhhdCBjb25kaXRpb24gaXMgbWV0LCBpdCByZXR1cm5zIGAtRUlOVkFMYC4gVGhhdCBtYWtlcyBzZW5zZSAtIHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGVuc3VyZSB0aGUgc3RhcnQgb2YgYSBtZW1vcnkgcmFuZ2UgaXMgYmVmb3JlIGl0cyBlbmQ7IG90aGVyd2lzZSwgdGhlIHdob2xlIHRoaW5nIGZhbGxzIGFwYXJ0LlxuXG5Ob3csIHdoZXJlIGlzIHRoaXMgYGRhbW9uX3NldF9yZWdpb25zYCBmdW5jdGlvbiBhY3R1YWxseSAqdXNlZCo/IExldCdzIHNlZS4uLiBpdCdzIGNhbGxlZCBmcm9tIHNldmVyYWwgcGxhY2VzOiBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgLCBgZGFtb25fc2V0X3JlZ2lvbl9zeXN0ZW1fcmFtc19kZWZhdWx0YCwgYGRhbW9uX2NvbW1pdF90YXJnZXRfcmVnaW9uc2AsIGBfX2RhbW9uX3ZhX2luaXRfcmVnaW9uc2AsIGFuZCBgZGFtb25fdmFfdXBkYXRlYC4gVGhhdCBjb3ZlcnMgYSBwcmV0dHkgYnJvYWQgcmFuZ2Ugb2YgaW50ZXJhY3Rpb25zIHdpdGggdGhlIERBTU9OIHN1YnN5c3RlbS4gU28sIGVzc2VudGlhbGx5IGFueXdoZXJlIHdlJ3JlIHNldHRpbmcgb3IgdXBkYXRpbmcgdGhlIHJlZ2lvbnMgREFNT04gaXMgbW9uaXRvcmluZywgdGhpcyBjaGVjayBub3cgZmlyZXMuXG5cbk9mIGNvdXJzZSwgREFNT04gaXMgRGF0YSBBY2Nlc3MgTU9OaXRvciwgc28gSSBuZWVkIHRvIGdvIHNlZSBpZiB0aGVyZSBhcmUgYW55IGNvbmZpZyBvcHRpb25zIHRoYXQgaW5mbHVlbmNlIHRoZSB3YXkgaXQgd29ya3MuIFRoaXMgc2FuaXR5IGNoZWNrIHdvdWxkIGNlcnRhaW5seSBpbnRlcmFjdCB3aXRoIHRoZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MjIsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTM6MjAuMDA3MjQ3NjAyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MjQ3OTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEQU1PTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9kYW1vbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vS2NvbmZpZz0zPW1lbnUgXFxcIkRhdGEgQWNjZXNzIE1vbml0b3JpbmdcXFwiXFxubW0vZGFtb24vS2NvbmZpZy00LVxcbm1tL2RhbW9uL0tjb25maWc6NTpjb25maWcgREFNT05cXG5tbS9kYW1vbi9LY29uZmlnLTYtXFx0Ym9vbCBcXFwiREFNT046IERhdGEgQWNjZXNzIE1vbml0b3JpbmcgRnJhbWV3b3JrXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy0xNC1cXG5tbS9kYW1vbi9LY29uZmlnOjE1OmNvbmZpZyBEQU1PTl9ERUJVR19TQU5JVFlcXG5tbS9kYW1vbi9LY29uZmlnLTE2LVxcdGJvb2wgXFxcIkNoZWNrIHNhbml0eSBvZiBEQU1PTiBjb2RlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy0yNS1cXG5tbS9kYW1vbi9LY29uZmlnOjI2OmNvbmZpZyBEQU1PTl9LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy0yNy1cXHRib29sIFxcXCJUZXN0IGZvciBkYW1vblxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy0zNy1cXG5tbS9kYW1vbi9LY29uZmlnOjM4OmNvbmZpZyBEQU1PTl9WQUREUlxcbm1tL2RhbW9uL0tjb25maWctMzktXFx0Ym9vbCBcXFwiRGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBvcGVyYXRpb25zIGZvciB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2VzXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy00Ni1cXG5tbS9kYW1vbi9LY29uZmlnOjQ3OmNvbmZpZyBEQU1PTl9QQUREUlxcbm1tL2RhbW9uL0tjb25maWctNDgtXFx0Ym9vbCBcXFwiRGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBvcGVyYXRpb25zIGZvciB0aGUgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctNTUtXFxubW0vZGFtb24vS2NvbmZpZzo1Njpjb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxcbm1tL2RhbW9uL0tjb25maWctNTctXFx0Ym9vbCBcXFwiVGVzdCBmb3IgREFNT04gb3BlcmF0aW9uc1xcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy02Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xcbm1tL2RhbW9uL0tjb25maWctNjktXFx0Ym9vbCBcXFwiREFNT04gc3lzZnMgaW50ZXJmYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy03NS1cXG5tbS9kYW1vbi9LY29uZmlnOjc2OmNvbmZpZyBEQU1PTl9TWVNGU19LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy03Ny1cXHRib29sIFxcXCJUZXN0IGZvciBkYW1vbiBzeXNmcyBpbnRlcmZhY2VcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctODctXFxubW0vZGFtb24vS2NvbmZpZzo4ODpjb25maWcgREFNT05fUkVDTEFJTVxcbm1tL2RhbW9uL0tjb25maWctODktXFx0Ym9vbCBcXFwiQnVpbGQgREFNT04tYmFzZWQgcmVjbGFpbSAoREFNT05fUkVDTEFJTSlcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTk5LVxcbm1tL2RhbW9uL0tjb25maWc6MTAwOmNvbmZpZyBEQU1PTl9MUlVfU09SVFxcbm1tL2RhbW9uL0tjb25maWctMTAxLVxcdGJvb2wgXFxcIkJ1aWxkIERBTU9OLWJhc2VkIExSVS1saXN0cyBzb3J0aW5nIChEQU1PTl9MUlVfU09SVClcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTEwNy1cXG5tbS9kYW1vbi9LY29uZmlnOjEwODpjb25maWcgREFNT05fU1RBVFxcbm1tL2RhbW9uL0tjb25maWctMTA5LVxcdGJvb2wgXFxcIkJ1aWxkIGRhdGEgYWNjZXNzIG1vbml0b3Jpbmcgc3RhdCAoREFNT05fU1RBVClcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTExNS1cXG5tbS9kYW1vbi9LY29uZmlnOjExNjpjb25maWcgREFNT05fU1RBVF9FTkFCTEVEX0RFRkFVTFRcXG5tbS9kYW1vbi9LY29uZmlnLTExNy1cXHRib29sIFxcXCJFbmFibGUgREFNT05fU1RBVCBieSBkZWZhdWx0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QxNzoxMzoyMC4wNjU0OTk0NzZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTkzNzgzOTEyODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEQU1PTiBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBEQU1PTiBjb25maWd1cmF0aW9uLiBUaGUga2V5IGhlcmUgaXMsIG9mIGNvdXJzZSwgYERBTU9OYC4gQW5kIGl0IGxvb2tzIGxpa2UgYERBTU9OX1NZU0ZTYCBpcyBsaWtlbHkgYSBjcnVjaWFsIGNvbXBvbmVudCwgZXNwZWNpYWxseSBnaXZlbiB0aGUgY2FsbCB0byBpdCBmcm9tIGBkYW1vbl9zeXNmc19zZXRfcmVnaW9uc2AuIEFsc28sIEknbGwgbmVlZCB0byByZW1lbWJlciBgREFNT05fVkFERFJgIGFuZCBgREFNT05fUEFERFJgLiBOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXMgaG93IHVzZXItc3BhY2UgaW50ZXJhY3RzIHdpdGggYGRhbW9uX3NldF9yZWdpb25zYC4gSSBzZWUgdGhhdCBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgIGlzIHRoZSBnYXRld2F5LiBBbmQgdGhhdCBpcyBjYWxsZWQgZnJvbSBgZGFtb25fc3lzZnNfcmVnaW9uc191cGRhdGVgLCB3aGljaCBzZWVtcyB0byBiZSB0cmlnZ2VyZWQgYnkgc3lzZnMgd3JpdGVzLCBzbyBJIG5lZWQgdG8gY2hlY2sgYG1tL2RhbW9uL3N5c2ZzLmNgIHRvIHRyYWNlIHRoZSBkYXRhIGZsb3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NzQsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTU6MTkuNDQzODk1NjIyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5NTcxNDg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRhbW9uX3N5c2ZzX3NldF9yZWdpb25zXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL3N5c2ZzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vc3lzZnMuYz0xOTAyPXN0YXRpYyBpbnQgZGFtb25fc3lzZnNfc2V0X3Byb2JlcyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsXFxuLS1cXG5tbS9kYW1vbi9zeXNmcy5jLTE5NDYtXFxubW0vZGFtb24vc3lzZnMuYzoxOTQ3OnN0YXRpYyBpbnQgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCxcXG5tbS9kYW1vbi9zeXNmcy5jLTE5NDgtXFx0XFx0c3RydWN0IGRhbW9uX3N5c2ZzX3JlZ2lvbnMgKnN5c2ZzX3JlZ2lvbnMsXFxuLS1cXG5tbS9kYW1vbi9zeXNmcy5jPTE5Nzk9c3RhdGljIGludCBkYW1vbl9zeXNmc19hZGRfdGFyZ2V0KHN0cnVjdCBkYW1vbl9zeXNmc190YXJnZXQgKnN5c190YXJnZXQsXFxuLS1cXG5tbS9kYW1vbi9zeXNmcy5jLTE5OTMtXFx0dC1cXHUwMDNlb2Jzb2xldGUgPSBzeXNfdGFyZ2V0LVxcdTAwM2VvYnNvbGV0ZTtcXG5tbS9kYW1vbi9zeXNmcy5jOjE5OTQ6XFx0cmV0dXJuIGRhbW9uX3N5c2ZzX3NldF9yZWdpb25zKHQsIHN5c190YXJnZXQtXFx1MDAzZXJlZ2lvbnMsXFxubW0vZGFtb24vc3lzZnMuYy0xOTk1LVxcdFxcdFxcdGN0eC1cXHUwMDNlbWluX3JlZ2lvbl9zeik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjE1OjE5LjUwMzQ3NzA2N1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NjA2Njc1OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IERBTU9OIFN5c2ZzIEludGVyZmFjZSoqXG5cbk9rYXksIHNvIGBkYW1vbl9zeXNmc19hZGRfdGFyZ2V0YCBpcyB0aGUgY3JpdGljYWwgZnVuY3Rpb24gaGVyZSwgYW5kIGl0J3MgcmVhY2hlZCBmcm9tIGBkYW1vbl9zeXNmc19zZXRfdGFyZ2V0c2AsIHdoaWNoIGluIHR1cm4sIGlzIGNhbGxlZCBieSBzb21ldGhpbmcgbGlrZSBgZGFtb25fc3lzZnNfdHVybl9kYW1vbl9vbmAuIEVzc2VudGlhbGx5LCB0aGF0IG1lYW5zIHVzZXItc3BhY2UgY2FuIGNvbnRyb2wgaXQgdmlhIHRoZSBzeXNmcyBpbnRlcmZhY2UuIFRoZSBwYXRjaCBhZGRzIGEgYmFzaWMgY2hlY2ssIHNwZWNpZmljYWxseSBmb3IgYHN0YXJ0IFx1MDAzZT0gZW5kYCwgcmV0dXJuaW5nIGAtRUlOVkFMYC4gVGhhdCdzIGEgY2xhc3NpYyBmdXp6aW5nIHRhcmdldCByaWdodCB0aGVyZS4gQSBxdWljayBhbmQgZWFzeSBwYXRoIHRvIGZpbmQgYnVncyBpZiB0aGVyZSBpcyBvbmUuXG5cbk15IGZvY3VzIHNob3VsZCBiZSBvbiBgZGFtb25fc2V0X3JlZ2lvbnNgIGFuZCBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgLCBrZWVwaW5nIGluIG1pbmQgdGhlIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkLiBJJ2xsIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBmdXp6aW5nIGNvbmZpZ3VyYXRpb24gY292ZXJzIGBEQU1PTmAsIGBEQU1PTl9TWVNGU2AsIHRoYXQncyBhIGdpdmVuLiBCdXQgSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLCBqdXN0IHRvIGJlIHRob3JvdWdoLlxuXG5BbHJpZ2h0LCBhIHF1aWNrIGxvb2sgcmV2ZWFscyBgREFNT05fVkFERFJgIGFuZCBgREFNT05fUEFERFJgLCB0aG9zZSBkZWFsIHdpdGggdmlydHVhbCBhbmQgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZXMsIHJlc3BlY3RpdmVseS4gRGVmaW5pdGVseSB3b3J0aCBpbmNsdWRpbmcsIGV4cGFuZGluZyB0aGUgY292ZXJhZ2UgZm9yIHZpcnR1YWwgYW5kIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2VzLiBTbyB0aGUgY29uZmlnIGxpc3Qgd2lsbCBiZSBgREFNT05gLCBgREFNT05fU1lTRlNgLCBgREFNT05fVkFERFJgLCBhbmQgYERBTU9OX1BBRERSYC5cblxuSSdsbCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBkYW1vbl9zZXRfcmVnaW9uc2AgaW1wbGVtZW50YXRpb24gaW4gYG1tL2RhbW9uL2NvcmUuY2AganVzdCB0byBzb2xpZGlmeSBteSB1bmRlcnN0YW5kaW5nLiBUaGF0J3MgYSBrZXkgZnVuY3Rpb24gYW5kIHdvcnRoIGFub3RoZXIgZ2xhbmNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDgwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjE1OjI0LjI2NDE0NzYzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzQ3NzA0ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGFtb25fc2V0X3JlZ2lvbnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vZGFtb24vY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL2RhbW9uL2NvcmUuYz0zMjE9c3RhdGljIGludCBkYW1vbl9maWxsX3JlZ2lvbnNfaG9sZXMoc3RydWN0IGRhbW9uX3JlZ2lvbiAqZmlyc3QsXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMzQyLS8qXFxubW0vZGFtb24vY29yZS5jOjM0MzogKiBkYW1vbl9zZXRfcmVnaW9ucygpIC0gU2V0IHJlZ2lvbnMgb2YgYSB0YXJnZXQgZm9yIGdpdmVuIGFkZHJlc3MgcmFuZ2VzLlxcbm1tL2RhbW9uL2NvcmUuYy0zNDQtICogQHQ6XFx0XFx0dGhlIGdpdmVuIHRhcmdldC5cXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zNTMtICovXFxubW0vZGFtb24vY29yZS5jOjM1NDppbnQgZGFtb25fc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlcyxcXG5tbS9kYW1vbi9jb3JlLmMtMzU1LVxcdFxcdHVuc2lnbmVkIGludCBucl9yYW5nZXMsIHVuc2lnbmVkIGxvbmcgbWluX3JlZ2lvbl9zeilcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYz0xMzU0PXN0YXRpYyBpbnQgZGFtb25fY29tbWl0X3RhcmdldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKmRzdCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0xMzcxLVxcdFxcdHJhbmdlc1tpKytdID0gc3JjX3JlZ2lvbi1cXHUwMDNlYXI7XFxubW0vZGFtb24vY29yZS5jOjEzNzI6XFx0ZXJyID0gZGFtb25fc2V0X3JlZ2lvbnMoZHN0LCByYW5nZXMsIGksIHNyY19taW5fcmVnaW9uX3N6KTtcXG5tbS9kYW1vbi9jb3JlLmMtMTM3My1cXHRrZnJlZShyYW5nZXMpO1xcbi0tXFxubW0vZGFtb24vY29yZS5jPTM3MDM9aW50IGRhbW9uX3NldF9yZWdpb25fc3lzdGVtX3JhbXNfZGVmYXVsdChzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LFxcbi0tXFxubW0vZGFtb24vY29yZS5jLTM3MTctXFx0YWRkcl9yYW5nZS5lbmQgPSAqZW5kO1xcbm1tL2RhbW9uL2NvcmUuYzozNzE4OlxcdHJldHVybiBkYW1vbl9zZXRfcmVnaW9ucyh0LCBcXHUwMDI2YWRkcl9yYW5nZSwgMSwgbWluX3JlZ2lvbl9zeik7XFxubW0vZGFtb24vY29yZS5jLTM3MTktfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QxNzoxNToyNC40OTg5Mjc3OThaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQwMjg0MTc1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgY2hhbmdlcywgdmlld2VkIHRocm91Z2ggdGhlIGxlbnMgb2YgbXkgZXhwZXJ0aXNlOlxuXG4qKkRBTU9OIFJlZ2lvbiBTZXR0aW5nOiBBIFRhcmdldGVkIEFkanVzdG1lbnQqKlxuXG5SaWdodCwgc28gd2UncmUgdGFsa2luZyBhYm91dCBhIGZvY3VzZWQgbW9kaWZpY2F0aW9uIHdpdGhpbiBgZGFtb25fc2V0X3JlZ2lvbnNgLiBUaGUgY2hhbmdlIGl0c2VsZiBzZWVtcyBzdHJhaWdodGZvcndhcmQg4oCTIGEgbmV3IGBXb3J0aEZ1enppbmc9dHJ1ZWAgZmxhZyBiZWluZyBzZXQuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGlzIGlzIGxpa2VseSBhIHNpZ25hbCB0byBzb21lIGRvd25zdHJlYW0gY29tcG9uZW50LCBwZXJoYXBzIHRoZSBmdXp6aW5nIGVuZ2luZSBpdHNlbGYsIG9yIGEgdGVzdCBoYXJuZXNzLCBpbmRpY2F0aW5nIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIHJlZ2lvbiBzZXR0aW5nIGlzIGEgZ29vZCBjYW5kaWRhdGUgZm9yLCBvciAqZGVzZXJ2ZXMqLCBmdXp6aW5nLiBJdOKAmXMgYSB2ZXJ5IHRhcmdldGVkIG9wdGltaXphdGlvbiwgd2hpY2ggaXMga2V5LiBUaGUgZm9jdXMgaXMgc3BlY2lmaWNhbGx5IG9uIGBkYW1vbl9zZXRfcmVnaW9uc2Ag4oCTIHRoYXTigJlzIHRoZSBmdW5jdGlvbiBvZiBpbnRlcmVzdC5cblxuVGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb25zLCBgREFNT05gLCBgREFNT05fU1lTRlNgLCBgREFNT05fVkFERFJgLCBhbmQgYERBTU9OX1BBRERSYCwgYXJlIGNydWNpYWwgY29udGV4dC4gVGhleSB0ZWxsIG1lIHdlJ3JlIGRlYWxpbmcgd2l0aCBEQU1PTidzIGNvcmUgZnVuY3Rpb25hbGl0eSwgbGlrZWx5IGludm9sdmluZyBzeXN0ZW0tbGV2ZWwgbW9uaXRvcmluZywgZmlsZXN5c3RlbSBpbnRlZ3JhdGlvbiwgYW5kIHZpcnR1YWwvcGh5c2ljYWwgYWRkcmVzcyBzcGFjZSBtYW5hZ2VtZW50LiBUaGUgcHJlc2VuY2Ugb2YgdGhlc2UgY29uZmlndXJhdGlvbnMgc3Ryb25nbHkgc3VnZ2VzdHMgdGhpcyBpcyBwYXJ0IG9mIGEgbGFyZ2VyIGVmZm9ydCB0byBpbXByb3ZlIERBTU9OJ3Mgcm9idXN0bmVzcywgcGVyaGFwcyB0aHJvdWdoIGlucHV0IHZhbGlkYXRpb24gaW4gdGhlIHN5c2ZzIGludGVyZmFjZS5cblxuSSdtIG5vdyB0aGlua2luZyB0aGlzIG1pZ2h0IGJlIGNvbm5lY3RlZCB0byBhbiBlYXJsaWVyIGRpc2N1c3Npb24gYWJvdXQgcG90ZW50aWFsIGNvcm5lciBjYXNlcyBvciB1bmV4cGVjdGVkIGlucHV0cyB0aGF0IGNvdWxkIGFyaXNlIGZyb20gdGhlIHN5c3RlbSwgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBzeXNmcy1wcm92aWRlZCByZWdpb24gZGVmaW5pdGlvbnMuIEJ5IGZsYWdnaW5nIHNwZWNpZmljIGNhbGxzIHRvIGBkYW1vbl9zZXRfcmVnaW9uc2AgYXMgXCJmdXp6LXdvcnRoeSxcIiB3ZSdyZSBwcm9iYWJseSBhaW1pbmcgdG8gdW5jb3ZlciBhbnkgc3VjaCB2dWxuZXJhYmlsaXRpZXMgb3IgdW5leHBlY3RlZCBiZWhhdmlvciB1bmRlciBzdHJlc3MgdGVzdGluZy5cblxuRmluYWxseSwgdGhlIG1lbnRpb24gb2YgXCJzZXQtcmVzdWx0c1wiIHN1Z2dlc3RzIGEgbG9nZ2luZyBvciBkYXRhIGNvbGxlY3Rpb24gYXNwZWN0IG9mIHRoZSBpbXBsZW1lbnRhdGlvbi4gV2UgcHJvYmFibHkgd2FudCB0byBzZWUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHJlZ2lvbiBzZXR0aW5ncyBhcmUgc2VudCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjUzMSwiT3V0cHV0VG9rZW5zIjoxMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QxNzoxNToyOS45MDE3NzIxMTJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDExMzcyMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05cIixcbiAgICBcIkRBTU9OX1NZU0ZTXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zZXRfcmVnaW9uc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyB0byBgZGFtb25fc2V0X3JlZ2lvbnNgIHRvIHJlamVjdCBhZGRyZXNzIHJhbmdlcyB3aGVyZSBzdGFydCBcXHUwMDNlPSBlbmQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgREFNT04gY29yZSBsb2dpYywgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgdGhlIERBTU9OIHN5c2ZzIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTlwiLFxuICAgIFwiREFNT05fU1lTRlNcIixcbiAgICBcIkRBTU9OX1ZBRERSXCIsXG4gICAgXCJEQU1PTl9QQUREUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRhbW9uX3NldF9yZWdpb25zXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGxvZ2ljIHRvIGBkYW1vbl9zZXRfcmVnaW9uc2AgdG8gcmVqZWN0IGFkZHJlc3MgcmFuZ2VzIHdoZXJlIHN0YXJ0IFxcdTAwM2U9IGVuZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBEQU1PTiBjb3JlIGxvZ2ljLCByZWFjaGFibGUgZnJvbSB1c2VyLXNwYWNlIHZpYSB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowllltd[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-27 17:05:10 +0000 UTC FinishedAt: 2026-06-27 17:15:32 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "189ce3c81f8188fb737d59a8a8784f074e830238", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_SYSFS", "DAMON_VADDR", "DAMON_PADDR" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "189ce3c81f8188fb737d59a8a8784f074e830238", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_SYSFS", "DAMON_VADDR", "DAMON_PADDR" ], "series_id": "c40bc102-fd46-4e62-9e25-e7189b6dd2e4" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "damon_set_regions" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZGFtb25fc2V0X3JlZ2lvbnMmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGxvZ2ljIHRvIGBkYW1vbl9zZXRfcmVnaW9uc2AgdG8gcmVqZWN0IGFkZHJlc3MgcmFuZ2VzIHdoZXJlIHN0YXJ0IFx1MDAzZT0gZW5kLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIERBTU9OIGNvcmUgbG9naWMsIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHRoZSBEQU1PTiBzeXNmcyBpbnRlcmZhY2UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0ZTM3YTFlZDJjMjQ4ZTIwOTg1MTliZTU4MzkwNDQwZDdlMWNhZTczXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdW4gMjcgMTc6MTM6MDkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vY29yZS5jIGIvbW0vZGFtb24vY29yZS5jXG5pbmRleCA3ZTRiOWFmZmM1YjA2MC4uYjMxMDBkN2ZhNTU5NjkgMTAwNjQ0XG4tLS0gYS9tbS9kYW1vbi9jb3JlLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL2RhbW9uL2NvcmUuY1xuQEAgLTM1OCw2ICYjNDM7MzU4LDExIEBAIGludCBkYW1vbl9zZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2VzLFxuIFx0dW5zaWduZWQgaW50IGk7XG4gXHRpbnQgZXJyO1xuIFxuJiM0MztcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG5yX3JhbmdlczsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRcdGlmIChyYW5nZXNbaV0uc3RhcnQgXHUwMDNlPSByYW5nZXNbaV0uZW5kKVxuJiM0MztcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XHR9XG4mIzQzO1xuIFx0LyogUmVtb3ZlIHJlZ2lvbnMgd2hpY2ggYXJlIG5vdCBpbiB0aGUgbmV3IHJhbmdlcyAqL1xuIFx0ZGFtb25fZm9yX2VhY2hfcmVnaW9uX3NhZmUociwgbmV4dCwgdCkge1xuIFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBucl9yYW5nZXM7IGkmIzQzOyYjNDM7KSB7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT04mIzM0OywKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OywKICAgICYjMzQ7REFNT05fVkFERFImIzM0OywKICAgICYjMzQ7REFNT05fUEFERFImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkYW1vbl9zZXRfcmVnaW9ucyYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgdG8gYGRhbW9uX3NldF9yZWdpb25zYCB0byByZWplY3QgYWRkcmVzcyByYW5nZXMgd2hlcmUgc3RhcnQgXHUwMDNlPSBlbmQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgREFNT04gY29yZSBsb2dpYywgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgdGhlIERBTU9OIHN5c2ZzIGludGVyZmFjZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNGUzN2ExZWQyYzI0OGUyMDk4NTE5YmU1ODM5MDQ0MGQ3ZTFjYWU3MwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgSnVuIDI3IDE3OjEzOjA5IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbW0vZGFtb24vY29yZS5jIGIvbW0vZGFtb24vY29yZS5jCmluZGV4IDdlNGI5YWZmYzViMDYwLi5iMzEwMGQ3ZmE1NTk2OSAxMDA2NDQKLS0tIGEvbW0vZGFtb24vY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL21tL2RhbW9uL2NvcmUuYwpAQCAtMzU4LDYgJiM0MzszNTgsMTEgQEAgaW50IGRhbW9uX3NldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlICpyYW5nZXMsCiAJdW5zaWduZWQgaW50IGk7CiAJaW50IGVycjsKIAomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgbnJfcmFuZ2VzOyBpJiM0MzsmIzQzOykgewomIzQzOwkJaWYgKHJhbmdlc1tpXS5zdGFydCAmZ3Q7PSByYW5nZXNbaV0uZW5kKQomIzQzOwkJCXJldHVybiAtRUlOVkFMOwomIzQzOwl9CiYjNDM7CiAJLyogUmVtb3ZlIHJlZ2lvbnMgd2hpY2ggYXJlIG5vdCBpbiB0aGUgbmV3IHJhbmdlcyAqLwogCWRhbW9uX2Zvcl9lYWNoX3JlZ2lvbl9zYWZlKHIsIG5leHQsIHQpIHsKIAkJZm9yIChpID0gMDsgaSAmbHQ7IG5yX3JhbmdlczsgaSYjNDM7JiM0MzspIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTg3MAoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDEwMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBEQU1PTiBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG1tL2RhbW9uL2NvcmUuY2AuIFNlZW1zIGxpa2UgdGhleSYjMzk7dmUgYWRkZWQgYSBjaGVjayB3aXRoaW4gYGRhbW9uX3NldF9yZWdpb25zYC4gU3BlY2lmaWNhbGx5LCB0aGV5JiMzOTtyZSBlbnN1cmluZyB0aGF0IHRoZSBzdGFydCBvZiBhIHJlZ2lvbiBpc24mIzM5O3QgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBlbmQuIE1ha2VzIHNlbnNlLCB0aGF0JiMzOTtzIGEgYmFzaWMgc2FuaXR5IGNoZWNrIOKAkyB5b3UgY2FuJiMzOTt0IGhhdmUgYSByZWdpb24gZGVmaW5lZCB0aGF0IHdheS4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZGVmaW5pdGVseSBzb21ldGhpbmcgdGhhdCBjb3VsZCBhZmZlY3QgYmVoYXZpb3IuCgpNeSBpbW1lZGlhdGUgdGhvdWdodHMgYXJlLCAmIzM0O0lzIHRoaXMgcmVhY2hhYmxlPyYjMzQ7IGFuZCAmIzM0O1doYXQgYXJlIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcz8mIzM0OyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29kZSBwYXRocyB0aGF0IGFjdHVhbGx5IGNhbGwgYGRhbW9uX3NldF9yZWdpb25zYCBhbmQgdW5kZXIgd2hhdCBrZXJuZWwgY29uZmlndXJhdGlvbnMuIEkmIzM5O2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIHNlYXJjaCB0b29scyB0byBsb2NhdGUgYWxsIGluc3RhbmNlcyBvZiB0aGF0IGZ1bmN0aW9uLCBhcyB3ZWxsIGFzIGNvbmZpcm0gaXQgaXMgd2l0aGluIHRoZSBtb2RpZmllZCBjb3JlIGZpbGUuIEtub3dpbmcgdGhlIENPTkZJRyBvcHRpb25zIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIHNjb3BlIG9mIHRoaXMgY2hhbmdlLiBMZXQmIzM5O3MgZGlnIGluLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RhbW9uX3NldF9yZWdpb25zJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZGFtb24vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL2NvcmUuYz0zMjE9c3RhdGljIGludCBkYW1vbl9maWxsX3JlZ2lvbnNfaG9sZXMoc3RydWN0IGRhbW9uX3JlZ2lvbiAqZmlyc3QsXG4tLVxubW0vZGFtb24vY29yZS5jLTM0Mi0vKlxubW0vZGFtb24vY29yZS5jOjM0MzogKiBkYW1vbl9zZXRfcmVnaW9ucygpIC0gU2V0IHJlZ2lvbnMgb2YgYSB0YXJnZXQgZm9yIGdpdmVuIGFkZHJlc3MgcmFuZ2VzLlxubW0vZGFtb24vY29yZS5jLTM0NC0gKiBAdDpcdFx0dGhlIGdpdmVuIHRhcmdldC5cbi0tXG5tbS9kYW1vbi9jb3JlLmMtMzUzLSAqL1xubW0vZGFtb24vY29yZS5jOjM1NDppbnQgZGFtb25fc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlcyxcbm1tL2RhbW9uL2NvcmUuYy0zNTUtXHRcdHVuc2lnbmVkIGludCBucl9yYW5nZXMsIHVuc2lnbmVkIGxvbmcgbWluX3JlZ2lvbl9zeilcbi0tXG5tbS9kYW1vbi9jb3JlLmM9MTM1ND1zdGF0aWMgaW50IGRhbW9uX2NvbW1pdF90YXJnZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICpkc3QsXG4tLVxubW0vZGFtb24vY29yZS5jLTEzNzEtXHRcdHJhbmdlc1tpJiM0MzsmIzQzO10gPSBzcmNfcmVnaW9uLVx1MDAzZWFyO1xubW0vZGFtb24vY29yZS5jOjEzNzI6XHRlcnIgPSBkYW1vbl9zZXRfcmVnaW9ucyhkc3QsIHJhbmdlcywgaSwgc3JjX21pbl9yZWdpb25fc3opO1xubW0vZGFtb24vY29yZS5jLTEzNzMtXHRrZnJlZShyYW5nZXMpO1xuLS1cbm1tL2RhbW9uL2NvcmUuYz0zNzAzPWludCBkYW1vbl9zZXRfcmVnaW9uX3N5c3RlbV9yYW1zX2RlZmF1bHQoc3RydWN0IGRhbW9uX3RhcmdldCAqdCxcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMzcxNy1cdGFkZHJfcmFuZ2UuZW5kID0gKmVuZDtcbm1tL2RhbW9uL2NvcmUuYzozNzE4Olx0cmV0dXJuIGRhbW9uX3NldF9yZWdpb25zKHQsIFx1MDAyNmFkZHJfcmFuZ2UsIDEsIG1pbl9yZWdpb25fc3opO1xubW0vZGFtb24vY29yZS5jLTM3MTktfVxuLS1cbm1tL2RhbW9uL3N5c2ZzLmM9MTk0Nz1zdGF0aWMgaW50IGRhbW9uX3N5c2ZzX3NldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsXG4tLVxubW0vZGFtb24vc3lzZnMuYy0xOTcxLVx0fVxubW0vZGFtb24vc3lzZnMuYzoxOTcyOlx0ZXJyID0gZGFtb25fc2V0X3JlZ2lvbnModCwgcmFuZ2VzLCBzeXNmc19yZWdpb25zLVx1MDAzZW5yLCBtaW5fcmVnaW9uX3N6KTtcbm1tL2RhbW9uL3N5c2ZzLmMtMTk3My1vdXQ6XG4tLVxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oPTM5Mz1zdGF0aWMgdm9pZCBkYW1vbl90ZXN0X3NldF9yZWdpb25zX2ZvcihzdHJ1Y3Qga3VuaXQgKnRlc3QsXG4tLVxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oLTQxNC1cbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaDo0MTU6XHRkYW1vbl9zZXRfcmVnaW9ucyh0LCBuZXdfcmFuZ2VzLCBzel9uZXdfcmFuZ2VzLCBtaW5fcmVnaW9uX3N6KTtcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC00MTYtXG4tLVxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaD05ND1zdGF0aWMgc3RydWN0IGRhbW9uX3JlZ2lvbiAqX19udGhfcmVnaW9uX29mKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIGludCBpZHgpXG4tLVxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xMDctLypcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg6MTA4OiAqIFRlc3QgJiMzOTtkYW1vbl9zZXRfcmVnaW9ucygpJiMzOTtcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTA5LSAqXG4tLVxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xMjItICogcmVnaW9ucy4gIFRoZSB1cGRhdGUgb2YgY3VycmVudCB0YXJnZXQgcmVnaW9ucyBpcyB0aGUgcm9sZSBvZlxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxMjM6ICogJiMzOTtkYW1vbl9zZXRfcmVnaW9ucygpJiMzOTsuXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTEyNC0gKlxuLS1cbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg9MTI5PXN0YXRpYyB2b2lkIGRhbW9uX2RvX3Rlc3RfYXBwbHlfdGhyZWVfcmVnaW9ucyhzdHJ1Y3Qga3VuaXQgKnRlc3QsXG4tLVxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTEtXHR9XG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oOjE1MjpcdGlmIChkYW1vbl9zZXRfcmVnaW9ucyh0LCByYW5nZXMsIG5yX3JlZ2lvbnMgLyAyLFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTMtXHRcdFx0XHREQU1PTl9NSU5fUkVHSU9OX1NaKSkge1xuLS1cbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTU1LVx0XHRkYW1vbl9kZXN0cm95X3RhcmdldCh0LCBOVUxMKTtcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg6MTU2Olx0XHRrdW5pdF9za2lwKHRlc3QsIFwmIzM0O2RhbW9uX3NldF9yZWdpb25zKCkgZmFpbFwmIzM0Oyk7XG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTE1Ny1cdH1cbi0tXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTE1OS1cbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg6MTYwOlx0aWYgKGRhbW9uX3NldF9yZWdpb25zKHQsIHRocmVlX3JlZ2lvbnMsIDMsIERBTU9OX01JTl9SRUdJT05fU1opKSB7XG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTE2MS1cdFx0ZGFtb25fZGVzdHJveV90YXJnZXQodCwgTlVMTCk7XG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oOjE2MjpcdFx0a3VuaXRfc2tpcCh0ZXN0LCBcJiMzNDtzZWNvbmQgZGFtb25fc2V0X3JlZ2lvbnMoKSBmYWlsXCYjMzQ7KTtcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTYzLVx0fVxuLS1cbm1tL2RhbW9uL3ZhZGRyLmM9MTkzPXN0YXRpYyB2b2lkIF9fZGFtb25fdmFfaW5pdF9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmN0eCxcbi0tXG5tbS9kYW1vbi92YWRkci5jLTIwOS1cbm1tL2RhbW9uL3ZhZGRyLmM6MjEwOlx0ZGFtb25fc2V0X3JlZ2lvbnModCwgcmVnaW9ucywgMywgREFNT05fTUlOX1JFR0lPTl9TWik7XG5tbS9kYW1vbi92YWRkci5jLTIxMS19XG4tLVxubW0vZGFtb24vdmFkZHIuYz0yMjg9c3RhdGljIHZvaWQgZGFtb25fdmFfdXBkYXRlKHN0cnVjdCBkYW1vbl9jdHggKmN0eClcbi0tXG5tbS9kYW1vbi92YWRkci5jLTIzNS1cdFx0XHRjb250aW51ZTtcbm1tL2RhbW9uL3ZhZGRyLmM6MjM2Olx0XHRkYW1vbl9zZXRfcmVnaW9ucyh0LCB0aHJlZV9yZWdpb25zLCAzLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTtcbm1tL2RhbW9uL3ZhZGRyLmMtMjM3LVx0fVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3MjIKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAxMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEQU1PTiBSZWdpb24gVXBkYXRlKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIHNhbml0eSBjaGVjayB3aXRoaW4gYGRhbW9uX3NldF9yZWdpb25zYC4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBhZGRpbmcgYSBjaGVjazogYGlmIChyYW5nZXNbaV0uc3RhcnQgJmd0Oz0gcmFuZ2VzW2ldLmVuZClgLCBhbmQgaWYgdGhhdCBjb25kaXRpb24gaXMgbWV0LCBpdCByZXR1cm5zIGAtRUlOVkFMYC4gVGhhdCBtYWtlcyBzZW5zZSAtIHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGVuc3VyZSB0aGUgc3RhcnQgb2YgYSBtZW1vcnkgcmFuZ2UgaXMgYmVmb3JlIGl0cyBlbmQ7IG90aGVyd2lzZSwgdGhlIHdob2xlIHRoaW5nIGZhbGxzIGFwYXJ0LgoKTm93LCB3aGVyZSBpcyB0aGlzIGBkYW1vbl9zZXRfcmVnaW9uc2AgZnVuY3Rpb24gYWN0dWFsbHkgKnVzZWQqPyBMZXQmIzM5O3Mgc2VlLi4uIGl0JiMzOTtzIGNhbGxlZCBmcm9tIHNldmVyYWwgcGxhY2VzOiBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgLCBgZGFtb25fc2V0X3JlZ2lvbl9zeXN0ZW1fcmFtc19kZWZhdWx0YCwgYGRhbW9uX2NvbW1pdF90YXJnZXRfcmVnaW9uc2AsIGBfX2RhbW9uX3ZhX2luaXRfcmVnaW9uc2AsIGFuZCBgZGFtb25fdmFfdXBkYXRlYC4gVGhhdCBjb3ZlcnMgYSBwcmV0dHkgYnJvYWQgcmFuZ2Ugb2YgaW50ZXJhY3Rpb25zIHdpdGggdGhlIERBTU9OIHN1YnN5c3RlbS4gU28sIGVzc2VudGlhbGx5IGFueXdoZXJlIHdlJiMzOTtyZSBzZXR0aW5nIG9yIHVwZGF0aW5nIHRoZSByZWdpb25zIERBTU9OIGlzIG1vbml0b3JpbmcsIHRoaXMgY2hlY2sgbm93IGZpcmVzLgoKT2YgY291cnNlLCBEQU1PTiBpcyBEYXRhIEFjY2VzcyBNT05pdG9yLCBzbyBJIG5lZWQgdG8gZ28gc2VlIGlmIHRoZXJlIGFyZSBhbnkgY29uZmlnIG9wdGlvbnMgdGhhdCBpbmZsdWVuY2UgdGhlIHdheSBpdCB3b3Jrcy4gVGhpcyBzYW5pdHkgY2hlY2sgd291bGQgY2VydGFpbmx5IGludGVyYWN0IHdpdGggdGhlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAxNzoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgREFNT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vS2NvbmZpZz0zPW1lbnUgXCYjMzQ7RGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1wmIzM0O1xubW0vZGFtb24vS2NvbmZpZy00LVxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxubW0vZGFtb24vS2NvbmZpZy02LVx0Ym9vbCBcJiMzNDtEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxubW0vZGFtb24vS2NvbmZpZzoxNTpjb25maWcgREFNT05fREVCVUdfU0FOSVRZXG5tbS9kYW1vbi9LY29uZmlnLTE2LVx0Ym9vbCBcJiMzNDtDaGVjayBzYW5pdHkgb2YgREFNT04gY29kZVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMjUtXG5tbS9kYW1vbi9LY29uZmlnOjI2OmNvbmZpZyBEQU1PTl9LVU5JVF9URVNUXG5tbS9kYW1vbi9LY29uZmlnLTI3LVx0Ym9vbCBcJiMzNDtUZXN0IGZvciBkYW1vblwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy0zNy1cbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXG5tbS9kYW1vbi9LY29uZmlnLTM5LVx0Ym9vbCBcJiMzNDtEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxubW0vZGFtb24vS2NvbmZpZzo0Nzpjb25maWcgREFNT05fUEFERFJcbm1tL2RhbW9uL0tjb25maWctNDgtXHRib29sIFwmIzM0O0RhdGEgYWNjZXNzIG1vbml0b3Jpbmcgb3BlcmF0aW9ucyBmb3IgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2VcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTU1LVxubW0vZGFtb24vS2NvbmZpZzo1Njpjb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy01Ny1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgREFNT04gb3BlcmF0aW9uc1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy02Ny1cbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXG5tbS9kYW1vbi9LY29uZmlnLTY5LVx0Ym9vbCBcJiMzNDtEQU1PTiBzeXNmcyBpbnRlcmZhY2VcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxubW0vZGFtb24vS2NvbmZpZzo3Njpjb25maWcgREFNT05fU1lTRlNfS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy03Ny1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgZGFtb24gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTg3LVxubW0vZGFtb24vS2NvbmZpZzo4ODpjb25maWcgREFNT05fUkVDTEFJTVxubW0vZGFtb24vS2NvbmZpZy04OS1cdGJvb2wgXCYjMzQ7QnVpbGQgREFNT04tYmFzZWQgcmVjbGFpbSAoREFNT05fUkVDTEFJTSlcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTk5LVxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXG5tbS9kYW1vbi9LY29uZmlnLTEwMS1cdGJvb2wgXCYjMzQ7QnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMTA3LVxubW0vZGFtb24vS2NvbmZpZzoxMDg6Y29uZmlnIERBTU9OX1NUQVRcbm1tL2RhbW9uL0tjb25maWctMTA5LVx0Ym9vbCBcJiMzNDtCdWlsZCBkYXRhIGFjY2VzcyBtb25pdG9yaW5nIHN0YXQgKERBTU9OX1NUQVQpXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy0xMTUtXG5tbS9kYW1vbi9LY29uZmlnOjExNjpjb25maWcgREFNT05fU1RBVF9FTkFCTEVEX0RFRkFVTFRcbm1tL2RhbW9uL0tjb25maWctMTE3LVx0Ym9vbCBcJiMzNDtFbmFibGUgREFNT05fU1RBVCBieSBkZWZhdWx0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDg3NAoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDEyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERBTU9OIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgREFNT04gY29uZmlndXJhdGlvbi4gVGhlIGtleSBoZXJlIGlzLCBvZiBjb3Vyc2UsIGBEQU1PTmAuIEFuZCBpdCBsb29rcyBsaWtlIGBEQU1PTl9TWVNGU2AgaXMgbGlrZWx5IGEgY3J1Y2lhbCBjb21wb25lbnQsIGVzcGVjaWFsbHkgZ2l2ZW4gdGhlIGNhbGwgdG8gaXQgZnJvbSBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgLiBBbHNvLCBJJiMzOTtsbCBuZWVkIHRvIHJlbWVtYmVyIGBEQU1PTl9WQUREUmAgYW5kIGBEQU1PTl9QQUREUmAuIE5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBpcyBob3cgdXNlci1zcGFjZSBpbnRlcmFjdHMgd2l0aCBgZGFtb25fc2V0X3JlZ2lvbnNgLiBJIHNlZSB0aGF0IGBkYW1vbl9zeXNmc19zZXRfcmVnaW9uc2AgaXMgdGhlIGdhdGV3YXkuIEFuZCB0aGF0IGlzIGNhbGxlZCBmcm9tIGBkYW1vbl9zeXNmc19yZWdpb25zX3VwZGF0ZWAsIHdoaWNoIHNlZW1zIHRvIGJlIHRyaWdnZXJlZCBieSBzeXNmcyB3cml0ZXMsIHNvIEkgbmVlZCB0byBjaGVjayBgbW0vZGFtb24vc3lzZnMuY2AgdG8gdHJhY2UgdGhlIGRhdGEgZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAxNzoxNTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkYW1vbl9zeXNmc19zZXRfcmVnaW9ucyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL2RhbW9uL3N5c2ZzLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vc3lzZnMuYz0xOTAyPXN0YXRpYyBpbnQgZGFtb25fc3lzZnNfc2V0X3Byb2JlcyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsXG4tLVxubW0vZGFtb24vc3lzZnMuYy0xOTQ2LVxubW0vZGFtb24vc3lzZnMuYzoxOTQ3OnN0YXRpYyBpbnQgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCxcbm1tL2RhbW9uL3N5c2ZzLmMtMTk0OC1cdFx0c3RydWN0IGRhbW9uX3N5c2ZzX3JlZ2lvbnMgKnN5c2ZzX3JlZ2lvbnMsXG4tLVxubW0vZGFtb24vc3lzZnMuYz0xOTc5PXN0YXRpYyBpbnQgZGFtb25fc3lzZnNfYWRkX3RhcmdldChzdHJ1Y3QgZGFtb25fc3lzZnNfdGFyZ2V0ICpzeXNfdGFyZ2V0LFxuLS1cbm1tL2RhbW9uL3N5c2ZzLmMtMTk5My1cdHQtXHUwMDNlb2Jzb2xldGUgPSBzeXNfdGFyZ2V0LVx1MDAzZW9ic29sZXRlO1xubW0vZGFtb24vc3lzZnMuYzoxOTk0Olx0cmV0dXJuIGRhbW9uX3N5c2ZzX3NldF9yZWdpb25zKHQsIHN5c190YXJnZXQtXHUwMDNlcmVnaW9ucyxcbm1tL2RhbW9uL3N5c2ZzLmMtMTk5NS1cdFx0XHRjdHgtXHUwMDNlbWluX3JlZ2lvbl9zeik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTQ4MAoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRhcmdldCBJZGVudGlmaWNhdGlvbjogREFNT04gU3lzZnMgSW50ZXJmYWNlKioKCk9rYXksIHNvIGBkYW1vbl9zeXNmc19hZGRfdGFyZ2V0YCBpcyB0aGUgY3JpdGljYWwgZnVuY3Rpb24gaGVyZSwgYW5kIGl0JiMzOTtzIHJlYWNoZWQgZnJvbSBgZGFtb25fc3lzZnNfc2V0X3RhcmdldHNgLCB3aGljaCBpbiB0dXJuLCBpcyBjYWxsZWQgYnkgc29tZXRoaW5nIGxpa2UgYGRhbW9uX3N5c2ZzX3R1cm5fZGFtb25fb25gLiBFc3NlbnRpYWxseSwgdGhhdCBtZWFucyB1c2VyLXNwYWNlIGNhbiBjb250cm9sIGl0IHZpYSB0aGUgc3lzZnMgaW50ZXJmYWNlLiBUaGUgcGF0Y2ggYWRkcyBhIGJhc2ljIGNoZWNrLCBzcGVjaWZpY2FsbHkgZm9yIGBzdGFydCAmZ3Q7PSBlbmRgLCByZXR1cm5pbmcgYC1FSU5WQUxgLiBUaGF0JiMzOTtzIGEgY2xhc3NpYyBmdXp6aW5nIHRhcmdldCByaWdodCB0aGVyZS4gQSBxdWljayBhbmQgZWFzeSBwYXRoIHRvIGZpbmQgYnVncyBpZiB0aGVyZSBpcyBvbmUuCgpNeSBmb2N1cyBzaG91bGQgYmUgb24gYGRhbW9uX3NldF9yZWdpb25zYCBhbmQgYGRhbW9uX3N5c2ZzX3NldF9yZWdpb25zYCwga2VlcGluZyBpbiBtaW5kIHRoZSBjb25maWd1cmF0aW9ucyBpbnZvbHZlZC4gSSYjMzk7bGwgbmVlZCB0byBtYWtlIHN1cmUgdGhlIGZ1enppbmcgY29uZmlndXJhdGlvbiBjb3ZlcnMgYERBTU9OYCwgYERBTU9OX1NZU0ZTYCwgdGhhdCYjMzk7cyBhIGdpdmVuLiBCdXQgSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLCBqdXN0IHRvIGJlIHRob3JvdWdoLgoKQWxyaWdodCwgYSBxdWljayBsb29rIHJldmVhbHMgYERBTU9OX1ZBRERSYCBhbmQgYERBTU9OX1BBRERSYCwgdGhvc2UgZGVhbCB3aXRoIHZpcnR1YWwgYW5kIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2VzLCByZXNwZWN0aXZlbHkuIERlZmluaXRlbHkgd29ydGggaW5jbHVkaW5nLCBleHBhbmRpbmcgdGhlIGNvdmVyYWdlIGZvciB2aXJ0dWFsIGFuZCBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlcy4gU28gdGhlIGNvbmZpZyBsaXN0IHdpbGwgYmUgYERBTU9OYCwgYERBTU9OX1NZU0ZTYCwgYERBTU9OX1ZBRERSYCwgYW5kIGBEQU1PTl9QQUREUmAuCgpJJiMzOTtsbCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBkYW1vbl9zZXRfcmVnaW9uc2AgaW1wbGVtZW50YXRpb24gaW4gYG1tL2RhbW9uL2NvcmUuY2AganVzdCB0byBzb2xpZGlmeSBteSB1bmRlcnN0YW5kaW5nLiBUaGF0JiMzOTtzIGEga2V5IGZ1bmN0aW9uIGFuZCB3b3J0aCBhbm90aGVyIGdsYW5jZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMTc6MTU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGFtb25fc2V0X3JlZ2lvbnMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi9jb3JlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vY29yZS5jPTMyMT1zdGF0aWMgaW50IGRhbW9uX2ZpbGxfcmVnaW9uc19ob2xlcyhzdHJ1Y3QgZGFtb25fcmVnaW9uICpmaXJzdCxcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMzQyLS8qXG5tbS9kYW1vbi9jb3JlLmM6MzQzOiAqIGRhbW9uX3NldF9yZWdpb25zKCkgLSBTZXQgcmVnaW9ucyBvZiBhIHRhcmdldCBmb3IgZ2l2ZW4gYWRkcmVzcyByYW5nZXMuXG5tbS9kYW1vbi9jb3JlLmMtMzQ0LSAqIEB0Olx0XHR0aGUgZ2l2ZW4gdGFyZ2V0LlxuLS1cbm1tL2RhbW9uL2NvcmUuYy0zNTMtICovXG5tbS9kYW1vbi9jb3JlLmM6MzU0OmludCBkYW1vbl9zZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2VzLFxubW0vZGFtb24vY29yZS5jLTM1NS1cdFx0dW5zaWduZWQgaW50IG5yX3JhbmdlcywgdW5zaWduZWQgbG9uZyBtaW5fcmVnaW9uX3N6KVxuLS1cbm1tL2RhbW9uL2NvcmUuYz0xMzU0PXN0YXRpYyBpbnQgZGFtb25fY29tbWl0X3RhcmdldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKmRzdCxcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMTM3MS1cdFx0cmFuZ2VzW2kmIzQzOyYjNDM7XSA9IHNyY19yZWdpb24tXHUwMDNlYXI7XG5tbS9kYW1vbi9jb3JlLmM6MTM3MjpcdGVyciA9IGRhbW9uX3NldF9yZWdpb25zKGRzdCwgcmFuZ2VzLCBpLCBzcmNfbWluX3JlZ2lvbl9zeik7XG5tbS9kYW1vbi9jb3JlLmMtMTM3My1cdGtmcmVlKHJhbmdlcyk7XG4tLVxubW0vZGFtb24vY29yZS5jPTM3MDM9aW50IGRhbW9uX3NldF9yZWdpb25fc3lzdGVtX3JhbXNfZGVmYXVsdChzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LFxuLS1cbm1tL2RhbW9uL2NvcmUuYy0zNzE3LVx0YWRkcl9yYW5nZS5lbmQgPSAqZW5kO1xubW0vZGFtb24vY29yZS5jOjM3MTg6XHRyZXR1cm4gZGFtb25fc2V0X3JlZ2lvbnModCwgXHUwMDI2YWRkcl9yYW5nZSwgMSwgbWluX3JlZ2lvbl9zeik7XG5tbS9kYW1vbi9jb3JlLmMtMzcxOS19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjE1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDY1MzEKCQkJCQkJCW91dHB1dDogMTE1CgkJCQkJCQl0aG91Z2h0czogNzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSBjaGFuZ2VzLCB2aWV3ZWQgdGhyb3VnaCB0aGUgbGVucyBvZiBteSBleHBlcnRpc2U6CgoqKkRBTU9OIFJlZ2lvbiBTZXR0aW5nOiBBIFRhcmdldGVkIEFkanVzdG1lbnQqKgoKUmlnaHQsIHNvIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGEgZm9jdXNlZCBtb2RpZmljYXRpb24gd2l0aGluIGBkYW1vbl9zZXRfcmVnaW9uc2AuIFRoZSBjaGFuZ2UgaXRzZWxmIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZCDigJMgYSBuZXcgYFdvcnRoRnV6emluZz10cnVlYCBmbGFnIGJlaW5nIHNldC4gVGhpcyBpcyBpbnRlcmVzdGluZy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoaXMgaXMgbGlrZWx5IGEgc2lnbmFsIHRvIHNvbWUgZG93bnN0cmVhbSBjb21wb25lbnQsIHBlcmhhcHMgdGhlIGZ1enppbmcgZW5naW5lIGl0c2VsZiwgb3IgYSB0ZXN0IGhhcm5lc3MsIGluZGljYXRpbmcgdGhhdCB0aGlzIHBhcnRpY3VsYXIgcmVnaW9uIHNldHRpbmcgaXMgYSBnb29kIGNhbmRpZGF0ZSBmb3IsIG9yICpkZXNlcnZlcyosIGZ1enppbmcuIEl04oCZcyBhIHZlcnkgdGFyZ2V0ZWQgb3B0aW1pemF0aW9uLCB3aGljaCBpcyBrZXkuIFRoZSBmb2N1cyBpcyBzcGVjaWZpY2FsbHkgb24gYGRhbW9uX3NldF9yZWdpb25zYCDigJMgdGhhdOKAmXMgdGhlIGZ1bmN0aW9uIG9mIGludGVyZXN0LgoKVGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb25zLCBgREFNT05gLCBgREFNT05fU1lTRlNgLCBgREFNT05fVkFERFJgLCBhbmQgYERBTU9OX1BBRERSYCwgYXJlIGNydWNpYWwgY29udGV4dC4gVGhleSB0ZWxsIG1lIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggREFNT04mIzM5O3MgY29yZSBmdW5jdGlvbmFsaXR5LCBsaWtlbHkgaW52b2x2aW5nIHN5c3RlbS1sZXZlbCBtb25pdG9yaW5nLCBmaWxlc3lzdGVtIGludGVncmF0aW9uLCBhbmQgdmlydHVhbC9waHlzaWNhbCBhZGRyZXNzIHNwYWNlIG1hbmFnZW1lbnQuIFRoZSBwcmVzZW5jZSBvZiB0aGVzZSBjb25maWd1cmF0aW9ucyBzdHJvbmdseSBzdWdnZXN0cyB0aGlzIGlzIHBhcnQgb2YgYSBsYXJnZXIgZWZmb3J0IHRvIGltcHJvdmUgREFNT04mIzM5O3Mgcm9idXN0bmVzcywgcGVyaGFwcyB0aHJvdWdoIGlucHV0IHZhbGlkYXRpb24gaW4gdGhlIHN5c2ZzIGludGVyZmFjZS4KCkkmIzM5O20gbm93IHRoaW5raW5nIHRoaXMgbWlnaHQgYmUgY29ubmVjdGVkIHRvIGFuIGVhcmxpZXIgZGlzY3Vzc2lvbiBhYm91dCBwb3RlbnRpYWwgY29ybmVyIGNhc2VzIG9yIHVuZXhwZWN0ZWQgaW5wdXRzIHRoYXQgY291bGQgYXJpc2UgZnJvbSB0aGUgc3lzdGVtLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIHN5c2ZzLXByb3ZpZGVkIHJlZ2lvbiBkZWZpbml0aW9ucy4gQnkgZmxhZ2dpbmcgc3BlY2lmaWMgY2FsbHMgdG8gYGRhbW9uX3NldF9yZWdpb25zYCBhcyAmIzM0O2Z1enotd29ydGh5LCYjMzQ7IHdlJiMzOTtyZSBwcm9iYWJseSBhaW1pbmcgdG8gdW5jb3ZlciBhbnkgc3VjaCB2dWxuZXJhYmlsaXRpZXMgb3IgdW5leHBlY3RlZCBiZWhhdmlvciB1bmRlciBzdHJlc3MgdGVzdGluZy4KCkZpbmFsbHksIHRoZSBtZW50aW9uIG9mICYjMzQ7c2V0LXJlc3VsdHMmIzM0OyBzdWdnZXN0cyBhIGxvZ2dpbmcgb3IgZGF0YSBjb2xsZWN0aW9uIGFzcGVjdCBvZiB0aGUgaW1wbGVtZW50YXRpb24uIFdlIHByb2JhYmx5IHdhbnQgdG8gc2VlIHdoYXQgaGFwcGVucyB3aGVuIHRoZSByZWdpb24gc2V0dGluZ3MgYXJlIHNlbnQgZm9yIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDE3OjE1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEQU1PTiYjMzQ7LAogICAgJiMzNDtEQU1PTl9TWVNGUyYjMzQ7LAogICAgJiMzNDtEQU1PTl9WQUREUiYjMzQ7LAogICAgJiMzNDtEQU1PTl9QQUREUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX3NldF9yZWdpb25zJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyB0byBgZGFtb25fc2V0X3JlZ2lvbnNgIHRvIHJlamVjdCBhZGRyZXNzIHJhbmdlcyB3aGVyZSBzdGFydCBcdTAwM2U9IGVuZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBEQU1PTiBjb3JlIGxvZ2ljLCByZWFjaGFibGUgZnJvbSB1c2VyLXNwYWNlIHZpYSB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEQU1PTiYjMzQ7LAogICAgJiMzNDtEQU1PTl9TWVNGUyYjMzQ7LAogICAgJiMzNDtEQU1PTl9WQUREUiYjMzQ7LAogICAgJiMzNDtEQU1PTl9QQUREUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX3NldF9yZWdpb25zJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyB0byBgZGFtb25fc2V0X3JlZ2lvbnNgIHRvIHJlamVjdCBhZGRyZXNzIHJhbmdlcyB3aGVyZSBzdGFydCBcdTAwM2U9IGVuZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBEQU1PTiBjb3JlIGxvZ2ljLCByZWFjaGFibGUgZnJvbSB1c2VyLXNwYWNlIHZpYSB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTM6MTEuMTc1NzgyMTU1WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM4ODEwMTIyMDQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRBTU9OXCIsXG4gICAgXCJEQU1PTl9TWVNGU1wiLFxuICAgIFwiREFNT05fVkFERFJcIixcbiAgICBcIkRBTU9OX1BBRERSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiZGFtb25fc2V0X3JlZ2lvbnNcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHZhbGlkYXRpb24gbG9naWMgdG8gYGRhbW9uX3NldF9yZWdpb25zYCB0byByZWplY3QgYWRkcmVzcyByYW5nZXMgd2hlcmUgc3RhcnQgXFx1MDAzZT0gZW5kLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIERBTU9OIGNvcmUgbG9naWMsIHJlYWNoYWJsZSBmcm9tIHVzZXItc3BhY2UgdmlhIHRoZSBEQU1PTiBzeXNmcyBpbnRlcmZhY2UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjEzOjExLjE3NTc5MTg4NVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzU0NjcxNzQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNGUzN2ExZWQyYzI0OGUyMDk4NTE5YmU1ODM5MDQ0MGQ3ZTFjYWU3M1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1biAyNyAxNzoxMzowOSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9jb3JlLmMgYi9tbS9kYW1vbi9jb3JlLmNcXG5pbmRleCA3ZTRiOWFmZmM1YjA2MC4uYjMxMDBkN2ZhNTU5NjkgMTAwNjQ0XFxuLS0tIGEvbW0vZGFtb24vY29yZS5jXFxuKysrIGIvbW0vZGFtb24vY29yZS5jXFxuQEAgLTM1OCw2ICszNTgsMTEgQEAgaW50IGRhbW9uX3NldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsIHN0cnVjdCBkYW1vbl9hZGRyX3JhbmdlICpyYW5nZXMsXFxuIFxcdHVuc2lnbmVkIGludCBpO1xcbiBcXHRpbnQgZXJyO1xcbiBcXG4rXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIG5yX3JhbmdlczsgaSsrKSB7XFxuK1xcdFxcdGlmIChyYW5nZXNbaV0uc3RhcnQgXFx1MDAzZT0gcmFuZ2VzW2ldLmVuZClcXG4rXFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuK1xcdH1cXG4rXFxuIFxcdC8qIFJlbW92ZSByZWdpb25zIHdoaWNoIGFyZSBub3QgaW4gdGhlIG5ldyByYW5nZXMgKi9cXG4gXFx0ZGFtb25fZm9yX2VhY2hfcmVnaW9uX3NhZmUociwgbmV4dCwgdCkge1xcbiBcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgbnJfcmFuZ2VzOyBpKyspIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTM6MTEuNTMxMjEyOTEyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzg0NTQ2Nzg1OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05cIixcbiAgICBcIkRBTU9OX1NZU0ZTXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zZXRfcmVnaW9uc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyB0byBgZGFtb25fc2V0X3JlZ2lvbnNgIHRvIHJlamVjdCBhZGRyZXNzIHJhbmdlcyB3aGVyZSBzdGFydCBcXHUwMDNlPSBlbmQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgREFNT04gY29yZSBsb2dpYywgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgdGhlIERBTU9OIHN5c2ZzIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0ZTM3YTFlZDJjMjQ4ZTIwOTg1MTliZTU4MzkwNDQwZDdlMWNhZTczXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdW4gMjcgMTc6MTM6MDkgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9jb3JlLmMgYi9tbS9kYW1vbi9jb3JlLmNcbmluZGV4IDdlNGI5YWZmYzViMDYwLi5iMzEwMGQ3ZmE1NTk2OSAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL2NvcmUuY1xuKysrIGIvbW0vZGFtb24vY29yZS5jXG5AQCAtMzU4LDYgKzM1OCwxMSBAQCBpbnQgZGFtb25fc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlcyxcbiBcdHVuc2lnbmVkIGludCBpO1xuIFx0aW50IGVycjtcbiBcbitcdGZvciAoaSA9IDA7IGkgXHUwMDNjIG5yX3JhbmdlczsgaSsrKSB7XG4rXHRcdGlmIChyYW5nZXNbaV0uc3RhcnQgXHUwMDNlPSByYW5nZXNbaV0uZW5kKVxuK1x0XHRcdHJldHVybiAtRUlOVkFMO1xuK1x0fVxuK1xuIFx0LyogUmVtb3ZlIHJlZ2lvbnMgd2hpY2ggYXJlIG5vdCBpbiB0aGUgbmV3IHJhbmdlcyAqL1xuIFx0ZGFtb25fZm9yX2VhY2hfcmVnaW9uX3NhZmUociwgbmV4dCwgdCkge1xuIFx0XHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBucl9yYW5nZXM7IGkrKykge1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTM6MTEuNTMxMjIyODAxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mzg3MzI5MDQyNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBEQU1PTiBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBtbS9kYW1vbi9jb3JlLmNgLiBTZWVtcyBsaWtlIHRoZXkndmUgYWRkZWQgYSBjaGVjayB3aXRoaW4gYGRhbW9uX3NldF9yZWdpb25zYC4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGVuc3VyaW5nIHRoYXQgdGhlIHN0YXJ0IG9mIGEgcmVnaW9uIGlzbid0IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgZW5kLiBNYWtlcyBzZW5zZSwgdGhhdCdzIGEgYmFzaWMgc2FuaXR5IGNoZWNrIOKAkyB5b3UgY2FuJ3QgaGF2ZSBhIHJlZ2lvbiBkZWZpbmVkIHRoYXQgd2F5LiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgY291bGQgYWZmZWN0IGJlaGF2aW9yLlxuXG5NeSBpbW1lZGlhdGUgdGhvdWdodHMgYXJlLCBcIklzIHRoaXMgcmVhY2hhYmxlP1wiIGFuZCBcIldoYXQgYXJlIHRoZSBjb25maWd1cmF0aW9uIGRlcGVuZGVuY2llcz9cIiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgY29kZSBwYXRocyB0aGF0IGFjdHVhbGx5IGNhbGwgYGRhbW9uX3NldF9yZWdpb25zYCBhbmQgdW5kZXIgd2hhdCBrZXJuZWwgY29uZmlndXJhdGlvbnMuIEknbGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgc2VhcmNoIHRvb2xzIHRvIGxvY2F0ZSBhbGwgaW5zdGFuY2VzIG9mIHRoYXQgZnVuY3Rpb24sIGFzIHdlbGwgYXMgY29uZmlybSBpdCBpcyB3aXRoaW4gdGhlIG1vZGlmaWVkIGNvcmUgZmlsZS4gS25vd2luZyB0aGUgQ09ORklHIG9wdGlvbnMgd2lsbCBiZSBrZXkgdG8gdW5kZXJzdGFuZGluZyB0aGUgc2NvcGUgb2YgdGhpcyBjaGFuZ2UuIExldCdzIGRpZyBpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MTg3MCwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwMiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjEzOjE1LjQwNDUxNjE0NloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU0ODk3NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkYW1vbl9zZXRfcmVnaW9uc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9kYW1vbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vY29yZS5jPTMyMT1zdGF0aWMgaW50IGRhbW9uX2ZpbGxfcmVnaW9uc19ob2xlcyhzdHJ1Y3QgZGFtb25fcmVnaW9uICpmaXJzdCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zNDItLypcXG5tbS9kYW1vbi9jb3JlLmM6MzQzOiAqIGRhbW9uX3NldF9yZWdpb25zKCkgLSBTZXQgcmVnaW9ucyBvZiBhIHRhcmdldCBmb3IgZ2l2ZW4gYWRkcmVzcyByYW5nZXMuXFxubW0vZGFtb24vY29yZS5jLTM0NC0gKiBAdDpcXHRcXHR0aGUgZ2l2ZW4gdGFyZ2V0Llxcbi0tXFxubW0vZGFtb24vY29yZS5jLTM1My0gKi9cXG5tbS9kYW1vbi9jb3JlLmM6MzU0OmludCBkYW1vbl9zZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LCBzdHJ1Y3QgZGFtb25fYWRkcl9yYW5nZSAqcmFuZ2VzLFxcbm1tL2RhbW9uL2NvcmUuYy0zNTUtXFx0XFx0dW5zaWduZWQgaW50IG5yX3JhbmdlcywgdW5zaWduZWQgbG9uZyBtaW5fcmVnaW9uX3N6KVxcbi0tXFxubW0vZGFtb24vY29yZS5jPTEzNTQ9c3RhdGljIGludCBkYW1vbl9jb21taXRfdGFyZ2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqZHN0LFxcbi0tXFxubW0vZGFtb24vY29yZS5jLTEzNzEtXFx0XFx0cmFuZ2VzW2krK10gPSBzcmNfcmVnaW9uLVxcdTAwM2VhcjtcXG5tbS9kYW1vbi9jb3JlLmM6MTM3MjpcXHRlcnIgPSBkYW1vbl9zZXRfcmVnaW9ucyhkc3QsIHJhbmdlcywgaSwgc3JjX21pbl9yZWdpb25fc3opO1xcbm1tL2RhbW9uL2NvcmUuYy0xMzczLVxcdGtmcmVlKHJhbmdlcyk7XFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MzcwMz1pbnQgZGFtb25fc2V0X3JlZ2lvbl9zeXN0ZW1fcmFtc19kZWZhdWx0KHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMzcxNy1cXHRhZGRyX3JhbmdlLmVuZCA9ICplbmQ7XFxubW0vZGFtb24vY29yZS5jOjM3MTg6XFx0cmV0dXJuIGRhbW9uX3NldF9yZWdpb25zKHQsIFxcdTAwMjZhZGRyX3JhbmdlLCAxLCBtaW5fcmVnaW9uX3N6KTtcXG5tbS9kYW1vbi9jb3JlLmMtMzcxOS19XFxuLS1cXG5tbS9kYW1vbi9zeXNmcy5jPTE5NDc9c3RhdGljIGludCBkYW1vbl9zeXNmc19zZXRfcmVnaW9ucyhzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LFxcbi0tXFxubW0vZGFtb24vc3lzZnMuYy0xOTcxLVxcdH1cXG5tbS9kYW1vbi9zeXNmcy5jOjE5NzI6XFx0ZXJyID0gZGFtb25fc2V0X3JlZ2lvbnModCwgcmFuZ2VzLCBzeXNmc19yZWdpb25zLVxcdTAwM2VuciwgbWluX3JlZ2lvbl9zeik7XFxubW0vZGFtb24vc3lzZnMuYy0xOTczLW91dDpcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaD0zOTM9c3RhdGljIHZvaWQgZGFtb25fdGVzdF9zZXRfcmVnaW9uc19mb3Ioc3RydWN0IGt1bml0ICp0ZXN0LFxcbi0tXFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oLTQxNC1cXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0Lmg6NDE1OlxcdGRhbW9uX3NldF9yZWdpb25zKHQsIG5ld19yYW5nZXMsIHN6X25ld19yYW5nZXMsIG1pbl9yZWdpb25fc3opO1xcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC00MTYtXFxuLS1cXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oPTk0PXN0YXRpYyBzdHJ1Y3QgZGFtb25fcmVnaW9uICpfX250aF9yZWdpb25fb2Yoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgaW50IGlkeClcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTA3LS8qXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxMDg6ICogVGVzdCAnZGFtb25fc2V0X3JlZ2lvbnMoKSdcXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTEwOS0gKlxcbi0tXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xMjItICogcmVnaW9ucy4gIFRoZSB1cGRhdGUgb2YgY3VycmVudCB0YXJnZXQgcmVnaW9ucyBpcyB0aGUgcm9sZSBvZlxcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0Lmg6MTIzOiAqICdkYW1vbl9zZXRfcmVnaW9ucygpJy5cXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTEyNC0gKlxcbi0tXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaD0xMjk9c3RhdGljIHZvaWQgZGFtb25fZG9fdGVzdF9hcHBseV90aHJlZV9yZWdpb25zKHN0cnVjdCBrdW5pdCAqdGVzdCxcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTUxLVxcdH1cXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oOjE1MjpcXHRpZiAoZGFtb25fc2V0X3JlZ2lvbnModCwgcmFuZ2VzLCBucl9yZWdpb25zIC8gMixcXG5tbS9kYW1vbi90ZXN0cy92YWRkci1rdW5pdC5oLTE1My1cXHRcXHRcXHRcXHREQU1PTl9NSU5fUkVHSU9OX1NaKSkge1xcbi0tXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTUtXFx0XFx0ZGFtb25fZGVzdHJveV90YXJnZXQodCwgTlVMTCk7XFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxNTY6XFx0XFx0a3VuaXRfc2tpcCh0ZXN0LCBcXFwiZGFtb25fc2V0X3JlZ2lvbnMoKSBmYWlsXFxcIik7XFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTctXFx0fVxcbi0tXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNTktXFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxNjA6XFx0aWYgKGRhbW9uX3NldF9yZWdpb25zKHQsIHRocmVlX3JlZ2lvbnMsIDMsIERBTU9OX01JTl9SRUdJT05fU1opKSB7XFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaC0xNjEtXFx0XFx0ZGFtb25fZGVzdHJveV90YXJnZXQodCwgTlVMTCk7XFxubW0vZGFtb24vdGVzdHMvdmFkZHIta3VuaXQuaDoxNjI6XFx0XFx0a3VuaXRfc2tpcCh0ZXN0LCBcXFwic2Vjb25kIGRhbW9uX3NldF9yZWdpb25zKCkgZmFpbFxcXCIpO1xcbm1tL2RhbW9uL3Rlc3RzL3ZhZGRyLWt1bml0LmgtMTYzLVxcdH1cXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmM9MTkzPXN0YXRpYyB2b2lkIF9fZGFtb25fdmFfaW5pdF9yZWdpb25zKHN0cnVjdCBkYW1vbl9jdHggKmN0eCxcXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmMtMjA5LVxcbm1tL2RhbW9uL3ZhZGRyLmM6MjEwOlxcdGRhbW9uX3NldF9yZWdpb25zKHQsIHJlZ2lvbnMsIDMsIERBTU9OX01JTl9SRUdJT05fU1opO1xcbm1tL2RhbW9uL3ZhZGRyLmMtMjExLX1cXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmM9MjI4PXN0YXRpYyB2b2lkIGRhbW9uX3ZhX3VwZGF0ZShzdHJ1Y3QgZGFtb25fY3R4ICpjdHgpXFxuLS1cXG5tbS9kYW1vbi92YWRkci5jLTIzNS1cXHRcXHRcXHRjb250aW51ZTtcXG5tbS9kYW1vbi92YWRkci5jOjIzNjpcXHRcXHRkYW1vbl9zZXRfcmVnaW9ucyh0LCB0aHJlZV9yZWdpb25zLCAzLCBEQU1PTl9NSU5fUkVHSU9OX1NaKTtcXG5tbS9kYW1vbi92YWRkci5jLTIzNy1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjEzOjE1LjQ2NDA3MzE4MVoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NDMxNzA3MTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEQU1PTiBSZWdpb24gVXBkYXRlKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgc2FuaXR5IGNoZWNrIHdpdGhpbiBgZGFtb25fc2V0X3JlZ2lvbnNgLiBTcGVjaWZpY2FsbHksIGl0J3MgYWRkaW5nIGEgY2hlY2s6IGBpZiAocmFuZ2VzW2ldLnN0YXJ0IFx1MDAzZT0gcmFuZ2VzW2ldLmVuZClgLCBhbmQgaWYgdGhhdCBjb25kaXRpb24gaXMgbWV0LCBpdCByZXR1cm5zIGAtRUlOVkFMYC4gVGhhdCBtYWtlcyBzZW5zZSAtIHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGVuc3VyZSB0aGUgc3RhcnQgb2YgYSBtZW1vcnkgcmFuZ2UgaXMgYmVmb3JlIGl0cyBlbmQ7IG90aGVyd2lzZSwgdGhlIHdob2xlIHRoaW5nIGZhbGxzIGFwYXJ0LlxuXG5Ob3csIHdoZXJlIGlzIHRoaXMgYGRhbW9uX3NldF9yZWdpb25zYCBmdW5jdGlvbiBhY3R1YWxseSAqdXNlZCo/IExldCdzIHNlZS4uLiBpdCdzIGNhbGxlZCBmcm9tIHNldmVyYWwgcGxhY2VzOiBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgLCBgZGFtb25fc2V0X3JlZ2lvbl9zeXN0ZW1fcmFtc19kZWZhdWx0YCwgYGRhbW9uX2NvbW1pdF90YXJnZXRfcmVnaW9uc2AsIGBfX2RhbW9uX3ZhX2luaXRfcmVnaW9uc2AsIGFuZCBgZGFtb25fdmFfdXBkYXRlYC4gVGhhdCBjb3ZlcnMgYSBwcmV0dHkgYnJvYWQgcmFuZ2Ugb2YgaW50ZXJhY3Rpb25zIHdpdGggdGhlIERBTU9OIHN1YnN5c3RlbS4gU28sIGVzc2VudGlhbGx5IGFueXdoZXJlIHdlJ3JlIHNldHRpbmcgb3IgdXBkYXRpbmcgdGhlIHJlZ2lvbnMgREFNT04gaXMgbW9uaXRvcmluZywgdGhpcyBjaGVjayBub3cgZmlyZXMuXG5cbk9mIGNvdXJzZSwgREFNT04gaXMgRGF0YSBBY2Nlc3MgTU9OaXRvciwgc28gSSBuZWVkIHRvIGdvIHNlZSBpZiB0aGVyZSBhcmUgYW55IGNvbmZpZyBvcHRpb25zIHRoYXQgaW5mbHVlbmNlIHRoZSB3YXkgaXQgd29ya3MuIFRoaXMgc2FuaXR5IGNoZWNrIHdvdWxkIGNlcnRhaW5seSBpbnRlcmFjdCB3aXRoIHRoZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3MjIsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTM6MjAuMDA3MjQ3NjAyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4MjQ3OTY0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEQU1PTlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9kYW1vbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vS2NvbmZpZz0zPW1lbnUgXFxcIkRhdGEgQWNjZXNzIE1vbml0b3JpbmdcXFwiXFxubW0vZGFtb24vS2NvbmZpZy00LVxcbm1tL2RhbW9uL0tjb25maWc6NTpjb25maWcgREFNT05cXG5tbS9kYW1vbi9LY29uZmlnLTYtXFx0Ym9vbCBcXFwiREFNT046IERhdGEgQWNjZXNzIE1vbml0b3JpbmcgRnJhbWV3b3JrXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy0xNC1cXG5tbS9kYW1vbi9LY29uZmlnOjE1OmNvbmZpZyBEQU1PTl9ERUJVR19TQU5JVFlcXG5tbS9kYW1vbi9LY29uZmlnLTE2LVxcdGJvb2wgXFxcIkNoZWNrIHNhbml0eSBvZiBEQU1PTiBjb2RlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy0yNS1cXG5tbS9kYW1vbi9LY29uZmlnOjI2OmNvbmZpZyBEQU1PTl9LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy0yNy1cXHRib29sIFxcXCJUZXN0IGZvciBkYW1vblxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy0zNy1cXG5tbS9kYW1vbi9LY29uZmlnOjM4OmNvbmZpZyBEQU1PTl9WQUREUlxcbm1tL2RhbW9uL0tjb25maWctMzktXFx0Ym9vbCBcXFwiRGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBvcGVyYXRpb25zIGZvciB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2VzXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy00Ni1cXG5tbS9kYW1vbi9LY29uZmlnOjQ3OmNvbmZpZyBEQU1PTl9QQUREUlxcbm1tL2RhbW9uL0tjb25maWctNDgtXFx0Ym9vbCBcXFwiRGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBvcGVyYXRpb25zIGZvciB0aGUgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctNTUtXFxubW0vZGFtb24vS2NvbmZpZzo1Njpjb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxcbm1tL2RhbW9uL0tjb25maWctNTctXFx0Ym9vbCBcXFwiVGVzdCBmb3IgREFNT04gb3BlcmF0aW9uc1xcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy02Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xcbm1tL2RhbW9uL0tjb25maWctNjktXFx0Ym9vbCBcXFwiREFNT04gc3lzZnMgaW50ZXJmYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy03NS1cXG5tbS9kYW1vbi9LY29uZmlnOjc2OmNvbmZpZyBEQU1PTl9TWVNGU19LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy03Ny1cXHRib29sIFxcXCJUZXN0IGZvciBkYW1vbiBzeXNmcyBpbnRlcmZhY2VcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctODctXFxubW0vZGFtb24vS2NvbmZpZzo4ODpjb25maWcgREFNT05fUkVDTEFJTVxcbm1tL2RhbW9uL0tjb25maWctODktXFx0Ym9vbCBcXFwiQnVpbGQgREFNT04tYmFzZWQgcmVjbGFpbSAoREFNT05fUkVDTEFJTSlcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTk5LVxcbm1tL2RhbW9uL0tjb25maWc6MTAwOmNvbmZpZyBEQU1PTl9MUlVfU09SVFxcbm1tL2RhbW9uL0tjb25maWctMTAxLVxcdGJvb2wgXFxcIkJ1aWxkIERBTU9OLWJhc2VkIExSVS1saXN0cyBzb3J0aW5nIChEQU1PTl9MUlVfU09SVClcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTEwNy1cXG5tbS9kYW1vbi9LY29uZmlnOjEwODpjb25maWcgREFNT05fU1RBVFxcbm1tL2RhbW9uL0tjb25maWctMTA5LVxcdGJvb2wgXFxcIkJ1aWxkIGRhdGEgYWNjZXNzIG1vbml0b3Jpbmcgc3RhdCAoREFNT05fU1RBVClcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTExNS1cXG5tbS9kYW1vbi9LY29uZmlnOjExNjpjb25maWcgREFNT05fU1RBVF9FTkFCTEVEX0RFRkFVTFRcXG5tbS9kYW1vbi9LY29uZmlnLTExNy1cXHRib29sIFxcXCJFbmFibGUgREFNT05fU1RBVCBieSBkZWZhdWx0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QxNzoxMzoyMC4wNjU0OTk0NzZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMTkzNzgzOTEyODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEQU1PTiBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBEQU1PTiBjb25maWd1cmF0aW9uLiBUaGUga2V5IGhlcmUgaXMsIG9mIGNvdXJzZSwgYERBTU9OYC4gQW5kIGl0IGxvb2tzIGxpa2UgYERBTU9OX1NZU0ZTYCBpcyBsaWtlbHkgYSBjcnVjaWFsIGNvbXBvbmVudCwgZXNwZWNpYWxseSBnaXZlbiB0aGUgY2FsbCB0byBpdCBmcm9tIGBkYW1vbl9zeXNmc19zZXRfcmVnaW9uc2AuIEFsc28sIEknbGwgbmVlZCB0byByZW1lbWJlciBgREFNT05fVkFERFJgIGFuZCBgREFNT05fUEFERFJgLiBOb3csIHRoZSBpbXBvcnRhbnQgcXVlc3Rpb24gaXMgaG93IHVzZXItc3BhY2UgaW50ZXJhY3RzIHdpdGggYGRhbW9uX3NldF9yZWdpb25zYC4gSSBzZWUgdGhhdCBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgIGlzIHRoZSBnYXRld2F5LiBBbmQgdGhhdCBpcyBjYWxsZWQgZnJvbSBgZGFtb25fc3lzZnNfcmVnaW9uc191cGRhdGVgLCB3aGljaCBzZWVtcyB0byBiZSB0cmlnZ2VyZWQgYnkgc3lzZnMgd3JpdGVzLCBzbyBJIG5lZWQgdG8gY2hlY2sgYG1tL2RhbW9uL3N5c2ZzLmNgIHRvIHRyYWNlIHRoZSBkYXRhIGZsb3cuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ4NzQsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMTc6MTU6MTkuNDQzODk1NjIyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5NTcxNDg1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRhbW9uX3N5c2ZzX3NldF9yZWdpb25zXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL3N5c2ZzLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vc3lzZnMuYz0xOTAyPXN0YXRpYyBpbnQgZGFtb25fc3lzZnNfc2V0X3Byb2JlcyhzdHJ1Y3QgZGFtb25fY3R4ICpjdHgsXFxuLS1cXG5tbS9kYW1vbi9zeXNmcy5jLTE5NDYtXFxubW0vZGFtb24vc3lzZnMuYzoxOTQ3OnN0YXRpYyBpbnQgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCxcXG5tbS9kYW1vbi9zeXNmcy5jLTE5NDgtXFx0XFx0c3RydWN0IGRhbW9uX3N5c2ZzX3JlZ2lvbnMgKnN5c2ZzX3JlZ2lvbnMsXFxuLS1cXG5tbS9kYW1vbi9zeXNmcy5jPTE5Nzk9c3RhdGljIGludCBkYW1vbl9zeXNmc19hZGRfdGFyZ2V0KHN0cnVjdCBkYW1vbl9zeXNmc190YXJnZXQgKnN5c190YXJnZXQsXFxuLS1cXG5tbS9kYW1vbi9zeXNmcy5jLTE5OTMtXFx0dC1cXHUwMDNlb2Jzb2xldGUgPSBzeXNfdGFyZ2V0LVxcdTAwM2VvYnNvbGV0ZTtcXG5tbS9kYW1vbi9zeXNmcy5jOjE5OTQ6XFx0cmV0dXJuIGRhbW9uX3N5c2ZzX3NldF9yZWdpb25zKHQsIHN5c190YXJnZXQtXFx1MDAzZXJlZ2lvbnMsXFxubW0vZGFtb24vc3lzZnMuYy0xOTk1LVxcdFxcdFxcdGN0eC1cXHUwMDNlbWluX3JlZ2lvbl9zeik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjE1OjE5LjUwMzQ3NzA2N1oiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ3NjA2Njc1OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IERBTU9OIFN5c2ZzIEludGVyZmFjZSoqXG5cbk9rYXksIHNvIGBkYW1vbl9zeXNmc19hZGRfdGFyZ2V0YCBpcyB0aGUgY3JpdGljYWwgZnVuY3Rpb24gaGVyZSwgYW5kIGl0J3MgcmVhY2hlZCBmcm9tIGBkYW1vbl9zeXNmc19zZXRfdGFyZ2V0c2AsIHdoaWNoIGluIHR1cm4sIGlzIGNhbGxlZCBieSBzb21ldGhpbmcgbGlrZSBgZGFtb25fc3lzZnNfdHVybl9kYW1vbl9vbmAuIEVzc2VudGlhbGx5LCB0aGF0IG1lYW5zIHVzZXItc3BhY2UgY2FuIGNvbnRyb2wgaXQgdmlhIHRoZSBzeXNmcyBpbnRlcmZhY2UuIFRoZSBwYXRjaCBhZGRzIGEgYmFzaWMgY2hlY2ssIHNwZWNpZmljYWxseSBmb3IgYHN0YXJ0IFx1MDAzZT0gZW5kYCwgcmV0dXJuaW5nIGAtRUlOVkFMYC4gVGhhdCdzIGEgY2xhc3NpYyBmdXp6aW5nIHRhcmdldCByaWdodCB0aGVyZS4gQSBxdWljayBhbmQgZWFzeSBwYXRoIHRvIGZpbmQgYnVncyBpZiB0aGVyZSBpcyBvbmUuXG5cbk15IGZvY3VzIHNob3VsZCBiZSBvbiBgZGFtb25fc2V0X3JlZ2lvbnNgIGFuZCBgZGFtb25fc3lzZnNfc2V0X3JlZ2lvbnNgLCBrZWVwaW5nIGluIG1pbmQgdGhlIGNvbmZpZ3VyYXRpb25zIGludm9sdmVkLiBJJ2xsIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSBmdXp6aW5nIGNvbmZpZ3VyYXRpb24gY292ZXJzIGBEQU1PTmAsIGBEQU1PTl9TWVNGU2AsIHRoYXQncyBhIGdpdmVuLiBCdXQgSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIG90aGVyIHJlbGV2YW50IGNvbmZpZ3VyYXRpb25zLCBqdXN0IHRvIGJlIHRob3JvdWdoLlxuXG5BbHJpZ2h0LCBhIHF1aWNrIGxvb2sgcmV2ZWFscyBgREFNT05fVkFERFJgIGFuZCBgREFNT05fUEFERFJgLCB0aG9zZSBkZWFsIHdpdGggdmlydHVhbCBhbmQgcGh5c2ljYWwgYWRkcmVzcyBzcGFjZXMsIHJlc3BlY3RpdmVseS4gRGVmaW5pdGVseSB3b3J0aCBpbmNsdWRpbmcsIGV4cGFuZGluZyB0aGUgY292ZXJhZ2UgZm9yIHZpcnR1YWwgYW5kIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2VzLiBTbyB0aGUgY29uZmlnIGxpc3Qgd2lsbCBiZSBgREFNT05gLCBgREFNT05fU1lTRlNgLCBgREFNT05fVkFERFJgLCBhbmQgYERBTU9OX1BBRERSYC5cblxuSSdsbCBxdWlja2x5IGRvdWJsZS1jaGVjayB0aGF0IGBkYW1vbl9zZXRfcmVnaW9uc2AgaW1wbGVtZW50YXRpb24gaW4gYG1tL2RhbW9uL2NvcmUuY2AganVzdCB0byBzb2xpZGlmeSBteSB1bmRlcnN0YW5kaW5nLiBUaGF0J3MgYSBrZXkgZnVuY3Rpb24gYW5kIHdvcnRoIGFub3RoZXIgZ2xhbmNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1NDgwLCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDE3OjE1OjI0LjI2NDE0NzYzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzQ3NzA0ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGFtb25fc2V0X3JlZ2lvbnNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibW0vZGFtb24vY29yZS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL2RhbW9uL2NvcmUuYz0zMjE9c3RhdGljIGludCBkYW1vbl9maWxsX3JlZ2lvbnNfaG9sZXMoc3RydWN0IGRhbW9uX3JlZ2lvbiAqZmlyc3QsXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMzQyLS8qXFxubW0vZGFtb24vY29yZS5jOjM0MzogKiBkYW1vbl9zZXRfcmVnaW9ucygpIC0gU2V0IHJlZ2lvbnMgb2YgYSB0YXJnZXQgZm9yIGdpdmVuIGFkZHJlc3MgcmFuZ2VzLlxcbm1tL2RhbW9uL2NvcmUuYy0zNDQtICogQHQ6XFx0XFx0dGhlIGdpdmVuIHRhcmdldC5cXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0zNTMtICovXFxubW0vZGFtb24vY29yZS5jOjM1NDppbnQgZGFtb25fc2V0X3JlZ2lvbnMoc3RydWN0IGRhbW9uX3RhcmdldCAqdCwgc3RydWN0IGRhbW9uX2FkZHJfcmFuZ2UgKnJhbmdlcyxcXG5tbS9kYW1vbi9jb3JlLmMtMzU1LVxcdFxcdHVuc2lnbmVkIGludCBucl9yYW5nZXMsIHVuc2lnbmVkIGxvbmcgbWluX3JlZ2lvbl9zeilcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYz0xMzU0PXN0YXRpYyBpbnQgZGFtb25fY29tbWl0X3RhcmdldF9yZWdpb25zKHN0cnVjdCBkYW1vbl90YXJnZXQgKmRzdCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0xMzcxLVxcdFxcdHJhbmdlc1tpKytdID0gc3JjX3JlZ2lvbi1cXHUwMDNlYXI7XFxubW0vZGFtb24vY29yZS5jOjEzNzI6XFx0ZXJyID0gZGFtb25fc2V0X3JlZ2lvbnMoZHN0LCByYW5nZXMsIGksIHNyY19taW5fcmVnaW9uX3N6KTtcXG5tbS9kYW1vbi9jb3JlLmMtMTM3My1cXHRrZnJlZShyYW5nZXMpO1xcbi0tXFxubW0vZGFtb24vY29yZS5jPTM3MDM9aW50IGRhbW9uX3NldF9yZWdpb25fc3lzdGVtX3JhbXNfZGVmYXVsdChzdHJ1Y3QgZGFtb25fdGFyZ2V0ICp0LFxcbi0tXFxubW0vZGFtb24vY29yZS5jLTM3MTctXFx0YWRkcl9yYW5nZS5lbmQgPSAqZW5kO1xcbm1tL2RhbW9uL2NvcmUuYzozNzE4OlxcdHJldHVybiBkYW1vbl9zZXRfcmVnaW9ucyh0LCBcXHUwMDI2YWRkcl9yYW5nZSwgMSwgbWluX3JlZ2lvbl9zeik7XFxubW0vZGFtb24vY29yZS5jLTM3MTktfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QxNzoxNToyNC40OTg5Mjc3OThaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQwMjg0MTc1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgY2hhbmdlcywgdmlld2VkIHRocm91Z2ggdGhlIGxlbnMgb2YgbXkgZXhwZXJ0aXNlOlxuXG4qKkRBTU9OIFJlZ2lvbiBTZXR0aW5nOiBBIFRhcmdldGVkIEFkanVzdG1lbnQqKlxuXG5SaWdodCwgc28gd2UncmUgdGFsa2luZyBhYm91dCBhIGZvY3VzZWQgbW9kaWZpY2F0aW9uIHdpdGhpbiBgZGFtb25fc2V0X3JlZ2lvbnNgLiBUaGUgY2hhbmdlIGl0c2VsZiBzZWVtcyBzdHJhaWdodGZvcndhcmQg4oCTIGEgbmV3IGBXb3J0aEZ1enppbmc9dHJ1ZWAgZmxhZyBiZWluZyBzZXQuIFRoaXMgaXMgaW50ZXJlc3RpbmcuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGlzIGlzIGxpa2VseSBhIHNpZ25hbCB0byBzb21lIGRvd25zdHJlYW0gY29tcG9uZW50LCBwZXJoYXBzIHRoZSBmdXp6aW5nIGVuZ2luZSBpdHNlbGYsIG9yIGEgdGVzdCBoYXJuZXNzLCBpbmRpY2F0aW5nIHRoYXQgdGhpcyBwYXJ0aWN1bGFyIHJlZ2lvbiBzZXR0aW5nIGlzIGEgZ29vZCBjYW5kaWRhdGUgZm9yLCBvciAqZGVzZXJ2ZXMqLCBmdXp6aW5nLiBJdOKAmXMgYSB2ZXJ5IHRhcmdldGVkIG9wdGltaXphdGlvbiwgd2hpY2ggaXMga2V5LiBUaGUgZm9jdXMgaXMgc3BlY2lmaWNhbGx5IG9uIGBkYW1vbl9zZXRfcmVnaW9uc2Ag4oCTIHRoYXTigJlzIHRoZSBmdW5jdGlvbiBvZiBpbnRlcmVzdC5cblxuVGhlIGVuYWJsaW5nIGNvbmZpZ3VyYXRpb25zLCBgREFNT05gLCBgREFNT05fU1lTRlNgLCBgREFNT05fVkFERFJgLCBhbmQgYERBTU9OX1BBRERSYCwgYXJlIGNydWNpYWwgY29udGV4dC4gVGhleSB0ZWxsIG1lIHdlJ3JlIGRlYWxpbmcgd2l0aCBEQU1PTidzIGNvcmUgZnVuY3Rpb25hbGl0eSwgbGlrZWx5IGludm9sdmluZyBzeXN0ZW0tbGV2ZWwgbW9uaXRvcmluZywgZmlsZXN5c3RlbSBpbnRlZ3JhdGlvbiwgYW5kIHZpcnR1YWwvcGh5c2ljYWwgYWRkcmVzcyBzcGFjZSBtYW5hZ2VtZW50LiBUaGUgcHJlc2VuY2Ugb2YgdGhlc2UgY29uZmlndXJhdGlvbnMgc3Ryb25nbHkgc3VnZ2VzdHMgdGhpcyBpcyBwYXJ0IG9mIGEgbGFyZ2VyIGVmZm9ydCB0byBpbXByb3ZlIERBTU9OJ3Mgcm9idXN0bmVzcywgcGVyaGFwcyB0aHJvdWdoIGlucHV0IHZhbGlkYXRpb24gaW4gdGhlIHN5c2ZzIGludGVyZmFjZS5cblxuSSdtIG5vdyB0aGlua2luZyB0aGlzIG1pZ2h0IGJlIGNvbm5lY3RlZCB0byBhbiBlYXJsaWVyIGRpc2N1c3Npb24gYWJvdXQgcG90ZW50aWFsIGNvcm5lciBjYXNlcyBvciB1bmV4cGVjdGVkIGlucHV0cyB0aGF0IGNvdWxkIGFyaXNlIGZyb20gdGhlIHN5c3RlbSwgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBzeXNmcy1wcm92aWRlZCByZWdpb24gZGVmaW5pdGlvbnMuIEJ5IGZsYWdnaW5nIHNwZWNpZmljIGNhbGxzIHRvIGBkYW1vbl9zZXRfcmVnaW9uc2AgYXMgXCJmdXp6LXdvcnRoeSxcIiB3ZSdyZSBwcm9iYWJseSBhaW1pbmcgdG8gdW5jb3ZlciBhbnkgc3VjaCB2dWxuZXJhYmlsaXRpZXMgb3IgdW5leHBlY3RlZCBiZWhhdmlvciB1bmRlciBzdHJlc3MgdGVzdGluZy5cblxuRmluYWxseSwgdGhlIG1lbnRpb24gb2YgXCJzZXQtcmVzdWx0c1wiIHN1Z2dlc3RzIGEgbG9nZ2luZyBvciBkYXRhIGNvbGxlY3Rpb24gYXNwZWN0IG9mIHRoZSBpbXBsZW1lbnRhdGlvbi4gV2UgcHJvYmFibHkgd2FudCB0byBzZWUgd2hhdCBoYXBwZW5zIHdoZW4gdGhlIHJlZ2lvbiBzZXR0aW5ncyBhcmUgc2VudCBmb3IgZnV6emluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjUzMSwiT3V0cHV0VG9rZW5zIjoxMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo3OCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QxNzoxNToyOS45MDE3NzIxMTJaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDExMzcyMiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiREFNT05cIixcbiAgICBcIkRBTU9OX1NZU0ZTXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9zZXRfcmVnaW9uc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgdmFsaWRhdGlvbiBsb2dpYyB0byBgZGFtb25fc2V0X3JlZ2lvbnNgIHRvIHJlamVjdCBhZGRyZXNzIHJhbmdlcyB3aGVyZSBzdGFydCBcXHUwMDNlPSBlbmQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgREFNT04gY29yZSBsb2dpYywgcmVhY2hhYmxlIGZyb20gdXNlci1zcGFjZSB2aWEgdGhlIERBTU9OIHN5c2ZzIGludGVyZmFjZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTlwiLFxuICAgIFwiREFNT05fU1lTRlNcIixcbiAgICBcIkRBTU9OX1ZBRERSXCIsXG4gICAgXCJEQU1PTl9QQUREUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRhbW9uX3NldF9yZWdpb25zXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyB2YWxpZGF0aW9uIGxvZ2ljIHRvIGBkYW1vbl9zZXRfcmVnaW9uc2AgdG8gcmVqZWN0IGFkZHJlc3MgcmFuZ2VzIHdoZXJlIHN0YXJ0IFxcdTAwM2U9IGVuZC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBEQU1PTiBjb3JlIGxvZ2ljLCByZWFjaGFibGUgZnJvbSB1c2VyLXNwYWNlIHZpYSB0aGUgREFNT04gc3lzZnMgaW50ZXJmYWNlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowllltd[1] Phase: Succeeded StartedAt: 2026-06-27 17:17:05 +0000 UTC FinishedAt: 2026-06-27 17:17:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-27 17:17:05 +0000 UTC FinishedAt: 2026-06-27 17:17:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2] Phase: Succeeded StartedAt: 2026-06-27 17:17:05 +0000 UTC FinishedAt: 2026-06-27 21:09:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-27 17:17:05 +0000 UTC FinishedAt: 2026-06-27 21:09:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-27 17:17:05 +0000 UTC FinishedAt: 2026-06-27 17:17:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-27 17:17:05 +0000 UTC FinishedAt: 2026-06-27 17:17:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowllltd/series-workflowllltd-convert-artifact-2578482045/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-27 17:17:29 +0000 UTC FinishedAt: 2026-06-27 17:40:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-27 17:17:29 +0000 UTC FinishedAt: 2026-06-27 17:40:18 +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:*c31138e3-48f4-48a1-856e-83335fa6d3f2,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-workflowllltd/series-workflowllltd-convert-artifact-2578482045/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": "fa9e2a92-132c-4471-b39e-5d41df5313c6", "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-workflowllltd/series-workflowllltd-build-action-3300224179/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-27 17:17:29 +0000 UTC FinishedAt: 2026-06-27 17:38:43 +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:*c31138e3-48f4-48a1-856e-83335fa6d3f2,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-workflowllltd/series-workflowllltd-convert-artifact-2578482045/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": "fa9e2a92-132c-4471-b39e-5d41df5313c6", "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-workflowllltd/series-workflowllltd-build-action-3300224179/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-27 17:40:18 +0000 UTC FinishedAt: 2026-06-27 17:40:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-27 17:40:18 +0000 UTC FinishedAt: 2026-06-27 17:40:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-27 17:40:18 +0000 UTC FinishedAt: 2026-06-27 17:40:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-27 17:40:18 +0000 UTC FinishedAt: 2026-06-27 17:40:24 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowllltd/series-workflowllltd-convert-artifact-4063132888/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-27 17:40:28 +0000 UTC FinishedAt: 2026-06-27 17:42:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-27 17:40:28 +0000 UTC FinishedAt: 2026-06-27 17:42:34 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fa9e2a92-132c-4471-b39e-5d41df5313c6,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-workflowllltd/series-workflowllltd-build-action-3300224179/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-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-27 17:42:44 +0000 UTC FinishedAt: 2026-06-27 17:42:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-27 17:42:44 +0000 UTC FinishedAt: 2026-06-27 17:42:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-27 17:42:44 +0000 UTC FinishedAt: 2026-06-27 18:03:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-27 17:42:44 +0000 UTC FinishedAt: 2026-06-27 18:03:55 +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:*c31138e3-48f4-48a1-856e-83335fa6d3f2,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-workflowllltd/series-workflowllltd-convert-artifact-4063132888/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": "1b057c10-8972-4962-9718-142957f141ac", "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-workflowllltd/series-workflowllltd-build-action-1524246084/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-27 17:42:44 +0000 UTC FinishedAt: 2026-06-27 18:03:45 +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:*c31138e3-48f4-48a1-856e-83335fa6d3f2,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-workflowllltd/series-workflowllltd-convert-artifact-4063132888/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": "1b057c10-8972-4962-9718-142957f141ac", "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-workflowllltd/series-workflowllltd-build-action-1524246084/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-27 18:03:55 +0000 UTC FinishedAt: 2026-06-27 18:03:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-27 18:03:55 +0000 UTC FinishedAt: 2026-06-27 18:03:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-27 18:03:55 +0000 UTC FinishedAt: 2026-06-27 18:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-27 18:03:55 +0000 UTC FinishedAt: 2026-06-27 18:05:56 +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:*1b057c10-8972-4962-9718-142957f141ac,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-workflowllltd/series-workflowllltd-build-action-1524246084/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-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-27 18:06:06 +0000 UTC FinishedAt: 2026-06-27 21:09:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-27 18:06:06 +0000 UTC FinishedAt: 2026-06-27 21:09:59 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},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:*fa9e2a92-132c-4471-b39e-5d41df5313c6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*1b057c10-8972-4962-9718-142957f141ac,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-workflowllltd/series-workflowllltd-build-action-3300224179/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-workflowllltd/series-workflowllltd-build-action-1524246084/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-27 18:06:06 +0000 UTC FinishedAt: 2026-06-27 18:06:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-27 18:06:06 +0000 UTC FinishedAt: 2026-06-27 18:06:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},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-workflowllltd/series-workflowllltd-convert-artifact-3428226993/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-27 18:06:06 +0000 UTC FinishedAt: 2026-06-27 18:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-27 18:06:06 +0000 UTC FinishedAt: 2026-06-27 18:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-27 18:06:06 +0000 UTC FinishedAt: 2026-06-27 18:06:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-27 18:06:16 +0000 UTC FinishedAt: 2026-06-27 21:09:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflowllltd[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["damon_set_regions"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"189ce3c81f8188fb737d59a8a8784f074e830238","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_SYSFS","DAMON_VADDR","DAMON_PADDR"],"series_id":"c40bc102-fd46-4e62-9e25-e7189b6dd2e4","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-27 18:06:16 +0000 UTC FinishedAt: 2026-06-27 21:09:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*fa9e2a92-132c-4471-b39e-5d41df5313c6,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*1b057c10-8972-4962-9718-142957f141ac,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-workflowllltd/series-workflowllltd-build-action-3300224179/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-workflowllltd/series-workflowllltd-build-action-1524246084/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-workflowllltd/series-workflowllltd-convert-artifact-3428226993/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,}