Name: series-workflowk4wwf Phase: Failed StartedAt: 2026-08-21 18:40:36 +0000 UTC FinishedAt: 2026-08-21 18:43:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk4wwf[0] Phase: Succeeded StartedAt: 2026-08-21 18:40:36 +0000 UTC FinishedAt: 2026-08-21 18:43:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk4wwf[0].run-triage Phase: Succeeded StartedAt: 2026-08-21 18:40:36 +0000 UTC FinishedAt: 2026-08-21 18:43:34 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2UgdGhhdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvciBvciBzcGVjaWZpYyBoYXJkd2FyZS4gSXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGZ1enplZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAxODo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI2NzNlODk5NDhlNmFiOTBhNWE3NzkwZDM2NTI2NzkzMTVlYmNkNzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAxODo0Mjo1NiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXG5pbmRleCBlZDlhZjMxNGU0ZWRlLi5mOTJiMmQwYmY5MjZlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXG5AQCAtMTgyLDYgJiM0MzsxODIsNyBAQCBzdGF0aWMgaW50IG1hbmFfZ2RfcXVlcnlfbWF4X3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiBcdHN0cnVjdCBnZG1hX3F1ZXJ5X21heF9yZXNvdXJjZXNfcmVzcCByZXNwID0ge307XG4gXHRzdHJ1Y3QgZ2RtYV9nZW5lcmFsX3JlcSByZXEgPSB7fTtcbiBcdHVuc2lnbmVkIGludCBtYXhfbnVtX3F1ZXVlcztcbiYjNDM7XHR1bnNpZ25lZCBpbnQgbXNpeF92ZWNfY291bnQ7XG4gXHR1OCBibV9ob3N0bW9kZTtcbiBcdHUxNiBudW1fcG9ydHM7XG4gXHRpbnQgZXJyO1xuQEAgLTIxOCw2ICYjNDM7MjE5LDI0IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0XHRnYy1cdTAwM2VudW1fbXNpeF91c2FibGUgPSBtaW4ocmVzcC5tYXhfbXNpeCwgbnVtX29ubGluZV9jcHVzKCkgJiM0MzsgMSk7XG4gXHR9XG4gXG4mIzQzO1x0LyogTVNJLVggdmVjdG9ycyBhcmUgYWxsb2NhdGVkIGJ5IGluZGV4IGludG8gdGhlIGRldmljZSBNU0ktWCB0YWJsZSwgc29cbiYjNDM7XHQgKiBuZXZlciBhc2sgZm9yIG1vcmUgdGhhbiB0aGUgdGFibGUgaG9sZHMuIEl0IGNhbiBiZSBzbWFsbGVyIHRoYW4gYm90aFxuJiM0MztcdCAqIHJlc3AubWF4X21zaXggYW5kIHRoZSBDUFUgY291bnQuXG4mIzQzO1x0ICovXG4mIzQzO1x0ZXJyID0gcGNpX21zaXhfdmVjX2NvdW50KHBkZXYpO1xuJiM0MztcdGlmIChlcnIgXHUwMDNjPSAwKSB7XG4mIzQzO1x0XHRkZXZfZXJyKGdjLVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIHF1ZXJ5IE1TSS1YIHRhYmxlIHNpemU6ICVkXFxuXCYjMzQ7LCBlcnIpO1xuJiM0MztcdFx0cmV0dXJuIGVyciBcdTAwM2MgMCA/IGVyciA6IC1FTk9TUEM7XG4mIzQzO1x0fVxuJiM0MztcdG1zaXhfdmVjX2NvdW50ID0gZXJyO1xuJiM0MztcbiYjNDM7XHRpZiAoZ2MtXHUwMDNlbnVtX21zaXhfdXNhYmxlIFx1MDAzZSBtc2l4X3ZlY19jb3VudCkge1xuJiM0MztcdFx0ZGV2X2luZm8oZ2MtXHUwMDNlZGV2LFxuJiM0MztcdFx0XHQgXCYjMzQ7TGltaXRpbmcgTVNJLVggdmVjdG9ycyBmcm9tICV1IHRvIHRhYmxlIHNpemUgJXVcXG5cJiMzNDssXG4mIzQzO1x0XHRcdCBnYy1cdTAwM2VudW1fbXNpeF91c2FibGUsIG1zaXhfdmVjX2NvdW50KTtcbiYjNDM7XHRcdGdjLVx1MDAzZW51bV9tc2l4X3VzYWJsZSA9IG1zaXhfdmVjX2NvdW50O1xuJiM0MztcdH1cbiYjNDM7XG4gXHRpZiAoZ2MtXHUwMDNlbnVtX21zaXhfdXNhYmxlIFx1MDAzYz0gMSlcbiBcdFx0cmV0dXJuIC1FTk9TUEM7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb3NvZnQgQXp1cmUgTmV0d29yayBBZGFwdGVyIChNQU5BKSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlIHRoYXQgcmVxdWlyZXMgdGhlIEF6dXJlIGh5cGVydmlzb3Igb3Igc3BlY2lmaWMgaGFyZHdhcmUuIEl0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIG1lYW5pbmdmdWxseSBmdXp6ZWQgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyNjczZTg5OTQ4ZTZhYjkwYTVhNzc5MGQzNjUyNjc5MzE1ZWJjZDc3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgMjEgMTg6NDI6NTYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jCmluZGV4IGVkOWFmMzE0ZTRlZGUuLmY5MmIyZDBiZjkyNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jCkBAIC0xODIsNiAmIzQzOzE4Miw3IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCXN0cnVjdCBnZG1hX3F1ZXJ5X21heF9yZXNvdXJjZXNfcmVzcCByZXNwID0ge307CiAJc3RydWN0IGdkbWFfZ2VuZXJhbF9yZXEgcmVxID0ge307CiAJdW5zaWduZWQgaW50IG1heF9udW1fcXVldWVzOwomIzQzOwl1bnNpZ25lZCBpbnQgbXNpeF92ZWNfY291bnQ7CiAJdTggYm1faG9zdG1vZGU7CiAJdTE2IG51bV9wb3J0czsKIAlpbnQgZXJyOwpAQCAtMjE4LDYgJiM0MzsyMTksMjQgQEAgc3RhdGljIGludCBtYW5hX2dkX3F1ZXJ5X21heF9yZXNvdXJjZXMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJCWdjLSZndDtudW1fbXNpeF91c2FibGUgPSBtaW4ocmVzcC5tYXhfbXNpeCwgbnVtX29ubGluZV9jcHVzKCkgJiM0MzsgMSk7CiAJfQogCiYjNDM7CS8qIE1TSS1YIHZlY3RvcnMgYXJlIGFsbG9jYXRlZCBieSBpbmRleCBpbnRvIHRoZSBkZXZpY2UgTVNJLVggdGFibGUsIHNvCiYjNDM7CSAqIG5ldmVyIGFzayBmb3IgbW9yZSB0aGFuIHRoZSB0YWJsZSBob2xkcy4gSXQgY2FuIGJlIHNtYWxsZXIgdGhhbiBib3RoCiYjNDM7CSAqIHJlc3AubWF4X21zaXggYW5kIHRoZSBDUFUgY291bnQuCiYjNDM7CSAqLwomIzQzOwllcnIgPSBwY2lfbXNpeF92ZWNfY291bnQocGRldik7CiYjNDM7CWlmIChlcnIgJmx0Oz0gMCkgewomIzQzOwkJZGV2X2VycihnYy0mZ3Q7ZGV2LCAmIzM0O0ZhaWxlZCB0byBxdWVyeSBNU0ktWCB0YWJsZSBzaXplOiAlZFxuJiMzNDssIGVycik7CiYjNDM7CQlyZXR1cm4gZXJyICZsdDsgMCA/IGVyciA6IC1FTk9TUEM7CiYjNDM7CX0KJiM0MzsJbXNpeF92ZWNfY291bnQgPSBlcnI7CiYjNDM7CiYjNDM7CWlmIChnYy0mZ3Q7bnVtX21zaXhfdXNhYmxlICZndDsgbXNpeF92ZWNfY291bnQpIHsKJiM0MzsJCWRldl9pbmZvKGdjLSZndDtkZXYsCiYjNDM7CQkJICYjMzQ7TGltaXRpbmcgTVNJLVggdmVjdG9ycyBmcm9tICV1IHRvIHRhYmxlIHNpemUgJXVcbiYjMzQ7LAomIzQzOwkJCSBnYy0mZ3Q7bnVtX21zaXhfdXNhYmxlLCBtc2l4X3ZlY19jb3VudCk7CiYjNDM7CQlnYy0mZ3Q7bnVtX21zaXhfdXNhYmxlID0gbXNpeF92ZWNfY291bnQ7CiYjNDM7CX0KJiM0MzsKIAlpZiAoZ2MtJmd0O251bV9tc2l4X3VzYWJsZSAmbHQ7PSAxKQogCQlyZXR1cm4gLUVOT1NQQzsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAxODo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzYzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMzI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1BTkEgRHJpdmVyIFBhdGNoIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNgLiBJdCBzZWVtcyB0aGV5JiMzOTtyZSBhZGRpbmcgYSBjaGVjayBmb3IgYHBjaV9tc2l4X3ZlY19jb3VudChwZGV2KWAgaW4gYG1hbmFfZ2RfcXVlcnlfbWF4X3Jlc291cmNlcygpYCBhbmQgbGltaXRpbmcgYGdjLSZndDtudW1fbXNpeF91c2FibGVgIGFjY29yZGluZ2x5LiBTdGFuZGFyZCBzdHVmZiwgZW5zdXJpbmcgcmVzb3VyY2UgbGltaXRzIGFyZSByZXNwZWN0ZWQuCgpNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IElzIHRoaXMgZXZlbiByZWxldmFudCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBUaGlzIGlzIGEgTUFOQSBkcml2ZXIsIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIsIHNvIGl0JiMzOTtzIGEgc3BlY2lmaWMgcGllY2Ugb2YgaGFyZHdhcmUuIEkga25vdyB0aGlzIGZyb20gZXhwZXJpZW5jZS4gVGhlIGluaXRpYWwgYXNzdW1wdGlvbiBpcyB0aGlzIHdvbiYjMzk7dCBiZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBJdCYjMzk7cyBBenVyZSBzcGVjaWZpYyBoYXJkd2FyZSwgYW5kIEkmIzM5O2QgYmUgc3VycHJpc2VkIGlmIGl0IHdlcmUuCgpXYWl0LCBpcyB0aGVyZSAqYW55KiB3YXkgdG8gdGVzdCB0aGlzIGluIFFFTVU/IFByb2JhYmx5IG5vdC4gSXQmIzM5O3MgYSBQQ0kgZGV2aWNlLCBhbmQgSSYjMzk7ZCBndWVzcyBpdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvci4KCkhhbmcgb24uLi4gdGhlIGNvbnRleHQgbWVudGlvbnMgKnZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzKiB0aGF0ICphcmVuJiMzOTt0KiBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0JiMzOTtzIGEgcGVyZmVjdCBtYXRjaCEgTUFOQSBpcyBhIFNtYXJ0TklDIC8gdmlydHVhbCBOSUMsIHJpZ2h0PyBBbmQgaXQmIzM5O3MgdXNlZCAqd2l0aGluKiBBenVyZS4gSXQmIzM5O3Mgbm90IGEgZ2VuZXJpYyBkZXZpY2UuIFRoaXMgY29uZmlybXMgbXkgaW5pdGlhbCB0aG91Z2h0LiBJdCBuZWVkcyBzcGVjaWFsaXplZCBoYXJkd2FyZSBvciB0aGUgQXp1cmUgaHlwZXJ2aXNvci4KCk9rYXksIGlzIHRoaXMgd29ydGggZnV6emluZz8gQmFzZWQgb24gdGhpcywgaXQgc2VlbXMgcG9pbnRsZXNzLiBJZiBpdCYjMzk7cyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSwgYW5kIGl0JiMzOTtzIG5vdCBlbXVsYXRlZCwgdGhlbiB0aGVyZSYjMzk7cyBubyB3YXkgdG8gcmVhY2ggdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC4gV2UgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGVyZSYjMzk7cyAqbm8qIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgTUFOQSB3aXRoaW4gUUVNVS4gTm8sIHRoZXJlJiMzOTtzIG5vdC4KCkxldCYjMzk7cyBkb3VibGUgY2hlY2sgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL0tjb25maWdgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1JQ1JPU09GVF9NQU5BJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE1MgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCBzcGVha2luZyBhcyB0aGUgJiMzOTtleHBlcnQmIzM5OyB1c2VyOgoKKipEaXJlY3RvcnkgQ2hlY2sg4oCTIEEgUXVpY2sgU2NhbioqCgpBbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIGluLCBpdOKAmXMgYSBnb29kIGhhYml0IHRvIHRha2UgYSBxdWljayBpbnZlbnRvcnkuIExldCYjMzk7cyBzdGFydCB3aXRoIGEgY2hlY2sgb2YgdGhlIGRpcmVjdG9yeS4gR290dGEgbWFrZSBzdXJlIEkmIzM5O20gaW4gdGhlIHJpZ2h0IHBsYWNlLCB0aGF0IHRoZSBuZWNlc3NhcnkgZmlsZXMgYXJlIHByZXNlbnQsIGFuZCB0aGF0IEkgdW5kZXJzdGFuZCB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUgb2Ygd2hhdCBJJiMzOTttIGRlYWxpbmcgd2l0aC4gSSBkb24mIzM5O3Qgd2FudCB0byB3YXN0ZSB0aW1lIGRvd24gYSByYWJiaXQgaG9sZSBiZWNhdXNlIEkgd2FzIGluIHRoZSB3cm9uZyBmb2xkZXIsIG9yIGhhZCBhIGZpbGUgd2l0aCBhIG1pc2xlYWRpbmcgbmFtZS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIHRoZSB3b3JrZmxvdy4gTWFrZSBzdXJlIHRoYXQgdGhlIGJhc2ljcyBhcmUgY292ZXJlZCwgYW5kIHlvdSYjMzk7cmUgc2V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7Z2RtYV9tYWluLmMmIzM0OywKICAgICYjMzQ7aHdfY2hhbm5lbC5jJiMzNDssCiAgICAmIzM0O21hbmFfYnBmLmMmIzM0OywKICAgICYjMzQ7bWFuYV9lbi5jJiMzNDssCiAgICAmIzM0O21hbmFfZXRodG9vbC5jJiMzNDssCiAgICAmIzM0O3NobV9jaGFubmVsLmMmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MDEKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKldoZXJlJiMzOTtzIHRoZSBLY29uZmlnPyBBIFF1aWNrIENoZWNrcG9pbnQuKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSYjMzk7bSBoaXR0aW5nIGEgcm9hZGJsb2NrLiBJJiMzOTttIGluIHRoZSBtaWRkbGUgb2YgdGhpcyBwcm9qZWN0LCBkZWVwIGluIHRoZSB3ZWVkcyBvZiBjb25maWd1cmF0aW9uLCBhbmQgc3VkZGVubHnigKYgKndhaXQqLiBJJiMzOTttIG1pc3Npbmcgc29tZXRoaW5nIGZ1bmRhbWVudGFsLiBXaGVyZSYjMzk7cyB0aGUgYEtjb25maWdgIGZpbGU/IEl0JiMzOTtzIG5vdCB3aGVyZSBJIGV4cGVjdCBpdCB0byBiZS4gVGhpcyBpc24mIzM5O3QganVzdCBhIG1pbm9yIG92ZXJzaWdodDsgdGhlIEtjb25maWcgaXMgdGhlIGx5bmNocGluLCB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgYWxsIG9mIG15IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgaXQgaXMgdGhlIGtleS4gV2l0aG91dCBpdCwgSSYjMzk7bSBmbHlpbmcgYmxpbmQsIG5hdmlnYXRpbmcgYSBtYXplIHdpdGhvdXQgYSBtYXAuIEkgaGF2ZSB0byBmaW5kIGl0IGltbWVkaWF0ZWx5LiBXaXRob3V0IGl0IEkgYW0gc3VuayEgVGhpcyBjb3VsZCBiZSBhIHRyaXZpYWwgdHlwbywgYSBkaXJlY3RvcnkgbWlzbWF0Y2gsIG9yIGEgbW9yZSBzZXJpb3VzIGlzc3VlIGxpa2UgYSBjb3JydXB0ZWQgYnVpbGQgZW52aXJvbm1lbnQuIExldCBtZSBydW4gYSBkaXJlY3RvcnkgbGlzdGluZyBhbmQgZ3JlcCBmb3IgJiMzOTtLY29uZmlnJiMzOTsuLi4gSSBuZWVkIHRvIGdldCB0aGlzIHNvcnRlZCBiZWZvcmUgSSBjYW4gcHJvY2VlZCBhIHNpbmdsZSBzdGVwIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1JQ1JPU09GVF9NQU5BJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L0tjb25maWc9MTY9aWYgTkVUX1ZFTkRPUl9NSUNST1NPRlRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L0tjb25maWc6MTg6Y29uZmlnIE1JQ1JPU09GVF9NQU5BXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O01pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAxODo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzY5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTUFOQSBEcml2ZXIgYW5kIGl0cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBNQU5BLCB0aGF0JiMzOTtzIHRoZSAmIzM0O01pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIuJiMzNDsgUmlnaHQsIEkgcmVtZW1iZXIgc2VlaW5nIHRoYXQgcG9wIHVwLiBBIFBDSSBkZXZpY2UsIGdvdCBpdC4gU2luY2UgaXQmIzM5O3MgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlLCBhIGRlZGljYXRlZCBQQ0llIGRldmljZSB0byBiZSBwcmVjaXNlLCBhbmQgbm90IHNvbWV0aGluZyBlbXVsYXRlZCB3aXRoaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LCBJIGNhbiBpbW1lZGlhdGVseSBydWxlIG91dCB1c2luZyBzeXprYWxsZXIgaW4gYSBzdHJhaWdodGZvcndhcmQgbWFubmVyLiBUaGF0IG1lYW5zIHN0YW5kYXJkIHN5emthbGxlciBzZXR1cCB3b24mIzM5O3QgYmUgYWJsZSB0byByZWFjaCBpdC4gQ29uc2VxdWVudGx5LCBubyBnbyBmb3IgZnV6emluZyBpbiB0aGUgY29udmVudGlvbmFsIHNlbnNlLiBTbywgYFdvcnRoRnV6emluZz1mYWxzZWAgaXMgdGhlIGNvcnJlY3QgY2FsbCBoZXJlLCBhdCBsZWFzdCB3aXRoIHdoYXQgSSBrbm93IHNvIGZhci4gUXVpY2sgY2hlY2sgdG8gY29uZmlybSBpdCYjMzk7cyBhIFBDSSBkcml2ZXIgaXMgaW4gb3JkZXIgdGhvdWdoOyB3YW50IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYz0yNzM3PXN0YXRpYyBpbnQgX19pbml0IG1hbmFfZHJpdmVyX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYy0yNzQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmM6Mjc0NzpcdGVyciA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bWFuYV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmMtMjc0OC1cdGlmIChlcnIpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE5NgoJCQkJCQkJb3V0cHV0OiA4OAoJCQkJCQkJdGhvdWdodHM6IDU0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKlBDSSBEcml2ZXIgQXNzZXNzbWVudCBhbmQgRnV6emluZyBGZWFzaWJpbGl0eSoqCgpBbHJpZ2h0LCB5ZXAsIGNvbmZpcm1lZC4gVGhpcyBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGNhdGVnb3JpemUgaXQgYXMgc29tZXRoaW5nIHRoYXQmIzM5O3MgbGlrZWx5ICpub3QqIHdvcnRoIGEgc3RhbmRhcmQgZnV6emluZyBlZmZvcnQsIGF0IGxlYXN0IG5vdCB3aXRob3V0IHNvbWUgdmVyeSBzaWduaWZpY2FudCBjYXZlYXRzLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIsIGFuZCB0aGF0JiMzOTtzIGEgcHJldHR5IGNsZWFyIGluZGljYXRvciBvZiBhIHNwZWNpYWxpemVkIHBpZWNlIG9mIGtpdC4gR2l2ZW4gdGhhdCBpdCYjMzk7cyB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXIsIG15IGFuYWx5c2lzIHBvaW50cyB0b3dhcmRzIGEgdmVyeSB0YXJnZXRlZCBlbnZpcm9ubWVudCBkZXBlbmRlbmN5LiBUaGUgaGFyZHdhcmUgYW5kIGh5cGVydmlzb3IgcmVxdWlyZW1lbnRzIHRoYXQgaXQmIzM5O3MgZGVzaWduZWQgdG8gaW50ZXJmYWNlIHdpdGggYXJlbiYjMzk7dCBlYXNpbHkgZW11bGF0ZWQgb3IgcmVwcm9kdWNlZCB3aXRoaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50IOKAkyBhbmQgdGhhdCYjMzk7cyB0aGUgc3RpY2tpbmcgcG9pbnQuIFRyeWluZyB0byBnZXQgdGhpcyB0aGluZyB0byBiZWhhdmUgc2Vuc2libHksIGFuZCB0cmlnZ2VyIHVzZWZ1bCBmdXp6aW5nIGNvdmVyYWdlIGluIGEgZ2VuZXJpYyBzZXR0aW5nIGlzIGdvaW5nIHRvIGJlIGFuIGV4ZXJjaXNlIGluIGZ1dGlsaXR5LiBUaGVyZWZvcmUsIEkmIzM5O20gZ29pbmcgdG8gcmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZS4gVGhlIHVuZGVybHlpbmcgaW5mcmFzdHJ1Y3R1cmUgc2ltcGx5IHdvbiYjMzk7dCBwbGF5IGJhbGwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2UgdGhhdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvciBvciBzcGVjaWZpYyBoYXJkd2FyZS4gSXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGZ1enplZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2UgdGhhdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvciBvciBzcGVjaWZpYyBoYXJkd2FyZS4gSXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGZ1enplZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDE4OjQyOjU3LjA3NTY3NTk3NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MTgzMjUxNTYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2UgdGhhdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvciBvciBzcGVjaWZpYyBoYXJkd2FyZS4gSXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGZ1enplZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDI6NTcuMDc1NjgzMDk0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTA5MzQ2MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyNjczZTg5OTQ4ZTZhYjkwYTVhNzc5MGQzNjUyNjc5MzE1ZWJjZDc3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgQXVnIDIxIDE4OjQyOjU2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNcXG5pbmRleCBlZDlhZjMxNGU0ZWRlLi5mOTJiMmQwYmY5MjZlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNcXG5AQCAtMTgyLDYgKzE4Miw3IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiBcXHRzdHJ1Y3QgZ2RtYV9xdWVyeV9tYXhfcmVzb3VyY2VzX3Jlc3AgcmVzcCA9IHt9O1xcbiBcXHRzdHJ1Y3QgZ2RtYV9nZW5lcmFsX3JlcSByZXEgPSB7fTtcXG4gXFx0dW5zaWduZWQgaW50IG1heF9udW1fcXVldWVzO1xcbitcXHR1bnNpZ25lZCBpbnQgbXNpeF92ZWNfY291bnQ7XFxuIFxcdHU4IGJtX2hvc3Rtb2RlO1xcbiBcXHR1MTYgbnVtX3BvcnRzO1xcbiBcXHRpbnQgZXJyO1xcbkBAIC0yMTgsNiArMjE5LDI0IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiBcXHRcXHRnYy1cXHUwMDNlbnVtX21zaXhfdXNhYmxlID0gbWluKHJlc3AubWF4X21zaXgsIG51bV9vbmxpbmVfY3B1cygpICsgMSk7XFxuIFxcdH1cXG4gXFxuK1xcdC8qIE1TSS1YIHZlY3RvcnMgYXJlIGFsbG9jYXRlZCBieSBpbmRleCBpbnRvIHRoZSBkZXZpY2UgTVNJLVggdGFibGUsIHNvXFxuK1xcdCAqIG5ldmVyIGFzayBmb3IgbW9yZSB0aGFuIHRoZSB0YWJsZSBob2xkcy4gSXQgY2FuIGJlIHNtYWxsZXIgdGhhbiBib3RoXFxuK1xcdCAqIHJlc3AubWF4X21zaXggYW5kIHRoZSBDUFUgY291bnQuXFxuK1xcdCAqL1xcbitcXHRlcnIgPSBwY2lfbXNpeF92ZWNfY291bnQocGRldik7XFxuK1xcdGlmIChlcnIgXFx1MDAzYz0gMCkge1xcbitcXHRcXHRkZXZfZXJyKGdjLVxcdTAwM2VkZXYsIFxcXCJGYWlsZWQgdG8gcXVlcnkgTVNJLVggdGFibGUgc2l6ZTogJWRcXFxcblxcXCIsIGVycik7XFxuK1xcdFxcdHJldHVybiBlcnIgXFx1MDAzYyAwID8gZXJyIDogLUVOT1NQQztcXG4rXFx0fVxcbitcXHRtc2l4X3ZlY19jb3VudCA9IGVycjtcXG4rXFxuK1xcdGlmIChnYy1cXHUwMDNlbnVtX21zaXhfdXNhYmxlIFxcdTAwM2UgbXNpeF92ZWNfY291bnQpIHtcXG4rXFx0XFx0ZGV2X2luZm8oZ2MtXFx1MDAzZWRldixcXG4rXFx0XFx0XFx0IFxcXCJMaW1pdGluZyBNU0ktWCB2ZWN0b3JzIGZyb20gJXUgdG8gdGFibGUgc2l6ZSAldVxcXFxuXFxcIixcXG4rXFx0XFx0XFx0IGdjLVxcdTAwM2VudW1fbXNpeF91c2FibGUsIG1zaXhfdmVjX2NvdW50KTtcXG4rXFx0XFx0Z2MtXFx1MDAzZW51bV9tc2l4X3VzYWJsZSA9IG1zaXhfdmVjX2NvdW50O1xcbitcXHR9XFxuK1xcbiBcXHRpZiAoZ2MtXFx1MDAzZW51bV9tc2l4X3VzYWJsZSBcXHUwMDNjPSAxKVxcbiBcXHRcXHRyZXR1cm4gLUVOT1NQQztcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDE4OjQyOjU3LjUyNzQyMzQwN1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI2NzMxNDg1NTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlciAoTUFOQSkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSB0aGF0IHJlcXVpcmVzIHRoZSBBenVyZSBoeXBlcnZpc29yIG9yIHNwZWNpZmljIGhhcmR3YXJlLiBJdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZnV6emVkIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyNjczZTg5OTQ4ZTZhYjkwYTVhNzc5MGQzNjUyNjc5MzE1ZWJjZDc3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgMjEgMTg6NDI6NTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXG5pbmRleCBlZDlhZjMxNGU0ZWRlLi5mOTJiMmQwYmY5MjZlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXG5AQCAtMTgyLDYgKzE4Miw3IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0c3RydWN0IGdkbWFfcXVlcnlfbWF4X3Jlc291cmNlc19yZXNwIHJlc3AgPSB7fTtcbiBcdHN0cnVjdCBnZG1hX2dlbmVyYWxfcmVxIHJlcSA9IHt9O1xuIFx0dW5zaWduZWQgaW50IG1heF9udW1fcXVldWVzO1xuK1x0dW5zaWduZWQgaW50IG1zaXhfdmVjX2NvdW50O1xuIFx0dTggYm1faG9zdG1vZGU7XG4gXHR1MTYgbnVtX3BvcnRzO1xuIFx0aW50IGVycjtcbkBAIC0yMTgsNiArMjE5LDI0IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0XHRnYy1cdTAwM2VudW1fbXNpeF91c2FibGUgPSBtaW4ocmVzcC5tYXhfbXNpeCwgbnVtX29ubGluZV9jcHVzKCkgKyAxKTtcbiBcdH1cbiBcbitcdC8qIE1TSS1YIHZlY3RvcnMgYXJlIGFsbG9jYXRlZCBieSBpbmRleCBpbnRvIHRoZSBkZXZpY2UgTVNJLVggdGFibGUsIHNvXG4rXHQgKiBuZXZlciBhc2sgZm9yIG1vcmUgdGhhbiB0aGUgdGFibGUgaG9sZHMuIEl0IGNhbiBiZSBzbWFsbGVyIHRoYW4gYm90aFxuK1x0ICogcmVzcC5tYXhfbXNpeCBhbmQgdGhlIENQVSBjb3VudC5cbitcdCAqL1xuK1x0ZXJyID0gcGNpX21zaXhfdmVjX2NvdW50KHBkZXYpO1xuK1x0aWYgKGVyciBcdTAwM2M9IDApIHtcbitcdFx0ZGV2X2VycihnYy1cdTAwM2VkZXYsIFwiRmFpbGVkIHRvIHF1ZXJ5IE1TSS1YIHRhYmxlIHNpemU6ICVkXFxuXCIsIGVycik7XG4rXHRcdHJldHVybiBlcnIgXHUwMDNjIDAgPyBlcnIgOiAtRU5PU1BDO1xuK1x0fVxuK1x0bXNpeF92ZWNfY291bnQgPSBlcnI7XG4rXG4rXHRpZiAoZ2MtXHUwMDNlbnVtX21zaXhfdXNhYmxlIFx1MDAzZSBtc2l4X3ZlY19jb3VudCkge1xuK1x0XHRkZXZfaW5mbyhnYy1cdTAwM2VkZXYsXG4rXHRcdFx0IFwiTGltaXRpbmcgTVNJLVggdmVjdG9ycyBmcm9tICV1IHRvIHRhYmxlIHNpemUgJXVcXG5cIixcbitcdFx0XHQgZ2MtXHUwMDNlbnVtX21zaXhfdXNhYmxlLCBtc2l4X3ZlY19jb3VudCk7XG4rXHRcdGdjLVx1MDAzZW51bV9tc2l4X3VzYWJsZSA9IG1zaXhfdmVjX2NvdW50O1xuK1x0fVxuK1xuIFx0aWYgKGdjLVx1MDAzZW51bV9tc2l4X3VzYWJsZSBcdTAwM2M9IDEpXG4gXHRcdHJldHVybiAtRU5PU1BDO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDI6NTcuNTI3NDI1MDM3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjI3NzI4NTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNQU5BIERyaXZlciBQYXRjaCBBbmFseXNpcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uY2AuIEl0IHNlZW1zIHRoZXkncmUgYWRkaW5nIGEgY2hlY2sgZm9yIGBwY2lfbXNpeF92ZWNfY291bnQocGRldilgIGluIGBtYW5hX2dkX3F1ZXJ5X21heF9yZXNvdXJjZXMoKWAgYW5kIGxpbWl0aW5nIGBnYy1cdTAwM2VudW1fbXNpeF91c2FibGVgIGFjY29yZGluZ2x5LiBTdGFuZGFyZCBzdHVmZiwgZW5zdXJpbmcgcmVzb3VyY2UgbGltaXRzIGFyZSByZXNwZWN0ZWQuXG5cbk15IGltbWVkaWF0ZSBxdWVzdGlvbiBpczogSXMgdGhpcyBldmVuIHJlbGV2YW50IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IFRoaXMgaXMgYSBNQU5BIGRyaXZlciwgTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlciwgc28gaXQncyBhIHNwZWNpZmljIHBpZWNlIG9mIGhhcmR3YXJlLiBJIGtub3cgdGhpcyBmcm9tIGV4cGVyaWVuY2UuIFRoZSBpbml0aWFsIGFzc3VtcHRpb24gaXMgdGhpcyB3b24ndCBiZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBJdCdzIEF6dXJlIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgSSdkIGJlIHN1cnByaXNlZCBpZiBpdCB3ZXJlLlxuXG5XYWl0LCBpcyB0aGVyZSAqYW55KiB3YXkgdG8gdGVzdCB0aGlzIGluIFFFTVU/IFByb2JhYmx5IG5vdC4gSXQncyBhIFBDSSBkZXZpY2UsIGFuZCBJJ2QgZ3Vlc3MgaXQgcmVxdWlyZXMgdGhlIEF6dXJlIGh5cGVydmlzb3IuXG5cbkhhbmcgb24uLi4gdGhlIGNvbnRleHQgbWVudGlvbnMgKnZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzKiB0aGF0ICphcmVuJ3QqIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQncyBhIHBlcmZlY3QgbWF0Y2ghIE1BTkEgaXMgYSBTbWFydE5JQyAvIHZpcnR1YWwgTklDLCByaWdodD8gQW5kIGl0J3MgdXNlZCAqd2l0aGluKiBBenVyZS4gSXQncyBub3QgYSBnZW5lcmljIGRldmljZS4gVGhpcyBjb25maXJtcyBteSBpbml0aWFsIHRob3VnaHQuIEl0IG5lZWRzIHNwZWNpYWxpemVkIGhhcmR3YXJlIG9yIHRoZSBBenVyZSBoeXBlcnZpc29yLlxuXG5Pa2F5LCBpcyB0aGlzIHdvcnRoIGZ1enppbmc/IEJhc2VkIG9uIHRoaXMsIGl0IHNlZW1zIHBvaW50bGVzcy4gSWYgaXQncyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSwgYW5kIGl0J3Mgbm90IGVtdWxhdGVkLCB0aGVuIHRoZXJlJ3Mgbm8gd2F5IHRvIHJlYWNoIHRoaXMgY29kZSBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuIFdlIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgdGhlcmUncyAqbm8qIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgTUFOQSB3aXRoaW4gUUVNVS4gTm8sIHRoZXJlJ3Mgbm90LlxuXG5MZXQncyBkb3VibGUgY2hlY2sgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL0tjb25maWdgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzYzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzI5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDM6MDMuODA0NzE0ODE3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNjIzMzc1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUlDUk9TT0ZUX01BTkFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDM6MDMuODU3MzQ5NDkyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQwNjAzNTQxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2Vzcywgc3BlYWtpbmcgYXMgdGhlICdleHBlcnQnIHVzZXI6XG5cbioqRGlyZWN0b3J5IENoZWNrIOKAkyBBIFF1aWNrIFNjYW4qKlxuXG5BbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIGluLCBpdOKAmXMgYSBnb29kIGhhYml0IHRvIHRha2UgYSBxdWljayBpbnZlbnRvcnkuIExldCdzIHN0YXJ0IHdpdGggYSBjaGVjayBvZiB0aGUgZGlyZWN0b3J5LiBHb3R0YSBtYWtlIHN1cmUgSSdtIGluIHRoZSByaWdodCBwbGFjZSwgdGhhdCB0aGUgbmVjZXNzYXJ5IGZpbGVzIGFyZSBwcmVzZW50LCBhbmQgdGhhdCBJIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgc3RydWN0dXJlIG9mIHdoYXQgSSdtIGRlYWxpbmcgd2l0aC4gSSBkb24ndCB3YW50IHRvIHdhc3RlIHRpbWUgZG93biBhIHJhYmJpdCBob2xlIGJlY2F1c2UgSSB3YXMgaW4gdGhlIHdyb25nIGZvbGRlciwgb3IgaGFkIGEgZmlsZSB3aXRoIGEgbWlzbGVhZGluZyBuYW1lLiBJdCdzIGEgZnVuZGFtZW50YWwgcGFydCBvZiB0aGUgd29ya2Zsb3cuIE1ha2Ugc3VyZSB0aGF0IHRoZSBiYXNpY3MgYXJlIGNvdmVyZWQsIGFuZCB5b3UncmUgc2V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTUyLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzowOC4yNjMzODc1MzdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiZ2RtYV9tYWluLmNcIixcbiAgICBcImh3X2NoYW5uZWwuY1wiLFxuICAgIFwibWFuYV9icGYuY1wiLFxuICAgIFwibWFuYV9lbi5jXCIsXG4gICAgXCJtYW5hX2V0aHRvb2wuY1wiLFxuICAgIFwic2htX2NoYW5uZWwuY1wiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzowOC4yNjM0NDQ1NzdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NDg1NjAyMzYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipXaGVyZSdzIHRoZSBLY29uZmlnPyBBIFF1aWNrIENoZWNrcG9pbnQuKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEknbSBoaXR0aW5nIGEgcm9hZGJsb2NrLiBJJ20gaW4gdGhlIG1pZGRsZSBvZiB0aGlzIHByb2plY3QsIGRlZXAgaW4gdGhlIHdlZWRzIG9mIGNvbmZpZ3VyYXRpb24sIGFuZCBzdWRkZW5seeKApiAqd2FpdCouIEknbSBtaXNzaW5nIHNvbWV0aGluZyBmdW5kYW1lbnRhbC4gV2hlcmUncyB0aGUgYEtjb25maWdgIGZpbGU/IEl0J3Mgbm90IHdoZXJlIEkgZXhwZWN0IGl0IHRvIGJlLiBUaGlzIGlzbid0IGp1c3QgYSBtaW5vciBvdmVyc2lnaHQ7IHRoZSBLY29uZmlnIGlzIHRoZSBseW5jaHBpbiwgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGFsbCBvZiBteSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGl0IGlzIHRoZSBrZXkuIFdpdGhvdXQgaXQsIEknbSBmbHlpbmcgYmxpbmQsIG5hdmlnYXRpbmcgYSBtYXplIHdpdGhvdXQgYSBtYXAuIEkgaGF2ZSB0byBmaW5kIGl0IGltbWVkaWF0ZWx5LiBXaXRob3V0IGl0IEkgYW0gc3VuayEgVGhpcyBjb3VsZCBiZSBhIHRyaXZpYWwgdHlwbywgYSBkaXJlY3RvcnkgbWlzbWF0Y2gsIG9yIGEgbW9yZSBzZXJpb3VzIGlzc3VlIGxpa2UgYSBjb3JydXB0ZWQgYnVpbGQgZW52aXJvbm1lbnQuIExldCBtZSBydW4gYSBkaXJlY3RvcnkgbGlzdGluZyBhbmQgZ3JlcCBmb3IgJ0tjb25maWcnLi4uIEkgbmVlZCB0byBnZXQgdGhpcyBzb3J0ZWQgYmVmb3JlIEkgY2FuIHByb2NlZWQgYSBzaW5nbGUgc3RlcCBmdXJ0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDAxLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OCwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDM6MTUuNzQ5MDQ5Njg5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NTU4Nzc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNSUNST1NPRlRfTUFOQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvS2NvbmZpZz0xNj1pZiBORVRfVkVORE9SX01JQ1JPU09GVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9LY29uZmlnLTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9LY29uZmlnOjE4OmNvbmZpZyBNSUNST1NPRlRfTUFOQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9LY29uZmlnLTE5LVxcdHRyaXN0YXRlIFxcXCJNaWNyb3NvZnQgQXp1cmUgTmV0d29yayBBZGFwdGVyIChNQU5BKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzoxNS44MDM2MTgxMjNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODAwNTY1NTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1BTkEgRHJpdmVyIGFuZCBpdHMgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBNQU5BLCB0aGF0J3MgdGhlIFwiTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlci5cIiBSaWdodCwgSSByZW1lbWJlciBzZWVpbmcgdGhhdCBwb3AgdXAuIEEgUENJIGRldmljZSwgZ290IGl0LiBTaW5jZSBpdCdzIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSwgYSBkZWRpY2F0ZWQgUENJZSBkZXZpY2UgdG8gYmUgcHJlY2lzZSwgYW5kIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgd2l0aGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCwgSSBjYW4gaW1tZWRpYXRlbHkgcnVsZSBvdXQgdXNpbmcgc3l6a2FsbGVyIGluIGEgc3RyYWlnaHRmb3J3YXJkIG1hbm5lci4gVGhhdCBtZWFucyBzdGFuZGFyZCBzeXprYWxsZXIgc2V0dXAgd29uJ3QgYmUgYWJsZSB0byByZWFjaCBpdC4gQ29uc2VxdWVudGx5LCBubyBnbyBmb3IgZnV6emluZyBpbiB0aGUgY29udmVudGlvbmFsIHNlbnNlLiBTbywgYFdvcnRoRnV6emluZz1mYWxzZWAgaXMgdGhlIGNvcnJlY3QgY2FsbCBoZXJlLCBhdCBsZWFzdCB3aXRoIHdoYXQgSSBrbm93IHNvIGZhci4gUXVpY2sgY2hlY2sgdG8gY29uZmlybSBpdCdzIGEgUENJIGRyaXZlciBpcyBpbiBvcmRlciB0aG91Z2g7IHdhbnQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzY5LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDM6MTkuNjA0MTg3MzI3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjQzNzA4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfcmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYz0yNzM3PXN0YXRpYyBpbnQgX19pbml0IG1hbmFfZHJpdmVyX2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jLTI3NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmM6Mjc0NzpcXHRlcnIgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtYW5hX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmMtMjc0OC1cXHRpZiAoZXJyKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDE4OjQzOjE5LjY5MDYzMTU1OFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTY4MjQzNzE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipQQ0kgRHJpdmVyIEFzc2Vzc21lbnQgYW5kIEZ1enppbmcgRmVhc2liaWxpdHkqKlxuXG5BbHJpZ2h0LCB5ZXAsIGNvbmZpcm1lZC4gVGhpcyBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGNhdGVnb3JpemUgaXQgYXMgc29tZXRoaW5nIHRoYXQncyBsaWtlbHkgKm5vdCogd29ydGggYSBzdGFuZGFyZCBmdXp6aW5nIGVmZm9ydCwgYXQgbGVhc3Qgbm90IHdpdGhvdXQgc29tZSB2ZXJ5IHNpZ25pZmljYW50IGNhdmVhdHMuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBNaWNyb3NvZnQgQXp1cmUgTmV0d29yayBBZGFwdGVyLCBhbmQgdGhhdCdzIGEgcHJldHR5IGNsZWFyIGluZGljYXRvciBvZiBhIHNwZWNpYWxpemVkIHBpZWNlIG9mIGtpdC4gR2l2ZW4gdGhhdCBpdCdzIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciwgbXkgYW5hbHlzaXMgcG9pbnRzIHRvd2FyZHMgYSB2ZXJ5IHRhcmdldGVkIGVudmlyb25tZW50IGRlcGVuZGVuY3kuIFRoZSBoYXJkd2FyZSBhbmQgaHlwZXJ2aXNvciByZXF1aXJlbWVudHMgdGhhdCBpdCdzIGRlc2lnbmVkIHRvIGludGVyZmFjZSB3aXRoIGFyZW4ndCBlYXNpbHkgZW11bGF0ZWQgb3IgcmVwcm9kdWNlZCB3aXRoaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50IOKAkyBhbmQgdGhhdCdzIHRoZSBzdGlja2luZyBwb2ludC4gVHJ5aW5nIHRvIGdldCB0aGlzIHRoaW5nIHRvIGJlaGF2ZSBzZW5zaWJseSwgYW5kIHRyaWdnZXIgdXNlZnVsIGZ1enppbmcgY292ZXJhZ2UgaW4gYSBnZW5lcmljIHNldHRpbmcgaXMgZ29pbmcgdG8gYmUgYW4gZXhlcmNpc2UgaW4gZnV0aWxpdHkuIFRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UuIFRoZSB1bmRlcmx5aW5nIGluZnJhc3RydWN0dXJlIHNpbXBseSB3b24ndCBwbGF5IGJhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxOTYsIk91dHB1dFRva2VucyI6ODgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzoyNC4yNTg4Nzg1MTVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODgyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlciAoTUFOQSkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSB0aGF0IHJlcXVpcmVzIHRoZSBBenVyZSBoeXBlcnZpc29yIG9yIHNwZWNpZmljIGhhcmR3YXJlLiBJdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZnV6emVkIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlciAoTUFOQSkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSB0aGF0IHJlcXVpcmVzIHRoZSBBenVyZSBoeXBlcnZpc29yIG9yIHNwZWNpZmljIGhhcmR3YXJlLiBJdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZnV6emVkIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzoyNC4yNTg5MTExNDVaIiwiU2VxIjoxMywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowk4wwf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-21 18:40:36 +0000 UTC FinishedAt: 2026-08-21 18:43:24 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2UgdGhhdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvciBvciBzcGVjaWZpYyBoYXJkd2FyZS4gSXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGZ1enplZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAxODo0MjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDI2NzNlODk5NDhlNmFiOTBhNWE3NzkwZDM2NTI2NzkzMTVlYmNkNzdcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEF1ZyAyMSAxODo0Mjo1NiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXG5pbmRleCBlZDlhZjMxNGU0ZWRlLi5mOTJiMmQwYmY5MjZlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXG5AQCAtMTgyLDYgJiM0MzsxODIsNyBAQCBzdGF0aWMgaW50IG1hbmFfZ2RfcXVlcnlfbWF4X3Jlc291cmNlcyhzdHJ1Y3QgcGNpX2RldiAqcGRldilcbiBcdHN0cnVjdCBnZG1hX3F1ZXJ5X21heF9yZXNvdXJjZXNfcmVzcCByZXNwID0ge307XG4gXHRzdHJ1Y3QgZ2RtYV9nZW5lcmFsX3JlcSByZXEgPSB7fTtcbiBcdHVuc2lnbmVkIGludCBtYXhfbnVtX3F1ZXVlcztcbiYjNDM7XHR1bnNpZ25lZCBpbnQgbXNpeF92ZWNfY291bnQ7XG4gXHR1OCBibV9ob3N0bW9kZTtcbiBcdHUxNiBudW1fcG9ydHM7XG4gXHRpbnQgZXJyO1xuQEAgLTIxOCw2ICYjNDM7MjE5LDI0IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0XHRnYy1cdTAwM2VudW1fbXNpeF91c2FibGUgPSBtaW4ocmVzcC5tYXhfbXNpeCwgbnVtX29ubGluZV9jcHVzKCkgJiM0MzsgMSk7XG4gXHR9XG4gXG4mIzQzO1x0LyogTVNJLVggdmVjdG9ycyBhcmUgYWxsb2NhdGVkIGJ5IGluZGV4IGludG8gdGhlIGRldmljZSBNU0ktWCB0YWJsZSwgc29cbiYjNDM7XHQgKiBuZXZlciBhc2sgZm9yIG1vcmUgdGhhbiB0aGUgdGFibGUgaG9sZHMuIEl0IGNhbiBiZSBzbWFsbGVyIHRoYW4gYm90aFxuJiM0MztcdCAqIHJlc3AubWF4X21zaXggYW5kIHRoZSBDUFUgY291bnQuXG4mIzQzO1x0ICovXG4mIzQzO1x0ZXJyID0gcGNpX21zaXhfdmVjX2NvdW50KHBkZXYpO1xuJiM0MztcdGlmIChlcnIgXHUwMDNjPSAwKSB7XG4mIzQzO1x0XHRkZXZfZXJyKGdjLVx1MDAzZWRldiwgXCYjMzQ7RmFpbGVkIHRvIHF1ZXJ5IE1TSS1YIHRhYmxlIHNpemU6ICVkXFxuXCYjMzQ7LCBlcnIpO1xuJiM0MztcdFx0cmV0dXJuIGVyciBcdTAwM2MgMCA/IGVyciA6IC1FTk9TUEM7XG4mIzQzO1x0fVxuJiM0MztcdG1zaXhfdmVjX2NvdW50ID0gZXJyO1xuJiM0MztcbiYjNDM7XHRpZiAoZ2MtXHUwMDNlbnVtX21zaXhfdXNhYmxlIFx1MDAzZSBtc2l4X3ZlY19jb3VudCkge1xuJiM0MztcdFx0ZGV2X2luZm8oZ2MtXHUwMDNlZGV2LFxuJiM0MztcdFx0XHQgXCYjMzQ7TGltaXRpbmcgTVNJLVggdmVjdG9ycyBmcm9tICV1IHRvIHRhYmxlIHNpemUgJXVcXG5cJiMzNDssXG4mIzQzO1x0XHRcdCBnYy1cdTAwM2VudW1fbXNpeF91c2FibGUsIG1zaXhfdmVjX2NvdW50KTtcbiYjNDM7XHRcdGdjLVx1MDAzZW51bV9tc2l4X3VzYWJsZSA9IG1zaXhfdmVjX2NvdW50O1xuJiM0MztcdH1cbiYjNDM7XG4gXHRpZiAoZ2MtXHUwMDNlbnVtX21zaXhfdXNhYmxlIFx1MDAzYz0gMSlcbiBcdFx0cmV0dXJuIC1FTk9TUEM7XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDI8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNaWNyb3NvZnQgQXp1cmUgTmV0d29yayBBZGFwdGVyIChNQU5BKSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlIHRoYXQgcmVxdWlyZXMgdGhlIEF6dXJlIGh5cGVydmlzb3Igb3Igc3BlY2lmaWMgaGFyZHdhcmUuIEl0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGFuZCB0aGVyZWZvcmUgY2Fubm90IGJlIG1lYW5pbmdmdWxseSBmdXp6ZWQgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCAyNjczZTg5OTQ4ZTZhYjkwYTVhNzc5MGQzNjUyNjc5MzE1ZWJjZDc3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBBdWcgMjEgMTg6NDI6NTYgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jCmluZGV4IGVkOWFmMzE0ZTRlZGUuLmY5MmIyZDBiZjkyNmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jCkBAIC0xODIsNiAmIzQzOzE4Miw3IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogCXN0cnVjdCBnZG1hX3F1ZXJ5X21heF9yZXNvdXJjZXNfcmVzcCByZXNwID0ge307CiAJc3RydWN0IGdkbWFfZ2VuZXJhbF9yZXEgcmVxID0ge307CiAJdW5zaWduZWQgaW50IG1heF9udW1fcXVldWVzOwomIzQzOwl1bnNpZ25lZCBpbnQgbXNpeF92ZWNfY291bnQ7CiAJdTggYm1faG9zdG1vZGU7CiAJdTE2IG51bV9wb3J0czsKIAlpbnQgZXJyOwpAQCAtMjE4LDYgJiM0MzsyMTksMjQgQEAgc3RhdGljIGludCBtYW5hX2dkX3F1ZXJ5X21heF9yZXNvdXJjZXMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiAJCWdjLSZndDtudW1fbXNpeF91c2FibGUgPSBtaW4ocmVzcC5tYXhfbXNpeCwgbnVtX29ubGluZV9jcHVzKCkgJiM0MzsgMSk7CiAJfQogCiYjNDM7CS8qIE1TSS1YIHZlY3RvcnMgYXJlIGFsbG9jYXRlZCBieSBpbmRleCBpbnRvIHRoZSBkZXZpY2UgTVNJLVggdGFibGUsIHNvCiYjNDM7CSAqIG5ldmVyIGFzayBmb3IgbW9yZSB0aGFuIHRoZSB0YWJsZSBob2xkcy4gSXQgY2FuIGJlIHNtYWxsZXIgdGhhbiBib3RoCiYjNDM7CSAqIHJlc3AubWF4X21zaXggYW5kIHRoZSBDUFUgY291bnQuCiYjNDM7CSAqLwomIzQzOwllcnIgPSBwY2lfbXNpeF92ZWNfY291bnQocGRldik7CiYjNDM7CWlmIChlcnIgJmx0Oz0gMCkgewomIzQzOwkJZGV2X2VycihnYy0mZ3Q7ZGV2LCAmIzM0O0ZhaWxlZCB0byBxdWVyeSBNU0ktWCB0YWJsZSBzaXplOiAlZFxuJiMzNDssIGVycik7CiYjNDM7CQlyZXR1cm4gZXJyICZsdDsgMCA/IGVyciA6IC1FTk9TUEM7CiYjNDM7CX0KJiM0MzsJbXNpeF92ZWNfY291bnQgPSBlcnI7CiYjNDM7CiYjNDM7CWlmIChnYy0mZ3Q7bnVtX21zaXhfdXNhYmxlICZndDsgbXNpeF92ZWNfY291bnQpIHsKJiM0MzsJCWRldl9pbmZvKGdjLSZndDtkZXYsCiYjNDM7CQkJICYjMzQ7TGltaXRpbmcgTVNJLVggdmVjdG9ycyBmcm9tICV1IHRvIHRhYmxlIHNpemUgJXVcbiYjMzQ7LAomIzQzOwkJCSBnYy0mZ3Q7bnVtX21zaXhfdXNhYmxlLCBtc2l4X3ZlY19jb3VudCk7CiYjNDM7CQlnYy0mZ3Q7bnVtX21zaXhfdXNhYmxlID0gbXNpeF92ZWNfY291bnQ7CiYjNDM7CX0KJiM0MzsKIAlpZiAoZ2MtJmd0O251bV9tc2l4X3VzYWJsZSAmbHQ7PSAxKQogCQlyZXR1cm4gLUVOT1NQQzsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAxODo0MjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzYzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMzI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1BTkEgRHJpdmVyIFBhdGNoIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNgLiBJdCBzZWVtcyB0aGV5JiMzOTtyZSBhZGRpbmcgYSBjaGVjayBmb3IgYHBjaV9tc2l4X3ZlY19jb3VudChwZGV2KWAgaW4gYG1hbmFfZ2RfcXVlcnlfbWF4X3Jlc291cmNlcygpYCBhbmQgbGltaXRpbmcgYGdjLSZndDtudW1fbXNpeF91c2FibGVgIGFjY29yZGluZ2x5LiBTdGFuZGFyZCBzdHVmZiwgZW5zdXJpbmcgcmVzb3VyY2UgbGltaXRzIGFyZSByZXNwZWN0ZWQuCgpNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IElzIHRoaXMgZXZlbiByZWxldmFudCBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBUaGlzIGlzIGEgTUFOQSBkcml2ZXIsIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIsIHNvIGl0JiMzOTtzIGEgc3BlY2lmaWMgcGllY2Ugb2YgaGFyZHdhcmUuIEkga25vdyB0aGlzIGZyb20gZXhwZXJpZW5jZS4gVGhlIGluaXRpYWwgYXNzdW1wdGlvbiBpcyB0aGlzIHdvbiYjMzk7dCBiZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBJdCYjMzk7cyBBenVyZSBzcGVjaWZpYyBoYXJkd2FyZSwgYW5kIEkmIzM5O2QgYmUgc3VycHJpc2VkIGlmIGl0IHdlcmUuCgpXYWl0LCBpcyB0aGVyZSAqYW55KiB3YXkgdG8gdGVzdCB0aGlzIGluIFFFTVU/IFByb2JhYmx5IG5vdC4gSXQmIzM5O3MgYSBQQ0kgZGV2aWNlLCBhbmQgSSYjMzk7ZCBndWVzcyBpdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvci4KCkhhbmcgb24uLi4gdGhlIGNvbnRleHQgbWVudGlvbnMgKnZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzKiB0aGF0ICphcmVuJiMzOTt0KiBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0JiMzOTtzIGEgcGVyZmVjdCBtYXRjaCEgTUFOQSBpcyBhIFNtYXJ0TklDIC8gdmlydHVhbCBOSUMsIHJpZ2h0PyBBbmQgaXQmIzM5O3MgdXNlZCAqd2l0aGluKiBBenVyZS4gSXQmIzM5O3Mgbm90IGEgZ2VuZXJpYyBkZXZpY2UuIFRoaXMgY29uZmlybXMgbXkgaW5pdGlhbCB0aG91Z2h0LiBJdCBuZWVkcyBzcGVjaWFsaXplZCBoYXJkd2FyZSBvciB0aGUgQXp1cmUgaHlwZXJ2aXNvci4KCk9rYXksIGlzIHRoaXMgd29ydGggZnV6emluZz8gQmFzZWQgb24gdGhpcywgaXQgc2VlbXMgcG9pbnRsZXNzLiBJZiBpdCYjMzk7cyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSwgYW5kIGl0JiMzOTtzIG5vdCBlbXVsYXRlZCwgdGhlbiB0aGVyZSYjMzk7cyBubyB3YXkgdG8gcmVhY2ggdGhpcyBjb2RlIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudC4gV2UgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhhdCB0aGVyZSYjMzk7cyAqbm8qIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgTUFOQSB3aXRoaW4gUUVNVS4gTm8sIHRoZXJlJiMzOTtzIG5vdC4KCkxldCYjMzk7cyBkb3VibGUgY2hlY2sgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL0tjb25maWdgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1JQ1JPU09GVF9NQU5BJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE1MgoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCBzcGVha2luZyBhcyB0aGUgJiMzOTtleHBlcnQmIzM5OyB1c2VyOgoKKipEaXJlY3RvcnkgQ2hlY2sg4oCTIEEgUXVpY2sgU2NhbioqCgpBbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIGluLCBpdOKAmXMgYSBnb29kIGhhYml0IHRvIHRha2UgYSBxdWljayBpbnZlbnRvcnkuIExldCYjMzk7cyBzdGFydCB3aXRoIGEgY2hlY2sgb2YgdGhlIGRpcmVjdG9yeS4gR290dGEgbWFrZSBzdXJlIEkmIzM5O20gaW4gdGhlIHJpZ2h0IHBsYWNlLCB0aGF0IHRoZSBuZWNlc3NhcnkgZmlsZXMgYXJlIHByZXNlbnQsIGFuZCB0aGF0IEkgdW5kZXJzdGFuZCB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUgb2Ygd2hhdCBJJiMzOTttIGRlYWxpbmcgd2l0aC4gSSBkb24mIzM5O3Qgd2FudCB0byB3YXN0ZSB0aW1lIGRvd24gYSByYWJiaXQgaG9sZSBiZWNhdXNlIEkgd2FzIGluIHRoZSB3cm9uZyBmb2xkZXIsIG9yIGhhZCBhIGZpbGUgd2l0aCBhIG1pc2xlYWRpbmcgbmFtZS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIHRoZSB3b3JrZmxvdy4gTWFrZSBzdXJlIHRoYXQgdGhlIGJhc2ljcyBhcmUgY292ZXJlZCwgYW5kIHlvdSYjMzk7cmUgc2V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Y29kZXNlYXJjaC1kaXItaW5kZXg8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0RpciYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGVzJiMzNDs6IFsKICAgICYjMzQ7Z2RtYV9tYWluLmMmIzM0OywKICAgICYjMzQ7aHdfY2hhbm5lbC5jJiMzNDssCiAgICAmIzM0O21hbmFfYnBmLmMmIzM0OywKICAgICYjMzQ7bWFuYV9lbi5jJiMzNDssCiAgICAmIzM0O21hbmFfZXRodG9vbC5jJiMzNDssCiAgICAmIzM0O3NobV9jaGFubmVsLmMmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM0MDEKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiA4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKldoZXJlJiMzOTtzIHRoZSBLY29uZmlnPyBBIFF1aWNrIENoZWNrcG9pbnQuKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSYjMzk7bSBoaXR0aW5nIGEgcm9hZGJsb2NrLiBJJiMzOTttIGluIHRoZSBtaWRkbGUgb2YgdGhpcyBwcm9qZWN0LCBkZWVwIGluIHRoZSB3ZWVkcyBvZiBjb25maWd1cmF0aW9uLCBhbmQgc3VkZGVubHnigKYgKndhaXQqLiBJJiMzOTttIG1pc3Npbmcgc29tZXRoaW5nIGZ1bmRhbWVudGFsLiBXaGVyZSYjMzk7cyB0aGUgYEtjb25maWdgIGZpbGU/IEl0JiMzOTtzIG5vdCB3aGVyZSBJIGV4cGVjdCBpdCB0byBiZS4gVGhpcyBpc24mIzM5O3QganVzdCBhIG1pbm9yIG92ZXJzaWdodDsgdGhlIEtjb25maWcgaXMgdGhlIGx5bmNocGluLCB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgYWxsIG9mIG15IGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgaXQgaXMgdGhlIGtleS4gV2l0aG91dCBpdCwgSSYjMzk7bSBmbHlpbmcgYmxpbmQsIG5hdmlnYXRpbmcgYSBtYXplIHdpdGhvdXQgYSBtYXAuIEkgaGF2ZSB0byBmaW5kIGl0IGltbWVkaWF0ZWx5LiBXaXRob3V0IGl0IEkgYW0gc3VuayEgVGhpcyBjb3VsZCBiZSBhIHRyaXZpYWwgdHlwbywgYSBkaXJlY3RvcnkgbWlzbWF0Y2gsIG9yIGEgbW9yZSBzZXJpb3VzIGlzc3VlIGxpa2UgYSBjb3JydXB0ZWQgYnVpbGQgZW52aXJvbm1lbnQuIExldCBtZSBydW4gYSBkaXJlY3RvcnkgbGlzdGluZyBhbmQgZ3JlcCBmb3IgJiMzOTtLY29uZmlnJiMzOTsuLi4gSSBuZWVkIHRvIGdldCB0aGlzIHNvcnRlZCBiZWZvcmUgSSBjYW4gcHJvY2VlZCBhIHNpbmdsZSBzdGVwIGZ1cnRoZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIE1JQ1JPU09GVF9NQU5BJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L0tjb25maWc9MTY9aWYgTkVUX1ZFTkRPUl9NSUNST1NPRlRcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9LY29uZmlnLTE3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L0tjb25maWc6MTg6Y29uZmlnIE1JQ1JPU09GVF9NQU5BXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvS2NvbmZpZy0xOS1cdHRyaXN0YXRlIFwmIzM0O01pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yMSAxODo0MzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzY5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTUFOQSBEcml2ZXIgYW5kIGl0cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBNQU5BLCB0aGF0JiMzOTtzIHRoZSAmIzM0O01pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIuJiMzNDsgUmlnaHQsIEkgcmVtZW1iZXIgc2VlaW5nIHRoYXQgcG9wIHVwLiBBIFBDSSBkZXZpY2UsIGdvdCBpdC4gU2luY2UgaXQmIzM5O3MgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlLCBhIGRlZGljYXRlZCBQQ0llIGRldmljZSB0byBiZSBwcmVjaXNlLCBhbmQgbm90IHNvbWV0aGluZyBlbXVsYXRlZCB3aXRoaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LCBJIGNhbiBpbW1lZGlhdGVseSBydWxlIG91dCB1c2luZyBzeXprYWxsZXIgaW4gYSBzdHJhaWdodGZvcndhcmQgbWFubmVyLiBUaGF0IG1lYW5zIHN0YW5kYXJkIHN5emthbGxlciBzZXR1cCB3b24mIzM5O3QgYmUgYWJsZSB0byByZWFjaCBpdC4gQ29uc2VxdWVudGx5LCBubyBnbyBmb3IgZnV6emluZyBpbiB0aGUgY29udmVudGlvbmFsIHNlbnNlLiBTbywgYFdvcnRoRnV6emluZz1mYWxzZWAgaXMgdGhlIGNvcnJlY3QgY2FsbCBoZXJlLCBhdCBsZWFzdCB3aXRoIHdoYXQgSSBrbm93IHNvIGZhci4gUXVpY2sgY2hlY2sgdG8gY29uZmlybSBpdCYjMzk7cyBhIFBDSSBkcml2ZXIgaXMgaW4gb3JkZXIgdGhvdWdoOyB3YW50IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX3JlZ2lzdGVyX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYz0yNzM3PXN0YXRpYyBpbnQgX19pbml0IG1hbmFfZHJpdmVyX2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYy0yNzQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmM6Mjc0NzpcdGVyciA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bWFuYV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmMtMjc0OC1cdGlmIChlcnIpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE5NgoJCQkJCQkJb3V0cHV0OiA4OAoJCQkJCQkJdGhvdWdodHM6IDU0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKlBDSSBEcml2ZXIgQXNzZXNzbWVudCBhbmQgRnV6emluZyBGZWFzaWJpbGl0eSoqCgpBbHJpZ2h0LCB5ZXAsIGNvbmZpcm1lZC4gVGhpcyBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGNhdGVnb3JpemUgaXQgYXMgc29tZXRoaW5nIHRoYXQmIzM5O3MgbGlrZWx5ICpub3QqIHdvcnRoIGEgc3RhbmRhcmQgZnV6emluZyBlZmZvcnQsIGF0IGxlYXN0IG5vdCB3aXRob3V0IHNvbWUgdmVyeSBzaWduaWZpY2FudCBjYXZlYXRzLiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIsIGFuZCB0aGF0JiMzOTtzIGEgcHJldHR5IGNsZWFyIGluZGljYXRvciBvZiBhIHNwZWNpYWxpemVkIHBpZWNlIG9mIGtpdC4gR2l2ZW4gdGhhdCBpdCYjMzk7cyB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXIsIG15IGFuYWx5c2lzIHBvaW50cyB0b3dhcmRzIGEgdmVyeSB0YXJnZXRlZCBlbnZpcm9ubWVudCBkZXBlbmRlbmN5LiBUaGUgaGFyZHdhcmUgYW5kIGh5cGVydmlzb3IgcmVxdWlyZW1lbnRzIHRoYXQgaXQmIzM5O3MgZGVzaWduZWQgdG8gaW50ZXJmYWNlIHdpdGggYXJlbiYjMzk7dCBlYXNpbHkgZW11bGF0ZWQgb3IgcmVwcm9kdWNlZCB3aXRoaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50IOKAkyBhbmQgdGhhdCYjMzk7cyB0aGUgc3RpY2tpbmcgcG9pbnQuIFRyeWluZyB0byBnZXQgdGhpcyB0aGluZyB0byBiZWhhdmUgc2Vuc2libHksIGFuZCB0cmlnZ2VyIHVzZWZ1bCBmdXp6aW5nIGNvdmVyYWdlIGluIGEgZ2VuZXJpYyBzZXR0aW5nIGlzIGdvaW5nIHRvIGJlIGFuIGV4ZXJjaXNlIGluIGZ1dGlsaXR5LiBUaGVyZWZvcmUsIEkmIzM5O20gZ29pbmcgdG8gcmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZS4gVGhlIHVuZGVybHlpbmcgaW5mcmFzdHJ1Y3R1cmUgc2ltcGx5IHdvbiYjMzk7dCBwbGF5IGJhbGwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzIxIDE4OjQzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2UgdGhhdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvciBvciBzcGVjaWZpYyBoYXJkd2FyZS4gSXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGZ1enplZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2UgdGhhdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvciBvciBzcGVjaWZpYyBoYXJkd2FyZS4gSXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGZ1enplZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjEgMTg6NDM8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDE4OjQyOjU3LjA3NTY3NTk3NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI3MTgzMjUxNTYxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1pY3Jvc29mdCBBenVyZSBOZXR3b3JrIEFkYXB0ZXIgKE1BTkEpIGRyaXZlciwgd2hpY2ggaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2UgdGhhdCByZXF1aXJlcyB0aGUgQXp1cmUgaHlwZXJ2aXNvciBvciBzcGVjaWZpYyBoYXJkd2FyZS4gSXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgYW5kIHRoZXJlZm9yZSBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGZ1enplZCBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDI6NTcuMDc1NjgzMDk0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTA5MzQ2MTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyNjczZTg5OTQ4ZTZhYjkwYTVhNzc5MGQzNjUyNjc5MzE1ZWJjZDc3XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgQXVnIDIxIDE4OjQyOjU2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNcXG5pbmRleCBlZDlhZjMxNGU0ZWRlLi5mOTJiMmQwYmY5MjZlIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNcXG5AQCAtMTgyLDYgKzE4Miw3IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiBcXHRzdHJ1Y3QgZ2RtYV9xdWVyeV9tYXhfcmVzb3VyY2VzX3Jlc3AgcmVzcCA9IHt9O1xcbiBcXHRzdHJ1Y3QgZ2RtYV9nZW5lcmFsX3JlcSByZXEgPSB7fTtcXG4gXFx0dW5zaWduZWQgaW50IG1heF9udW1fcXVldWVzO1xcbitcXHR1bnNpZ25lZCBpbnQgbXNpeF92ZWNfY291bnQ7XFxuIFxcdHU4IGJtX2hvc3Rtb2RlO1xcbiBcXHR1MTYgbnVtX3BvcnRzO1xcbiBcXHRpbnQgZXJyO1xcbkBAIC0yMTgsNiArMjE5LDI0IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbiBcXHRcXHRnYy1cXHUwMDNlbnVtX21zaXhfdXNhYmxlID0gbWluKHJlc3AubWF4X21zaXgsIG51bV9vbmxpbmVfY3B1cygpICsgMSk7XFxuIFxcdH1cXG4gXFxuK1xcdC8qIE1TSS1YIHZlY3RvcnMgYXJlIGFsbG9jYXRlZCBieSBpbmRleCBpbnRvIHRoZSBkZXZpY2UgTVNJLVggdGFibGUsIHNvXFxuK1xcdCAqIG5ldmVyIGFzayBmb3IgbW9yZSB0aGFuIHRoZSB0YWJsZSBob2xkcy4gSXQgY2FuIGJlIHNtYWxsZXIgdGhhbiBib3RoXFxuK1xcdCAqIHJlc3AubWF4X21zaXggYW5kIHRoZSBDUFUgY291bnQuXFxuK1xcdCAqL1xcbitcXHRlcnIgPSBwY2lfbXNpeF92ZWNfY291bnQocGRldik7XFxuK1xcdGlmIChlcnIgXFx1MDAzYz0gMCkge1xcbitcXHRcXHRkZXZfZXJyKGdjLVxcdTAwM2VkZXYsIFxcXCJGYWlsZWQgdG8gcXVlcnkgTVNJLVggdGFibGUgc2l6ZTogJWRcXFxcblxcXCIsIGVycik7XFxuK1xcdFxcdHJldHVybiBlcnIgXFx1MDAzYyAwID8gZXJyIDogLUVOT1NQQztcXG4rXFx0fVxcbitcXHRtc2l4X3ZlY19jb3VudCA9IGVycjtcXG4rXFxuK1xcdGlmIChnYy1cXHUwMDNlbnVtX21zaXhfdXNhYmxlIFxcdTAwM2UgbXNpeF92ZWNfY291bnQpIHtcXG4rXFx0XFx0ZGV2X2luZm8oZ2MtXFx1MDAzZWRldixcXG4rXFx0XFx0XFx0IFxcXCJMaW1pdGluZyBNU0ktWCB2ZWN0b3JzIGZyb20gJXUgdG8gdGFibGUgc2l6ZSAldVxcXFxuXFxcIixcXG4rXFx0XFx0XFx0IGdjLVxcdTAwM2VudW1fbXNpeF91c2FibGUsIG1zaXhfdmVjX2NvdW50KTtcXG4rXFx0XFx0Z2MtXFx1MDAzZW51bV9tc2l4X3VzYWJsZSA9IG1zaXhfdmVjX2NvdW50O1xcbitcXHR9XFxuK1xcbiBcXHRpZiAoZ2MtXFx1MDAzZW51bV9tc2l4X3VzYWJsZSBcXHUwMDNjPSAxKVxcbiBcXHRcXHRyZXR1cm4gLUVOT1NQQztcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDE4OjQyOjU3LjUyNzQyMzQwN1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjI2NzMxNDg1NTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlciAoTUFOQSkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSB0aGF0IHJlcXVpcmVzIHRoZSBBenVyZSBoeXBlcnZpc29yIG9yIHNwZWNpZmljIGhhcmR3YXJlLiBJdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZnV6emVkIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyNjczZTg5OTQ4ZTZhYjkwYTVhNzc5MGQzNjUyNjc5MzE1ZWJjZDc3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBBdWcgMjEgMTg6NDI6NTYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXG5pbmRleCBlZDlhZjMxNGU0ZWRlLi5mOTJiMmQwYmY5MjZlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jXG5AQCAtMTgyLDYgKzE4Miw3IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0c3RydWN0IGdkbWFfcXVlcnlfbWF4X3Jlc291cmNlc19yZXNwIHJlc3AgPSB7fTtcbiBcdHN0cnVjdCBnZG1hX2dlbmVyYWxfcmVxIHJlcSA9IHt9O1xuIFx0dW5zaWduZWQgaW50IG1heF9udW1fcXVldWVzO1xuK1x0dW5zaWduZWQgaW50IG1zaXhfdmVjX2NvdW50O1xuIFx0dTggYm1faG9zdG1vZGU7XG4gXHR1MTYgbnVtX3BvcnRzO1xuIFx0aW50IGVycjtcbkBAIC0yMTgsNiArMjE5LDI0IEBAIHN0YXRpYyBpbnQgbWFuYV9nZF9xdWVyeV9tYXhfcmVzb3VyY2VzKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuIFx0XHRnYy1cdTAwM2VudW1fbXNpeF91c2FibGUgPSBtaW4ocmVzcC5tYXhfbXNpeCwgbnVtX29ubGluZV9jcHVzKCkgKyAxKTtcbiBcdH1cbiBcbitcdC8qIE1TSS1YIHZlY3RvcnMgYXJlIGFsbG9jYXRlZCBieSBpbmRleCBpbnRvIHRoZSBkZXZpY2UgTVNJLVggdGFibGUsIHNvXG4rXHQgKiBuZXZlciBhc2sgZm9yIG1vcmUgdGhhbiB0aGUgdGFibGUgaG9sZHMuIEl0IGNhbiBiZSBzbWFsbGVyIHRoYW4gYm90aFxuK1x0ICogcmVzcC5tYXhfbXNpeCBhbmQgdGhlIENQVSBjb3VudC5cbitcdCAqL1xuK1x0ZXJyID0gcGNpX21zaXhfdmVjX2NvdW50KHBkZXYpO1xuK1x0aWYgKGVyciBcdTAwM2M9IDApIHtcbitcdFx0ZGV2X2VycihnYy1cdTAwM2VkZXYsIFwiRmFpbGVkIHRvIHF1ZXJ5IE1TSS1YIHRhYmxlIHNpemU6ICVkXFxuXCIsIGVycik7XG4rXHRcdHJldHVybiBlcnIgXHUwMDNjIDAgPyBlcnIgOiAtRU5PU1BDO1xuK1x0fVxuK1x0bXNpeF92ZWNfY291bnQgPSBlcnI7XG4rXG4rXHRpZiAoZ2MtXHUwMDNlbnVtX21zaXhfdXNhYmxlIFx1MDAzZSBtc2l4X3ZlY19jb3VudCkge1xuK1x0XHRkZXZfaW5mbyhnYy1cdTAwM2VkZXYsXG4rXHRcdFx0IFwiTGltaXRpbmcgTVNJLVggdmVjdG9ycyBmcm9tICV1IHRvIHRhYmxlIHNpemUgJXVcXG5cIixcbitcdFx0XHQgZ2MtXHUwMDNlbnVtX21zaXhfdXNhYmxlLCBtc2l4X3ZlY19jb3VudCk7XG4rXHRcdGdjLVx1MDAzZW51bV9tc2l4X3VzYWJsZSA9IG1zaXhfdmVjX2NvdW50O1xuK1x0fVxuK1xuIFx0aWYgKGdjLVx1MDAzZW51bV9tc2l4X3VzYWJsZSBcdTAwM2M9IDEpXG4gXHRcdHJldHVybiAtRU5PU1BDO1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDI6NTcuNTI3NDI1MDM3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjI3NzI4NTk2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNQU5BIERyaXZlciBQYXRjaCBBbmFseXNpcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uY2AuIEl0IHNlZW1zIHRoZXkncmUgYWRkaW5nIGEgY2hlY2sgZm9yIGBwY2lfbXNpeF92ZWNfY291bnQocGRldilgIGluIGBtYW5hX2dkX3F1ZXJ5X21heF9yZXNvdXJjZXMoKWAgYW5kIGxpbWl0aW5nIGBnYy1cdTAwM2VudW1fbXNpeF91c2FibGVgIGFjY29yZGluZ2x5LiBTdGFuZGFyZCBzdHVmZiwgZW5zdXJpbmcgcmVzb3VyY2UgbGltaXRzIGFyZSByZXNwZWN0ZWQuXG5cbk15IGltbWVkaWF0ZSBxdWVzdGlvbiBpczogSXMgdGhpcyBldmVuIHJlbGV2YW50IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IFRoaXMgaXMgYSBNQU5BIGRyaXZlciwgTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlciwgc28gaXQncyBhIHNwZWNpZmljIHBpZWNlIG9mIGhhcmR3YXJlLiBJIGtub3cgdGhpcyBmcm9tIGV4cGVyaWVuY2UuIFRoZSBpbml0aWFsIGFzc3VtcHRpb24gaXMgdGhpcyB3b24ndCBiZSBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLiBJdCdzIEF6dXJlIHNwZWNpZmljIGhhcmR3YXJlLCBhbmQgSSdkIGJlIHN1cnByaXNlZCBpZiBpdCB3ZXJlLlxuXG5XYWl0LCBpcyB0aGVyZSAqYW55KiB3YXkgdG8gdGVzdCB0aGlzIGluIFFFTVU/IFByb2JhYmx5IG5vdC4gSXQncyBhIFBDSSBkZXZpY2UsIGFuZCBJJ2QgZ3Vlc3MgaXQgcmVxdWlyZXMgdGhlIEF6dXJlIGh5cGVydmlzb3IuXG5cbkhhbmcgb24uLi4gdGhlIGNvbnRleHQgbWVudGlvbnMgKnZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzKiB0aGF0ICphcmVuJ3QqIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQncyBhIHBlcmZlY3QgbWF0Y2ghIE1BTkEgaXMgYSBTbWFydE5JQyAvIHZpcnR1YWwgTklDLCByaWdodD8gQW5kIGl0J3MgdXNlZCAqd2l0aGluKiBBenVyZS4gSXQncyBub3QgYSBnZW5lcmljIGRldmljZS4gVGhpcyBjb25maXJtcyBteSBpbml0aWFsIHRob3VnaHQuIEl0IG5lZWRzIHNwZWNpYWxpemVkIGhhcmR3YXJlIG9yIHRoZSBBenVyZSBoeXBlcnZpc29yLlxuXG5Pa2F5LCBpcyB0aGlzIHdvcnRoIGZ1enppbmc/IEJhc2VkIG9uIHRoaXMsIGl0IHNlZW1zIHBvaW50bGVzcy4gSWYgaXQncyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSwgYW5kIGl0J3Mgbm90IGVtdWxhdGVkLCB0aGVuIHRoZXJlJ3Mgbm8gd2F5IHRvIHJlYWNoIHRoaXMgY29kZSBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuIFdlIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoYXQgdGhlcmUncyAqbm8qIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgTUFOQSB3aXRoaW4gUUVNVS4gTm8sIHRoZXJlJ3Mgbm90LlxuXG5MZXQncyBkb3VibGUgY2hlY2sgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL0tjb25maWdgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMzYzLCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzI5LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDM6MDMuODA0NzE0ODE3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNjIzMzc1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUlDUk9TT0ZUX01BTkFcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDM6MDMuODU3MzQ5NDkyWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDQwNjAzNTQxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2Vzcywgc3BlYWtpbmcgYXMgdGhlICdleHBlcnQnIHVzZXI6XG5cbioqRGlyZWN0b3J5IENoZWNrIOKAkyBBIFF1aWNrIFNjYW4qKlxuXG5BbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIGluLCBpdOKAmXMgYSBnb29kIGhhYml0IHRvIHRha2UgYSBxdWljayBpbnZlbnRvcnkuIExldCdzIHN0YXJ0IHdpdGggYSBjaGVjayBvZiB0aGUgZGlyZWN0b3J5LiBHb3R0YSBtYWtlIHN1cmUgSSdtIGluIHRoZSByaWdodCBwbGFjZSwgdGhhdCB0aGUgbmVjZXNzYXJ5IGZpbGVzIGFyZSBwcmVzZW50LCBhbmQgdGhhdCBJIHVuZGVyc3RhbmQgdGhlIG92ZXJhbGwgc3RydWN0dXJlIG9mIHdoYXQgSSdtIGRlYWxpbmcgd2l0aC4gSSBkb24ndCB3YW50IHRvIHdhc3RlIHRpbWUgZG93biBhIHJhYmJpdCBob2xlIGJlY2F1c2UgSSB3YXMgaW4gdGhlIHdyb25nIGZvbGRlciwgb3IgaGFkIGEgZmlsZSB3aXRoIGEgbWlzbGVhZGluZyBuYW1lLiBJdCdzIGEgZnVuZGFtZW50YWwgcGFydCBvZiB0aGUgd29ya2Zsb3cuIE1ha2Ugc3VyZSB0aGF0IHRoZSBiYXNpY3MgYXJlIGNvdmVyZWQsIGFuZCB5b3UncmUgc2V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjozMTUyLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzowOC4yNjMzODc1MzdaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJjb2Rlc2VhcmNoLWRpci1pbmRleCIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1MjQwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRGlyXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmFcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRmlsZXNcIjogW1xuICAgIFwiZ2RtYV9tYWluLmNcIixcbiAgICBcImh3X2NoYW5uZWwuY1wiLFxuICAgIFwibWFuYV9icGYuY1wiLFxuICAgIFwibWFuYV9lbi5jXCIsXG4gICAgXCJtYW5hX2V0aHRvb2wuY1wiLFxuICAgIFwic2htX2NoYW5uZWwuY1wiXG4gIF0sXG4gIFwiU3ViZGlyc1wiOiBudWxsXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzowOC4yNjM0NDQ1NzdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NDg1NjAyMzYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipXaGVyZSdzIHRoZSBLY29uZmlnPyBBIFF1aWNrIENoZWNrcG9pbnQuKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEknbSBoaXR0aW5nIGEgcm9hZGJsb2NrLiBJJ20gaW4gdGhlIG1pZGRsZSBvZiB0aGlzIHByb2plY3QsIGRlZXAgaW4gdGhlIHdlZWRzIG9mIGNvbmZpZ3VyYXRpb24sIGFuZCBzdWRkZW5seeKApiAqd2FpdCouIEknbSBtaXNzaW5nIHNvbWV0aGluZyBmdW5kYW1lbnRhbC4gV2hlcmUncyB0aGUgYEtjb25maWdgIGZpbGU/IEl0J3Mgbm90IHdoZXJlIEkgZXhwZWN0IGl0IHRvIGJlLiBUaGlzIGlzbid0IGp1c3QgYSBtaW5vciBvdmVyc2lnaHQ7IHRoZSBLY29uZmlnIGlzIHRoZSBseW5jaHBpbiwgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIGFsbCBvZiBteSBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGl0IGlzIHRoZSBrZXkuIFdpdGhvdXQgaXQsIEknbSBmbHlpbmcgYmxpbmQsIG5hdmlnYXRpbmcgYSBtYXplIHdpdGhvdXQgYSBtYXAuIEkgaGF2ZSB0byBmaW5kIGl0IGltbWVkaWF0ZWx5LiBXaXRob3V0IGl0IEkgYW0gc3VuayEgVGhpcyBjb3VsZCBiZSBhIHRyaXZpYWwgdHlwbywgYSBkaXJlY3RvcnkgbWlzbWF0Y2gsIG9yIGEgbW9yZSBzZXJpb3VzIGlzc3VlIGxpa2UgYSBjb3JydXB0ZWQgYnVpbGQgZW52aXJvbm1lbnQuIExldCBtZSBydW4gYSBkaXJlY3RvcnkgbGlzdGluZyBhbmQgZ3JlcCBmb3IgJ0tjb25maWcnLi4uIEkgbmVlZCB0byBnZXQgdGhpcyBzb3J0ZWQgYmVmb3JlIEkgY2FuIHByb2NlZWQgYSBzaW5nbGUgc3RlcCBmdXJ0aGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDAxLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OCwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDM6MTUuNzQ5MDQ5Njg5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NTU4Nzc0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBNSUNST1NPRlRfTUFOQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvS2NvbmZpZz0xNj1pZiBORVRfVkVORE9SX01JQ1JPU09GVFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9LY29uZmlnLTE3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9LY29uZmlnOjE4OmNvbmZpZyBNSUNST1NPRlRfTUFOQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9LY29uZmlnLTE5LVxcdHRyaXN0YXRlIFxcXCJNaWNyb3NvZnQgQXp1cmUgTmV0d29yayBBZGFwdGVyIChNQU5BKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzoxNS44MDM2MTgxMjNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozODAwNTY1NTU0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIE1BTkEgRHJpdmVyIGFuZCBpdHMgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBNQU5BLCB0aGF0J3MgdGhlIFwiTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlci5cIiBSaWdodCwgSSByZW1lbWJlciBzZWVpbmcgdGhhdCBwb3AgdXAuIEEgUENJIGRldmljZSwgZ290IGl0LiBTaW5jZSBpdCdzIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSwgYSBkZWRpY2F0ZWQgUENJZSBkZXZpY2UgdG8gYmUgcHJlY2lzZSwgYW5kIG5vdCBzb21ldGhpbmcgZW11bGF0ZWQgd2l0aGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCwgSSBjYW4gaW1tZWRpYXRlbHkgcnVsZSBvdXQgdXNpbmcgc3l6a2FsbGVyIGluIGEgc3RyYWlnaHRmb3J3YXJkIG1hbm5lci4gVGhhdCBtZWFucyBzdGFuZGFyZCBzeXprYWxsZXIgc2V0dXAgd29uJ3QgYmUgYWJsZSB0byByZWFjaCBpdC4gQ29uc2VxdWVudGx5LCBubyBnbyBmb3IgZnV6emluZyBpbiB0aGUgY29udmVudGlvbmFsIHNlbnNlLiBTbywgYFdvcnRoRnV6emluZz1mYWxzZWAgaXMgdGhlIGNvcnJlY3QgY2FsbCBoZXJlLCBhdCBsZWFzdCB3aXRoIHdoYXQgSSBrbm93IHNvIGZhci4gUXVpY2sgY2hlY2sgdG8gY29uZmlybSBpdCdzIGEgUENJIGRyaXZlciBpcyBpbiBvcmRlciB0aG91Z2g7IHdhbnQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzY5LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjFUMTg6NDM6MTkuNjA0MTg3MzI3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NjQzNzA4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfcmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9taWNyb3NvZnQvbWFuYS9nZG1hX21haW4uYz0yNzM3PXN0YXRpYyBpbnQgX19pbml0IG1hbmFfZHJpdmVyX2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21pY3Jvc29mdC9tYW5hL2dkbWFfbWFpbi5jLTI3NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmM6Mjc0NzpcXHRlcnIgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtYW5hX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9zb2Z0L21hbmEvZ2RtYV9tYWluLmMtMjc0OC1cXHRpZiAoZXJyKSB7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTIxVDE4OjQzOjE5LjY5MDYzMTU1OFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NTY4MjQzNzE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipQQ0kgRHJpdmVyIEFzc2Vzc21lbnQgYW5kIEZ1enppbmcgRmVhc2liaWxpdHkqKlxuXG5BbHJpZ2h0LCB5ZXAsIGNvbmZpcm1lZC4gVGhpcyBpcyBpbmRlZWQgYSBQQ0kgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGNhdGVnb3JpemUgaXQgYXMgc29tZXRoaW5nIHRoYXQncyBsaWtlbHkgKm5vdCogd29ydGggYSBzdGFuZGFyZCBmdXp6aW5nIGVmZm9ydCwgYXQgbGVhc3Qgbm90IHdpdGhvdXQgc29tZSB2ZXJ5IHNpZ25pZmljYW50IGNhdmVhdHMuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBNaWNyb3NvZnQgQXp1cmUgTmV0d29yayBBZGFwdGVyLCBhbmQgdGhhdCdzIGEgcHJldHR5IGNsZWFyIGluZGljYXRvciBvZiBhIHNwZWNpYWxpemVkIHBpZWNlIG9mIGtpdC4gR2l2ZW4gdGhhdCBpdCdzIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlciwgbXkgYW5hbHlzaXMgcG9pbnRzIHRvd2FyZHMgYSB2ZXJ5IHRhcmdldGVkIGVudmlyb25tZW50IGRlcGVuZGVuY3kuIFRoZSBoYXJkd2FyZSBhbmQgaHlwZXJ2aXNvciByZXF1aXJlbWVudHMgdGhhdCBpdCdzIGRlc2lnbmVkIHRvIGludGVyZmFjZSB3aXRoIGFyZW4ndCBlYXNpbHkgZW11bGF0ZWQgb3IgcmVwcm9kdWNlZCB3aXRoaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50IOKAkyBhbmQgdGhhdCdzIHRoZSBzdGlja2luZyBwb2ludC4gVHJ5aW5nIHRvIGdldCB0aGlzIHRoaW5nIHRvIGJlaGF2ZSBzZW5zaWJseSwgYW5kIHRyaWdnZXIgdXNlZnVsIGZ1enppbmcgY292ZXJhZ2UgaW4gYSBnZW5lcmljIHNldHRpbmcgaXMgZ29pbmcgdG8gYmUgYW4gZXhlcmNpc2UgaW4gZnV0aWxpdHkuIFRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UuIFRoZSB1bmRlcmx5aW5nIGluZnJhc3RydWN0dXJlIHNpbXBseSB3b24ndCBwbGF5IGJhbGwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxOTYsIk91dHB1dFRva2VucyI6ODgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzoyNC4yNTg4Nzg1MTVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyODgyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlciAoTUFOQSkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSB0aGF0IHJlcXVpcmVzIHRoZSBBenVyZSBoeXBlcnZpc29yIG9yIHNwZWNpZmljIGhhcmR3YXJlLiBJdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZnV6emVkIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWljcm9zb2Z0IEF6dXJlIE5ldHdvcmsgQWRhcHRlciAoTUFOQSkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZSB0aGF0IHJlcXVpcmVzIHRoZSBBenVyZSBoeXBlcnZpc29yIG9yIHNwZWNpZmljIGhhcmR3YXJlLiBJdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBhbmQgdGhlcmVmb3JlIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZnV6emVkIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yMVQxODo0MzoyNC4yNTg5MTExNDVaIiwiU2VxIjoxMywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyNTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowk4wwf[1] Phase: Running StartedAt: 2026-08-21 18:43:34 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowk4wwf[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-21 18:43:34 +0000 UTC FinishedAt: 2026-08-21 18:43:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}