Name: series-workflowbrsqk Phase: Failed StartedAt: 2026-08-31 18:19:38 +0000 UTC FinishedAt: 2026-08-31 18:59:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbrsqk[0] Phase: Succeeded StartedAt: 2026-08-31 18:19:38 +0000 UTC FinishedAt: 2026-08-31 18:58:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbrsqk[0].run-triage Phase: Succeeded StartedAt: 2026-08-31 18:19:38 +0000 UTC FinishedAt: 2026-08-31 18:58:51 +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+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhNzliZDI0OGJjN2IzNmRlMzYwMzZiYmUxY2M4MDUyMmFiNmFkMjY3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMzEgMTg6NTc6NDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xuaW5kZXggYmYwNDBmMzRlNGI5Zi4uOTk1YTdmY2M0MTlmZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xuQEAgLTEyLDYgJiM0MzsxMiw5IEBAXG4gc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzkyNXVfZGV2aWNlX3RhYmxlW10gPSB7XG4gXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MGU4ZCwgMHg3OTI1LCAweGZmLCAweGZmLCAweGZmKSxcbiBcdFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxuJiM0MztcdC8qIE5ldGdlYXIsIEluYy4gQTg1MDAgKi9cbiYjNDM7XHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDUwLCAweGZmLCAweGZmLCAweGZmKSxcbiYjNDM7XHRcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcbiBcdC8qIE5ldGdlYXIsIEluYy4gQTkwMDAgKi9cbiBcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwODQ2LCAweDkwNzIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuIFx0XHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhNzliZDI0OGJjN2IzNmRlMzYwMzZiYmUxY2M4MDUyMmFiNmFkMjY3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMzEgMTg6NTc6NDQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jCmluZGV4IGJmMDQwZjM0ZTRiOWYuLjk5NWE3ZmNjNDE5ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jCkBAIC0xMiw2ICYjNDM7MTIsOSBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzkyNXVfZGV2aWNlX3RhYmxlW10gPSB7CiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDBlOGQsIDB4NzkyNSwgMHhmZiwgMHhmZiwgMHhmZiksCiAJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSwKJiM0MzsJLyogTmV0Z2VhciwgSW5jLiBBODUwMCAqLwomIzQzOwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDUwLCAweGZmLCAweGZmLCAweGZmKSwKJiM0MzsJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSwKIAkvKiBOZXRnZWFyLCBJbmMuIEE5MDAwICovCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA3MiwgMHhmZiwgMHhmZiwgMHhmZiksCiAJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3MQoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDUyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoOiBBZGRpbmcgYSBVU0IgRGV2aWNlIElEKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gSXQmIzM5O3MgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jYCwgYW5kIHNwZWNpZmljYWxseSwgaXQmIzM5O3MgaW50cm9kdWNpbmcgYSBuZXcgVVNCIGRldmljZSBJRDogYDB4MDg0NjoweDkwNTBgIGZvciBhIE5ldGdlYXIgQTg1MDAgZGV2aWNlLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgKmp1c3QqIGFkZGluZyBhIGRldmljZSBJRC4gRG9lcyB0aGlzIHRyaWdnZXIgbmV3IGNvZGUgcGF0aHMsIGludHJvZHVjZSBuZXcgbG9naWMsIG9yIGlzIGl0IHNpbXBseSBhbiBhZGRpdGlvbiB0byBhIHRhYmxlIG9mIHN1cHBvcnRlZCBkZXZpY2VzPwoKSSBoYXZlIHRvIGNhcmVmdWxseSBjb25zaWRlciB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgZ3VpZGluZyBwcmluY2lwbGUgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgYWRkaXRpb24gd2FycmFudHMgZnV6emluZy4gVGhlIGluc3RydWN0aW9ucyBhcmUgcHJldHR5IGNsZWFyIGFib3V0IHdoYXQmIzM5O3Mgbm90IHdvcnRoIGZ1enppbmcsIGFuZCBJIG5lZWQgdG8gc2VlIGlmIHRoaXMgZmFsbHMgaW50byBvbmUgb2YgdGhvc2UgY2F0ZWdvcmllcy4gRG9jdW1lbnRhdGlvbiBjaGFuZ2VzLCBsb2dnaW5nIG1vZGlmaWNhdGlvbnMsIGNvbnN0YW50IHVwZGF0ZXMsIHVucmVhY2hhYmxlIGNvZGUgaW4gZW11bGF0ZWQgZW52aXJvbm1lbnRzLCB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUsIGFuZCB0ZWFyZG93biBjYWxsYmFja3MgYXJlIGFsbCBleHBsaWNpdGx5IGV4Y2x1ZGVkLgoKU28sIGlzIGFkZGluZyBhIFVTQiBkZXZpY2UgSUQgZnVuY3Rpb25hbGx5IHNpZ25pZmljYW50PyBJdCYjMzk7cyBhZGRpbmcgYSBuZXcgZW50cnkgdG8gdGhlIGRyaXZlciYjMzk7cyBkZXZpY2UgdGFibGUuIFJhdyBHYWRnZXQgd2l0aCBzeXprYWxsZXIgKmNhbiogZW11bGF0ZSBhbnkgVVNCIGRldmljZSBJRC4gU28sIGluIHRoZW9yeSwgSSBjYW4gZnV6eiB0aGlzIGRldmljZSBJRCBub3cuCgpCdXQgbGV0JiMzOTtzIGJlIHRob3JvdWdoLiBUaGUgcXVlc3Rpb24gaXM6IERvZXMgYWRkaW5nIHRoaXMgZGV2aWNlIElEICphbHRlciogdGhlIGNvcmUgZHJpdmVyJiMzOTtzIGV4ZWN1dGlvbiBmbG93PyBJdCYjMzk7cyBhYm91dCBtb3JlIHRoYW4ganVzdCBtYXRjaGluZyBhIGRldmljZTsgaXTigJlzIGFib3V0IHdoYXQgdGhlIGRyaXZlciAqZG9lcyogd2hlbiBpdCBlbmNvdW50ZXJzIHRoYXQgSUQuIERvZXMgdGhlIG1lcmUgcHJlc2VuY2Ugb2YgdGhlIElEIGNoYW5nZSBhbnl0aGluZyBiZXlvbmQgYmFzaWMgZGV2aWNlIHJlY29nbml0aW9uPyBJIGhhdmUgdG8gYmUgMTAwJSBzdXJlIHRoaXMgaXNuJiMzOTt0IGEgVHJvamFuIGhvcnNlLiBJdCYjMzk7cyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyB0aGF0IHRoaXMgZG9lcy4KCkkgbmVlZCB0byBiZSBjZXJ0YWluLiBTbywgbGV0JiMzOTtzIHJlYWQgdGhlIHdob2xlIGZpbGUsIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY2AsIGFuZCBiZSBhYnNvbHV0ZWx5IHN1cmUgbm90aGluZyBlbHNlIHdhcyBtb2RpZmllZCB0aGF0IGNvdWxkIGNyZWF0ZSBhIG5ldyBjb2RlIHBhdGggb3IgZXhlY3V0aW9uIGZsb3cgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXG4gICAyOlx0LyogQ29weXJpZ2h0IChDKSAyMDIzIE1lZGlhVGVrIEluYy4gKi9cbiAgIDM6XHRcbiAgIDQ6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICAgNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gICA2Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvdXNiLmhcdTAwM2VcbiAgIDc6XHRcbiAgIDg6XHQjaW5jbHVkZSBcJiMzNDttdDc5MjUuaFwmIzM0O1xuICAgOTpcdCNpbmNsdWRlIFwmIzM0O21jdS5oXCYjMzQ7XG4gIDEwOlx0I2luY2x1ZGUgXCYjMzQ7bWFjLmhcJiMzNDtcbiAgMTE6XHRcbiAgMTI6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgbXQ3OTI1dV9kZXZpY2VfdGFibGVbXSA9IHtcbiAgMTM6XHRcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwZThkLCAweDc5MjUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAxNDpcdFx0XHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXG4gIDE1Olx0XHQvKiBOZXRnZWFyLCBJbmMuIEE4NTAwICovXG4gIDE2Olx0XHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDUwLCAweGZmLCAweGZmLCAweGZmKSxcbiAgMTc6XHRcdFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxuICAxODpcdFx0LyogTmV0Z2VhciwgSW5jLiBBOTAwMCAqL1xuICAxOTpcdFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA3MiwgMHhmZiwgMHhmZiwgMHhmZiksXG4gIDIwOlx0XHRcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcbiAgMjE6XHRcdHsgfSxcbiAgMjI6XHR9O1xuICAyMzpcdFxuICAyNDpcdHN0YXRpYyBpbnRcbiAgMjU6XHRtdDc5MjV1X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuICAyNjpcdFx0XHRcdCBpbnQgY21kLCBpbnQgKnNlcSlcbiAgMjc6XHR7XG4gIDI4Olx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5MnhfZGV2LCBtdDc2KTtcbiAgMjk6XHRcdHUzMiBwYWQsIGVwO1xuICAzMDpcdFx0aW50IHJldDtcbiAgMzE6XHRcbiAgMzI6XHRcdHJldCA9IG10NzkyNV9tY3VfZmlsbF9tZXNzYWdlKG1kZXYsIHNrYiwgY21kLCBzZXEpO1xuICAzMzpcdFx0aWYgKHJldClcbiAgMzQ6XHRcdFx0cmV0dXJuIHJldDtcbiAgMzU6XHRcbiAgMzY6XHRcdG1kZXYtXHUwMDNlbWN1LnRpbWVvdXQgPSAzICogSFo7XG4gIDM3Olx0XG4gIDM4Olx0XHRpZiAoY21kICE9IE1DVV9DTUQoRldfU0NBVFRFUikpXG4gIDM5Olx0XHRcdGVwID0gTVRfRVBfT1VUX0lOQkFORF9DTUQ7XG4gIDQwOlx0XHRlbHNlXG4gIDQxOlx0XHRcdGVwID0gTVRfRVBfT1VUX0FDX0JFO1xuICA0MjpcdFxuICA0MzpcdFx0bXQ3OTJ4X3NrYl9hZGRfdXNiX3NkaW9faGRyKGRldiwgc2tiLCAwKTtcbiAgNDQ6XHRcdHBhZCA9IHJvdW5kX3VwKHNrYi1cdTAwM2VsZW4sIDQpICYjNDM7IDQgLSBza2ItXHUwMDNlbGVuO1xuICA0NTpcdFx0X19za2JfcHV0X3plcm8oc2tiLCBwYWQpO1xuICA0NjpcdFxuICA0NzpcdFx0cmV0ID0gbXQ3NnVfYnVsa19tc2coXHUwMDI2ZGV2LVx1MDAzZW10NzYsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuLCBOVUxMLFxuICA0ODpcdFx0XHRcdCAgICAgMTAwMCwgZXApO1xuICA0OTpcdFx0ZGV2X2tmcmVlX3NrYihza2IpO1xuICA1MDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxNjQKCQkJCQkJCW91dHB1dDogODMKCQkJCQkJCXRob3VnaHRzOiA0MzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gmIzM5O3MgRnV6emluZyBXb3J0aGluZXNzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgc3RyYWlnaHRmb3J3YXJkOiBpdCYjMzk7cyBzaW1wbHkgYWRkaW5nIGEgbmV3IGVudHJ5IHRvIHRoZSBgbXQ3OTI1dV9kZXZpY2VfdGFibGVgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHJlZ2lzdGVyaW5nIGEgbmV3IFVTQiBkZXZpY2UgSUQgZm9yIGEgTmV0Z2VhciBBODUwMCAoMHgwODQ2LCAweDkwNTApIHdpdGggdGhlIHNhbWUgYGRyaXZlcl9pbmZvYCBhcyBvdGhlciBleGlzdGluZyBlbnRyaWVzIOKAkyBgTVQ3OTI1X0ZJUk1XQVJFX1dNYC4gU28sIHRoZSBjb3JlIHF1ZXN0aW9uIGlzOiBkb2VzIHRoaXMgcHVyZWx5IGRldmljZSBJRCBhZGRpdGlvbiB3YXJyYW50IGZ1enppbmcgZWZmb3J0cz8KCk15IGluaXRpYWwgYXNzZXNzbWVudCBpcyBuby4gVGhlIGRyaXZlciBsb2dpYyBpdHNlbGYgKnJlbWFpbnMgdW50b3VjaGVkKi4gVGhlIGRyaXZlciBhbHJlYWR5IHN1cHBvcnRzIGBNVDc5MjVfRklSTVdBUkVfV01gIGFuZCBoYW5kbGVzIG90aGVyIFZJRC9QSURzIGxpa2UgYDB4MGU4ZCwgMHg3OTI1YCBhbmQgYDB4MDg0NiwgMHg5MDcyYCB1c2luZyB0aGUgc2FtZSBgZHJpdmVyX2luZm9gLiBBZGRpbmcgdGhpcyBuZXcgZW50cnkgKm9ubHkqIGJpbmRzIHRoZSBleGlzdGluZywgcHJvdmVuIGRyaXZlciBjb2RlIHRvIGEgbmV3IFZJRC9QSUQgcGFpci4gVGhlcmUgYXJlIG5vIG5ldyBjb2RlIHBhdGhzLCBxdWlya3MsIG9yIGxvZ2ljIGludHJvZHVjZWQuIFRoaXMgaXMgZXNzZW50aWFsbHkganVzdCBleHRlbmRpbmcgdGhlIGRldmljZSBjb21wYXRpYmlsaXR5IGxpc3QuIEluIG90aGVyIHdvcmRzLCB0aGlzIGNoYW5nZSBwZXJmZWN0bHkgZml0cyB0aGUgY2F0ZWdvcnkgb2YgJiMzNDtjaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cmIzM0Oy4gVGhlcmUgYXJlIG5vIGNoYW5nZXMgdG8gZHJpdmVyIGV4ZWN1dGlvbiBmbG93IG9yIGFueSBuZXcgbG9naWMuCgpUaGVyZWZvcmUsIGFmdGVyIGNhcmVmdWwgcmV2aWV3LCBJJiMzOTttIGNvbmNsdWRpbmc6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIGFtIGNvbmZpZGVudCBpbiB0aGlzIGRlY2lzaW9uIGJhc2VkIG9uIHRoZSB1bmNoYW5nZWQgY29kZSBhbmQgZXhpc3RpbmcgZGV2aWNlIHN1cHBvcnQuIEFsbCBkZXRhaWxzIGhhdmUgYmVlbiB2ZXJpZmllZCwgYW5kIHRoZSBvdXRwdXQgaXMgcHJvcGVybHkgZm9ybWF0dGVkLiBOb3csIEkmIzM5O2xsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSBuZXcgVVNCIGRldmljZSBJRCAoTmV0Z2VhciBBODUwMCkgdG8gdGhlIG10NzkyNXVfZGV2aWNlX3RhYmxlIHdpdGggdGhlIHNhbWUgZHJpdmVyX2luZm8gYXMgZXhpc3RpbmcgZW50cmllcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBjb2RlIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjU3OjQ0Ljg3MzczNTE5M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0ODg2ODYzNzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjU3OjQ0Ljg3MzczOTQ0M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk5NzUwNDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTc5YmQyNDhiYzdiMzZkZTM2MDM2YmJlMWNjODA1MjJhYjZhZDI2N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzMSAxODo1Nzo0NCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXFxuaW5kZXggYmYwNDBmMzRlNGI5Zi4uOTk1YTdmY2M0MTlmZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXFxuQEAgLTEyLDYgKzEyLDkgQEBcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzkyNXVfZGV2aWNlX3RhYmxlW10gPSB7XFxuIFxcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwZThkLCAweDc5MjUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbiBcXHRcXHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXFxuK1xcdC8qIE5ldGdlYXIsIEluYy4gQTg1MDAgKi9cXG4rXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA1MCwgMHhmZiwgMHhmZiwgMHhmZiksXFxuK1xcdFxcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcXG4gXFx0LyogTmV0Z2VhciwgSW5jLiBBOTAwMCAqL1xcbiBcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDcyLCAweGZmLCAweGZmLCAweGZmKSxcXG4gXFx0XFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODo1Nzo0NS4yNzQwMzUxODNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjU0NDg2NTQ4NjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSBuZXcgVVNCIGRldmljZSBJRCAoTmV0Z2VhciBBODUwMCkgdG8gdGhlIG10NzkyNXVfZGV2aWNlX3RhYmxlIHdpdGggdGhlIHNhbWUgZHJpdmVyX2luZm8gYXMgZXhpc3RpbmcgZW50cmllcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBjb2RlIHBhdGhzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTc5YmQyNDhiYzdiMzZkZTM2MDM2YmJlMWNjODA1MjJhYjZhZDI2N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMxIDE4OjU3OjQ0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xuaW5kZXggYmYwNDBmMzRlNGI5Zi4uOTk1YTdmY2M0MTlmZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xuQEAgLTEyLDYgKzEyLDkgQEBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgbXQ3OTI1dV9kZXZpY2VfdGFibGVbXSA9IHtcbiBcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwZThkLCAweDc5MjUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuIFx0XHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXG4rXHQvKiBOZXRnZWFyLCBJbmMuIEE4NTAwICovXG4rXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDUwLCAweGZmLCAweGZmLCAweGZmKSxcbitcdFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxuIFx0LyogTmV0Z2VhciwgSW5jLiBBOTAwMCAqL1xuIFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA3MiwgMHhmZiwgMHhmZiwgMHhmZiksXG4gXHRcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjU3OjQ1LjI3NDAzNjQ4M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM3MjgwMTI2MzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IEFkZGluZyBhIFVTQiBEZXZpY2UgSUQqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaC4gSXQncyB0b3VjaGluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmNgLCBhbmQgc3BlY2lmaWNhbGx5LCBpdCdzIGludHJvZHVjaW5nIGEgbmV3IFVTQiBkZXZpY2UgSUQ6IGAweDA4NDY6MHg5MDUwYCBmb3IgYSBOZXRnZWFyIEE4NTAwIGRldmljZS4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mICpqdXN0KiBhZGRpbmcgYSBkZXZpY2UgSUQuIERvZXMgdGhpcyB0cmlnZ2VyIG5ldyBjb2RlIHBhdGhzLCBpbnRyb2R1Y2UgbmV3IGxvZ2ljLCBvciBpcyBpdCBzaW1wbHkgYW4gYWRkaXRpb24gdG8gYSB0YWJsZSBvZiBzdXBwb3J0ZWQgZGV2aWNlcz9cblxuSSBoYXZlIHRvIGNhcmVmdWxseSBjb25zaWRlciB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgZ3VpZGluZyBwcmluY2lwbGUgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgYWRkaXRpb24gd2FycmFudHMgZnV6emluZy4gVGhlIGluc3RydWN0aW9ucyBhcmUgcHJldHR5IGNsZWFyIGFib3V0IHdoYXQncyBub3Qgd29ydGggZnV6emluZywgYW5kIEkgbmVlZCB0byBzZWUgaWYgdGhpcyBmYWxscyBpbnRvIG9uZSBvZiB0aG9zZSBjYXRlZ29yaWVzLiBEb2N1bWVudGF0aW9uIGNoYW5nZXMsIGxvZ2dpbmcgbW9kaWZpY2F0aW9ucywgY29uc3RhbnQgdXBkYXRlcywgdW5yZWFjaGFibGUgY29kZSBpbiBlbXVsYXRlZCBlbnZpcm9ubWVudHMsIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRlYXJkb3duIGNhbGxiYWNrcyBhcmUgYWxsIGV4cGxpY2l0bHkgZXhjbHVkZWQuXG5cblNvLCBpcyBhZGRpbmcgYSBVU0IgZGV2aWNlIElEIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudD8gSXQncyBhZGRpbmcgYSBuZXcgZW50cnkgdG8gdGhlIGRyaXZlcidzIGRldmljZSB0YWJsZS4gUmF3IEdhZGdldCB3aXRoIHN5emthbGxlciAqY2FuKiBlbXVsYXRlIGFueSBVU0IgZGV2aWNlIElELiBTbywgaW4gdGhlb3J5LCBJIGNhbiBmdXp6IHRoaXMgZGV2aWNlIElEIG5vdy5cblxuQnV0IGxldCdzIGJlIHRob3JvdWdoLiBUaGUgcXVlc3Rpb24gaXM6IERvZXMgYWRkaW5nIHRoaXMgZGV2aWNlIElEICphbHRlciogdGhlIGNvcmUgZHJpdmVyJ3MgZXhlY3V0aW9uIGZsb3c/IEl0J3MgYWJvdXQgbW9yZSB0aGFuIGp1c3QgbWF0Y2hpbmcgYSBkZXZpY2U7IGl04oCZcyBhYm91dCB3aGF0IHRoZSBkcml2ZXIgKmRvZXMqIHdoZW4gaXQgZW5jb3VudGVycyB0aGF0IElELiBEb2VzIHRoZSBtZXJlIHByZXNlbmNlIG9mIHRoZSBJRCBjaGFuZ2UgYW55dGhpbmcgYmV5b25kIGJhc2ljIGRldmljZSByZWNvZ25pdGlvbj8gSSBoYXZlIHRvIGJlIDEwMCUgc3VyZSB0aGlzIGlzbid0IGEgVHJvamFuIGhvcnNlLiBJdCdzIG5vdCBpbW1lZGlhdGVseSBvYnZpb3VzIHRoYXQgdGhpcyBkb2VzLlxuXG5JIG5lZWQgdG8gYmUgY2VydGFpbi4gU28sIGxldCdzIHJlYWQgdGhlIHdob2xlIGZpbGUsIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY2AsIGFuZCBiZSBhYnNvbHV0ZWx5IHN1cmUgbm90aGluZyBlbHNlIHdhcyBtb2RpZmllZCB0aGF0IGNvdWxkIGNyZWF0ZSBhIG5ldyBjb2RlIHBhdGggb3IgZXhlY3V0aW9uIGZsb3cgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjcxLCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTI0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTg6NTg6MjIuNTU0MTY1MjAyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzcwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXFxuICAgMjpcXHQvKiBDb3B5cmlnaHQgKEMpIDIwMjMgTWVkaWFUZWsgSW5jLiAqL1xcbiAgIDM6XFx0XFxuICAgNDpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuICAgNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAgNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdXNiLmhcXHUwMDNlXFxuICAgNzpcXHRcXG4gICA4OlxcdCNpbmNsdWRlIFxcXCJtdDc5MjUuaFxcXCJcXG4gICA5OlxcdCNpbmNsdWRlIFxcXCJtY3UuaFxcXCJcXG4gIDEwOlxcdCNpbmNsdWRlIFxcXCJtYWMuaFxcXCJcXG4gIDExOlxcdFxcbiAgMTI6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzkyNXVfZGV2aWNlX3RhYmxlW10gPSB7XFxuICAxMzpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MGU4ZCwgMHg3OTI1LCAweGZmLCAweGZmLCAweGZmKSxcXG4gIDE0OlxcdFxcdFxcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcXG4gIDE1OlxcdFxcdC8qIE5ldGdlYXIsIEluYy4gQTg1MDAgKi9cXG4gIDE2OlxcdFxcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwODQ2LCAweDkwNTAsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbiAgMTc6XFx0XFx0XFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxcbiAgMTg6XFx0XFx0LyogTmV0Z2VhciwgSW5jLiBBOTAwMCAqL1xcbiAgMTk6XFx0XFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA3MiwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAyMDpcXHRcXHRcXHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXFxuICAyMTpcXHRcXHR7IH0sXFxuICAyMjpcXHR9O1xcbiAgMjM6XFx0XFxuICAyNDpcXHRzdGF0aWMgaW50XFxuICAyNTpcXHRtdDc5MjV1X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiAgMjY6XFx0XFx0XFx0XFx0IGludCBjbWQsIGludCAqc2VxKVxcbiAgMjc6XFx0e1xcbiAgMjg6XFx0XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuICAyOTpcXHRcXHR1MzIgcGFkLCBlcDtcXG4gIDMwOlxcdFxcdGludCByZXQ7XFxuICAzMTpcXHRcXG4gIDMyOlxcdFxcdHJldCA9IG10NzkyNV9tY3VfZmlsbF9tZXNzYWdlKG1kZXYsIHNrYiwgY21kLCBzZXEpO1xcbiAgMzM6XFx0XFx0aWYgKHJldClcXG4gIDM0OlxcdFxcdFxcdHJldHVybiByZXQ7XFxuICAzNTpcXHRcXG4gIDM2OlxcdFxcdG1kZXYtXFx1MDAzZW1jdS50aW1lb3V0ID0gMyAqIEhaO1xcbiAgMzc6XFx0XFxuICAzODpcXHRcXHRpZiAoY21kICE9IE1DVV9DTUQoRldfU0NBVFRFUikpXFxuICAzOTpcXHRcXHRcXHRlcCA9IE1UX0VQX09VVF9JTkJBTkRfQ01EO1xcbiAgNDA6XFx0XFx0ZWxzZVxcbiAgNDE6XFx0XFx0XFx0ZXAgPSBNVF9FUF9PVVRfQUNfQkU7XFxuICA0MjpcXHRcXG4gIDQzOlxcdFxcdG10NzkyeF9za2JfYWRkX3VzYl9zZGlvX2hkcihkZXYsIHNrYiwgMCk7XFxuICA0NDpcXHRcXHRwYWQgPSByb3VuZF91cChza2ItXFx1MDAzZWxlbiwgNCkgKyA0IC0gc2tiLVxcdTAwM2VsZW47XFxuICA0NTpcXHRcXHRfX3NrYl9wdXRfemVybyhza2IsIHBhZCk7XFxuICA0NjpcXHRcXG4gIDQ3OlxcdFxcdHJldCA9IG10NzZ1X2J1bGtfbXNnKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIHNrYi1cXHUwMDNlZGF0YSwgc2tiLVxcdTAwM2VsZW4sIE5VTEwsXFxuICA0ODpcXHRcXHRcXHRcXHQgICAgIDEwMDAsIGVwKTtcXG4gIDQ5OlxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4gIDUwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODo1ODoyMi41NTQyNDQwMjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxNzIwNjMxNTc4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBwYXRjaCBpcyBzdHJhaWdodGZvcndhcmQ6IGl0J3Mgc2ltcGx5IGFkZGluZyBhIG5ldyBlbnRyeSB0byB0aGUgYG10NzkyNXVfZGV2aWNlX3RhYmxlYC4gU3BlY2lmaWNhbGx5LCBpdCdzIHJlZ2lzdGVyaW5nIGEgbmV3IFVTQiBkZXZpY2UgSUQgZm9yIGEgTmV0Z2VhciBBODUwMCAoMHgwODQ2LCAweDkwNTApIHdpdGggdGhlIHNhbWUgYGRyaXZlcl9pbmZvYCBhcyBvdGhlciBleGlzdGluZyBlbnRyaWVzIOKAkyBgTVQ3OTI1X0ZJUk1XQVJFX1dNYC4gU28sIHRoZSBjb3JlIHF1ZXN0aW9uIGlzOiBkb2VzIHRoaXMgcHVyZWx5IGRldmljZSBJRCBhZGRpdGlvbiB3YXJyYW50IGZ1enppbmcgZWZmb3J0cz9cblxuTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIG5vLiBUaGUgZHJpdmVyIGxvZ2ljIGl0c2VsZiAqcmVtYWlucyB1bnRvdWNoZWQqLiBUaGUgZHJpdmVyIGFscmVhZHkgc3VwcG9ydHMgYE1UNzkyNV9GSVJNV0FSRV9XTWAgYW5kIGhhbmRsZXMgb3RoZXIgVklEL1BJRHMgbGlrZSBgMHgwZThkLCAweDc5MjVgIGFuZCBgMHgwODQ2LCAweDkwNzJgIHVzaW5nIHRoZSBzYW1lIGBkcml2ZXJfaW5mb2AuIEFkZGluZyB0aGlzIG5ldyBlbnRyeSAqb25seSogYmluZHMgdGhlIGV4aXN0aW5nLCBwcm92ZW4gZHJpdmVyIGNvZGUgdG8gYSBuZXcgVklEL1BJRCBwYWlyLiBUaGVyZSBhcmUgbm8gbmV3IGNvZGUgcGF0aHMsIHF1aXJrcywgb3IgbG9naWMgaW50cm9kdWNlZC4gVGhpcyBpcyBlc3NlbnRpYWxseSBqdXN0IGV4dGVuZGluZyB0aGUgZGV2aWNlIGNvbXBhdGliaWxpdHkgbGlzdC4gSW4gb3RoZXIgd29yZHMsIHRoaXMgY2hhbmdlIHBlcmZlY3RseSBmaXRzIHRoZSBjYXRlZ29yeSBvZiBcImNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvd1wiLiBUaGVyZSBhcmUgbm8gY2hhbmdlcyB0byBkcml2ZXIgZXhlY3V0aW9uIGZsb3cgb3IgYW55IG5ldyBsb2dpYy5cblxuVGhlcmVmb3JlLCBhZnRlciBjYXJlZnVsIHJldmlldywgSSdtIGNvbmNsdWRpbmc6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIGFtIGNvbmZpZGVudCBpbiB0aGlzIGRlY2lzaW9uIGJhc2VkIG9uIHRoZSB1bmNoYW5nZWQgY29kZSBhbmQgZXhpc3RpbmcgZGV2aWNlIHN1cHBvcnQuIEFsbCBkZXRhaWxzIGhhdmUgYmVlbiB2ZXJpZmllZCwgYW5kIHRoZSBvdXRwdXQgaXMgcHJvcGVybHkgZm9ybWF0dGVkLiBOb3csIEknbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE2NCwiT3V0cHV0VG9rZW5zIjo4MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzMCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjU4OjM5Ljc2MDU2MjA0OFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk5NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBVU0IgZGV2aWNlIElEIChOZXRnZWFyIEE4NTAwKSB0byB0aGUgbXQ3OTI1dV9kZXZpY2VfdGFibGUgd2l0aCB0aGUgc2FtZSBkcml2ZXJfaW5mbyBhcyBleGlzdGluZyBlbnRyaWVzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGNvZGUgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODo1ODozOS43NjA1ODU3MDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbrsqk[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-31 18:19:38 +0000 UTC FinishedAt: 2026-08-31 18:58:41 +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+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjU3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBhNzliZDI0OGJjN2IzNmRlMzYwMzZiYmUxY2M4MDUyMmFiNmFkMjY3XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMzEgMTg6NTc6NDQgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xuaW5kZXggYmYwNDBmMzRlNGI5Zi4uOTk1YTdmY2M0MTlmZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xuQEAgLTEyLDYgJiM0MzsxMiw5IEBAXG4gc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzkyNXVfZGV2aWNlX3RhYmxlW10gPSB7XG4gXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MGU4ZCwgMHg3OTI1LCAweGZmLCAweGZmLCAweGZmKSxcbiBcdFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxuJiM0MztcdC8qIE5ldGdlYXIsIEluYy4gQTg1MDAgKi9cbiYjNDM7XHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDUwLCAweGZmLCAweGZmLCAweGZmKSxcbiYjNDM7XHRcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcbiBcdC8qIE5ldGdlYXIsIEluYy4gQTkwMDAgKi9cbiBcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwODQ2LCAweDkwNzIsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuIFx0XHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTc8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhNzliZDI0OGJjN2IzNmRlMzYwMzZiYmUxY2M4MDUyMmFiNmFkMjY3CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIE1vbiBBdWcgMzEgMTg6NTc6NDQgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jCmluZGV4IGJmMDQwZjM0ZTRiOWYuLjk5NWE3ZmNjNDE5ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jCkBAIC0xMiw2ICYjNDM7MTIsOSBAQAogc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzkyNXVfZGV2aWNlX3RhYmxlW10gPSB7CiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDBlOGQsIDB4NzkyNSwgMHhmZiwgMHhmZiwgMHhmZiksCiAJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSwKJiM0MzsJLyogTmV0Z2VhciwgSW5jLiBBODUwMCAqLwomIzQzOwl7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDUwLCAweGZmLCAweGZmLCAweGZmKSwKJiM0MzsJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSwKIAkvKiBOZXRnZWFyLCBJbmMuIEE5MDAwICovCiAJeyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA3MiwgMHhmZiwgMHhmZiwgMHhmZiksCiAJCS5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSwKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3MQoJCQkJCQkJb3V0cHV0OiA0OAoJCQkJCQkJdGhvdWdodHM6IDUyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFBhdGNoOiBBZGRpbmcgYSBVU0IgRGV2aWNlIElEKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBwYXRjaC4gSXQmIzM5O3MgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jYCwgYW5kIHNwZWNpZmljYWxseSwgaXQmIzM5O3MgaW50cm9kdWNpbmcgYSBuZXcgVVNCIGRldmljZSBJRDogYDB4MDg0NjoweDkwNTBgIGZvciBhIE5ldGdlYXIgQTg1MDAgZGV2aWNlLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byB1bmRlcnN0YW5kIHRoZSBpbXBhY3Qgb2YgKmp1c3QqIGFkZGluZyBhIGRldmljZSBJRC4gRG9lcyB0aGlzIHRyaWdnZXIgbmV3IGNvZGUgcGF0aHMsIGludHJvZHVjZSBuZXcgbG9naWMsIG9yIGlzIGl0IHNpbXBseSBhbiBhZGRpdGlvbiB0byBhIHRhYmxlIG9mIHN1cHBvcnRlZCBkZXZpY2VzPwoKSSBoYXZlIHRvIGNhcmVmdWxseSBjb25zaWRlciB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgZ3VpZGluZyBwcmluY2lwbGUgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgYWRkaXRpb24gd2FycmFudHMgZnV6emluZy4gVGhlIGluc3RydWN0aW9ucyBhcmUgcHJldHR5IGNsZWFyIGFib3V0IHdoYXQmIzM5O3Mgbm90IHdvcnRoIGZ1enppbmcsIGFuZCBJIG5lZWQgdG8gc2VlIGlmIHRoaXMgZmFsbHMgaW50byBvbmUgb2YgdGhvc2UgY2F0ZWdvcmllcy4gRG9jdW1lbnRhdGlvbiBjaGFuZ2VzLCBsb2dnaW5nIG1vZGlmaWNhdGlvbnMsIGNvbnN0YW50IHVwZGF0ZXMsIHVucmVhY2hhYmxlIGNvZGUgaW4gZW11bGF0ZWQgZW52aXJvbm1lbnRzLCB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVycyByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUsIGFuZCB0ZWFyZG93biBjYWxsYmFja3MgYXJlIGFsbCBleHBsaWNpdGx5IGV4Y2x1ZGVkLgoKU28sIGlzIGFkZGluZyBhIFVTQiBkZXZpY2UgSUQgZnVuY3Rpb25hbGx5IHNpZ25pZmljYW50PyBJdCYjMzk7cyBhZGRpbmcgYSBuZXcgZW50cnkgdG8gdGhlIGRyaXZlciYjMzk7cyBkZXZpY2UgdGFibGUuIFJhdyBHYWRnZXQgd2l0aCBzeXprYWxsZXIgKmNhbiogZW11bGF0ZSBhbnkgVVNCIGRldmljZSBJRC4gU28sIGluIHRoZW9yeSwgSSBjYW4gZnV6eiB0aGlzIGRldmljZSBJRCBub3cuCgpCdXQgbGV0JiMzOTtzIGJlIHRob3JvdWdoLiBUaGUgcXVlc3Rpb24gaXM6IERvZXMgYWRkaW5nIHRoaXMgZGV2aWNlIElEICphbHRlciogdGhlIGNvcmUgZHJpdmVyJiMzOTtzIGV4ZWN1dGlvbiBmbG93PyBJdCYjMzk7cyBhYm91dCBtb3JlIHRoYW4ganVzdCBtYXRjaGluZyBhIGRldmljZTsgaXTigJlzIGFib3V0IHdoYXQgdGhlIGRyaXZlciAqZG9lcyogd2hlbiBpdCBlbmNvdW50ZXJzIHRoYXQgSUQuIERvZXMgdGhlIG1lcmUgcHJlc2VuY2Ugb2YgdGhlIElEIGNoYW5nZSBhbnl0aGluZyBiZXlvbmQgYmFzaWMgZGV2aWNlIHJlY29nbml0aW9uPyBJIGhhdmUgdG8gYmUgMTAwJSBzdXJlIHRoaXMgaXNuJiMzOTt0IGEgVHJvamFuIGhvcnNlLiBJdCYjMzk7cyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyB0aGF0IHRoaXMgZG9lcy4KCkkgbmVlZCB0byBiZSBjZXJ0YWluLiBTbywgbGV0JiMzOTtzIHJlYWQgdGhlIHdob2xlIGZpbGUsIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY2AsIGFuZCBiZSBhYnNvbHV0ZWx5IHN1cmUgbm90aGluZyBlbHNlIHdhcyBtb2RpZmllZCB0aGF0IGNvdWxkIGNyZWF0ZSBhIG5ldyBjb2RlIHBhdGggb3IgZXhlY3V0aW9uIGZsb3cgY2hhbmdlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXG4gICAyOlx0LyogQ29weXJpZ2h0IChDKSAyMDIzIE1lZGlhVGVrIEluYy4gKi9cbiAgIDM6XHRcbiAgIDQ6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9rZXJuZWwuaFx1MDAzZVxuICAgNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L21vZHVsZS5oXHUwMDNlXG4gICA2Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvdXNiLmhcdTAwM2VcbiAgIDc6XHRcbiAgIDg6XHQjaW5jbHVkZSBcJiMzNDttdDc5MjUuaFwmIzM0O1xuICAgOTpcdCNpbmNsdWRlIFwmIzM0O21jdS5oXCYjMzQ7XG4gIDEwOlx0I2luY2x1ZGUgXCYjMzQ7bWFjLmhcJiMzNDtcbiAgMTE6XHRcbiAgMTI6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgbXQ3OTI1dV9kZXZpY2VfdGFibGVbXSA9IHtcbiAgMTM6XHRcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwZThkLCAweDc5MjUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuICAxNDpcdFx0XHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXG4gIDE1Olx0XHQvKiBOZXRnZWFyLCBJbmMuIEE4NTAwICovXG4gIDE2Olx0XHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDUwLCAweGZmLCAweGZmLCAweGZmKSxcbiAgMTc6XHRcdFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxuICAxODpcdFx0LyogTmV0Z2VhciwgSW5jLiBBOTAwMCAqL1xuICAxOTpcdFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA3MiwgMHhmZiwgMHhmZiwgMHhmZiksXG4gIDIwOlx0XHRcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcbiAgMjE6XHRcdHsgfSxcbiAgMjI6XHR9O1xuICAyMzpcdFxuICAyNDpcdHN0YXRpYyBpbnRcbiAgMjU6XHRtdDc5MjV1X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuICAyNjpcdFx0XHRcdCBpbnQgY21kLCBpbnQgKnNlcSlcbiAgMjc6XHR7XG4gIDI4Olx0XHRzdHJ1Y3QgbXQ3OTJ4X2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5MnhfZGV2LCBtdDc2KTtcbiAgMjk6XHRcdHUzMiBwYWQsIGVwO1xuICAzMDpcdFx0aW50IHJldDtcbiAgMzE6XHRcbiAgMzI6XHRcdHJldCA9IG10NzkyNV9tY3VfZmlsbF9tZXNzYWdlKG1kZXYsIHNrYiwgY21kLCBzZXEpO1xuICAzMzpcdFx0aWYgKHJldClcbiAgMzQ6XHRcdFx0cmV0dXJuIHJldDtcbiAgMzU6XHRcbiAgMzY6XHRcdG1kZXYtXHUwMDNlbWN1LnRpbWVvdXQgPSAzICogSFo7XG4gIDM3Olx0XG4gIDM4Olx0XHRpZiAoY21kICE9IE1DVV9DTUQoRldfU0NBVFRFUikpXG4gIDM5Olx0XHRcdGVwID0gTVRfRVBfT1VUX0lOQkFORF9DTUQ7XG4gIDQwOlx0XHRlbHNlXG4gIDQxOlx0XHRcdGVwID0gTVRfRVBfT1VUX0FDX0JFO1xuICA0MjpcdFxuICA0MzpcdFx0bXQ3OTJ4X3NrYl9hZGRfdXNiX3NkaW9faGRyKGRldiwgc2tiLCAwKTtcbiAgNDQ6XHRcdHBhZCA9IHJvdW5kX3VwKHNrYi1cdTAwM2VsZW4sIDQpICYjNDM7IDQgLSBza2ItXHUwMDNlbGVuO1xuICA0NTpcdFx0X19za2JfcHV0X3plcm8oc2tiLCBwYWQpO1xuICA0NjpcdFxuICA0NzpcdFx0cmV0ID0gbXQ3NnVfYnVsa19tc2coXHUwMDI2ZGV2LVx1MDAzZW10NzYsIHNrYi1cdTAwM2VkYXRhLCBza2ItXHUwMDNlbGVuLCBOVUxMLFxuICA0ODpcdFx0XHRcdCAgICAgMTAwMCwgZXApO1xuICA0OTpcdFx0ZGV2X2tmcmVlX3NrYihza2IpO1xuICA1MDpcdFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE4OjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQxNjQKCQkJCQkJCW91dHB1dDogODMKCQkJCQkJCXRob3VnaHRzOiA0MzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgUGF0Y2gmIzM5O3MgRnV6emluZyBXb3J0aGluZXNzKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIFRoaXMgcGF0Y2ggaXMgc3RyYWlnaHRmb3J3YXJkOiBpdCYjMzk7cyBzaW1wbHkgYWRkaW5nIGEgbmV3IGVudHJ5IHRvIHRoZSBgbXQ3OTI1dV9kZXZpY2VfdGFibGVgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHJlZ2lzdGVyaW5nIGEgbmV3IFVTQiBkZXZpY2UgSUQgZm9yIGEgTmV0Z2VhciBBODUwMCAoMHgwODQ2LCAweDkwNTApIHdpdGggdGhlIHNhbWUgYGRyaXZlcl9pbmZvYCBhcyBvdGhlciBleGlzdGluZyBlbnRyaWVzIOKAkyBgTVQ3OTI1X0ZJUk1XQVJFX1dNYC4gU28sIHRoZSBjb3JlIHF1ZXN0aW9uIGlzOiBkb2VzIHRoaXMgcHVyZWx5IGRldmljZSBJRCBhZGRpdGlvbiB3YXJyYW50IGZ1enppbmcgZWZmb3J0cz8KCk15IGluaXRpYWwgYXNzZXNzbWVudCBpcyBuby4gVGhlIGRyaXZlciBsb2dpYyBpdHNlbGYgKnJlbWFpbnMgdW50b3VjaGVkKi4gVGhlIGRyaXZlciBhbHJlYWR5IHN1cHBvcnRzIGBNVDc5MjVfRklSTVdBUkVfV01gIGFuZCBoYW5kbGVzIG90aGVyIFZJRC9QSURzIGxpa2UgYDB4MGU4ZCwgMHg3OTI1YCBhbmQgYDB4MDg0NiwgMHg5MDcyYCB1c2luZyB0aGUgc2FtZSBgZHJpdmVyX2luZm9gLiBBZGRpbmcgdGhpcyBuZXcgZW50cnkgKm9ubHkqIGJpbmRzIHRoZSBleGlzdGluZywgcHJvdmVuIGRyaXZlciBjb2RlIHRvIGEgbmV3IFZJRC9QSUQgcGFpci4gVGhlcmUgYXJlIG5vIG5ldyBjb2RlIHBhdGhzLCBxdWlya3MsIG9yIGxvZ2ljIGludHJvZHVjZWQuIFRoaXMgaXMgZXNzZW50aWFsbHkganVzdCBleHRlbmRpbmcgdGhlIGRldmljZSBjb21wYXRpYmlsaXR5IGxpc3QuIEluIG90aGVyIHdvcmRzLCB0aGlzIGNoYW5nZSBwZXJmZWN0bHkgZml0cyB0aGUgY2F0ZWdvcnkgb2YgJiMzNDtjaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cmIzM0Oy4gVGhlcmUgYXJlIG5vIGNoYW5nZXMgdG8gZHJpdmVyIGV4ZWN1dGlvbiBmbG93IG9yIGFueSBuZXcgbG9naWMuCgpUaGVyZWZvcmUsIGFmdGVyIGNhcmVmdWwgcmV2aWV3LCBJJiMzOTttIGNvbmNsdWRpbmc6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIGFtIGNvbmZpZGVudCBpbiB0aGlzIGRlY2lzaW9uIGJhc2VkIG9uIHRoZSB1bmNoYW5nZWQgY29kZSBhbmQgZXhpc3RpbmcgZGV2aWNlIHN1cHBvcnQuIEFsbCBkZXRhaWxzIGhhdmUgYmVlbiB2ZXJpZmllZCwgYW5kIHRoZSBvdXRwdXQgaXMgcHJvcGVybHkgZm9ybWF0dGVkLiBOb3csIEkmIzM5O2xsIGBzZXQtcmVzdWx0c2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBvbmx5IGFkZHMgYSBuZXcgVVNCIGRldmljZSBJRCAoTmV0Z2VhciBBODUwMCkgdG8gdGhlIG10NzkyNXVfZGV2aWNlX3RhYmxlIHdpdGggdGhlIHNhbWUgZHJpdmVyX2luZm8gYXMgZXhpc3RpbmcgZW50cmllcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBjb2RlIHBhdGhzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTg6NTg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjU3OjQ0Ljg3MzczNTE5M1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0ODg2ODYzNzg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjU3OjQ0Ljg3MzczOTQ0M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk5NzUwNDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYTc5YmQyNDhiYzdiMzZkZTM2MDM2YmJlMWNjODA1MjJhYjZhZDI2N1xcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzMSAxODo1Nzo0NCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXFxuaW5kZXggYmYwNDBmMzRlNGI5Zi4uOTk1YTdmY2M0MTlmZCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXFxuQEAgLTEyLDYgKzEyLDkgQEBcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzkyNXVfZGV2aWNlX3RhYmxlW10gPSB7XFxuIFxcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwZThkLCAweDc5MjUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbiBcXHRcXHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXFxuK1xcdC8qIE5ldGdlYXIsIEluYy4gQTg1MDAgKi9cXG4rXFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA1MCwgMHhmZiwgMHhmZiwgMHhmZiksXFxuK1xcdFxcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcXG4gXFx0LyogTmV0Z2VhciwgSW5jLiBBOTAwMCAqL1xcbiBcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDcyLCAweGZmLCAweGZmLCAweGZmKSxcXG4gXFx0XFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODo1Nzo0NS4yNzQwMzUxODNaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjU0NDg2NTQ4NjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBvbmx5IGFkZHMgYSBuZXcgVVNCIGRldmljZSBJRCAoTmV0Z2VhciBBODUwMCkgdG8gdGhlIG10NzkyNXVfZGV2aWNlX3RhYmxlIHdpdGggdGhlIHNhbWUgZHJpdmVyX2luZm8gYXMgZXhpc3RpbmcgZW50cmllcy4gSXQgZG9lcyBub3QgaW50cm9kdWNlIGFueSBuZXcgZnVuY3Rpb25hbCBsb2dpYyBvciBjb2RlIHBhdGhzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYTc5YmQyNDhiYzdiMzZkZTM2MDM2YmJlMWNjODA1MjJhYjZhZDI2N1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMxIDE4OjU3OjQ0IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xuaW5kZXggYmYwNDBmMzRlNGI5Zi4uOTk1YTdmY2M0MTlmZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTI1L3VzYi5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY1xuQEAgLTEyLDYgKzEyLDkgQEBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgbXQ3OTI1dV9kZXZpY2VfdGFibGVbXSA9IHtcbiBcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwZThkLCAweDc5MjUsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxuIFx0XHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXG4rXHQvKiBOZXRnZWFyLCBJbmMuIEE4NTAwICovXG4rXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MDg0NiwgMHg5MDUwLCAweGZmLCAweGZmLCAweGZmKSxcbitcdFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxuIFx0LyogTmV0Z2VhciwgSW5jLiBBOTAwMCAqL1xuIFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA3MiwgMHhmZiwgMHhmZiwgMHhmZiksXG4gXHRcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjU3OjQ1LjI3NDAzNjQ4M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM3MjgwMTI2MzQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2g6IEFkZGluZyBhIFVTQiBEZXZpY2UgSUQqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcyBwYXRjaC4gSXQncyB0b3VjaGluZyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmNgLCBhbmQgc3BlY2lmaWNhbGx5LCBpdCdzIGludHJvZHVjaW5nIGEgbmV3IFVTQiBkZXZpY2UgSUQ6IGAweDA4NDY6MHg5MDUwYCBmb3IgYSBOZXRnZWFyIEE4NTAwIGRldmljZS4gTXkgZmlyc3QgaW5zdGluY3QgaXMgdG8gdW5kZXJzdGFuZCB0aGUgaW1wYWN0IG9mICpqdXN0KiBhZGRpbmcgYSBkZXZpY2UgSUQuIERvZXMgdGhpcyB0cmlnZ2VyIG5ldyBjb2RlIHBhdGhzLCBpbnRyb2R1Y2UgbmV3IGxvZ2ljLCBvciBpcyBpdCBzaW1wbHkgYW4gYWRkaXRpb24gdG8gYSB0YWJsZSBvZiBzdXBwb3J0ZWQgZGV2aWNlcz9cblxuSSBoYXZlIHRvIGNhcmVmdWxseSBjb25zaWRlciB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgZ3VpZGluZyBwcmluY2lwbGUgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgYWRkaXRpb24gd2FycmFudHMgZnV6emluZy4gVGhlIGluc3RydWN0aW9ucyBhcmUgcHJldHR5IGNsZWFyIGFib3V0IHdoYXQncyBub3Qgd29ydGggZnV6emluZywgYW5kIEkgbmVlZCB0byBzZWUgaWYgdGhpcyBmYWxscyBpbnRvIG9uZSBvZiB0aG9zZSBjYXRlZ29yaWVzLiBEb2N1bWVudGF0aW9uIGNoYW5nZXMsIGxvZ2dpbmcgbW9kaWZpY2F0aW9ucywgY29uc3RhbnQgdXBkYXRlcywgdW5yZWFjaGFibGUgY29kZSBpbiBlbXVsYXRlZCBlbnZpcm9ubWVudHMsIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRlYXJkb3duIGNhbGxiYWNrcyBhcmUgYWxsIGV4cGxpY2l0bHkgZXhjbHVkZWQuXG5cblNvLCBpcyBhZGRpbmcgYSBVU0IgZGV2aWNlIElEIGZ1bmN0aW9uYWxseSBzaWduaWZpY2FudD8gSXQncyBhZGRpbmcgYSBuZXcgZW50cnkgdG8gdGhlIGRyaXZlcidzIGRldmljZSB0YWJsZS4gUmF3IEdhZGdldCB3aXRoIHN5emthbGxlciAqY2FuKiBlbXVsYXRlIGFueSBVU0IgZGV2aWNlIElELiBTbywgaW4gdGhlb3J5LCBJIGNhbiBmdXp6IHRoaXMgZGV2aWNlIElEIG5vdy5cblxuQnV0IGxldCdzIGJlIHRob3JvdWdoLiBUaGUgcXVlc3Rpb24gaXM6IERvZXMgYWRkaW5nIHRoaXMgZGV2aWNlIElEICphbHRlciogdGhlIGNvcmUgZHJpdmVyJ3MgZXhlY3V0aW9uIGZsb3c/IEl0J3MgYWJvdXQgbW9yZSB0aGFuIGp1c3QgbWF0Y2hpbmcgYSBkZXZpY2U7IGl04oCZcyBhYm91dCB3aGF0IHRoZSBkcml2ZXIgKmRvZXMqIHdoZW4gaXQgZW5jb3VudGVycyB0aGF0IElELiBEb2VzIHRoZSBtZXJlIHByZXNlbmNlIG9mIHRoZSBJRCBjaGFuZ2UgYW55dGhpbmcgYmV5b25kIGJhc2ljIGRldmljZSByZWNvZ25pdGlvbj8gSSBoYXZlIHRvIGJlIDEwMCUgc3VyZSB0aGlzIGlzbid0IGEgVHJvamFuIGhvcnNlLiBJdCdzIG5vdCBpbW1lZGlhdGVseSBvYnZpb3VzIHRoYXQgdGhpcyBkb2VzLlxuXG5JIG5lZWQgdG8gYmUgY2VydGFpbi4gU28sIGxldCdzIHJlYWQgdGhlIHdob2xlIGZpbGUsIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkyNS91c2IuY2AsIGFuZCBiZSBhYnNvbHV0ZWx5IHN1cmUgbm90aGluZyBlbHNlIHdhcyBtb2RpZmllZCB0aGF0IGNvdWxkIGNyZWF0ZSBhIG5ldyBjb2RlIHBhdGggb3IgZXhlY3V0aW9uIGZsb3cgY2hhbmdlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjcxLCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTI0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTg6NTg6MjIuNTU0MTY1MjAyWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzcwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MjUvdXNiLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogSVNDXFxuICAgMjpcXHQvKiBDb3B5cmlnaHQgKEMpIDIwMjMgTWVkaWFUZWsgSW5jLiAqL1xcbiAgIDM6XFx0XFxuICAgNDpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgva2VybmVsLmhcXHUwMDNlXFxuICAgNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbW9kdWxlLmhcXHUwMDNlXFxuICAgNjpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvdXNiLmhcXHUwMDNlXFxuICAgNzpcXHRcXG4gICA4OlxcdCNpbmNsdWRlIFxcXCJtdDc5MjUuaFxcXCJcXG4gICA5OlxcdCNpbmNsdWRlIFxcXCJtY3UuaFxcXCJcXG4gIDEwOlxcdCNpbmNsdWRlIFxcXCJtYWMuaFxcXCJcXG4gIDExOlxcdFxcbiAgMTI6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIG10NzkyNXVfZGV2aWNlX3RhYmxlW10gPSB7XFxuICAxMzpcXHRcXHR7IFVTQl9ERVZJQ0VfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MGU4ZCwgMHg3OTI1LCAweGZmLCAweGZmLCAweGZmKSxcXG4gIDE0OlxcdFxcdFxcdC5kcml2ZXJfaW5mbyA9IChrZXJuZWxfdWxvbmdfdClNVDc5MjVfRklSTVdBUkVfV00gfSxcXG4gIDE1OlxcdFxcdC8qIE5ldGdlYXIsIEluYy4gQTg1MDAgKi9cXG4gIDE2OlxcdFxcdHsgVVNCX0RFVklDRV9BTkRfSU5URVJGQUNFX0lORk8oMHgwODQ2LCAweDkwNTAsIDB4ZmYsIDB4ZmYsIDB4ZmYpLFxcbiAgMTc6XFx0XFx0XFx0LmRyaXZlcl9pbmZvID0gKGtlcm5lbF91bG9uZ190KU1UNzkyNV9GSVJNV0FSRV9XTSB9LFxcbiAgMTg6XFx0XFx0LyogTmV0Z2VhciwgSW5jLiBBOTAwMCAqL1xcbiAgMTk6XFx0XFx0eyBVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDA4NDYsIDB4OTA3MiwgMHhmZiwgMHhmZiwgMHhmZiksXFxuICAyMDpcXHRcXHRcXHQuZHJpdmVyX2luZm8gPSAoa2VybmVsX3Vsb25nX3QpTVQ3OTI1X0ZJUk1XQVJFX1dNIH0sXFxuICAyMTpcXHRcXHR7IH0sXFxuICAyMjpcXHR9O1xcbiAgMjM6XFx0XFxuICAyNDpcXHRzdGF0aWMgaW50XFxuICAyNTpcXHRtdDc5MjV1X21jdV9zZW5kX21lc3NhZ2Uoc3RydWN0IG10NzZfZGV2ICptZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxcbiAgMjY6XFx0XFx0XFx0XFx0IGludCBjbWQsIGludCAqc2VxKVxcbiAgMjc6XFx0e1xcbiAgMjg6XFx0XFx0c3RydWN0IG10NzkyeF9kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3OTJ4X2RldiwgbXQ3Nik7XFxuICAyOTpcXHRcXHR1MzIgcGFkLCBlcDtcXG4gIDMwOlxcdFxcdGludCByZXQ7XFxuICAzMTpcXHRcXG4gIDMyOlxcdFxcdHJldCA9IG10NzkyNV9tY3VfZmlsbF9tZXNzYWdlKG1kZXYsIHNrYiwgY21kLCBzZXEpO1xcbiAgMzM6XFx0XFx0aWYgKHJldClcXG4gIDM0OlxcdFxcdFxcdHJldHVybiByZXQ7XFxuICAzNTpcXHRcXG4gIDM2OlxcdFxcdG1kZXYtXFx1MDAzZW1jdS50aW1lb3V0ID0gMyAqIEhaO1xcbiAgMzc6XFx0XFxuICAzODpcXHRcXHRpZiAoY21kICE9IE1DVV9DTUQoRldfU0NBVFRFUikpXFxuICAzOTpcXHRcXHRcXHRlcCA9IE1UX0VQX09VVF9JTkJBTkRfQ01EO1xcbiAgNDA6XFx0XFx0ZWxzZVxcbiAgNDE6XFx0XFx0XFx0ZXAgPSBNVF9FUF9PVVRfQUNfQkU7XFxuICA0MjpcXHRcXG4gIDQzOlxcdFxcdG10NzkyeF9za2JfYWRkX3VzYl9zZGlvX2hkcihkZXYsIHNrYiwgMCk7XFxuICA0NDpcXHRcXHRwYWQgPSByb3VuZF91cChza2ItXFx1MDAzZWxlbiwgNCkgKyA0IC0gc2tiLVxcdTAwM2VsZW47XFxuICA0NTpcXHRcXHRfX3NrYl9wdXRfemVybyhza2IsIHBhZCk7XFxuICA0NjpcXHRcXG4gIDQ3OlxcdFxcdHJldCA9IG10NzZ1X2J1bGtfbXNnKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIHNrYi1cXHUwMDNlZGF0YSwgc2tiLVxcdTAwM2VsZW4sIE5VTEwsXFxuICA0ODpcXHRcXHRcXHRcXHQgICAgIDEwMDAsIGVwKTtcXG4gIDQ5OlxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4gIDUwOlxcdFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODo1ODoyMi41NTQyNDQwMjJaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxNzIwNjMxNTc4NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhpcyBwYXRjaCBpcyBzdHJhaWdodGZvcndhcmQ6IGl0J3Mgc2ltcGx5IGFkZGluZyBhIG5ldyBlbnRyeSB0byB0aGUgYG10NzkyNXVfZGV2aWNlX3RhYmxlYC4gU3BlY2lmaWNhbGx5LCBpdCdzIHJlZ2lzdGVyaW5nIGEgbmV3IFVTQiBkZXZpY2UgSUQgZm9yIGEgTmV0Z2VhciBBODUwMCAoMHgwODQ2LCAweDkwNTApIHdpdGggdGhlIHNhbWUgYGRyaXZlcl9pbmZvYCBhcyBvdGhlciBleGlzdGluZyBlbnRyaWVzIOKAkyBgTVQ3OTI1X0ZJUk1XQVJFX1dNYC4gU28sIHRoZSBjb3JlIHF1ZXN0aW9uIGlzOiBkb2VzIHRoaXMgcHVyZWx5IGRldmljZSBJRCBhZGRpdGlvbiB3YXJyYW50IGZ1enppbmcgZWZmb3J0cz9cblxuTXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIG5vLiBUaGUgZHJpdmVyIGxvZ2ljIGl0c2VsZiAqcmVtYWlucyB1bnRvdWNoZWQqLiBUaGUgZHJpdmVyIGFscmVhZHkgc3VwcG9ydHMgYE1UNzkyNV9GSVJNV0FSRV9XTWAgYW5kIGhhbmRsZXMgb3RoZXIgVklEL1BJRHMgbGlrZSBgMHgwZThkLCAweDc5MjVgIGFuZCBgMHgwODQ2LCAweDkwNzJgIHVzaW5nIHRoZSBzYW1lIGBkcml2ZXJfaW5mb2AuIEFkZGluZyB0aGlzIG5ldyBlbnRyeSAqb25seSogYmluZHMgdGhlIGV4aXN0aW5nLCBwcm92ZW4gZHJpdmVyIGNvZGUgdG8gYSBuZXcgVklEL1BJRCBwYWlyLiBUaGVyZSBhcmUgbm8gbmV3IGNvZGUgcGF0aHMsIHF1aXJrcywgb3IgbG9naWMgaW50cm9kdWNlZC4gVGhpcyBpcyBlc3NlbnRpYWxseSBqdXN0IGV4dGVuZGluZyB0aGUgZGV2aWNlIGNvbXBhdGliaWxpdHkgbGlzdC4gSW4gb3RoZXIgd29yZHMsIHRoaXMgY2hhbmdlIHBlcmZlY3RseSBmaXRzIHRoZSBjYXRlZ29yeSBvZiBcImNoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvd1wiLiBUaGVyZSBhcmUgbm8gY2hhbmdlcyB0byBkcml2ZXIgZXhlY3V0aW9uIGZsb3cgb3IgYW55IG5ldyBsb2dpYy5cblxuVGhlcmVmb3JlLCBhZnRlciBjYXJlZnVsIHJldmlldywgSSdtIGNvbmNsdWRpbmc6IGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIGFtIGNvbmZpZGVudCBpbiB0aGlzIGRlY2lzaW9uIGJhc2VkIG9uIHRoZSB1bmNoYW5nZWQgY29kZSBhbmQgZXhpc3RpbmcgZGV2aWNlIHN1cHBvcnQuIEFsbCBkZXRhaWxzIGhhdmUgYmVlbiB2ZXJpZmllZCwgYW5kIHRoZSBvdXRwdXQgaXMgcHJvcGVybHkgZm9ybWF0dGVkLiBOb3csIEknbGwgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDE2NCwiT3V0cHV0VG9rZW5zIjo4MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQzMCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE4OjU4OjM5Ljc2MDU2MjA0OFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk5NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggb25seSBhZGRzIGEgbmV3IFVTQiBkZXZpY2UgSUQgKE5ldGdlYXIgQTg1MDApIHRvIHRoZSBtdDc5MjV1X2RldmljZV90YWJsZSB3aXRoIHRoZSBzYW1lIGRyaXZlcl9pbmZvIGFzIGV4aXN0aW5nIGVudHJpZXMuIEl0IGRvZXMgbm90IGludHJvZHVjZSBhbnkgbmV3IGZ1bmN0aW9uYWwgbG9naWMgb3IgY29kZSBwYXRocy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG9ubHkgYWRkcyBhIG5ldyBVU0IgZGV2aWNlIElEIChOZXRnZWFyIEE4NTAwKSB0byB0aGUgbXQ3OTI1dV9kZXZpY2VfdGFibGUgd2l0aCB0aGUgc2FtZSBkcml2ZXJfaW5mbyBhcyBleGlzdGluZyBlbnRyaWVzLiBJdCBkb2VzIG5vdCBpbnRyb2R1Y2UgYW55IG5ldyBmdW5jdGlvbmFsIGxvZ2ljIG9yIGNvZGUgcGF0aHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxODo1ODozOS43NjA1ODU3MDhaIiwiU2VxIjo3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowbrsqk[1] Phase: Running StartedAt: 2026-08-31 18:58:51 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbrsqk[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-31 18:58:51 +0000 UTC FinishedAt: 2026-08-31 18:58:55 +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,}