Name: series-workflowdc9b9 Phase: Failed StartedAt: 2026-06-26 19:00:42 +0000 UTC FinishedAt: 2026-06-26 19:14:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdc9b9[0] Phase: Succeeded StartedAt: 2026-06-26 19:00:42 +0000 UTC FinishedAt: 2026-06-26 19:14:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdc9b9[0].run-triage Phase: Succeeded StartedAt: 2026-06-26 19:00:42 +0000 UTC FinishedAt: 2026-06-26 19:14:18 +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+CgkJCTx0ZD4yMDI2LzA2LzI2IDE5OjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAxOToxMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDZmMzNkYmI1NGIwOWIwYTQyNDQyYWUzMmMzOWJiNTRmMjNiZTE5OTRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1biAyNiAxOToxMzo1MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuaW5kZXggMzMwN2U1MDQyNjgxOTAuLjQxYTI5OThlZTJhMDI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuQEAgLTQwLDYgJiM0Mzs0MCw3IEBAXG4gI2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2N4Z2I0X2ZpbHRlci5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdGNfZmxvd2VyLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7dDRfcmVncy5oXCYjMzQ7XG4gXG4gI2RlZmluZSBTVEFUU19DSEVDS19QRVJJT0QgKEhaIC8gMilcbiBcbkBAIC0yNjYsMjQgJiM0MzsyNjcsNDkgQEAgc3RhdGljIHZvaWQgY3hnYjRfcHJvY2Vzc19mbG93X21hdGNoKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdFx0XHRcdCAgICAgICBWTEFOX1BSSU9fU0hJRlQpO1xuIFx0XHR2bGFuX3RjaV9tYXNrID0gbWF0Y2gubWFzay1cdTAwM2V2bGFuX2lkIHwgKG1hdGNoLm1hc2stXHUwMDNldmxhbl9wcmlvcml0eSBcdTAwM2NcdTAwM2NcbiBcdFx0XHRcdFx0XHQgICAgIFZMQU5fUFJJT19TSElGVCk7XG4tXHRcdGZzLVx1MDAzZXZhbC5pdmxhbiA9IHZsYW5fdGNpO1xuLVx0XHRmcy1cdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcbi1cbi1cdFx0ZnMtXHUwMDNldmFsLml2bGFuX3ZsZCA9IDE7XG4tXHRcdGZzLVx1MDAzZW1hc2suaXZsYW5fdmxkID0gMTtcbi1cbi1cdFx0LyogQ2hlbHNpbyBhZGFwdGVycyB1c2UgaXZsYW5fdmxkIGJpdCB0byBtYXRjaCB2bGFuIHBhY2tldHNcbi1cdFx0ICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cyxcbi1cdFx0ICogZXRodHlwZSBtYXRjaCBpcyB1c2VkIHRoZW4gdG8gbWF0Y2ggb24gZXRodHlwZSBvZiBpbm5lclxuLVx0XHQgKiBoZWFkZXIgaWUuIHRoZSBoZWFkZXIgZm9sbG93aW5nIHRoZSB2bGFuIGhlYWRlci5cbi1cdFx0ICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieVxuLVx0XHQgKiBUQyBmb3IgdmxhbiBwYWNrZXRzIGlmIGl0cyA4MDIuMVEuIEFuZCB0aGVuIHJlc2V0IHRoZVxuLVx0XHQgKiBldGh0eXBlIHZhbHVlIGVsc2UsIGh3IHdpbGwgdHJ5IHRvIG1hdGNoIHRoZSBzdXBwbGllZFxuLVx0XHQgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuXG4tXHRcdCAqL1xuLVx0XHRpZiAoZnMtXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcbi1cdFx0XHRmcy1cdTAwM2V2YWwuZXRodHlwZSA9IDA7XG4tXHRcdFx0ZnMtXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcbiYjNDM7XG4mIzQzO1x0XHRpZiAoYmUxNl90b19jcHUobWF0Y2gua2V5LVx1MDAzZXZsYW5fdHBpZCkgPT0gRVRIX1BfODAyMUFEKSB7XG4mIzQzO1x0XHRcdHN0cnVjdCBhZGFwdGVyICphZGFwID0gbmV0ZGV2MmFkYXAoZGV2KTtcbiYjNDM7XHRcdFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xuJiM0MztcbiYjNDM7XHRcdFx0aWYgKCFhZGFwKSB7XG4mIzQzO1x0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwmIzM0OyVzOiBhZGFwIG5vdCBmb3VuZFxcblwmIzM0OywgX19mdW5jX18pO1xuJiM0MztcdFx0XHRcdHJldHVybjtcbiYjNDM7XHRcdFx0fVxuJiM0MztcbiYjNDM7XHRcdFx0dmFsID0gKGJlMTZfdG9fY3B1KG1hdGNoLm1hc2stXHUwMDNldmxhbl90cGlkKSBcdTAwM2NcdTAwM2MgMTYpIHxcbiYjNDM7XHRcdFx0ICAgICAgYmUxNl90b19jcHUobWF0Y2gua2V5LVx1MDAzZXZsYW5fdHBpZCk7XG4mIzQzO1x0XHRcdHBvcnRfaWQgPSBuZXRkZXYycGluZm8oZGV2KS1cdTAwM2Vwb3J0X2lkO1xuJiM0MztcdFx0XHRmcy1cdTAwM2V2YWwub3ZsYW4gPSB2bGFuX3RjaTtcbiYjNDM7XHRcdFx0ZnMtXHUwMDNlbWFzay5vdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4mIzQzO1x0XHRcdGZzLVx1MDAzZXZhbC5vdmxhbl92bGQgPSAxO1xuJiM0MztcdFx0XHRmcy1cdTAwM2VtYXNrLm92bGFuX3ZsZCA9IDE7XG4mIzQzO1x0XHRcdG92bGFuX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX09WTEFOMF9BKTtcbiYjNDM7XHRcdFx0Y3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTtcbiYjNDM7XHRcdFx0dDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTtcbiYjNDM7XHRcdFx0dmFsID0gdDRfcmVhZF9yZWcoYWRhcCwgY3RsX3JlZyk7XG4mIzQzO1x0XHRcdHQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTtcbiYjNDM7XHRcdFx0dDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSBcdTAwM2NcdTAwM2MgOSwgMCk7XG4mIzQzO1x0XHR9IGVsc2Uge1xuJiM0MztcdFx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbiYjNDM7XHRcdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4mIzQzO1x0XHRcdGZzLVx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xuJiM0MztcdFx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4mIzQzO1xuJiM0MztcdFx0XHQvKiBDaGVsc2lvIGFkYXB0ZXJzIHVzZSBpdmxhbl92bGQgYml0IHRvIG1hdGNoIHZsYW4gcGFja2V0c1xuJiM0MztcdFx0XHQgKiBhcyA4MDIuMVEuIEFsc28sIHdoZW4gdmxhbiB0YWcgaXMgcHJlc2VudCBpbiBwYWNrZXRzLFxuJiM0MztcdFx0XHQgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyXG4mIzQzO1x0XHRcdCAqIGhlYWRlciBpZS4gdGhlIGhlYWRlciBmb2xsb3dpbmcgdGhlIHZsYW4gaGVhZGVyLlxuJiM0MztcdFx0XHQgKiBTbywgc2V0IHRoZSBpdmxhbl92bGQgYmFzZWQgb24gZXRodHlwZSBpbmZvIHN1cHBsaWVkIGJ5XG4mIzQzO1x0XHRcdCAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlXG4mIzQzO1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgZWxzZSwgaHcgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIHN1cHBsaWVkXG4mIzQzO1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgd2l0aCBldGh0eXBlIG9mIGlubmVyIGhlYWRlci5cbiYjNDM7XHRcdFx0ICovXG4mIzQzO1xuJiM0MztcdFx0XHRpZiAoZnMtXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcbiYjNDM7XHRcdFx0XHRmcy1cdTAwM2V2YWwuZXRodHlwZSA9IDA7XG4mIzQzO1x0XHRcdFx0ZnMtXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcbiYjNDM7XHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxuaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXG5AQCAtMTkyMSw2ICYjNDM7MTkyMSw5IEBAXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTBcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fSElfQSAweDk5NFxuIFxuJiM0MzsjZGVmaW5lIE1QU19QT1JUX1JYX09WTEFOMF9BIDB4MTIwXG4mIzQzOyNkZWZpbmUgTVBTX1BPUlRfUlhfQ1RMX0EgICAgMFgxMDBcbiYjNDM7XG4gI2RlZmluZSBNUFNfQ01OX0NUTF9BXHQweDkwMDBcbiBcbiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDE5OjEzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmYzM2RiYjU0YjA5YjBhNDI0NDJhZTMyYzM5YmI1NGYyM2JlMTk5NApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVuIDI2IDE5OjEzOjUxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMKaW5kZXggMzMwN2U1MDQyNjgxOTAuLjQxYTI5OThlZTJhMDI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMKQEAgLTQwLDYgJiM0Mzs0MCw3IEBACiAjaW5jbHVkZSAmIzM0O2N4Z2I0LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtjeGdiNF9maWx0ZXIuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2N4Z2I0X3RjX2Zsb3dlci5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0O3Q0X3JlZ3MuaCYjMzQ7CiAKICNkZWZpbmUgU1RBVFNfQ0hFQ0tfUEVSSU9EIChIWiAvIDIpCiAKQEAgLTI2NiwyNCAmIzQzOzI2Nyw0OSBAQCBzdGF0aWMgdm9pZCBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2goc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCQkJICAgICAgIFZMQU5fUFJJT19TSElGVCk7CiAJCXZsYW5fdGNpX21hc2sgPSBtYXRjaC5tYXNrLSZndDt2bGFuX2lkIHwgKG1hdGNoLm1hc2stJmd0O3ZsYW5fcHJpb3JpdHkgJmx0OyZsdDsKIAkJCQkJCSAgICAgVkxBTl9QUklPX1NISUZUKTsKLQkJZnMtJmd0O3ZhbC5pdmxhbiA9IHZsYW5fdGNpOwotCQlmcy0mZ3Q7bWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7Ci0KLQkJZnMtJmd0O3ZhbC5pdmxhbl92bGQgPSAxOwotCQlmcy0mZ3Q7bWFzay5pdmxhbl92bGQgPSAxOwotCi0JCS8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzCi0JCSAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsCi0JCSAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXIKLQkJICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuCi0JCSAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnkKLQkJICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGUKLQkJICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWQKLQkJICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLgotCQkgKi8KLQkJaWYgKGZzLSZndDt2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkgewotCQkJZnMtJmd0O3ZhbC5ldGh0eXBlID0gMDsKLQkJCWZzLSZndDttYXNrLmV0aHR5cGUgPSAwOwomIzQzOwomIzQzOwkJaWYgKGJlMTZfdG9fY3B1KG1hdGNoLmtleS0mZ3Q7dmxhbl90cGlkKSA9PSBFVEhfUF84MDIxQUQpIHsKJiM0MzsJCQlzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IG5ldGRldjJhZGFwKGRldik7CiYjNDM7CQkJdTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkOwomIzQzOwomIzQzOwkJCWlmICghYWRhcCkgewomIzQzOwkJCQluZXRkZXZfZXJyKGRldiwgJiMzNDslczogYWRhcCBub3QgZm91bmRcbiYjMzQ7LCBfX2Z1bmNfXyk7CiYjNDM7CQkJCXJldHVybjsKJiM0MzsJCQl9CiYjNDM7CiYjNDM7CQkJdmFsID0gKGJlMTZfdG9fY3B1KG1hdGNoLm1hc2stJmd0O3ZsYW5fdHBpZCkgJmx0OyZsdDsgMTYpIHwKJiM0MzsJCQkgICAgICBiZTE2X3RvX2NwdShtYXRjaC5rZXktJmd0O3ZsYW5fdHBpZCk7CiYjNDM7CQkJcG9ydF9pZCA9IG5ldGRldjJwaW5mbyhkZXYpLSZndDtwb3J0X2lkOwomIzQzOwkJCWZzLSZndDt2YWwub3ZsYW4gPSB2bGFuX3RjaTsKJiM0MzsJCQlmcy0mZ3Q7bWFzay5vdmxhbiA9IHZsYW5fdGNpX21hc2s7CiYjNDM7CQkJZnMtJmd0O3ZhbC5vdmxhbl92bGQgPSAxOwomIzQzOwkJCWZzLSZndDttYXNrLm92bGFuX3ZsZCA9IDE7CiYjNDM7CQkJb3ZsYW5fcmVnID0gUE9SVF9SRUcocG9ydF9pZCwgTVBTX1BPUlRfUlhfT1ZMQU4wX0EpOwomIzQzOwkJCWN0bF9yZWcgPSBQT1JUX1JFRyhwb3J0X2lkLCBNUFNfUE9SVF9SWF9DVExfQSk7CiYjNDM7CQkJdDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTsKJiM0MzsJCQl2YWwgPSB0NF9yZWFkX3JlZyhhZGFwLCBjdGxfcmVnKTsKJiM0MzsJCQl0NF93cml0ZV9yZWcoYWRhcCwgY3RsX3JlZywgdmFsIHwgMSk7CiYjNDM7CQkJdDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSAmbHQ7Jmx0OyA5LCAwKTsKJiM0MzsJCX0gZWxzZSB7CiYjNDM7CQkJZnMtJmd0O3ZhbC5pdmxhbiA9IHZsYW5fdGNpOwomIzQzOwkJCWZzLSZndDttYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzazsKJiM0MzsJCQlmcy0mZ3Q7dmFsLml2bGFuX3ZsZCA9IDE7CiYjNDM7CQkJZnMtJmd0O21hc2suaXZsYW5fdmxkID0gMTsKJiM0MzsKJiM0MzsJCQkvKiBDaGVsc2lvIGFkYXB0ZXJzIHVzZSBpdmxhbl92bGQgYml0IHRvIG1hdGNoIHZsYW4gcGFja2V0cwomIzQzOwkJCSAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsCiYjNDM7CQkJICogZXRodHlwZSBtYXRjaCBpcyB1c2VkIHRoZW4gdG8gbWF0Y2ggb24gZXRodHlwZSBvZiBpbm5lcgomIzQzOwkJCSAqIGhlYWRlciBpZS4gdGhlIGhlYWRlciBmb2xsb3dpbmcgdGhlIHZsYW4gaGVhZGVyLgomIzQzOwkJCSAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnkKJiM0MzsJCQkgKiBUQyBmb3IgdmxhbiBwYWNrZXRzIGlmIGl0cyA4MDIuMVEuIEFuZCB0aGVuIHJlc2V0IHRoZQomIzQzOwkJCSAqIGV0aHR5cGUgdmFsdWUgZWxzZSwgaHcgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIHN1cHBsaWVkCiYjNDM7CQkJICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLgomIzQzOwkJCSAqLwomIzQzOwomIzQzOwkJCWlmIChmcy0mZ3Q7dmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHsKJiM0MzsJCQkJZnMtJmd0O3ZhbC5ldGh0eXBlID0gMDsKJiM0MzsJCQkJZnMtJmd0O21hc2suZXRodHlwZSA9IDA7CiYjNDM7CQkJfQogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oCmluZGV4IDY5NTkxNmJhMDQwNTg1Li4zOGM1ODVmM2IxYWRhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmgKQEAgLTE5MjEsNiAmIzQzOzE5MjEsOSBAQAogI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTAKICNkZWZpbmUgTUFDX1BPUlRfUFRQX1NVTV9ISV9BIDB4OTk0CiAKJiM0MzsjZGVmaW5lIE1QU19QT1JUX1JYX09WTEFOMF9BIDB4MTIwCiYjNDM7I2RlZmluZSBNUFNfUE9SVF9SWF9DVExfQSAgICAwWDEwMAomIzQzOwogI2RlZmluZSBNUFNfQ01OX0NUTF9BCTB4OTAwMAogCiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAxOToxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTk3CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmNgIGFuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhgLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIENoZWxzaW8gY3hnYjQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yIHRoZWlyIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgYWRkaW5nIDgwMi4xYWQgKFFpblEpIFZMQU4gdGFnIG1hdGNoaW5nIHRvIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBjaGVja2luZyBmb3IgYEVUSF9QXzgwMjFBRGAgaW4gdGhlIFZMQU4gVFBJRCBmaWVsZCBhbmQgY29uZmlndXJpbmcgaGFyZHdhcmUgcmVnaXN0ZXJzIGJhc2VkIG9uIHRoYXQuIFRoYXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBmcm9tIGEgbmV0d29ya2luZyBwZXJzcGVjdGl2ZSwgc3VwcG9ydGluZyBtb3JlIGNvbXBsZXggVkxBTiBzZXR1cHMuCgpOb3csIGJlY2F1c2UgdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgQ2hlbHNpbyBoYXJkd2FyZSwgSSYjMzk7bSBhbHJlYWR5IHRoaW5raW5nIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMgZm9yIGZ1enppbmcuIFVubGVzcyB0aGVyZSYjMzk7cyBzb21lIG9ic2N1cmUgc29mdHdhcmUgZW11bGF0b3IgZm9yIENoZWxzaW8gaGFyZHdhcmUgbHVya2luZyBhcm91bmQgKHdoaWNoIGlzIHVubGlrZWx5KSwgdGhpcyBkcml2ZXIgaXMgKmhpZ2hseSogdW5saWtlbHkgdG8gYmUgdHJpZ2dlcmVkIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGxldCBhbG9uZSB3aXRoaW4gdGhlIHN0YW5kYXJkIHN5emthbGxlciBzZXR1cC4KCk15IGZpcnN0IHRob3VnaHQgaXMsIGlzIHRoaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIGFzIEkgcmVjYWxsLiBZZXAsIGl0IGlzLiBUaGUgY3hnYjQgZHJpdmVyIGRpcmVjdGx5IHRhcmdldHMgQ2hlbHNpbyYjMzk7cyBwaHlzaWNhbCBFdGhlcm5ldCBhZGFwdGVycy4gR2l2ZW4gdGhhdCwgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZXJlIGlzbiYjMzk7dCBzb21lIGNsZXZlciBlbXVsYXRpb24gYmVpbmcgdXNlZC4gSGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBub3QgZW11bGF0YWJsZSBpbiBvdXIgZnV6emVyIHNldHVwIGFyZW4mIzM5O3Qgd29ydGggdGhlIGVmZm9ydC4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUga2VybmVsIHRyZWUgZm9yIGFueSBoaW50cyBvZiBgY3hnYjRgIGVtdWxhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAxOToxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjeGdiNCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MzE3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc9Njk9Y29uZmlnIENIRUxTSU9fVDRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctODktXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUgY2hvb3NlIE0gaGVyZTsgdGhlIG1vZHVsZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnOjkwOlx0ICB3aWxsIGJlIGNhbGxlZCBjeGdiNC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy05MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc9MTE0PWNvbmZpZyBDSEVMU0lPX1Q0VkZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTMwLVx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlIGNob29zZSBNIGhlcmU7IHRoZSBtb2R1bGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZzoxMzE6XHQgIHdpbGwgYmUgY2FsbGVkIGN4Z2I0dmYuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTMyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfQ0hFTFNJT19UMykgJiM0Mzs9IGN4Z2IzL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0KSAmIzQzOz0gY3hnYjQvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0NIRUxTSU9fVDRWRikgJiM0Mzs9IGN4Z2I0dmYvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19DSEVMU0lPX0xJQikgJiM0Mzs9IGxpYmN4Z2IvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0KSAmIzQzOz0gY3hnYjQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo4OmN4Z2I0LW9ianMgOj0gY3hnYjRfbWFpbi5vIGwydC5vIHNtdC5vIHQ0X2h3Lm8gc2dlLm8gY2xpcF90YmwubyBjeGdiNF9ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6OTpcdCAgICAgIGN4Z2I0X3VsZC5vIHNycS5vIHNjaGVkLm8gY3hnYjRfZmlsdGVyLm8gY3hnYjRfdGNfdTMyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTA6XHQgICAgICBjeGdiNF9wdHAubyBjeGdiNF90Y19mbG93ZXIubyBjeGdiNF9jdWRiZy5vIGN4Z2I0X21wcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjExOlx0ICAgICAgY3VkYmdfY29tbW9uLm8gY3VkYmdfbGliLm8gY3VkYmdfemxpYi5vIGN4Z2I0X3RjX21xcHJpby5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjEyOlx0ICAgICAgY3hnYjRfdGNfbWF0Y2hhbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMzpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0RDQikgJiM0Mzs9ICBjeGdiNF9kY2Iub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNDpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0ZDT0UpICYjNDM7PSAgY3hnYjRfZmNvZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE1OmN4Z2I0LSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gY3hnYjRfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE2OmN4Z2I0LSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSBjeGdiNF90aGVybWFsLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTctI2luY2x1ZGUgXHUwMDNjbmV0L2FkZHJjb25mLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxODojaW5jbHVkZSBcJiMzNDtjeGdiNC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTktI2luY2x1ZGUgXCYjMzQ7Y2xpcF90YmwuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYz01OT1zdGF0aWMgaW50IGNsaXA2X3JlbGVhc2VfbWJveChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy03My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzo3NDppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxNDQ6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX2dldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE0Njp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTg5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxOTA6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX3JlbGVhc2UpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE5NjpzdGF0aWMgaW50IGN4Z2I0X3VwZGF0ZV9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqcm9vdF9kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk3LVx0XHRcdFx0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIwOC1cdGxpc3RfZm9yX2VhY2hfZW50cnkoaWZhLCBcdTAwMjZpZGV2LVx1MDAzZWFkZHJfbGlzdCwgaWZfbGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIwOTpcdFx0cmV0ID0gY3hnYjRfY2xpcF9nZXQoZGV2LCAoY29uc3QgdTMyICopaWZhLVx1MDAzZWFkZHIuczZfYWRkciwgMSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjEwLVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MjE4OmludCBjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIxOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIyMy1cdC8qIEZpcnN0IHBvcHVsYXRlIHRoZSByZWFsIG5ldCBkZXZpY2UmIzM5O3MgSVB2NiBhZGRyZXNzZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMjQ6XHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAoZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIyNS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMC1cdGlmIChyb290X2Rldikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIzMTpcdFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjI0MTpcdFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0Mi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyNDg6RVhQT1JUX1NZTUJPTChjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaD0zOT1zdHJ1Y3QgY2xpcF90YmwgKnQ0X2luaXRfY2xpcF90YmwodW5zaWduZWQgaW50IGNsaXB0X3N0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQwLVx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgY2xpcHRfZW5kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0MTppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0Mjp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQzLWludCBjbGlwX3RibF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0NDppbnQgY3hnYjRfdXBkYXRlX3Jvb3RfZGV2X2NsaXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmgtNDUtdm9pZCB0NF9jbGVhbnVwX2NsaXBfdGJsKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jOjY6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19jb21tb24uYy03LSNpbmNsdWRlIFwmIzM0O2N1ZGJnX2lmLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTktI2luY2x1ZGUgXCYjMzQ7dDRfcmVncy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjEwOiNpbmNsdWRlIFwmIzM0O2N4Z2I0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfY3VkYmcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xMi0jaW5jbHVkZSBcJiMzNDtjdWRiZ19pZi5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xNi0jaW5jbHVkZSBcJiMzNDtjdWRiZ196bGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdGNfbXFwcmlvLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmMtMTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfemxpYi5jOjg6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtOS0jaW5jbHVkZSBcJiMzNDtjdWRiZ19pZi5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU4LSNpbmNsdWRlIFwmIzM0O3Q0X2NoaXBfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTk6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdWxkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02MC0jaW5jbHVkZSBcJiMzNDt0NGZ3X2FwaS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE0Mj1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE0OTplbnVtIGN4Z2I0X25ldGRldl90bHNfb3BzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNTAtXHRDWEdCNF9UTFNERVZfT1BTICA9IDEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNTQ6c3RydWN0IGN4Z2I0X2Jvb3RjZmdfZGF0YSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU1LVx0X19sZTE2IHNpZ25hdHVyZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE1OTpzdHJ1Y3QgY3hnYjRfcGNpcl9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjAtXHRfX2xlMzIgc2lnbmF0dXJlO1x0LyogU2lnbmF0dXJlLiBUaGUgc3RyaW5nIFwmIzM0O1BDSVJcJiMzNDsgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc0LS8qIEJJT1MgYm9vdCBoZWFkZXJzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OnN0cnVjdCBjeGdiNF9wY2lfZXhwX3JvbV9oZWFkZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3Ni1cdF9fbGUxNiBzaWduYXR1cmU7XHQvKiBST00gU2lnbmF0dXJlLiBTaG91bGQgYmUgMHhhYTU1ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE5Nj1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTk5LVx0Qk9PVF9TSUdOQVRVUkUgPSAweGFhNTUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjAwOlx0Qk9PVF9NSU5fU0laRSA9IHNpemVvZihzdHJ1Y3QgY3hnYjRfcGNpX2V4cF9yb21faGVhZGVyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMDEtXHRCT09UX01BWF9TSVpFID0gMTAyNCAqIEJPT1RfU0laRV9JTkMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTUyNT1zdGF0aWMgaW5saW5lIHN0cnVjdCBtYm94X2NtZCAqbWJveF9jbWRfbG9nX2VudHJ5KHN0cnVjdCBtYm94X2NtZF9sb2cgKmxvZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjUzODpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01MzktXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD01NTE9c3RydWN0IHRyYWNlX3BhcmFtcyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo1NjI6c3RydWN0IGN4Z2I0X2Z3X2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2My1cdF9fYmUzMiBzaWduYXR1cmU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTY0NT1zdHJ1Y3Qgc2dlX3JzcHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY0NzojaW5jbHVkZSBcJiMzNDtjeGdiNF9kY2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NDktI2lmZGVmIENPTkZJR19DSEVMU0lPX1Q0X0ZDT0VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2NTA6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfZmNvZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjUxLSNlbmRpZiAvKiBDT05GSUdfQ0hFTFNJT19UNF9GQ09FICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTY1Mz1zdHJ1Y3QgcG9ydF9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk2LVx0c3RydWN0IG11dGV4IHZpX21pcnJvcl9tdXRleDsgLyogU3luYyBhY2Nlc3MgdG8gTWlycm9yIFZJIGluZm8gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2OTc6XHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IGV0aHRvb2xfbGI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk4LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTkwNj1zdHJ1Y3Qgc2dlX3VsZF90eHFfaW5mbyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxMi0vKiBzdHJ1Y3QgdG8gbWFpbnRhaW4gVUxEIGxpc3QgdG8gcmVhbGxvY2F0ZSBVTEQgcmVzb3VyY2VzIG9uIGhvdHBsdWcgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTM6c3RydWN0IGN4Z2I0X3VsZF9saXN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTQ6XHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gdWxkX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE1LVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0X25vZGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTE2Olx0ZW51bSBjeGdiNF91bGQgdWxkX3R5cGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTEwODU9c3RydWN0IG1wc19lbnRyaWVzX3JlZiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTA5MzpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXJfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTA5NC1cdHUzMiAqbG9jX2FycmF5OyAvKiBBcnJheSBob2xkaW5nIHRoZSBhY3R1YWwgVElEcyBzZXQgdG8gZmlsdGVycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMDk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEwOTk6c3RydWN0IGN4Z2I0X2V0aHRvb2xfZmlsdGVyIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTAwLVx0dTMyIG5lbnRyaWVzOyAvKiBBZGFwdGVyIHdpZGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBmaWx0ZXJzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTEwMTpcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlcl9pbmZvICpwb3J0OyAvKiBQZXIgcG9ydCBlbnRyeSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMDItfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTEwND1zdHJ1Y3QgYWRhcHRlciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMjItXHRzdHJ1Y3QgYWRhcHRlcl9wYXJhbXMgcGFyYW1zO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExMjM6XHRzdHJ1Y3QgY3hnYjRfdmlydF9yZXMgdnJlcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTI0LVx0dW5zaWduZWQgaW50IHN3aW50cjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE0OC1cdHN0cnVjdCBzbXRfZGF0YSAqc210O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExNDk6XHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gKnVsZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTUwLVx0dm9pZCAqdWxkX2hhbmRsZVtDWEdCNF9VTERfTUFYXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE5Ni1cdC8qIFRDIHUzMiBvZmZsb2FkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTE5NzpcdHN0cnVjdCBjeGdiNF90Y191MzJfdGFibGUgKnRjX3UzMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTk4LVx0c3RydWN0IGNoY3Jfa3RscyBjaGNyX2t0bHM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjUtXHQvKiBUQyBNUVBSSU8gb2ZmbG9hZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEyMjY6XHRzdHJ1Y3QgY3hnYjRfdGNfbXFwcmlvICp0Y19tcXByaW87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjI4LVx0LyogVEMgTUFUQ0hBTEwgY2xhc3NpZmllciBvZmZsb2FkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIyOTpcdHN0cnVjdCBjeGdiNF90Y19tYXRjaGFsbCAqdGNfbWF0Y2hhbGw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMxLVx0LyogRXRodG9vbCBuLXR1cGxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIzMjpcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlciAqZXRodG9vbF9maWx0ZXJzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE1OTc9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcXRpbWVyX3ZhbChjb25zdCBzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNS0vKiBkcml2ZXIgbmFtZSB1c2VkIGZvciBldGh0b29sX2RydmluZm8gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjA2OmV4dGVybiBjaGFyIGN4Z2I0X2RyaXZlcl9uYW1lW107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTYxMz1uZXRkZXZfdHhfdCB0NF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2MTQ6aW50IGN4Z2I0X3NlbGZ0ZXN0X2xiX3BrdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjE1LWludCB0NF9ldGhyeF9oYW5kbGVyKHN0cnVjdCBzZ2VfcnNwcSAqcSwgY29uc3QgX19iZTY0ICpyc3AsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE2NDE9aW50IHQ0X3NnZV9ldGhfdHhxX2VncmVzc191cGRhdGUoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfZXRoX3R4cSAqcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjQyLVx0XHRcdFx0IGludCBtYXhyZWNsYWltKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjQzOnZvaWQgY3hnYjRfc2V0X2V0aHRvb2xfb3BzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2NDQ6aW50IGN4Z2I0X3dyaXRlX3Jzcyhjb25zdCBzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgY29uc3QgdTE2ICpxdWV1ZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2NDUtZW51bSBjcGxfdHhfdG5sX2xzb190eXBlIGN4Z2JfZW5jYXBfb2ZmbG9hZF9zdXBwb3J0ZWQoc3RydWN0IHNrX2J1ZmYgKnNrYik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE3NDE9c3RhdGljIGlubGluZSBpbnQgaGFzaF9tYWNfYWRkcihjb25zdCB1OCAqYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNzUyOmludCBjeGdiNF9zZXRfcnNwcV9pbnRyX3BhcmFtcyhzdHJ1Y3Qgc2dlX3JzcHEgKnEsIHVuc2lnbmVkIGludCB1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzUzLVx0XHRcdCAgICAgICB1bnNpZ25lZCBpbnQgY250KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNzU0PXN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X3JzcHEoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfcnNwcSAqcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1OC1cdHEtXHUwMDNlYWRhcCA9IGFkYXA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OTpcdGN4Z2I0X3NldF9yc3BxX2ludHJfcGFyYW1zKHEsIHVzLCBjbnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NjAtXHRxLVx1MDAzZWlxZV9sZW4gPSBpcWVfc2l6ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MjEwMD12b2lkIGZyZWVfdHhfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEwMS1cdFx0ICB1bnNpZ25lZCBpbnQgbiwgYm9vbCB1bm1hcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwMjp2b2lkIGN4Z2I0X2Vvc3dfdHhxX2ZyZWVfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9lb3N3X3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMDMtXHRcdFx0ICAgICAgdTMyIG5kZXNjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA0OmludCBjeGdiNF9ldGhvZmxkX3NlbmRfZmxvd2Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIGVvdGlkLCB1MzIgdGMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDU6dm9pZCBjeGdiNF9ldGhvZmxkX3Jlc3RhcnQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA2OmludCBjeGdiNF9ldGhvZmxkX3J4X2hhbmRsZXIoc3RydWN0IHNnZV9yc3BxICpxLCBjb25zdCBfX2JlNjQgKnJzcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTA3LVx0XHRcdCAgICAgY29uc3Qgc3RydWN0IHBrdF9nbCAqc2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTIxMDg9dm9pZCBmcmVlX3R4cShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDk6dm9pZCBjeGdiNF9yZWNsYWltX2NvbXBsZXRlZF90eChzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTEwLVx0XHRcdFx0c3RydWN0IHNnZV90eHEgKnEsIGJvb2wgdW5tYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTE6aW50IGN4Z2I0X21hcF9za2Ioc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTItXHRcdCAgZG1hX2FkZHJfdCAqYWRkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExMzp2b2lkIGN4Z2I0X2lubGluZV90eF9za2IoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHNnZV90eHEgKnEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjExNC1cdFx0XHQgdm9pZCAqcG9zKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTE1OnZvaWQgY3hnYjRfd3JpdGVfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTYtXHRcdCAgICAgc3RydWN0IHVscHR4X3NnbCAqc2dsLCB1NjQgKmVuZCwgdW5zaWduZWQgaW50IHN0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTctXHRcdCAgICAgY29uc3QgZG1hX2FkZHJfdCAqYWRkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExODp2b2lkIGN4Z2I0X3dyaXRlX3BhcnRpYWxfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTktXHRcdFx0ICAgICBzdHJ1Y3QgdWxwdHhfc2dsICpzZ2wsIHU2NCAqZW5kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjAtXHRcdFx0ICAgICBjb25zdCBkbWFfYWRkcl90ICphZGRyLCB1MzIgc3RhcnQsIHUzMiBzZW5kX2xlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyMTp2b2lkIGN4Z2I0X3JpbmdfdHhfZGIoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxLCBpbnQgbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyMi1pbnQgdDRfc2V0X3ZsYW5fYWNsKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpbnQgbWJveCwgdW5zaWduZWQgaW50IHZmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjMtXHRcdCAgICB1MTYgdmxhbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNDppbnQgY3hnYjRfZGNiX2VuYWJsZWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI2OmludCBjeGdiNF90aGVybWFsX2luaXQoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjc6aW50IGN4Z2I0X3RoZXJtYWxfcmVtb3ZlKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI4OmludCBjeGdiNF9zZXRfbXNpeF9hZmYoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIHNob3J0IHZlYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTI5LVx0XHQgICAgICAgY3B1bWFza192YXJfdCAqYWZmX21hc2ssIGludCBpZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMzA6dm9pZCBjeGdiNF9jbGVhcl9tc2l4X2FmZih1bnNpZ25lZCBzaG9ydCB2ZWMsIGNwdW1hc2tfdmFyX3QgYWZmX21hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzMjppbnQgY3hnYjRfY2hhbmdlX21hYyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzMy1cdFx0ICAgICBpbnQgKnRjYW1faWR4LCBjb25zdCB1OCAqYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTM2OmludCBjeGdiNF9hbGxvY19tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNy1cdFx0XHQgYm9vbCBmcmVlLCB1bnNpZ25lZCBpbnQgbmFkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzktXHRcdFx0IHU2NCAqaGFzaCwgYm9vbCBzbGVlcF9vayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MDppbnQgY3hnYjRfZnJlZV9tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0MS1cdFx0XHR1bnNpZ25lZCBpbnQgbmFkZHIsIGNvbnN0IHU4ICoqYWRkciwgYm9vbCBzbGVlcF9vayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MjppbnQgY3hnYjRfaW5pdF9tcHNfcmVmX2VudHJpZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDM6dm9pZCBjeGdiNF9mcmVlX21wc19yZWZfZW50cmllcyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0NDppbnQgY3hnYjRfdXBkYXRlX21hY19maWx0KHN0cnVjdCBwb3J0X2luZm8gKnBpLCB1bnNpZ25lZCBpbnQgdmlpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQ1LVx0XHRcdCAgaW50ICp0Y2FtX2lkeCwgY29uc3QgdTggKmFkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0Ni1cdFx0XHQgIGJvb2wgcGVyc2lzdGVudCwgdTggKnNtdF9pZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDc6aW50IGN4Z2I0X2dldF9tc2l4X2lkeF9mcm9tX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDg6dm9pZCBjeGdiNF9mcmVlX21zaXhfaWR4X2luX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBtc2l4X2lkeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0OTp2b2lkIGN4Z2I0X2VuYWJsZV9yeChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9yc3BxICpxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUwOnZvaWQgY3hnYjRfcXVpZXNjZV9yeChzdHJ1Y3Qgc2dlX3JzcHEgKnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTE6aW50IGN4Z2I0X3BvcnRfbWlycm9yX2FsbG9jKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTI6dm9pZCBjeGdiNF9wb3J0X21pcnJvcl9mcmVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNTMtI2lmIElTX0VOQUJMRUQoQ09ORklHX0NIRUxTSU9fVExTX0RFVklDRSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTU0OmludCBjeGdiNF9zZXRfa3Rsc19mZWF0dXJlKHN0cnVjdCBhZGFwdGVyICphZGFwLCBib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE1NS0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNi0jaW5jbHVkZSBcJiMzNDt0NF9yZWdzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3OiNpbmNsdWRlIFwmIzM0O2N4Z2I0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4OiNpbmNsdWRlIFwmIzM0O2N4Z2I0X2N1ZGJnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy05LSNpbmNsdWRlIFwmIzM0O2N1ZGJnX3psaWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgY3hnYjRfY29sbGVjdF9tZW1fZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEyLVx0eyBDVURCR19FREMwLCBjdWRiZ19jb2xsZWN0X2VkYzBfbWVtaW5mbyB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxOTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfaHdfZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIwLVx0eyBDVURCR19NQk9YX0xPRywgY3VkYmdfY29sbGVjdF9tYm94X2xvZyB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy02OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo2OTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTcwLVx0eyBDVURCR19GTEFTSCwgY3VkYmdfY29sbGVjdF9mbGFzaCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3Mzp1MzIgY3hnYjRfZ2V0X2R1bXBfbGVuZ3RoKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgZmxhZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTc5LVx0aWYgKGZsYWcgXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODA6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9od19kdW1wKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4MTpcdFx0XHRlbnRpdHkgPSBjeGdiNF9jb2xsZWN0X2h3X2R1bXBbaV0uZW50aXR5O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTgyLVx0XHRcdGxlbiAmIzQzOz0gY3VkYmdfZ2V0X2VudGl0eV9sZW5ndGgoYWRhcCwgZW50aXR5KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODYtXHRpZiAoZmxhZyBcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfTUVNKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODc6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9tZW1fZHVtcCk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODg6XHRcdFx0ZW50aXR5ID0gY3hnYjRfY29sbGVjdF9tZW1fZHVtcFtpXS5lbnRpdHk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODktXHRcdFx0bGVuICYjNDM7PSBjdWRiZ19nZXRfZW50aXR5X2xlbmd0aChhZGFwLCBlbnRpdHkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTA0OnN0YXRpYyB2b2lkIGN4Z2I0X2N1ZGJnX2NvbGxlY3RfZW50aXR5KHN0cnVjdCBjdWRiZ19pbml0ICpwZGJnX2luaXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTA1LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBjdWRiZ19idWZmZXIgKmRiZ19idWZmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjEwNjpcdFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmVfYXJyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwNy1cdFx0XHRcdCAgICAgICB1MzIgYXJyX3NpemUsIHZvaWQgKmJ1ZiwgdTMyICp0b3Rfc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTE0LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYXJyX3NpemU7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTE1Olx0XHRjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmUgPSBcdTAwMjZlX2FycltpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jPTE1OD1zdGF0aWMgdm9pZCBjdWRiZ19mcmVlX2NvbXByZXNzX2J1ZmYoc3RydWN0IGN1ZGJnX2luaXQgKnBkYmdfaW5pdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjE2MzppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE2NC1cdFx0XHR1MzIgZmxhZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjE5LVx0aWYgKGZsYWcgXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyMDpcdFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXHUwMDI2Y3VkYmdfaW5pdCwgXHUwMDI2ZGJnX2J1ZmYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIxOlx0XHRcdFx0XHQgICBjeGdiNF9jb2xsZWN0X2h3X2R1bXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIyOlx0XHRcdFx0XHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjIzLVx0XHRcdFx0XHQgICBidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIyNi1cdGlmIChmbGFnIFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9NRU0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI3Olx0XHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcdTAwMjZjdWRiZ19pbml0LCBcdTAwMjZkYmdfYnVmZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjg6XHRcdFx0XHRcdCAgIGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI5Olx0XHRcdFx0XHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIzMC1cdFx0XHRcdFx0ICAgYnVmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzMtXHRpZiAoZmxhZyBcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfRkxBU0gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjM0Olx0XHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcdTAwMjZjdWRiZ19pbml0LCBcdTAwMjZkYmdfYnVmZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzU6XHRcdFx0XHRcdCAgIGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzY6XHRcdFx0XHRcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzctXHRcdFx0XHRcdCAgIGJ1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI0OTp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNTY6c3RhdGljIGludCBjeGdiNF9jdWRiZ192bWNvcmVkZF9jb2xsZWN0KHN0cnVjdCB2bWNvcmVkZF9kYXRhICpkYXRhLCB2b2lkICpidWYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjU3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2MTpcdHJldHVybiBjeGdiNF9jdWRiZ19jb2xsZWN0KGFkYXAsIGJ1ZiwgXHUwMDI2bGVuLCBDWEdCNF9FVEhfRFVNUF9BTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2Mi19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2NDppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI3NC1cdHNucHJpbnRmKGRhdGEtXHUwMDNlZHVtcF9uYW1lLCBzaXplb2YoZGF0YS1cdTAwM2VkdW1wX25hbWUpLCBcJiMzNDslc18lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzU6XHRcdCBjeGdiNF9kcml2ZXJfbmFtZSwgYWRhcC1cdTAwM2VuYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzY6XHRkYXRhLVx1MDAzZXZtY29yZWRkX2NhbGxiYWNrID0gY3hnYjRfY3VkYmdfdm1jb3JlZGRfY29sbGVjdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oPTE3PXR5cGVkZWYgaW50ICgqY3VkYmdfY29sbGVjdF9jYWxsYmFja190KShzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0yMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDoyMTpzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTIyLVx0ZW51bSBjdWRiZ19kYmdfZW50aXR5X3R5cGUgZW50aXR5O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaD0yNj1lbnVtIENYR0I0X0VUSFRPT0xfRFVNUF9GTEFHUyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM1OnUzMiBjeGdiNF9nZXRfZHVtcF9sZW5ndGgoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBmbGFnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozNjppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM3LVx0XHRcdHUzMiBmbGFnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozODp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozOTppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC00MC0jZW5kaWYgLyogX19DWEdCNF9DVURCR19IX18gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jPTEzPWNvbnN0IGNoYXIgKiBjb25zdCBkY2JfdmVyX2FycmF5W10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjI6c3RhdGljIGlubGluZSBib29sIGN4Z2I0X2RjYl9zdGF0ZV9zeW5jZWQoZW51bSBjeGdiNF9kY2Jfc3RhdGUgc3RhdGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzozMzp2b2lkIGN4Z2I0X2RjYl9zdGF0ZV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTM0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODp2b2lkIGN4Z2I0X2RjYl92ZXJzaW9uX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5OnN0YXRpYyB2b2lkIGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtOTgtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk5OnZvaWQgY3hnYjRfZGNiX3Jlc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEwMTpcdGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTAyOlx0Y3hnYjRfZGNiX3N0YXRlX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAzLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTEwOnN0YXRpYyBpbmxpbmUgdm9pZCBjeGdiNF9kY2JfdXBkYXRlX3N1cHBvcnQoc3RydWN0IHBvcnRfZGNiX2luZm8gKmRjYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTExLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTI1OnZvaWQgY3hnYjRfZGNiX3N0YXRlX2ZzbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMjY6XHRcdFx0IGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IHRyYW5zaXRpb25fdG8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMzAtXHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IHBpLVx1MDAzZWFkYXB0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEzMTpcdGVudW0gY3hnYjRfZGNiX3N0YXRlIGN1cnJlbnRfc3RhdGUgPSBkY2ItXHUwMDNlc3RhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEzMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTE4MC1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTgxOlx0XHRcdGN4Z2I0X2RjYl91cGRhdGVfc3VwcG9ydChkY2IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xODItXHRcdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIxOS1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjIwOlx0XHRcdGN4Z2I0X2RjYl9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMjEtXHRcdFx0ZGNiLVx1MDAzZXN0YXRlID0gQ1hHQjRfRENCX1NUQVRFX0ZXX0lOQ09NUExFVEU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjEtYmFkX3N0YXRlX2lucHV0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNjI6XHRkZXZfZXJyKGFkYXAtXHUwMDNlcGRldl9kZXYsIFwmIzM0O2N4Z2I0X2RjYl9zdGF0ZV9mc206IGlsbGVnYWwgaW5wdXQgc3ltYm9sICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjMtXHRcdHRyYW5zaXRpb25fdG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjY2LWJhZF9zdGF0ZV90cmFuc2l0aW9uOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNjc6XHRkZXZfZXJyKGFkYXAtXHUwMDNlcGRldl9kZXYsIFwmIzM0O2N4Z2I0X2RjYl9zdGF0ZV9mc206IGJhZCBzdGF0ZSB0cmFuc2l0aW9uLCBzdGF0ZSA9ICVkLCBpbnB1dCA9ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjgtXHRcdGN1cnJlbnRfc3RhdGUsIHRyYW5zaXRpb25fdG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjcyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNzM6dm9pZCBjeGdiNF9kY2JfaGFuZGxlX2Z3X3VwZGF0ZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjc0LVx0XHRcdFx0Y29uc3Qgc3RydWN0IGZ3X3BvcnRfY21kICpwY21kKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg3LVx0aWYgKGRjYl90eXBlID09IEZXX1BPUlRfRENCX1RZUEVfQ09OVFJPTCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyODg6XHRcdGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IGlucHV0ID1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg5LVx0XHRcdCgocGNtZC1cdTAwM2V1LmRjYi5jb250cm9sLmFsbF9zeW5jZF9wa2QgXHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0zMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjMxMzpcdFx0Y3hnYjRfZGNiX3N0YXRlX2ZzbShkZXYsIGlucHV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzE0LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00MTAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQxMTpzdGF0aWMgdTggY3hnYjRfZ2V0c3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDEyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDIwOnN0YXRpYyB1OCBjeGdiNF9zZXRzdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCBlbmFibGVkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00MjEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0Mzg6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQzOS1cdFx0XHQgICAgIHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODI6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZ190eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4My1cdFx0XHRcdHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg2LVx0LyogdGMgMCBpcyB3cml0dGVuIGF0IE1TQiBwb3NpdGlvbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODc6XHRyZXR1cm4gY3hnYjRfZ2V0cGd0Y2NmZyhkZXYsICg3IC0gdGMpLCBwcmlvX3R5cGUsIHBnaWQsIGJ3X3BlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg4LVx0XHRcdFx0dXBfdGNfbWFwLCAxKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDkyOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBndGNjZmdfcngoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTMtXHRcdFx0XHR1OCAqcHJpb190eXBlLCB1OCAqcGdpZCwgdTggKmJ3X3Blcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5Ni1cdC8qIHRjIDAgaXMgd3JpdHRlbiBhdCBNU0IgcG9zaXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDk3Olx0cmV0dXJuIGN4Z2I0X2dldHBndGNjZmcoZGV2LCAoNyAtIHRjKSwgcHJpb190eXBlLCBwZ2lkLCBid19wZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5OC1cdFx0XHRcdHVwX3RjX21hcCwgMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjUwMTpzdGF0aWMgdm9pZCBjeGdiNF9zZXRwZ3RjY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTAyLVx0XHRcdFx0dTggcHJpb190eXBlLCB1OCBwZ2lkLCB1OCBid19wZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01NjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU2NDpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTY1LVx0XHRcdCAgICAgIGludCBsb2NhbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTg4OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01ODkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTA6XHRyZXR1cm4gY3hnYjRfZ2V0cGdid2djZmcoZGV2LCBwZ2lkLCBid19wZXIsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTEtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5MzpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZ19yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk0LXtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDE5OjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NzQ4CgkJCQkJCQlvdXRwdXQ6IDExMwoJCQkJCQkJdGhvdWdodHM6IDMzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIENYR0I0IERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgY3hnYjRgIGRyaXZlciwgd2hpY2ggZnJvbSB3aGF0IEkgc2VlLCBpcyB0aGUgZHJpdmVyIGZvciBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMuIFRoZSBrZXkgdGhpbmcgaXMsIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGlzIHRoaW5nIHdpdGhpbiB0aGUga2VybmVsIHRyZWUuIFRoYXQgaW1tZWRpYXRlbHkgcmFpc2VzIGEgZmxhZyBmb3IgbWUuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgZm9jdXNlcyBvbiBgY3hnYjRfdGNfZmxvd2VyLmNgLCB3aGljaCwgYXMgdGhlIG5hbWUgc3VnZ2VzdHMsIGhhbmRsZXMgdGhlIFRDIGZsb3dlciBvZmZsb2FkIGltcGxlbWVudGF0aW9uICpzcGVjaWZpYyogdG8gdGhpcyBoYXJkd2FyZS4KCkdpdmVuIHRoaXMgaGFyZHdhcmUgZGVwZW5kZW5jeSwgYW5kIHRoZSBmYWN0IHRoYXQgd2UgY2FuJiMzOTt0IGVtdWxhdGUgdGhpcyBoYXJkd2FyZSBpbiBhbiBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VLCBteSBpbml0aWFsIGd1dCBmZWVsaW5nIGlzIHRoYXQgaXQmIzM5O3MgcHJvYmFibHkgbm90IHdvcnRoIHRoZSB0aW1lIHRvIGZ1enogdXNpbmcgc3l6a2FsbGVyLgoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgZG91YmxlLWNoZWNrIHRob3VnaC4gV2UgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIFdlIHNob3VsZCBzZWUgaWYgdGhlcmUmIzM5O3MgKmFueSogcG9zc2libGUgcGF0aC4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgcmVsZXZhbnQgY29kZSBpcyBidXJpZWQgaW5zaWRlIGBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2hgLiBPa2F5LCB0aGF0JiMzOTtzIGNhbGxlZCBmcm9tIGBjeGdiNF92YWxpZGF0ZV9mbG93X21hdGNoYCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgZnJvbSBgY3hnYjRfZmxvd19ydWxlX3JlcGxhY2VgLCB3aGljaCBpcyB0aGVuIGNhbGxlZCBmcm9tIGBjeGdiNF9zZXR1cF90Y19mbG93ZXJgLiBUaGVuIGBjeGdiNF9zZXR1cF90Y19mbG93ZXJgIGlzIGNhbGxlZCBmcm9tIGBjeGdiNF9zZXR1cF90Y19jbHNfdTMyYCBvciBzb21ldGhpbmcgc2ltaWxhciwgd2hpY2ggYXBwZWFycyB0byBiZSBldGh0b29sIG9yIFRDIGNhbGxiYWNrcyBmb3IgdGhlIG5ldHdvcmsgZGV2aWNlLgoKQWxyaWdodCwgc28gdG8gZXZlbiAqZ2V0KiBhIG5ldHdvcmsgZGV2aWNlIHdpdGggdGhlc2UgY2FsbGJhY2tzLCB3ZSYjMzk7cmUgZGVwZW5kZW50IG9uIHRoZSBgY3hnYjRgIGRyaXZlciBwcm9iaW5nIHN1Y2Nlc3NmdWxseS4gVGhlIHByb2JlIGZ1bmN0aW9uIGlzIGBjeGdiNF9pbml0X29uZWAgaW4gYGN4Z2I0X21haW4uY2AgLS0gYSBQQ0kgZHJpdmVyIHByb2JlIGZ1bmN0aW9uLiBBbmQgaGVyZSYjMzk7cyB0aGUga2lja2VyOiBXaXRob3V0IGEgcmVhbCBDaGVsc2lvIFBDSSBkZXZpY2UgcGx1Z2dlZCBpbiwgdGhhdCBwcm9iZSBmdW5jdGlvbiB3aWxsICpuZXZlciogYmUgY2FsbGVkLiBNZWFuaW5nIHRoZSBhc3NvY2lhdGVkIG5ldHdvcmsgZGV2aWNlIHdpbGwgbmV2ZXIgYmUgY3JlYXRlZC4gV2hpY2ggbWVhbnMgdGhpcyBmbG93ZXIgY29kZSBpcyB1bnJlYWNoYWJsZS4KCk9rYXksIHRoYXQmIzM5O3MgZGVmaW5pdGl2ZS4gQmFzZWQgb24gdGhpcyBkZWVwZXIgYW5hbHlzaXMsIHRoZSBjb2RlIGlzIGluZGVlZCB1bnJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKSSYjMzk7bSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMTk6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVEMgZmxvd2VyIG9mZmxvYWQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBDaGVsc2lvIGN4Z2I0IGhhcmR3YXJlIGRyaXZlci4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgQ2hlbHNpbyBUNC9UNS9UNiBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXJzIHRvIHByb2JlIGFuZCBjcmVhdGUgdGhlIG5ldHdvcmsgZGV2aWNlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSksIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDE5OjEzOjUyLjkzOTQ4OTcxMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MTE4NjgwNDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVEMgZmxvd2VyIG9mZmxvYWQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBDaGVsc2lvIGN4Z2I0IGhhcmR3YXJlIGRyaXZlci4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgQ2hlbHNpbyBUNC9UNS9UNiBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXJzIHRvIHByb2JlIGFuZCBjcmVhdGUgdGhlIG5ldHdvcmsgZGV2aWNlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSksIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDE5OjEzOjUyLjkzOTQ5NDY1MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc0NzI2MTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNmYzM2RiYjU0YjA5YjBhNDI0NDJhZTMyYzM5YmI1NGYyM2JlMTk5NFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1biAyNiAxOToxMzo1MSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xcbmluZGV4IDMzMDdlNTA0MjY4MTkwLi40MWEyOTk4ZWUyYTAyNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xcbkBAIC00MCw2ICs0MCw3IEBAXFxuICNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiY3hnYjRfZmlsdGVyLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJjeGdiNF90Y19mbG93ZXIuaFxcXCJcXG4rI2luY2x1ZGUgXFxcInQ0X3JlZ3MuaFxcXCJcXG4gXFxuICNkZWZpbmUgU1RBVFNfQ0hFQ0tfUEVSSU9EIChIWiAvIDIpXFxuIFxcbkBAIC0yNjYsMjQgKzI2Nyw0OSBAQCBzdGF0aWMgdm9pZCBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2goc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgIFZMQU5fUFJJT19TSElGVCk7XFxuIFxcdFxcdHZsYW5fdGNpX21hc2sgPSBtYXRjaC5tYXNrLVxcdTAwM2V2bGFuX2lkIHwgKG1hdGNoLm1hc2stXFx1MDAzZXZsYW5fcHJpb3JpdHkgXFx1MDAzY1xcdTAwM2NcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBWTEFOX1BSSU9fU0hJRlQpO1xcbi1cXHRcXHRmcy1cXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XFxuLVxcdFxcdGZzLVxcdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcXG4tXFxuLVxcdFxcdGZzLVxcdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcXG4tXFx0XFx0ZnMtXFx1MDAzZW1hc2suaXZsYW5fdmxkID0gMTtcXG4tXFxuLVxcdFxcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXFxuLVxcdFxcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXFxuLVxcdFxcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcXG4tXFx0XFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXFxuLVxcdFxcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcXG4tXFx0XFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcXG4tXFx0XFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcXG4tXFx0XFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxcbi1cXHRcXHQgKi9cXG4tXFx0XFx0aWYgKGZzLVxcdTAwM2V2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkge1xcbi1cXHRcXHRcXHRmcy1cXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xcbi1cXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcXG4rXFxuK1xcdFxcdGlmIChiZTE2X3RvX2NwdShtYXRjaC5rZXktXFx1MDAzZXZsYW5fdHBpZCkgPT0gRVRIX1BfODAyMUFEKSB7XFxuK1xcdFxcdFxcdHN0cnVjdCBhZGFwdGVyICphZGFwID0gbmV0ZGV2MmFkYXAoZGV2KTtcXG4rXFx0XFx0XFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xcbitcXG4rXFx0XFx0XFx0aWYgKCFhZGFwKSB7XFxuK1xcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiJXM6IGFkYXAgbm90IGZvdW5kXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuK1xcdFxcdFxcdFxcdHJldHVybjtcXG4rXFx0XFx0XFx0fVxcbitcXG4rXFx0XFx0XFx0dmFsID0gKGJlMTZfdG9fY3B1KG1hdGNoLm1hc2stXFx1MDAzZXZsYW5fdHBpZCkgXFx1MDAzY1xcdTAwM2MgMTYpIHxcXG4rXFx0XFx0XFx0ICAgICAgYmUxNl90b19jcHUobWF0Y2gua2V5LVxcdTAwM2V2bGFuX3RwaWQpO1xcbitcXHRcXHRcXHRwb3J0X2lkID0gbmV0ZGV2MnBpbmZvKGRldiktXFx1MDAzZXBvcnRfaWQ7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2V2YWwub3ZsYW4gPSB2bGFuX3RjaTtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZW1hc2sub3ZsYW4gPSB2bGFuX3RjaV9tYXNrO1xcbitcXHRcXHRcXHRmcy1cXHUwMDNldmFsLm92bGFuX3ZsZCA9IDE7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2VtYXNrLm92bGFuX3ZsZCA9IDE7XFxuK1xcdFxcdFxcdG92bGFuX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX09WTEFOMF9BKTtcXG4rXFx0XFx0XFx0Y3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTtcXG4rXFx0XFx0XFx0dDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTtcXG4rXFx0XFx0XFx0dmFsID0gdDRfcmVhZF9yZWcoYWRhcCwgY3RsX3JlZyk7XFxuK1xcdFxcdFxcdHQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTtcXG4rXFx0XFx0XFx0dDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSBcXHUwMDNjXFx1MDAzYyA5LCAwKTtcXG4rXFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZXZhbC5pdmxhbiA9IHZsYW5fdGNpO1xcbitcXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZW1hc2suaXZsYW5fdmxkID0gMTtcXG4rXFxuK1xcdFxcdFxcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXFxuK1xcdFxcdFxcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXFxuK1xcdFxcdFxcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcXG4rXFx0XFx0XFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXFxuK1xcdFxcdFxcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcXG4rXFx0XFx0XFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcXG4rXFx0XFx0XFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcXG4rXFx0XFx0XFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxcbitcXHRcXHRcXHQgKi9cXG4rXFxuK1xcdFxcdFxcdGlmIChmcy1cXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcXG4rXFx0XFx0XFx0XFx0ZnMtXFx1MDAzZXZhbC5ldGh0eXBlID0gMDtcXG4rXFx0XFx0XFx0XFx0ZnMtXFx1MDAzZW1hc2suZXRodHlwZSA9IDA7XFxuK1xcdFxcdFxcdH1cXG4gXFx0XFx0fVxcbiBcXHR9XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXFxuaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcXG5AQCAtMTkyMSw2ICsxOTIxLDkgQEBcXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTBcXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0hJX0EgMHg5OTRcXG4gXFxuKyNkZWZpbmUgTVBTX1BPUlRfUlhfT1ZMQU4wX0EgMHgxMjBcXG4rI2RlZmluZSBNUFNfUE9SVF9SWF9DVExfQSAgICAwWDEwMFxcbitcXG4gI2RlZmluZSBNUFNfQ01OX0NUTF9BXFx0MHg5MDAwXFxuIFxcbiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxOToxMzo1My40MTQ5NTk3MloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTM2NDMyMDQ1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2ZjMzZGJiNTRiMDliMGE0MjQ0MmFlMzJjMzliYjU0ZjIzYmUxOTk0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdW4gMjYgMTk6MTM6NTEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuaW5kZXggMzMwN2U1MDQyNjgxOTAuLjQxYTI5OThlZTJhMDI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuQEAgLTQwLDYgKzQwLDcgQEBcbiAjaW5jbHVkZSBcImN4Z2I0LmhcIlxuICNpbmNsdWRlIFwiY3hnYjRfZmlsdGVyLmhcIlxuICNpbmNsdWRlIFwiY3hnYjRfdGNfZmxvd2VyLmhcIlxuKyNpbmNsdWRlIFwidDRfcmVncy5oXCJcbiBcbiAjZGVmaW5lIFNUQVRTX0NIRUNLX1BFUklPRCAoSFogLyAyKVxuIFxuQEAgLTI2NiwyNCArMjY3LDQ5IEBAIHN0YXRpYyB2b2lkIGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdFx0XHQgICAgICAgVkxBTl9QUklPX1NISUZUKTtcbiBcdFx0dmxhbl90Y2lfbWFzayA9IG1hdGNoLm1hc2stXHUwMDNldmxhbl9pZCB8IChtYXRjaC5tYXNrLVx1MDAzZXZsYW5fcHJpb3JpdHkgXHUwMDNjXHUwMDNjXG4gXHRcdFx0XHRcdFx0ICAgICBWTEFOX1BSSU9fU0hJRlQpO1xuLVx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbi1cdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4tXG4tXHRcdGZzLVx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xuLVx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4tXG4tXHRcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXG4tXHRcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXG4tXHRcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcbi1cdFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXG4tXHRcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcbi1cdFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcbi1cdFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcbi1cdFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxuLVx0XHQgKi9cbi1cdFx0aWYgKGZzLVx1MDAzZXZhbC5ldGh0eXBlID09IEVUSF9QXzgwMjFRKSB7XG4tXHRcdFx0ZnMtXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xuLVx0XHRcdGZzLVx1MDAzZW1hc2suZXRodHlwZSA9IDA7XG4rXG4rXHRcdGlmIChiZTE2X3RvX2NwdShtYXRjaC5rZXktXHUwMDNldmxhbl90cGlkKSA9PSBFVEhfUF84MDIxQUQpIHtcbitcdFx0XHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IG5ldGRldjJhZGFwKGRldik7XG4rXHRcdFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xuK1xuK1x0XHRcdGlmICghYWRhcCkge1xuK1x0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwiJXM6IGFkYXAgbm90IGZvdW5kXFxuXCIsIF9fZnVuY19fKTtcbitcdFx0XHRcdHJldHVybjtcbitcdFx0XHR9XG4rXG4rXHRcdFx0dmFsID0gKGJlMTZfdG9fY3B1KG1hdGNoLm1hc2stXHUwMDNldmxhbl90cGlkKSBcdTAwM2NcdTAwM2MgMTYpIHxcbitcdFx0XHQgICAgICBiZTE2X3RvX2NwdShtYXRjaC5rZXktXHUwMDNldmxhbl90cGlkKTtcbitcdFx0XHRwb3J0X2lkID0gbmV0ZGV2MnBpbmZvKGRldiktXHUwMDNlcG9ydF9pZDtcbitcdFx0XHRmcy1cdTAwM2V2YWwub3ZsYW4gPSB2bGFuX3RjaTtcbitcdFx0XHRmcy1cdTAwM2VtYXNrLm92bGFuID0gdmxhbl90Y2lfbWFzaztcbitcdFx0XHRmcy1cdTAwM2V2YWwub3ZsYW5fdmxkID0gMTtcbitcdFx0XHRmcy1cdTAwM2VtYXNrLm92bGFuX3ZsZCA9IDE7XG4rXHRcdFx0b3ZsYW5fcmVnID0gUE9SVF9SRUcocG9ydF9pZCwgTVBTX1BPUlRfUlhfT1ZMQU4wX0EpO1xuK1x0XHRcdGN0bF9yZWcgPSBQT1JUX1JFRyhwb3J0X2lkLCBNUFNfUE9SVF9SWF9DVExfQSk7XG4rXHRcdFx0dDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTtcbitcdFx0XHR2YWwgPSB0NF9yZWFkX3JlZyhhZGFwLCBjdGxfcmVnKTtcbitcdFx0XHR0NF93cml0ZV9yZWcoYWRhcCwgY3RsX3JlZywgdmFsIHwgMSk7XG4rXHRcdFx0dDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSBcdTAwM2NcdTAwM2MgOSwgMCk7XG4rXHRcdH0gZWxzZSB7XG4rXHRcdFx0ZnMtXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XG4rXHRcdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4rXHRcdFx0ZnMtXHUwMDNldmFsLml2bGFuX3ZsZCA9IDE7XG4rXHRcdFx0ZnMtXHUwMDNlbWFzay5pdmxhbl92bGQgPSAxO1xuK1xuK1x0XHRcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXG4rXHRcdFx0ICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cyxcbitcdFx0XHQgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyXG4rXHRcdFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXG4rXHRcdFx0ICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieVxuK1x0XHRcdCAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlXG4rXHRcdFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcbitcdFx0XHQgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuXG4rXHRcdFx0ICovXG4rXG4rXHRcdFx0aWYgKGZzLVx1MDAzZXZhbC5ldGh0eXBlID09IEVUSF9QXzgwMjFRKSB7XG4rXHRcdFx0XHRmcy1cdTAwM2V2YWwuZXRodHlwZSA9IDA7XG4rXHRcdFx0XHRmcy1cdTAwM2VtYXNrLmV0aHR5cGUgPSAwO1xuK1x0XHRcdH1cbiBcdFx0fVxuIFx0fVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcbmluZGV4IDY5NTkxNmJhMDQwNTg1Li4zOGM1ODVmM2IxYWRhMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxuQEAgLTE5MjEsNiArMTkyMSw5IEBAXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTBcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fSElfQSAweDk5NFxuIFxuKyNkZWZpbmUgTVBTX1BPUlRfUlhfT1ZMQU4wX0EgMHgxMjBcbisjZGVmaW5lIE1QU19QT1JUX1JYX0NUTF9BICAgIDBYMTAwXG4rXG4gI2RlZmluZSBNUFNfQ01OX0NUTF9BXHQweDkwMDBcbiBcbiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMTk6MTM6NTMuNDE0OTYxMzZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTAxNDYxMzE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaGAuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBDaGVsc2lvIGN4Z2I0IGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciB0aGVpciBUNC9UNS9UNiBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXJzLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIDgwMi4xYWQgKFFpblEpIFZMQU4gdGFnIG1hdGNoaW5nIHRvIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCdzIGNoZWNraW5nIGZvciBgRVRIX1BfODAyMUFEYCBpbiB0aGUgVkxBTiBUUElEIGZpZWxkIGFuZCBjb25maWd1cmluZyBoYXJkd2FyZSByZWdpc3RlcnMgYmFzZWQgb24gdGhhdC4gVGhhdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZnJvbSBhIG5ldHdvcmtpbmcgcGVyc3BlY3RpdmUsIHN1cHBvcnRpbmcgbW9yZSBjb21wbGV4IFZMQU4gc2V0dXBzLlxuXG5Ob3csIGJlY2F1c2UgdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgQ2hlbHNpbyBoYXJkd2FyZSwgSSdtIGFscmVhZHkgdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyBmb3IgZnV6emluZy4gVW5sZXNzIHRoZXJlJ3Mgc29tZSBvYnNjdXJlIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBDaGVsc2lvIGhhcmR3YXJlIGx1cmtpbmcgYXJvdW5kICh3aGljaCBpcyB1bmxpa2VseSksIHRoaXMgZHJpdmVyIGlzICpoaWdobHkqIHVubGlrZWx5IHRvIGJlIHRyaWdnZXJlZCBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBsZXQgYWxvbmUgd2l0aGluIHRoZSBzdGFuZGFyZCBzeXprYWxsZXIgc2V0dXAuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMsIGlzIHRoaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIGFzIEkgcmVjYWxsLiBZZXAsIGl0IGlzLiBUaGUgY3hnYjQgZHJpdmVyIGRpcmVjdGx5IHRhcmdldHMgQ2hlbHNpbydzIHBoeXNpY2FsIEV0aGVybmV0IGFkYXB0ZXJzLiBHaXZlbiB0aGF0LCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhlcmUgaXNuJ3Qgc29tZSBjbGV2ZXIgZW11bGF0aW9uIGJlaW5nIHVzZWQuIEhhcmR3YXJlIGRyaXZlcnMgdGhhdCBhcmUgbm90IGVtdWxhdGFibGUgaW4gb3VyIGZ1enplciBzZXR1cCBhcmVuJ3Qgd29ydGggdGhlIGVmZm9ydC4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUga2VybmVsIHRyZWUgZm9yIGFueSBoaW50cyBvZiBgY3hnYjRgIGVtdWxhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE5NywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDE5OjEzOjU5LjUxNjQyNTAxNFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTY1MTY1MzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY3hnYjRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MzE3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc9Njk9Y29uZmlnIENIRUxTSU9fVDRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy04OS1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUgY2hvb3NlIE0gaGVyZTsgdGhlIG1vZHVsZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZzo5MDpcXHQgIHdpbGwgYmUgY2FsbGVkIGN4Z2I0LlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy05MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZz0xMTQ9Y29uZmlnIENIRUxTSU9fVDRWRlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnLTEzMC1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUgY2hvb3NlIE0gaGVyZTsgdGhlIG1vZHVsZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZzoxMzE6XFx0ICB3aWxsIGJlIGNhbGxlZCBjeGdiNHZmLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy0xMzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX0NIRUxTSU9fVDMpICs9IGN4Z2IzL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vTWFrZWZpbGU6ODpvYmotJChDT05GSUdfQ0hFTFNJT19UNCkgKz0gY3hnYjQvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0VkYpICs9IGN4Z2I0dmYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9NYWtlZmlsZS0xMC1vYmotJChDT05GSUdfQ0hFTFNJT19MSUIpICs9IGxpYmN4Z2IvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0KSArPSBjeGdiNC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6ODpjeGdiNC1vYmpzIDo9IGN4Z2I0X21haW4ubyBsMnQubyBzbXQubyB0NF9ody5vIHNnZS5vIGNsaXBfdGJsLm8gY3hnYjRfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjk6XFx0ICAgICAgY3hnYjRfdWxkLm8gc3JxLm8gc2NoZWQubyBjeGdiNF9maWx0ZXIubyBjeGdiNF90Y191MzIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMDpcXHQgICAgICBjeGdiNF9wdHAubyBjeGdiNF90Y19mbG93ZXIubyBjeGdiNF9jdWRiZy5vIGN4Z2I0X21wcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjExOlxcdCAgICAgIGN1ZGJnX2NvbW1vbi5vIGN1ZGJnX2xpYi5vIGN1ZGJnX3psaWIubyBjeGdiNF90Y19tcXByaW8ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMjpcXHQgICAgICBjeGdiNF90Y19tYXRjaGFsbC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMzpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0RDQikgKz0gIGN4Z2I0X2RjYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNDpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0ZDT0UpICs9ICBjeGdiNF9mY29lLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE1OmN4Z2I0LSQoQ09ORklHX0RFQlVHX0ZTKSArPSBjeGdiNF9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE2OmN4Z2I0LSQoQ09ORklHX1RIRVJNQUwpICs9IGN4Z2I0X3RoZXJtYWwub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE3LSNpbmNsdWRlIFxcdTAwM2NuZXQvYWRkcmNvbmYuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTg6I2luY2x1ZGUgXFxcImN4Z2I0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE5LSNpbmNsdWRlIFxcXCJjbGlwX3RibC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jPTU5PXN0YXRpYyBpbnQgY2xpcDZfcmVsZWFzZV9tYm94KGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtNzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjc0OmludCBjeGdiNF9jbGlwX2dldChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xNDMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxNDQ6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX2dldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTQ2OnZvaWQgY3hnYjRfY2xpcF9yZWxlYXNlKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHUzMiAqbGlwLCB1OCB2NilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xODktfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxOTA6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX3JlbGVhc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk1LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxOTY6c3RhdGljIGludCBjeGdiNF91cGRhdGVfZGV2X2NsaXAoc3RydWN0IG5ldF9kZXZpY2UgKnJvb3RfZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xOTctXFx0XFx0XFx0XFx0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjA4LVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoaWZhLCBcXHUwMDI2aWRldi1cXHUwMDNlYWRkcl9saXN0LCBpZl9saXN0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIwOTpcXHRcXHRyZXQgPSBjeGdiNF9jbGlwX2dldChkZXYsIChjb25zdCB1MzIgKilpZmEtXFx1MDAzZWFkZHIuczZfYWRkciwgMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIxMC1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIxODppbnQgY3hnYjRfdXBkYXRlX3Jvb3RfZGV2X2NsaXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMjMtXFx0LyogRmlyc3QgcG9wdWxhdGUgdGhlIHJlYWwgbmV0IGRldmljZSdzIElQdjYgYWRkcmVzc2VzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIyNDpcXHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAoZGV2LCBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMjUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMzAtXFx0aWYgKHJvb3RfZGV2KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIzMTpcXHRcXHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAocm9vdF9kZXYsIGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MjQxOlxcdFxcdHJldCA9IGN4Z2I0X3VwZGF0ZV9kZXZfY2xpcChyb290X2RldiwgZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQyLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ3LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MjQ4OkVYUE9SVF9TWU1CT0woY3hnYjRfdXBkYXRlX3Jvb3RfZGV2X2NsaXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yNDktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmg9Mzk9c3RydWN0IGNsaXBfdGJsICp0NF9pbml0X2NsaXBfdGJsKHVuc2lnbmVkIGludCBjbGlwdF9zdGFydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmgtNDAtXFx0XFx0XFx0XFx0ICB1bnNpZ25lZCBpbnQgY2xpcHRfZW5kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmg6NDE6aW50IGN4Z2I0X2NsaXBfZ2V0KGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHUzMiAqbGlwLCB1OCB2Nik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oOjQyOnZvaWQgY3hnYjRfY2xpcF9yZWxlYXNlKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHUzMiAqbGlwLCB1OCB2Nik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQzLWludCBjbGlwX3RibF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmg6NDQ6aW50IGN4Z2I0X3VwZGF0ZV9yb290X2Rldl9jbGlwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaC00NS12b2lkIHQ0X2NsZWFudXBfY2xpcF90Ymwoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19jb21tb24uYy01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfY29tbW9uLmM6NjojaW5jbHVkZSBcXFwiY3hnYjQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jLTctI2luY2x1ZGUgXFxcImN1ZGJnX2lmLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTktI2luY2x1ZGUgXFxcInQ0X3JlZ3MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjEwOiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTE6I2luY2x1ZGUgXFxcImN4Z2I0X2N1ZGJnLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xMi0jaW5jbHVkZSBcXFwiY3VkYmdfaWYuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmMtMTYtI2luY2x1ZGUgXFxcImN1ZGJnX3psaWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjE3OiNpbmNsdWRlIFxcXCJjeGdiNF90Y19tcXByaW8uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTE4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX3psaWIuYzo4OiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfemxpYi5jLTktI2luY2x1ZGUgXFxcImN1ZGJnX2lmLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTgtI2luY2x1ZGUgXFxcInQ0X2NoaXBfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo1OTojaW5jbHVkZSBcXFwiY3hnYjRfdWxkLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTYwLSNpbmNsdWRlIFxcXCJ0NGZ3X2FwaS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE0Mj1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE0OTplbnVtIGN4Z2I0X25ldGRldl90bHNfb3BzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTUwLVxcdENYR0I0X1RMU0RFVl9PUFMgID0gMSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE1NDpzdHJ1Y3QgY3hnYjRfYm9vdGNmZ19kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU1LVxcdF9fbGUxNiBzaWduYXR1cmU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNTk6c3RydWN0IGN4Z2I0X3BjaXJfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2MC1cXHRfX2xlMzIgc2lnbmF0dXJlO1xcdC8qIFNpZ25hdHVyZS4gVGhlIHN0cmluZyBcXFwiUENJUlxcXCIgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzQtLyogQklPUyBib290IGhlYWRlcnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OnN0cnVjdCBjeGdiNF9wY2lfZXhwX3JvbV9oZWFkZXIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzYtXFx0X19sZTE2IHNpZ25hdHVyZTtcXHQvKiBST00gU2lnbmF0dXJlLiBTaG91bGQgYmUgMHhhYTU1ICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTk2PWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE5OS1cXHRCT09UX1NJR05BVFVSRSA9IDB4YWE1NSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjAwOlxcdEJPT1RfTUlOX1NJWkUgPSBzaXplb2Yoc3RydWN0IGN4Z2I0X3BjaV9leHBfcm9tX2hlYWRlciksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIwMS1cXHRCT09UX01BWF9TSVpFID0gMTAyNCAqIEJPT1RfU0laRV9JTkMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9NTI1PXN0YXRpYyBpbmxpbmUgc3RydWN0IG1ib3hfY21kICptYm94X2NtZF9sb2dfZW50cnkoc3RydWN0IG1ib3hfY21kX2xvZyAqbG9nLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTUzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTM4OnN0cnVjdCBjeGdiNF9ldGh0b29sX2xiX3Rlc3Qge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01MzktXFx0c3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD01NTE9c3RydWN0IHRyYWNlX3BhcmFtcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo1NjI6c3RydWN0IGN4Z2I0X2Z3X2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01NjMtXFx0X19iZTMyIHNpZ25hdHVyZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD02NDU9c3RydWN0IHNnZV9yc3BxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY0NzojaW5jbHVkZSBcXFwiY3hnYjRfZGNiLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjQ5LSNpZmRlZiBDT05GSUdfQ0hFTFNJT19UNF9GQ09FXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY1MDojaW5jbHVkZSBcXFwiY3hnYjRfZmNvZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NTEtI2VuZGlmIC8qIENPTkZJR19DSEVMU0lPX1Q0X0ZDT0UgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD02NTM9c3RydWN0IHBvcnRfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk2LVxcdHN0cnVjdCBtdXRleCB2aV9taXJyb3JfbXV0ZXg7IC8qIFN5bmMgYWNjZXNzIHRvIE1pcnJvciBWSSBpbmZvICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY5NzpcXHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IGV0aHRvb2xfbGI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY5OC19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTkwNj1zdHJ1Y3Qgc2dlX3VsZF90eHFfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTEyLS8qIHN0cnVjdCB0byBtYWludGFpbiBVTEQgbGlzdCB0byByZWFsbG9jYXRlIFVMRCByZXNvdXJjZXMgb24gaG90cGx1ZyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTM6c3RydWN0IGN4Z2I0X3VsZF9saXN0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTE0OlxcdHN0cnVjdCBjeGdiNF91bGRfaW5mbyB1bGRfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE1LVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdF9ub2RlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTY6XFx0ZW51bSBjeGdiNF91bGQgdWxkX3R5cGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxNy19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTEwODU9c3RydWN0IG1wc19lbnRyaWVzX3JlZiB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTA5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTA5MzpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXJfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTQtXFx0dTMyICpsb2NfYXJyYXk7IC8qIEFycmF5IGhvbGRpbmcgdGhlIGFjdHVhbCBUSURzIHNldCB0byBmaWx0ZXJzICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTA5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTA5OTpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTAwLVxcdHUzMiBuZW50cmllczsgLyogQWRhcHRlciB3aWRlIG51bWJlciBvZiBzdXBwb3J0ZWQgZmlsdGVycyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxMTAxOlxcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlcl9pbmZvICpwb3J0OyAvKiBQZXIgcG9ydCBlbnRyeSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTAyLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTEwND1zdHJ1Y3QgYWRhcHRlciB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTEyMi1cXHRzdHJ1Y3QgYWRhcHRlcl9wYXJhbXMgcGFyYW1zO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxMTIzOlxcdHN0cnVjdCBjeGdiNF92aXJ0X3JlcyB2cmVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTI0LVxcdHVuc2lnbmVkIGludCBzd2ludHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE0OC1cXHRzdHJ1Y3Qgc210X2RhdGEgKnNtdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTE0OTpcXHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gKnVsZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE1MC1cXHR2b2lkICp1bGRfaGFuZGxlW0NYR0I0X1VMRF9NQVhdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExOTYtXFx0LyogVEMgdTMyIG9mZmxvYWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTE5NzpcXHRzdHJ1Y3QgY3hnYjRfdGNfdTMyX3RhYmxlICp0Y191MzI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExOTgtXFx0c3RydWN0IGNoY3Jfa3RscyBjaGNyX2t0bHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyNS1cXHQvKiBUQyBNUVBSSU8gb2ZmbG9hZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxMjI2OlxcdHN0cnVjdCBjeGdiNF90Y19tcXByaW8gKnRjX21xcHJpbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyOC1cXHQvKiBUQyBNQVRDSEFMTCBjbGFzc2lmaWVyIG9mZmxvYWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIyOTpcXHRzdHJ1Y3QgY3hnYjRfdGNfbWF0Y2hhbGwgKnRjX21hdGNoYWxsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMxLVxcdC8qIEV0aHRvb2wgbi10dXBsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxMjMyOlxcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlciAqZXRodG9vbF9maWx0ZXJzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE1OTc9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcXRpbWVyX3ZhbChjb25zdCBzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjA1LS8qIGRyaXZlciBuYW1lIHVzZWQgZm9yIGV0aHRvb2xfZHJ2aW5mbyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjA2OmV4dGVybiBjaGFyIGN4Z2I0X2RyaXZlcl9uYW1lW107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2MDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTYxMz1uZXRkZXZfdHhfdCB0NF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjE0OmludCBjeGdiNF9zZWxmdGVzdF9sYl9wa3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2MTUtaW50IHQ0X2V0aHJ4X2hhbmRsZXIoc3RydWN0IHNnZV9yc3BxICpxLCBjb25zdCBfX2JlNjQgKnJzcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNjQxPWludCB0NF9zZ2VfZXRoX3R4cV9lZ3Jlc3NfdXBkYXRlKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX2V0aF90eHEgKnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2NDItXFx0XFx0XFx0XFx0IGludCBtYXhyZWNsYWltKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTY0Mzp2b2lkIGN4Z2I0X3NldF9ldGh0b29sX29wcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTY0NDppbnQgY3hnYjRfd3JpdGVfcnNzKGNvbnN0IHN0cnVjdCBwb3J0X2luZm8gKnBpLCBjb25zdCB1MTYgKnF1ZXVlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2NDUtZW51bSBjcGxfdHhfdG5sX2xzb190eXBlIGN4Z2JfZW5jYXBfb2ZmbG9hZF9zdXBwb3J0ZWQoc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTc0MT1zdGF0aWMgaW5saW5lIGludCBoYXNoX21hY19hZGRyKGNvbnN0IHU4ICphZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE3NTI6aW50IGN4Z2I0X3NldF9yc3BxX2ludHJfcGFyYW1zKHN0cnVjdCBzZ2VfcnNwcSAqcSwgdW5zaWduZWQgaW50IHVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzUzLVxcdFxcdFxcdCAgICAgICB1bnNpZ25lZCBpbnQgY250KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTc1ND1zdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9yc3BxKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX3JzcHEgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1OC1cXHRxLVxcdTAwM2VhZGFwID0gYWRhcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OTpcXHRjeGdiNF9zZXRfcnNwcV9pbnRyX3BhcmFtcyhxLCB1cywgY250KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc2MC1cXHRxLVxcdTAwM2VpcWVfbGVuID0gaXFlX3NpemU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MjEwMD12b2lkIGZyZWVfdHhfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMDEtXFx0XFx0ICB1bnNpZ25lZCBpbnQgbiwgYm9vbCB1bm1hcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDI6dm9pZCBjeGdiNF9lb3N3X3R4cV9mcmVlX2Rlc2Moc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfZW9zd190eHEgKnR4cSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEwMy1cXHRcXHRcXHQgICAgICB1MzIgbmRlc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA0OmludCBjeGdiNF9ldGhvZmxkX3NlbmRfZmxvd2Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIGVvdGlkLCB1MzIgdGMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA1OnZvaWQgY3hnYjRfZXRob2ZsZF9yZXN0YXJ0KHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDY6aW50IGN4Z2I0X2V0aG9mbGRfcnhfaGFuZGxlcihzdHJ1Y3Qgc2dlX3JzcHEgKnEsIGNvbnN0IF9fYmU2NCAqcnNwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTA3LVxcdFxcdFxcdCAgICAgY29uc3Qgc3RydWN0IHBrdF9nbCAqc2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0yMTA4PXZvaWQgZnJlZV90eHEoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwOTp2b2lkIGN4Z2I0X3JlY2xhaW1fY29tcGxldGVkX3R4KHN0cnVjdCBhZGFwdGVyICphZGFwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTEwLVxcdFxcdFxcdFxcdHN0cnVjdCBzZ2VfdHhxICpxLCBib29sIHVubWFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExMTppbnQgY3hnYjRfbWFwX3NrYihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTItXFx0XFx0ICBkbWFfYWRkcl90ICphZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExMzp2b2lkIGN4Z2I0X2lubGluZV90eF9za2IoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHNnZV90eHEgKnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTQtXFx0XFx0XFx0IHZvaWQgKnBvcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTU6dm9pZCBjeGdiNF93cml0ZV9zZ2woY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHNnZV90eHEgKnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTYtXFx0XFx0ICAgICBzdHJ1Y3QgdWxwdHhfc2dsICpzZ2wsIHU2NCAqZW5kLCB1bnNpZ25lZCBpbnQgc3RhcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTctXFx0XFx0ICAgICBjb25zdCBkbWFfYWRkcl90ICphZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExODp2b2lkIGN4Z2I0X3dyaXRlX3BhcnRpYWxfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTE5LVxcdFxcdFxcdCAgICAgc3RydWN0IHVscHR4X3NnbCAqc2dsLCB1NjQgKmVuZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyMC1cXHRcXHRcXHQgICAgIGNvbnN0IGRtYV9hZGRyX3QgKmFkZHIsIHUzMiBzdGFydCwgdTMyIHNlbmRfbGVuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyMTp2b2lkIGN4Z2I0X3JpbmdfdHhfZGIoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxLCBpbnQgbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjItaW50IHQ0X3NldF92bGFuX2FjbChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IG1ib3gsIHVuc2lnbmVkIGludCB2ZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyMy1cXHRcXHQgICAgdTE2IHZsYW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI0OmludCBjeGdiNF9kY2JfZW5hYmxlZChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNjppbnQgY3hnYjRfdGhlcm1hbF9pbml0KHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNzppbnQgY3hnYjRfdGhlcm1hbF9yZW1vdmUoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI4OmludCBjeGdiNF9zZXRfbXNpeF9hZmYoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIHNob3J0IHZlYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyOS1cXHRcXHQgICAgICAgY3B1bWFza192YXJfdCAqYWZmX21hc2ssIGludCBpZHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTMwOnZvaWQgY3hnYjRfY2xlYXJfbXNpeF9hZmYodW5zaWduZWQgc2hvcnQgdmVjLCBjcHVtYXNrX3Zhcl90IGFmZl9tYXNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzMjppbnQgY3hnYjRfY2hhbmdlX21hYyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgdW5zaWduZWQgaW50IHZpaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzMtXFx0XFx0ICAgICBpbnQgKnRjYW1faWR4LCBjb25zdCB1OCAqYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTM2OmludCBjeGdiNF9hbGxvY19tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzctXFx0XFx0XFx0IGJvb2wgZnJlZSwgdW5zaWduZWQgaW50IG5hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzktXFx0XFx0XFx0IHU2NCAqaGFzaCwgYm9vbCBzbGVlcF9vayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDA6aW50IGN4Z2I0X2ZyZWVfbWFjX2ZpbHQoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB2aWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQxLVxcdFxcdFxcdHVuc2lnbmVkIGludCBuYWRkciwgY29uc3QgdTggKiphZGRyLCBib29sIHNsZWVwX29rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MjppbnQgY3hnYjRfaW5pdF9tcHNfcmVmX2VudHJpZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQzOnZvaWQgY3hnYjRfZnJlZV9tcHNfcmVmX2VudHJpZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQ0OmludCBjeGdiNF91cGRhdGVfbWFjX2ZpbHQoc3RydWN0IHBvcnRfaW5mbyAqcGksIHVuc2lnbmVkIGludCB2aWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQ1LVxcdFxcdFxcdCAgaW50ICp0Y2FtX2lkeCwgY29uc3QgdTggKmFkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNDYtXFx0XFx0XFx0ICBib29sIHBlcnNpc3RlbnQsIHU4ICpzbXRfaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0NzppbnQgY3hnYjRfZ2V0X21zaXhfaWR4X2Zyb21fYm1hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDg6dm9pZCBjeGdiNF9mcmVlX21zaXhfaWR4X2luX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBtc2l4X2lkeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDk6dm9pZCBjeGdiNF9lbmFibGVfcngoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfcnNwcSAqcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTA6dm9pZCBjeGdiNF9xdWllc2NlX3J4KHN0cnVjdCBzZ2VfcnNwcSAqcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTE6aW50IGN4Z2I0X3BvcnRfbWlycm9yX2FsbG9jKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUyOnZvaWQgY3hnYjRfcG9ydF9taXJyb3JfZnJlZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE1My0jaWYgSVNfRU5BQkxFRChDT05GSUdfQ0hFTFNJT19UTFNfREVWSUNFKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTU0OmludCBjeGdiNF9zZXRfa3Rsc19mZWF0dXJlKHN0cnVjdCBhZGFwdGVyICphZGFwLCBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNTUtI2VuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNi0jaW5jbHVkZSBcXFwidDRfcmVncy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3OiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4OiNpbmNsdWRlIFxcXCJjeGdiNF9jdWRiZy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy05LSNpbmNsdWRlIFxcXCJjdWRiZ196bGliLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxMTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXBbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTItXFx0eyBDVURCR19FREMwLCBjdWRiZ19jb2xsZWN0X2VkYzBfbWVtaW5mbyB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxOTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfaHdfZHVtcFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMC1cXHR7IENVREJHX01CT1hfTE9HLCBjdWRiZ19jb2xsZWN0X21ib3hfbG9nIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjY5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTcwLVxcdHsgQ1VEQkdfRkxBU0gsIGN1ZGJnX2NvbGxlY3RfZmxhc2ggfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6NzM6dTMyIGN4Z2I0X2dldF9kdW1wX2xlbmd0aChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTMyIGZsYWcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03OS1cXHRpZiAoZmxhZyBcXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjgwOlxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4MTpcXHRcXHRcXHRlbnRpdHkgPSBjeGdiNF9jb2xsZWN0X2h3X2R1bXBbaV0uZW50aXR5O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy04Mi1cXHRcXHRcXHRsZW4gKz0gY3VkYmdfZ2V0X2VudGl0eV9sZW5ndGgoYWRhcCwgZW50aXR5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy04Ni1cXHRpZiAoZmxhZyBcXHUwMDI2IENYR0I0X0VUSF9EVU1QX01FTSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4NzpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShjeGdiNF9jb2xsZWN0X21lbV9kdW1wKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjg4OlxcdFxcdFxcdGVudGl0eSA9IGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXBbaV0uZW50aXR5O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy04OS1cXHRcXHRcXHRsZW4gKz0gY3VkYmdfZ2V0X2VudGl0eV9sZW5ndGgoYWRhcCwgZW50aXR5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjEwNDpzdGF0aWMgdm9pZCBjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDUtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBjdWRiZ19idWZmZXIgKmRiZ19idWZmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxMDY6XFx0XFx0XFx0XFx0ICAgICAgIGNvbnN0IHN0cnVjdCBjeGdiNF9jb2xsZWN0X2VudGl0eSAqZV9hcnIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwNy1cXHRcXHRcXHRcXHQgICAgICAgdTMyIGFycl9zaXplLCB2b2lkICpidWYsIHUzMiAqdG90X3NpemUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTE0LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhcnJfc2l6ZTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjExNTpcXHRcXHRjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmUgPSBcXHUwMDI2ZV9hcnJbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTExNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYz0xNTg9c3RhdGljIHZvaWQgY3VkYmdfZnJlZV9jb21wcmVzc19idWZmKHN0cnVjdCBjdWRiZ19pbml0ICpwZGJnX2luaXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxNjM6aW50IGN4Z2I0X2N1ZGJnX2NvbGxlY3Qoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHZvaWQgKmJ1ZiwgdTMyICpidWZfc2l6ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTY0LVxcdFxcdFxcdHUzMiBmbGFnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIxOS1cXHRpZiAoZmxhZyBcXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjA6XFx0XFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXFx1MDAyNmN1ZGJnX2luaXQsIFxcdTAwMjZkYmdfYnVmZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIxOlxcdFxcdFxcdFxcdFxcdCAgIGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIyOlxcdFxcdFxcdFxcdFxcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9od19kdW1wKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjIzLVxcdFxcdFxcdFxcdFxcdCAgIGJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMjYtXFx0aWYgKGZsYWcgXFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9NRU0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyNzpcXHRcXHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcXHUwMDI2Y3VkYmdfaW5pdCwgXFx1MDAyNmRiZ19idWZmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjg6XFx0XFx0XFx0XFx0XFx0ICAgY3hnYjRfY29sbGVjdF9tZW1fZHVtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI5OlxcdFxcdFxcdFxcdFxcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9tZW1fZHVtcCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIzMC1cXHRcXHRcXHRcXHRcXHQgICBidWYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjMzLVxcdGlmIChmbGFnIFxcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfRkxBU0gpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIzNDpcXHRcXHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcXHUwMDI2Y3VkYmdfaW5pdCwgXFx1MDAyNmRiZ19idWZmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzU6XFx0XFx0XFx0XFx0XFx0ICAgY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzY6XFx0XFx0XFx0XFx0XFx0ICAgQVJSQVlfU0laRShjeGdiNF9jb2xsZWN0X2ZsYXNoX2R1bXApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzctXFx0XFx0XFx0XFx0XFx0ICAgYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjQ5OnZvaWQgY3hnYjRfaW5pdF9ldGh0b29sX2R1bXAoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNTY6c3RhdGljIGludCBjeGdiNF9jdWRiZ192bWNvcmVkZF9jb2xsZWN0KHN0cnVjdCB2bWNvcmVkZF9kYXRhICpkYXRhLCB2b2lkICpidWYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNjE6XFx0cmV0dXJuIGN4Z2I0X2N1ZGJnX2NvbGxlY3QoYWRhcCwgYnVmLCBcXHUwMDI2bGVuLCBDWEdCNF9FVEhfRFVNUF9BTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNjItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2NDppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI3NC1cXHRzbnByaW50ZihkYXRhLVxcdTAwM2VkdW1wX25hbWUsIHNpemVvZihkYXRhLVxcdTAwM2VkdW1wX25hbWUpLCBcXFwiJXNfJXNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzU6XFx0XFx0IGN4Z2I0X2RyaXZlcl9uYW1lLCBhZGFwLVxcdTAwM2VuYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6Mjc2OlxcdGRhdGEtXFx1MDAzZXZtY29yZWRkX2NhbGxiYWNrID0gY3hnYjRfY3VkYmdfdm1jb3JlZGRfY29sbGVjdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjc3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oPTE3PXR5cGVkZWYgaW50ICgqY3VkYmdfY29sbGVjdF9jYWxsYmFja190KShzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDoyMTpzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0yMi1cXHRlbnVtIGN1ZGJnX2RiZ19lbnRpdHlfdHlwZSBlbnRpdHk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmg9MjY9ZW51bSBDWEdCNF9FVEhUT09MX0RVTVBfRkxBR1Mge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozNTp1MzIgY3hnYjRfZ2V0X2R1bXBfbGVuZ3RoKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgZmxhZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM2OmludCBjeGdiNF9jdWRiZ19jb2xsZWN0KHN0cnVjdCBhZGFwdGVyICphZGFwLCB2b2lkICpidWYsIHUzMiAqYnVmX3NpemUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM3LVxcdFxcdFxcdHUzMiBmbGFnKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmg6Mzg6dm9pZCBjeGdiNF9pbml0X2V0aHRvb2xfZHVtcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM5OmludCBjeGdiNF9jdWRiZ192bWNvcmVfYWRkX2R1bXAoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC00MC0jZW5kaWYgLyogX19DWEdCNF9DVURCR19IX18gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk6I2luY2x1ZGUgXFxcImN4Z2I0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM9MTM9Y29uc3QgY2hhciAqIGNvbnN0IGRjYl92ZXJfYXJyYXlbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyMjpzdGF0aWMgaW5saW5lIGJvb2wgY3hnYjRfZGNiX3N0YXRlX3N5bmNlZChlbnVtIGN4Z2I0X2RjYl9zdGF0ZSBzdGF0ZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzItICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzozMzp2b2lkIGN4Z2I0X2RjYl9zdGF0ZV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0zNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDg6dm9pZCBjeGdiNF9kY2JfdmVyc2lvbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTk6c3RhdGljIHZvaWQgY3hnYjRfZGNiX2NsZWFudXBfYXBwcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy05OC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk5OnZvaWQgY3hnYjRfZGNiX3Jlc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTAxOlxcdGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEwMjpcXHRjeGdiNF9kY2Jfc3RhdGVfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAzLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTA5LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTEwOnN0YXRpYyBpbmxpbmUgdm9pZCBjeGdiNF9kY2JfdXBkYXRlX3N1cHBvcnQoc3RydWN0IHBvcnRfZGNiX2luZm8gKmRjYilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTExMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEyNTp2b2lkIGN4Z2I0X2RjYl9zdGF0ZV9mc20oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEyNjpcXHRcXHRcXHQgZW51bSBjeGdiNF9kY2Jfc3RhdGVfaW5wdXQgdHJhbnNpdGlvbl90bylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEzMC1cXHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IHBpLVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTMxOlxcdGVudW0gY3hnYjRfZGNiX3N0YXRlIGN1cnJlbnRfc3RhdGUgPSBkY2ItXFx1MDAzZXN0YXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTMyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xODAtXFx0XFx0XFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxODE6XFx0XFx0XFx0Y3hnYjRfZGNiX3VwZGF0ZV9zdXBwb3J0KGRjYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xODItXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMTktXFx0XFx0XFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyMjA6XFx0XFx0XFx0Y3hnYjRfZGNiX3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMjEtXFx0XFx0XFx0ZGNiLVxcdTAwM2VzdGF0ZSA9IENYR0I0X0RDQl9TVEFURV9GV19JTkNPTVBMRVRFO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjEtYmFkX3N0YXRlX2lucHV0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjYyOlxcdGRldl9lcnIoYWRhcC1cXHUwMDNlcGRldl9kZXYsIFxcXCJjeGdiNF9kY2Jfc3RhdGVfZnNtOiBpbGxlZ2FsIGlucHV0IHN5bWJvbCAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI2My1cXHRcXHR0cmFuc2l0aW9uX3RvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjY2LWJhZF9zdGF0ZV90cmFuc2l0aW9uOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjY3OlxcdGRldl9lcnIoYWRhcC1cXHUwMDNlcGRldl9kZXYsIFxcXCJjeGdiNF9kY2Jfc3RhdGVfZnNtOiBiYWQgc3RhdGUgdHJhbnNpdGlvbiwgc3RhdGUgPSAlZCwgaW5wdXQgPSAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI2OC1cXHRcXHRjdXJyZW50X3N0YXRlLCB0cmFuc2l0aW9uX3RvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjcyLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjczOnZvaWQgY3hnYjRfZGNiX2hhbmRsZV9md191cGRhdGUoc3RydWN0IGFkYXB0ZXIgKmFkYXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNzQtXFx0XFx0XFx0XFx0Y29uc3Qgc3RydWN0IGZ3X3BvcnRfY21kICpwY21kKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yODctXFx0aWYgKGRjYl90eXBlID09IEZXX1BPUlRfRENCX1RZUEVfQ09OVFJPTCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6Mjg4OlxcdFxcdGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IGlucHV0ID1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI4OS1cXHRcXHRcXHQoKHBjbWQtXFx1MDAzZXUuZGNiLmNvbnRyb2wuYWxsX3N5bmNkX3BrZCBcXHUwMDI2XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjMxMzpcXHRcXHRjeGdiNF9kY2Jfc3RhdGVfZnNtKGRldiwgaW5wdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzE0LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDEwLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDExOnN0YXRpYyB1OCBjeGdiNF9nZXRzdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDEyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDE5LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDIwOnN0YXRpYyB1OCBjeGdiNF9zZXRzdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCBlbmFibGVkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDIxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDM4OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBndGNjZmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDM5LVxcdFxcdFxcdCAgICAgdTggKnByaW9fdHlwZSwgdTggKnBnaWQsIHU4ICpid19wZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQ4MjpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ3RjY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4My1cXHRcXHRcXHRcXHR1OCAqcHJpb190eXBlLCB1OCAqcGdpZCwgdTggKmJ3X3BlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg2LVxcdC8qIHRjIDAgaXMgd3JpdHRlbiBhdCBNU0IgcG9zaXRpb24gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQ4NzpcXHRyZXR1cm4gY3hnYjRfZ2V0cGd0Y2NmZyhkZXYsICg3IC0gdGMpLCBwcmlvX3R5cGUsIHBnaWQsIGJ3X3BlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4OC1cXHRcXHRcXHRcXHR1cF90Y19tYXAsIDEpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0OTI6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZ19yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTMtXFx0XFx0XFx0XFx0dTggKnByaW9fdHlwZSwgdTggKnBnaWQsIHU4ICpid19wZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5Ni1cXHQvKiB0YyAwIGlzIHdyaXR0ZW4gYXQgTVNCIHBvc2l0aW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0OTc6XFx0cmV0dXJuIGN4Z2I0X2dldHBndGNjZmcoZGV2LCAoNyAtIHRjKSwgcHJpb190eXBlLCBwZ2lkLCBid19wZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTgtXFx0XFx0XFx0XFx0dXBfdGNfbWFwLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTAxOnN0YXRpYyB2b2lkIGN4Z2I0X3NldHBndGNjZmdfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTAyLVxcdFxcdFxcdFxcdHU4IHByaW9fdHlwZSwgdTggcGdpZCwgdTggYndfcGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01NjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1NjQ6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGdid2djZmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHBnaWQsIHU4ICpid19wZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01NjUtXFx0XFx0XFx0ICAgICAgaW50IGxvY2FsKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01ODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1ODg6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGdid2djZmdfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHBnaWQsIHU4ICpid19wZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01ODkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTkwOlxcdHJldHVybiBjeGdiNF9nZXRwZ2J3Z2NmZyhkZXYsIHBnaWQsIGJ3X3BlciwgMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTEtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTkzOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk0LXtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMTk6MTM6NTkuNzcyOTQ4MTg4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzI4NTE4NTEzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIENYR0I0IERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGN4Z2I0YCBkcml2ZXIsIHdoaWNoIGZyb20gd2hhdCBJIHNlZSwgaXMgdGhlIGRyaXZlciBmb3IgQ2hlbHNpbyBUNC9UNS9UNiBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXJzLiBUaGUga2V5IHRoaW5nIGlzLCB0aGVyZSdzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGlzIHRoaW5nIHdpdGhpbiB0aGUga2VybmVsIHRyZWUuIFRoYXQgaW1tZWRpYXRlbHkgcmFpc2VzIGEgZmxhZyBmb3IgbWUuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgZm9jdXNlcyBvbiBgY3hnYjRfdGNfZmxvd2VyLmNgLCB3aGljaCwgYXMgdGhlIG5hbWUgc3VnZ2VzdHMsIGhhbmRsZXMgdGhlIFRDIGZsb3dlciBvZmZsb2FkIGltcGxlbWVudGF0aW9uICpzcGVjaWZpYyogdG8gdGhpcyBoYXJkd2FyZS5cblxuR2l2ZW4gdGhpcyBoYXJkd2FyZSBkZXBlbmRlbmN5LCBhbmQgdGhlIGZhY3QgdGhhdCB3ZSBjYW4ndCBlbXVsYXRlIHRoaXMgaGFyZHdhcmUgaW4gYW4gZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVSwgbXkgaW5pdGlhbCBndXQgZmVlbGluZyBpcyB0aGF0IGl0J3MgcHJvYmFibHkgbm90IHdvcnRoIHRoZSB0aW1lIHRvIGZ1enogdXNpbmcgc3l6a2FsbGVyLlxuXG5MZXQncyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayB0aG91Z2guIFdlIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBXZSBzaG91bGQgc2VlIGlmIHRoZXJlJ3MgKmFueSogcG9zc2libGUgcGF0aC4gTGV0J3Mgc2VlLi4uIHRoZSByZWxldmFudCBjb2RlIGlzIGJ1cmllZCBpbnNpZGUgYGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaGAuIE9rYXksIHRoYXQncyBjYWxsZWQgZnJvbSBgY3hnYjRfdmFsaWRhdGVfZmxvd19tYXRjaGAsIHdoaWNoIGlzIGluIHR1cm4gY2FsbGVkIGZyb20gYGN4Z2I0X2Zsb3dfcnVsZV9yZXBsYWNlYCwgd2hpY2ggaXMgdGhlbiBjYWxsZWQgZnJvbSBgY3hnYjRfc2V0dXBfdGNfZmxvd2VyYC4gVGhlbiBgY3hnYjRfc2V0dXBfdGNfZmxvd2VyYCBpcyBjYWxsZWQgZnJvbSBgY3hnYjRfc2V0dXBfdGNfY2xzX3UzMmAgb3Igc29tZXRoaW5nIHNpbWlsYXIsIHdoaWNoIGFwcGVhcnMgdG8gYmUgZXRodG9vbCBvciBUQyBjYWxsYmFja3MgZm9yIHRoZSBuZXR3b3JrIGRldmljZS5cblxuQWxyaWdodCwgc28gdG8gZXZlbiAqZ2V0KiBhIG5ldHdvcmsgZGV2aWNlIHdpdGggdGhlc2UgY2FsbGJhY2tzLCB3ZSdyZSBkZXBlbmRlbnQgb24gdGhlIGBjeGdiNGAgZHJpdmVyIHByb2Jpbmcgc3VjY2Vzc2Z1bGx5LiBUaGUgcHJvYmUgZnVuY3Rpb24gaXMgYGN4Z2I0X2luaXRfb25lYCBpbiBgY3hnYjRfbWFpbi5jYCAtLSBhIFBDSSBkcml2ZXIgcHJvYmUgZnVuY3Rpb24uIEFuZCBoZXJlJ3MgdGhlIGtpY2tlcjogV2l0aG91dCBhIHJlYWwgQ2hlbHNpbyBQQ0kgZGV2aWNlIHBsdWdnZWQgaW4sIHRoYXQgcHJvYmUgZnVuY3Rpb24gd2lsbCAqbmV2ZXIqIGJlIGNhbGxlZC4gTWVhbmluZyB0aGUgYXNzb2NpYXRlZCBuZXR3b3JrIGRldmljZSB3aWxsIG5ldmVyIGJlIGNyZWF0ZWQuIFdoaWNoIG1lYW5zIHRoaXMgZmxvd2VyIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cbk9rYXksIHRoYXQncyBkZWZpbml0aXZlLiBCYXNlZCBvbiB0aGlzIGRlZXBlciBhbmFseXNpcywgdGhlIGNvZGUgaXMgaW5kZWVkIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXG5cbkknbSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5NzQ4LCJPdXRwdXRUb2tlbnMiOjExMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxOToxNDowNy4wNTgxMzU2MDJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRDIGZsb3dlciBvZmZsb2FkIGltcGxlbWVudGF0aW9uIGZvciB0aGUgQ2hlbHNpbyBjeGdiNCBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIENoZWxzaW8gVDQvVDUvVDYgR2lnYWJpdCBFdGhlcm5ldCBhZGFwdGVycyB0byBwcm9iZSBhbmQgY3JlYXRlIHRoZSBuZXR3b3JrIGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowdc9b9[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-26 19:00:42 +0000 UTC FinishedAt: 2026-06-26 19:14:08 +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+CgkJCTx0ZD4yMDI2LzA2LzI2IDE5OjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAxOToxMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDZmMzNkYmI1NGIwOWIwYTQyNDQyYWUzMmMzOWJiNTRmMjNiZTE5OTRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1biAyNiAxOToxMzo1MSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuaW5kZXggMzMwN2U1MDQyNjgxOTAuLjQxYTI5OThlZTJhMDI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuQEAgLTQwLDYgJiM0Mzs0MCw3IEBAXG4gI2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2N4Z2I0X2ZpbHRlci5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdGNfZmxvd2VyLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7dDRfcmVncy5oXCYjMzQ7XG4gXG4gI2RlZmluZSBTVEFUU19DSEVDS19QRVJJT0QgKEhaIC8gMilcbiBcbkBAIC0yNjYsMjQgJiM0MzsyNjcsNDkgQEAgc3RhdGljIHZvaWQgY3hnYjRfcHJvY2Vzc19mbG93X21hdGNoKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdFx0XHRcdCAgICAgICBWTEFOX1BSSU9fU0hJRlQpO1xuIFx0XHR2bGFuX3RjaV9tYXNrID0gbWF0Y2gubWFzay1cdTAwM2V2bGFuX2lkIHwgKG1hdGNoLm1hc2stXHUwMDNldmxhbl9wcmlvcml0eSBcdTAwM2NcdTAwM2NcbiBcdFx0XHRcdFx0XHQgICAgIFZMQU5fUFJJT19TSElGVCk7XG4tXHRcdGZzLVx1MDAzZXZhbC5pdmxhbiA9IHZsYW5fdGNpO1xuLVx0XHRmcy1cdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcbi1cbi1cdFx0ZnMtXHUwMDNldmFsLml2bGFuX3ZsZCA9IDE7XG4tXHRcdGZzLVx1MDAzZW1hc2suaXZsYW5fdmxkID0gMTtcbi1cbi1cdFx0LyogQ2hlbHNpbyBhZGFwdGVycyB1c2UgaXZsYW5fdmxkIGJpdCB0byBtYXRjaCB2bGFuIHBhY2tldHNcbi1cdFx0ICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cyxcbi1cdFx0ICogZXRodHlwZSBtYXRjaCBpcyB1c2VkIHRoZW4gdG8gbWF0Y2ggb24gZXRodHlwZSBvZiBpbm5lclxuLVx0XHQgKiBoZWFkZXIgaWUuIHRoZSBoZWFkZXIgZm9sbG93aW5nIHRoZSB2bGFuIGhlYWRlci5cbi1cdFx0ICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieVxuLVx0XHQgKiBUQyBmb3IgdmxhbiBwYWNrZXRzIGlmIGl0cyA4MDIuMVEuIEFuZCB0aGVuIHJlc2V0IHRoZVxuLVx0XHQgKiBldGh0eXBlIHZhbHVlIGVsc2UsIGh3IHdpbGwgdHJ5IHRvIG1hdGNoIHRoZSBzdXBwbGllZFxuLVx0XHQgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuXG4tXHRcdCAqL1xuLVx0XHRpZiAoZnMtXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcbi1cdFx0XHRmcy1cdTAwM2V2YWwuZXRodHlwZSA9IDA7XG4tXHRcdFx0ZnMtXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcbiYjNDM7XG4mIzQzO1x0XHRpZiAoYmUxNl90b19jcHUobWF0Y2gua2V5LVx1MDAzZXZsYW5fdHBpZCkgPT0gRVRIX1BfODAyMUFEKSB7XG4mIzQzO1x0XHRcdHN0cnVjdCBhZGFwdGVyICphZGFwID0gbmV0ZGV2MmFkYXAoZGV2KTtcbiYjNDM7XHRcdFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xuJiM0MztcbiYjNDM7XHRcdFx0aWYgKCFhZGFwKSB7XG4mIzQzO1x0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwmIzM0OyVzOiBhZGFwIG5vdCBmb3VuZFxcblwmIzM0OywgX19mdW5jX18pO1xuJiM0MztcdFx0XHRcdHJldHVybjtcbiYjNDM7XHRcdFx0fVxuJiM0MztcbiYjNDM7XHRcdFx0dmFsID0gKGJlMTZfdG9fY3B1KG1hdGNoLm1hc2stXHUwMDNldmxhbl90cGlkKSBcdTAwM2NcdTAwM2MgMTYpIHxcbiYjNDM7XHRcdFx0ICAgICAgYmUxNl90b19jcHUobWF0Y2gua2V5LVx1MDAzZXZsYW5fdHBpZCk7XG4mIzQzO1x0XHRcdHBvcnRfaWQgPSBuZXRkZXYycGluZm8oZGV2KS1cdTAwM2Vwb3J0X2lkO1xuJiM0MztcdFx0XHRmcy1cdTAwM2V2YWwub3ZsYW4gPSB2bGFuX3RjaTtcbiYjNDM7XHRcdFx0ZnMtXHUwMDNlbWFzay5vdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4mIzQzO1x0XHRcdGZzLVx1MDAzZXZhbC5vdmxhbl92bGQgPSAxO1xuJiM0MztcdFx0XHRmcy1cdTAwM2VtYXNrLm92bGFuX3ZsZCA9IDE7XG4mIzQzO1x0XHRcdG92bGFuX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX09WTEFOMF9BKTtcbiYjNDM7XHRcdFx0Y3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTtcbiYjNDM7XHRcdFx0dDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTtcbiYjNDM7XHRcdFx0dmFsID0gdDRfcmVhZF9yZWcoYWRhcCwgY3RsX3JlZyk7XG4mIzQzO1x0XHRcdHQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTtcbiYjNDM7XHRcdFx0dDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSBcdTAwM2NcdTAwM2MgOSwgMCk7XG4mIzQzO1x0XHR9IGVsc2Uge1xuJiM0MztcdFx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbiYjNDM7XHRcdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4mIzQzO1x0XHRcdGZzLVx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xuJiM0MztcdFx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4mIzQzO1xuJiM0MztcdFx0XHQvKiBDaGVsc2lvIGFkYXB0ZXJzIHVzZSBpdmxhbl92bGQgYml0IHRvIG1hdGNoIHZsYW4gcGFja2V0c1xuJiM0MztcdFx0XHQgKiBhcyA4MDIuMVEuIEFsc28sIHdoZW4gdmxhbiB0YWcgaXMgcHJlc2VudCBpbiBwYWNrZXRzLFxuJiM0MztcdFx0XHQgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyXG4mIzQzO1x0XHRcdCAqIGhlYWRlciBpZS4gdGhlIGhlYWRlciBmb2xsb3dpbmcgdGhlIHZsYW4gaGVhZGVyLlxuJiM0MztcdFx0XHQgKiBTbywgc2V0IHRoZSBpdmxhbl92bGQgYmFzZWQgb24gZXRodHlwZSBpbmZvIHN1cHBsaWVkIGJ5XG4mIzQzO1x0XHRcdCAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlXG4mIzQzO1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgZWxzZSwgaHcgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIHN1cHBsaWVkXG4mIzQzO1x0XHRcdCAqIGV0aHR5cGUgdmFsdWUgd2l0aCBldGh0eXBlIG9mIGlubmVyIGhlYWRlci5cbiYjNDM7XHRcdFx0ICovXG4mIzQzO1xuJiM0MztcdFx0XHRpZiAoZnMtXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcbiYjNDM7XHRcdFx0XHRmcy1cdTAwM2V2YWwuZXRodHlwZSA9IDA7XG4mIzQzO1x0XHRcdFx0ZnMtXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcbiYjNDM7XHRcdFx0fVxuIFx0XHR9XG4gXHR9XG4gXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxuaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXG5AQCAtMTkyMSw2ICYjNDM7MTkyMSw5IEBAXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTBcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fSElfQSAweDk5NFxuIFxuJiM0MzsjZGVmaW5lIE1QU19QT1JUX1JYX09WTEFOMF9BIDB4MTIwXG4mIzQzOyNkZWZpbmUgTVBTX1BPUlRfUlhfQ1RMX0EgICAgMFgxMDBcbiYjNDM7XG4gI2RlZmluZSBNUFNfQ01OX0NUTF9BXHQweDkwMDBcbiBcbiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDE5OjEzPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNmYzM2RiYjU0YjA5YjBhNDI0NDJhZTMyYzM5YmI1NGYyM2JlMTk5NApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVuIDI2IDE5OjEzOjUxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMKaW5kZXggMzMwN2U1MDQyNjgxOTAuLjQxYTI5OThlZTJhMDI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmMKQEAgLTQwLDYgJiM0Mzs0MCw3IEBACiAjaW5jbHVkZSAmIzM0O2N4Z2I0LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtjeGdiNF9maWx0ZXIuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2N4Z2I0X3RjX2Zsb3dlci5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0O3Q0X3JlZ3MuaCYjMzQ7CiAKICNkZWZpbmUgU1RBVFNfQ0hFQ0tfUEVSSU9EIChIWiAvIDIpCiAKQEAgLTI2NiwyNCAmIzQzOzI2Nyw0OSBAQCBzdGF0aWMgdm9pZCBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2goc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCQkJICAgICAgIFZMQU5fUFJJT19TSElGVCk7CiAJCXZsYW5fdGNpX21hc2sgPSBtYXRjaC5tYXNrLSZndDt2bGFuX2lkIHwgKG1hdGNoLm1hc2stJmd0O3ZsYW5fcHJpb3JpdHkgJmx0OyZsdDsKIAkJCQkJCSAgICAgVkxBTl9QUklPX1NISUZUKTsKLQkJZnMtJmd0O3ZhbC5pdmxhbiA9IHZsYW5fdGNpOwotCQlmcy0mZ3Q7bWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7Ci0KLQkJZnMtJmd0O3ZhbC5pdmxhbl92bGQgPSAxOwotCQlmcy0mZ3Q7bWFzay5pdmxhbl92bGQgPSAxOwotCi0JCS8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzCi0JCSAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsCi0JCSAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXIKLQkJICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuCi0JCSAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnkKLQkJICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGUKLQkJICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWQKLQkJICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLgotCQkgKi8KLQkJaWYgKGZzLSZndDt2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkgewotCQkJZnMtJmd0O3ZhbC5ldGh0eXBlID0gMDsKLQkJCWZzLSZndDttYXNrLmV0aHR5cGUgPSAwOwomIzQzOwomIzQzOwkJaWYgKGJlMTZfdG9fY3B1KG1hdGNoLmtleS0mZ3Q7dmxhbl90cGlkKSA9PSBFVEhfUF84MDIxQUQpIHsKJiM0MzsJCQlzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IG5ldGRldjJhZGFwKGRldik7CiYjNDM7CQkJdTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkOwomIzQzOwomIzQzOwkJCWlmICghYWRhcCkgewomIzQzOwkJCQluZXRkZXZfZXJyKGRldiwgJiMzNDslczogYWRhcCBub3QgZm91bmRcbiYjMzQ7LCBfX2Z1bmNfXyk7CiYjNDM7CQkJCXJldHVybjsKJiM0MzsJCQl9CiYjNDM7CiYjNDM7CQkJdmFsID0gKGJlMTZfdG9fY3B1KG1hdGNoLm1hc2stJmd0O3ZsYW5fdHBpZCkgJmx0OyZsdDsgMTYpIHwKJiM0MzsJCQkgICAgICBiZTE2X3RvX2NwdShtYXRjaC5rZXktJmd0O3ZsYW5fdHBpZCk7CiYjNDM7CQkJcG9ydF9pZCA9IG5ldGRldjJwaW5mbyhkZXYpLSZndDtwb3J0X2lkOwomIzQzOwkJCWZzLSZndDt2YWwub3ZsYW4gPSB2bGFuX3RjaTsKJiM0MzsJCQlmcy0mZ3Q7bWFzay5vdmxhbiA9IHZsYW5fdGNpX21hc2s7CiYjNDM7CQkJZnMtJmd0O3ZhbC5vdmxhbl92bGQgPSAxOwomIzQzOwkJCWZzLSZndDttYXNrLm92bGFuX3ZsZCA9IDE7CiYjNDM7CQkJb3ZsYW5fcmVnID0gUE9SVF9SRUcocG9ydF9pZCwgTVBTX1BPUlRfUlhfT1ZMQU4wX0EpOwomIzQzOwkJCWN0bF9yZWcgPSBQT1JUX1JFRyhwb3J0X2lkLCBNUFNfUE9SVF9SWF9DVExfQSk7CiYjNDM7CQkJdDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTsKJiM0MzsJCQl2YWwgPSB0NF9yZWFkX3JlZyhhZGFwLCBjdGxfcmVnKTsKJiM0MzsJCQl0NF93cml0ZV9yZWcoYWRhcCwgY3RsX3JlZywgdmFsIHwgMSk7CiYjNDM7CQkJdDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSAmbHQ7Jmx0OyA5LCAwKTsKJiM0MzsJCX0gZWxzZSB7CiYjNDM7CQkJZnMtJmd0O3ZhbC5pdmxhbiA9IHZsYW5fdGNpOwomIzQzOwkJCWZzLSZndDttYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzazsKJiM0MzsJCQlmcy0mZ3Q7dmFsLml2bGFuX3ZsZCA9IDE7CiYjNDM7CQkJZnMtJmd0O21hc2suaXZsYW5fdmxkID0gMTsKJiM0MzsKJiM0MzsJCQkvKiBDaGVsc2lvIGFkYXB0ZXJzIHVzZSBpdmxhbl92bGQgYml0IHRvIG1hdGNoIHZsYW4gcGFja2V0cwomIzQzOwkJCSAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsCiYjNDM7CQkJICogZXRodHlwZSBtYXRjaCBpcyB1c2VkIHRoZW4gdG8gbWF0Y2ggb24gZXRodHlwZSBvZiBpbm5lcgomIzQzOwkJCSAqIGhlYWRlciBpZS4gdGhlIGhlYWRlciBmb2xsb3dpbmcgdGhlIHZsYW4gaGVhZGVyLgomIzQzOwkJCSAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnkKJiM0MzsJCQkgKiBUQyBmb3IgdmxhbiBwYWNrZXRzIGlmIGl0cyA4MDIuMVEuIEFuZCB0aGVuIHJlc2V0IHRoZQomIzQzOwkJCSAqIGV0aHR5cGUgdmFsdWUgZWxzZSwgaHcgd2lsbCB0cnkgdG8gbWF0Y2ggdGhlIHN1cHBsaWVkCiYjNDM7CQkJICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLgomIzQzOwkJCSAqLwomIzQzOwomIzQzOwkJCWlmIChmcy0mZ3Q7dmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHsKJiM0MzsJCQkJZnMtJmd0O3ZhbC5ldGh0eXBlID0gMDsKJiM0MzsJCQkJZnMtJmd0O21hc2suZXRodHlwZSA9IDA7CiYjNDM7CQkJfQogCQl9CiAJfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oCmluZGV4IDY5NTkxNmJhMDQwNTg1Li4zOGM1ODVmM2IxYWRhMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmgKQEAgLTE5MjEsNiAmIzQzOzE5MjEsOSBAQAogI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTAKICNkZWZpbmUgTUFDX1BPUlRfUFRQX1NVTV9ISV9BIDB4OTk0CiAKJiM0MzsjZGVmaW5lIE1QU19QT1JUX1JYX09WTEFOMF9BIDB4MTIwCiYjNDM7I2RlZmluZSBNUFNfUE9SVF9SWF9DVExfQSAgICAwWDEwMAomIzQzOwogI2RlZmluZSBNUFNfQ01OX0NUTF9BCTB4OTAwMAogCiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAxOToxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTk3CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogMjk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKioKCk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfdGNfZmxvd2VyLmNgIGFuZCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhgLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggdGhlIENoZWxzaW8gY3hnYjQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZm9yIHRoZWlyIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMuIEl0IGxvb2tzIGxpa2UgaXQmIzM5O3MgYWRkaW5nIDgwMi4xYWQgKFFpblEpIFZMQU4gdGFnIG1hdGNoaW5nIHRvIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCYjMzk7cyBjaGVja2luZyBmb3IgYEVUSF9QXzgwMjFBRGAgaW4gdGhlIFZMQU4gVFBJRCBmaWVsZCBhbmQgY29uZmlndXJpbmcgaGFyZHdhcmUgcmVnaXN0ZXJzIGJhc2VkIG9uIHRoYXQuIFRoYXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCBmcm9tIGEgbmV0d29ya2luZyBwZXJzcGVjdGl2ZSwgc3VwcG9ydGluZyBtb3JlIGNvbXBsZXggVkxBTiBzZXR1cHMuCgpOb3csIGJlY2F1c2UgdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgQ2hlbHNpbyBoYXJkd2FyZSwgSSYjMzk7bSBhbHJlYWR5IHRoaW5raW5nIGFib3V0IHRoZSBpbXBsaWNhdGlvbnMgZm9yIGZ1enppbmcuIFVubGVzcyB0aGVyZSYjMzk7cyBzb21lIG9ic2N1cmUgc29mdHdhcmUgZW11bGF0b3IgZm9yIENoZWxzaW8gaGFyZHdhcmUgbHVya2luZyBhcm91bmQgKHdoaWNoIGlzIHVubGlrZWx5KSwgdGhpcyBkcml2ZXIgaXMgKmhpZ2hseSogdW5saWtlbHkgdG8gYmUgdHJpZ2dlcmVkIGluIHR5cGljYWwgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGxldCBhbG9uZSB3aXRoaW4gdGhlIHN0YW5kYXJkIHN5emthbGxlciBzZXR1cC4KCk15IGZpcnN0IHRob3VnaHQgaXMsIGlzIHRoaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIGFzIEkgcmVjYWxsLiBZZXAsIGl0IGlzLiBUaGUgY3hnYjQgZHJpdmVyIGRpcmVjdGx5IHRhcmdldHMgQ2hlbHNpbyYjMzk7cyBwaHlzaWNhbCBFdGhlcm5ldCBhZGFwdGVycy4gR2l2ZW4gdGhhdCwgSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoZXJlIGlzbiYjMzk7dCBzb21lIGNsZXZlciBlbXVsYXRpb24gYmVpbmcgdXNlZC4gSGFyZHdhcmUgZHJpdmVycyB0aGF0IGFyZSBub3QgZW11bGF0YWJsZSBpbiBvdXIgZnV6emVyIHNldHVwIGFyZW4mIzM5O3Qgd29ydGggdGhlIGVmZm9ydC4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUga2VybmVsIHRyZWUgZm9yIGFueSBoaW50cyBvZiBgY3hnYjRgIGVtdWxhdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNiAxOToxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjeGdiNCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MzE3IGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc9Njk9Y29uZmlnIENIRUxTSU9fVDRcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctODktXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUgY2hvb3NlIE0gaGVyZTsgdGhlIG1vZHVsZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnOjkwOlx0ICB3aWxsIGJlIGNhbGxlZCBjeGdiNC5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy05MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc9MTE0PWNvbmZpZyBDSEVMU0lPX1Q0VkZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTMwLVx0ICBUbyBjb21waWxlIHRoaXMgZHJpdmVyIGFzIGEgbW9kdWxlIGNob29zZSBNIGhlcmU7IHRoZSBtb2R1bGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZzoxMzE6XHQgIHdpbGwgYmUgY2FsbGVkIGN4Z2I0dmYuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWctMTMyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vTWFrZWZpbGU9Nz1vYmotJChDT05GSUdfQ0hFTFNJT19UMykgJiM0Mzs9IGN4Z2IzL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9NYWtlZmlsZTo4Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0KSAmIzQzOz0gY3hnYjQvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL01ha2VmaWxlOjk6b2JqLSQoQ09ORklHX0NIRUxTSU9fVDRWRikgJiM0Mzs9IGN4Z2I0dmYvXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL01ha2VmaWxlLTEwLW9iai0kKENPTkZJR19DSEVMU0lPX0xJQikgJiM0Mzs9IGxpYmN4Z2IvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS01LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0KSAmIzQzOz0gY3hnYjQub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS03LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo4OmN4Z2I0LW9ianMgOj0gY3hnYjRfbWFpbi5vIGwydC5vIHNtdC5vIHQ0X2h3Lm8gc2dlLm8gY2xpcF90YmwubyBjeGdiNF9ldGh0b29sLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6OTpcdCAgICAgIGN4Z2I0X3VsZC5vIHNycS5vIHNjaGVkLm8gY3hnYjRfZmlsdGVyLm8gY3hnYjRfdGNfdTMyLm8gXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6MTA6XHQgICAgICBjeGdiNF9wdHAubyBjeGdiNF90Y19mbG93ZXIubyBjeGdiNF9jdWRiZy5vIGN4Z2I0X21wcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjExOlx0ICAgICAgY3VkYmdfY29tbW9uLm8gY3VkYmdfbGliLm8gY3VkYmdfemxpYi5vIGN4Z2I0X3RjX21xcHJpby5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjEyOlx0ICAgICAgY3hnYjRfdGNfbWF0Y2hhbGwub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMzpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0RDQikgJiM0Mzs9ICBjeGdiNF9kY2Iub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNDpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0ZDT0UpICYjNDM7PSAgY3hnYjRfZmNvZS5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE1OmN4Z2I0LSQoQ09ORklHX0RFQlVHX0ZTKSAmIzQzOz0gY3hnYjRfZGVidWdmcy5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE2OmN4Z2I0LSQoQ09ORklHX1RIRVJNQUwpICYjNDM7PSBjeGdiNF90aGVybWFsLm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTctI2luY2x1ZGUgXHUwMDNjbmV0L2FkZHJjb25mLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxODojaW5jbHVkZSBcJiMzNDtjeGdiNC5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTktI2luY2x1ZGUgXCYjMzQ7Y2xpcF90YmwuaFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYz01OT1zdGF0aWMgaW50IGNsaXA2X3JlbGVhc2VfbWJveChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy03My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzo3NDppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTc1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQzLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxNDQ6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX2dldCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE0Njp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTg5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxOTA6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX3JlbGVhc2UpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE5MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk1LSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjE5NjpzdGF0aWMgaW50IGN4Z2I0X3VwZGF0ZV9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqcm9vdF9kZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk3LVx0XHRcdFx0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIwOC1cdGxpc3RfZm9yX2VhY2hfZW50cnkoaWZhLCBcdTAwMjZpZGV2LVx1MDAzZWFkZHJfbGlzdCwgaWZfbGlzdCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIwOTpcdFx0cmV0ID0gY3hnYjRfY2xpcF9nZXQoZGV2LCAoY29uc3QgdTMyICopaWZhLVx1MDAzZWFkZHIuczZfYWRkciwgMSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjEwLVx0XHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMTctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MjE4OmludCBjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIxOS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIyMy1cdC8qIEZpcnN0IHBvcHVsYXRlIHRoZSByZWFsIG5ldCBkZXZpY2UmIzM5O3MgSVB2NiBhZGRyZXNzZXMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyMjQ6XHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAoZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIyNS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMC1cdGlmIChyb290X2Rldikge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIzMTpcdFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjI0MTpcdFx0cmV0ID0gY3hnYjRfdXBkYXRlX2Rldl9jbGlwKHJvb3RfZGV2LCBkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0Mi1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoyNDg6RVhQT1JUX1NZTUJPTChjeGdiNF91cGRhdGVfcm9vdF9kZXZfY2xpcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaD0zOT1zdHJ1Y3QgY2xpcF90YmwgKnQ0X2luaXRfY2xpcF90YmwodW5zaWduZWQgaW50IGNsaXB0X3N0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQwLVx0XHRcdFx0ICB1bnNpZ25lZCBpbnQgY2xpcHRfZW5kKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0MTppbnQgY3hnYjRfY2xpcF9nZXQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTMyICpsaXAsIHU4IHY2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0Mjp2b2lkIGN4Z2I0X2NsaXBfcmVsZWFzZShjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQzLWludCBjbGlwX3RibF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaDo0NDppbnQgY3hnYjRfdXBkYXRlX3Jvb3RfZGV2X2NsaXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmgtNDUtdm9pZCB0NF9jbGVhbnVwX2NsaXBfdGJsKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jLTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jOjY6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19jb21tb24uYy03LSNpbmNsdWRlIFwmIzM0O2N1ZGJnX2lmLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTktI2luY2x1ZGUgXCYjMzQ7dDRfcmVncy5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjEwOiNpbmNsdWRlIFwmIzM0O2N4Z2I0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTE6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfY3VkYmcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xMi0jaW5jbHVkZSBcJiMzNDtjdWRiZ19pZi5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xNi0jaW5jbHVkZSBcJiMzNDtjdWRiZ196bGliLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTc6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdGNfbXFwcmlvLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmMtMTgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfemxpYi5jOjg6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtOS0jaW5jbHVkZSBcJiMzNDtjdWRiZ19pZi5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU4LSNpbmNsdWRlIFwmIzM0O3Q0X2NoaXBfdHlwZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTk6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfdWxkLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02MC0jaW5jbHVkZSBcJiMzNDt0NGZ3X2FwaS5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE0Mj1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE0OTplbnVtIGN4Z2I0X25ldGRldl90bHNfb3BzIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNTAtXHRDWEdCNF9UTFNERVZfT1BTICA9IDEsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNTQ6c3RydWN0IGN4Z2I0X2Jvb3RjZmdfZGF0YSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU1LVx0X19sZTE2IHNpZ25hdHVyZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE1OTpzdHJ1Y3QgY3hnYjRfcGNpcl9kYXRhIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjAtXHRfX2xlMzIgc2lnbmF0dXJlO1x0LyogU2lnbmF0dXJlLiBUaGUgc3RyaW5nIFwmIzM0O1BDSVJcJiMzNDsgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc0LS8qIEJJT1MgYm9vdCBoZWFkZXJzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OnN0cnVjdCBjeGdiNF9wY2lfZXhwX3JvbV9oZWFkZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3Ni1cdF9fbGUxNiBzaWduYXR1cmU7XHQvKiBST00gU2lnbmF0dXJlLiBTaG91bGQgYmUgMHhhYTU1ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE5Nj1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTk5LVx0Qk9PVF9TSUdOQVRVUkUgPSAweGFhNTUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjAwOlx0Qk9PVF9NSU5fU0laRSA9IHNpemVvZihzdHJ1Y3QgY3hnYjRfcGNpX2V4cF9yb21faGVhZGVyKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMDEtXHRCT09UX01BWF9TSVpFID0gMTAyNCAqIEJPT1RfU0laRV9JTkMsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTUyNT1zdGF0aWMgaW5saW5lIHN0cnVjdCBtYm94X2NtZCAqbWJveF9jbWRfbG9nX2VudHJ5KHN0cnVjdCBtYm94X2NtZF9sb2cgKmxvZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjUzODpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01MzktXHRzdHJ1Y3QgY29tcGxldGlvbiBjb21wbGV0aW9uO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD01NTE9c3RydWN0IHRyYWNlX3BhcmFtcyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo1NjI6c3RydWN0IGN4Z2I0X2Z3X2RhdGEge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTU2My1cdF9fYmUzMiBzaWduYXR1cmU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTY0NT1zdHJ1Y3Qgc2dlX3JzcHE7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY0NzojaW5jbHVkZSBcJiMzNDtjeGdiNF9kY2IuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY0OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NDktI2lmZGVmIENPTkZJR19DSEVMU0lPX1Q0X0ZDT0VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2NTA6I2luY2x1ZGUgXCYjMzQ7Y3hnYjRfZmNvZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjUxLSNlbmRpZiAvKiBDT05GSUdfQ0hFTFNJT19UNF9GQ09FICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTY1Mz1zdHJ1Y3QgcG9ydF9pbmZvIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk2LVx0c3RydWN0IG11dGV4IHZpX21pcnJvcl9tdXRleDsgLyogU3luYyBhY2Nlc3MgdG8gTWlycm9yIFZJIGluZm8gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo2OTc6XHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IGV0aHRvb2xfbGI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk4LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTkwNj1zdHJ1Y3Qgc2dlX3VsZF90eHFfaW5mbyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxMi0vKiBzdHJ1Y3QgdG8gbWFpbnRhaW4gVUxEIGxpc3QgdG8gcmVhbGxvY2F0ZSBVTEQgcmVzb3VyY2VzIG9uIGhvdHBsdWcgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTM6c3RydWN0IGN4Z2I0X3VsZF9saXN0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTQ6XHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gdWxkX2luZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE1LVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0X25vZGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTE2Olx0ZW51bSBjeGdiNF91bGQgdWxkX3R5cGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE3LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTEwODU9c3RydWN0IG1wc19lbnRyaWVzX3JlZiB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTA5MzpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXJfaW5mbyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTA5NC1cdHUzMiAqbG9jX2FycmF5OyAvKiBBcnJheSBob2xkaW5nIHRoZSBhY3R1YWwgVElEcyBzZXQgdG8gZmlsdGVycyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMDk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEwOTk6c3RydWN0IGN4Z2I0X2V0aHRvb2xfZmlsdGVyIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTAwLVx0dTMyIG5lbnRyaWVzOyAvKiBBZGFwdGVyIHdpZGUgbnVtYmVyIG9mIHN1cHBvcnRlZCBmaWx0ZXJzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTEwMTpcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlcl9pbmZvICpwb3J0OyAvKiBQZXIgcG9ydCBlbnRyeSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMDItfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTEwND1zdHJ1Y3QgYWRhcHRlciB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExMjItXHRzdHJ1Y3QgYWRhcHRlcl9wYXJhbXMgcGFyYW1zO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExMjM6XHRzdHJ1Y3QgY3hnYjRfdmlydF9yZXMgdnJlcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTI0LVx0dW5zaWduZWQgaW50IHN3aW50cjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE0OC1cdHN0cnVjdCBzbXRfZGF0YSAqc210O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjExNDk6XHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gKnVsZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTUwLVx0dm9pZCAqdWxkX2hhbmRsZVtDWEdCNF9VTERfTUFYXTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE5Ni1cdC8qIFRDIHUzMiBvZmZsb2FkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTE5NzpcdHN0cnVjdCBjeGdiNF90Y191MzJfdGFibGUgKnRjX3UzMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTk4LVx0c3RydWN0IGNoY3Jfa3RscyBjaGNyX2t0bHM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMjUtXHQvKiBUQyBNUVBSSU8gb2ZmbG9hZCAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjEyMjY6XHRzdHJ1Y3QgY3hnYjRfdGNfbXFwcmlvICp0Y19tcXByaW87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjI4LVx0LyogVEMgTUFUQ0hBTEwgY2xhc3NpZmllciBvZmZsb2FkICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIyOTpcdHN0cnVjdCBjeGdiNF90Y19tYXRjaGFsbCAqdGNfbWF0Y2hhbGw7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMxLVx0LyogRXRodG9vbCBuLXR1cGxlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIzMjpcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlciAqZXRodG9vbF9maWx0ZXJzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEyMzMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE1OTc9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcXRpbWVyX3ZhbChjb25zdCBzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNS0vKiBkcml2ZXIgbmFtZSB1c2VkIGZvciBldGh0b29sX2RydmluZm8gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjA2OmV4dGVybiBjaGFyIGN4Z2I0X2RyaXZlcl9uYW1lW107XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTYwNy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTYxMz1uZXRkZXZfdHhfdCB0NF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2MTQ6aW50IGN4Z2I0X3NlbGZ0ZXN0X2xiX3BrdChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjE1LWludCB0NF9ldGhyeF9oYW5kbGVyKHN0cnVjdCBzZ2VfcnNwcSAqcSwgY29uc3QgX19iZTY0ICpyc3AsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE2NDE9aW50IHQ0X3NnZV9ldGhfdHhxX2VncmVzc191cGRhdGUoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfZXRoX3R4cSAqcSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjQyLVx0XHRcdFx0IGludCBtYXhyZWNsYWltKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjQzOnZvaWQgY3hnYjRfc2V0X2V0aHRvb2xfb3BzKHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE2NDQ6aW50IGN4Z2I0X3dyaXRlX3Jzcyhjb25zdCBzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgY29uc3QgdTE2ICpxdWV1ZXMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2NDUtZW51bSBjcGxfdHhfdG5sX2xzb190eXBlIGN4Z2JfZW5jYXBfb2ZmbG9hZF9zdXBwb3J0ZWQoc3RydWN0IHNrX2J1ZmYgKnNrYik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE3NDE9c3RhdGljIGlubGluZSBpbnQgaGFzaF9tYWNfYWRkcihjb25zdCB1OCAqYWRkcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNzUyOmludCBjeGdiNF9zZXRfcnNwcV9pbnRyX3BhcmFtcyhzdHJ1Y3Qgc2dlX3JzcHEgKnEsIHVuc2lnbmVkIGludCB1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzUzLVx0XHRcdCAgICAgICB1bnNpZ25lZCBpbnQgY250KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNzU0PXN0YXRpYyBpbmxpbmUgdm9pZCBpbml0X3JzcHEoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfcnNwcSAqcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1OC1cdHEtXHUwMDNlYWRhcCA9IGFkYXA7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OTpcdGN4Z2I0X3NldF9yc3BxX2ludHJfcGFyYW1zKHEsIHVzLCBjbnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NjAtXHRxLVx1MDAzZWlxZV9sZW4gPSBpcWVfc2l6ZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MjEwMD12b2lkIGZyZWVfdHhfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEwMS1cdFx0ICB1bnNpZ25lZCBpbnQgbiwgYm9vbCB1bm1hcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwMjp2b2lkIGN4Z2I0X2Vvc3dfdHhxX2ZyZWVfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9lb3N3X3R4cSAqdHhxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMDMtXHRcdFx0ICAgICAgdTMyIG5kZXNjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA0OmludCBjeGdiNF9ldGhvZmxkX3NlbmRfZmxvd2Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIGVvdGlkLCB1MzIgdGMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDU6dm9pZCBjeGdiNF9ldGhvZmxkX3Jlc3RhcnQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA2OmludCBjeGdiNF9ldGhvZmxkX3J4X2hhbmRsZXIoc3RydWN0IHNnZV9yc3BxICpxLCBjb25zdCBfX2JlNjQgKnJzcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTA3LVx0XHRcdCAgICAgY29uc3Qgc3RydWN0IHBrdF9nbCAqc2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTIxMDg9dm9pZCBmcmVlX3R4cShzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDk6dm9pZCBjeGdiNF9yZWNsYWltX2NvbXBsZXRlZF90eChzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTEwLVx0XHRcdFx0c3RydWN0IHNnZV90eHEgKnEsIGJvb2wgdW5tYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTE6aW50IGN4Z2I0X21hcF9za2Ioc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTItXHRcdCAgZG1hX2FkZHJfdCAqYWRkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExMzp2b2lkIGN4Z2I0X2lubGluZV90eF9za2IoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHNnZV90eHEgKnEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjExNC1cdFx0XHQgdm9pZCAqcG9zKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTE1OnZvaWQgY3hnYjRfd3JpdGVfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTYtXHRcdCAgICAgc3RydWN0IHVscHR4X3NnbCAqc2dsLCB1NjQgKmVuZCwgdW5zaWduZWQgaW50IHN0YXJ0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTctXHRcdCAgICAgY29uc3QgZG1hX2FkZHJfdCAqYWRkcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExODp2b2lkIGN4Z2I0X3dyaXRlX3BhcnRpYWxfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTktXHRcdFx0ICAgICBzdHJ1Y3QgdWxwdHhfc2dsICpzZ2wsIHU2NCAqZW5kLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjAtXHRcdFx0ICAgICBjb25zdCBkbWFfYWRkcl90ICphZGRyLCB1MzIgc3RhcnQsIHUzMiBzZW5kX2xlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyMTp2b2lkIGN4Z2I0X3JpbmdfdHhfZGIoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxLCBpbnQgbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyMi1pbnQgdDRfc2V0X3ZsYW5fYWNsKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1bnNpZ25lZCBpbnQgbWJveCwgdW5zaWduZWQgaW50IHZmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjMtXHRcdCAgICB1MTYgdmxhbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNDppbnQgY3hnYjRfZGNiX2VuYWJsZWQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI2OmludCBjeGdiNF90aGVybWFsX2luaXQoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMjc6aW50IGN4Z2I0X3RoZXJtYWxfcmVtb3ZlKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI4OmludCBjeGdiNF9zZXRfbXNpeF9hZmYoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIHNob3J0IHZlYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTI5LVx0XHQgICAgICAgY3B1bWFza192YXJfdCAqYWZmX21hc2ssIGludCBpZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMzA6dm9pZCBjeGdiNF9jbGVhcl9tc2l4X2FmZih1bnNpZ25lZCBzaG9ydCB2ZWMsIGNwdW1hc2tfdmFyX3QgYWZmX21hc2spO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzMjppbnQgY3hnYjRfY2hhbmdlX21hYyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzMy1cdFx0ICAgICBpbnQgKnRjYW1faWR4LCBjb25zdCB1OCAqYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTM2OmludCBjeGdiNF9hbGxvY19tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzNy1cdFx0XHQgYm9vbCBmcmVlLCB1bnNpZ25lZCBpbnQgbmFkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzktXHRcdFx0IHU2NCAqaGFzaCwgYm9vbCBzbGVlcF9vayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MDppbnQgY3hnYjRfZnJlZV9tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0MS1cdFx0XHR1bnNpZ25lZCBpbnQgbmFkZHIsIGNvbnN0IHU4ICoqYWRkciwgYm9vbCBzbGVlcF9vayk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MjppbnQgY3hnYjRfaW5pdF9tcHNfcmVmX2VudHJpZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDM6dm9pZCBjeGdiNF9mcmVlX21wc19yZWZfZW50cmllcyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0NDppbnQgY3hnYjRfdXBkYXRlX21hY19maWx0KHN0cnVjdCBwb3J0X2luZm8gKnBpLCB1bnNpZ25lZCBpbnQgdmlpZCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQ1LVx0XHRcdCAgaW50ICp0Y2FtX2lkeCwgY29uc3QgdTggKmFkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE0Ni1cdFx0XHQgIGJvb2wgcGVyc2lzdGVudCwgdTggKnNtdF9pZHgpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDc6aW50IGN4Z2I0X2dldF9tc2l4X2lkeF9mcm9tX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDg6dm9pZCBjeGdiNF9mcmVlX21zaXhfaWR4X2luX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBtc2l4X2lkeCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0OTp2b2lkIGN4Z2I0X2VuYWJsZV9yeChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV9yc3BxICpxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUwOnZvaWQgY3hnYjRfcXVpZXNjZV9yeChzdHJ1Y3Qgc2dlX3JzcHEgKnEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTE6aW50IGN4Z2I0X3BvcnRfbWlycm9yX2FsbG9jKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTI6dm9pZCBjeGdiNF9wb3J0X21pcnJvcl9mcmVlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNTMtI2lmIElTX0VOQUJMRUQoQ09ORklHX0NIRUxTSU9fVExTX0RFVklDRSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTU0OmludCBjeGdiNF9zZXRfa3Rsc19mZWF0dXJlKHN0cnVjdCBhZGFwdGVyICphZGFwLCBib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE1NS0jZW5kaWZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNi0jaW5jbHVkZSBcJiMzNDt0NF9yZWdzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3OiNpbmNsdWRlIFwmIzM0O2N4Z2I0LmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4OiNpbmNsdWRlIFwmIzM0O2N4Z2I0X2N1ZGJnLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy05LSNpbmNsdWRlIFwmIzM0O2N1ZGJnX3psaWIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgY3hnYjRfY29sbGVjdF9tZW1fZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEyLVx0eyBDVURCR19FREMwLCBjdWRiZ19jb2xsZWN0X2VkYzBfbWVtaW5mbyB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxOTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfaHdfZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIwLVx0eyBDVURCR19NQk9YX0xPRywgY3VkYmdfY29sbGVjdF9tYm94X2xvZyB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy02OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo2OTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcFtdID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTcwLVx0eyBDVURCR19GTEFTSCwgY3VkYmdfY29sbGVjdF9mbGFzaCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3Mzp1MzIgY3hnYjRfZ2V0X2R1bXBfbGVuZ3RoKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgZmxhZylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTc5LVx0aWYgKGZsYWcgXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODA6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9od19kdW1wKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4MTpcdFx0XHRlbnRpdHkgPSBjeGdiNF9jb2xsZWN0X2h3X2R1bXBbaV0uZW50aXR5O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTgyLVx0XHRcdGxlbiAmIzQzOz0gY3VkYmdfZ2V0X2VudGl0eV9sZW5ndGgoYWRhcCwgZW50aXR5KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODYtXHRpZiAoZmxhZyBcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfTUVNKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODc6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9tZW1fZHVtcCk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6ODg6XHRcdFx0ZW50aXR5ID0gY3hnYjRfY29sbGVjdF9tZW1fZHVtcFtpXS5lbnRpdHk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtODktXHRcdFx0bGVuICYjNDM7PSBjdWRiZ19nZXRfZW50aXR5X2xlbmd0aChhZGFwLCBlbnRpdHkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTA0OnN0YXRpYyB2b2lkIGN4Z2I0X2N1ZGJnX2NvbGxlY3RfZW50aXR5KHN0cnVjdCBjdWRiZ19pbml0ICpwZGJnX2luaXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTA1LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBjdWRiZ19idWZmZXIgKmRiZ19idWZmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjEwNjpcdFx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmVfYXJyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwNy1cdFx0XHRcdCAgICAgICB1MzIgYXJyX3NpemUsIHZvaWQgKmJ1ZiwgdTMyICp0b3Rfc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTE0LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgYXJyX3NpemU7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MTE1Olx0XHRjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmUgPSBcdTAwMjZlX2FycltpXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jPTE1OD1zdGF0aWMgdm9pZCBjdWRiZ19mcmVlX2NvbXByZXNzX2J1ZmYoc3RydWN0IGN1ZGJnX2luaXQgKnBkYmdfaW5pdClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTYyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjE2MzppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE2NC1cdFx0XHR1MzIgZmxhZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjE5LVx0aWYgKGZsYWcgXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyMDpcdFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXHUwMDI2Y3VkYmdfaW5pdCwgXHUwMDI2ZGJnX2J1ZmYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIxOlx0XHRcdFx0XHQgICBjeGdiNF9jb2xsZWN0X2h3X2R1bXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIyOlx0XHRcdFx0XHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjIzLVx0XHRcdFx0XHQgICBidWYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIyNi1cdGlmIChmbGFnIFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9NRU0pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI3Olx0XHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcdTAwMjZjdWRiZ19pbml0LCBcdTAwMjZkYmdfYnVmZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjg6XHRcdFx0XHRcdCAgIGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI5Olx0XHRcdFx0XHQgICBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXApLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIzMC1cdFx0XHRcdFx0ICAgYnVmLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzMtXHRpZiAoZmxhZyBcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfRkxBU0gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjM0Olx0XHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcdTAwMjZjdWRiZ19pbml0LCBcdTAwMjZkYmdfYnVmZixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzU6XHRcdFx0XHRcdCAgIGN4Z2I0X2NvbGxlY3RfZmxhc2hfZHVtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzY6XHRcdFx0XHRcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzctXHRcdFx0XHRcdCAgIGJ1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjQ4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI0OTp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNTY6c3RhdGljIGludCBjeGdiNF9jdWRiZ192bWNvcmVkZF9jb2xsZWN0KHN0cnVjdCB2bWNvcmVkZF9kYXRhICpkYXRhLCB2b2lkICpidWYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjU3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2MTpcdHJldHVybiBjeGdiNF9jdWRiZ19jb2xsZWN0KGFkYXAsIGJ1ZiwgXHUwMDI2bGVuLCBDWEdCNF9FVEhfRFVNUF9BTEwpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2Mi19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2NDppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI2NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI3NC1cdHNucHJpbnRmKGRhdGEtXHUwMDNlZHVtcF9uYW1lLCBzaXplb2YoZGF0YS1cdTAwM2VkdW1wX25hbWUpLCBcJiMzNDslc18lc1wmIzM0OyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzU6XHRcdCBjeGdiNF9kcml2ZXJfbmFtZSwgYWRhcC1cdTAwM2VuYW1lKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzY6XHRkYXRhLVx1MDAzZXZtY29yZWRkX2NhbGxiYWNrID0gY3hnYjRfY3VkYmdfdm1jb3JlZGRfY29sbGVjdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oPTE3PXR5cGVkZWYgaW50ICgqY3VkYmdfY29sbGVjdF9jYWxsYmFja190KShzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0yMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDoyMTpzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTIyLVx0ZW51bSBjdWRiZ19kYmdfZW50aXR5X3R5cGUgZW50aXR5O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaD0yNj1lbnVtIENYR0I0X0VUSFRPT0xfRFVNUF9GTEFHUyB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM1OnUzMiBjeGdiNF9nZXRfZHVtcF9sZW5ndGgoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBmbGFnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozNjppbnQgY3hnYjRfY3VkYmdfY29sbGVjdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdm9pZCAqYnVmLCB1MzIgKmJ1Zl9zaXplLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM3LVx0XHRcdHUzMiBmbGFnKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozODp2b2lkIGN4Z2I0X2luaXRfZXRodG9vbF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwdGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozOTppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC00MC0jZW5kaWYgLyogX19DWEdCNF9DVURCR19IX18gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk6I2luY2x1ZGUgXCYjMzQ7Y3hnYjQuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jPTEzPWNvbnN0IGNoYXIgKiBjb25zdCBkY2JfdmVyX2FycmF5W10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjI6c3RhdGljIGlubGluZSBib29sIGN4Z2I0X2RjYl9zdGF0ZV9zeW5jZWQoZW51bSBjeGdiNF9kY2Jfc3RhdGUgc3RhdGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzozMzp2b2lkIGN4Z2I0X2RjYl9zdGF0ZV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTM0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODp2b2lkIGN4Z2I0X2RjYl92ZXJzaW9uX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5OnN0YXRpYyB2b2lkIGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtOTgtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk5OnZvaWQgY3hnYjRfZGNiX3Jlc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwMC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEwMTpcdGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTAyOlx0Y3hnYjRfZGNiX3N0YXRlX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAzLX1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEwOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTEwOnN0YXRpYyBpbmxpbmUgdm9pZCBjeGdiNF9kY2JfdXBkYXRlX3N1cHBvcnQoc3RydWN0IHBvcnRfZGNiX2luZm8gKmRjYilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTExLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTI1OnZvaWQgY3hnYjRfZGNiX3N0YXRlX2ZzbShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxMjY6XHRcdFx0IGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IHRyYW5zaXRpb25fdG8pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMzAtXHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IHBpLVx1MDAzZWFkYXB0ZXI7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEzMTpcdGVudW0gY3hnYjRfZGNiX3N0YXRlIGN1cnJlbnRfc3RhdGUgPSBkY2ItXHUwMDNlc3RhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEzMi1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTE4MC1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTgxOlx0XHRcdGN4Z2I0X2RjYl91cGRhdGVfc3VwcG9ydChkY2IpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xODItXHRcdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIxOS1cdFx0XHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjIwOlx0XHRcdGN4Z2I0X2RjYl9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMjEtXHRcdFx0ZGNiLVx1MDAzZXN0YXRlID0gQ1hHQjRfRENCX1NUQVRFX0ZXX0lOQ09NUExFVEU7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjEtYmFkX3N0YXRlX2lucHV0OlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNjI6XHRkZXZfZXJyKGFkYXAtXHUwMDNlcGRldl9kZXYsIFwmIzM0O2N4Z2I0X2RjYl9zdGF0ZV9mc206IGlsbGVnYWwgaW5wdXQgc3ltYm9sICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjMtXHRcdHRyYW5zaXRpb25fdG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjY2LWJhZF9zdGF0ZV90cmFuc2l0aW9uOlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNjc6XHRkZXZfZXJyKGFkYXAtXHUwMDNlcGRldl9kZXYsIFwmIzM0O2N4Z2I0X2RjYl9zdGF0ZV9mc206IGJhZCBzdGF0ZSB0cmFuc2l0aW9uLCBzdGF0ZSA9ICVkLCBpbnB1dCA9ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjgtXHRcdGN1cnJlbnRfc3RhdGUsIHRyYW5zaXRpb25fdG8pO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjcyLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyNzM6dm9pZCBjeGdiNF9kY2JfaGFuZGxlX2Z3X3VwZGF0ZShzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjc0LVx0XHRcdFx0Y29uc3Qgc3RydWN0IGZ3X3BvcnRfY21kICpwY21kKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg3LVx0aWYgKGRjYl90eXBlID09IEZXX1BPUlRfRENCX1RZUEVfQ09OVFJPTCkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyODg6XHRcdGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IGlucHV0ID1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjg5LVx0XHRcdCgocGNtZC1cdTAwM2V1LmRjYi5jb250cm9sLmFsbF9zeW5jZF9wa2QgXHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0zMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjMxMzpcdFx0Y3hnYjRfZGNiX3N0YXRlX2ZzbShkZXYsIGlucHV0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzE0LVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00MTAtICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQxMTpzdGF0aWMgdTggY3hnYjRfZ2V0c3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDEyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQxOS0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDIwOnN0YXRpYyB1OCBjeGdiNF9zZXRzdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCBlbmFibGVkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00MjEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDM3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0Mzg6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQzOS1cdFx0XHQgICAgIHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODI6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZ190eChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4My1cdFx0XHRcdHU4ICpwcmlvX3R5cGUsIHU4ICpwZ2lkLCB1OCAqYndfcGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg2LVx0LyogdGMgMCBpcyB3cml0dGVuIGF0IE1TQiBwb3NpdGlvbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0ODc6XHRyZXR1cm4gY3hnYjRfZ2V0cGd0Y2NmZyhkZXYsICg3IC0gdGMpLCBwcmlvX3R5cGUsIHBnaWQsIGJ3X3BlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg4LVx0XHRcdFx0dXBfdGNfbWFwLCAxKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDkyOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBndGNjZmdfcngoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTMtXHRcdFx0XHR1OCAqcHJpb190eXBlLCB1OCAqcGdpZCwgdTggKmJ3X3Blcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5Ni1cdC8qIHRjIDAgaXMgd3JpdHRlbiBhdCBNU0IgcG9zaXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDk3Olx0cmV0dXJuIGN4Z2I0X2dldHBndGNjZmcoZGV2LCAoNyAtIHRjKSwgcHJpb190eXBlLCBwZ2lkLCBid19wZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5OC1cdFx0XHRcdHVwX3RjX21hcCwgMCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01MDAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjUwMTpzdGF0aWMgdm9pZCBjeGdiNF9zZXRwZ3RjY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTAyLVx0XHRcdFx0dTggcHJpb190eXBlLCB1OCBwZ2lkLCB1OCBid19wZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01NjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU2NDpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTY1LVx0XHRcdCAgICAgIGludCBsb2NhbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTg4OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01ODkte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1OTA6XHRyZXR1cm4gY3hnYjRfZ2V0cGdid2djZmcoZGV2LCBwZ2lkLCBid19wZXIsIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTEtfVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjU5MzpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ2J3Z2NmZ19yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGdpZCwgdTggKmJ3X3BlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk0LXtcblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI2IDE5OjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NzQ4CgkJCQkJCQlvdXRwdXQ6IDExMwoJCQkJCQkJdGhvdWdodHM6IDMzMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIENYR0I0IERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgY3hnYjRgIGRyaXZlciwgd2hpY2ggZnJvbSB3aGF0IEkgc2VlLCBpcyB0aGUgZHJpdmVyIGZvciBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMuIFRoZSBrZXkgdGhpbmcgaXMsIHRoZXJlJiMzOTtzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGlzIHRoaW5nIHdpdGhpbiB0aGUga2VybmVsIHRyZWUuIFRoYXQgaW1tZWRpYXRlbHkgcmFpc2VzIGEgZmxhZyBmb3IgbWUuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgZm9jdXNlcyBvbiBgY3hnYjRfdGNfZmxvd2VyLmNgLCB3aGljaCwgYXMgdGhlIG5hbWUgc3VnZ2VzdHMsIGhhbmRsZXMgdGhlIFRDIGZsb3dlciBvZmZsb2FkIGltcGxlbWVudGF0aW9uICpzcGVjaWZpYyogdG8gdGhpcyBoYXJkd2FyZS4KCkdpdmVuIHRoaXMgaGFyZHdhcmUgZGVwZW5kZW5jeSwgYW5kIHRoZSBmYWN0IHRoYXQgd2UgY2FuJiMzOTt0IGVtdWxhdGUgdGhpcyBoYXJkd2FyZSBpbiBhbiBlbnZpcm9ubWVudCBsaWtlIEdDRSBvciBRRU1VLCBteSBpbml0aWFsIGd1dCBmZWVsaW5nIGlzIHRoYXQgaXQmIzM5O3MgcHJvYmFibHkgbm90IHdvcnRoIHRoZSB0aW1lIHRvIGZ1enogdXNpbmcgc3l6a2FsbGVyLgoKTGV0JiMzOTtzIGRvIGEgcXVpY2sgZG91YmxlLWNoZWNrIHRob3VnaC4gV2UgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUuIFdlIHNob3VsZCBzZWUgaWYgdGhlcmUmIzM5O3MgKmFueSogcG9zc2libGUgcGF0aC4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgcmVsZXZhbnQgY29kZSBpcyBidXJpZWQgaW5zaWRlIGBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2hgLiBPa2F5LCB0aGF0JiMzOTtzIGNhbGxlZCBmcm9tIGBjeGdiNF92YWxpZGF0ZV9mbG93X21hdGNoYCwgd2hpY2ggaXMgaW4gdHVybiBjYWxsZWQgZnJvbSBgY3hnYjRfZmxvd19ydWxlX3JlcGxhY2VgLCB3aGljaCBpcyB0aGVuIGNhbGxlZCBmcm9tIGBjeGdiNF9zZXR1cF90Y19mbG93ZXJgLiBUaGVuIGBjeGdiNF9zZXR1cF90Y19mbG93ZXJgIGlzIGNhbGxlZCBmcm9tIGBjeGdiNF9zZXR1cF90Y19jbHNfdTMyYCBvciBzb21ldGhpbmcgc2ltaWxhciwgd2hpY2ggYXBwZWFycyB0byBiZSBldGh0b29sIG9yIFRDIGNhbGxiYWNrcyBmb3IgdGhlIG5ldHdvcmsgZGV2aWNlLgoKQWxyaWdodCwgc28gdG8gZXZlbiAqZ2V0KiBhIG5ldHdvcmsgZGV2aWNlIHdpdGggdGhlc2UgY2FsbGJhY2tzLCB3ZSYjMzk7cmUgZGVwZW5kZW50IG9uIHRoZSBgY3hnYjRgIGRyaXZlciBwcm9iaW5nIHN1Y2Nlc3NmdWxseS4gVGhlIHByb2JlIGZ1bmN0aW9uIGlzIGBjeGdiNF9pbml0X29uZWAgaW4gYGN4Z2I0X21haW4uY2AgLS0gYSBQQ0kgZHJpdmVyIHByb2JlIGZ1bmN0aW9uLiBBbmQgaGVyZSYjMzk7cyB0aGUga2lja2VyOiBXaXRob3V0IGEgcmVhbCBDaGVsc2lvIFBDSSBkZXZpY2UgcGx1Z2dlZCBpbiwgdGhhdCBwcm9iZSBmdW5jdGlvbiB3aWxsICpuZXZlciogYmUgY2FsbGVkLiBNZWFuaW5nIHRoZSBhc3NvY2lhdGVkIG5ldHdvcmsgZGV2aWNlIHdpbGwgbmV2ZXIgYmUgY3JlYXRlZC4gV2hpY2ggbWVhbnMgdGhpcyBmbG93ZXIgY29kZSBpcyB1bnJlYWNoYWJsZS4KCk9rYXksIHRoYXQmIzM5O3MgZGVmaW5pdGl2ZS4gQmFzZWQgb24gdGhpcyBkZWVwZXIgYW5hbHlzaXMsIHRoZSBjb2RlIGlzIGluZGVlZCB1bnJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKSSYjMzk7bSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjYgMTk6MTQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgVEMgZmxvd2VyIG9mZmxvYWQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBDaGVsc2lvIGN4Z2I0IGhhcmR3YXJlIGRyaXZlci4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgQ2hlbHNpbyBUNC9UNS9UNiBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXJzIHRvIHByb2JlIGFuZCBjcmVhdGUgdGhlIG5ldHdvcmsgZGV2aWNlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSksIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDE5OjEzOjUyLjkzOTQ4OTcxMloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MTE4NjgwNDAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgVEMgZmxvd2VyIG9mZmxvYWQgaW1wbGVtZW50YXRpb24gZm9yIHRoZSBDaGVsc2lvIGN4Z2I0IGhhcmR3YXJlIGRyaXZlci4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgQ2hlbHNpbyBUNC9UNS9UNiBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXJzIHRvIHByb2JlIGFuZCBjcmVhdGUgdGhlIG5ldHdvcmsgZGV2aWNlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSksIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBhbmQgY2Fubm90IGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDE5OjEzOjUyLjkzOTQ5NDY1MloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc0NzI2MTQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNmYzM2RiYjU0YjA5YjBhNDI0NDJhZTMyYzM5YmI1NGYyM2JlMTk5NFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1biAyNiAxOToxMzo1MSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xcbmluZGV4IDMzMDdlNTA0MjY4MTkwLi40MWEyOTk4ZWUyYTAyNiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xcbkBAIC00MCw2ICs0MCw3IEBAXFxuICNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiY3hnYjRfZmlsdGVyLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJjeGdiNF90Y19mbG93ZXIuaFxcXCJcXG4rI2luY2x1ZGUgXFxcInQ0X3JlZ3MuaFxcXCJcXG4gXFxuICNkZWZpbmUgU1RBVFNfQ0hFQ0tfUEVSSU9EIChIWiAvIDIpXFxuIFxcbkBAIC0yNjYsMjQgKzI2Nyw0OSBAQCBzdGF0aWMgdm9pZCBjeGdiNF9wcm9jZXNzX2Zsb3dfbWF0Y2goc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgIFZMQU5fUFJJT19TSElGVCk7XFxuIFxcdFxcdHZsYW5fdGNpX21hc2sgPSBtYXRjaC5tYXNrLVxcdTAwM2V2bGFuX2lkIHwgKG1hdGNoLm1hc2stXFx1MDAzZXZsYW5fcHJpb3JpdHkgXFx1MDAzY1xcdTAwM2NcXG4gXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBWTEFOX1BSSU9fU0hJRlQpO1xcbi1cXHRcXHRmcy1cXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XFxuLVxcdFxcdGZzLVxcdTAwM2VtYXNrLml2bGFuID0gdmxhbl90Y2lfbWFzaztcXG4tXFxuLVxcdFxcdGZzLVxcdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcXG4tXFx0XFx0ZnMtXFx1MDAzZW1hc2suaXZsYW5fdmxkID0gMTtcXG4tXFxuLVxcdFxcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXFxuLVxcdFxcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXFxuLVxcdFxcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcXG4tXFx0XFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXFxuLVxcdFxcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcXG4tXFx0XFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcXG4tXFx0XFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcXG4tXFx0XFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxcbi1cXHRcXHQgKi9cXG4tXFx0XFx0aWYgKGZzLVxcdTAwM2V2YWwuZXRodHlwZSA9PSBFVEhfUF84MDIxUSkge1xcbi1cXHRcXHRcXHRmcy1cXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xcbi1cXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5ldGh0eXBlID0gMDtcXG4rXFxuK1xcdFxcdGlmIChiZTE2X3RvX2NwdShtYXRjaC5rZXktXFx1MDAzZXZsYW5fdHBpZCkgPT0gRVRIX1BfODAyMUFEKSB7XFxuK1xcdFxcdFxcdHN0cnVjdCBhZGFwdGVyICphZGFwID0gbmV0ZGV2MmFkYXAoZGV2KTtcXG4rXFx0XFx0XFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xcbitcXG4rXFx0XFx0XFx0aWYgKCFhZGFwKSB7XFxuK1xcdFxcdFxcdFxcdG5ldGRldl9lcnIoZGV2LCBcXFwiJXM6IGFkYXAgbm90IGZvdW5kXFxcXG5cXFwiLCBfX2Z1bmNfXyk7XFxuK1xcdFxcdFxcdFxcdHJldHVybjtcXG4rXFx0XFx0XFx0fVxcbitcXG4rXFx0XFx0XFx0dmFsID0gKGJlMTZfdG9fY3B1KG1hdGNoLm1hc2stXFx1MDAzZXZsYW5fdHBpZCkgXFx1MDAzY1xcdTAwM2MgMTYpIHxcXG4rXFx0XFx0XFx0ICAgICAgYmUxNl90b19jcHUobWF0Y2gua2V5LVxcdTAwM2V2bGFuX3RwaWQpO1xcbitcXHRcXHRcXHRwb3J0X2lkID0gbmV0ZGV2MnBpbmZvKGRldiktXFx1MDAzZXBvcnRfaWQ7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2V2YWwub3ZsYW4gPSB2bGFuX3RjaTtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZW1hc2sub3ZsYW4gPSB2bGFuX3RjaV9tYXNrO1xcbitcXHRcXHRcXHRmcy1cXHUwMDNldmFsLm92bGFuX3ZsZCA9IDE7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2VtYXNrLm92bGFuX3ZsZCA9IDE7XFxuK1xcdFxcdFxcdG92bGFuX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX09WTEFOMF9BKTtcXG4rXFx0XFx0XFx0Y3RsX3JlZyA9IFBPUlRfUkVHKHBvcnRfaWQsIE1QU19QT1JUX1JYX0NUTF9BKTtcXG4rXFx0XFx0XFx0dDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTtcXG4rXFx0XFx0XFx0dmFsID0gdDRfcmVhZF9yZWcoYWRhcCwgY3RsX3JlZyk7XFxuK1xcdFxcdFxcdHQ0X3dyaXRlX3JlZyhhZGFwLCBjdGxfcmVnLCB2YWwgfCAxKTtcXG4rXFx0XFx0XFx0dDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSBcXHUwMDNjXFx1MDAzYyA5LCAwKTtcXG4rXFx0XFx0fSBlbHNlIHtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZXZhbC5pdmxhbiA9IHZsYW5fdGNpO1xcbitcXHRcXHRcXHRmcy1cXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XFxuK1xcdFxcdFxcdGZzLVxcdTAwM2V2YWwuaXZsYW5fdmxkID0gMTtcXG4rXFx0XFx0XFx0ZnMtXFx1MDAzZW1hc2suaXZsYW5fdmxkID0gMTtcXG4rXFxuK1xcdFxcdFxcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXFxuK1xcdFxcdFxcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXFxuK1xcdFxcdFxcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcXG4rXFx0XFx0XFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXFxuK1xcdFxcdFxcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcXG4rXFx0XFx0XFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcXG4rXFx0XFx0XFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcXG4rXFx0XFx0XFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxcbitcXHRcXHRcXHQgKi9cXG4rXFxuK1xcdFxcdFxcdGlmIChmcy1cXHUwMDNldmFsLmV0aHR5cGUgPT0gRVRIX1BfODAyMVEpIHtcXG4rXFx0XFx0XFx0XFx0ZnMtXFx1MDAzZXZhbC5ldGh0eXBlID0gMDtcXG4rXFx0XFx0XFx0XFx0ZnMtXFx1MDAzZW1hc2suZXRodHlwZSA9IDA7XFxuK1xcdFxcdFxcdH1cXG4gXFx0XFx0fVxcbiBcXHR9XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXFxuaW5kZXggNjk1OTE2YmEwNDA1ODUuLjM4YzU4NWYzYjFhZGExIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcXG5AQCAtMTkyMSw2ICsxOTIxLDkgQEBcXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTBcXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0hJX0EgMHg5OTRcXG4gXFxuKyNkZWZpbmUgTVBTX1BPUlRfUlhfT1ZMQU4wX0EgMHgxMjBcXG4rI2RlZmluZSBNUFNfUE9SVF9SWF9DVExfQSAgICAwWDEwMFxcbitcXG4gI2RlZmluZSBNUFNfQ01OX0NUTF9BXFx0MHg5MDAwXFxuIFxcbiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxOToxMzo1My40MTQ5NTk3MloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTM2NDMyMDQ1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2ZjMzZGJiNTRiMDliMGE0MjQ0MmFlMzJjMzliYjU0ZjIzYmUxOTk0XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdW4gMjYgMTk6MTM6NTEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X3RjX2Zsb3dlci5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuaW5kZXggMzMwN2U1MDQyNjgxOTAuLjQxYTI5OThlZTJhMDI2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY1xuQEAgLTQwLDYgKzQwLDcgQEBcbiAjaW5jbHVkZSBcImN4Z2I0LmhcIlxuICNpbmNsdWRlIFwiY3hnYjRfZmlsdGVyLmhcIlxuICNpbmNsdWRlIFwiY3hnYjRfdGNfZmxvd2VyLmhcIlxuKyNpbmNsdWRlIFwidDRfcmVncy5oXCJcbiBcbiAjZGVmaW5lIFNUQVRTX0NIRUNLX1BFUklPRCAoSFogLyAyKVxuIFxuQEAgLTI2NiwyNCArMjY3LDQ5IEBAIHN0YXRpYyB2b2lkIGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdFx0XHQgICAgICAgVkxBTl9QUklPX1NISUZUKTtcbiBcdFx0dmxhbl90Y2lfbWFzayA9IG1hdGNoLm1hc2stXHUwMDNldmxhbl9pZCB8IChtYXRjaC5tYXNrLVx1MDAzZXZsYW5fcHJpb3JpdHkgXHUwMDNjXHUwMDNjXG4gXHRcdFx0XHRcdFx0ICAgICBWTEFOX1BSSU9fU0hJRlQpO1xuLVx0XHRmcy1cdTAwM2V2YWwuaXZsYW4gPSB2bGFuX3RjaTtcbi1cdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4tXG4tXHRcdGZzLVx1MDAzZXZhbC5pdmxhbl92bGQgPSAxO1xuLVx0XHRmcy1cdTAwM2VtYXNrLml2bGFuX3ZsZCA9IDE7XG4tXG4tXHRcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXG4tXHRcdCAqIGFzIDgwMi4xUS4gQWxzbywgd2hlbiB2bGFuIHRhZyBpcyBwcmVzZW50IGluIHBhY2tldHMsXG4tXHRcdCAqIGV0aHR5cGUgbWF0Y2ggaXMgdXNlZCB0aGVuIHRvIG1hdGNoIG9uIGV0aHR5cGUgb2YgaW5uZXJcbi1cdFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXG4tXHRcdCAqIFNvLCBzZXQgdGhlIGl2bGFuX3ZsZCBiYXNlZCBvbiBldGh0eXBlIGluZm8gc3VwcGxpZWQgYnlcbi1cdFx0ICogVEMgZm9yIHZsYW4gcGFja2V0cyBpZiBpdHMgODAyLjFRLiBBbmQgdGhlbiByZXNldCB0aGVcbi1cdFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcbi1cdFx0ICogZXRodHlwZSB2YWx1ZSB3aXRoIGV0aHR5cGUgb2YgaW5uZXIgaGVhZGVyLlxuLVx0XHQgKi9cbi1cdFx0aWYgKGZzLVx1MDAzZXZhbC5ldGh0eXBlID09IEVUSF9QXzgwMjFRKSB7XG4tXHRcdFx0ZnMtXHUwMDNldmFsLmV0aHR5cGUgPSAwO1xuLVx0XHRcdGZzLVx1MDAzZW1hc2suZXRodHlwZSA9IDA7XG4rXG4rXHRcdGlmIChiZTE2X3RvX2NwdShtYXRjaC5rZXktXHUwMDNldmxhbl90cGlkKSA9PSBFVEhfUF84MDIxQUQpIHtcbitcdFx0XHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IG5ldGRldjJhZGFwKGRldik7XG4rXHRcdFx0dTMyIG92bGFuX3JlZywgY3RsX3JlZywgdmFsLCBwb3J0X2lkO1xuK1xuK1x0XHRcdGlmICghYWRhcCkge1xuK1x0XHRcdFx0bmV0ZGV2X2VycihkZXYsIFwiJXM6IGFkYXAgbm90IGZvdW5kXFxuXCIsIF9fZnVuY19fKTtcbitcdFx0XHRcdHJldHVybjtcbitcdFx0XHR9XG4rXG4rXHRcdFx0dmFsID0gKGJlMTZfdG9fY3B1KG1hdGNoLm1hc2stXHUwMDNldmxhbl90cGlkKSBcdTAwM2NcdTAwM2MgMTYpIHxcbitcdFx0XHQgICAgICBiZTE2X3RvX2NwdShtYXRjaC5rZXktXHUwMDNldmxhbl90cGlkKTtcbitcdFx0XHRwb3J0X2lkID0gbmV0ZGV2MnBpbmZvKGRldiktXHUwMDNlcG9ydF9pZDtcbitcdFx0XHRmcy1cdTAwM2V2YWwub3ZsYW4gPSB2bGFuX3RjaTtcbitcdFx0XHRmcy1cdTAwM2VtYXNrLm92bGFuID0gdmxhbl90Y2lfbWFzaztcbitcdFx0XHRmcy1cdTAwM2V2YWwub3ZsYW5fdmxkID0gMTtcbitcdFx0XHRmcy1cdTAwM2VtYXNrLm92bGFuX3ZsZCA9IDE7XG4rXHRcdFx0b3ZsYW5fcmVnID0gUE9SVF9SRUcocG9ydF9pZCwgTVBTX1BPUlRfUlhfT1ZMQU4wX0EpO1xuK1x0XHRcdGN0bF9yZWcgPSBQT1JUX1JFRyhwb3J0X2lkLCBNUFNfUE9SVF9SWF9DVExfQSk7XG4rXHRcdFx0dDRfd3JpdGVfcmVnKGFkYXAsIG92bGFuX3JlZywgdmFsKTtcbitcdFx0XHR2YWwgPSB0NF9yZWFkX3JlZyhhZGFwLCBjdGxfcmVnKTtcbitcdFx0XHR0NF93cml0ZV9yZWcoYWRhcCwgY3RsX3JlZywgdmFsIHwgMSk7XG4rXHRcdFx0dDRfdHBfd3JfYml0c19pbmRpcmVjdChhZGFwLCBUUF9JTkdSRVNTX0NPTkZJR19BLCAxVSBcdTAwM2NcdTAwM2MgOSwgMCk7XG4rXHRcdH0gZWxzZSB7XG4rXHRcdFx0ZnMtXHUwMDNldmFsLml2bGFuID0gdmxhbl90Y2k7XG4rXHRcdFx0ZnMtXHUwMDNlbWFzay5pdmxhbiA9IHZsYW5fdGNpX21hc2s7XG4rXHRcdFx0ZnMtXHUwMDNldmFsLml2bGFuX3ZsZCA9IDE7XG4rXHRcdFx0ZnMtXHUwMDNlbWFzay5pdmxhbl92bGQgPSAxO1xuK1xuK1x0XHRcdC8qIENoZWxzaW8gYWRhcHRlcnMgdXNlIGl2bGFuX3ZsZCBiaXQgdG8gbWF0Y2ggdmxhbiBwYWNrZXRzXG4rXHRcdFx0ICogYXMgODAyLjFRLiBBbHNvLCB3aGVuIHZsYW4gdGFnIGlzIHByZXNlbnQgaW4gcGFja2V0cyxcbitcdFx0XHQgKiBldGh0eXBlIG1hdGNoIGlzIHVzZWQgdGhlbiB0byBtYXRjaCBvbiBldGh0eXBlIG9mIGlubmVyXG4rXHRcdFx0ICogaGVhZGVyIGllLiB0aGUgaGVhZGVyIGZvbGxvd2luZyB0aGUgdmxhbiBoZWFkZXIuXG4rXHRcdFx0ICogU28sIHNldCB0aGUgaXZsYW5fdmxkIGJhc2VkIG9uIGV0aHR5cGUgaW5mbyBzdXBwbGllZCBieVxuK1x0XHRcdCAqIFRDIGZvciB2bGFuIHBhY2tldHMgaWYgaXRzIDgwMi4xUS4gQW5kIHRoZW4gcmVzZXQgdGhlXG4rXHRcdFx0ICogZXRodHlwZSB2YWx1ZSBlbHNlLCBodyB3aWxsIHRyeSB0byBtYXRjaCB0aGUgc3VwcGxpZWRcbitcdFx0XHQgKiBldGh0eXBlIHZhbHVlIHdpdGggZXRodHlwZSBvZiBpbm5lciBoZWFkZXIuXG4rXHRcdFx0ICovXG4rXG4rXHRcdFx0aWYgKGZzLVx1MDAzZXZhbC5ldGh0eXBlID09IEVUSF9QXzgwMjFRKSB7XG4rXHRcdFx0XHRmcy1cdTAwM2V2YWwuZXRodHlwZSA9IDA7XG4rXHRcdFx0XHRmcy1cdTAwM2VtYXNrLmV0aHR5cGUgPSAwO1xuK1x0XHRcdH1cbiBcdFx0fVxuIFx0fVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC90NF9yZWdzLmhcbmluZGV4IDY5NTkxNmJhMDQwNTg1Li4zOGM1ODVmM2IxYWRhMSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvdDRfcmVncy5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaFxuQEAgLTE5MjEsNiArMTkyMSw5IEBAXG4gI2RlZmluZSBNQUNfUE9SVF9QVFBfU1VNX0xPX0EgMHg5OTBcbiAjZGVmaW5lIE1BQ19QT1JUX1BUUF9TVU1fSElfQSAweDk5NFxuIFxuKyNkZWZpbmUgTVBTX1BPUlRfUlhfT1ZMQU4wX0EgMHgxMjBcbisjZGVmaW5lIE1QU19QT1JUX1JYX0NUTF9BICAgIDBYMTAwXG4rXG4gI2RlZmluZSBNUFNfQ01OX0NUTF9BXHQweDkwMDBcbiBcbiAjZGVmaW5lIENPVU5UUEFVU0VNQ1JYX1MgICAgNVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMTk6MTM6NTMuNDE0OTYxMzZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTAxNDYxMzE0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE5ldHdvcmsgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpcyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF90Y19mbG93ZXIuY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L3Q0X3JlZ3MuaGAuIFRoYXQgaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIHRoZSBDaGVsc2lvIGN4Z2I0IGRyaXZlciwgc3BlY2lmaWNhbGx5IGZvciB0aGVpciBUNC9UNS9UNiBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXJzLiBJdCBsb29rcyBsaWtlIGl0J3MgYWRkaW5nIDgwMi4xYWQgKFFpblEpIFZMQU4gdGFnIG1hdGNoaW5nIHRvIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbi4gU3BlY2lmaWNhbGx5LCBpdCdzIGNoZWNraW5nIGZvciBgRVRIX1BfODAyMUFEYCBpbiB0aGUgVkxBTiBUUElEIGZpZWxkIGFuZCBjb25maWd1cmluZyBoYXJkd2FyZSByZWdpc3RlcnMgYmFzZWQgb24gdGhhdC4gVGhhdCdzIHByZXR0eSBzdHJhaWdodGZvcndhcmQgZnJvbSBhIG5ldHdvcmtpbmcgcGVyc3BlY3RpdmUsIHN1cHBvcnRpbmcgbW9yZSBjb21wbGV4IFZMQU4gc2V0dXBzLlxuXG5Ob3csIGJlY2F1c2UgdGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgQ2hlbHNpbyBoYXJkd2FyZSwgSSdtIGFscmVhZHkgdGhpbmtpbmcgYWJvdXQgdGhlIGltcGxpY2F0aW9ucyBmb3IgZnV6emluZy4gVW5sZXNzIHRoZXJlJ3Mgc29tZSBvYnNjdXJlIHNvZnR3YXJlIGVtdWxhdG9yIGZvciBDaGVsc2lvIGhhcmR3YXJlIGx1cmtpbmcgYXJvdW5kICh3aGljaCBpcyB1bmxpa2VseSksIHRoaXMgZHJpdmVyIGlzICpoaWdobHkqIHVubGlrZWx5IHRvIGJlIHRyaWdnZXJlZCBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCBsZXQgYWxvbmUgd2l0aGluIHRoZSBzdGFuZGFyZCBzeXprYWxsZXIgc2V0dXAuXG5cbk15IGZpcnN0IHRob3VnaHQgaXMsIGlzIHRoaXMgYSBwaHlzaWNhbCBoYXJkd2FyZSBkcml2ZXIsIGFzIEkgcmVjYWxsLiBZZXAsIGl0IGlzLiBUaGUgY3hnYjQgZHJpdmVyIGRpcmVjdGx5IHRhcmdldHMgQ2hlbHNpbydzIHBoeXNpY2FsIEV0aGVybmV0IGFkYXB0ZXJzLiBHaXZlbiB0aGF0LCBJIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhlcmUgaXNuJ3Qgc29tZSBjbGV2ZXIgZW11bGF0aW9uIGJlaW5nIHVzZWQuIEhhcmR3YXJlIGRyaXZlcnMgdGhhdCBhcmUgbm90IGVtdWxhdGFibGUgaW4gb3VyIGZ1enplciBzZXR1cCBhcmVuJ3Qgd29ydGggdGhlIGVmZm9ydC4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUga2VybmVsIHRyZWUgZm9yIGFueSBoaW50cyBvZiBgY3hnYjRgIGVtdWxhdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MzE5NywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI5NSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI2VDE5OjEzOjU5LjUxNjQyNTAxNFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTY1MTY1MzQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY3hnYjRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA1MzE3IGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL0tjb25maWc9Njk9Y29uZmlnIENIRUxTSU9fVDRcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy04OS1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUgY2hvb3NlIE0gaGVyZTsgdGhlIG1vZHVsZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZzo5MDpcXHQgIHdpbGwgYmUgY2FsbGVkIGN4Z2I0LlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy05MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZz0xMTQ9Y29uZmlnIENIRUxTSU9fVDRWRlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9LY29uZmlnLTEzMC1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUgY2hvb3NlIE0gaGVyZTsgdGhlIG1vZHVsZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZzoxMzE6XFx0ICB3aWxsIGJlIGNhbGxlZCBjeGdiNHZmLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vS2NvbmZpZy0xMzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL01ha2VmaWxlPTc9b2JqLSQoQ09ORklHX0NIRUxTSU9fVDMpICs9IGN4Z2IzL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vTWFrZWZpbGU6ODpvYmotJChDT05GSUdfQ0hFTFNJT19UNCkgKz0gY3hnYjQvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9NYWtlZmlsZTo5Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0VkYpICs9IGN4Z2I0dmYvXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9NYWtlZmlsZS0xMC1vYmotJChDT05GSUdfQ0hFTFNJT19MSUIpICs9IGxpYmN4Z2IvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlLTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19DSEVMU0lPX1Q0KSArPSBjeGdiNC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZS03LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvTWFrZWZpbGU6ODpjeGdiNC1vYmpzIDo9IGN4Z2I0X21haW4ubyBsMnQubyBzbXQubyB0NF9ody5vIHNnZS5vIGNsaXBfdGJsLm8gY3hnYjRfZXRodG9vbC5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjk6XFx0ICAgICAgY3hnYjRfdWxkLm8gc3JxLm8gc2NoZWQubyBjeGdiNF9maWx0ZXIubyBjeGdiNF90Y191MzIubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMDpcXHQgICAgICBjeGdiNF9wdHAubyBjeGdiNF90Y19mbG93ZXIubyBjeGdiNF9jdWRiZy5vIGN4Z2I0X21wcy5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjExOlxcdCAgICAgIGN1ZGJnX2NvbW1vbi5vIGN1ZGJnX2xpYi5vIGN1ZGJnX3psaWIubyBjeGdiNF90Y19tcXByaW8ubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMjpcXHQgICAgICBjeGdiNF90Y19tYXRjaGFsbC5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxMzpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0RDQikgKz0gIGN4Z2I0X2RjYi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9NYWtlZmlsZToxNDpjeGdiNC0kKENPTkZJR19DSEVMU0lPX1Q0X0ZDT0UpICs9ICBjeGdiNF9mY29lLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE1OmN4Z2I0LSQoQ09ORklHX0RFQlVHX0ZTKSArPSBjeGdiNF9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L01ha2VmaWxlOjE2OmN4Z2I0LSQoQ09ORklHX1RIRVJNQUwpICs9IGN4Z2I0X3RoZXJtYWwub1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE3LSNpbmNsdWRlIFxcdTAwM2NuZXQvYWRkcmNvbmYuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTg6I2luY2x1ZGUgXFxcImN4Z2I0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE5LSNpbmNsdWRlIFxcXCJjbGlwX3RibC5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jPTU5PXN0YXRpYyBpbnQgY2xpcDZfcmVsZWFzZV9tYm94KGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtNzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjc0OmludCBjeGdiNF9jbGlwX2dldChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25zdCB1MzIgKmxpcCwgdTggdjYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTc1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xNDMtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxNDQ6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX2dldCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTE0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MTQ2OnZvaWQgY3hnYjRfY2xpcF9yZWxlYXNlKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHUzMiAqbGlwLCB1OCB2NilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTQ3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xODktfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxOTA6RVhQT1JUX1NZTUJPTChjeGdiNF9jbGlwX3JlbGVhc2UpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMTk1LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYzoxOTY6c3RhdGljIGludCBjeGdiNF91cGRhdGVfZGV2X2NsaXAoc3RydWN0IG5ldF9kZXZpY2UgKnJvb3RfZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0xOTctXFx0XFx0XFx0XFx0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjA4LVxcdGxpc3RfZm9yX2VhY2hfZW50cnkoaWZhLCBcXHUwMDI2aWRldi1cXHUwMDNlYWRkcl9saXN0LCBpZl9saXN0KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIwOTpcXHRcXHRyZXQgPSBjeGdiNF9jbGlwX2dldChkZXYsIChjb25zdCB1MzIgKilpZmEtXFx1MDAzZWFkZHIuczZfYWRkciwgMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIxMC1cXHRcXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIxODppbnQgY3hnYjRfdXBkYXRlX3Jvb3RfZGV2X2NsaXAoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjE5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMjMtXFx0LyogRmlyc3QgcG9wdWxhdGUgdGhlIHJlYWwgbmV0IGRldmljZSdzIElQdjYgYWRkcmVzc2VzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIyNDpcXHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAoZGV2LCBkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMjUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yMzAtXFx0aWYgKHJvb3RfZGV2KSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jOjIzMTpcXHRcXHRyZXQgPSBjeGdiNF91cGRhdGVfZGV2X2NsaXAocm9vdF9kZXYsIGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTIzMi1cXHRcXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5jLTI0MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MjQxOlxcdFxcdHJldCA9IGN4Z2I0X3VwZGF0ZV9kZXZfY2xpcChyb290X2RldiwgZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQyLVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmMtMjQ3LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmM6MjQ4OkVYUE9SVF9TWU1CT0woY3hnYjRfdXBkYXRlX3Jvb3RfZGV2X2NsaXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuYy0yNDktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmg9Mzk9c3RydWN0IGNsaXBfdGJsICp0NF9pbml0X2NsaXBfdGJsKHVuc2lnbmVkIGludCBjbGlwdF9zdGFydCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmgtNDAtXFx0XFx0XFx0XFx0ICB1bnNpZ25lZCBpbnQgY2xpcHRfZW5kKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmg6NDE6aW50IGN4Z2I0X2NsaXBfZ2V0KGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHUzMiAqbGlwLCB1OCB2Nik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oOjQyOnZvaWQgY3hnYjRfY2xpcF9yZWxlYXNlKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGNvbnN0IHUzMiAqbGlwLCB1OCB2Nik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jbGlwX3RibC5oLTQzLWludCBjbGlwX3RibF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqc2VxLCB2b2lkICp2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2NsaXBfdGJsLmg6NDQ6aW50IGN4Z2I0X3VwZGF0ZV9yb290X2Rldl9jbGlwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY2xpcF90YmwuaC00NS12b2lkIHQ0X2NsZWFudXBfY2xpcF90Ymwoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19jb21tb24uYy01LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfY29tbW9uLmM6NjojaW5jbHVkZSBcXFwiY3hnYjQuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2NvbW1vbi5jLTctI2luY2x1ZGUgXFxcImN1ZGJnX2lmLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTktI2luY2x1ZGUgXFxcInQ0X3JlZ3MuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjEwOiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmM6MTE6I2luY2x1ZGUgXFxcImN4Z2I0X2N1ZGJnLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ19saWIuYy0xMi0jaW5jbHVkZSBcXFwiY3VkYmdfaWYuaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfbGliLmMtMTYtI2luY2x1ZGUgXFxcImN1ZGJnX3psaWIuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jOjE3OiNpbmNsdWRlIFxcXCJjeGdiNF90Y19tcXByaW8uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX2xpYi5jLTE4LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jdWRiZ196bGliLmMtNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N1ZGJnX3psaWIuYzo4OiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3VkYmdfemxpYi5jLTktI2luY2x1ZGUgXFxcImN1ZGJnX2lmLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTgtI2luY2x1ZGUgXFxcInQ0X2NoaXBfdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo1OTojaW5jbHVkZSBcXFwiY3hnYjRfdWxkLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTYwLSNpbmNsdWRlIFxcXCJ0NGZ3X2FwaS5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE0Mj1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE0OTplbnVtIGN4Z2I0X25ldGRldl90bHNfb3BzIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTUwLVxcdENYR0I0X1RMU0RFVl9PUFMgID0gMSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE1NDpzdHJ1Y3QgY3hnYjRfYm9vdGNmZ19kYXRhIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU1LVxcdF9fbGUxNiBzaWduYXR1cmU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNTk6c3RydWN0IGN4Z2I0X3BjaXJfZGF0YSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2MC1cXHRfX2xlMzIgc2lnbmF0dXJlO1xcdC8qIFNpZ25hdHVyZS4gVGhlIHN0cmluZyBcXFwiUENJUlxcXCIgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzQtLyogQklPUyBib290IGhlYWRlcnMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OnN0cnVjdCBjeGdiNF9wY2lfZXhwX3JvbV9oZWFkZXIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzYtXFx0X19sZTE2IHNpZ25hdHVyZTtcXHQvKiBST00gU2lnbmF0dXJlLiBTaG91bGQgYmUgMHhhYTU1ICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTk2PWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE5OS1cXHRCT09UX1NJR05BVFVSRSA9IDB4YWE1NSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjAwOlxcdEJPT1RfTUlOX1NJWkUgPSBzaXplb2Yoc3RydWN0IGN4Z2I0X3BjaV9leHBfcm9tX2hlYWRlciksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIwMS1cXHRCT09UX01BWF9TSVpFID0gMTAyNCAqIEJPT1RfU0laRV9JTkMsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9NTI1PXN0YXRpYyBpbmxpbmUgc3RydWN0IG1ib3hfY21kICptYm94X2NtZF9sb2dfZW50cnkoc3RydWN0IG1ib3hfY21kX2xvZyAqbG9nLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTUzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6NTM4OnN0cnVjdCBjeGdiNF9ldGh0b29sX2xiX3Rlc3Qge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01MzktXFx0c3RydWN0IGNvbXBsZXRpb24gY29tcGxldGlvbjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD01NTE9c3RydWN0IHRyYWNlX3BhcmFtcyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNTYxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo1NjI6c3RydWN0IGN4Z2I0X2Z3X2RhdGEge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC01NjMtXFx0X19iZTMyIHNpZ25hdHVyZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD02NDU9c3RydWN0IHNnZV9yc3BxO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY0NzojaW5jbHVkZSBcXFwiY3hnYjRfZGNiLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjQ5LSNpZmRlZiBDT05GSUdfQ0hFTFNJT19UNF9GQ09FXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY1MDojaW5jbHVkZSBcXFwiY3hnYjRfZmNvZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC02NTEtI2VuZGlmIC8qIENPTkZJR19DSEVMU0lPX1Q0X0ZDT0UgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD02NTM9c3RydWN0IHBvcnRfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtNjk2LVxcdHN0cnVjdCBtdXRleCB2aV9taXJyb3JfbXV0ZXg7IC8qIFN5bmMgYWNjZXNzIHRvIE1pcnJvciBWSSBpbmZvICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjY5NzpcXHRzdHJ1Y3QgY3hnYjRfZXRodG9vbF9sYl90ZXN0IGV0aHRvb2xfbGI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTY5OC19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTkwNj1zdHJ1Y3Qgc2dlX3VsZF90eHFfaW5mbyB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTEyLS8qIHN0cnVjdCB0byBtYWludGFpbiBVTEQgbGlzdCB0byByZWFsbG9jYXRlIFVMRCByZXNvdXJjZXMgb24gaG90cGx1ZyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTM6c3RydWN0IGN4Z2I0X3VsZF9saXN0IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6OTE0OlxcdHN0cnVjdCBjeGdiNF91bGRfaW5mbyB1bGRfaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtOTE1LVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdF9ub2RlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDo5MTY6XFx0ZW51bSBjeGdiNF91bGQgdWxkX3R5cGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTkxNy19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTEwODU9c3RydWN0IG1wc19lbnRyaWVzX3JlZiB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTA5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTA5MzpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXJfaW5mbyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTEwOTQtXFx0dTMyICpsb2NfYXJyYXk7IC8qIEFycmF5IGhvbGRpbmcgdGhlIGFjdHVhbCBUSURzIHNldCB0byBmaWx0ZXJzICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTA5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTA5OTpzdHJ1Y3QgY3hnYjRfZXRodG9vbF9maWx0ZXIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTAwLVxcdHUzMiBuZW50cmllczsgLyogQWRhcHRlciB3aWRlIG51bWJlciBvZiBzdXBwb3J0ZWQgZmlsdGVycyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxMTAxOlxcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlcl9pbmZvICpwb3J0OyAvKiBQZXIgcG9ydCBlbnRyeSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTAyLX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTEwND1zdHJ1Y3QgYWRhcHRlciB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTEyMi1cXHRzdHJ1Y3QgYWRhcHRlcl9wYXJhbXMgcGFyYW1zO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxMTIzOlxcdHN0cnVjdCBjeGdiNF92aXJ0X3JlcyB2cmVzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMTI0LVxcdHVuc2lnbmVkIGludCBzd2ludHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE0OC1cXHRzdHJ1Y3Qgc210X2RhdGEgKnNtdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTE0OTpcXHRzdHJ1Y3QgY3hnYjRfdWxkX2luZm8gKnVsZDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTE1MC1cXHR2b2lkICp1bGRfaGFuZGxlW0NYR0I0X1VMRF9NQVhdO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExOTYtXFx0LyogVEMgdTMyIG9mZmxvYWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTE5NzpcXHRzdHJ1Y3QgY3hnYjRfdGNfdTMyX3RhYmxlICp0Y191MzI7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTExOTgtXFx0c3RydWN0IGNoY3Jfa3RscyBjaGNyX2t0bHM7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyNS1cXHQvKiBUQyBNUVBSSU8gb2ZmbG9hZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxMjI2OlxcdHN0cnVjdCBjeGdiNF90Y19tcXByaW8gKnRjX21xcHJpbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTIyOC1cXHQvKiBUQyBNQVRDSEFMTCBjbGFzc2lmaWVyIG9mZmxvYWQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTIyOTpcXHRzdHJ1Y3QgY3hnYjRfdGNfbWF0Y2hhbGwgKnRjX21hdGNoYWxsO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMxLVxcdC8qIEV0aHRvb2wgbi10dXBsZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxMjMyOlxcdHN0cnVjdCBjeGdiNF9ldGh0b29sX2ZpbHRlciAqZXRodG9vbF9maWx0ZXJzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xMjMzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oPTE1OTc9c3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQgcXRpbWVyX3ZhbChjb25zdCBzdHJ1Y3QgYWRhcHRlciAqYWRhcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNjA1LS8qIGRyaXZlciBuYW1lIHVzZWQgZm9yIGV0aHRvb2xfZHJ2aW5mbyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjA2OmV4dGVybiBjaGFyIGN4Z2I0X2RyaXZlcl9uYW1lW107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2MDctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTYxMz1uZXRkZXZfdHhfdCB0NF9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoxNjE0OmludCBjeGdiNF9zZWxmdGVzdF9sYl9wa3Qoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2MTUtaW50IHQ0X2V0aHJ4X2hhbmRsZXIoc3RydWN0IHNnZV9yc3BxICpxLCBjb25zdCBfX2JlNjQgKnJzcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0xNjQxPWludCB0NF9zZ2VfZXRoX3R4cV9lZ3Jlc3NfdXBkYXRlKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX2V0aF90eHEgKnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2NDItXFx0XFx0XFx0XFx0IGludCBtYXhyZWNsYWltKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTY0Mzp2b2lkIGN4Z2I0X3NldF9ldGh0b29sX29wcyhzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTY0NDppbnQgY3hnYjRfd3JpdGVfcnNzKGNvbnN0IHN0cnVjdCBwb3J0X2luZm8gKnBpLCBjb25zdCB1MTYgKnF1ZXVlcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE2NDUtZW51bSBjcGxfdHhfdG5sX2xzb190eXBlIGN4Z2JfZW5jYXBfb2ZmbG9hZF9zdXBwb3J0ZWQoc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTc0MT1zdGF0aWMgaW5saW5lIGludCBoYXNoX21hY19hZGRyKGNvbnN0IHU4ICphZGRyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTE3NTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjE3NTI6aW50IGN4Z2I0X3NldF9yc3BxX2ludHJfcGFyYW1zKHN0cnVjdCBzZ2VfcnNwcSAqcSwgdW5zaWduZWQgaW50IHVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0xNzUzLVxcdFxcdFxcdCAgICAgICB1bnNpZ25lZCBpbnQgY250KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MTc1ND1zdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9yc3BxKHN0cnVjdCBhZGFwdGVyICphZGFwLCBzdHJ1Y3Qgc2dlX3JzcHEgKnEsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc1OC1cXHRxLVxcdTAwM2VhZGFwID0gYWRhcDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MTc1OTpcXHRjeGdiNF9zZXRfcnNwcV9pbnRyX3BhcmFtcyhxLCB1cywgY250KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMTc2MC1cXHRxLVxcdTAwM2VpcWVfbGVuID0gaXFlX3NpemU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg9MjEwMD12b2lkIGZyZWVfdHhfZGVzYyhzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgc3RydWN0IHNnZV90eHEgKnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMDEtXFx0XFx0ICB1bnNpZ25lZCBpbnQgbiwgYm9vbCB1bm1hcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDI6dm9pZCBjeGdiNF9lb3N3X3R4cV9mcmVlX2Rlc2Moc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfZW9zd190eHEgKnR4cSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEwMy1cXHRcXHRcXHQgICAgICB1MzIgbmRlc2MpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA0OmludCBjeGdiNF9ldGhvZmxkX3NlbmRfZmxvd2Moc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIGVvdGlkLCB1MzIgdGMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTA1OnZvaWQgY3hnYjRfZXRob2ZsZF9yZXN0YXJ0KHN0cnVjdCB0YXNrbGV0X3N0cnVjdCAqdCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMDY6aW50IGN4Z2I0X2V0aG9mbGRfcnhfaGFuZGxlcihzdHJ1Y3Qgc2dlX3JzcHEgKnEsIGNvbnN0IF9fYmU2NCAqcnNwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTA3LVxcdFxcdFxcdCAgICAgY29uc3Qgc3RydWN0IHBrdF9nbCAqc2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaD0yMTA4PXZvaWQgZnJlZV90eHEoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEwOTp2b2lkIGN4Z2I0X3JlY2xhaW1fY29tcGxldGVkX3R4KHN0cnVjdCBhZGFwdGVyICphZGFwLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTEwLVxcdFxcdFxcdFxcdHN0cnVjdCBzZ2VfdHhxICpxLCBib29sIHVubWFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExMTppbnQgY3hnYjRfbWFwX3NrYihzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTItXFx0XFx0ICBkbWFfYWRkcl90ICphZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExMzp2b2lkIGN4Z2I0X2lubGluZV90eF9za2IoY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHNnZV90eHEgKnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTQtXFx0XFx0XFx0IHZvaWQgKnBvcyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxMTU6dm9pZCBjeGdiNF93cml0ZV9zZ2woY29uc3Qgc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHNnZV90eHEgKnEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTYtXFx0XFx0ICAgICBzdHJ1Y3QgdWxwdHhfc2dsICpzZ2wsIHU2NCAqZW5kLCB1bnNpZ25lZCBpbnQgc3RhcnQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMTctXFx0XFx0ICAgICBjb25zdCBkbWFfYWRkcl90ICphZGRyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjExODp2b2lkIGN4Z2I0X3dyaXRlX3BhcnRpYWxfc2dsKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBzZ2VfdHhxICpxLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTE5LVxcdFxcdFxcdCAgICAgc3RydWN0IHVscHR4X3NnbCAqc2dsLCB1NjQgKmVuZCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyMC1cXHRcXHRcXHQgICAgIGNvbnN0IGRtYV9hZGRyX3QgKmFkZHIsIHUzMiBzdGFydCwgdTMyIHNlbmRfbGVuKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyMTp2b2lkIGN4Z2I0X3JpbmdfdHhfZGIoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfdHhxICpxLCBpbnQgbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMjItaW50IHQ0X3NldF92bGFuX2FjbChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IG1ib3gsIHVuc2lnbmVkIGludCB2ZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyMy1cXHRcXHQgICAgdTE2IHZsYW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI0OmludCBjeGdiNF9kY2JfZW5hYmxlZChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNjppbnQgY3hnYjRfdGhlcm1hbF9pbml0KHN0cnVjdCBhZGFwdGVyICphZGFwKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEyNzppbnQgY3hnYjRfdGhlcm1hbF9yZW1vdmUoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTI4OmludCBjeGdiNF9zZXRfbXNpeF9hZmYoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIHNob3J0IHZlYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEyOS1cXHRcXHQgICAgICAgY3B1bWFza192YXJfdCAqYWZmX21hc2ssIGludCBpZHgpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTMwOnZvaWQgY3hnYjRfY2xlYXJfbXNpeF9hZmYodW5zaWduZWQgc2hvcnQgdmVjLCBjcHVtYXNrX3Zhcl90IGFmZl9tYXNrKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjEzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjEzMjppbnQgY3hnYjRfY2hhbmdlX21hYyhzdHJ1Y3QgcG9ydF9pbmZvICpwaSwgdW5zaWduZWQgaW50IHZpaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzMtXFx0XFx0ICAgICBpbnQgKnRjYW1faWR4LCBjb25zdCB1OCAqYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTM1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTM2OmludCBjeGdiNF9hbGxvY19tYWNfZmlsdChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdW5zaWduZWQgaW50IHZpaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzctXFx0XFx0XFx0IGJvb2wgZnJlZSwgdW5zaWduZWQgaW50IG5hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxMzktXFx0XFx0XFx0IHU2NCAqaGFzaCwgYm9vbCBzbGVlcF9vayk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDA6aW50IGN4Z2I0X2ZyZWVfbWFjX2ZpbHQoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHVuc2lnbmVkIGludCB2aWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQxLVxcdFxcdFxcdHVuc2lnbmVkIGludCBuYWRkciwgY29uc3QgdTggKiphZGRyLCBib29sIHNsZWVwX29rKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0MjppbnQgY3hnYjRfaW5pdF9tcHNfcmVmX2VudHJpZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQzOnZvaWQgY3hnYjRfZnJlZV9tcHNfcmVmX2VudHJpZXMoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTQ0OmludCBjeGdiNF91cGRhdGVfbWFjX2ZpbHQoc3RydWN0IHBvcnRfaW5mbyAqcGksIHVuc2lnbmVkIGludCB2aWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaC0yMTQ1LVxcdFxcdFxcdCAgaW50ICp0Y2FtX2lkeCwgY29uc3QgdTggKmFkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNDYtXFx0XFx0XFx0ICBib29sIHBlcnNpc3RlbnQsIHU4ICpzbXRfaWR4KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0Lmg6MjE0NzppbnQgY3hnYjRfZ2V0X21zaXhfaWR4X2Zyb21fYm1hcChzdHJ1Y3QgYWRhcHRlciAqYWRhcCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDg6dm9pZCBjeGdiNF9mcmVlX21zaXhfaWR4X2luX2JtYXAoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHUzMiBtc2l4X2lkeCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNDk6dm9pZCBjeGdiNF9lbmFibGVfcngoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHN0cnVjdCBzZ2VfcnNwcSAqcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTA6dm9pZCBjeGdiNF9xdWllc2NlX3J4KHN0cnVjdCBzZ2VfcnNwcSAqcSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oOjIxNTE6aW50IGN4Z2I0X3BvcnRfbWlycm9yX2FsbG9jKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTUyOnZvaWQgY3hnYjRfcG9ydF9taXJyb3JfZnJlZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0LmgtMjE1My0jaWYgSVNfRU5BQkxFRChDT05GSUdfQ0hFTFNJT19UTFNfREVWSUNFKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjQuaDoyMTU0OmludCBjeGdiNF9zZXRfa3Rsc19mZWF0dXJlKHN0cnVjdCBhZGFwdGVyICphZGFwLCBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNC5oLTIxNTUtI2VuZGlmXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNi0jaW5jbHVkZSBcXFwidDRfcmVncy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo3OiNpbmNsdWRlIFxcXCJjeGdiNC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4OiNpbmNsdWRlIFxcXCJjeGdiNF9jdWRiZy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy05LSNpbmNsdWRlIFxcXCJjdWRiZ196bGliLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxMTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXBbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTItXFx0eyBDVURCR19FREMwLCBjdWRiZ19jb2xsZWN0X2VkYzBfbWVtaW5mbyB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTE4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxOTpzdGF0aWMgY29uc3Qgc3RydWN0IGN4Z2I0X2NvbGxlY3RfZW50aXR5IGN4Z2I0X2NvbGxlY3RfaHdfZHVtcFtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMC1cXHR7IENVREJHX01CT1hfTE9HLCBjdWRiZ19jb2xsZWN0X21ib3hfbG9nIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjY5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wW10gPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTcwLVxcdHsgQ1VEQkdfRkxBU0gsIGN1ZGJnX2NvbGxlY3RfZmxhc2ggfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6NzM6dTMyIGN4Z2I0X2dldF9kdW1wX2xlbmd0aChzdHJ1Y3QgYWRhcHRlciAqYWRhcCwgdTMyIGZsYWcpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy03OS1cXHRpZiAoZmxhZyBcXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjgwOlxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBUlJBWV9TSVpFKGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4MTpcXHRcXHRcXHRlbnRpdHkgPSBjeGdiNF9jb2xsZWN0X2h3X2R1bXBbaV0uZW50aXR5O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy04Mi1cXHRcXHRcXHRsZW4gKz0gY3VkYmdfZ2V0X2VudGl0eV9sZW5ndGgoYWRhcCwgZW50aXR5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy04Ni1cXHRpZiAoZmxhZyBcXHUwMDI2IENYR0I0X0VUSF9EVU1QX01FTSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzo4NzpcXHRcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVJSQVlfU0laRShjeGdiNF9jb2xsZWN0X21lbV9kdW1wKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjg4OlxcdFxcdFxcdGVudGl0eSA9IGN4Z2I0X2NvbGxlY3RfbWVtX2R1bXBbaV0uZW50aXR5O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy04OS1cXHRcXHRcXHRsZW4gKz0gY3VkYmdfZ2V0X2VudGl0eV9sZW5ndGgoYWRhcCwgZW50aXR5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjEwNDpzdGF0aWMgdm9pZCBjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0xMDUtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBjdWRiZ19idWZmZXIgKmRiZ19idWZmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxMDY6XFx0XFx0XFx0XFx0ICAgICAgIGNvbnN0IHN0cnVjdCBjeGdiNF9jb2xsZWN0X2VudGl0eSAqZV9hcnIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTEwNy1cXHRcXHRcXHRcXHQgICAgICAgdTMyIGFycl9zaXplLCB2b2lkICpidWYsIHUzMiAqdG90X3NpemUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTE0LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhcnJfc2l6ZTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjExNTpcXHRcXHRjb25zdCBzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkgKmUgPSBcXHUwMDI2ZV9hcnJbaV07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTExNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYz0xNTg9c3RhdGljIHZvaWQgY3VkYmdfZnJlZV9jb21wcmVzc19idWZmKHN0cnVjdCBjdWRiZ19pbml0ICpwZGJnX2luaXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoxNjM6aW50IGN4Z2I0X2N1ZGJnX2NvbGxlY3Qoc3RydWN0IGFkYXB0ZXIgKmFkYXAsIHZvaWQgKmJ1ZiwgdTMyICpidWZfc2l6ZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMTY0LVxcdFxcdFxcdHUzMiBmbGFnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIxOS1cXHRpZiAoZmxhZyBcXHUwMDI2IENYR0I0X0VUSF9EVU1QX0hXKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjA6XFx0XFx0Y3hnYjRfY3VkYmdfY29sbGVjdF9lbnRpdHkoXFx1MDAyNmN1ZGJnX2luaXQsIFxcdTAwMjZkYmdfYnVmZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIxOlxcdFxcdFxcdFxcdFxcdCAgIGN4Z2I0X2NvbGxlY3RfaHdfZHVtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjIyOlxcdFxcdFxcdFxcdFxcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9od19kdW1wKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjIzLVxcdFxcdFxcdFxcdFxcdCAgIGJ1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMjYtXFx0aWYgKGZsYWcgXFx1MDAyNiBDWEdCNF9FVEhfRFVNUF9NRU0pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIyNzpcXHRcXHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcXHUwMDI2Y3VkYmdfaW5pdCwgXFx1MDAyNmRiZ19idWZmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMjg6XFx0XFx0XFx0XFx0XFx0ICAgY3hnYjRfY29sbGVjdF9tZW1fZHVtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjI5OlxcdFxcdFxcdFxcdFxcdCAgIEFSUkFZX1NJWkUoY3hnYjRfY29sbGVjdF9tZW1fZHVtcCksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTIzMC1cXHRcXHRcXHRcXHRcXHQgICBidWYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjMzLVxcdGlmIChmbGFnIFxcdTAwMjYgQ1hHQjRfRVRIX0RVTVBfRkxBU0gpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjIzNDpcXHRcXHRjeGdiNF9jdWRiZ19jb2xsZWN0X2VudGl0eShcXHUwMDI2Y3VkYmdfaW5pdCwgXFx1MDAyNmRiZ19idWZmLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzU6XFx0XFx0XFx0XFx0XFx0ICAgY3hnYjRfY29sbGVjdF9mbGFzaF9kdW1wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyMzY6XFx0XFx0XFx0XFx0XFx0ICAgQVJSQVlfU0laRShjeGdiNF9jb2xsZWN0X2ZsYXNoX2R1bXApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yMzctXFx0XFx0XFx0XFx0XFx0ICAgYnVmLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI0OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6MjQ5OnZvaWQgY3hnYjRfaW5pdF9ldGh0b29sX2R1bXAoc3RydWN0IGFkYXB0ZXIgKmFkYXB0ZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNTY6c3RhdGljIGludCBjeGdiNF9jdWRiZ192bWNvcmVkZF9jb2xsZWN0KHN0cnVjdCB2bWNvcmVkZF9kYXRhICpkYXRhLCB2b2lkICpidWYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI1Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjYwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNjE6XFx0cmV0dXJuIGN4Z2I0X2N1ZGJnX2NvbGxlY3QoYWRhcCwgYnVmLCBcXHUwMDI2bGVuLCBDWEdCNF9FVEhfRFVNUF9BTEwpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNjItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jOjI2NDppbnQgY3hnYjRfY3VkYmdfdm1jb3JlX2FkZF9kdW1wKHN0cnVjdCBhZGFwdGVyICphZGFwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYy0yNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5jLTI3NC1cXHRzbnByaW50ZihkYXRhLVxcdTAwM2VkdW1wX25hbWUsIHNpemVvZihkYXRhLVxcdTAwM2VkdW1wX25hbWUpLCBcXFwiJXNfJXNcXFwiLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuYzoyNzU6XFx0XFx0IGN4Z2I0X2RyaXZlcl9uYW1lLCBhZGFwLVxcdTAwM2VuYW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmM6Mjc2OlxcdGRhdGEtXFx1MDAzZXZtY29yZWRkX2NhbGxiYWNrID0gY3hnYjRfY3VkYmdfdm1jb3JlZGRfY29sbGVjdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmMtMjc3LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oPTE3PXR5cGVkZWYgaW50ICgqY3VkYmdfY29sbGVjdF9jYWxsYmFja190KShzdHJ1Y3QgY3VkYmdfaW5pdCAqcGRiZ19pbml0LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTIwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDoyMTpzdHJ1Y3QgY3hnYjRfY29sbGVjdF9lbnRpdHkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC0yMi1cXHRlbnVtIGN1ZGJnX2RiZ19lbnRpdHlfdHlwZSBlbnRpdHk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmg9MjY9ZW51bSBDWEdCNF9FVEhUT09MX0RVTVBfRkxBR1Mge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaDozNTp1MzIgY3hnYjRfZ2V0X2R1bXBfbGVuZ3RoKHN0cnVjdCBhZGFwdGVyICphZGFwLCB1MzIgZmxhZyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM2OmludCBjeGdiNF9jdWRiZ19jb2xsZWN0KHN0cnVjdCBhZGFwdGVyICphZGFwLCB2b2lkICpidWYsIHUzMiAqYnVmX3NpemUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oLTM3LVxcdFxcdFxcdHUzMiBmbGFnKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2N1ZGJnLmg6Mzg6dm9pZCBjeGdiNF9pbml0X2V0aHRvb2xfZHVtcChzdHJ1Y3QgYWRhcHRlciAqYWRhcHRlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9jdWRiZy5oOjM5OmludCBjeGdiNF9jdWRiZ192bWNvcmVfYWRkX2R1bXAoc3RydWN0IGFkYXB0ZXIgKmFkYXApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfY3VkYmcuaC00MC0jZW5kaWYgLyogX19DWEdCNF9DVURCR19IX18gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk6I2luY2x1ZGUgXFxcImN4Z2I0LmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM9MTM9Y29uc3QgY2hhciAqIGNvbnN0IGRjYl92ZXJfYXJyYXlbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyMjpzdGF0aWMgaW5saW5lIGJvb2wgY3hnYjRfZGNiX3N0YXRlX3N5bmNlZChlbnVtIGN4Z2I0X2RjYl9zdGF0ZSBzdGF0ZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTIzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzItICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzozMzp2b2lkIGN4Z2I0X2RjYl9zdGF0ZV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0zNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDg6dm9pZCBjeGdiNF9kY2JfdmVyc2lvbl9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTk6c3RhdGljIHZvaWQgY3hnYjRfZGNiX2NsZWFudXBfYXBwcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy05OC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjk5OnZvaWQgY3hnYjRfZGNiX3Jlc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xMDAte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTAxOlxcdGN4Z2I0X2RjYl9jbGVhbnVwX2FwcHMoZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEwMjpcXHRjeGdiNF9kY2Jfc3RhdGVfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTAzLX1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTA5LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTEwOnN0YXRpYyBpbmxpbmUgdm9pZCBjeGdiNF9kY2JfdXBkYXRlX3N1cHBvcnQoc3RydWN0IHBvcnRfZGNiX2luZm8gKmRjYilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTExMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEyNTp2b2lkIGN4Z2I0X2RjYl9zdGF0ZV9mc20oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjEyNjpcXHRcXHRcXHQgZW51bSBjeGdiNF9kY2Jfc3RhdGVfaW5wdXQgdHJhbnNpdGlvbl90bylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEyNy17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTEzMC1cXHRzdHJ1Y3QgYWRhcHRlciAqYWRhcCA9IHBpLVxcdTAwM2VhZGFwdGVyO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MTMxOlxcdGVudW0gY3hnYjRfZGNiX3N0YXRlIGN1cnJlbnRfc3RhdGUgPSBkY2ItXFx1MDAzZXN0YXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMTMyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xODAtXFx0XFx0XFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoxODE6XFx0XFx0XFx0Y3hnYjRfZGNiX3VwZGF0ZV9zdXBwb3J0KGRjYik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0xODItXFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMTktXFx0XFx0XFx0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzoyMjA6XFx0XFx0XFx0Y3hnYjRfZGNiX3Jlc2V0KGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yMjEtXFx0XFx0XFx0ZGNiLVxcdTAwM2VzdGF0ZSA9IENYR0I0X0RDQl9TVEFURV9GV19JTkNPTVBMRVRFO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNjEtYmFkX3N0YXRlX2lucHV0OlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjYyOlxcdGRldl9lcnIoYWRhcC1cXHUwMDNlcGRldl9kZXYsIFxcXCJjeGdiNF9kY2Jfc3RhdGVfZnNtOiBpbGxlZ2FsIGlucHV0IHN5bWJvbCAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI2My1cXHRcXHR0cmFuc2l0aW9uX3RvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjY2LWJhZF9zdGF0ZV90cmFuc2l0aW9uOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjY3OlxcdGRldl9lcnIoYWRhcC1cXHUwMDNlcGRldl9kZXYsIFxcXCJjeGdiNF9kY2Jfc3RhdGVfZnNtOiBiYWQgc3RhdGUgdHJhbnNpdGlvbiwgc3RhdGUgPSAlZCwgaW5wdXQgPSAlZFxcXFxuXFxcIixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI2OC1cXHRcXHRjdXJyZW50X3N0YXRlLCB0cmFuc2l0aW9uX3RvKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMjcyLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6MjczOnZvaWQgY3hnYjRfZGNiX2hhbmRsZV9md191cGRhdGUoc3RydWN0IGFkYXB0ZXIgKmFkYXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yNzQtXFx0XFx0XFx0XFx0Y29uc3Qgc3RydWN0IGZ3X3BvcnRfY21kICpwY21kKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy0yODctXFx0aWYgKGRjYl90eXBlID09IEZXX1BPUlRfRENCX1RZUEVfQ09OVFJPTCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6Mjg4OlxcdFxcdGVudW0gY3hnYjRfZGNiX3N0YXRlX2lucHV0IGlucHV0ID1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTI4OS1cXHRcXHRcXHQoKHBjbWQtXFx1MDAzZXUuZGNiLmNvbnRyb2wuYWxsX3N5bmNkX3BrZCBcXHUwMDI2XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTMxMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjMxMzpcXHRcXHRjeGdiNF9kY2Jfc3RhdGVfZnNtKGRldiwgaW5wdXQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtMzE0LVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDEwLSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDExOnN0YXRpYyB1OCBjeGdiNF9nZXRzdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDEyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDE5LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDIwOnN0YXRpYyB1OCBjeGdiNF9zZXRzdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1OCBlbmFibGVkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDIxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NDM4OnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBndGNjZmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDM5LVxcdFxcdFxcdCAgICAgdTggKnByaW9fdHlwZSwgdTggKnBnaWQsIHU4ICpid19wZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQ4MjpzdGF0aWMgdm9pZCBjeGdiNF9nZXRwZ3RjY2ZnX3R4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCB0YyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4My1cXHRcXHRcXHRcXHR1OCAqcHJpb190eXBlLCB1OCAqcGdpZCwgdTggKmJ3X3BlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNDg2LVxcdC8qIHRjIDAgaXMgd3JpdHRlbiBhdCBNU0IgcG9zaXRpb24gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jOjQ4NzpcXHRyZXR1cm4gY3hnYjRfZ2V0cGd0Y2NmZyhkZXYsICg3IC0gdGMpLCBwcmlvX3R5cGUsIHBnaWQsIGJ3X3BlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ4OC1cXHRcXHRcXHRcXHR1cF90Y19tYXAsIDEpO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0OTI6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGd0Y2NmZ19yeChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgdGMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTMtXFx0XFx0XFx0XFx0dTggKnByaW9fdHlwZSwgdTggKnBnaWQsIHU4ICpid19wZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2I0L2N4Z2I0X2RjYi5jLTQ5Ni1cXHQvKiB0YyAwIGlzIHdyaXR0ZW4gYXQgTVNCIHBvc2l0aW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo0OTc6XFx0cmV0dXJuIGN4Z2I0X2dldHBndGNjZmcoZGV2LCAoNyAtIHRjKSwgcHJpb190eXBlLCBwZ2lkLCBid19wZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy00OTgtXFx0XFx0XFx0XFx0dXBfdGNfbWFwLCAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTAxOnN0YXRpYyB2b2lkIGN4Z2I0X3NldHBndGNjZmdfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHRjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTAyLVxcdFxcdFxcdFxcdHU4IHByaW9fdHlwZSwgdTggcGdpZCwgdTggYndfcGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01NjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1NjQ6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGdid2djZmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHBnaWQsIHU4ICpid19wZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01NjUtXFx0XFx0XFx0ICAgICAgaW50IGxvY2FsKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01ODctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYzo1ODg6c3RhdGljIHZvaWQgY3hnYjRfZ2V0cGdid2djZmdfdHgoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHBnaWQsIHU4ICpid19wZXIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01ODkte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTkwOlxcdHJldHVybiBjeGdiNF9nZXRwZ2J3Z2NmZyhkZXYsIHBnaWQsIGJ3X3BlciwgMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiNC9jeGdiNF9kY2IuYy01OTEtfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmM6NTkzOnN0YXRpYyB2b2lkIGN4Z2I0X2dldHBnYndnY2ZnX3J4KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBwZ2lkLCB1OCAqYndfcGVyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2NoZWxzaW8vY3hnYjQvY3hnYjRfZGNiLmMtNTk0LXtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjZUMTk6MTM6NTkuNzcyOTQ4MTg4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzI4NTE4NTEzNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIENYR0I0IERyaXZlciBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGN4Z2I0YCBkcml2ZXIsIHdoaWNoIGZyb20gd2hhdCBJIHNlZSwgaXMgdGhlIGRyaXZlciBmb3IgQ2hlbHNpbyBUNC9UNS9UNiBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXJzLiBUaGUga2V5IHRoaW5nIGlzLCB0aGVyZSdzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGlzIHRoaW5nIHdpdGhpbiB0aGUga2VybmVsIHRyZWUuIFRoYXQgaW1tZWRpYXRlbHkgcmFpc2VzIGEgZmxhZyBmb3IgbWUuIFRoZSBwYXRjaCBzcGVjaWZpY2FsbHkgZm9jdXNlcyBvbiBgY3hnYjRfdGNfZmxvd2VyLmNgLCB3aGljaCwgYXMgdGhlIG5hbWUgc3VnZ2VzdHMsIGhhbmRsZXMgdGhlIFRDIGZsb3dlciBvZmZsb2FkIGltcGxlbWVudGF0aW9uICpzcGVjaWZpYyogdG8gdGhpcyBoYXJkd2FyZS5cblxuR2l2ZW4gdGhpcyBoYXJkd2FyZSBkZXBlbmRlbmN5LCBhbmQgdGhlIGZhY3QgdGhhdCB3ZSBjYW4ndCBlbXVsYXRlIHRoaXMgaGFyZHdhcmUgaW4gYW4gZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVSwgbXkgaW5pdGlhbCBndXQgZmVlbGluZyBpcyB0aGF0IGl0J3MgcHJvYmFibHkgbm90IHdvcnRoIHRoZSB0aW1lIHRvIGZ1enogdXNpbmcgc3l6a2FsbGVyLlxuXG5MZXQncyBkbyBhIHF1aWNrIGRvdWJsZS1jaGVjayB0aG91Z2guIFdlIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBzdXJlLiBXZSBzaG91bGQgc2VlIGlmIHRoZXJlJ3MgKmFueSogcG9zc2libGUgcGF0aC4gTGV0J3Mgc2VlLi4uIHRoZSByZWxldmFudCBjb2RlIGlzIGJ1cmllZCBpbnNpZGUgYGN4Z2I0X3Byb2Nlc3NfZmxvd19tYXRjaGAuIE9rYXksIHRoYXQncyBjYWxsZWQgZnJvbSBgY3hnYjRfdmFsaWRhdGVfZmxvd19tYXRjaGAsIHdoaWNoIGlzIGluIHR1cm4gY2FsbGVkIGZyb20gYGN4Z2I0X2Zsb3dfcnVsZV9yZXBsYWNlYCwgd2hpY2ggaXMgdGhlbiBjYWxsZWQgZnJvbSBgY3hnYjRfc2V0dXBfdGNfZmxvd2VyYC4gVGhlbiBgY3hnYjRfc2V0dXBfdGNfZmxvd2VyYCBpcyBjYWxsZWQgZnJvbSBgY3hnYjRfc2V0dXBfdGNfY2xzX3UzMmAgb3Igc29tZXRoaW5nIHNpbWlsYXIsIHdoaWNoIGFwcGVhcnMgdG8gYmUgZXRodG9vbCBvciBUQyBjYWxsYmFja3MgZm9yIHRoZSBuZXR3b3JrIGRldmljZS5cblxuQWxyaWdodCwgc28gdG8gZXZlbiAqZ2V0KiBhIG5ldHdvcmsgZGV2aWNlIHdpdGggdGhlc2UgY2FsbGJhY2tzLCB3ZSdyZSBkZXBlbmRlbnQgb24gdGhlIGBjeGdiNGAgZHJpdmVyIHByb2Jpbmcgc3VjY2Vzc2Z1bGx5LiBUaGUgcHJvYmUgZnVuY3Rpb24gaXMgYGN4Z2I0X2luaXRfb25lYCBpbiBgY3hnYjRfbWFpbi5jYCAtLSBhIFBDSSBkcml2ZXIgcHJvYmUgZnVuY3Rpb24uIEFuZCBoZXJlJ3MgdGhlIGtpY2tlcjogV2l0aG91dCBhIHJlYWwgQ2hlbHNpbyBQQ0kgZGV2aWNlIHBsdWdnZWQgaW4sIHRoYXQgcHJvYmUgZnVuY3Rpb24gd2lsbCAqbmV2ZXIqIGJlIGNhbGxlZC4gTWVhbmluZyB0aGUgYXNzb2NpYXRlZCBuZXR3b3JrIGRldmljZSB3aWxsIG5ldmVyIGJlIGNyZWF0ZWQuIFdoaWNoIG1lYW5zIHRoaXMgZmxvd2VyIGNvZGUgaXMgdW5yZWFjaGFibGUuXG5cbk9rYXksIHRoYXQncyBkZWZpbml0aXZlLiBCYXNlZCBvbiB0aGlzIGRlZXBlciBhbmFseXNpcywgdGhlIGNvZGUgaXMgaW5kZWVkIHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuXG5cbkknbSBnb2luZyB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5NzQ4LCJPdXRwdXRUb2tlbnMiOjExMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yNlQxOToxNDowNy4wNTgxMzU2MDJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2MDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBUQyBmbG93ZXIgb2ZmbG9hZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhlIENoZWxzaW8gY3hnYjQgaGFyZHdhcmUgZHJpdmVyLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBDaGVsc2lvIFQ0L1Q1L1Q2IEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMgdG8gcHJvYmUgYW5kIGNyZWF0ZSB0aGUgbmV0d29yayBkZXZpY2VzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFRDIGZsb3dlciBvZmZsb2FkIGltcGxlbWVudGF0aW9uIGZvciB0aGUgQ2hlbHNpbyBjeGdiNCBoYXJkd2FyZSBkcml2ZXIuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIENoZWxzaW8gVDQvVDUvVDYgR2lnYWJpdCBFdGhlcm5ldCBhZGFwdGVycyB0byBwcm9iZSBhbmQgY3JlYXRlIHRoZSBuZXR3b3JrIGRldmljZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowdc9b9[1] Phase: Running StartedAt: 2026-06-26 19:14:18 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdc9b9[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-06-26 19:14:18 +0000 UTC FinishedAt: 2026-06-26 19:14:24 +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,}