Name: series-workflowkzh7q Phase: Failed StartedAt: 2026-08-06 19:10:38 +0000 UTC FinishedAt: 2026-08-06 19:30:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkzh7q[0] Phase: Succeeded StartedAt: 2026-08-06 19:10:38 +0000 UTC FinishedAt: 2026-08-06 19:30:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkzh7q[0].run-triage Phase: Succeeded StartedAt: 2026-08-06 19:10:38 +0000 UTC FinishedAt: 2026-08-06 19:30:21 +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+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjI5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgKG9jdGVvbnR4MikgbmV0d29yayBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBhIHBoeXNpY2FsIGRldmljZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxOToyOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFlMTZlOWE1ZjA1YWY0YTU0MjZiNmY1OTk2YWExNGQzYzAxMDI3NWNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyA2IDE5OjI5OjUyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxuaW5kZXggNzNmNzQzZTRhODNkNy4uMjFjM2QzZDUwMThlYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oXG5AQCAtMjAxMCw2ICYjNDM7MjAxMCw3IEBAIHN0cnVjdCBwdHBfcmVxIHtcbiBcdHN0cnVjdCBtYm94X21zZ2hkciBoZHI7XG4gXHR1OCBvcDtcbiBcdHM2NCBzY2FsZWRfcHBtO1xuJiM0MztcdHU4IGlzX3BtdTtcbiBcdHU2NCB0aHJlc2g7XG4gXHR1NjQgcGVyaW9kO1xuIFx0aW50IHBwc19vbjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jXG5pbmRleCA1OGU2MmU5NTU1NTQ2Li4wYjY2YTg2MjQ2YjYyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jXG5AQCAtMzU2LDEwICYjNDM7MzU2LDI3IEBAIHN0YXRpYyBpbnQgcHRwX2FkamZpbmUoc3RydWN0IHB0cCAqcHRwLCBsb25nIHNjYWxlZF9wcG0pXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIGludCBwdHBfZ2V0X2Nsb2NrKHN0cnVjdCBwdHAgKnB0cCwgdTY0ICpjbGspXG4mIzQzO3N0YXRpYyBpbmxpbmUgdTY0IGdldF90c2MoYm9vbCBpc19wbXUpXG4ge1xuLVx0LyogUmV0dXJuIHRoZSBjdXJyZW50IFBUUCBjbG9jayAqL1xuLVx0KmNsayA9IHB0cC1cdTAwM2VyZWFkX3B0cF90c3RtcChwdHApO1xuJiM0MzsjaWYgZGVmaW5lZChDT05GSUdfQVJNNjQpXG4mIzQzO1x0cmV0dXJuIGlzX3BtdSA/IHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKSA6IHJlYWRfc3lzcmVnKGNudHZjdF9lbDApO1xuJiM0MzsjZWxzZVxuJiM0MztcdHJldHVybiAwO1xuJiM0MzsjZW5kaWZcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGludCBwdHBfZ2V0X2Nsb2NrKHN0cnVjdCBwdHAgKnB0cCwgYm9vbCBpc19wbXUsIHU2NCAqY2xrLCB1NjQgKnRzYylcbiYjNDM7e1xuJiM0MztcdHU2NCBlbmQsIHN0YXJ0O1xuJiM0MztcdHU4IHJldHJpZXMgPSAwO1xuJiM0MztcbiYjNDM7XHRkbyB7XG4mIzQzO1x0XHRzdGFydCA9IGdldF90c2MoMCk7XG4mIzQzO1x0XHQqdHNjID0gZ2V0X3RzYyhpc19wbXUpO1xuJiM0MztcdFx0KmNsayA9IHB0cC1cdTAwM2VyZWFkX3B0cF90c3RtcChwdHApO1xuJiM0MztcdFx0ZW5kID0gZ2V0X3RzYygwKTtcbiYjNDM7XHRcdHJldHJpZXMmIzQzOyYjNDM7O1xuJiM0MztcdH0gd2hpbGUgKCgoZW5kIC0gc3RhcnQpIFx1MDAzZSA1MCkgXHUwMDI2XHUwMDI2IHJldHJpZXMgXHUwMDNjIDUpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTYzNiw3ICYjNDM7NjUzLDggQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfcHRwX29wKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IHB0cF9yZXEgKnJlcSxcbiBcdFx0ZXJyID0gcHRwX2FkamZpbmUocnZ1LVx1MDAzZXB0cCwgcmVxLVx1MDAzZXNjYWxlZF9wcG0pO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgUFRQX09QX0dFVF9DTE9DSzpcbi1cdFx0ZXJyID0gcHRwX2dldF9jbG9jayhydnUtXHUwMDNlcHRwLCBcdTAwMjZyc3AtXHUwMDNlY2xrKTtcbiYjNDM7XHRcdGVyciA9IHB0cF9nZXRfY2xvY2socnZ1LVx1MDAzZXB0cCwgcmVxLVx1MDAzZWlzX3BtdSwgXHUwMDI2cnNwLVx1MDAzZWNsayxcbiYjNDM7XHRcdFx0XHQgICAgXHUwMDI2cnNwLVx1MDAzZXRzYyk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBQVFBfT1BfR0VUX1RTVE1QOlxuIFx0XHRlcnIgPSBwdHBfZ2V0X3RzdG1wKHJ2dS1cdTAwM2VwdHAsIFx1MDAyNnJzcC1cdTAwM2VjbGspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjI5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb24gVFgyIChvY3Rlb250eDIpIG5ldHdvcmsgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgYSBwaHlzaWNhbCBkZXZpY2UgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhZTE2ZTlhNWYwNWFmNGE1NDI2YjZmNTk5NmFhMTRkM2MwMTAyNzVjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgNiAxOToyOTo1MiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaAppbmRleCA3M2Y3NDNlNGE4M2Q3Li4yMWMzZDNkNTAxOGVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oCkBAIC0yMDEwLDYgJiM0MzsyMDEwLDcgQEAgc3RydWN0IHB0cF9yZXEgewogCXN0cnVjdCBtYm94X21zZ2hkciBoZHI7CiAJdTggb3A7CiAJczY0IHNjYWxlZF9wcG07CiYjNDM7CXU4IGlzX3BtdTsKIAl1NjQgdGhyZXNoOwogCXU2NCBwZXJpb2Q7CiAJaW50IHBwc19vbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMKaW5kZXggNThlNjJlOTU1NTU0Ni4uMGI2NmE4NjI0NmI2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMKQEAgLTM1NiwxMCAmIzQzOzM1NiwyNyBAQCBzdGF0aWMgaW50IHB0cF9hZGpmaW5lKHN0cnVjdCBwdHAgKnB0cCwgbG9uZyBzY2FsZWRfcHBtKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHB0cF9nZXRfY2xvY2soc3RydWN0IHB0cCAqcHRwLCB1NjQgKmNsaykKJiM0MztzdGF0aWMgaW5saW5lIHU2NCBnZXRfdHNjKGJvb2wgaXNfcG11KQogewotCS8qIFJldHVybiB0aGUgY3VycmVudCBQVFAgY2xvY2sgKi8KLQkqY2xrID0gcHRwLSZndDtyZWFkX3B0cF90c3RtcChwdHApOwomIzQzOyNpZiBkZWZpbmVkKENPTkZJR19BUk02NCkKJiM0MzsJcmV0dXJuIGlzX3BtdSA/IHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKSA6IHJlYWRfc3lzcmVnKGNudHZjdF9lbDApOwomIzQzOyNlbHNlCiYjNDM7CXJldHVybiAwOwomIzQzOyNlbmRpZgomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgaW50IHB0cF9nZXRfY2xvY2soc3RydWN0IHB0cCAqcHRwLCBib29sIGlzX3BtdSwgdTY0ICpjbGssIHU2NCAqdHNjKQomIzQzO3sKJiM0MzsJdTY0IGVuZCwgc3RhcnQ7CiYjNDM7CXU4IHJldHJpZXMgPSAwOwomIzQzOwomIzQzOwlkbyB7CiYjNDM7CQlzdGFydCA9IGdldF90c2MoMCk7CiYjNDM7CQkqdHNjID0gZ2V0X3RzYyhpc19wbXUpOwomIzQzOwkJKmNsayA9IHB0cC0mZ3Q7cmVhZF9wdHBfdHN0bXAocHRwKTsKJiM0MzsJCWVuZCA9IGdldF90c2MoMCk7CiYjNDM7CQlyZXRyaWVzJiM0MzsmIzQzOzsKJiM0MzsJfSB3aGlsZSAoKChlbmQgLSBzdGFydCkgJmd0OyA1MCkgJmFtcDsmYW1wOyByZXRyaWVzICZsdDsgNSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTYzNiw3ICYjNDM7NjUzLDggQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfcHRwX29wKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IHB0cF9yZXEgKnJlcSwKIAkJZXJyID0gcHRwX2FkamZpbmUocnZ1LSZndDtwdHAsIHJlcS0mZ3Q7c2NhbGVkX3BwbSk7CiAJCWJyZWFrOwogCWNhc2UgUFRQX09QX0dFVF9DTE9DSzoKLQkJZXJyID0gcHRwX2dldF9jbG9jayhydnUtJmd0O3B0cCwgJmFtcDtyc3AtJmd0O2Nsayk7CiYjNDM7CQllcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS0mZ3Q7cHRwLCByZXEtJmd0O2lzX3BtdSwgJmFtcDtyc3AtJmd0O2NsaywKJiM0MzsJCQkJICAgICZhbXA7cnNwLSZndDt0c2MpOwogCQlicmVhazsKIAljYXNlIFBUUF9PUF9HRVRfVFNUTVA6CiAJCWVyciA9IHB0cF9nZXRfdHN0bXAocnZ1LSZndDtwdHAsICZhbXA7cnNwLSZndDtjbGspOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxOToyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzQ4CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMzA2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgT2N0ZW9uIFRYMiBQVFAgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCYjMzk7cyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmNgIGFuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oYC4gTG9va3MgbGlrZSB0aGV5JiMzOTtyZSBtb2RpZnlpbmcgYHB0cF9nZXRfY2xvY2tgIHRvIHRha2UgYW4gYGlzX3BtdWAgZmxhZyBhbmQgcmV0dXJuIGJvdGggYSBgdHNjYCBhbmQgYSBgY2xrYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBjb2RlIHVzZXMgYHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKWAgb3IgYHJlYWRfc3lzcmVnKGNudHZjdF9lbDApYCBvbiBBUk02NCwgYXMgZXhwZWN0ZWQgZm9yIHRoZXNlIHR5cGVzIG9mIHRpbWUgc291cmNlcy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHRoaXMgaXMgYWxsIHJlbGF0ZWQgdG8gdGhlIE9jdGVvbiBUWDIgZHJpdmVyLCB3aGljaCBtZWFucyBpdCYjMzk7cyBwcmV0dHkgbXVjaCBhIGdpdmVuIHRoYXQgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBNYXJ2ZWxsJiMzOTtzIGN1c3RvbSBoYXJkd2FyZS4KClRoZSBidXJuaW5nIHF1ZXN0aW9uIHRoZW4gYmVjb21lczogY2FuIHdlIGV2ZW4gdGVzdCB0aGlzIHRoaW5nIGluIFFFTVU/IEkga25vdyB0aGUgT2N0ZW9uIFRYMiBpcyB1c3VhbGx5IGEgc3BlY2lmaWMgaGFyZHdhcmUgU29DLCBvZnRlbiBhIFNtYXJ0TklDIG9mIHNvbWUga2luZC4gVGhhdCBnZW5lcmFsbHkgbWVhbnMgaXQmIzM5O3Mgbm90IHNvbWV0aGluZyB5b3UgY2FuIGp1c3Qgc3BpbiB1cCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuIEl0JiMzOTtzIGFsbW9zdCBhbHdheXMgYSBjdXN0b20gc2lsaWNvbiwgYW5kIHJhcmVseSBhIHN0YW5kYXJkIFBDSSBkZXZpY2Ugb3IgcGxhdGZvcm0gZGV2aWNlLiBCdXQgSSBuZWVkIHRvIGRvdWJsZS1jaGVjay4KCkkgaGF2ZSB0aGF0IHJ1bGVib29rIGluIHRoZSBiYWNrIG9mIG15IGhlYWQ6IGl0IGV4cGxpY2l0bHkgbWVudGlvbnMsICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucy4uLkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0Oy4KCkFuZCB0aGF0JiMzOTtzIGl0LiBPY3Rlb24gVFgyIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBjdXN0b20gaGFyZHdhcmUsIGFuZCBpdCYjMzk7cyBhbG1vc3QgY2VydGFpbmx5IGdvaW5nIHRvIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUuIFRoaXMgaXMgYSBkZWFkIGVuZCBmb3Igc3RhbmRhcmQgUUVNVSB0ZXN0aW5nLiBUaW1lIHRvIG1hcmsgdGhpcyBhcyAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O29jdGVvbnR4MiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjI4OiNkZWZpbmUgREVCVUdGU19ESVJfTkFNRSBcJiMzNDtvY3Rlb250eDJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYz00MDEzPXN0YXRpYyBjb25zdCBjaGFyICpydnVfZ2V0X2RiZ19kaXJfbmFtZShzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy00MDIwLVx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYzo0MDIxOlx0XHRyZXR1cm4gXCYjMzQ7b2N0ZW9udHgyXCYjMzQ7O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy00MDIyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNjojZGVmaW5lIERSVl9OQU1FIFwmIzM0O29jdGVvbnR4Mi1hZlwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU9MTg9cnZ1X25pY3BmLSQoQ09ORklHX1hGUk1fT0ZGTE9BRCkgJiM0Mzs9IGNuMTBrX2lwc2VjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZS0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZToyMDpjY2ZsYWdzLXkgJiM0Mzs9IC1JJChzcmN0cmVlKS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvYy9tYXJ2ZWxsL3NpbGljb25zLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjE4OiNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvYy9tYXJ2ZWxsL29jdGVvbnR4Mi9hc20uaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtMTktI2luY2x1ZGUgXHUwMDNjbmV0L21hY3NlYy5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvcy5jPTExMTU9c3RhdGljIGludCBvdHgyX3Fvc192YWxpZGF0ZV9xdWFudHVtKHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTMyIHF1YW50dW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvcy5jLTExMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmM6MTEyMDpcdC8qIE1heCBSb3VuZCByb2JpbiB3ZWlnaHQgc3VwcG9ydGVkIGJ5IG9jdGVvbnR4MiBhbmQgQ04xMEtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYy0xMTIxLVx0ICogaXMgZGlmZmVyZW50LiBWYWxpZGF0ZSBhY2NvcmRpbmdseVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzMjcKCQkJCQkJCW91dHB1dDogODMKCQkJCQkJCXRob3VnaHRzOiA2NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIERlY2lzaW9uIGZvciB0aGUgT2N0ZW9uIFRYMiBBRiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGludG8gdGhpcyBkcml2ZXIsIGFuZCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgd2hlcmUgd2Ugc3RhbmQuIFRoaXMgYG9jdGVvbnR4Mi1hZmAgZHJpdmVyLCB0aGF0JiMzOTtzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgb25lLCByaWdodD8gVGhlIGtleSBpc3N1ZSBoZXJlIGlzIHRoYXQgaXQmIzM5O3MgZnVuZGFtZW50YWxseSB0aWVkIHRvIHBoeXNpY2FsIGhhcmR3YXJlLiBJdCByZWxpZXMgb24gYSBQQ0llIGRldmljZSB0aGF0JiMzOTtzICpub3QqIGdvaW5nIHRvIGJlIGVtdWxhdGVkIGFjY3VyYXRlbHkgb3IgZWZmZWN0aXZlbHkgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gVHJ5aW5nIHRvIGZ1enogdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmc/IEZvcmdldCBhYm91dCBpdC4gSXQgd291bGQgYmUgYSB3YXN0ZSBvZiB0aW1lIGFuZCByZXNvdXJjZXMuIFNvLCBJJiMzOTttIGdvaW5nIHRvIGZsYWcgdGhpcyBhcyBhICYjMzQ7bm8tZ28mIzM0OyBmb3IgZnV6emluZy4gSSYjMzk7bGwgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLCBhbmQgaW5jbHVkZSBhIGNsZWFyLCBjb25jaXNlIGp1c3RpZmljYXRpb24g4oCTIHRoaXMgaGFyZHdhcmUgZGVwZW5kZW5jeSBpcyB0aGUgcm9hZGJsb2NrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uIFRYMiAob2N0ZW9udHgyKSBuZXR3b3JrIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb24gVFgyIChvY3Rlb250eDIpIG5ldHdvcmsgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgYSBwaHlzaWNhbCBkZXZpY2UgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxOToyOTo1My41NzU2OTQ5MjRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjE1OTM4NTMzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uIFRYMiAob2N0ZW9udHgyKSBuZXR3b3JrIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxOToyOTo1My41NzU3MDU5MjRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzY1Nzc4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFlMTZlOWE1ZjA1YWY0YTU0MjZiNmY1OTk2YWExNGQzYzAxMDI3NWNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBBdWcgNiAxOToyOTo1MiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmhcXG5pbmRleCA3M2Y3NDNlNGE4M2Q3Li4yMWMzZDNkNTAxOGVhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxcbkBAIC0yMDEwLDYgKzIwMTAsNyBAQCBzdHJ1Y3QgcHRwX3JlcSB7XFxuIFxcdHN0cnVjdCBtYm94X21zZ2hkciBoZHI7XFxuIFxcdHU4IG9wO1xcbiBcXHRzNjQgc2NhbGVkX3BwbTtcXG4rXFx0dTggaXNfcG11O1xcbiBcXHR1NjQgdGhyZXNoO1xcbiBcXHR1NjQgcGVyaW9kO1xcbiBcXHRpbnQgcHBzX29uO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jXFxuaW5kZXggNThlNjJlOTU1NTU0Ni4uMGI2NmE4NjI0NmI2MiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jXFxuQEAgLTM1NiwxMCArMzU2LDI3IEBAIHN0YXRpYyBpbnQgcHRwX2FkamZpbmUoc3RydWN0IHB0cCAqcHRwLCBsb25nIHNjYWxlZF9wcG0pXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW50IHB0cF9nZXRfY2xvY2soc3RydWN0IHB0cCAqcHRwLCB1NjQgKmNsaylcXG4rc3RhdGljIGlubGluZSB1NjQgZ2V0X3RzYyhib29sIGlzX3BtdSlcXG4ge1xcbi1cXHQvKiBSZXR1cm4gdGhlIGN1cnJlbnQgUFRQIGNsb2NrICovXFxuLVxcdCpjbGsgPSBwdHAtXFx1MDAzZXJlYWRfcHRwX3RzdG1wKHB0cCk7XFxuKyNpZiBkZWZpbmVkKENPTkZJR19BUk02NClcXG4rXFx0cmV0dXJuIGlzX3BtdSA/IHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKSA6IHJlYWRfc3lzcmVnKGNudHZjdF9lbDApO1xcbisjZWxzZVxcbitcXHRyZXR1cm4gMDtcXG4rI2VuZGlmXFxuK31cXG4rXFxuK3N0YXRpYyBpbnQgcHRwX2dldF9jbG9jayhzdHJ1Y3QgcHRwICpwdHAsIGJvb2wgaXNfcG11LCB1NjQgKmNsaywgdTY0ICp0c2MpXFxuK3tcXG4rXFx0dTY0IGVuZCwgc3RhcnQ7XFxuK1xcdHU4IHJldHJpZXMgPSAwO1xcbitcXG4rXFx0ZG8ge1xcbitcXHRcXHRzdGFydCA9IGdldF90c2MoMCk7XFxuK1xcdFxcdCp0c2MgPSBnZXRfdHNjKGlzX3BtdSk7XFxuK1xcdFxcdCpjbGsgPSBwdHAtXFx1MDAzZXJlYWRfcHRwX3RzdG1wKHB0cCk7XFxuK1xcdFxcdGVuZCA9IGdldF90c2MoMCk7XFxuK1xcdFxcdHJldHJpZXMrKztcXG4rXFx0fSB3aGlsZSAoKChlbmQgLSBzdGFydCkgXFx1MDAzZSA1MCkgXFx1MDAyNlxcdTAwMjYgcmV0cmllcyBcXHUwMDNjIDUpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5AQCAtNjM2LDcgKzY1Myw4IEBAIGludCBydnVfbWJveF9oYW5kbGVyX3B0cF9vcChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBwdHBfcmVxICpyZXEsXFxuIFxcdFxcdGVyciA9IHB0cF9hZGpmaW5lKHJ2dS1cXHUwMDNlcHRwLCByZXEtXFx1MDAzZXNjYWxlZF9wcG0pO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBQVFBfT1BfR0VUX0NMT0NLOlxcbi1cXHRcXHRlcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS1cXHUwMDNlcHRwLCBcXHUwMDI2cnNwLVxcdTAwM2VjbGspO1xcbitcXHRcXHRlcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS1cXHUwMDNlcHRwLCByZXEtXFx1MDAzZWlzX3BtdSwgXFx1MDAyNnJzcC1cXHUwMDNlY2xrLFxcbitcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnJzcC1cXHUwMDNldHNjKTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGNhc2UgUFRQX09QX0dFVF9UU1RNUDpcXG4gXFx0XFx0ZXJyID0gcHRwX2dldF90c3RtcChydnUtXFx1MDAzZXB0cCwgXFx1MDAyNnJzcC1cXHUwMDNlY2xrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTk6Mjk6NTQuMDgwMzc5MTgyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTU2NTQ2OTU3MzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgKG9jdGVvbnR4MikgbmV0d29yayBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBhIHBoeXNpY2FsIGRldmljZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYWUxNmU5YTVmMDVhZjRhNTQyNmI2ZjU5OTZhYTE0ZDNjMDEwMjc1Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTk6Mjk6NTIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmhcbmluZGV4IDczZjc0M2U0YTgzZDcuLjIxYzNkM2Q1MDE4ZWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxuQEAgLTIwMTAsNiArMjAxMCw3IEBAIHN0cnVjdCBwdHBfcmVxIHtcbiBcdHN0cnVjdCBtYm94X21zZ2hkciBoZHI7XG4gXHR1OCBvcDtcbiBcdHM2NCBzY2FsZWRfcHBtO1xuK1x0dTggaXNfcG11O1xuIFx0dTY0IHRocmVzaDtcbiBcdHU2NCBwZXJpb2Q7XG4gXHRpbnQgcHBzX29uO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmNcbmluZGV4IDU4ZTYyZTk1NTU1NDYuLjBiNjZhODYyNDZiNjIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmNcbkBAIC0zNTYsMTAgKzM1NiwyNyBAQCBzdGF0aWMgaW50IHB0cF9hZGpmaW5lKHN0cnVjdCBwdHAgKnB0cCwgbG9uZyBzY2FsZWRfcHBtKVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyBpbnQgcHRwX2dldF9jbG9jayhzdHJ1Y3QgcHRwICpwdHAsIHU2NCAqY2xrKVxuK3N0YXRpYyBpbmxpbmUgdTY0IGdldF90c2MoYm9vbCBpc19wbXUpXG4ge1xuLVx0LyogUmV0dXJuIHRoZSBjdXJyZW50IFBUUCBjbG9jayAqL1xuLVx0KmNsayA9IHB0cC1cdTAwM2VyZWFkX3B0cF90c3RtcChwdHApO1xuKyNpZiBkZWZpbmVkKENPTkZJR19BUk02NClcbitcdHJldHVybiBpc19wbXUgPyByZWFkX3N5c3JlZyhwbWNjbnRyX2VsMCkgOiByZWFkX3N5c3JlZyhjbnR2Y3RfZWwwKTtcbisjZWxzZVxuK1x0cmV0dXJuIDA7XG4rI2VuZGlmXG4rfVxuK1xuK3N0YXRpYyBpbnQgcHRwX2dldF9jbG9jayhzdHJ1Y3QgcHRwICpwdHAsIGJvb2wgaXNfcG11LCB1NjQgKmNsaywgdTY0ICp0c2MpXG4re1xuK1x0dTY0IGVuZCwgc3RhcnQ7XG4rXHR1OCByZXRyaWVzID0gMDtcbitcbitcdGRvIHtcbitcdFx0c3RhcnQgPSBnZXRfdHNjKDApO1xuK1x0XHQqdHNjID0gZ2V0X3RzYyhpc19wbXUpO1xuK1x0XHQqY2xrID0gcHRwLVx1MDAzZXJlYWRfcHRwX3RzdG1wKHB0cCk7XG4rXHRcdGVuZCA9IGdldF90c2MoMCk7XG4rXHRcdHJldHJpZXMrKztcbitcdH0gd2hpbGUgKCgoZW5kIC0gc3RhcnQpIFx1MDAzZSA1MCkgXHUwMDI2XHUwMDI2IHJldHJpZXMgXHUwMDNjIDUpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTYzNiw3ICs2NTMsOCBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9wdHBfb3Aoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgcHRwX3JlcSAqcmVxLFxuIFx0XHRlcnIgPSBwdHBfYWRqZmluZShydnUtXHUwMDNlcHRwLCByZXEtXHUwMDNlc2NhbGVkX3BwbSk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBQVFBfT1BfR0VUX0NMT0NLOlxuLVx0XHRlcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS1cdTAwM2VwdHAsIFx1MDAyNnJzcC1cdTAwM2VjbGspO1xuK1x0XHRlcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS1cdTAwM2VwdHAsIHJlcS1cdTAwM2Vpc19wbXUsIFx1MDAyNnJzcC1cdTAwM2VjbGssXG4rXHRcdFx0XHQgICAgXHUwMDI2cnNwLVx1MDAzZXRzYyk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBQVFBfT1BfR0VUX1RTVE1QOlxuIFx0XHRlcnIgPSBwdHBfZ2V0X3RzdG1wKHJ2dS1cdTAwM2VwdHAsIFx1MDAyNnJzcC1cdTAwM2VjbGspO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTk6Mjk6NTQuMDgwMzgxNzEyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjY4MDIwMDM5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE9jdGVvbiBUWDIgUFRQIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0J3MgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaGAuIExvb2tzIGxpa2UgdGhleSdyZSBtb2RpZnlpbmcgYHB0cF9nZXRfY2xvY2tgIHRvIHRha2UgYW4gYGlzX3BtdWAgZmxhZyBhbmQgcmV0dXJuIGJvdGggYSBgdHNjYCBhbmQgYSBgY2xrYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBjb2RlIHVzZXMgYHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKWAgb3IgYHJlYWRfc3lzcmVnKGNudHZjdF9lbDApYCBvbiBBUk02NCwgYXMgZXhwZWN0ZWQgZm9yIHRoZXNlIHR5cGVzIG9mIHRpbWUgc291cmNlcy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHRoaXMgaXMgYWxsIHJlbGF0ZWQgdG8gdGhlIE9jdGVvbiBUWDIgZHJpdmVyLCB3aGljaCBtZWFucyBpdCdzIHByZXR0eSBtdWNoIGEgZ2l2ZW4gdGhhdCB3ZSdyZSBkZWFsaW5nIHdpdGggTWFydmVsbCdzIGN1c3RvbSBoYXJkd2FyZS5cblxuVGhlIGJ1cm5pbmcgcXVlc3Rpb24gdGhlbiBiZWNvbWVzOiBjYW4gd2UgZXZlbiB0ZXN0IHRoaXMgdGhpbmcgaW4gUUVNVT8gSSBrbm93IHRoZSBPY3Rlb24gVFgyIGlzIHVzdWFsbHkgYSBzcGVjaWZpYyBoYXJkd2FyZSBTb0MsIG9mdGVuIGEgU21hcnROSUMgb2Ygc29tZSBraW5kLiBUaGF0IGdlbmVyYWxseSBtZWFucyBpdCdzIG5vdCBzb21ldGhpbmcgeW91IGNhbiBqdXN0IHNwaW4gdXAgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBJdCdzIGFsbW9zdCBhbHdheXMgYSBjdXN0b20gc2lsaWNvbiwgYW5kIHJhcmVseSBhIHN0YW5kYXJkIFBDSSBkZXZpY2Ugb3IgcGxhdGZvcm0gZGV2aWNlLiBCdXQgSSBuZWVkIHRvIGRvdWJsZS1jaGVjay5cblxuSSBoYXZlIHRoYXQgcnVsZWJvb2sgaW4gdGhlIGJhY2sgb2YgbXkgaGVhZDogaXQgZXhwbGljaXRseSBtZW50aW9ucywgXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVVwiLlxuXG5BbmQgdGhhdCdzIGl0LiBPY3Rlb24gVFgyIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDLiBXZSdyZSB0YWxraW5nIGFib3V0IGN1c3RvbSBoYXJkd2FyZSwgYW5kIGl0J3MgYWxtb3N0IGNlcnRhaW5seSBnb2luZyB0byByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlLiBUaGlzIGlzIGEgZGVhZCBlbmQgZm9yIHN0YW5kYXJkIFFFTVUgdGVzdGluZy4gVGltZSB0byBtYXJrIHRoaXMgYXMgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIi5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc0OCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwNiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE5OjMwOjAwLjc2MDU4NzUxM1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjIxODc1MjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwib2N0ZW9udHgyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYzoyODojZGVmaW5lIERFQlVHRlNfRElSX05BTUUgXFxcIm9jdGVvbnR4MlxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYz00MDEzPXN0YXRpYyBjb25zdCBjaGFyICpydnVfZ2V0X2RiZ19kaXJfbmFtZShzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTQwMjAtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM6NDAyMTpcXHRcXHRyZXR1cm4gXFxcIm9jdGVvbnR4MlxcXCI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy00MDIyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNjojZGVmaW5lIERSVl9OQU1FIFxcXCJvY3Rlb250eDItYWZcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZT0xOD1ydnVfbmljcGYtJChDT05GSUdfWEZSTV9PRkZMT0FEKSArPSBjbjEwa19pcHNlYy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZToyMDpjY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC0xNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvc29jL21hcnZlbGwvc2lsaWNvbnMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDoxODojaW5jbHVkZSBcXHUwMDNjbGludXgvc29jL21hcnZlbGwvb2N0ZW9udHgyL2FzbS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTE5LSNpbmNsdWRlIFxcdTAwM2NuZXQvbWFjc2VjLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmM9MTExNT1zdGF0aWMgaW50IG90eDJfcW9zX3ZhbGlkYXRlX3F1YW50dW0oc3RydWN0IG90eDJfbmljICpwZnZmLCB1MzIgcXVhbnR1bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYy0xMTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYzoxMTIwOlxcdC8qIE1heCBSb3VuZCByb2JpbiB3ZWlnaHQgc3VwcG9ydGVkIGJ5IG9jdGVvbnR4MiBhbmQgQ04xMEtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmMtMTEyMS1cXHQgKiBpcyBkaWZmZXJlbnQuIFZhbGlkYXRlIGFjY29yZGluZ2x5XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE5OjMwOjAxLjIyMjc4MDYzNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1MTIyNjk1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBEZWNpc2lvbiBmb3IgdGhlIE9jdGVvbiBUWDIgQUYgRHJpdmVyKipcblxuT2theSwgc28gSSd2ZSBsb29rZWQgaW50byB0aGlzIGRyaXZlciwgYW5kIGl0J3MgcHJldHR5IGNsZWFyIHdoZXJlIHdlIHN0YW5kLiBUaGlzIGBvY3Rlb250eDItYWZgIGRyaXZlciwgdGhhdCdzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgb25lLCByaWdodD8gVGhlIGtleSBpc3N1ZSBoZXJlIGlzIHRoYXQgaXQncyBmdW5kYW1lbnRhbGx5IHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEl0IHJlbGllcyBvbiBhIFBDSWUgZGV2aWNlIHRoYXQncyAqbm90KiBnb2luZyB0byBiZSBlbXVsYXRlZCBhY2N1cmF0ZWx5IG9yIGVmZmVjdGl2ZWx5IHdpdGhpbiBhIFFFTVUgZW52aXJvbm1lbnQuIFRyeWluZyB0byBmdXp6IHRoaXMgdGhpbmcgaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nPyBGb3JnZXQgYWJvdXQgaXQuIEl0IHdvdWxkIGJlIGEgd2FzdGUgb2YgdGltZSBhbmQgcmVzb3VyY2VzLiBTbywgSSdtIGdvaW5nIHRvIGZsYWcgdGhpcyBhcyBhIFwibm8tZ29cIiBmb3IgZnV6emluZy4gSSdsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAsIGFuZCBpbmNsdWRlIGEgY2xlYXIsIGNvbmNpc2UganVzdGlmaWNhdGlvbiDigJMgdGhpcyBoYXJkd2FyZSBkZXBlbmRlbmN5IGlzIHRoZSByb2FkYmxvY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMjcsIk91dHB1dFRva2VucyI6ODMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxOTozMDowOS43MzUwNTI1MzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwOTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgKG9jdGVvbnR4MikgbmV0d29yayBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBhIHBoeXNpY2FsIGRldmljZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uIFRYMiAob2N0ZW9udHgyKSBuZXR3b3JrIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowkzh7q[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-06 19:10:38 +0000 UTC FinishedAt: 2026-08-06 19:30:11 +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+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjI5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgKG9jdGVvbnR4MikgbmV0d29yayBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBhIHBoeXNpY2FsIGRldmljZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxOToyOTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFlMTZlOWE1ZjA1YWY0YTU0MjZiNmY1OTk2YWExNGQzYzAxMDI3NWNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyA2IDE5OjI5OjUyIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxuaW5kZXggNzNmNzQzZTRhODNkNy4uMjFjM2QzZDUwMThlYSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oXG5AQCAtMjAxMCw2ICYjNDM7MjAxMCw3IEBAIHN0cnVjdCBwdHBfcmVxIHtcbiBcdHN0cnVjdCBtYm94X21zZ2hkciBoZHI7XG4gXHR1OCBvcDtcbiBcdHM2NCBzY2FsZWRfcHBtO1xuJiM0MztcdHU4IGlzX3BtdTtcbiBcdHU2NCB0aHJlc2g7XG4gXHR1NjQgcGVyaW9kO1xuIFx0aW50IHBwc19vbjtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jXG5pbmRleCA1OGU2MmU5NTU1NTQ2Li4wYjY2YTg2MjQ2YjYyIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jXG5AQCAtMzU2LDEwICYjNDM7MzU2LDI3IEBAIHN0YXRpYyBpbnQgcHRwX2FkamZpbmUoc3RydWN0IHB0cCAqcHRwLCBsb25nIHNjYWxlZF9wcG0pXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIGludCBwdHBfZ2V0X2Nsb2NrKHN0cnVjdCBwdHAgKnB0cCwgdTY0ICpjbGspXG4mIzQzO3N0YXRpYyBpbmxpbmUgdTY0IGdldF90c2MoYm9vbCBpc19wbXUpXG4ge1xuLVx0LyogUmV0dXJuIHRoZSBjdXJyZW50IFBUUCBjbG9jayAqL1xuLVx0KmNsayA9IHB0cC1cdTAwM2VyZWFkX3B0cF90c3RtcChwdHApO1xuJiM0MzsjaWYgZGVmaW5lZChDT05GSUdfQVJNNjQpXG4mIzQzO1x0cmV0dXJuIGlzX3BtdSA/IHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKSA6IHJlYWRfc3lzcmVnKGNudHZjdF9lbDApO1xuJiM0MzsjZWxzZVxuJiM0MztcdHJldHVybiAwO1xuJiM0MzsjZW5kaWZcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGludCBwdHBfZ2V0X2Nsb2NrKHN0cnVjdCBwdHAgKnB0cCwgYm9vbCBpc19wbXUsIHU2NCAqY2xrLCB1NjQgKnRzYylcbiYjNDM7e1xuJiM0MztcdHU2NCBlbmQsIHN0YXJ0O1xuJiM0MztcdHU4IHJldHJpZXMgPSAwO1xuJiM0MztcbiYjNDM7XHRkbyB7XG4mIzQzO1x0XHRzdGFydCA9IGdldF90c2MoMCk7XG4mIzQzO1x0XHQqdHNjID0gZ2V0X3RzYyhpc19wbXUpO1xuJiM0MztcdFx0KmNsayA9IHB0cC1cdTAwM2VyZWFkX3B0cF90c3RtcChwdHApO1xuJiM0MztcdFx0ZW5kID0gZ2V0X3RzYygwKTtcbiYjNDM7XHRcdHJldHJpZXMmIzQzOyYjNDM7O1xuJiM0MztcdH0gd2hpbGUgKCgoZW5kIC0gc3RhcnQpIFx1MDAzZSA1MCkgXHUwMDI2XHUwMDI2IHJldHJpZXMgXHUwMDNjIDUpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTYzNiw3ICYjNDM7NjUzLDggQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfcHRwX29wKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IHB0cF9yZXEgKnJlcSxcbiBcdFx0ZXJyID0gcHRwX2FkamZpbmUocnZ1LVx1MDAzZXB0cCwgcmVxLVx1MDAzZXNjYWxlZF9wcG0pO1xuIFx0XHRicmVhaztcbiBcdGNhc2UgUFRQX09QX0dFVF9DTE9DSzpcbi1cdFx0ZXJyID0gcHRwX2dldF9jbG9jayhydnUtXHUwMDNlcHRwLCBcdTAwMjZyc3AtXHUwMDNlY2xrKTtcbiYjNDM7XHRcdGVyciA9IHB0cF9nZXRfY2xvY2socnZ1LVx1MDAzZXB0cCwgcmVxLVx1MDAzZWlzX3BtdSwgXHUwMDI2cnNwLVx1MDAzZWNsayxcbiYjNDM7XHRcdFx0XHQgICAgXHUwMDI2cnNwLVx1MDAzZXRzYyk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBQVFBfT1BfR0VUX1RTVE1QOlxuIFx0XHRlcnIgPSBwdHBfZ2V0X3RzdG1wKHJ2dS1cdTAwM2VwdHAsIFx1MDAyNnJzcC1cdTAwM2VjbGspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjI5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb24gVFgyIChvY3Rlb250eDIpIG5ldHdvcmsgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgYSBwaHlzaWNhbCBkZXZpY2UgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhZTE2ZTlhNWYwNWFmNGE1NDI2YjZmNTk5NmFhMTRkM2MwMTAyNzVjCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgNiAxOToyOTo1MiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaAppbmRleCA3M2Y3NDNlNGE4M2Q3Li4yMWMzZDNkNTAxOGVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oCkBAIC0yMDEwLDYgJiM0MzsyMDEwLDcgQEAgc3RydWN0IHB0cF9yZXEgewogCXN0cnVjdCBtYm94X21zZ2hkciBoZHI7CiAJdTggb3A7CiAJczY0IHNjYWxlZF9wcG07CiYjNDM7CXU4IGlzX3BtdTsKIAl1NjQgdGhyZXNoOwogCXU2NCBwZXJpb2Q7CiAJaW50IHBwc19vbjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMKaW5kZXggNThlNjJlOTU1NTU0Ni4uMGI2NmE4NjI0NmI2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmMKQEAgLTM1NiwxMCAmIzQzOzM1NiwyNyBAQCBzdGF0aWMgaW50IHB0cF9hZGpmaW5lKHN0cnVjdCBwdHAgKnB0cCwgbG9uZyBzY2FsZWRfcHBtKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IHB0cF9nZXRfY2xvY2soc3RydWN0IHB0cCAqcHRwLCB1NjQgKmNsaykKJiM0MztzdGF0aWMgaW5saW5lIHU2NCBnZXRfdHNjKGJvb2wgaXNfcG11KQogewotCS8qIFJldHVybiB0aGUgY3VycmVudCBQVFAgY2xvY2sgKi8KLQkqY2xrID0gcHRwLSZndDtyZWFkX3B0cF90c3RtcChwdHApOwomIzQzOyNpZiBkZWZpbmVkKENPTkZJR19BUk02NCkKJiM0MzsJcmV0dXJuIGlzX3BtdSA/IHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKSA6IHJlYWRfc3lzcmVnKGNudHZjdF9lbDApOwomIzQzOyNlbHNlCiYjNDM7CXJldHVybiAwOwomIzQzOyNlbmRpZgomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgaW50IHB0cF9nZXRfY2xvY2soc3RydWN0IHB0cCAqcHRwLCBib29sIGlzX3BtdSwgdTY0ICpjbGssIHU2NCAqdHNjKQomIzQzO3sKJiM0MzsJdTY0IGVuZCwgc3RhcnQ7CiYjNDM7CXU4IHJldHJpZXMgPSAwOwomIzQzOwomIzQzOwlkbyB7CiYjNDM7CQlzdGFydCA9IGdldF90c2MoMCk7CiYjNDM7CQkqdHNjID0gZ2V0X3RzYyhpc19wbXUpOwomIzQzOwkJKmNsayA9IHB0cC0mZ3Q7cmVhZF9wdHBfdHN0bXAocHRwKTsKJiM0MzsJCWVuZCA9IGdldF90c2MoMCk7CiYjNDM7CQlyZXRyaWVzJiM0MzsmIzQzOzsKJiM0MzsJfSB3aGlsZSAoKChlbmQgLSBzdGFydCkgJmd0OyA1MCkgJmFtcDsmYW1wOyByZXRyaWVzICZsdDsgNSk7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTYzNiw3ICYjNDM7NjUzLDggQEAgaW50IHJ2dV9tYm94X2hhbmRsZXJfcHRwX29wKHN0cnVjdCBydnUgKnJ2dSwgc3RydWN0IHB0cF9yZXEgKnJlcSwKIAkJZXJyID0gcHRwX2FkamZpbmUocnZ1LSZndDtwdHAsIHJlcS0mZ3Q7c2NhbGVkX3BwbSk7CiAJCWJyZWFrOwogCWNhc2UgUFRQX09QX0dFVF9DTE9DSzoKLQkJZXJyID0gcHRwX2dldF9jbG9jayhydnUtJmd0O3B0cCwgJmFtcDtyc3AtJmd0O2Nsayk7CiYjNDM7CQllcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS0mZ3Q7cHRwLCByZXEtJmd0O2lzX3BtdSwgJmFtcDtyc3AtJmd0O2NsaywKJiM0MzsJCQkJICAgICZhbXA7cnNwLSZndDt0c2MpOwogCQlicmVhazsKIAljYXNlIFBUUF9PUF9HRVRfVFNUTVA6CiAJCWVyciA9IHB0cF9nZXRfdHN0bXAocnZ1LSZndDtwdHAsICZhbXA7cnNwLSZndDtjbGspOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAxOToyOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNzQ4CgkJCQkJCQlvdXRwdXQ6IDQwCgkJCQkJCQl0aG91Z2h0czogMzA2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgT2N0ZW9uIFRYMiBQVFAgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggdGhhdCYjMzk7cyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmNgIGFuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvbWJveC5oYC4gTG9va3MgbGlrZSB0aGV5JiMzOTtyZSBtb2RpZnlpbmcgYHB0cF9nZXRfY2xvY2tgIHRvIHRha2UgYW4gYGlzX3BtdWAgZmxhZyBhbmQgcmV0dXJuIGJvdGggYSBgdHNjYCBhbmQgYSBgY2xrYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBjb2RlIHVzZXMgYHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKWAgb3IgYHJlYWRfc3lzcmVnKGNudHZjdF9lbDApYCBvbiBBUk02NCwgYXMgZXhwZWN0ZWQgZm9yIHRoZXNlIHR5cGVzIG9mIHRpbWUgc291cmNlcy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHRoaXMgaXMgYWxsIHJlbGF0ZWQgdG8gdGhlIE9jdGVvbiBUWDIgZHJpdmVyLCB3aGljaCBtZWFucyBpdCYjMzk7cyBwcmV0dHkgbXVjaCBhIGdpdmVuIHRoYXQgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBNYXJ2ZWxsJiMzOTtzIGN1c3RvbSBoYXJkd2FyZS4KClRoZSBidXJuaW5nIHF1ZXN0aW9uIHRoZW4gYmVjb21lczogY2FuIHdlIGV2ZW4gdGVzdCB0aGlzIHRoaW5nIGluIFFFTVU/IEkga25vdyB0aGUgT2N0ZW9uIFRYMiBpcyB1c3VhbGx5IGEgc3BlY2lmaWMgaGFyZHdhcmUgU29DLCBvZnRlbiBhIFNtYXJ0TklDIG9mIHNvbWUga2luZC4gVGhhdCBnZW5lcmFsbHkgbWVhbnMgaXQmIzM5O3Mgbm90IHNvbWV0aGluZyB5b3UgY2FuIGp1c3Qgc3BpbiB1cCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQuIEl0JiMzOTtzIGFsbW9zdCBhbHdheXMgYSBjdXN0b20gc2lsaWNvbiwgYW5kIHJhcmVseSBhIHN0YW5kYXJkIFBDSSBkZXZpY2Ugb3IgcGxhdGZvcm0gZGV2aWNlLiBCdXQgSSBuZWVkIHRvIGRvdWJsZS1jaGVjay4KCkkgaGF2ZSB0aGF0IHJ1bGVib29rIGluIHRoZSBiYWNrIG9mIG15IGhlYWQ6IGl0IGV4cGxpY2l0bHkgbWVudGlvbnMsICYjMzQ7UmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWlucy4uLkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUmIzM0Oy4KCkFuZCB0aGF0JiMzOTtzIGl0LiBPY3Rlb24gVFgyIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBjdXN0b20gaGFyZHdhcmUsIGFuZCBpdCYjMzk7cyBhbG1vc3QgY2VydGFpbmx5IGdvaW5nIHRvIHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUuIFRoaXMgaXMgYSBkZWFkIGVuZCBmb3Igc3RhbmRhcmQgUUVNVSB0ZXN0aW5nLiBUaW1lIHRvIG1hcmsgdGhpcyBhcyAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O29jdGVvbnR4MiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jOjI4OiNkZWZpbmUgREVCVUdGU19ESVJfTkFNRSBcJiMzNDtvY3Rlb250eDJcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYz00MDEzPXN0YXRpYyBjb25zdCBjaGFyICpydnVfZ2V0X2RiZ19kaXJfbmFtZShzdHJ1Y3QgcnZ1ICpydnUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy00MDIwLVx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYzo0MDIxOlx0XHRyZXR1cm4gXCYjMzQ7b2N0ZW9udHgyXCYjMzQ7O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy00MDIyLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGV2bGluay5jLTE1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNjojZGVmaW5lIERSVl9OQU1FIFwmIzM0O29jdGVvbnR4Mi1hZlwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvTWFrZWZpbGU9MTg9cnZ1X25pY3BmLSQoQ09ORklHX1hGUk1fT0ZGTE9BRCkgJiM0Mzs9IGNuMTBrX2lwc2VjLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZS0xOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZToyMDpjY2ZsYWdzLXkgJiM0Mzs9IC1JJChzcmN0cmVlKS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTE3LSNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvYy9tYXJ2ZWxsL3NpbGljb25zLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oOjE4OiNpbmNsdWRlIFx1MDAzY2xpbnV4L3NvYy9tYXJ2ZWxsL29jdGVvbnR4Mi9hc20uaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL290eDJfY29tbW9uLmgtMTktI2luY2x1ZGUgXHUwMDNjbmV0L21hY3NlYy5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvcy5jPTExMTU9c3RhdGljIGludCBvdHgyX3Fvc192YWxpZGF0ZV9xdWFudHVtKHN0cnVjdCBvdHgyX25pYyAqcGZ2ZiwgdTMyIHF1YW50dW0pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL3Fvcy5jLTExMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmM6MTEyMDpcdC8qIE1heCBSb3VuZCByb2JpbiB3ZWlnaHQgc3VwcG9ydGVkIGJ5IG9jdGVvbnR4MiBhbmQgQ04xMEtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYy0xMTIxLVx0ICogaXMgZGlmZmVyZW50LiBWYWxpZGF0ZSBhY2NvcmRpbmdseVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjMwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQzMjcKCQkJCQkJCW91dHB1dDogODMKCQkJCQkJCXRob3VnaHRzOiA2NwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIERlY2lzaW9uIGZvciB0aGUgT2N0ZW9uIFRYMiBBRiBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGludG8gdGhpcyBkcml2ZXIsIGFuZCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgd2hlcmUgd2Ugc3RhbmQuIFRoaXMgYG9jdGVvbnR4Mi1hZmAgZHJpdmVyLCB0aGF0JiMzOTtzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgb25lLCByaWdodD8gVGhlIGtleSBpc3N1ZSBoZXJlIGlzIHRoYXQgaXQmIzM5O3MgZnVuZGFtZW50YWxseSB0aWVkIHRvIHBoeXNpY2FsIGhhcmR3YXJlLiBJdCByZWxpZXMgb24gYSBQQ0llIGRldmljZSB0aGF0JiMzOTtzICpub3QqIGdvaW5nIHRvIGJlIGVtdWxhdGVkIGFjY3VyYXRlbHkgb3IgZWZmZWN0aXZlbHkgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudC4gVHJ5aW5nIHRvIGZ1enogdGhpcyB0aGluZyBpbiBhIHZpcnR1YWxpemVkIHNldHRpbmc/IEZvcmdldCBhYm91dCBpdC4gSXQgd291bGQgYmUgYSB3YXN0ZSBvZiB0aW1lIGFuZCByZXNvdXJjZXMuIFNvLCBJJiMzOTttIGdvaW5nIHRvIGZsYWcgdGhpcyBhcyBhICYjMzQ7bm8tZ28mIzM0OyBmb3IgZnV6emluZy4gSSYjMzk7bGwgcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgLCBhbmQgaW5jbHVkZSBhIGNsZWFyLCBjb25jaXNlIGp1c3RpZmljYXRpb24g4oCTIHRoaXMgaGFyZHdhcmUgZGVwZW5kZW5jeSBpcyB0aGUgcm9hZGJsb2NrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDE5OjMwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uIFRYMiAob2N0ZW9udHgyKSBuZXR3b3JrIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWFydmVsbCBPY3Rlb24gVFgyIChvY3Rlb250eDIpIG5ldHdvcmsgZHJpdmVyLiBUaGlzIGlzIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgYSBwaHlzaWNhbCBkZXZpY2UgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMsIG1ha2luZyBpdCB1bnJlYWNoYWJsZSBmb3IgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxOToyOTo1My41NzU2OTQ5MjRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjE1OTM4NTMzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uIFRYMiAob2N0ZW9udHgyKSBuZXR3b3JrIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxOToyOTo1My41NzU3MDU5MjRaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzY1Nzc4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFlMTZlOWE1ZjA1YWY0YTU0MjZiNmY1OTk2YWExNGQzYzAxMDI3NWNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBBdWcgNiAxOToyOTo1MiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmhcXG5pbmRleCA3M2Y3NDNlNGE4M2Q3Li4yMWMzZDNkNTAxOGVhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxcbkBAIC0yMDEwLDYgKzIwMTAsNyBAQCBzdHJ1Y3QgcHRwX3JlcSB7XFxuIFxcdHN0cnVjdCBtYm94X21zZ2hkciBoZHI7XFxuIFxcdHU4IG9wO1xcbiBcXHRzNjQgc2NhbGVkX3BwbTtcXG4rXFx0dTggaXNfcG11O1xcbiBcXHR1NjQgdGhyZXNoO1xcbiBcXHR1NjQgcGVyaW9kO1xcbiBcXHRpbnQgcHBzX29uO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jXFxuaW5kZXggNThlNjJlOTU1NTU0Ni4uMGI2NmE4NjI0NmI2MiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jXFxuQEAgLTM1NiwxMCArMzU2LDI3IEBAIHN0YXRpYyBpbnQgcHRwX2FkamZpbmUoc3RydWN0IHB0cCAqcHRwLCBsb25nIHNjYWxlZF9wcG0pXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW50IHB0cF9nZXRfY2xvY2soc3RydWN0IHB0cCAqcHRwLCB1NjQgKmNsaylcXG4rc3RhdGljIGlubGluZSB1NjQgZ2V0X3RzYyhib29sIGlzX3BtdSlcXG4ge1xcbi1cXHQvKiBSZXR1cm4gdGhlIGN1cnJlbnQgUFRQIGNsb2NrICovXFxuLVxcdCpjbGsgPSBwdHAtXFx1MDAzZXJlYWRfcHRwX3RzdG1wKHB0cCk7XFxuKyNpZiBkZWZpbmVkKENPTkZJR19BUk02NClcXG4rXFx0cmV0dXJuIGlzX3BtdSA/IHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKSA6IHJlYWRfc3lzcmVnKGNudHZjdF9lbDApO1xcbisjZWxzZVxcbitcXHRyZXR1cm4gMDtcXG4rI2VuZGlmXFxuK31cXG4rXFxuK3N0YXRpYyBpbnQgcHRwX2dldF9jbG9jayhzdHJ1Y3QgcHRwICpwdHAsIGJvb2wgaXNfcG11LCB1NjQgKmNsaywgdTY0ICp0c2MpXFxuK3tcXG4rXFx0dTY0IGVuZCwgc3RhcnQ7XFxuK1xcdHU4IHJldHJpZXMgPSAwO1xcbitcXG4rXFx0ZG8ge1xcbitcXHRcXHRzdGFydCA9IGdldF90c2MoMCk7XFxuK1xcdFxcdCp0c2MgPSBnZXRfdHNjKGlzX3BtdSk7XFxuK1xcdFxcdCpjbGsgPSBwdHAtXFx1MDAzZXJlYWRfcHRwX3RzdG1wKHB0cCk7XFxuK1xcdFxcdGVuZCA9IGdldF90c2MoMCk7XFxuK1xcdFxcdHJldHJpZXMrKztcXG4rXFx0fSB3aGlsZSAoKChlbmQgLSBzdGFydCkgXFx1MDAzZSA1MCkgXFx1MDAyNlxcdTAwMjYgcmV0cmllcyBcXHUwMDNjIDUpO1xcbiBcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG5AQCAtNjM2LDcgKzY1Myw4IEBAIGludCBydnVfbWJveF9oYW5kbGVyX3B0cF9vcChzdHJ1Y3QgcnZ1ICpydnUsIHN0cnVjdCBwdHBfcmVxICpyZXEsXFxuIFxcdFxcdGVyciA9IHB0cF9hZGpmaW5lKHJ2dS1cXHUwMDNlcHRwLCByZXEtXFx1MDAzZXNjYWxlZF9wcG0pO1xcbiBcXHRcXHRicmVhaztcXG4gXFx0Y2FzZSBQVFBfT1BfR0VUX0NMT0NLOlxcbi1cXHRcXHRlcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS1cXHUwMDNlcHRwLCBcXHUwMDI2cnNwLVxcdTAwM2VjbGspO1xcbitcXHRcXHRlcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS1cXHUwMDNlcHRwLCByZXEtXFx1MDAzZWlzX3BtdSwgXFx1MDAyNnJzcC1cXHUwMDNlY2xrLFxcbitcXHRcXHRcXHRcXHQgICAgXFx1MDAyNnJzcC1cXHUwMDNldHNjKTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGNhc2UgUFRQX09QX0dFVF9UU1RNUDpcXG4gXFx0XFx0ZXJyID0gcHRwX2dldF90c3RtcChydnUtXFx1MDAzZXB0cCwgXFx1MDAyNnJzcC1cXHUwMDNlY2xrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTk6Mjk6NTQuMDgwMzc5MTgyWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MTU2NTQ2OTU3MzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgKG9jdGVvbnR4MikgbmV0d29yayBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBhIHBoeXNpY2FsIGRldmljZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYWUxNmU5YTVmMDVhZjRhNTQyNmI2ZjU5OTZhYTE0ZDNjMDEwMjc1Y1xuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMTk6Mjk6NTIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmhcbmluZGV4IDczZjc0M2U0YTgzZDcuLjIxYzNkM2Q1MDE4ZWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9tYm94LmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaFxuQEAgLTIwMTAsNiArMjAxMCw3IEBAIHN0cnVjdCBwdHBfcmVxIHtcbiBcdHN0cnVjdCBtYm94X21zZ2hkciBoZHI7XG4gXHR1OCBvcDtcbiBcdHM2NCBzY2FsZWRfcHBtO1xuK1x0dTggaXNfcG11O1xuIFx0dTY0IHRocmVzaDtcbiBcdHU2NCBwZXJpb2Q7XG4gXHRpbnQgcHBzX29uO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmNcbmluZGV4IDU4ZTYyZTk1NTU1NDYuLjBiNjZhODYyNDZiNjIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9wdHAuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcHRwLmNcbkBAIC0zNTYsMTAgKzM1NiwyNyBAQCBzdGF0aWMgaW50IHB0cF9hZGpmaW5lKHN0cnVjdCBwdHAgKnB0cCwgbG9uZyBzY2FsZWRfcHBtKVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyBpbnQgcHRwX2dldF9jbG9jayhzdHJ1Y3QgcHRwICpwdHAsIHU2NCAqY2xrKVxuK3N0YXRpYyBpbmxpbmUgdTY0IGdldF90c2MoYm9vbCBpc19wbXUpXG4ge1xuLVx0LyogUmV0dXJuIHRoZSBjdXJyZW50IFBUUCBjbG9jayAqL1xuLVx0KmNsayA9IHB0cC1cdTAwM2VyZWFkX3B0cF90c3RtcChwdHApO1xuKyNpZiBkZWZpbmVkKENPTkZJR19BUk02NClcbitcdHJldHVybiBpc19wbXUgPyByZWFkX3N5c3JlZyhwbWNjbnRyX2VsMCkgOiByZWFkX3N5c3JlZyhjbnR2Y3RfZWwwKTtcbisjZWxzZVxuK1x0cmV0dXJuIDA7XG4rI2VuZGlmXG4rfVxuK1xuK3N0YXRpYyBpbnQgcHRwX2dldF9jbG9jayhzdHJ1Y3QgcHRwICpwdHAsIGJvb2wgaXNfcG11LCB1NjQgKmNsaywgdTY0ICp0c2MpXG4re1xuK1x0dTY0IGVuZCwgc3RhcnQ7XG4rXHR1OCByZXRyaWVzID0gMDtcbitcbitcdGRvIHtcbitcdFx0c3RhcnQgPSBnZXRfdHNjKDApO1xuK1x0XHQqdHNjID0gZ2V0X3RzYyhpc19wbXUpO1xuK1x0XHQqY2xrID0gcHRwLVx1MDAzZXJlYWRfcHRwX3RzdG1wKHB0cCk7XG4rXHRcdGVuZCA9IGdldF90c2MoMCk7XG4rXHRcdHJldHJpZXMrKztcbitcdH0gd2hpbGUgKCgoZW5kIC0gc3RhcnQpIFx1MDAzZSA1MCkgXHUwMDI2XHUwMDI2IHJldHJpZXMgXHUwMDNjIDUpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTYzNiw3ICs2NTMsOCBAQCBpbnQgcnZ1X21ib3hfaGFuZGxlcl9wdHBfb3Aoc3RydWN0IHJ2dSAqcnZ1LCBzdHJ1Y3QgcHRwX3JlcSAqcmVxLFxuIFx0XHRlcnIgPSBwdHBfYWRqZmluZShydnUtXHUwMDNlcHRwLCByZXEtXHUwMDNlc2NhbGVkX3BwbSk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBQVFBfT1BfR0VUX0NMT0NLOlxuLVx0XHRlcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS1cdTAwM2VwdHAsIFx1MDAyNnJzcC1cdTAwM2VjbGspO1xuK1x0XHRlcnIgPSBwdHBfZ2V0X2Nsb2NrKHJ2dS1cdTAwM2VwdHAsIHJlcS1cdTAwM2Vpc19wbXUsIFx1MDAyNnJzcC1cdTAwM2VjbGssXG4rXHRcdFx0XHQgICAgXHUwMDI2cnNwLVx1MDAzZXRzYyk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBQVFBfT1BfR0VUX1RTVE1QOlxuIFx0XHRlcnIgPSBwdHBfZ2V0X3RzdG1wKHJ2dS1cdTAwM2VwdHAsIFx1MDAyNnJzcC1cdTAwM2VjbGspO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMTk6Mjk6NTQuMDgwMzgxNzEyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NjY4MDIwMDM5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE9jdGVvbiBUWDIgUFRQIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0J3MgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3B0cC5jYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL21ib3guaGAuIExvb2tzIGxpa2UgdGhleSdyZSBtb2RpZnlpbmcgYHB0cF9nZXRfY2xvY2tgIHRvIHRha2UgYW4gYGlzX3BtdWAgZmxhZyBhbmQgcmV0dXJuIGJvdGggYSBgdHNjYCBhbmQgYSBgY2xrYCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcuIFRoZSBjb2RlIHVzZXMgYHJlYWRfc3lzcmVnKHBtY2NudHJfZWwwKWAgb3IgYHJlYWRfc3lzcmVnKGNudHZjdF9lbDApYCBvbiBBUk02NCwgYXMgZXhwZWN0ZWQgZm9yIHRoZXNlIHR5cGVzIG9mIHRpbWUgc291cmNlcy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHRoaXMgaXMgYWxsIHJlbGF0ZWQgdG8gdGhlIE9jdGVvbiBUWDIgZHJpdmVyLCB3aGljaCBtZWFucyBpdCdzIHByZXR0eSBtdWNoIGEgZ2l2ZW4gdGhhdCB3ZSdyZSBkZWFsaW5nIHdpdGggTWFydmVsbCdzIGN1c3RvbSBoYXJkd2FyZS5cblxuVGhlIGJ1cm5pbmcgcXVlc3Rpb24gdGhlbiBiZWNvbWVzOiBjYW4gd2UgZXZlbiB0ZXN0IHRoaXMgdGhpbmcgaW4gUUVNVT8gSSBrbm93IHRoZSBPY3Rlb24gVFgyIGlzIHVzdWFsbHkgYSBzcGVjaWZpYyBoYXJkd2FyZSBTb0MsIG9mdGVuIGEgU21hcnROSUMgb2Ygc29tZSBraW5kLiBUaGF0IGdlbmVyYWxseSBtZWFucyBpdCdzIG5vdCBzb21ldGhpbmcgeW91IGNhbiBqdXN0IHNwaW4gdXAgaW4gYSBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50LiBJdCdzIGFsbW9zdCBhbHdheXMgYSBjdXN0b20gc2lsaWNvbiwgYW5kIHJhcmVseSBhIHN0YW5kYXJkIFBDSSBkZXZpY2Ugb3IgcGxhdGZvcm0gZGV2aWNlLiBCdXQgSSBuZWVkIHRvIGRvdWJsZS1jaGVjay5cblxuSSBoYXZlIHRoYXQgcnVsZWJvb2sgaW4gdGhlIGJhY2sgb2YgbXkgaGVhZDogaXQgZXhwbGljaXRseSBtZW50aW9ucywgXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zLi4uQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVVwiLlxuXG5BbmQgdGhhdCdzIGl0LiBPY3Rlb24gVFgyIGlzIGEgdmVuZG9yLXNwZWNpZmljIFNtYXJ0TklDLiBXZSdyZSB0YWxraW5nIGFib3V0IGN1c3RvbSBoYXJkd2FyZSwgYW5kIGl0J3MgYWxtb3N0IGNlcnRhaW5seSBnb2luZyB0byByZXF1aXJlIHBoeXNpY2FsIGhhcmR3YXJlLiBUaGlzIGlzIGEgZGVhZCBlbmQgZm9yIHN0YW5kYXJkIFFFTVUgdGVzdGluZy4gVGltZSB0byBtYXJrIHRoaXMgYXMgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIi5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc0OCwiT3V0cHV0VG9rZW5zIjo0MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwNiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE5OjMwOjAwLjc2MDU4NzUxM1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjIxODc1MjMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwib2N0ZW9udHgyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmMtMjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYzoyODojZGVmaW5lIERFQlVHRlNfRElSX05BTUUgXFxcIm9jdGVvbnR4MlxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTI5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYz00MDEzPXN0YXRpYyBjb25zdCBjaGFyICpydnVfZ2V0X2RiZ19kaXJfbmFtZShzdHJ1Y3QgcnZ1ICpydnUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9hZi9ydnVfZGVidWdmcy5jLTQwMjAtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZWJ1Z2ZzLmM6NDAyMTpcXHRcXHRyZXR1cm4gXFxcIm9jdGVvbnR4MlxcXCI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RlYnVnZnMuYy00MDIyLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmL3J2dV9kZXZsaW5rLmMtMTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYzoxNjojZGVmaW5lIERSVl9OQU1FIFxcXCJvY3Rlb250eDItYWZcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvYWYvcnZ1X2RldmxpbmsuYy0xNy1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZT0xOD1ydnVfbmljcGYtJChDT05GSUdfWEZSTV9PRkZMT0FEKSArPSBjbjEwa19pcHNlYy5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWFydmVsbC9vY3Rlb250eDIvbmljL01ha2VmaWxlLTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9NYWtlZmlsZToyMDpjY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL2FmXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaC0xNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvc29jL21hcnZlbGwvc2lsaWNvbnMuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvb3R4Ml9jb21tb24uaDoxODojaW5jbHVkZSBcXHUwMDNjbGludXgvc29jL21hcnZlbGwvb2N0ZW9udHgyL2FzbS5oXFx1MDAzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9vdHgyX2NvbW1vbi5oLTE5LSNpbmNsdWRlIFxcdTAwM2NuZXQvbWFjc2VjLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmM9MTExNT1zdGF0aWMgaW50IG90eDJfcW9zX3ZhbGlkYXRlX3F1YW50dW0oc3RydWN0IG90eDJfbmljICpwZnZmLCB1MzIgcXVhbnR1bSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYy0xMTE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvb2N0ZW9udHgyL25pYy9xb3MuYzoxMTIwOlxcdC8qIE1heCBSb3VuZCByb2JpbiB3ZWlnaHQgc3VwcG9ydGVkIGJ5IG9jdGVvbnR4MiBhbmQgQ04xMEtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tYXJ2ZWxsL29jdGVvbnR4Mi9uaWMvcW9zLmMtMTEyMS1cXHQgKiBpcyBkaWZmZXJlbnQuIFZhbGlkYXRlIGFjY29yZGluZ2x5XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDE5OjMwOjAxLjIyMjc4MDYzNloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1MTIyNjk1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBEZWNpc2lvbiBmb3IgdGhlIE9jdGVvbiBUWDIgQUYgRHJpdmVyKipcblxuT2theSwgc28gSSd2ZSBsb29rZWQgaW50byB0aGlzIGRyaXZlciwgYW5kIGl0J3MgcHJldHR5IGNsZWFyIHdoZXJlIHdlIHN0YW5kLiBUaGlzIGBvY3Rlb250eDItYWZgIGRyaXZlciwgdGhhdCdzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgb25lLCByaWdodD8gVGhlIGtleSBpc3N1ZSBoZXJlIGlzIHRoYXQgaXQncyBmdW5kYW1lbnRhbGx5IHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmUuIEl0IHJlbGllcyBvbiBhIFBDSWUgZGV2aWNlIHRoYXQncyAqbm90KiBnb2luZyB0byBiZSBlbXVsYXRlZCBhY2N1cmF0ZWx5IG9yIGVmZmVjdGl2ZWx5IHdpdGhpbiBhIFFFTVUgZW52aXJvbm1lbnQuIFRyeWluZyB0byBmdXp6IHRoaXMgdGhpbmcgaW4gYSB2aXJ0dWFsaXplZCBzZXR0aW5nPyBGb3JnZXQgYWJvdXQgaXQuIEl0IHdvdWxkIGJlIGEgd2FzdGUgb2YgdGltZSBhbmQgcmVzb3VyY2VzLiBTbywgSSdtIGdvaW5nIHRvIGZsYWcgdGhpcyBhcyBhIFwibm8tZ29cIiBmb3IgZnV6emluZy4gSSdsbCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAsIGFuZCBpbmNsdWRlIGEgY2xlYXIsIGNvbmNpc2UganVzdGlmaWNhdGlvbiDigJMgdGhpcyBoYXJkd2FyZSBkZXBlbmRlbmN5IGlzIHRoZSByb2FkYmxvY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMjcsIk91dHB1dFRva2VucyI6ODMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQxOTozMDowOS43MzUwNTI1MzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwOTUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIE9jdGVvbiBUWDIgKG9jdGVvbnR4MikgbmV0d29yayBkcml2ZXIuIFRoaXMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBhIHBoeXNpY2FsIGRldmljZSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cywgbWFraW5nIGl0IHVucmVhY2hhYmxlIGZvciBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1hcnZlbGwgT2N0ZW9uIFRYMiAob2N0ZW9udHgyKSBuZXR3b3JrIGRyaXZlci4gVGhpcyBpcyBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIGEgcGh5c2ljYWwgZGV2aWNlIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLCBtYWtpbmcgaXQgdW5yZWFjaGFibGUgZm9yIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowkzh7q[1] Phase: Running StartedAt: 2026-08-06 19:30:21 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowkzh7q[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-06 19:30:21 +0000 UTC FinishedAt: 2026-08-06 19:30:25 +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,}