Name: series-workflow2ds4x Phase: Failed StartedAt: 2026-08-29 10:07:07 +0000 UTC FinishedAt: 2026-08-29 10:09:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ds4x[0] Phase: Succeeded StartedAt: 2026-08-29 10:07:07 +0000 UTC FinishedAt: 2026-08-29 10:09:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ds4x[0].run-triage Phase: Succeeded StartedAt: 2026-08-29 10:07:07 +0000 UTC FinishedAt: 2026-08-29 10:09:22 +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+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDMyNzIyYTIyYTdmNzQwMDI3ZmUyMmZiMWQ0ZTdiZjA1MGFmY2NhNjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDowODoyNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmNcbmluZGV4IGFmYzUxNjA1OWI4OTcuLmJiZWJkMzNjOGE4ODMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xuQEAgLTgwLDYgJiM0Mzs4MCwzOSBAQCBzdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiM0MztpbnQgc3RtbWFjX3NldHVwX2VzdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdGltZXNwZWM2NCBjdXJyZW50X3RpbWUsIHRpbWU7XG4mIzQzO1x0a3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lO1xuJiM0MztcdHU2NCBjeWNsZV90aW1lO1xuJiM0MztcdGludCBlcnI7XG4mIzQzO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4mIzQzO1xuJiM0MztcdHByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoXHUwMDI2cHJpdi1cdTAwM2VwdHBfY2xvY2tfb3BzLCBcdTAwMjZjdXJyZW50X3RpbWUpO1xuJiM0MztcdGN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTtcbiYjNDM7XG4mIzQzO1x0dGltZS50dl9uc2VjID0gcHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF07XG4mIzQzO1x0dGltZS50dl9zZWMgPSBwcml2LVx1MDAzZWVzdC1cdTAwM2VidHJfcmVzZXJ2ZVsxXTtcbiYjNDM7XHRiYXNldGltZSA9IHRpbWVzcGVjNjRfdG9fa3RpbWUodGltZSk7XG4mIzQzO1xuJiM0MztcdGN5Y2xlX3RpbWUgPSAodTY0KXByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clsxXSAqIE5TRUNfUEVSX1NFQyAmIzQzOyBwcml2LVx1MDAzZWVzdC1cdTAwM2VjdHJbMF07XG4mIzQzO1xuJiM0MztcdHRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUoYmFzZXRpbWUsIGN1cnJlbnRfdGltZV9ucywgY3ljbGVfdGltZSk7XG4mIzQzO1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzBdID0gKHUzMil0aW1lLnR2X25zZWM7XG4mIzQzO1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcbiYjNDM7XG4mIzQzO1x0ZXJyID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi1cdTAwM2Vlc3QsXG4mIzQzO1x0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4mIzQzO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZwcml2LVx1MDAzZWVzdF9sb2NrKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byByZS1jb25maWd1cmUgRVNUXFxuXCYjMzQ7KTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGVycjtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgdm9pZCBlc3RfaXJxX3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdFx0ICAgc3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyAqeCwgdTMyIHR4cWNudClcbiB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oXG5pbmRleCBmNzAyMjFjOWM4NGFmLi5mNjIwZDMzMzFjMmNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmhcbkBAIC02NSwzICYjNDM7NjUsNSBAQFxuICNkZWZpbmUgRVNUX0dDTF9EQVRBXHRcdFx0MHgwMDAwMDAzNFxuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgZHdtYWM1MTBfZXN0X29wcztcbiYjNDM7XG4mIzQzO2ludCBzdG1tYWNfc2V0dXBfZXN0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbmluZGV4IGQ1NzYwNTljMDRkZjkuLmIzMDAzNjQyODE4OGMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtNDgsNiAmIzQzOzQ4LDcgQEBcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWNfcHRwLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWNfZnBlLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDtzdG1tYWNfZXN0LmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGNzLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWNfeGRwLmhcJiMzNDtcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9yZXNldC5oXHUwMDNlXG5AQCAtNDE1MywxMSAmIzQzOzQxNTQsMjIgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRyZXQgPSBzdG1tYWNfaHdfc2V0dXAoZGV2KTtcbiBcdGlmIChyZXQgXHUwMDNjIDApIHtcbiBcdFx0bmV0ZGV2X2Vycihwcml2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IEh3IHNldHVwIGZhaWxlZFxcblwmIzM0OywgX19mdW5jX18pO1xuLVx0XHRnb3RvIGluaXRfZXJyb3I7XG4mIzQzO1x0XHRyZXR1cm4gcmV0O1xuIFx0fVxuIFxuIFx0c3RtbWFjX3NldHVwX3B0cChwcml2KTtcbiBcbiYjNDM7XHQvKiBUaGUgY29yZSBzb2Z0IHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIGNsZWFycyB0aGUgTVRMX0VTVFxuJiM0MztcdCAqIHJlZ2lzdGVycywgc28gcmUtYXBwbHkgdGhlIHRhcHJpbyBvZmZsb2FkIGFmdGVyIFBUUCBpcyB1cC5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAocHJpdi1cdTAwM2Vlc3QgXHUwMDI2XHUwMDI2IHByaXYtXHUwMDNlZXN0LVx1MDAzZWVuYWJsZSkge1xuJiM0MztcdFx0cmV0ID0gc3RtbWFjX3NldHVwX2VzdChwcml2KTtcbiYjNDM7XHRcdGlmIChyZXQgXHUwMDNjIDApIHtcbiYjNDM7XHRcdFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlZW5hYmxlID0gZmFsc2U7XG4mIzQzO1x0XHRcdHJldHVybiByZXQ7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiBcdHN0bW1hY19pbml0X2NvYWxlc2NlKHByaXYpO1xuIFxuIFx0cGh5bGlua19zdGFydChwcml2LVx1MDAzZXBoeWxpbmspO1xuQEAgLTQxODEsNyAmIzQzOzQxOTMsNyBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0aHJ0aW1lcl9jYW5jZWwoXHUwMDI2cHJpdi1cdTAwM2VkbWFfY29uZi50eF9xdWV1ZVtjaGFuXS50eHRpbWVyKTtcbiBcbiBcdHN0bW1hY19yZWxlYXNlX3B0cChwcml2KTtcbi1pbml0X2Vycm9yOlxuJiM0MztcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuY1xuaW5kZXggOTYwMjQ5OTYwMDA0Yy4uOTE3ZWY3ZGRjYWU2MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jXG5AQCAtOCw2ICYjNDM7OCw3IEBAXG4gICBBdXRob3I6IFJheWFnb25kIEtva2F0YW51ciBcdTAwM2NyYXlhZ29uZEB2YXlhdnlhbGFicy5jb21cdTAwM2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICNpbmNsdWRlIFwmIzM0O3N0bW1hYy5oXCYjMzQ7XG4mIzQzOyNpbmNsdWRlIFwmIzM0O3N0bW1hY19lc3QuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3N0bW1hY19wdHAuaFwmIzM0O1xuIFxuICNkZWZpbmUgUFRQX1NBRkVfVElNRV9PRkZTRVRfTlNcdDUwMDAwMFxuQEAgLTU1LDcgJiM0Mzs1Niw2IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2FkanVzdF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpXG4gXHR1MzIgcXVvdGllbnQsIHJlbWluZGVyO1xuIFx0aW50IG5lZ19hZGogPSAwO1xuIFx0Ym9vbCB4bWFjLCBlc3RfcnN0ID0gZmFsc2U7XG4tXHRpbnQgcmV0O1xuIFxuIFx0eG1hYyA9IGR3bWFjX2lzX3htYWMocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSk7XG4gXG5AQCAtODQsMzAgJiM0Mzs4NCw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2FkanVzdF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpXG4gXG4gXHQvKiBDYWxjdWxhdGUgbmV3IGJhc2V0aW1lIGFuZCByZS1jb25maWd1cmVkIEVTVCBhZnRlciBQVFAgdGltZSBhZGp1c3QuICovXG4gXHRpZiAoZXN0X3JzdCkge1xuLVx0XHRzdHJ1Y3QgdGltZXNwZWM2NCBjdXJyZW50X3RpbWUsIHRpbWU7XG4tXHRcdGt0aW1lX3QgY3VycmVudF90aW1lX25zLCBiYXNldGltZTtcbi1cdFx0dTY0IGN5Y2xlX3RpbWU7XG4tXG4tXHRcdG11dGV4X2xvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4tXHRcdHByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoXHUwMDI2cHJpdi1cdTAwM2VwdHBfY2xvY2tfb3BzLCBcdTAwMjZjdXJyZW50X3RpbWUpO1xuLVx0XHRjdXJyZW50X3RpbWVfbnMgPSB0aW1lc3BlYzY0X3RvX2t0aW1lKGN1cnJlbnRfdGltZSk7XG4tXHRcdHRpbWUudHZfbnNlYyA9IHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0cl9yZXNlcnZlWzBdO1xuLVx0XHR0aW1lLnR2X3NlYyA9IHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0cl9yZXNlcnZlWzFdO1xuLVx0XHRiYXNldGltZSA9IHRpbWVzcGVjNjRfdG9fa3RpbWUodGltZSk7XG4tXHRcdGN5Y2xlX3RpbWUgPSAodTY0KXByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clsxXSAqIE5TRUNfUEVSX1NFQyAmIzQzO1xuLVx0XHRcdCAgICAgcHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzBdO1xuLVx0XHR0aW1lID0gc3RtbWFjX2NhbGNfdGFzX2Jhc2V0aW1lKGJhc2V0aW1lLFxuLVx0XHRcdFx0XHRcdGN1cnJlbnRfdGltZV9ucyxcbi1cdFx0XHRcdFx0XHRjeWNsZV90aW1lKTtcbi1cbi1cdFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzBdID0gKHUzMil0aW1lLnR2X25zZWM7XG4tXHRcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clsxXSA9ICh1MzIpdGltZS50dl9zZWM7XG4gXHRcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWVuYWJsZSA9IHRydWU7XG4tXHRcdHJldCA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXHUwMDNlZXN0LFxuLVx0XHRcdFx0XHQgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY2xrX3B0cF9yYXRlKTtcbi1cdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnByaXYtXHUwMDNlZXN0X2xvY2spO1xuLVx0XHRpZiAocmV0KVxuLVx0XHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byBjb25maWd1cmUgRVNUXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdHN0bW1hY19zZXR1cF9lc3QocHJpdik7XG4gXHR9XG4gXG4gXHRyZXR1cm4gMDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY190Yy5jXG5pbmRleCAxNGNhYmU3NmU1M2VjLi5iNDFkZjMxN2Q3M2NjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY190Yy5jXG5AQCAtMTAsNiAmIzQzOzEwLDcgQEBcbiAjaW5jbHVkZSBcJiMzNDtkd21hYzQuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2R3bWFjNS5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7c3RtbWFjX2VzdC5oXCYjMzQ7XG4gXG4gc3RhdGljIHZvaWQgdGNfZmlsbF9hbGxfcGFzc19lbnRyeShzdHJ1Y3Qgc3RtbWFjX3RjX2VudHJ5ICplbnRyeSlcbiB7XG5AQCAtOTY4LDggJiM0Mzs5NjksNyBAQCBzdGF0aWMgaW50IHRjX3RhcHJpb19jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIHtcbiBcdHUzMiBzaXplLCB3aWQgPSBwcml2LVx1MDAzZWRtYV9jYXAuZXN0d2lkLCBkZXAgPSBwcml2LVx1MDAzZWRtYV9jYXAuZXN0ZGVwO1xuIFx0c3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrID0gcW9wdC1cdTAwM2VtcXByaW8uZXh0YWNrO1xuLVx0c3RydWN0IHRpbWVzcGVjNjQgdGltZSwgY3VycmVudF90aW1lLCBxb3B0X3RpbWU7XG4tXHRrdGltZV90IGN1cnJlbnRfdGltZV9ucztcbiYjNDM7XHRzdHJ1Y3QgdGltZXNwZWM2NCB0aW1lO1xuIFx0aW50IGksIHJldCA9IDA7XG4gXHR1NjQgY3RyO1xuIFxuQEAgLTEwNjksMzQgJiM0MzsxMDY5LDIzIEBAIHN0YXRpYyBpbnQgdGNfdGFwcmlvX2NvbmZpZ3VyZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHR9XG4gXG4gXHRtdXRleF9sb2NrKFx1MDAyNnByaXYtXHUwMDNlZXN0X2xvY2spO1xuLVx0LyogQWRqdXN0IGZvciByZWFsIHN5c3RlbSB0aW1lICovXG4tXHRwcml2LVx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFx1MDAyNnByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcywgXHUwMDI2Y3VycmVudF90aW1lKTtcbi1cdGN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTtcbi1cdHRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUocW9wdC1cdTAwM2ViYXNlX3RpbWUsIGN1cnJlbnRfdGltZV9ucyxcbi1cdFx0XHRcdFx0cW9wdC1cdTAwM2VjeWNsZV90aW1lKTtcbi1cbi1cdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcbiBcbi1cdHFvcHRfdGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC1cdTAwM2ViYXNlX3RpbWUpO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF0gPSAodTMyKXFvcHRfdGltZS50dl9uc2VjO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXFvcHRfdGltZS50dl9zZWM7XG4mIzQzO1x0dGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC1cdTAwM2ViYXNlX3RpbWUpO1xuJiM0MztcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0cl9yZXNlcnZlWzBdID0gKHUzMil0aW1lLnR2X25zZWM7XG4mIzQzO1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xuIFxuIFx0Y3RyID0gcW9wdC1cdTAwM2VjeWNsZV90aW1lO1xuIFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzBdID0gZG9fZGl2KGN0ciwgTlNFQ19QRVJfU0VDKTtcbiBcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clsxXSA9ICh1MzIpY3RyO1xuIFxuIFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNldGVyID0gcW9wdC1cdTAwM2VjeWNsZV90aW1lX2V4dGVuc2lvbjtcbi1cbiBcdHRjX3RhcHJpb19tYXBfbWF4c2R1X3R4cShwcml2LCBxb3B0KTtcbiBcbi1cdHJldCA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXHUwMDNlZXN0LFxuLVx0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4gXHRtdXRleF91bmxvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4tXHRpZiAocmV0KSB7XG4tXHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byBjb25maWd1cmUgRVNUXFxuXCYjMzQ7KTtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gc3RtbWFjX3NldHVwX2VzdChwcml2KTtcbiYjNDM7XHRpZiAocmV0KVxuIFx0XHRnb3RvIGRpc2FibGU7XG4tXHR9XG4gXG4gXHRyZXQgPSBzdG1tYWNfZnBlX21hcF9wcmVlbXB0aW9uX2NsYXNzKHByaXYsIHByaXYtXHUwMDNlZGV2LCBleHRhY2ssXG4gXHRcdFx0XHRcdCAgICAgIHFvcHQtXHUwMDNlbXFwcmlvLnByZWVtcHRpYmxlX3Rjcyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MDg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDMyNzIyYTIyYTdmNzQwMDI3ZmUyMmZiMWQ0ZTdiZjA1MGFmY2NhNjUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDowODoyNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYwppbmRleCBhZmM1MTYwNTliODk3Li5iYmViZDMzYzhhODgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jCkBAIC04MCw2ICYjNDM7ODAsMzkgQEAgc3RhdGljIGludCBlc3RfY29uZmlndXJlKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IHN0bW1hY19lc3QgKmNmZywKIAlyZXR1cm4gMDsKIH0KIAomIzQzO2ludCBzdG1tYWNfc2V0dXBfZXN0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKJiM0Mzt7CiYjNDM7CXN0cnVjdCB0aW1lc3BlYzY0IGN1cnJlbnRfdGltZSwgdGltZTsKJiM0MzsJa3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lOwomIzQzOwl1NjQgY3ljbGVfdGltZTsKJiM0MzsJaW50IGVycjsKJiM0MzsKJiM0MzsJbXV0ZXhfbG9jaygmYW1wO3ByaXYtJmd0O2VzdF9sb2NrKTsKJiM0MzsKJiM0MzsJcHJpdi0mZ3Q7cHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoJmFtcDtwcml2LSZndDtwdHBfY2xvY2tfb3BzLCAmYW1wO2N1cnJlbnRfdGltZSk7CiYjNDM7CWN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTsKJiM0MzsKJiM0MzsJdGltZS50dl9uc2VjID0gcHJpdi0mZ3Q7ZXN0LSZndDtidHJfcmVzZXJ2ZVswXTsKJiM0MzsJdGltZS50dl9zZWMgPSBwcml2LSZndDtlc3QtJmd0O2J0cl9yZXNlcnZlWzFdOwomIzQzOwliYXNldGltZSA9IHRpbWVzcGVjNjRfdG9fa3RpbWUodGltZSk7CiYjNDM7CiYjNDM7CWN5Y2xlX3RpbWUgPSAodTY0KXByaXYtJmd0O2VzdC0mZ3Q7Y3RyWzFdICogTlNFQ19QRVJfU0VDICYjNDM7IHByaXYtJmd0O2VzdC0mZ3Q7Y3RyWzBdOwomIzQzOwomIzQzOwl0aW1lID0gc3RtbWFjX2NhbGNfdGFzX2Jhc2V0aW1lKGJhc2V0aW1lLCBjdXJyZW50X3RpbWVfbnMsIGN5Y2xlX3RpbWUpOwomIzQzOwlwcml2LSZndDtlc3QtJmd0O2J0clswXSA9ICh1MzIpdGltZS50dl9uc2VjOwomIzQzOwlwcml2LSZndDtlc3QtJmd0O2J0clsxXSA9ICh1MzIpdGltZS50dl9zZWM7CiYjNDM7CiYjNDM7CWVyciA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtJmd0O2VzdCwKJiM0MzsJCQkJICAgcHJpdi0mZ3Q7cGxhdC0mZ3Q7Y2xrX3B0cF9yYXRlKTsKJiM0MzsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7cHJpdi0mZ3Q7ZXN0X2xvY2spOwomIzQzOwomIzQzOwlpZiAoZXJyKQomIzQzOwkJbmV0ZGV2X2Vycihwcml2LSZndDtkZXYsICYjMzQ7ZmFpbGVkIHRvIHJlLWNvbmZpZ3VyZSBFU1RcbiYjMzQ7KTsKJiM0MzsKJiM0MzsJcmV0dXJuIGVycjsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBlc3RfaXJxX3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICBzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzICp4LCB1MzIgdHhxY250KQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oCmluZGV4IGY3MDIyMWM5Yzg0YWYuLmY2MjBkMzMzMWMyY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmgKQEAgLTY1LDMgJiM0Mzs2NSw1IEBACiAjZGVmaW5lIEVTVF9HQ0xfREFUQQkJCTB4MDAwMDAwMzQKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZXN0X29wcyBkd21hYzUxMF9lc3Rfb3BzOwomIzQzOwomIzQzO2ludCBzdG1tYWNfc2V0dXBfZXN0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwppbmRleCBkNTc2MDU5YzA0ZGY5Li5iMzAwMzY0MjgxODhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTQ4LDYgJiM0Mzs0OCw3IEBACiAjaW5jbHVkZSAmIzM0O3N0bW1hY19wdHAuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3N0bW1hY19mcGUuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3N0bW1hYy5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0O3N0bW1hY19lc3QuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3N0bW1hY19wY3MuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3N0bW1hY194ZHAuaCYjMzQ7CiAjaW5jbHVkZSAmbHQ7bGludXgvcmVzZXQuaCZndDsKQEAgLTQxNTMsMTEgJiM0Mzs0MTU0LDIyIEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXJldCA9IHN0bW1hY19od19zZXR1cChkZXYpOwogCWlmIChyZXQgJmx0OyAwKSB7CiAJCW5ldGRldl9lcnIocHJpdi0mZ3Q7ZGV2LCAmIzM0OyVzOiBIdyBzZXR1cCBmYWlsZWRcbiYjMzQ7LCBfX2Z1bmNfXyk7Ci0JCWdvdG8gaW5pdF9lcnJvcjsKJiM0MzsJCXJldHVybiByZXQ7CiAJfQogCiAJc3RtbWFjX3NldHVwX3B0cChwcml2KTsKIAomIzQzOwkvKiBUaGUgY29yZSBzb2Z0IHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIGNsZWFycyB0aGUgTVRMX0VTVAomIzQzOwkgKiByZWdpc3RlcnMsIHNvIHJlLWFwcGx5IHRoZSB0YXByaW8gb2ZmbG9hZCBhZnRlciBQVFAgaXMgdXAuCiYjNDM7CSAqLwomIzQzOwlpZiAocHJpdi0mZ3Q7ZXN0ICZhbXA7JmFtcDsgcHJpdi0mZ3Q7ZXN0LSZndDtlbmFibGUpIHsKJiM0MzsJCXJldCA9IHN0bW1hY19zZXR1cF9lc3QocHJpdik7CiYjNDM7CQlpZiAocmV0ICZsdDsgMCkgewomIzQzOwkJCXByaXYtJmd0O2VzdC0mZ3Q7ZW5hYmxlID0gZmFsc2U7CiYjNDM7CQkJcmV0dXJuIHJldDsKJiM0MzsJCX0KJiM0MzsJfQomIzQzOwogCXN0bW1hY19pbml0X2NvYWxlc2NlKHByaXYpOwogCiAJcGh5bGlua19zdGFydChwcml2LSZndDtwaHlsaW5rKTsKQEAgLTQxODEsNyAmIzQzOzQxOTMsNyBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJaHJ0aW1lcl9jYW5jZWwoJmFtcDtwcml2LSZndDtkbWFfY29uZi50eF9xdWV1ZVtjaGFuXS50eHRpbWVyKTsKIAogCXN0bW1hY19yZWxlYXNlX3B0cChwcml2KTsKLWluaXRfZXJyb3I6CiYjNDM7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jCmluZGV4IDk2MDI0OTk2MDAwNGMuLjkxN2VmN2RkY2FlNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmMKQEAgLTgsNiAmIzQzOzgsNyBAQAogICBBdXRob3I6IFJheWFnb25kIEtva2F0YW51ciAmbHQ7cmF5YWdvbmRAdmF5YXZ5YWxhYnMuY29tJmd0OwogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNpbmNsdWRlICYjMzQ7c3RtbWFjLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7c3RtbWFjX2VzdC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7c3RtbWFjX3B0cC5oJiMzNDsKIAogI2RlZmluZSBQVFBfU0FGRV9USU1FX09GRlNFVF9OUwk1MDAwMDAKQEAgLTU1LDcgJiM0Mzs1Niw2IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2FkanVzdF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpCiAJdTMyIHF1b3RpZW50LCByZW1pbmRlcjsKIAlpbnQgbmVnX2FkaiA9IDA7CiAJYm9vbCB4bWFjLCBlc3RfcnN0ID0gZmFsc2U7Ci0JaW50IHJldDsKIAogCXhtYWMgPSBkd21hY19pc194bWFjKHByaXYtJmd0O3BsYXQtJmd0O2NvcmVfdHlwZSk7CiAKQEAgLTg0LDMwICYjNDM7ODQsOCBAQCBzdGF0aWMgaW50IHN0bW1hY19hZGp1c3RfdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKQogCiAJLyogQ2FsY3VsYXRlIG5ldyBiYXNldGltZSBhbmQgcmUtY29uZmlndXJlZCBFU1QgYWZ0ZXIgUFRQIHRpbWUgYWRqdXN0LiAqLwogCWlmIChlc3RfcnN0KSB7Ci0JCXN0cnVjdCB0aW1lc3BlYzY0IGN1cnJlbnRfdGltZSwgdGltZTsKLQkJa3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lOwotCQl1NjQgY3ljbGVfdGltZTsKLQotCQltdXRleF9sb2NrKCZhbXA7cHJpdi0mZ3Q7ZXN0X2xvY2spOwotCQlwcml2LSZndDtwdHBfY2xvY2tfb3BzLmdldHRpbWU2NCgmYW1wO3ByaXYtJmd0O3B0cF9jbG9ja19vcHMsICZhbXA7Y3VycmVudF90aW1lKTsKLQkJY3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpOwotCQl0aW1lLnR2X25zZWMgPSBwcml2LSZndDtlc3QtJmd0O2J0cl9yZXNlcnZlWzBdOwotCQl0aW1lLnR2X3NlYyA9IHByaXYtJmd0O2VzdC0mZ3Q7YnRyX3Jlc2VydmVbMV07Ci0JCWJhc2V0aW1lID0gdGltZXNwZWM2NF90b19rdGltZSh0aW1lKTsKLQkJY3ljbGVfdGltZSA9ICh1NjQpcHJpdi0mZ3Q7ZXN0LSZndDtjdHJbMV0gKiBOU0VDX1BFUl9TRUMgJiM0MzsKLQkJCSAgICAgcHJpdi0mZ3Q7ZXN0LSZndDtjdHJbMF07Ci0JCXRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUoYmFzZXRpbWUsCi0JCQkJCQljdXJyZW50X3RpbWVfbnMsCi0JCQkJCQljeWNsZV90aW1lKTsKLQotCQlwcml2LSZndDtlc3QtJmd0O2J0clswXSA9ICh1MzIpdGltZS50dl9uc2VjOwotCQlwcml2LSZndDtlc3QtJmd0O2J0clsxXSA9ICh1MzIpdGltZS50dl9zZWM7CiAJCXByaXYtJmd0O2VzdC0mZ3Q7ZW5hYmxlID0gdHJ1ZTsKLQkJcmV0ID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi0mZ3Q7ZXN0LAotCQkJCQkgICBwcml2LSZndDtwbGF0LSZndDtjbGtfcHRwX3JhdGUpOwotCQltdXRleF91bmxvY2soJmFtcDtwcml2LSZndDtlc3RfbG9jayk7Ci0JCWlmIChyZXQpCi0JCQluZXRkZXZfZXJyKHByaXYtJmd0O2RldiwgJiMzNDtmYWlsZWQgdG8gY29uZmlndXJlIEVTVFxuJiMzNDspOwomIzQzOwkJc3RtbWFjX3NldHVwX2VzdChwcml2KTsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY190Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMKaW5kZXggMTRjYWJlNzZlNTNlYy4uYjQxZGYzMTdkNzNjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMKQEAgLTEwLDYgJiM0MzsxMCw3IEBACiAjaW5jbHVkZSAmIzM0O2R3bWFjNC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7ZHdtYWM1LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtzdG1tYWMuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDtzdG1tYWNfZXN0LmgmIzM0OwogCiBzdGF0aWMgdm9pZCB0Y19maWxsX2FsbF9wYXNzX2VudHJ5KHN0cnVjdCBzdG1tYWNfdGNfZW50cnkgKmVudHJ5KQogewpAQCAtOTY4LDggJiM0Mzs5NjksNyBAQCBzdGF0aWMgaW50IHRjX3RhcHJpb19jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogewogCXUzMiBzaXplLCB3aWQgPSBwcml2LSZndDtkbWFfY2FwLmVzdHdpZCwgZGVwID0gcHJpdi0mZ3Q7ZG1hX2NhcC5lc3RkZXA7CiAJc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrID0gcW9wdC0mZ3Q7bXFwcmlvLmV4dGFjazsKLQlzdHJ1Y3QgdGltZXNwZWM2NCB0aW1lLCBjdXJyZW50X3RpbWUsIHFvcHRfdGltZTsKLQlrdGltZV90IGN1cnJlbnRfdGltZV9uczsKJiM0MzsJc3RydWN0IHRpbWVzcGVjNjQgdGltZTsKIAlpbnQgaSwgcmV0ID0gMDsKIAl1NjQgY3RyOwogCkBAIC0xMDY5LDM0ICYjNDM7MTA2OSwyMyBAQCBzdGF0aWMgaW50IHRjX3RhcHJpb19jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCX0KIAogCW11dGV4X2xvY2soJmFtcDtwcml2LSZndDtlc3RfbG9jayk7Ci0JLyogQWRqdXN0IGZvciByZWFsIHN5c3RlbSB0aW1lICovCi0JcHJpdi0mZ3Q7cHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoJmFtcDtwcml2LSZndDtwdHBfY2xvY2tfb3BzLCAmYW1wO2N1cnJlbnRfdGltZSk7Ci0JY3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpOwotCXRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUocW9wdC0mZ3Q7YmFzZV90aW1lLCBjdXJyZW50X3RpbWVfbnMsCi0JCQkJCXFvcHQtJmd0O2N5Y2xlX3RpbWUpOwotCi0JcHJpdi0mZ3Q7ZXN0LSZndDtidHJbMF0gPSAodTMyKXRpbWUudHZfbnNlYzsKLQlwcml2LSZndDtlc3QtJmd0O2J0clsxXSA9ICh1MzIpdGltZS50dl9zZWM7CiAKLQlxb3B0X3RpbWUgPSBrdGltZV90b190aW1lc3BlYzY0KHFvcHQtJmd0O2Jhc2VfdGltZSk7Ci0JcHJpdi0mZ3Q7ZXN0LSZndDtidHJfcmVzZXJ2ZVswXSA9ICh1MzIpcW9wdF90aW1lLnR2X25zZWM7Ci0JcHJpdi0mZ3Q7ZXN0LSZndDtidHJfcmVzZXJ2ZVsxXSA9ICh1MzIpcW9wdF90aW1lLnR2X3NlYzsKJiM0MzsJdGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC0mZ3Q7YmFzZV90aW1lKTsKJiM0MzsJcHJpdi0mZ3Q7ZXN0LSZndDtidHJfcmVzZXJ2ZVswXSA9ICh1MzIpdGltZS50dl9uc2VjOwomIzQzOwlwcml2LSZndDtlc3QtJmd0O2J0cl9yZXNlcnZlWzFdID0gKHUzMil0aW1lLnR2X3NlYzsKIAogCWN0ciA9IHFvcHQtJmd0O2N5Y2xlX3RpbWU7CiAJcHJpdi0mZ3Q7ZXN0LSZndDtjdHJbMF0gPSBkb19kaXYoY3RyLCBOU0VDX1BFUl9TRUMpOwogCXByaXYtJmd0O2VzdC0mZ3Q7Y3RyWzFdID0gKHUzMiljdHI7CiAKIAlwcml2LSZndDtlc3QtJmd0O3RlciA9IHFvcHQtJmd0O2N5Y2xlX3RpbWVfZXh0ZW5zaW9uOwotCiAJdGNfdGFwcmlvX21hcF9tYXhzZHVfdHhxKHByaXYsIHFvcHQpOwogCi0JcmV0ID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi0mZ3Q7ZXN0LAotCQkJCSAgIHByaXYtJmd0O3BsYXQtJmd0O2Nsa19wdHBfcmF0ZSk7CiAJbXV0ZXhfdW5sb2NrKCZhbXA7cHJpdi0mZ3Q7ZXN0X2xvY2spOwotCWlmIChyZXQpIHsKLQkJbmV0ZGV2X2Vycihwcml2LSZndDtkZXYsICYjMzQ7ZmFpbGVkIHRvIGNvbmZpZ3VyZSBFU1RcbiYjMzQ7KTsKJiM0MzsKJiM0MzsJcmV0ID0gc3RtbWFjX3NldHVwX2VzdChwcml2KTsKJiM0MzsJaWYgKHJldCkKIAkJZ290byBkaXNhYmxlOwotCX0KIAogCXJldCA9IHN0bW1hY19mcGVfbWFwX3ByZWVtcHRpb25fY2xhc3MocHJpdiwgcHJpdi0mZ3Q7ZGV2LCBleHRhY2ssCiAJCQkJCSAgICAgIHFvcHQtJmd0O21xcHJpby5wcmVlbXB0aWJsZV90Y3MpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTMwCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMjkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRmVhc2liaWxpdHkgQXNzZXNzbWVudCoqCgpPa2F5LCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgZnV6emluZyB0aGlzIGNvZGUgaXMgZXZlbiB3b3J0aHdoaWxlLiBJdCBsb29rcyBsaWtlIGl0IHRvdWNoZXMgdGhlIGBzdG1tYWNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2AgZGlyZWN0b3J5LiBJIHNlZSBtb2RpZmljYXRpb25zIGluIGBzdG1tYWNfZXN0LmNgLCBgc3RtbWFjX2VzdC5oYCwgYHN0bW1hY19tYWluLmNgLCBgc3RtbWFjX3B0cC5jYCwgYW5kIGBzdG1tYWNfdGMuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSB0aGUgaW50cm9kdWN0aW9uIG9mIHRoaXMgYHN0bW1hY19zZXR1cF9lc3RgIGZ1bmN0aW9uLiBJdCBsb29rcyBsaWtlIGBfX3N0bW1hY19vcGVuKClgIGNhbGxzIGl0IGlmIGBwcml2LSZndDtlc3QgJmFtcDsmYW1wOyBwcml2LSZndDtlc3QtJmd0O2VuYWJsZWAuIFRoZSBvdGhlciBjaGFuZ2VzIHJlZmFjdG9yIHNvbWUgZXhpc3RpbmcgZnVuY3Rpb25hbGl0eSBpbiBgc3RtbWFjX2FkanVzdF90aW1lKClgIGFuZCBgdGNfdGFwcmlvX2NvbmZpZ3VyZSgpYCB0byBtYWtlIHVzZSBvZiB0aGUgbmV3IGZ1bmN0aW9uLgoKQmVmb3JlIEkgY29tbWl0IHRvIGFueXRoaW5nLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jaWVzIGhlcmUuIGBzdG1tYWNgIGlzIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyBhbmQgU1RNaWNyb2VsZWN0cm9uaWNzJiMzOTsgaW1wbGVtZW50YXRpb24sIHJpZ2h0PyBJcyB0aGlzIHNvbWV0aGluZyB0aGF0JiMzOTtzIGxpa2VseSB0byBiZSBwcmVzZW50IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLCBvciBpcyBpdCBzcGVjaWZpYyBoYXJkd2FyZT8gSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBzdG1tYWNgIGlzIGNvbW1vbmx5IHVzZWQuIENhbiBJIHJlYXNvbmFibHkgZXhwZWN0IHRvIGZpbmQgZW11bGF0ZWQgYHN0bW1hY2AgZGV2aWNlcyBpbiBRRU1VLCBvciBkbyBJIG5lZWQgdG8gaHVudCBmb3IgYWN0dWFsIFBDSSBgc3RtbWFjYCBkZXZpY2VzIGZvciB0ZXN0aW5nPyBMZXQgbWUgZG8gYSBxdWljayBgZ3JlcGAgaW4gdGhlIGBLY29uZmlnYCBmaWxlcyBhbmQgZHJpdmVyIGRpcmVjdG9yaWVzIHRvIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBpdHMgY29uZmlndXJhdGlvbiBhbmQgdXNhZ2UuIEkgd2FudCB0byBzZWUgaG93IHJlYWRpbHkgSSBjYW4gYnVpbGQgYSB0ZXN0IGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTVE1NQUNfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE4PWlmIFNUTU1BQ19FVEhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwOmNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBTVE1NQUMgU2VsZnRlc3RzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk6Y29uZmlnIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQbGF0Zm9ybSBidXMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzcxPWVuZGlmICMgU1RNTUFDX1BMQVRGT1JNXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzczOmNvbmZpZyBTVE1NQUNfTElCUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zOTg9Y29uZmlnIERXTUFDX01PVE9SQ09NTVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDc6Y29uZmlnIFNUTU1BQ19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzNDYKCQkJCQkJCW91dHB1dDogNTEKCQkJCQkJCXRob3VnaHRzOiAzNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU1RNTUFDIERyaXZlciBhbmQgaXRzIFdvcnRoaW5lc3MgZm9yIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGVtdWxhdGlvbiBzaXR1YXRpb24gZm9yIGBzdG1tYWNgLiBJcyB0aGlzIGEgc3RhbmRhcmQgUUVNVSBlbXVsYXRlZCBkZXZpY2UsIG9yIGFyZSB3ZSBsb29raW5nIGF0IHNvbWV0aGluZyBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgU3lzdGVtLW9uLUNoaXAgKFNvQykgb3IgSW50ZWwgUENJIGxpa2UgUXVhcmsgb3IgRWxraGFydCBMYWtlPwoKVGhlIG5leHQgdGhpbmcgSSYjMzk7bSBhc2tpbmcgbXlzZWxmIGlzLCB3aGljaCBRRU1VIG1hY2hpbmVzIGFjdHVhbGx5ICp1c2UqIGBkd21hY2Agb3IgYHN0bW1hY2A/IE9yLCBpcyB0aGlzIHNvbWV0aGluZyB0aGF0IGFsd2F5cyBwb2ludHMgdG8gcGh5c2ljYWwgaGFyZHdhcmU/IEkmIzM5O20gc3BlY2lmaWNhbGx5IHJlZmVyZW5jaW5nIHRoZSBldGhlcm5ldCBjb250cm9sbGVyIGRyaXZlcnMgaGVyZS4KCkhvbGQgb24sIGxldCBtZSBxdWlja2x5IHJldmlldyB0aGVzZSBpbnN0cnVjdGlvbnMuIFRoZXnigJlyZSBnaXZpbmcgY3JpdGVyaWEgZm9yIGRldGVybWluaW5nIGlmIHNvbWV0aGluZyBpcyAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7LiBIbW0sIHRoZSBrZXkgcG9pbnRzIGhlcmUgYXJlOiB1bnJlYWNoYWJsZSBjb2RlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUsIHN1Y2ggYXMgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIHRoYXQgbmVlZCBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIChsaWtlIGBtbHhzd2AsIGBwZHNfY29yZWAsIGBxZWRgLCBldGMuIHdoaWNoIGFyZSB0aGUgc29ydCBvZiB0aGluZ3MgSSBkZWFsIHdpdGggb24gYSByZWd1bGFyIGJhc2lzKSwgYW5kIGRyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgdGhhdCBhcmUgb25seSBleGVjdXRlZCBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKU28sIGNpcmNsaW5nIGJhY2ssIGRvZXMgUUVNVSBoYXZlIHByb3BlciBlbXVsYXRpb24gb2YgU1RNTUFDPwoKRXNzZW50aWFsbHksIGNhbiBJIGdldCBpdCB0byB3b3JrPyBEb2VzIFFFTVUgZXZlbiBlbXVsYXRlIGBkd21hY2Agb3IgYHN0bW1hY2AgZXRoZXJuZXQ/IEkgbmVlZCB0byBrbm93LgoKTm93LCBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggUUVNVSBwbGF0Zm9ybXMgc3VwcG9ydCBgc3RtbWFjYCBuYXRpdmVseSwgd2hldGhlciBpdOKAmXMgdXNlZCB3aXRoIEFsbHdpbm5lciBTdW54aSwgU1RNMzIsIGV0Yy4gT3IsIGNhbiBJIHJlYWNoIGl0IG9uIHN0YW5kYXJkIHg4Nl82NCBvciBhcm02NCBmdXp6aW5nIHRhcmdldHM/CgpJIHNob3VsZCByZWFsbHkgZmlndXJlIG91dCB3aGV0aGVyIGl0IGlzIGFjdHVhbGx5IHByb2JlLWFibGUgb3IgaW5zdGFudGlhdGVkLgoKT2theSwgbGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBjb2RlLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgYXQgYHN0bW1hY19wY2kuY2AgYW5kIGBkd21hY18qLmNgIGFuZCBzZWUgd2hpY2ggc3BlY2lmaWMgY2hpcHMgdGhleSBzdXBwb3J0LiBUaGlzIHdpbGwgZ2l2ZSBtZSBzb21lIHNvbGlkIGFuc3dlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TU9EVUxFX0RFVklDRV9UQUJMRXxwY2lfZGV2aWNlX2lkfHBsYXRmb3JtX2RldmljZV9pZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz0xMTk9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYW5hcmlvbl9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjItfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMjM6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYW5hcmlvbl9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTI0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzUzPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGR3Y19ldGhfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM1OC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozNTk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZHdjX2V0aF9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM2MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmM9MzUwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGVpYzc3MDBfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmMtMzU5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmM6MzYwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGVpYzc3MDBfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTM2MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmM9NTI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZHdtYWNfZ2VuZXJpY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy02Ni19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jOjY3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGR3bWFjX2dlbmVyaWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jPTM4ND1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbXhfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zODktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jOjM5MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbXhfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYz0yNjI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW5nZW5pY19tYWNfb2ZfbWF0Y2hlc1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yNjktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYzoyNzA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaW5nZW5pY19tYWNfb2ZfbWF0Y2hlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjcxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYz0zNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbnRlbF9ldGhfcGxhdF9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy0zOS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jOjQwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGludGVsX2V0aF9wbGF0X21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy00MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEyNjM9c3RhdGljIGludCBpbnRlbF9ldGhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMjY0Olx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTM2Mj1zdGF0aWMgdm9pZCBpbnRlbF9ldGhfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEzOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEzOTU6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGludGVsX2V0aF9wY2lfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTM5Ni1cdHsgUENJX0RFVklDRV9EQVRBKElOVEVMLCBRVUFSSywgXHUwMDI2cXVhcmtfaW5mbykgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTQxNTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaW50ZWxfZXRoX3BjaV9pZF90YWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTQ5MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpcHE4MDZ4X2dtYWNfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDk0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM6NDk1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlwcTgwNnhfZ21hY19kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDk2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDc5PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfZml4X3Jlc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTQ5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NDk4OnN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNDk5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTU3OD1zdGF0aWMgdm9pZCBsb29uZ3Nvbl9kd21hY19yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01OTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjU5NjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbG9vbmdzb25fZHdtYWNfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTk3LVx0eyBQQ0lfREVWSUNFX0RBVEEoTE9PTkdTT04sIEdNQUMxLCBcdTAwMjZsb29uZ3Nvbl9nbWFjX3BjaV9pbmZvKSB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNjAxLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjYwMjpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgbG9vbmdzb25fZHdtYWNfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM9MjE2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGxzMXhfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy0yMjYtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jOjIyNzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBsczF4X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTIyOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM9NzE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHBjMTh4eF9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy03NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jOjc1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGxwYzE4eHhfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM9NjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lZGlhdGVrX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02NjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jOjY3MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtZWRpYXRla19kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTY3MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jPTc2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uNl9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtNzktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM6ODA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWVzb242X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtODEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jPTQ4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZXNvbjhiX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jLTUwNC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jOjUwNTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtZXNvbjhiX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjY0PXN0YXRpYyBpbnQgbW90b3Jjb21tX3NldHVwX2lycShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyOTM6c3RhdGljIGludCBtb3RvcmNvbW1fcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI5NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MzYyPXN0YXRpYyB2b2lkIG1vdG9yY29tbV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzY3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBkd21hY19tb3RvcmNvbW1fcGNpX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNjgtXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NT1RPUkNPTU0sIDB4NjgwMSkgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNzAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM3MTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZHdtYWNfbW90b3Jjb21tX3BjaV9pZF90YWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jPTExOD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBudnRfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMTIxLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM6MTIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG52dF9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMTIzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9ODAwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHFjb21fZXRocW9zX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy04MDYtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM6ODA3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHFjb21fZXRocW9zX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtODA4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcmVuZXNhc19nYmV0aF9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yMjEtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYzoyMjI6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmVuZXNhc19nYmV0aF9tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmMtMjIzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM9MTYxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBya19nbWFjX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNjM0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE2MzU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmtfZ21hY19kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE2MzYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jPTc1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJ6bjFfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtNzgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYzo3OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByem4xX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYy04MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgczMyX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMjE5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYzoyMjA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgczMyX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jLTIyMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NjczPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjc4LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6Njc5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTY4MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYz03Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb3BoZ29fZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy03Ni19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmM6Nzc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29waGdvX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTc4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM9MjEwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNwYWNlbWl0X2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yMTMtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM6MjE0Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNwYWNlbWl0X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMjE1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9MTYwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0YXJmaXZlX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xNjQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM6MTY1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0YXJmaXZlX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jPTI5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGlfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yOTktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjMwMDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdGlfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmMtMzAxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM9NjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0bTMyX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy02NjgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM6NjY5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0bTMyX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmMtNjcwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jPTE0MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW41NWlfZ21hYzIwMF9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTE0NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmM6MTQ1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN1bjU1aV9nbWFjMjAwX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTE0Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jPTEyNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuOGlfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jLTEyODItfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmM6MTI4MzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW44aV9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jLTEyODQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYz0xNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuN2lfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE1My19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYzoxNTQ6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3VuN2lfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYy0xNTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYz0zOTc9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdGVncmFfbWdiZV9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtNDAwLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jOjQwMTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0ZWdyYV9tZ2JlX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtNDAyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM9MjY3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRoZWFkX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yNzAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM6MjcxOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRoZWFkX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmMtMjcyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM9MjU1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHZpc2NvbnRpX2V0aF9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmMtMjU4LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jOjI1OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB2aXNjb250aV9ldGhfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yNjAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTExOD1zdGF0aWMgaW50IHN0bW1hY19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTE5Olx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MTkyPXN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjAzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDQtXHR7IFBDSV9ERVZJQ0VfREFUQShTVE1NQUMsIFNUTU1BQywgXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEwOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzY1NgoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDc4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgc3RtbWFjIEVtdWxhdGlvbiBpbiBRRU1VIGFuZCBTeXprYWxsZXIgZm9yIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSSYjMzk7bSBsb29raW5nIGF0IGBzdG1tYWNgLCB0aGUgcGh5c2ljYWwgRXRoZXJuZXQgTUFDIGNvbnRyb2xsZXIgZHJpdmVyIHVzZWQgYWNyb3NzIGEgcmFuZ2Ugb2YgU29DcyBhbmQgUENJIGRldmljZXMg4oCTIFNUTTMyLCBBbGx3aW5uZXIsIFJvY2tjaGlwLCBJbnRlbCwgVGVncmEsIGFuZCBzbyBvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyB0aGlzIHRoaW5nIGVtdWxhdGVkIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCBvciBvbiBHQ0U/IFNwZWNpZmljYWxseSwgZG9lcyBzdGFuZGFyZCBRRU1VIGV2ZW4gKmhhbmRsZSogYHN0bW1hY2Agb3IgYGR3bWFjYD8KCkkgbmVlZCB0byBjb25maXJtIHRoYXQuIExldCBtZSByZXBocmFzZTogZG9lcyBRRU1VIG9mZmVyIGFueSBlbXVsYXRpb24gb2YgYHN0bW1hY2Agb3IgYGR3bWFjYD8gT3IsIGRvZXMgaXQgZGVwZW5kIG9uIHJlYWwsIHBoeXNpY2FsIFNvQyBvciBQQ0llIGhhcmR3YXJlIHdoaWNoIGlzIG5vdCBlbXVsYXRlZD8gSSYjMzk7bGwgcmUtY2hlY2sgd2hhdCBzcGVjaWZpYyBRRU1VIG1hY2hpbmVzIG1pZ2h0IGluY2x1ZGUgZHdtYWMgb3Igc3RtbWFjLCBvciBpZiBpdCYjMzk7cyBjb25zaWRlcmVkIGV4Y2x1c2l2ZWx5IGEgcGh5c2ljYWwgaGFyZHdhcmUgY29tcG9uZW50LgoKQSBxdWljayByZXZpZXcgb2YgYXZhaWxhYmxlIFFFTVUgbmV0d29yayBkZXZpY2Vz4oCUZTEwMDAsIGlnYiwgdmlydGlvLW5ldCwgZXRjLuKAlHNob3dzIG1hbnkgZW11bGF0ZWQgTklDcy4gT24gdGhlIEFSTSBzaWRlLCBJIHNlZSBzb21lIG1vcmUgc3BlY2lmaWMgZW11bGF0aW9ucywgbGlrZSBzbWM5MWMxMTEgYW5kIGlteF9mZWMuIExvb2tpbmcgYXQgdGhlIEFsbHdpbm5lciBzdW40aS9zdW44aSBvZmZlcmluZ3MgaW4gUUVNVSwgdGhlIGVtdWxhdGVkIGRldmljZXMgYXJlIGBhbGx3aW5uZXItZW1hY2AgYW5kIGBhbGx3aW5uZXItc3VuOGktZW1hY2AuIEludGVyZXN0aW5nLiBCdXQsIGRvIHRoZXNlIHJlbGF0ZSB0byB0aGUgRFdNQUMgb3Igc3RtbWFjIGRyaXZlcnM/IE5vLCB0aGUgYGFsbHdpbm5lci1zdW44aS1lbWFjLmNgIGZpbGUgcHJvdmlkZXMgc29tZSBjbGFyaXR5LgoKT2theSwgYmFjayB0byB0aGUgY29yZSBxdWVzdGlvbjogRG9lcyBRRU1VICphY3R1YWxseSogZW11bGF0ZSBTVE1NQUMgLyBEV01BQz8KCkV2ZW4gaWYgdGhlcmUmIzM5O3Mgc29tZSBvYnNjdXJlIGJvYXJkIGVtdWxhdGlvbiBvdXQgdGhlcmUsIGxldCYjMzk7cyBjb25zaWRlciB0aGUgZnV6emluZyBwZXJzcGVjdGl2ZSB3aXRoIHN5emthbGxlci4gSSBuZWVkIHRvIHJlZmVyIGJhY2sgdG8gaG93IHN5emthbGxlciBmdXp6ZXMgYW5kIHdoYXQgdGhlIGluc3RydWN0aW9uIHNldCBzYXlzIGFib3V0IGl0cyB1c2UgY2FzZXMuIFNwZWNpZmljYWxseSwgc3l6a2FsbGVyIHdpbGwgJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgaWYgdGhlIHBhdGNoIG9ubHkgaW5jbHVkZXMgY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWwgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgZXZlbiB3aGVuIHVzaW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBJdCBhbHNvIGV4Y2x1ZGVzIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCBkcml2ZXJzLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuIEFkZGl0aW9uYWxseSwgaXQgc2tpcHMgZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcy4gSSBtdXN0IGtlZXAgdGhpcyBpbiBtaW5kLgoKTm93LCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGEgYml0IGFuZCBjb25zaWRlciB0aGUgZ2VuZXJhbCBsYW5kc2NhcGUgb2YgZXRoZXJuZXQgZHJpdmVycywgbG9jYXRlZCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvKmAuIExpbnV4IGtlcm5lbCBmdXp6aW5nIHdpdGggc3l6a2FsbGVyIG9wZXJhdGVzIHdpdGhpbiBzdGFuZGFyZCBRRU1VICh4ODZfNjQsIGFybTY0KSBvciBHQ0UgVk1zLiBUaGUgZXRoZXJuZXQgZHJpdmVycyBpbiB0aGF0IGRpcmVjdG9yeSBhcmUgcHJpbWFyaWx5IGZvciBzcGVjaWZpYyBoYXJkd2FyZSBOSUNzIChsaWtlIEludGVsIGUxMDAwLCByODE2OSwgQnJvYWRjb20gdGczLCBNZWxsYW5veCBtbHg0L21seDUsIENoZWxzaW8gY3hnYiwgZXRjLikgYW5kIHRoZXkgYXJlIG9mdGVuIGVtdWxhdGVkIGluIFFFTVUuCgpCdXQgbm93LCBiYWNrIHRvIHRoZSBjZW50cmFsIHF1ZXN0aW9uOiBJcyBgc3RtbWFjYCBoYXJkd2FyZSBwcmVzZW50IHdpdGhpbiB0aGVzZSBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZz8gRnJvbSBldmVyeXRoaW5nIEkmIzM5O3ZlIHNlZW4sIGl0JiMzOTtzIGNsZWFyOiBOby4gVGhlIHN0YW5kYXJkIFFFTVUgeDg2XzY0IC8gYXJtNjQgVk1zIHVzZWQgYnkgc3l6a2FsbGVyIGRvICpub3QqIGluc3RhbnRpYXRlIGBzdG1tYWNgIGRldmljZXMuIEl0IGlzbiYjMzk7dCBwYXJ0IG9mIHRoYXQgc3RhbmRhcmQgZW52aXJvbm1lbnQuCgpTbywgbGV0JiMzOTtzIHJlLWV2YWx1YXRlOiBjYW4gSSBpbnN0YW50aWF0ZSBgc3RtbWFjYCB1c2luZyBhIHBsYXRmb3JtIGRldmljZSBvciBuZXRsaW5rIG9yIHNvbWUgbW9jayBmcmFtZXdvcms/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlIGFyZSB2aXJ0dWFsIG9yIG1vY2sgYHN0bW1hY2AgZHJpdmVycyBhcm91bmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyLipzdG1tYWN8c3RtbWFjX3Byb2JlX2NvbmZpZ19kdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI4Mz1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA3Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDgtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmM9MTY3PXN0YXRpYyBpbnQgZWljNzcwMF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYy0xODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmM6MTgxOlx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTE4Mi1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYz0xOT1zdGF0aWMgaW50IGR3bWFjX2dlbmVyaWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtMjktXHRpZiAocGRldi1cdTAwM2VkZXYub2Zfbm9kZSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jOjMwOlx0XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtMzEtXHRcdGlmIChJU19FUlIocGxhdF9kYXQpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM9MjkzPXN0YXRpYyBpbnQgaW14X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM6MzA5Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzEwLVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jPTE1ND1zdGF0aWMgaW50IGluZ2VuaWNfbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jLTE2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYzoxNjc6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMTY4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jPTQyPXN0YXRpYyBpbnQgaW50ZWxfZXRoX3BsYXRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmM6NTQ6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNTUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYz0zNzQ9c3RhdGljIGludCBpcHE4MDZ4X2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtMzg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjM4NzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYy0zODgtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYz0xNTg9c3RhdGljIGludCBsczF4X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMTg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MTg4Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMTg5LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jPTQyPXN0YXRpYyBpbnQgbHBjMTh4eF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYzo1MzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01NC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM9NTk5PXN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTYzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM6NjMxOlx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02MzItXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jPTQ3PXN0YXRpYyBpbnQgbWVzb242X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYy01Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM6NTg6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTU5LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jPTM4Mj1zdGF0aWMgaW50IG1lc29uOGJfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtMzkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jOjM5MzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy0zOTQtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM9ODI9c3RhdGljIGludCBudnRfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy05My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYzo5NDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy05NS1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9Njg0PXN0YXRpYyBpbnQgcWNvbV9ldGhxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTY5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM6Njk5Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy03MDAtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYz0xMzE9c3RhdGljIGludCByZW5lc2FzX2diZXRoX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTE0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYzoxNDY6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmMtMTQ3LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYz0xNTY4PXN0YXRpYyBpbnQgcmtfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU4NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTU4NTpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU4Ni1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYz00OD1zdGF0aWMgaW50IHJ6bjFfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmM6NTk6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtNjAtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYz0xNDQ9c3RhdGljIGludCBzMzJfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0xNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYzoxNjM6XHRwbGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHJlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTY0LVx0aWYgKElTX0VSUihwbGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NTk2PXN0YXRpYyBpbnQgc29jZnBnYV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02MTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NjE1Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTYxNi1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jPTM1PXN0YXRpYyBpbnQgc29waGdvX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmMtNDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYzo0ODpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTQ5LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYz0xNDc9c3RhdGljIGludCBzcGFjZW1pdF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMTY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYzoxNjk6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTE3MC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9OTA9c3RhdGljIGludCBzdGFyZml2ZV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxMDM6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTEwNC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jPTI0OT1zdGF0aWMgaW50IHN0aV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjI2NzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI2OC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM9NTI1PXN0YXRpYyBpbnQgc3RtMzJfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTUzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM6NTM3Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy01MzgtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYz0xMDU9c3RhdGljIGludCBzdW41NWlfZ21hYzIwMF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTExNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jOjExNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTExOC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmM9MTEwNT1zdGF0aWMgaW50IHN1bjhpX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYy0xMTczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYzoxMTc0Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYy0xMTc1LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYz05OT1zdGF0aWMgaW50IHN1bjdpX2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTExMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM6MTExOlx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYy0xMTItXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jLTMxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzIwOlx0cGxhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCByZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzIxLVx0aWYgKElTX0VSUihwbGF0KSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM9MjE2PXN0YXRpYyBpbnQgdGhlYWRfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTIyOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM6MjMwOlx0cGxhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTIzMS1cdGlmIChJU19FUlIocGxhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYz0yMDU9c3RhdGljIGludCB2aXNjb250aV9ldGhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jLTIxNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM6MjE2Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yMTctXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz0zOTM9c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzdG1tYWNfZ21hYzRfY29tcGF0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTQwNS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjQwNjogKiBzdG1tYWNfcHJvYmVfY29uZmlnX2R0IC0gcGFyc2UgZGV2aWNlLXRyZWUgZHJpdmVyIHBhcmFtZXRlcnNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTQwNy0gKiBAcGRldjogcGxhdGZvcm1fZGV2aWNlIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTQxMz1zdGF0aWMgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjQxNDpzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy00MTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTY0MT1zdGF0aWMgdm9pZCBkZXZtX3N0bW1hY19yZW1vdmVfY29uZmlnX2R0KHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjUxLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NjUyOiAqIGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjUzLSAqIEBwZGV2OiBwbGF0Zm9ybV9kZXZpY2Ugc3RydWN0dXJlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NTQtICogQG1hYzogTUFDIGFkZHJlc3MgdG8gdXNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo2NTU6ICogRGVzY3JpcHRpb246IERldnJlcyB2YXJpYW50IG9mIHN0bW1hY19wcm9iZV9jb25maWdfZHQoKS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY1Ni0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTY1Nz1zdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NjU4OmRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjU5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo2NjM6XHRwbGF0ID0gc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBtYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjY0LVx0aWYgKElTX0VSUihwbGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz02NzU9c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY3NjpkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdTggKm1hYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY3Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjgwLSNlbmRpZiAvKiBDT05GSUdfT0YgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY4MTpFWFBPUlRfU1lNQk9MX0dQTChkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjgyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5oPTE0PXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uaDoxNTpkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdTggKm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uaC0xNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTc2MgoJCQkJCQkJb3V0cHV0OiA5NAoJCQkJCQkJdGhvdWdodHM6IDQ2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBCYXNlZCBvbiB0aGUgZmlsZXMgSSYjMzk7bSBzZWVpbmcsIHRoZXNlIGxvb2sgbGlrZSBwbGF0Zm9ybS1zcGVjaWZpYyBvciBQQ0kgZHJpdmVycyBmb3IgdGhlIFNUTU1BQy9EV01BQyBFdGhlcm5ldCBNQUMgZnJvbSBTeW5vcHN5cyBEZXNpZ25XYXJlLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBjYW4gdGVsbCB0aGVzZSBhcmUgKm5vdCogdmlydHVhbCBuZXR3b3JrIGRldmljZXMgbGlrZSB0dW4sIHRhcCwgb3IgZXZlbiBzb21ldGhpbmcgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVS4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuCgpOb3csIGxldCYjMzk7cyBnbyBiYWNrIGFuZCBjYXJlZnVsbHkgYXBwbHkgdGhlIHByb21wdCYjMzk7cyBleGNsdXNpb24gY3JpdGVyaWEuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcuIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIHNwZWNpZmljIGNoZWNrczogZG9jdW1lbnRhdGlvbiwgY29uZmlnIGZpbGVzLCBjb21tZW50cywgbG9nZ2luZywgY29uc3RhbnRzLCB1bnJlYWNoYWJsZSBjb2RlIGluIHN0YW5kYXJkIFFFTVUsIHZlbmRvci1zcGVjaWZpYyBQQ0llL1NtYXJ0TklDL0dQVSBkcml2ZXJzLCBhbmQgZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcy4KClNwZWNpZmljYWxseSwgdGhlIHN0bW1hYyBkcml2ZXIgaXMgZGVzaWduZWQgdG8gd29yayB3aXRoIFN5bm9wc3lzIERlc2lnbldhcmUgYW5kIFNUTWljcm9lbGVjdHJvbmljcyBNQUMgaGFyZHdhcmUuIFRoaXMgbWVhbnMgaXQgKm5lZWRzKiByZWFsIGhhcmR3YXJlIG9yIGEgcGFydGljdWxhciBTb0MgcGxhdGZvcm07IGl0JiMzOTtzICpub3QqIHNvbWV0aGluZyB0aGF0JiMzOTtzIHByb3Blcmx5IGVtdWxhdGVkIGluIGEgc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnQuIFRoaXMgaW1tZWRpYXRlbHkgc3VnZ2VzdHMgaXRzIGNvZGUgcGF0aHMgYXJlIGxhcmdlbHkgb2ZmLWxpbWl0cyB0byBmdXp6aW5nIGluIHRoZXNlIHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldC11cHMuCgpHaXZlbiB0aGF0LCBJJiMzOTttIGNvbmZpZGVudCBpbiBzYXlpbmcgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGBmYWxzZWAuIFRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIGFyZSB3aXRoaW4gdGhlIFNUTWljcm9lbGVjdHJvbmljcy9TeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyAoc3RtbWFjKSBkcml2ZXIuIEl0JiMzOTtzIGEgaGFyZHdhcmUtc3BlY2lmaWMgbmV0d29yayBkcml2ZXIgdGhhdCBkZW1hbmRzIHBoeXNpY2FsIGhhcmR3YXJlL1NvQ3MsIHdoaWNoIGFyZSBub3QgYWNjZXNzaWJsZSB3aXRoaW4gdGhlIGNvbmZpbmVzIG9mIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgYW5kIEdDRS4gVGhlcmVmb3JlLCBJJiMzOTttIGdvaW5nIHRvIHNldCBgRW5hYmxlQ29uZmlnc2AgYW5kIGBGb2N1c1N5bWJvbHNgIHRvIGVtcHR5IGFuZCBtYWtlIHRoaXMgZGVjaXNpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MDk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjA4OjI5LjMzMjk3MDk3NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMjUyNDQ3NDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MDg6MjkuMzMyOTc2NDg0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDg4OTMxMDA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzI3MjJhMjJhN2Y3NDAwMjdmZTIyZmIxZDRlN2JmMDUwYWZjY2E2NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDowODoyNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmNcXG5pbmRleCBhZmM1MTYwNTliODk3Li5iYmViZDMzYzhhODgzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xcbkBAIC04MCw2ICs4MCwzOSBAQCBzdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4raW50IHN0bW1hY19zZXR1cF9lc3Qoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbit7XFxuK1xcdHN0cnVjdCB0aW1lc3BlYzY0IGN1cnJlbnRfdGltZSwgdGltZTtcXG4rXFx0a3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lO1xcbitcXHR1NjQgY3ljbGVfdGltZTtcXG4rXFx0aW50IGVycjtcXG4rXFxuK1xcdG11dGV4X2xvY2soXFx1MDAyNnByaXYtXFx1MDAzZWVzdF9sb2NrKTtcXG4rXFxuK1xcdHByaXYtXFx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFxcdTAwMjZwcml2LVxcdTAwM2VwdHBfY2xvY2tfb3BzLCBcXHUwMDI2Y3VycmVudF90aW1lKTtcXG4rXFx0Y3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpO1xcbitcXG4rXFx0dGltZS50dl9uc2VjID0gcHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJfcmVzZXJ2ZVswXTtcXG4rXFx0dGltZS50dl9zZWMgPSBwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWJ0cl9yZXNlcnZlWzFdO1xcbitcXHRiYXNldGltZSA9IHRpbWVzcGVjNjRfdG9fa3RpbWUodGltZSk7XFxuK1xcbitcXHRjeWNsZV90aW1lID0gKHU2NClwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWN0clsxXSAqIE5TRUNfUEVSX1NFQyArIHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlY3RyWzBdO1xcbitcXG4rXFx0dGltZSA9IHN0bW1hY19jYWxjX3Rhc19iYXNldGltZShiYXNldGltZSwgY3VycmVudF90aW1lX25zLCBjeWNsZV90aW1lKTtcXG4rXFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJbMF0gPSAodTMyKXRpbWUudHZfbnNlYztcXG4rXFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xcbitcXG4rXFx0ZXJyID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi1cXHUwMDNlZXN0LFxcbitcXHRcXHRcXHRcXHQgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VjbGtfcHRwX3JhdGUpO1xcbitcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwcml2LVxcdTAwM2Vlc3RfbG9jayk7XFxuK1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRuZXRkZXZfZXJyKHByaXYtXFx1MDAzZWRldiwgXFxcImZhaWxlZCB0byByZS1jb25maWd1cmUgRVNUXFxcXG5cXFwiKTtcXG4rXFxuK1xcdHJldHVybiBlcnI7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0XFx0XFx0ICAgc3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyAqeCwgdTMyIHR4cWNudClcXG4ge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmhcXG5pbmRleCBmNzAyMjFjOWM4NGFmLi5mNjIwZDMzMzFjMmNjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaFxcbkBAIC02NSwzICs2NSw1IEBAXFxuICNkZWZpbmUgRVNUX0dDTF9EQVRBXFx0XFx0XFx0MHgwMDAwMDAzNFxcbiBcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZXN0X29wcyBkd21hYzUxMF9lc3Rfb3BzO1xcbitcXG4raW50IHN0bW1hY19zZXR1cF9lc3Qoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcXG5pbmRleCBkNTc2MDU5YzA0ZGY5Li5iMzAwMzY0MjgxODhjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuQEAgLTQ4LDYgKzQ4LDcgQEBcXG4gI2luY2x1ZGUgXFxcInN0bW1hY19wdHAuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInN0bW1hY19mcGUuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbisjaW5jbHVkZSBcXFwic3RtbWFjX2VzdC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwic3RtbWFjX3Bjcy5oXFxcIlxcbiAjaW5jbHVkZSBcXFwic3RtbWFjX3hkcC5oXFxcIlxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcmVzZXQuaFxcdTAwM2VcXG5AQCAtNDE1MywxMSArNDE1NCwyMiBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XFxuIFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuIFxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiJXM6IEh3IHNldHVwIGZhaWxlZFxcXFxuXFxcIiwgX19mdW5jX18pO1xcbi1cXHRcXHRnb3RvIGluaXRfZXJyb3I7XFxuK1xcdFxcdHJldHVybiByZXQ7XFxuIFxcdH1cXG4gXFxuIFxcdHN0bW1hY19zZXR1cF9wdHAocHJpdik7XFxuIFxcbitcXHQvKiBUaGUgY29yZSBzb2Z0IHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIGNsZWFycyB0aGUgTVRMX0VTVFxcbitcXHQgKiByZWdpc3RlcnMsIHNvIHJlLWFwcGx5IHRoZSB0YXByaW8gb2ZmbG9hZCBhZnRlciBQVFAgaXMgdXAuXFxuK1xcdCAqL1xcbitcXHRpZiAocHJpdi1cXHUwMDNlZXN0IFxcdTAwMjZcXHUwMDI2IHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlZW5hYmxlKSB7XFxuK1xcdFxcdHJldCA9IHN0bW1hY19zZXR1cF9lc3QocHJpdik7XFxuK1xcdFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdFxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlZW5hYmxlID0gZmFsc2U7XFxuK1xcdFxcdFxcdHJldHVybiByZXQ7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4gXFx0c3RtbWFjX2luaXRfY29hbGVzY2UocHJpdik7XFxuIFxcbiBcXHRwaHlsaW5rX3N0YXJ0KHByaXYtXFx1MDAzZXBoeWxpbmspO1xcbkBAIC00MTgxLDcgKzQxOTMsNyBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0XFx0aHJ0aW1lcl9jYW5jZWwoXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mLnR4X3F1ZXVlW2NoYW5dLnR4dGltZXIpO1xcbiBcXG4gXFx0c3RtbWFjX3JlbGVhc2VfcHRwKHByaXYpO1xcbi1pbml0X2Vycm9yOlxcbitcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jXFxuaW5kZXggOTYwMjQ5OTYwMDA0Yy4uOTE3ZWY3ZGRjYWU2MSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmNcXG5AQCAtOCw2ICs4LDcgQEBcXG4gICBBdXRob3I6IFJheWFnb25kIEtva2F0YW51ciBcXHUwMDNjcmF5YWdvbmRAdmF5YXZ5YWxhYnMuY29tXFx1MDAzZVxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xcbiAjaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuKyNpbmNsdWRlIFxcXCJzdG1tYWNfZXN0LmhcXFwiXFxuICNpbmNsdWRlIFxcXCJzdG1tYWNfcHRwLmhcXFwiXFxuIFxcbiAjZGVmaW5lIFBUUF9TQUZFX1RJTUVfT0ZGU0VUX05TXFx0NTAwMDAwXFxuQEAgLTU1LDcgKzU2LDYgQEAgc3RhdGljIGludCBzdG1tYWNfYWRqdXN0X3RpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcXG4gXFx0dTMyIHF1b3RpZW50LCByZW1pbmRlcjtcXG4gXFx0aW50IG5lZ19hZGogPSAwO1xcbiBcXHRib29sIHhtYWMsIGVzdF9yc3QgPSBmYWxzZTtcXG4tXFx0aW50IHJldDtcXG4gXFxuIFxcdHhtYWMgPSBkd21hY19pc194bWFjKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSk7XFxuIFxcbkBAIC04NCwzMCArODQsOCBAQCBzdGF0aWMgaW50IHN0bW1hY19hZGp1c3RfdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKVxcbiBcXG4gXFx0LyogQ2FsY3VsYXRlIG5ldyBiYXNldGltZSBhbmQgcmUtY29uZmlndXJlZCBFU1QgYWZ0ZXIgUFRQIHRpbWUgYWRqdXN0LiAqL1xcbiBcXHRpZiAoZXN0X3JzdCkge1xcbi1cXHRcXHRzdHJ1Y3QgdGltZXNwZWM2NCBjdXJyZW50X3RpbWUsIHRpbWU7XFxuLVxcdFxcdGt0aW1lX3QgY3VycmVudF90aW1lX25zLCBiYXNldGltZTtcXG4tXFx0XFx0dTY0IGN5Y2xlX3RpbWU7XFxuLVxcbi1cXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZwcml2LVxcdTAwM2Vlc3RfbG9jayk7XFxuLVxcdFxcdHByaXYtXFx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFxcdTAwMjZwcml2LVxcdTAwM2VwdHBfY2xvY2tfb3BzLCBcXHUwMDI2Y3VycmVudF90aW1lKTtcXG4tXFx0XFx0Y3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpO1xcbi1cXHRcXHR0aW1lLnR2X25zZWMgPSBwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWJ0cl9yZXNlcnZlWzBdO1xcbi1cXHRcXHR0aW1lLnR2X3NlYyA9IHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyX3Jlc2VydmVbMV07XFxuLVxcdFxcdGJhc2V0aW1lID0gdGltZXNwZWM2NF90b19rdGltZSh0aW1lKTtcXG4tXFx0XFx0Y3ljbGVfdGltZSA9ICh1NjQpcHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VjdHJbMV0gKiBOU0VDX1BFUl9TRUMgK1xcbi1cXHRcXHRcXHQgICAgIHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlY3RyWzBdO1xcbi1cXHRcXHR0aW1lID0gc3RtbWFjX2NhbGNfdGFzX2Jhc2V0aW1lKGJhc2V0aW1lLFxcbi1cXHRcXHRcXHRcXHRcXHRcXHRjdXJyZW50X3RpbWVfbnMsXFxuLVxcdFxcdFxcdFxcdFxcdFxcdGN5Y2xlX3RpbWUpO1xcbi1cXG4tXFx0XFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJbMF0gPSAodTMyKXRpbWUudHZfbnNlYztcXG4tXFx0XFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xcbiBcXHRcXHRwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWVuYWJsZSA9IHRydWU7XFxuLVxcdFxcdHJldCA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXFx1MDAzZWVzdCxcXG4tXFx0XFx0XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY2xrX3B0cF9yYXRlKTtcXG4tXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwcml2LVxcdTAwM2Vlc3RfbG9jayk7XFxuLVxcdFxcdGlmIChyZXQpXFxuLVxcdFxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiZmFpbGVkIHRvIGNvbmZpZ3VyZSBFU1RcXFxcblxcXCIpO1xcbitcXHRcXHRzdG1tYWNfc2V0dXBfZXN0KHByaXYpO1xcbiBcXHR9XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuY1xcbmluZGV4IDE0Y2FiZTc2ZTUzZWMuLmI0MWRmMzE3ZDczY2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuY1xcbkBAIC0xMCw2ICsxMCw3IEBAXFxuICNpbmNsdWRlIFxcXCJkd21hYzQuaFxcXCJcXG4gI2luY2x1ZGUgXFxcImR3bWFjNS5oXFxcIlxcbiAjaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuKyNpbmNsdWRlIFxcXCJzdG1tYWNfZXN0LmhcXFwiXFxuIFxcbiBzdGF0aWMgdm9pZCB0Y19maWxsX2FsbF9wYXNzX2VudHJ5KHN0cnVjdCBzdG1tYWNfdGNfZW50cnkgKmVudHJ5KVxcbiB7XFxuQEAgLTk2OCw4ICs5NjksNyBAQCBzdGF0aWMgaW50IHRjX3RhcHJpb19jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbiB7XFxuIFxcdHUzMiBzaXplLCB3aWQgPSBwcml2LVxcdTAwM2VkbWFfY2FwLmVzdHdpZCwgZGVwID0gcHJpdi1cXHUwMDNlZG1hX2NhcC5lc3RkZXA7XFxuIFxcdHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjayA9IHFvcHQtXFx1MDAzZW1xcHJpby5leHRhY2s7XFxuLVxcdHN0cnVjdCB0aW1lc3BlYzY0IHRpbWUsIGN1cnJlbnRfdGltZSwgcW9wdF90aW1lO1xcbi1cXHRrdGltZV90IGN1cnJlbnRfdGltZV9ucztcXG4rXFx0c3RydWN0IHRpbWVzcGVjNjQgdGltZTtcXG4gXFx0aW50IGksIHJldCA9IDA7XFxuIFxcdHU2NCBjdHI7XFxuIFxcbkBAIC0xMDY5LDM0ICsxMDY5LDIzIEBAIHN0YXRpYyBpbnQgdGNfdGFwcmlvX2NvbmZpZ3VyZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcdH1cXG4gXFxuIFxcdG11dGV4X2xvY2soXFx1MDAyNnByaXYtXFx1MDAzZWVzdF9sb2NrKTtcXG4tXFx0LyogQWRqdXN0IGZvciByZWFsIHN5c3RlbSB0aW1lICovXFxuLVxcdHByaXYtXFx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFxcdTAwMjZwcml2LVxcdTAwM2VwdHBfY2xvY2tfb3BzLCBcXHUwMDI2Y3VycmVudF90aW1lKTtcXG4tXFx0Y3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpO1xcbi1cXHR0aW1lID0gc3RtbWFjX2NhbGNfdGFzX2Jhc2V0aW1lKHFvcHQtXFx1MDAzZWJhc2VfdGltZSwgY3VycmVudF90aW1lX25zLFxcbi1cXHRcXHRcXHRcXHRcXHRxb3B0LVxcdTAwM2VjeWNsZV90aW1lKTtcXG4tXFxuLVxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyWzBdID0gKHUzMil0aW1lLnR2X25zZWM7XFxuLVxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcXG4gXFxuLVxcdHFvcHRfdGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC1cXHUwMDNlYmFzZV90aW1lKTtcXG4tXFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJfcmVzZXJ2ZVswXSA9ICh1MzIpcW9wdF90aW1lLnR2X25zZWM7XFxuLVxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXFvcHRfdGltZS50dl9zZWM7XFxuK1xcdHRpbWUgPSBrdGltZV90b190aW1lc3BlYzY0KHFvcHQtXFx1MDAzZWJhc2VfdGltZSk7XFxuK1xcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyX3Jlc2VydmVbMF0gPSAodTMyKXRpbWUudHZfbnNlYztcXG4rXFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJfcmVzZXJ2ZVsxXSA9ICh1MzIpdGltZS50dl9zZWM7XFxuIFxcbiBcXHRjdHIgPSBxb3B0LVxcdTAwM2VjeWNsZV90aW1lO1xcbiBcXHRwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWN0clswXSA9IGRvX2RpdihjdHIsIE5TRUNfUEVSX1NFQyk7XFxuIFxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlY3RyWzFdID0gKHUzMiljdHI7XFxuIFxcbiBcXHRwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZXRlciA9IHFvcHQtXFx1MDAzZWN5Y2xlX3RpbWVfZXh0ZW5zaW9uO1xcbi1cXG4gXFx0dGNfdGFwcmlvX21hcF9tYXhzZHVfdHhxKHByaXYsIHFvcHQpO1xcbiBcXG4tXFx0cmV0ID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi1cXHUwMDNlZXN0LFxcbi1cXHRcXHRcXHRcXHQgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VjbGtfcHRwX3JhdGUpO1xcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNnByaXYtXFx1MDAzZWVzdF9sb2NrKTtcXG4tXFx0aWYgKHJldCkge1xcbi1cXHRcXHRuZXRkZXZfZXJyKHByaXYtXFx1MDAzZWRldiwgXFxcImZhaWxlZCB0byBjb25maWd1cmUgRVNUXFxcXG5cXFwiKTtcXG4rXFxuK1xcdHJldCA9IHN0bW1hY19zZXR1cF9lc3QocHJpdik7XFxuK1xcdGlmIChyZXQpXFxuIFxcdFxcdGdvdG8gZGlzYWJsZTtcXG4tXFx0fVxcbiBcXG4gXFx0cmV0ID0gc3RtbWFjX2ZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyhwcml2LCBwcml2LVxcdTAwM2VkZXYsIGV4dGFjayxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgcW9wdC1cXHUwMDNlbXFwcmlvLnByZWVtcHRpYmxlX3Rjcyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjA4OjMwLjgyMjUyNjU2OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6NDA3NjI4NzI3OTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTVE1pY3JvZWxlY3Ryb25pY3MgLyBTeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyAoc3RtbWFjKSBkcml2ZXIgdG8gcmUtYXBwbHkgdGFwcmlvIEVTVCBvZmZsb2FkaW5nIHVwb24gaW50ZXJmYWNlIHVwIGFuZCB0aW1lIGFkanVzdG1lbnRzLiBUaGlzIGRyaXZlciB0YXJnZXRzIHBoeXNpY2FsIFNvQy9QQ0kgaGFyZHdhcmUgYW5kIGlzIG5vdCBhdmFpbGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDMyNzIyYTIyYTdmNzQwMDI3ZmUyMmZiMWQ0ZTdiZjA1MGFmY2NhNjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDowODoyNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xuaW5kZXggYWZjNTE2MDU5Yjg5Ny4uYmJlYmQzM2M4YTg4MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jXG5AQCAtODAsNiArODAsMzkgQEAgc3RhdGljIGludCBlc3RfY29uZmlndXJlKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IHN0bW1hY19lc3QgKmNmZyxcbiBcdHJldHVybiAwO1xuIH1cbiBcbitpbnQgc3RtbWFjX3NldHVwX2VzdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4re1xuK1x0c3RydWN0IHRpbWVzcGVjNjQgY3VycmVudF90aW1lLCB0aW1lO1xuK1x0a3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lO1xuK1x0dTY0IGN5Y2xlX3RpbWU7XG4rXHRpbnQgZXJyO1xuK1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZwcml2LVx1MDAzZWVzdF9sb2NrKTtcbitcbitcdHByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoXHUwMDI2cHJpdi1cdTAwM2VwdHBfY2xvY2tfb3BzLCBcdTAwMjZjdXJyZW50X3RpbWUpO1xuK1x0Y3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpO1xuK1xuK1x0dGltZS50dl9uc2VjID0gcHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF07XG4rXHR0aW1lLnR2X3NlYyA9IHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0cl9yZXNlcnZlWzFdO1xuK1x0YmFzZXRpbWUgPSB0aW1lc3BlYzY0X3RvX2t0aW1lKHRpbWUpO1xuK1xuK1x0Y3ljbGVfdGltZSA9ICh1NjQpcHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzFdICogTlNFQ19QRVJfU0VDICsgcHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzBdO1xuK1xuK1x0dGltZSA9IHN0bW1hY19jYWxjX3Rhc19iYXNldGltZShiYXNldGltZSwgY3VycmVudF90aW1lX25zLCBjeWNsZV90aW1lKTtcbitcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuK1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcbitcbitcdGVyciA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXHUwMDNlZXN0LFxuK1x0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4rXG4rXHRtdXRleF91bmxvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4rXG4rXHRpZiAoZXJyKVxuK1x0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcImZhaWxlZCB0byByZS1jb25maWd1cmUgRVNUXFxuXCIpO1xuK1xuK1x0cmV0dXJuIGVycjtcbit9XG4rXG4gc3RhdGljIHZvaWQgZXN0X2lycV9zdGF0dXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdCAgIHN0cnVjdCBzdG1tYWNfZXh0cmFfc3RhdHMgKngsIHUzMiB0eHFjbnQpXG4ge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaFxuaW5kZXggZjcwMjIxYzljODRhZi4uZjYyMGQzMzMxYzJjYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oXG5AQCAtNjUsMyArNjUsNSBAQFxuICNkZWZpbmUgRVNUX0dDTF9EQVRBXHRcdFx0MHgwMDAwMDAzNFxuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgZHdtYWM1MTBfZXN0X29wcztcbitcbitpbnQgc3RtbWFjX3NldHVwX2VzdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCBkNTc2MDU5YzA0ZGY5Li5iMzAwMzY0MjgxODhjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuQEAgLTQ4LDYgKzQ4LDcgQEBcbiAjaW5jbHVkZSBcInN0bW1hY19wdHAuaFwiXG4gI2luY2x1ZGUgXCJzdG1tYWNfZnBlLmhcIlxuICNpbmNsdWRlIFwic3RtbWFjLmhcIlxuKyNpbmNsdWRlIFwic3RtbWFjX2VzdC5oXCJcbiAjaW5jbHVkZSBcInN0bW1hY19wY3MuaFwiXG4gI2luY2x1ZGUgXCJzdG1tYWNfeGRwLmhcIlxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbkBAIC00MTUzLDExICs0MTU0LDIyIEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XG4gXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4gXHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiJXM6IEh3IHNldHVwIGZhaWxlZFxcblwiLCBfX2Z1bmNfXyk7XG4tXHRcdGdvdG8gaW5pdF9lcnJvcjtcbitcdFx0cmV0dXJuIHJldDtcbiBcdH1cbiBcbiBcdHN0bW1hY19zZXR1cF9wdHAocHJpdik7XG4gXG4rXHQvKiBUaGUgY29yZSBzb2Z0IHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIGNsZWFycyB0aGUgTVRMX0VTVFxuK1x0ICogcmVnaXN0ZXJzLCBzbyByZS1hcHBseSB0aGUgdGFwcmlvIG9mZmxvYWQgYWZ0ZXIgUFRQIGlzIHVwLlxuK1x0ICovXG4rXHRpZiAocHJpdi1cdTAwM2Vlc3QgXHUwMDI2XHUwMDI2IHByaXYtXHUwMDNlZXN0LVx1MDAzZWVuYWJsZSkge1xuK1x0XHRyZXQgPSBzdG1tYWNfc2V0dXBfZXN0KHByaXYpO1xuK1x0XHRpZiAocmV0IFx1MDAzYyAwKSB7XG4rXHRcdFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlZW5hYmxlID0gZmFsc2U7XG4rXHRcdFx0cmV0dXJuIHJldDtcbitcdFx0fVxuK1x0fVxuK1xuIFx0c3RtbWFjX2luaXRfY29hbGVzY2UocHJpdik7XG4gXG4gXHRwaHlsaW5rX3N0YXJ0KHByaXYtXHUwMDNlcGh5bGluayk7XG5AQCAtNDE4MSw3ICs0MTkzLDcgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdGhydGltZXJfY2FuY2VsKFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYudHhfcXVldWVbY2hhbl0udHh0aW1lcik7XG4gXG4gXHRzdG1tYWNfcmVsZWFzZV9wdHAocHJpdik7XG4taW5pdF9lcnJvcjpcbitcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuY1xuaW5kZXggOTYwMjQ5OTYwMDA0Yy4uOTE3ZWY3ZGRjYWU2MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jXG5AQCAtOCw2ICs4LDcgQEBcbiAgIEF1dGhvcjogUmF5YWdvbmQgS29rYXRhbnVyIFx1MDAzY3JheWFnb25kQHZheWF2eWFsYWJzLmNvbVx1MDAzZVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gI2luY2x1ZGUgXCJzdG1tYWMuaFwiXG4rI2luY2x1ZGUgXCJzdG1tYWNfZXN0LmhcIlxuICNpbmNsdWRlIFwic3RtbWFjX3B0cC5oXCJcbiBcbiAjZGVmaW5lIFBUUF9TQUZFX1RJTUVfT0ZGU0VUX05TXHQ1MDAwMDBcbkBAIC01NSw3ICs1Niw2IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2FkanVzdF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpXG4gXHR1MzIgcXVvdGllbnQsIHJlbWluZGVyO1xuIFx0aW50IG5lZ19hZGogPSAwO1xuIFx0Ym9vbCB4bWFjLCBlc3RfcnN0ID0gZmFsc2U7XG4tXHRpbnQgcmV0O1xuIFxuIFx0eG1hYyA9IGR3bWFjX2lzX3htYWMocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSk7XG4gXG5AQCAtODQsMzAgKzg0LDggQEAgc3RhdGljIGludCBzdG1tYWNfYWRqdXN0X3RpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcbiBcbiBcdC8qIENhbGN1bGF0ZSBuZXcgYmFzZXRpbWUgYW5kIHJlLWNvbmZpZ3VyZWQgRVNUIGFmdGVyIFBUUCB0aW1lIGFkanVzdC4gKi9cbiBcdGlmIChlc3RfcnN0KSB7XG4tXHRcdHN0cnVjdCB0aW1lc3BlYzY0IGN1cnJlbnRfdGltZSwgdGltZTtcbi1cdFx0a3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lO1xuLVx0XHR1NjQgY3ljbGVfdGltZTtcbi1cbi1cdFx0bXV0ZXhfbG9jayhcdTAwMjZwcml2LVx1MDAzZWVzdF9sb2NrKTtcbi1cdFx0cHJpdi1cdTAwM2VwdHBfY2xvY2tfb3BzLmdldHRpbWU2NChcdTAwMjZwcml2LVx1MDAzZXB0cF9jbG9ja19vcHMsIFx1MDAyNmN1cnJlbnRfdGltZSk7XG4tXHRcdGN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTtcbi1cdFx0dGltZS50dl9uc2VjID0gcHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF07XG4tXHRcdHRpbWUudHZfc2VjID0gcHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV07XG4tXHRcdGJhc2V0aW1lID0gdGltZXNwZWM2NF90b19rdGltZSh0aW1lKTtcbi1cdFx0Y3ljbGVfdGltZSA9ICh1NjQpcHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzFdICogTlNFQ19QRVJfU0VDICtcbi1cdFx0XHQgICAgIHByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clswXTtcbi1cdFx0dGltZSA9IHN0bW1hY19jYWxjX3Rhc19iYXNldGltZShiYXNldGltZSxcbi1cdFx0XHRcdFx0XHRjdXJyZW50X3RpbWVfbnMsXG4tXHRcdFx0XHRcdFx0Y3ljbGVfdGltZSk7XG4tXG4tXHRcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuLVx0XHRwcml2LVx1MDAzZWVzdC1cdTAwM2VidHJbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xuIFx0XHRwcml2LVx1MDAzZWVzdC1cdTAwM2VlbmFibGUgPSB0cnVlO1xuLVx0XHRyZXQgPSBzdG1tYWNfZXN0X2NvbmZpZ3VyZShwcml2LCBwcml2LCBwcml2LVx1MDAzZWVzdCxcbi1cdFx0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4tXHRcdG11dGV4X3VubG9jayhcdTAwMjZwcml2LVx1MDAzZWVzdF9sb2NrKTtcbi1cdFx0aWYgKHJldClcbi1cdFx0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcImZhaWxlZCB0byBjb25maWd1cmUgRVNUXFxuXCIpO1xuK1x0XHRzdG1tYWNfc2V0dXBfZXN0KHByaXYpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuY1xuaW5kZXggMTRjYWJlNzZlNTNlYy4uYjQxZGYzMTdkNzNjYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY190Yy5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuY1xuQEAgLTEwLDYgKzEwLDcgQEBcbiAjaW5jbHVkZSBcImR3bWFjNC5oXCJcbiAjaW5jbHVkZSBcImR3bWFjNS5oXCJcbiAjaW5jbHVkZSBcInN0bW1hYy5oXCJcbisjaW5jbHVkZSBcInN0bW1hY19lc3QuaFwiXG4gXG4gc3RhdGljIHZvaWQgdGNfZmlsbF9hbGxfcGFzc19lbnRyeShzdHJ1Y3Qgc3RtbWFjX3RjX2VudHJ5ICplbnRyeSlcbiB7XG5AQCAtOTY4LDggKzk2OSw3IEBAIHN0YXRpYyBpbnQgdGNfdGFwcmlvX2NvbmZpZ3VyZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4ge1xuIFx0dTMyIHNpemUsIHdpZCA9IHByaXYtXHUwMDNlZG1hX2NhcC5lc3R3aWQsIGRlcCA9IHByaXYtXHUwMDNlZG1hX2NhcC5lc3RkZXA7XG4gXHRzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2sgPSBxb3B0LVx1MDAzZW1xcHJpby5leHRhY2s7XG4tXHRzdHJ1Y3QgdGltZXNwZWM2NCB0aW1lLCBjdXJyZW50X3RpbWUsIHFvcHRfdGltZTtcbi1cdGt0aW1lX3QgY3VycmVudF90aW1lX25zO1xuK1x0c3RydWN0IHRpbWVzcGVjNjQgdGltZTtcbiBcdGludCBpLCByZXQgPSAwO1xuIFx0dTY0IGN0cjtcbiBcbkBAIC0xMDY5LDM0ICsxMDY5LDIzIEBAIHN0YXRpYyBpbnQgdGNfdGFwcmlvX2NvbmZpZ3VyZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHR9XG4gXG4gXHRtdXRleF9sb2NrKFx1MDAyNnByaXYtXHUwMDNlZXN0X2xvY2spO1xuLVx0LyogQWRqdXN0IGZvciByZWFsIHN5c3RlbSB0aW1lICovXG4tXHRwcml2LVx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFx1MDAyNnByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcywgXHUwMDI2Y3VycmVudF90aW1lKTtcbi1cdGN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTtcbi1cdHRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUocW9wdC1cdTAwM2ViYXNlX3RpbWUsIGN1cnJlbnRfdGltZV9ucyxcbi1cdFx0XHRcdFx0cW9wdC1cdTAwM2VjeWNsZV90aW1lKTtcbi1cbi1cdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcbiBcbi1cdHFvcHRfdGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC1cdTAwM2ViYXNlX3RpbWUpO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF0gPSAodTMyKXFvcHRfdGltZS50dl9uc2VjO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXFvcHRfdGltZS50dl9zZWM7XG4rXHR0aW1lID0ga3RpbWVfdG9fdGltZXNwZWM2NChxb3B0LVx1MDAzZWJhc2VfdGltZSk7XG4rXHRwcml2LVx1MDAzZWVzdC1cdTAwM2VidHJfcmVzZXJ2ZVswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuK1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xuIFxuIFx0Y3RyID0gcW9wdC1cdTAwM2VjeWNsZV90aW1lO1xuIFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzBdID0gZG9fZGl2KGN0ciwgTlNFQ19QRVJfU0VDKTtcbiBcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clsxXSA9ICh1MzIpY3RyO1xuIFxuIFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNldGVyID0gcW9wdC1cdTAwM2VjeWNsZV90aW1lX2V4dGVuc2lvbjtcbi1cbiBcdHRjX3RhcHJpb19tYXBfbWF4c2R1X3R4cShwcml2LCBxb3B0KTtcbiBcbi1cdHJldCA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXHUwMDNlZXN0LFxuLVx0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4gXHRtdXRleF91bmxvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4tXHRpZiAocmV0KSB7XG4tXHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiZmFpbGVkIHRvIGNvbmZpZ3VyZSBFU1RcXG5cIik7XG4rXG4rXHRyZXQgPSBzdG1tYWNfc2V0dXBfZXN0KHByaXYpO1xuK1x0aWYgKHJldClcbiBcdFx0Z290byBkaXNhYmxlO1xuLVx0fVxuIFxuIFx0cmV0ID0gc3RtbWFjX2ZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyhwcml2LCBwcml2LVx1MDAzZWRldiwgZXh0YWNrLFxuIFx0XHRcdFx0XHQgICAgICBxb3B0LVx1MDAzZW1xcHJpby5wcmVlbXB0aWJsZV90Y3MpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MDg6MzAuODIyNTI3ODA5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTUwNTM4OTI3ODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBGZWFzaWJpbGl0eSBBc3Nlc3NtZW50KipcblxuT2theSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgZnV6emluZyB0aGlzIGNvZGUgaXMgZXZlbiB3b3J0aHdoaWxlLiBJdCBsb29rcyBsaWtlIGl0IHRvdWNoZXMgdGhlIGBzdG1tYWNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2AgZGlyZWN0b3J5LiBJIHNlZSBtb2RpZmljYXRpb25zIGluIGBzdG1tYWNfZXN0LmNgLCBgc3RtbWFjX2VzdC5oYCwgYHN0bW1hY19tYWluLmNgLCBgc3RtbWFjX3B0cC5jYCwgYW5kIGBzdG1tYWNfdGMuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSB0aGUgaW50cm9kdWN0aW9uIG9mIHRoaXMgYHN0bW1hY19zZXR1cF9lc3RgIGZ1bmN0aW9uLiBJdCBsb29rcyBsaWtlIGBfX3N0bW1hY19vcGVuKClgIGNhbGxzIGl0IGlmIGBwcml2LVx1MDAzZWVzdCBcdTAwMjZcdTAwMjYgcHJpdi1cdTAwM2Vlc3QtXHUwMDNlZW5hYmxlYC4gVGhlIG90aGVyIGNoYW5nZXMgcmVmYWN0b3Igc29tZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5IGluIGBzdG1tYWNfYWRqdXN0X3RpbWUoKWAgYW5kIGB0Y190YXByaW9fY29uZmlndXJlKClgIHRvIG1ha2UgdXNlIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG5cbkJlZm9yZSBJIGNvbW1pdCB0byBhbnl0aGluZywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGhhcmR3YXJlIGRlcGVuZGVuY2llcyBoZXJlLiBgc3RtbWFjYCBpcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBFdGhlcm5ldCBNQUMgYW5kIFNUTWljcm9lbGVjdHJvbmljcycgaW1wbGVtZW50YXRpb24sIHJpZ2h0PyBJcyB0aGlzIHNvbWV0aGluZyB0aGF0J3MgbGlrZWx5IHRvIGJlIHByZXNlbnQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUsIG9yIGlzIGl0IHNwZWNpZmljIGhhcmR3YXJlPyBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgYHN0bW1hY2AgaXMgY29tbW9ubHkgdXNlZC4gQ2FuIEkgcmVhc29uYWJseSBleHBlY3QgdG8gZmluZCBlbXVsYXRlZCBgc3RtbWFjYCBkZXZpY2VzIGluIFFFTVUsIG9yIGRvIEkgbmVlZCB0byBodW50IGZvciBhY3R1YWwgUENJIGBzdG1tYWNgIGRldmljZXMgZm9yIHRlc3Rpbmc/IExldCBtZSBkbyBhIHF1aWNrIGBncmVwYCBpbiB0aGUgYEtjb25maWdgIGZpbGVzIGFuZCBkcml2ZXIgZGlyZWN0b3JpZXMgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGl0cyBjb25maWd1cmF0aW9uIGFuZCB1c2FnZS4gSSB3YW50IHRvIHNlZSBob3cgcmVhZGlseSBJIGNhbiBidWlsZCBhIHRlc3QgZW52aXJvbm1lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxMzAsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowODo0NS44NzY0MjIyNTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEzNjMzNjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTg9aWYgU1RNTUFDX0VUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTpjb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBsYXRmb3JtIGJ1cyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzE9ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowODo0NS45OTAwNjAwNzVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1MjcyMjg0NTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNUTU1BQyBEcml2ZXIgYW5kIGl0cyBXb3J0aGluZXNzIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgZW11bGF0aW9uIHNpdHVhdGlvbiBmb3IgYHN0bW1hY2AuIElzIHRoaXMgYSBzdGFuZGFyZCBRRU1VIGVtdWxhdGVkIGRldmljZSwgb3IgYXJlIHdlIGxvb2tpbmcgYXQgc29tZXRoaW5nIHNwZWNpZmljIHRvIGEgcGFydGljdWxhciBTeXN0ZW0tb24tQ2hpcCAoU29DKSBvciBJbnRlbCBQQ0kgbGlrZSBRdWFyayBvciBFbGtoYXJ0IExha2U/XG5cblRoZSBuZXh0IHRoaW5nIEknbSBhc2tpbmcgbXlzZWxmIGlzLCB3aGljaCBRRU1VIG1hY2hpbmVzIGFjdHVhbGx5ICp1c2UqIGBkd21hY2Agb3IgYHN0bW1hY2A/IE9yLCBpcyB0aGlzIHNvbWV0aGluZyB0aGF0IGFsd2F5cyBwb2ludHMgdG8gcGh5c2ljYWwgaGFyZHdhcmU/IEknbSBzcGVjaWZpY2FsbHkgcmVmZXJlbmNpbmcgdGhlIGV0aGVybmV0IGNvbnRyb2xsZXIgZHJpdmVycyBoZXJlLlxuXG5Ib2xkIG9uLCBsZXQgbWUgcXVpY2tseSByZXZpZXcgdGhlc2UgaW5zdHJ1Y3Rpb25zLiBUaGV54oCZcmUgZ2l2aW5nIGNyaXRlcmlhIGZvciBkZXRlcm1pbmluZyBpZiBzb21ldGhpbmcgaXMgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIi4gSG1tLCB0aGUga2V5IHBvaW50cyBoZXJlIGFyZTogdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUgZXZlbiB3aXRoIGVtdWxhdGVkIGhhcmR3YXJlLCBzdWNoIGFzIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0pLCB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyB0aGF0IG5lZWQgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSAobGlrZSBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgZXRjLiB3aGljaCBhcmUgdGhlIHNvcnQgb2YgdGhpbmdzIEkgZGVhbCB3aXRoIG9uIGEgcmVndWxhciBiYXNpcyksIGFuZCBkcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIHRoYXQgYXJlIG9ubHkgZXhlY3V0ZWQgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuU28sIGNpcmNsaW5nIGJhY2ssIGRvZXMgUUVNVSBoYXZlIHByb3BlciBlbXVsYXRpb24gb2YgU1RNTUFDP1xuXG5Fc3NlbnRpYWxseSwgY2FuIEkgZ2V0IGl0IHRvIHdvcms/IERvZXMgUUVNVSBldmVuIGVtdWxhdGUgYGR3bWFjYCBvciBgc3RtbWFjYCBldGhlcm5ldD8gSSBuZWVkIHRvIGtub3cuXG5cbk5vdywgSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggUUVNVSBwbGF0Zm9ybXMgc3VwcG9ydCBgc3RtbWFjYCBuYXRpdmVseSwgd2hldGhlciBpdOKAmXMgdXNlZCB3aXRoIEFsbHdpbm5lciBTdW54aSwgU1RNMzIsIGV0Yy4gT3IsIGNhbiBJIHJlYWNoIGl0IG9uIHN0YW5kYXJkIHg4Nl82NCBvciBhcm02NCBmdXp6aW5nIHRhcmdldHM/XG5cbkkgc2hvdWxkIHJlYWxseSBmaWd1cmUgb3V0IHdoZXRoZXIgaXQgaXMgYWN0dWFsbHkgcHJvYmUtYWJsZSBvciBpbnN0YW50aWF0ZWQuXG5cbk9rYXksIGxldCdzIGRpZyBpbnRvIHRoZSBjb2RlLiBJJ2xsIG5lZWQgdG8gbG9vayBhdCBgc3RtbWFjX3BjaS5jYCBhbmQgYGR3bWFjXyouY2AgYW5kIHNlZSB3aGljaCBzcGVjaWZpYyBjaGlwcyB0aGV5IHN1cHBvcnQuIFRoaXMgd2lsbCBnaXZlIG1lIHNvbWUgc29saWQgYW5zd2Vycy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjM0NiwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowODo1MS4yNjIzNDY0OTFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIzMzE0OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRXxwY2lfZGV2aWNlX2lkfHBsYXRmb3JtX2RldmljZV9pZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTE5PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFuYXJpb25fZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjItfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTIzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFuYXJpb25fZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkd2NfZXRoX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM1OC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzU5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGR3Y19ldGhfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzYwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jPTM1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBlaWM3NzAwX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmMtMzU5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jOjM2MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlaWM3NzAwX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmMtMzYxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jPTUyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGR3bWFjX2dlbmVyaWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy02Ni19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYzo2NzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkd21hY19nZW5lcmljX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtNjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYz0zODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW14X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zODktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYzozOTA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaW14X2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM9MjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGluZ2VuaWNfbWFjX29mX21hdGNoZXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yNjktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM6MjcwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGluZ2VuaWNfbWFjX29mX21hdGNoZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yNzEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW50ZWxfZXRoX3BsYXRfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy0zOS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYzo0MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbnRlbF9ldGhfcGxhdF9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jLTQxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMjYzPXN0YXRpYyBpbnQgaW50ZWxfZXRoX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEyNjQ6XFx0XFx0XFx0ICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMzYyPXN0YXRpYyB2b2lkIGludGVsX2V0aF9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMzk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTM5NTpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaW50ZWxfZXRoX3BjaV9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTM5Ni1cXHR7IFBDSV9ERVZJQ0VfREFUQShJTlRFTCwgUVVBUkssIFxcdTAwMjZxdWFya19pbmZvKSB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxNDE1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBpbnRlbF9ldGhfcGNpX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM9NDkxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwcTgwNnhfZ21hY19kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ5NC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYzo0OTU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaXBxODA2eF9nbWFjX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDk2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz00Nzk9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy00OTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo0OTg6c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNDk5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NTc4PXN0YXRpYyB2b2lkIGxvb25nc29uX2R3bWFjX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBsb29uZ3Nvbl9kd21hY19pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTk3LVxcdHsgUENJX0RFVklDRV9EQVRBKExPT05HU09OLCBHTUFDMSwgXFx1MDAyNmxvb25nc29uX2dtYWNfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYwMS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NjAyOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBsb29uZ3Nvbl9kd21hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHMxeF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjI2LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MjI3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGxzMXhfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTIyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBscGMxOHh4X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNzQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6NzU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbHBjMTh4eF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYz02NjI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMtNjY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM6NjcwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lZGlhdGVrX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTY3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM9NzY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVzb242X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTc5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYzo4MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtZXNvbjZfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtODEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM9NDgyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uOGJfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM6NTA1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lc29uOGJfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yNjQ9c3RhdGljIGludCBtb3RvcmNvbW1fc2V0dXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjI5MzpzdGF0aWMgaW50IG1vdG9yY29tbV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI5NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0zNjI9c3RhdGljIHZvaWQgbW90b3Jjb21tX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzozNjc6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGR3bWFjX21vdG9yY29tbV9wY2lfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNjgtXFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTU9UT1JDT01NLCAweDY4MDEpIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNzAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzozNzE6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGR3bWFjX21vdG9yY29tbV9wY2lfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYz0xMTg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbnZ0X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMTIxLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jOjEyMjpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBudnRfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0xMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jPTgwMD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBxY29tX2V0aHFvc19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy04MDYtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jOjgwNzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBxY29tX2V0aHFvc19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy04MDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM9MjE2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJlbmVzYXNfZ2JldGhfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yMjEtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MjIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJlbmVzYXNfZ2JldGhfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE2MTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcmtfZ21hY19kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNjM0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYzoxNjM1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJrX2dtYWNfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTYzNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYz03NT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCByem4xX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtNzgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmM6Nzk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcnpuMV9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTgwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM9MjE2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHMzMl9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMjE5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM6MjIwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHMzMl9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMjIxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTY3Mz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjc4LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjY3OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzb2NmcGdhX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjgwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmM9NzI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc29waGdvX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy03Ni19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjc3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvcGhnb19kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmMtNzgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jPTIxMD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzcGFjZW1pdF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yMTMtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jOjIxNDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzcGFjZW1pdF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jPTE2MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGFyZml2ZV9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xNjQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjE2NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdGFyZml2ZV9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xNjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYz0yOTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3RpX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yOTktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYzozMDA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3RpX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0zMDEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jPTY2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdG0zMl9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy02NjgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jOjY2OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdG0zMl9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy02NzAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYz0xNDE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuNTVpX2dtYWMyMDBfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTE0NC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jOjE0NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW41NWlfZ21hYzIwMF9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYz0xMjY4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN1bjhpX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jLTEyODItfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jOjEyODM6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3VuOGlfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTI4NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM9MTUwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN1bjdpX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE1My19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM6MTU0Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN1bjdpX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM9Mzk3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRlZ3JhX21nYmVfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtNDAwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYzo0MDE6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdGVncmFfbWdiZV9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy00MDItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jPTI2Nz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB0aGVhZF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yNzAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jOjI3MTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0aGVhZF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yNzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jPTI1NT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB2aXNjb250aV9ldGhfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmMtMjU4LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYzoyNTk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdmlzY29udGlfZXRoX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jLTI2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0xMTg9c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTk6XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0xOTI9c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDM6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHN0bW1hY19pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDQtXFx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFxcdTAwMjZzdG1tYWNfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MDg6NTEuMzE0NjgwOTcxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTE4Mjg1MTA4MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHN0bW1hYyBFbXVsYXRpb24gaW4gUUVNVSBhbmQgU3l6a2FsbGVyIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJJ20gbG9va2luZyBhdCBgc3RtbWFjYCwgdGhlIHBoeXNpY2FsIEV0aGVybmV0IE1BQyBjb250cm9sbGVyIGRyaXZlciB1c2VkIGFjcm9zcyBhIHJhbmdlIG9mIFNvQ3MgYW5kIFBDSSBkZXZpY2VzIOKAkyBTVE0zMiwgQWxsd2lubmVyLCBSb2NrY2hpcCwgSW50ZWwsIFRlZ3JhLCBhbmQgc28gb24uIE15IGluaXRpYWwgdGhvdWdodCBpcywgaXMgdGhpcyB0aGluZyBlbXVsYXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQgb3Igb24gR0NFPyBTcGVjaWZpY2FsbHksIGRvZXMgc3RhbmRhcmQgUUVNVSBldmVuICpoYW5kbGUqIGBzdG1tYWNgIG9yIGBkd21hY2A/XG5cbkkgbmVlZCB0byBjb25maXJtIHRoYXQuIExldCBtZSByZXBocmFzZTogZG9lcyBRRU1VIG9mZmVyIGFueSBlbXVsYXRpb24gb2YgYHN0bW1hY2Agb3IgYGR3bWFjYD8gT3IsIGRvZXMgaXQgZGVwZW5kIG9uIHJlYWwsIHBoeXNpY2FsIFNvQyBvciBQQ0llIGhhcmR3YXJlIHdoaWNoIGlzIG5vdCBlbXVsYXRlZD8gSSdsbCByZS1jaGVjayB3aGF0IHNwZWNpZmljIFFFTVUgbWFjaGluZXMgbWlnaHQgaW5jbHVkZSBkd21hYyBvciBzdG1tYWMsIG9yIGlmIGl0J3MgY29uc2lkZXJlZCBleGNsdXNpdmVseSBhIHBoeXNpY2FsIGhhcmR3YXJlIGNvbXBvbmVudC5cblxuQSBxdWljayByZXZpZXcgb2YgYXZhaWxhYmxlIFFFTVUgbmV0d29yayBkZXZpY2Vz4oCUZTEwMDAsIGlnYiwgdmlydGlvLW5ldCwgZXRjLuKAlHNob3dzIG1hbnkgZW11bGF0ZWQgTklDcy4gT24gdGhlIEFSTSBzaWRlLCBJIHNlZSBzb21lIG1vcmUgc3BlY2lmaWMgZW11bGF0aW9ucywgbGlrZSBzbWM5MWMxMTEgYW5kIGlteF9mZWMuIExvb2tpbmcgYXQgdGhlIEFsbHdpbm5lciBzdW40aS9zdW44aSBvZmZlcmluZ3MgaW4gUUVNVSwgdGhlIGVtdWxhdGVkIGRldmljZXMgYXJlIGBhbGx3aW5uZXItZW1hY2AgYW5kIGBhbGx3aW5uZXItc3VuOGktZW1hY2AuIEludGVyZXN0aW5nLiBCdXQsIGRvIHRoZXNlIHJlbGF0ZSB0byB0aGUgRFdNQUMgb3Igc3RtbWFjIGRyaXZlcnM/IE5vLCB0aGUgYGFsbHdpbm5lci1zdW44aS1lbWFjLmNgIGZpbGUgcHJvdmlkZXMgc29tZSBjbGFyaXR5LlxuXG5Pa2F5LCBiYWNrIHRvIHRoZSBjb3JlIHF1ZXN0aW9uOiBEb2VzIFFFTVUgKmFjdHVhbGx5KiBlbXVsYXRlIFNUTU1BQyAvIERXTUFDP1xuXG5FdmVuIGlmIHRoZXJlJ3Mgc29tZSBvYnNjdXJlIGJvYXJkIGVtdWxhdGlvbiBvdXQgdGhlcmUsIGxldCdzIGNvbnNpZGVyIHRoZSBmdXp6aW5nIHBlcnNwZWN0aXZlIHdpdGggc3l6a2FsbGVyLiBJIG5lZWQgdG8gcmVmZXIgYmFjayB0byBob3cgc3l6a2FsbGVyIGZ1enplcyBhbmQgd2hhdCB0aGUgaW5zdHJ1Y3Rpb24gc2V0IHNheXMgYWJvdXQgaXRzIHVzZSBjYXNlcy4gU3BlY2lmaWNhbGx5LCBzeXprYWxsZXIgd2lsbCBcIlJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2VcIiBpZiB0aGUgcGF0Y2ggb25seSBpbmNsdWRlcyBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpLCBldmVuIHdoZW4gdXNpbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIEl0IGFsc28gZXhjbHVkZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoIGRyaXZlcnMsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4gQWRkaXRpb25hbGx5LCBpdCBza2lwcyBkcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzLiBJIG11c3Qga2VlcCB0aGlzIGluIG1pbmQuXG5cbk5vdywgbGV0J3Mgc3RlcCBiYWNrIGEgYml0IGFuZCBjb25zaWRlciB0aGUgZ2VuZXJhbCBsYW5kc2NhcGUgb2YgZXRoZXJuZXQgZHJpdmVycywgbG9jYXRlZCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvKmAuIExpbnV4IGtlcm5lbCBmdXp6aW5nIHdpdGggc3l6a2FsbGVyIG9wZXJhdGVzIHdpdGhpbiBzdGFuZGFyZCBRRU1VICh4ODZfNjQsIGFybTY0KSBvciBHQ0UgVk1zLiBUaGUgZXRoZXJuZXQgZHJpdmVycyBpbiB0aGF0IGRpcmVjdG9yeSBhcmUgcHJpbWFyaWx5IGZvciBzcGVjaWZpYyBoYXJkd2FyZSBOSUNzIChsaWtlIEludGVsIGUxMDAwLCByODE2OSwgQnJvYWRjb20gdGczLCBNZWxsYW5veCBtbHg0L21seDUsIENoZWxzaW8gY3hnYiwgZXRjLikgYW5kIHRoZXkgYXJlIG9mdGVuIGVtdWxhdGVkIGluIFFFTVUuXG5cbkJ1dCBub3csIGJhY2sgdG8gdGhlIGNlbnRyYWwgcXVlc3Rpb246IElzIGBzdG1tYWNgIGhhcmR3YXJlIHByZXNlbnQgd2l0aGluIHRoZXNlIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cyB1c2VkIGZvciBmdXp6aW5nPyBGcm9tIGV2ZXJ5dGhpbmcgSSd2ZSBzZWVuLCBpdCdzIGNsZWFyOiBOby4gVGhlIHN0YW5kYXJkIFFFTVUgeDg2XzY0IC8gYXJtNjQgVk1zIHVzZWQgYnkgc3l6a2FsbGVyIGRvICpub3QqIGluc3RhbnRpYXRlIGBzdG1tYWNgIGRldmljZXMuIEl0IGlzbid0IHBhcnQgb2YgdGhhdCBzdGFuZGFyZCBlbnZpcm9ubWVudC5cblxuU28sIGxldCdzIHJlLWV2YWx1YXRlOiBjYW4gSSBpbnN0YW50aWF0ZSBgc3RtbWFjYCB1c2luZyBhIHBsYXRmb3JtIGRldmljZSBvciBuZXRsaW5rIG9yIHNvbWUgbW9jayBmcmFtZXdvcms/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlIGFyZSB2aXJ0dWFsIG9yIG1vY2sgYHN0bW1hY2AgZHJpdmVycyBhcm91bmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzNjU2LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Nzg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjA5OjAzLjE0MzE5NDk1M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Njg3MjczMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIuKnN0bW1hY3xzdG1tYWNfcHJvYmVfY29uZmlnX2R0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEwNS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjgzPXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDc6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jPTE2Nz1zdGF0aWMgaW50IGVpYzc3MDBfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYy0xODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jOjE4MTpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTE4Mi1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYz0xOT1zdGF0aWMgaW50IGR3bWFjX2dlbmVyaWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy0yOS1cXHRpZiAocGRldi1cXHUwMDNlZGV2Lm9mX25vZGUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmM6MzA6XFx0XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy0zMS1cXHRcXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM9MjkzPXN0YXRpYyBpbnQgaW14X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zMDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM6MzA5OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zMTAtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM9MTU0PXN0YXRpYyBpbnQgaW5nZW5pY19tYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0xNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jOjE2NzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jLTE2OC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYz00Mj1zdGF0aWMgaW50IGludGVsX2V0aF9wbGF0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jOjU0OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNTUtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYz0zNzQ9c3RhdGljIGludCBpcHE4MDZ4X2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYy0zODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjM4NzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTM4OC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jPTE1OD1zdGF0aWMgaW50IGxzMXhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTE4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYzoxODg6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTE4OS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYz00Mj1zdGF0aWMgaW50IGxwYzE4eHhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6NTM6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01NC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM9NTk5PXN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMtNjMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM6NjMxOlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTYzMi1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM9NDc9c3RhdGljIGludCBtZXNvbjZfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYzo1ODpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYy01OS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYz0zODI9c3RhdGljIGludCBtZXNvbjhiX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtMzkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzozOTM6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy0zOTQtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM9ODI9c3RhdGljIGludCBudnRfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYzo5NDpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTk1LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYz02ODQ9c3RhdGljIGludCBxY29tX2V0aHFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy02OTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYzo2OTk6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtNzAwLVxcdGlmIChJU19FUlIocGxhdF9kYXQpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM9MTMxPXN0YXRpYyBpbnQgcmVuZXNhc19nYmV0aF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTE0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MTQ2OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmMtMTQ3LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYz0xNTY4PXN0YXRpYyBpbnQgcmtfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNTg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTU4NTpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNTg2LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jPTQ4PXN0YXRpYyBpbnQgcnpuMV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYzo1OTpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTYwLVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM9MTQ0PXN0YXRpYyBpbnQgczMyX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0xNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM6MTYzOlxcdHBsYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTY0LVxcdGlmIChJU19FUlIocGxhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NTk2PXN0YXRpYyBpbnQgc29jZnBnYV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTYxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NjE1OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjE2LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmM9MzU9c3RhdGljIGludCBzb3BoZ29fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjQ4OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy00OS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM9MTQ3PXN0YXRpYyBpbnQgc3BhY2VtaXRfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM6MTY5OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTE3MC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9OTA9c3RhdGljIGludCBzdGFyZml2ZV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxMDM6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTA0LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM9MjQ5PXN0YXRpYyBpbnQgc3RpX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM6MjY3OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yNjgtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jPTUyNT1zdGF0aWMgaW50IHN0bTMyX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTUzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jOjUzNzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy01MzgtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYz0xMDU9c3RhdGljIGludCBzdW41NWlfZ21hYzIwMF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jOjExNzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTE4LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYz0xMTA1PXN0YXRpYyBpbnQgc3VuOGlfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTE3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jOjExNzQ6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTE3NS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM9OTk9c3RhdGljIGludCBzdW43aV9nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTExMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jOjExMTpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYy0xMTItXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzIwOlxcdHBsYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjEtXFx0aWYgKElTX0VSUihwbGF0KSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYz0yMTY9c3RhdGljIGludCB0aGVhZF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYzoyMzA6XFx0cGxhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yMzEtXFx0aWYgKElTX0VSUihwbGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM9MjA1PXN0YXRpYyBpbnQgdmlzY29udGlfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jLTIxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jOjIxNjpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yMTctXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz0zOTM9c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzdG1tYWNfZ21hYzRfY29tcGF0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNDA1LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjQwNjogKiBzdG1tYWNfcHJvYmVfY29uZmlnX2R0IC0gcGFyc2UgZGV2aWNlLXRyZWUgZHJpdmVyIHBhcmFtZXRlcnNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy00MDctICogQHBkZXY6IHBsYXRmb3JtX2RldmljZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTQxMz1zdGF0aWMgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo0MTQ6c3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTQxNS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz02NDE9c3RhdGljIHZvaWQgZGV2bV9zdG1tYWNfcmVtb3ZlX2NvbmZpZ19kdCh2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjUxLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY1MjogKiBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NTMtICogQHBkZXY6IHBsYXRmb3JtX2RldmljZSBzdHJ1Y3R1cmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NTQtICogQG1hYzogTUFDIGFkZHJlc3MgdG8gdXNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NjU1OiAqIERlc2NyaXB0aW9uOiBEZXZyZXMgdmFyaWFudCBvZiBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KCkuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjU2LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTY1Nz1zdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY1ODpkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdTggKm1hYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY2MzpcXHRwbGF0ID0gc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBtYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY2NC1cXHRpZiAoSVNfRVJSKHBsYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM9Njc1PXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6Njc2OmRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02ODAtI2VuZGlmIC8qIENPTkZJR19PRiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY4MTpFWFBPUlRfU1lNQk9MX0dQTChkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5oPTE0PXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmg6MTU6ZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5oLTE2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowOTowMy4xOTAwNzE0MjNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo4Mzk1MzA0MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBCYXNlZCBvbiB0aGUgZmlsZXMgSSdtIHNlZWluZywgdGhlc2UgbG9vayBsaWtlIHBsYXRmb3JtLXNwZWNpZmljIG9yIFBDSSBkcml2ZXJzIGZvciB0aGUgU1RNTUFDL0RXTUFDIEV0aGVybmV0IE1BQyBmcm9tIFN5bm9wc3lzIERlc2lnbldhcmUuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIGNhbiB0ZWxsIHRoZXNlIGFyZSAqbm90KiB2aXJ0dWFsIG5ldHdvcmsgZGV2aWNlcyBsaWtlIHR1biwgdGFwLCBvciBldmVuIHNvbWV0aGluZyBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LlxuXG5Ob3csIGxldCdzIGdvIGJhY2sgYW5kIGNhcmVmdWxseSBhcHBseSB0aGUgcHJvbXB0J3MgZXhjbHVzaW9uIGNyaXRlcmlhLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcuIEknbSBmb2N1c2luZyBvbiB0aGUgc3BlY2lmaWMgY2hlY2tzOiBkb2N1bWVudGF0aW9uLCBjb25maWcgZmlsZXMsIGNvbW1lbnRzLCBsb2dnaW5nLCBjb25zdGFudHMsIHVucmVhY2hhYmxlIGNvZGUgaW4gc3RhbmRhcmQgUUVNVSwgdmVuZG9yLXNwZWNpZmljIFBDSWUvU21hcnROSUMvR1BVIGRyaXZlcnMsIGFuZCBkcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzLlxuXG5TcGVjaWZpY2FsbHksIHRoZSBzdG1tYWMgZHJpdmVyIGlzIGRlc2lnbmVkIHRvIHdvcmsgd2l0aCBTeW5vcHN5cyBEZXNpZ25XYXJlIGFuZCBTVE1pY3JvZWxlY3Ryb25pY3MgTUFDIGhhcmR3YXJlLiBUaGlzIG1lYW5zIGl0ICpuZWVkcyogcmVhbCBoYXJkd2FyZSBvciBhIHBhcnRpY3VsYXIgU29DIHBsYXRmb3JtOyBpdCdzICpub3QqIHNvbWV0aGluZyB0aGF0J3MgcHJvcGVybHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudC4gVGhpcyBpbW1lZGlhdGVseSBzdWdnZXN0cyBpdHMgY29kZSBwYXRocyBhcmUgbGFyZ2VseSBvZmYtbGltaXRzIHRvIGZ1enppbmcgaW4gdGhlc2Ugc3RhbmRhcmQgdmlydHVhbGl6ZWQgc2V0LXVwcy5cblxuR2l2ZW4gdGhhdCwgSSdtIGNvbmZpZGVudCBpbiBzYXlpbmcgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGBmYWxzZWAuIFRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIGFyZSB3aXRoaW4gdGhlIFNUTWljcm9lbGVjdHJvbmljcy9TeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyAoc3RtbWFjKSBkcml2ZXIuIEl0J3MgYSBoYXJkd2FyZS1zcGVjaWZpYyBuZXR3b3JrIGRyaXZlciB0aGF0IGRlbWFuZHMgcGh5c2ljYWwgaGFyZHdhcmUvU29Dcywgd2hpY2ggYXJlIG5vdCBhY2Nlc3NpYmxlIHdpdGhpbiB0aGUgY29uZmluZXMgb2Ygc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBhbmQgR0NFLiBUaGVyZWZvcmUsIEknbSBnb2luZyB0byBzZXQgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCB0byBlbXB0eSBhbmQgbWFrZSB0aGlzIGRlY2lzaW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTc2MiwiT3V0cHV0VG9rZW5zIjo5NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowOToxMS41ODUzNzc2NjlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU1RNaWNyb2VsZWN0cm9uaWNzIC8gU3lub3BzeXMgRGVzaWduV2FyZSBFdGhlcm5ldCBNQUMgKHN0bW1hYykgZHJpdmVyIHRvIHJlLWFwcGx5IHRhcHJpbyBFU1Qgb2ZmbG9hZGluZyB1cG9uIGludGVyZmFjZSB1cCBhbmQgdGltZSBhZGp1c3RtZW50cy4gVGhpcyBkcml2ZXIgdGFyZ2V0cyBwaHlzaWNhbCBTb0MvUENJIGhhcmR3YXJlIGFuZCBpcyBub3QgYXZhaWxhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU1RNaWNyb2VsZWN0cm9uaWNzIC8gU3lub3BzeXMgRGVzaWduV2FyZSBFdGhlcm5ldCBNQUMgKHN0bW1hYykgZHJpdmVyIHRvIHJlLWFwcGx5IHRhcHJpbyBFU1Qgb2ZmbG9hZGluZyB1cG9uIGludGVyZmFjZSB1cCBhbmQgdGltZSBhZGp1c3RtZW50cy4gVGhpcyBkcml2ZXIgdGFyZ2V0cyBwaHlzaWNhbCBTb0MvUENJIGhhcmR3YXJlIGFuZCBpcyBub3QgYXZhaWxhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowOToxMS41ODU0MDA5MjlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow2ds4x[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-29 10:07:07 +0000 UTC FinishedAt: 2026-08-29 10:09:13 +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+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjA4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDowODwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDMyNzIyYTIyYTdmNzQwMDI3ZmUyMmZiMWQ0ZTdiZjA1MGFmY2NhNjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDowODoyNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmNcbmluZGV4IGFmYzUxNjA1OWI4OTcuLmJiZWJkMzNjOGE4ODMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xuQEAgLTgwLDYgJiM0Mzs4MCwzOSBAQCBzdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiM0MztpbnQgc3RtbWFjX3NldHVwX2VzdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgdGltZXNwZWM2NCBjdXJyZW50X3RpbWUsIHRpbWU7XG4mIzQzO1x0a3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lO1xuJiM0MztcdHU2NCBjeWNsZV90aW1lO1xuJiM0MztcdGludCBlcnI7XG4mIzQzO1xuJiM0MztcdG11dGV4X2xvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4mIzQzO1xuJiM0MztcdHByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoXHUwMDI2cHJpdi1cdTAwM2VwdHBfY2xvY2tfb3BzLCBcdTAwMjZjdXJyZW50X3RpbWUpO1xuJiM0MztcdGN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTtcbiYjNDM7XG4mIzQzO1x0dGltZS50dl9uc2VjID0gcHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF07XG4mIzQzO1x0dGltZS50dl9zZWMgPSBwcml2LVx1MDAzZWVzdC1cdTAwM2VidHJfcmVzZXJ2ZVsxXTtcbiYjNDM7XHRiYXNldGltZSA9IHRpbWVzcGVjNjRfdG9fa3RpbWUodGltZSk7XG4mIzQzO1xuJiM0MztcdGN5Y2xlX3RpbWUgPSAodTY0KXByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clsxXSAqIE5TRUNfUEVSX1NFQyAmIzQzOyBwcml2LVx1MDAzZWVzdC1cdTAwM2VjdHJbMF07XG4mIzQzO1xuJiM0MztcdHRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUoYmFzZXRpbWUsIGN1cnJlbnRfdGltZV9ucywgY3ljbGVfdGltZSk7XG4mIzQzO1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzBdID0gKHUzMil0aW1lLnR2X25zZWM7XG4mIzQzO1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcbiYjNDM7XG4mIzQzO1x0ZXJyID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi1cdTAwM2Vlc3QsXG4mIzQzO1x0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4mIzQzO1xuJiM0MztcdG11dGV4X3VubG9jayhcdTAwMjZwcml2LVx1MDAzZWVzdF9sb2NrKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byByZS1jb25maWd1cmUgRVNUXFxuXCYjMzQ7KTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGVycjtcbiYjNDM7fVxuJiM0MztcbiBzdGF0aWMgdm9pZCBlc3RfaXJxX3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdFx0ICAgc3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyAqeCwgdTMyIHR4cWNudClcbiB7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oXG5pbmRleCBmNzAyMjFjOWM4NGFmLi5mNjIwZDMzMzFjMmNjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmhcbkBAIC02NSwzICYjNDM7NjUsNSBAQFxuICNkZWZpbmUgRVNUX0dDTF9EQVRBXHRcdFx0MHgwMDAwMDAzNFxuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgZHdtYWM1MTBfZXN0X29wcztcbiYjNDM7XG4mIzQzO2ludCBzdG1tYWNfc2V0dXBfZXN0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcbmluZGV4IGQ1NzYwNTljMDRkZjkuLmIzMDAzNjQyODE4OGMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5AQCAtNDgsNiAmIzQzOzQ4LDcgQEBcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWNfcHRwLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWNfZnBlLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuJiM0MzsjaW5jbHVkZSBcJiMzNDtzdG1tYWNfZXN0LmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWNfcGNzLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtzdG1tYWNfeGRwLmhcJiMzNDtcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9yZXNldC5oXHUwMDNlXG5AQCAtNDE1MywxMSAmIzQzOzQxNTQsMjIgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRyZXQgPSBzdG1tYWNfaHdfc2V0dXAoZGV2KTtcbiBcdGlmIChyZXQgXHUwMDNjIDApIHtcbiBcdFx0bmV0ZGV2X2Vycihwcml2LVx1MDAzZWRldiwgXCYjMzQ7JXM6IEh3IHNldHVwIGZhaWxlZFxcblwmIzM0OywgX19mdW5jX18pO1xuLVx0XHRnb3RvIGluaXRfZXJyb3I7XG4mIzQzO1x0XHRyZXR1cm4gcmV0O1xuIFx0fVxuIFxuIFx0c3RtbWFjX3NldHVwX3B0cChwcml2KTtcbiBcbiYjNDM7XHQvKiBUaGUgY29yZSBzb2Z0IHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIGNsZWFycyB0aGUgTVRMX0VTVFxuJiM0MztcdCAqIHJlZ2lzdGVycywgc28gcmUtYXBwbHkgdGhlIHRhcHJpbyBvZmZsb2FkIGFmdGVyIFBUUCBpcyB1cC5cbiYjNDM7XHQgKi9cbiYjNDM7XHRpZiAocHJpdi1cdTAwM2Vlc3QgXHUwMDI2XHUwMDI2IHByaXYtXHUwMDNlZXN0LVx1MDAzZWVuYWJsZSkge1xuJiM0MztcdFx0cmV0ID0gc3RtbWFjX3NldHVwX2VzdChwcml2KTtcbiYjNDM7XHRcdGlmIChyZXQgXHUwMDNjIDApIHtcbiYjNDM7XHRcdFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlZW5hYmxlID0gZmFsc2U7XG4mIzQzO1x0XHRcdHJldHVybiByZXQ7XG4mIzQzO1x0XHR9XG4mIzQzO1x0fVxuJiM0MztcbiBcdHN0bW1hY19pbml0X2NvYWxlc2NlKHByaXYpO1xuIFxuIFx0cGh5bGlua19zdGFydChwcml2LVx1MDAzZXBoeWxpbmspO1xuQEAgLTQxODEsNyAmIzQzOzQxOTMsNyBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0aHJ0aW1lcl9jYW5jZWwoXHUwMDI2cHJpdi1cdTAwM2VkbWFfY29uZi50eF9xdWV1ZVtjaGFuXS50eHRpbWVyKTtcbiBcbiBcdHN0bW1hY19yZWxlYXNlX3B0cChwcml2KTtcbi1pbml0X2Vycm9yOlxuJiM0MztcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuY1xuaW5kZXggOTYwMjQ5OTYwMDA0Yy4uOTE3ZWY3ZGRjYWU2MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jXG5AQCAtOCw2ICYjNDM7OCw3IEBAXG4gICBBdXRob3I6IFJheWFnb25kIEtva2F0YW51ciBcdTAwM2NyYXlhZ29uZEB2YXlhdnlhbGFicy5jb21cdTAwM2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuICNpbmNsdWRlIFwmIzM0O3N0bW1hYy5oXCYjMzQ7XG4mIzQzOyNpbmNsdWRlIFwmIzM0O3N0bW1hY19lc3QuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O3N0bW1hY19wdHAuaFwmIzM0O1xuIFxuICNkZWZpbmUgUFRQX1NBRkVfVElNRV9PRkZTRVRfTlNcdDUwMDAwMFxuQEAgLTU1LDcgJiM0Mzs1Niw2IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2FkanVzdF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpXG4gXHR1MzIgcXVvdGllbnQsIHJlbWluZGVyO1xuIFx0aW50IG5lZ19hZGogPSAwO1xuIFx0Ym9vbCB4bWFjLCBlc3RfcnN0ID0gZmFsc2U7XG4tXHRpbnQgcmV0O1xuIFxuIFx0eG1hYyA9IGR3bWFjX2lzX3htYWMocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSk7XG4gXG5AQCAtODQsMzAgJiM0Mzs4NCw4IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2FkanVzdF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpXG4gXG4gXHQvKiBDYWxjdWxhdGUgbmV3IGJhc2V0aW1lIGFuZCByZS1jb25maWd1cmVkIEVTVCBhZnRlciBQVFAgdGltZSBhZGp1c3QuICovXG4gXHRpZiAoZXN0X3JzdCkge1xuLVx0XHRzdHJ1Y3QgdGltZXNwZWM2NCBjdXJyZW50X3RpbWUsIHRpbWU7XG4tXHRcdGt0aW1lX3QgY3VycmVudF90aW1lX25zLCBiYXNldGltZTtcbi1cdFx0dTY0IGN5Y2xlX3RpbWU7XG4tXG4tXHRcdG11dGV4X2xvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4tXHRcdHByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoXHUwMDI2cHJpdi1cdTAwM2VwdHBfY2xvY2tfb3BzLCBcdTAwMjZjdXJyZW50X3RpbWUpO1xuLVx0XHRjdXJyZW50X3RpbWVfbnMgPSB0aW1lc3BlYzY0X3RvX2t0aW1lKGN1cnJlbnRfdGltZSk7XG4tXHRcdHRpbWUudHZfbnNlYyA9IHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0cl9yZXNlcnZlWzBdO1xuLVx0XHR0aW1lLnR2X3NlYyA9IHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0cl9yZXNlcnZlWzFdO1xuLVx0XHRiYXNldGltZSA9IHRpbWVzcGVjNjRfdG9fa3RpbWUodGltZSk7XG4tXHRcdGN5Y2xlX3RpbWUgPSAodTY0KXByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clsxXSAqIE5TRUNfUEVSX1NFQyAmIzQzO1xuLVx0XHRcdCAgICAgcHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzBdO1xuLVx0XHR0aW1lID0gc3RtbWFjX2NhbGNfdGFzX2Jhc2V0aW1lKGJhc2V0aW1lLFxuLVx0XHRcdFx0XHRcdGN1cnJlbnRfdGltZV9ucyxcbi1cdFx0XHRcdFx0XHRjeWNsZV90aW1lKTtcbi1cbi1cdFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzBdID0gKHUzMil0aW1lLnR2X25zZWM7XG4tXHRcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clsxXSA9ICh1MzIpdGltZS50dl9zZWM7XG4gXHRcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWVuYWJsZSA9IHRydWU7XG4tXHRcdHJldCA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXHUwMDNlZXN0LFxuLVx0XHRcdFx0XHQgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY2xrX3B0cF9yYXRlKTtcbi1cdFx0bXV0ZXhfdW5sb2NrKFx1MDAyNnByaXYtXHUwMDNlZXN0X2xvY2spO1xuLVx0XHRpZiAocmV0KVxuLVx0XHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byBjb25maWd1cmUgRVNUXFxuXCYjMzQ7KTtcbiYjNDM7XHRcdHN0bW1hY19zZXR1cF9lc3QocHJpdik7XG4gXHR9XG4gXG4gXHRyZXR1cm4gMDtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY190Yy5jXG5pbmRleCAxNGNhYmU3NmU1M2VjLi5iNDFkZjMxN2Q3M2NjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY190Yy5jXG5AQCAtMTAsNiAmIzQzOzEwLDcgQEBcbiAjaW5jbHVkZSBcJiMzNDtkd21hYzQuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2R3bWFjNS5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbiYjNDM7I2luY2x1ZGUgXCYjMzQ7c3RtbWFjX2VzdC5oXCYjMzQ7XG4gXG4gc3RhdGljIHZvaWQgdGNfZmlsbF9hbGxfcGFzc19lbnRyeShzdHJ1Y3Qgc3RtbWFjX3RjX2VudHJ5ICplbnRyeSlcbiB7XG5AQCAtOTY4LDggJiM0Mzs5NjksNyBAQCBzdGF0aWMgaW50IHRjX3RhcHJpb19jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuIHtcbiBcdHUzMiBzaXplLCB3aWQgPSBwcml2LVx1MDAzZWRtYV9jYXAuZXN0d2lkLCBkZXAgPSBwcml2LVx1MDAzZWRtYV9jYXAuZXN0ZGVwO1xuIFx0c3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrID0gcW9wdC1cdTAwM2VtcXByaW8uZXh0YWNrO1xuLVx0c3RydWN0IHRpbWVzcGVjNjQgdGltZSwgY3VycmVudF90aW1lLCBxb3B0X3RpbWU7XG4tXHRrdGltZV90IGN1cnJlbnRfdGltZV9ucztcbiYjNDM7XHRzdHJ1Y3QgdGltZXNwZWM2NCB0aW1lO1xuIFx0aW50IGksIHJldCA9IDA7XG4gXHR1NjQgY3RyO1xuIFxuQEAgLTEwNjksMzQgJiM0MzsxMDY5LDIzIEBAIHN0YXRpYyBpbnQgdGNfdGFwcmlvX2NvbmZpZ3VyZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHR9XG4gXG4gXHRtdXRleF9sb2NrKFx1MDAyNnByaXYtXHUwMDNlZXN0X2xvY2spO1xuLVx0LyogQWRqdXN0IGZvciByZWFsIHN5c3RlbSB0aW1lICovXG4tXHRwcml2LVx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFx1MDAyNnByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcywgXHUwMDI2Y3VycmVudF90aW1lKTtcbi1cdGN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTtcbi1cdHRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUocW9wdC1cdTAwM2ViYXNlX3RpbWUsIGN1cnJlbnRfdGltZV9ucyxcbi1cdFx0XHRcdFx0cW9wdC1cdTAwM2VjeWNsZV90aW1lKTtcbi1cbi1cdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcbiBcbi1cdHFvcHRfdGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC1cdTAwM2ViYXNlX3RpbWUpO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF0gPSAodTMyKXFvcHRfdGltZS50dl9uc2VjO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXFvcHRfdGltZS50dl9zZWM7XG4mIzQzO1x0dGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC1cdTAwM2ViYXNlX3RpbWUpO1xuJiM0MztcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0cl9yZXNlcnZlWzBdID0gKHUzMil0aW1lLnR2X25zZWM7XG4mIzQzO1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xuIFxuIFx0Y3RyID0gcW9wdC1cdTAwM2VjeWNsZV90aW1lO1xuIFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzBdID0gZG9fZGl2KGN0ciwgTlNFQ19QRVJfU0VDKTtcbiBcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clsxXSA9ICh1MzIpY3RyO1xuIFxuIFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNldGVyID0gcW9wdC1cdTAwM2VjeWNsZV90aW1lX2V4dGVuc2lvbjtcbi1cbiBcdHRjX3RhcHJpb19tYXBfbWF4c2R1X3R4cShwcml2LCBxb3B0KTtcbiBcbi1cdHJldCA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXHUwMDNlZXN0LFxuLVx0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4gXHRtdXRleF91bmxvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4tXHRpZiAocmV0KSB7XG4tXHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwmIzM0O2ZhaWxlZCB0byBjb25maWd1cmUgRVNUXFxuXCYjMzQ7KTtcbiYjNDM7XG4mIzQzO1x0cmV0ID0gc3RtbWFjX3NldHVwX2VzdChwcml2KTtcbiYjNDM7XHRpZiAocmV0KVxuIFx0XHRnb3RvIGRpc2FibGU7XG4tXHR9XG4gXG4gXHRyZXQgPSBzdG1tYWNfZnBlX21hcF9wcmVlbXB0aW9uX2NsYXNzKHByaXYsIHByaXYtXHUwMDNlZGV2LCBleHRhY2ssXG4gXHRcdFx0XHRcdCAgICAgIHFvcHQtXHUwMDNlbXFwcmlvLnByZWVtcHRpYmxlX3Rjcyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MDg8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Y29yZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDMyNzIyYTIyYTdmNzQwMDI3ZmUyMmZiMWQ0ZTdiZjA1MGFmY2NhNjUKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDowODoyNiAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYwppbmRleCBhZmM1MTYwNTliODk3Li5iYmViZDMzYzhhODgzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jCkBAIC04MCw2ICYjNDM7ODAsMzkgQEAgc3RhdGljIGludCBlc3RfY29uZmlndXJlKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IHN0bW1hY19lc3QgKmNmZywKIAlyZXR1cm4gMDsKIH0KIAomIzQzO2ludCBzdG1tYWNfc2V0dXBfZXN0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKJiM0Mzt7CiYjNDM7CXN0cnVjdCB0aW1lc3BlYzY0IGN1cnJlbnRfdGltZSwgdGltZTsKJiM0MzsJa3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lOwomIzQzOwl1NjQgY3ljbGVfdGltZTsKJiM0MzsJaW50IGVycjsKJiM0MzsKJiM0MzsJbXV0ZXhfbG9jaygmYW1wO3ByaXYtJmd0O2VzdF9sb2NrKTsKJiM0MzsKJiM0MzsJcHJpdi0mZ3Q7cHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoJmFtcDtwcml2LSZndDtwdHBfY2xvY2tfb3BzLCAmYW1wO2N1cnJlbnRfdGltZSk7CiYjNDM7CWN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTsKJiM0MzsKJiM0MzsJdGltZS50dl9uc2VjID0gcHJpdi0mZ3Q7ZXN0LSZndDtidHJfcmVzZXJ2ZVswXTsKJiM0MzsJdGltZS50dl9zZWMgPSBwcml2LSZndDtlc3QtJmd0O2J0cl9yZXNlcnZlWzFdOwomIzQzOwliYXNldGltZSA9IHRpbWVzcGVjNjRfdG9fa3RpbWUodGltZSk7CiYjNDM7CiYjNDM7CWN5Y2xlX3RpbWUgPSAodTY0KXByaXYtJmd0O2VzdC0mZ3Q7Y3RyWzFdICogTlNFQ19QRVJfU0VDICYjNDM7IHByaXYtJmd0O2VzdC0mZ3Q7Y3RyWzBdOwomIzQzOwomIzQzOwl0aW1lID0gc3RtbWFjX2NhbGNfdGFzX2Jhc2V0aW1lKGJhc2V0aW1lLCBjdXJyZW50X3RpbWVfbnMsIGN5Y2xlX3RpbWUpOwomIzQzOwlwcml2LSZndDtlc3QtJmd0O2J0clswXSA9ICh1MzIpdGltZS50dl9uc2VjOwomIzQzOwlwcml2LSZndDtlc3QtJmd0O2J0clsxXSA9ICh1MzIpdGltZS50dl9zZWM7CiYjNDM7CiYjNDM7CWVyciA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtJmd0O2VzdCwKJiM0MzsJCQkJICAgcHJpdi0mZ3Q7cGxhdC0mZ3Q7Y2xrX3B0cF9yYXRlKTsKJiM0MzsKJiM0MzsJbXV0ZXhfdW5sb2NrKCZhbXA7cHJpdi0mZ3Q7ZXN0X2xvY2spOwomIzQzOwomIzQzOwlpZiAoZXJyKQomIzQzOwkJbmV0ZGV2X2Vycihwcml2LSZndDtkZXYsICYjMzQ7ZmFpbGVkIHRvIHJlLWNvbmZpZ3VyZSBFU1RcbiYjMzQ7KTsKJiM0MzsKJiM0MzsJcmV0dXJuIGVycjsKJiM0Mzt9CiYjNDM7CiBzdGF0aWMgdm9pZCBlc3RfaXJxX3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICBzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzICp4LCB1MzIgdHhxY250KQogewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oCmluZGV4IGY3MDIyMWM5Yzg0YWYuLmY2MjBkMzMzMWMyY2MgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmgKQEAgLTY1LDMgJiM0Mzs2NSw1IEBACiAjZGVmaW5lIEVTVF9HQ0xfREFUQQkJCTB4MDAwMDAwMzQKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZXN0X29wcyBkd21hYzUxMF9lc3Rfb3BzOwomIzQzOwomIzQzO2ludCBzdG1tYWNfc2V0dXBfZXN0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYwppbmRleCBkNTc2MDU5YzA0ZGY5Li5iMzAwMzY0MjgxODhjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMKQEAgLTQ4LDYgJiM0Mzs0OCw3IEBACiAjaW5jbHVkZSAmIzM0O3N0bW1hY19wdHAuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3N0bW1hY19mcGUuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3N0bW1hYy5oJiMzNDsKJiM0MzsjaW5jbHVkZSAmIzM0O3N0bW1hY19lc3QuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3N0bW1hY19wY3MuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O3N0bW1hY194ZHAuaCYjMzQ7CiAjaW5jbHVkZSAmbHQ7bGludXgvcmVzZXQuaCZndDsKQEAgLTQxNTMsMTEgJiM0Mzs0MTU0LDIyIEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCXJldCA9IHN0bW1hY19od19zZXR1cChkZXYpOwogCWlmIChyZXQgJmx0OyAwKSB7CiAJCW5ldGRldl9lcnIocHJpdi0mZ3Q7ZGV2LCAmIzM0OyVzOiBIdyBzZXR1cCBmYWlsZWRcbiYjMzQ7LCBfX2Z1bmNfXyk7Ci0JCWdvdG8gaW5pdF9lcnJvcjsKJiM0MzsJCXJldHVybiByZXQ7CiAJfQogCiAJc3RtbWFjX3NldHVwX3B0cChwcml2KTsKIAomIzQzOwkvKiBUaGUgY29yZSBzb2Z0IHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIGNsZWFycyB0aGUgTVRMX0VTVAomIzQzOwkgKiByZWdpc3RlcnMsIHNvIHJlLWFwcGx5IHRoZSB0YXByaW8gb2ZmbG9hZCBhZnRlciBQVFAgaXMgdXAuCiYjNDM7CSAqLwomIzQzOwlpZiAocHJpdi0mZ3Q7ZXN0ICZhbXA7JmFtcDsgcHJpdi0mZ3Q7ZXN0LSZndDtlbmFibGUpIHsKJiM0MzsJCXJldCA9IHN0bW1hY19zZXR1cF9lc3QocHJpdik7CiYjNDM7CQlpZiAocmV0ICZsdDsgMCkgewomIzQzOwkJCXByaXYtJmd0O2VzdC0mZ3Q7ZW5hYmxlID0gZmFsc2U7CiYjNDM7CQkJcmV0dXJuIHJldDsKJiM0MzsJCX0KJiM0MzsJfQomIzQzOwogCXN0bW1hY19pbml0X2NvYWxlc2NlKHByaXYpOwogCiAJcGh5bGlua19zdGFydChwcml2LSZndDtwaHlsaW5rKTsKQEAgLTQxODEsNyAmIzQzOzQxOTMsNyBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJaHJ0aW1lcl9jYW5jZWwoJmFtcDtwcml2LSZndDtkbWFfY29uZi50eF9xdWV1ZVtjaGFuXS50eHRpbWVyKTsKIAogCXN0bW1hY19yZWxlYXNlX3B0cChwcml2KTsKLWluaXRfZXJyb3I6CiYjNDM7CiAJcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jCmluZGV4IDk2MDI0OTk2MDAwNGMuLjkxN2VmN2RkY2FlNjEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmMKQEAgLTgsNiAmIzQzOzgsNyBAQAogICBBdXRob3I6IFJheWFnb25kIEtva2F0YW51ciAmbHQ7cmF5YWdvbmRAdmF5YXZ5YWxhYnMuY29tJmd0OwogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KICNpbmNsdWRlICYjMzQ7c3RtbWFjLmgmIzM0OwomIzQzOyNpbmNsdWRlICYjMzQ7c3RtbWFjX2VzdC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7c3RtbWFjX3B0cC5oJiMzNDsKIAogI2RlZmluZSBQVFBfU0FGRV9USU1FX09GRlNFVF9OUwk1MDAwMDAKQEAgLTU1LDcgJiM0Mzs1Niw2IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2FkanVzdF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpCiAJdTMyIHF1b3RpZW50LCByZW1pbmRlcjsKIAlpbnQgbmVnX2FkaiA9IDA7CiAJYm9vbCB4bWFjLCBlc3RfcnN0ID0gZmFsc2U7Ci0JaW50IHJldDsKIAogCXhtYWMgPSBkd21hY19pc194bWFjKHByaXYtJmd0O3BsYXQtJmd0O2NvcmVfdHlwZSk7CiAKQEAgLTg0LDMwICYjNDM7ODQsOCBAQCBzdGF0aWMgaW50IHN0bW1hY19hZGp1c3RfdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKQogCiAJLyogQ2FsY3VsYXRlIG5ldyBiYXNldGltZSBhbmQgcmUtY29uZmlndXJlZCBFU1QgYWZ0ZXIgUFRQIHRpbWUgYWRqdXN0LiAqLwogCWlmIChlc3RfcnN0KSB7Ci0JCXN0cnVjdCB0aW1lc3BlYzY0IGN1cnJlbnRfdGltZSwgdGltZTsKLQkJa3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lOwotCQl1NjQgY3ljbGVfdGltZTsKLQotCQltdXRleF9sb2NrKCZhbXA7cHJpdi0mZ3Q7ZXN0X2xvY2spOwotCQlwcml2LSZndDtwdHBfY2xvY2tfb3BzLmdldHRpbWU2NCgmYW1wO3ByaXYtJmd0O3B0cF9jbG9ja19vcHMsICZhbXA7Y3VycmVudF90aW1lKTsKLQkJY3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpOwotCQl0aW1lLnR2X25zZWMgPSBwcml2LSZndDtlc3QtJmd0O2J0cl9yZXNlcnZlWzBdOwotCQl0aW1lLnR2X3NlYyA9IHByaXYtJmd0O2VzdC0mZ3Q7YnRyX3Jlc2VydmVbMV07Ci0JCWJhc2V0aW1lID0gdGltZXNwZWM2NF90b19rdGltZSh0aW1lKTsKLQkJY3ljbGVfdGltZSA9ICh1NjQpcHJpdi0mZ3Q7ZXN0LSZndDtjdHJbMV0gKiBOU0VDX1BFUl9TRUMgJiM0MzsKLQkJCSAgICAgcHJpdi0mZ3Q7ZXN0LSZndDtjdHJbMF07Ci0JCXRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUoYmFzZXRpbWUsCi0JCQkJCQljdXJyZW50X3RpbWVfbnMsCi0JCQkJCQljeWNsZV90aW1lKTsKLQotCQlwcml2LSZndDtlc3QtJmd0O2J0clswXSA9ICh1MzIpdGltZS50dl9uc2VjOwotCQlwcml2LSZndDtlc3QtJmd0O2J0clsxXSA9ICh1MzIpdGltZS50dl9zZWM7CiAJCXByaXYtJmd0O2VzdC0mZ3Q7ZW5hYmxlID0gdHJ1ZTsKLQkJcmV0ID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi0mZ3Q7ZXN0LAotCQkJCQkgICBwcml2LSZndDtwbGF0LSZndDtjbGtfcHRwX3JhdGUpOwotCQltdXRleF91bmxvY2soJmFtcDtwcml2LSZndDtlc3RfbG9jayk7Ci0JCWlmIChyZXQpCi0JCQluZXRkZXZfZXJyKHByaXYtJmd0O2RldiwgJiMzNDtmYWlsZWQgdG8gY29uZmlndXJlIEVTVFxuJiMzNDspOwomIzQzOwkJc3RtbWFjX3NldHVwX2VzdChwcml2KTsKIAl9CiAKIAlyZXR1cm4gMDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY190Yy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMKaW5kZXggMTRjYWJlNzZlNTNlYy4uYjQxZGYzMTdkNzNjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMKQEAgLTEwLDYgJiM0MzsxMCw3IEBACiAjaW5jbHVkZSAmIzM0O2R3bWFjNC5oJiMzNDsKICNpbmNsdWRlICYjMzQ7ZHdtYWM1LmgmIzM0OwogI2luY2x1ZGUgJiMzNDtzdG1tYWMuaCYjMzQ7CiYjNDM7I2luY2x1ZGUgJiMzNDtzdG1tYWNfZXN0LmgmIzM0OwogCiBzdGF0aWMgdm9pZCB0Y19maWxsX2FsbF9wYXNzX2VudHJ5KHN0cnVjdCBzdG1tYWNfdGNfZW50cnkgKmVudHJ5KQogewpAQCAtOTY4LDggJiM0Mzs5NjksNyBAQCBzdGF0aWMgaW50IHRjX3RhcHJpb19jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogewogCXUzMiBzaXplLCB3aWQgPSBwcml2LSZndDtkbWFfY2FwLmVzdHdpZCwgZGVwID0gcHJpdi0mZ3Q7ZG1hX2NhcC5lc3RkZXA7CiAJc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrID0gcW9wdC0mZ3Q7bXFwcmlvLmV4dGFjazsKLQlzdHJ1Y3QgdGltZXNwZWM2NCB0aW1lLCBjdXJyZW50X3RpbWUsIHFvcHRfdGltZTsKLQlrdGltZV90IGN1cnJlbnRfdGltZV9uczsKJiM0MzsJc3RydWN0IHRpbWVzcGVjNjQgdGltZTsKIAlpbnQgaSwgcmV0ID0gMDsKIAl1NjQgY3RyOwogCkBAIC0xMDY5LDM0ICYjNDM7MTA2OSwyMyBAQCBzdGF0aWMgaW50IHRjX3RhcHJpb19jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LAogCX0KIAogCW11dGV4X2xvY2soJmFtcDtwcml2LSZndDtlc3RfbG9jayk7Ci0JLyogQWRqdXN0IGZvciByZWFsIHN5c3RlbSB0aW1lICovCi0JcHJpdi0mZ3Q7cHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoJmFtcDtwcml2LSZndDtwdHBfY2xvY2tfb3BzLCAmYW1wO2N1cnJlbnRfdGltZSk7Ci0JY3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpOwotCXRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUocW9wdC0mZ3Q7YmFzZV90aW1lLCBjdXJyZW50X3RpbWVfbnMsCi0JCQkJCXFvcHQtJmd0O2N5Y2xlX3RpbWUpOwotCi0JcHJpdi0mZ3Q7ZXN0LSZndDtidHJbMF0gPSAodTMyKXRpbWUudHZfbnNlYzsKLQlwcml2LSZndDtlc3QtJmd0O2J0clsxXSA9ICh1MzIpdGltZS50dl9zZWM7CiAKLQlxb3B0X3RpbWUgPSBrdGltZV90b190aW1lc3BlYzY0KHFvcHQtJmd0O2Jhc2VfdGltZSk7Ci0JcHJpdi0mZ3Q7ZXN0LSZndDtidHJfcmVzZXJ2ZVswXSA9ICh1MzIpcW9wdF90aW1lLnR2X25zZWM7Ci0JcHJpdi0mZ3Q7ZXN0LSZndDtidHJfcmVzZXJ2ZVsxXSA9ICh1MzIpcW9wdF90aW1lLnR2X3NlYzsKJiM0MzsJdGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC0mZ3Q7YmFzZV90aW1lKTsKJiM0MzsJcHJpdi0mZ3Q7ZXN0LSZndDtidHJfcmVzZXJ2ZVswXSA9ICh1MzIpdGltZS50dl9uc2VjOwomIzQzOwlwcml2LSZndDtlc3QtJmd0O2J0cl9yZXNlcnZlWzFdID0gKHUzMil0aW1lLnR2X3NlYzsKIAogCWN0ciA9IHFvcHQtJmd0O2N5Y2xlX3RpbWU7CiAJcHJpdi0mZ3Q7ZXN0LSZndDtjdHJbMF0gPSBkb19kaXYoY3RyLCBOU0VDX1BFUl9TRUMpOwogCXByaXYtJmd0O2VzdC0mZ3Q7Y3RyWzFdID0gKHUzMiljdHI7CiAKIAlwcml2LSZndDtlc3QtJmd0O3RlciA9IHFvcHQtJmd0O2N5Y2xlX3RpbWVfZXh0ZW5zaW9uOwotCiAJdGNfdGFwcmlvX21hcF9tYXhzZHVfdHhxKHByaXYsIHFvcHQpOwogCi0JcmV0ID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi0mZ3Q7ZXN0LAotCQkJCSAgIHByaXYtJmd0O3BsYXQtJmd0O2Nsa19wdHBfcmF0ZSk7CiAJbXV0ZXhfdW5sb2NrKCZhbXA7cHJpdi0mZ3Q7ZXN0X2xvY2spOwotCWlmIChyZXQpIHsKLQkJbmV0ZGV2X2Vycihwcml2LSZndDtkZXYsICYjMzQ7ZmFpbGVkIHRvIGNvbmZpZ3VyZSBFU1RcbiYjMzQ7KTsKJiM0MzsKJiM0MzsJcmV0ID0gc3RtbWFjX3NldHVwX2VzdChwcml2KTsKJiM0MzsJaWYgKHJldCkKIAkJZ290byBkaXNhYmxlOwotCX0KIAogCXJldCA9IHN0bW1hY19mcGVfbWFwX3ByZWVtcHRpb25fY2xhc3MocHJpdiwgcHJpdi0mZ3Q7ZGV2LCBleHRhY2ssCiAJCQkJCSAgICAgIHFvcHQtJmd0O21xcHJpby5wcmVlbXB0aWJsZV90Y3MpOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTMwCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMjkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgRmVhc2liaWxpdHkgQXNzZXNzbWVudCoqCgpPa2F5LCBsZXQmIzM5O3MgdGFrZSBhIGxvb2sgYXQgdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgZnV6emluZyB0aGlzIGNvZGUgaXMgZXZlbiB3b3J0aHdoaWxlLiBJdCBsb29rcyBsaWtlIGl0IHRvdWNoZXMgdGhlIGBzdG1tYWNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2AgZGlyZWN0b3J5LiBJIHNlZSBtb2RpZmljYXRpb25zIGluIGBzdG1tYWNfZXN0LmNgLCBgc3RtbWFjX2VzdC5oYCwgYHN0bW1hY19tYWluLmNgLCBgc3RtbWFjX3B0cC5jYCwgYW5kIGBzdG1tYWNfdGMuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSB0aGUgaW50cm9kdWN0aW9uIG9mIHRoaXMgYHN0bW1hY19zZXR1cF9lc3RgIGZ1bmN0aW9uLiBJdCBsb29rcyBsaWtlIGBfX3N0bW1hY19vcGVuKClgIGNhbGxzIGl0IGlmIGBwcml2LSZndDtlc3QgJmFtcDsmYW1wOyBwcml2LSZndDtlc3QtJmd0O2VuYWJsZWAuIFRoZSBvdGhlciBjaGFuZ2VzIHJlZmFjdG9yIHNvbWUgZXhpc3RpbmcgZnVuY3Rpb25hbGl0eSBpbiBgc3RtbWFjX2FkanVzdF90aW1lKClgIGFuZCBgdGNfdGFwcmlvX2NvbmZpZ3VyZSgpYCB0byBtYWtlIHVzZSBvZiB0aGUgbmV3IGZ1bmN0aW9uLgoKQmVmb3JlIEkgY29tbWl0IHRvIGFueXRoaW5nLCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgaGFyZHdhcmUgZGVwZW5kZW5jaWVzIGhlcmUuIGBzdG1tYWNgIGlzIHRoZSBTeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyBhbmQgU1RNaWNyb2VsZWN0cm9uaWNzJiMzOTsgaW1wbGVtZW50YXRpb24sIHJpZ2h0PyBJcyB0aGlzIHNvbWV0aGluZyB0aGF0JiMzOTtzIGxpa2VseSB0byBiZSBwcmVzZW50IGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLCBvciBpcyBpdCBzcGVjaWZpYyBoYXJkd2FyZT8gSSBuZWVkIHRvIGNoZWNrIHdoZXJlIGBzdG1tYWNgIGlzIGNvbW1vbmx5IHVzZWQuIENhbiBJIHJlYXNvbmFibHkgZXhwZWN0IHRvIGZpbmQgZW11bGF0ZWQgYHN0bW1hY2AgZGV2aWNlcyBpbiBRRU1VLCBvciBkbyBJIG5lZWQgdG8gaHVudCBmb3IgYWN0dWFsIFBDSSBgc3RtbWFjYCBkZXZpY2VzIGZvciB0ZXN0aW5nPyBMZXQgbWUgZG8gYSBxdWljayBgZ3JlcGAgaW4gdGhlIGBLY29uZmlnYCBmaWxlcyBhbmQgZHJpdmVyIGRpcmVjdG9yaWVzIHRvIGdldCBhIGNsZWFyZXIgcGljdHVyZSBvZiBpdHMgY29uZmlndXJhdGlvbiBhbmQgdXNhZ2UuIEkgd2FudCB0byBzZWUgaG93IHJlYWRpbHkgSSBjYW4gYnVpbGQgYSB0ZXN0IGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjA4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTVE1NQUNfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOmNvbmZpZyBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtTVE1pY3JvZWxlY3Ryb25pY3MgTXVsdGktR2lnYWJpdCBFdGhlcm5ldCBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE4PWlmIFNUTU1BQ19FVEhcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwOmNvbmZpZyBTVE1NQUNfU0VMRlRFU1RTXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxLVx0Ym9vbCBcJiMzNDtTdXBwb3J0IGZvciBTVE1NQUMgU2VsZnRlc3RzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjk6Y29uZmlnIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQbGF0Zm9ybSBidXMgc3VwcG9ydFwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MzcxPWVuZGlmICMgU1RNTUFDX1BMQVRGT1JNXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzczOmNvbmZpZyBTVE1NQUNfTElCUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3NC1cdHRyaXN0YXRlXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zOTg9Y29uZmlnIERXTUFDX01PVE9SQ09NTVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzo0MDc6Y29uZmlnIFNUTU1BQ19QQ0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVx0dHJpc3RhdGUgXCYjMzQ7U1RNTUFDIFBDSSBidXMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjA4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDYzNDYKCQkJCQkJCW91dHB1dDogNTEKCQkJCQkJCXRob3VnaHRzOiAzNjQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU1RNTUFDIERyaXZlciBhbmQgaXRzIFdvcnRoaW5lc3MgZm9yIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGVtdWxhdGlvbiBzaXR1YXRpb24gZm9yIGBzdG1tYWNgLiBJcyB0aGlzIGEgc3RhbmRhcmQgUUVNVSBlbXVsYXRlZCBkZXZpY2UsIG9yIGFyZSB3ZSBsb29raW5nIGF0IHNvbWV0aGluZyBzcGVjaWZpYyB0byBhIHBhcnRpY3VsYXIgU3lzdGVtLW9uLUNoaXAgKFNvQykgb3IgSW50ZWwgUENJIGxpa2UgUXVhcmsgb3IgRWxraGFydCBMYWtlPwoKVGhlIG5leHQgdGhpbmcgSSYjMzk7bSBhc2tpbmcgbXlzZWxmIGlzLCB3aGljaCBRRU1VIG1hY2hpbmVzIGFjdHVhbGx5ICp1c2UqIGBkd21hY2Agb3IgYHN0bW1hY2A/IE9yLCBpcyB0aGlzIHNvbWV0aGluZyB0aGF0IGFsd2F5cyBwb2ludHMgdG8gcGh5c2ljYWwgaGFyZHdhcmU/IEkmIzM5O20gc3BlY2lmaWNhbGx5IHJlZmVyZW5jaW5nIHRoZSBldGhlcm5ldCBjb250cm9sbGVyIGRyaXZlcnMgaGVyZS4KCkhvbGQgb24sIGxldCBtZSBxdWlja2x5IHJldmlldyB0aGVzZSBpbnN0cnVjdGlvbnMuIFRoZXnigJlyZSBnaXZpbmcgY3JpdGVyaWEgZm9yIGRldGVybWluaW5nIGlmIHNvbWV0aGluZyBpcyAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7LiBIbW0sIHRoZSBrZXkgcG9pbnRzIGhlcmUgYXJlOiB1bnJlYWNoYWJsZSBjb2RlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAobGlrZSBHQ0Ugb3IgUUVNVSBldmVuIHdpdGggZW11bGF0ZWQgaGFyZHdhcmUsIHN1Y2ggYXMgVVNCIGdhZGdldCBvciBtYWM4MDIxMV9od3NpbSksIHZlbmRvci1zcGVjaWZpYyBkcml2ZXJzIHRoYXQgbmVlZCBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIChsaWtlIGBtbHhzd2AsIGBwZHNfY29yZWAsIGBxZWRgLCBldGMuIHdoaWNoIGFyZSB0aGUgc29ydCBvZiB0aGluZ3MgSSBkZWFsIHdpdGggb24gYSByZWd1bGFyIGJhc2lzKSwgYW5kIGRyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgdGhhdCBhcmUgb25seSBleGVjdXRlZCBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKU28sIGNpcmNsaW5nIGJhY2ssIGRvZXMgUUVNVSBoYXZlIHByb3BlciBlbXVsYXRpb24gb2YgU1RNTUFDPwoKRXNzZW50aWFsbHksIGNhbiBJIGdldCBpdCB0byB3b3JrPyBEb2VzIFFFTVUgZXZlbiBlbXVsYXRlIGBkd21hY2Agb3IgYHN0bW1hY2AgZXRoZXJuZXQ/IEkgbmVlZCB0byBrbm93LgoKTm93LCBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggUUVNVSBwbGF0Zm9ybXMgc3VwcG9ydCBgc3RtbWFjYCBuYXRpdmVseSwgd2hldGhlciBpdOKAmXMgdXNlZCB3aXRoIEFsbHdpbm5lciBTdW54aSwgU1RNMzIsIGV0Yy4gT3IsIGNhbiBJIHJlYWNoIGl0IG9uIHN0YW5kYXJkIHg4Nl82NCBvciBhcm02NCBmdXp6aW5nIHRhcmdldHM/CgpJIHNob3VsZCByZWFsbHkgZmlndXJlIG91dCB3aGV0aGVyIGl0IGlzIGFjdHVhbGx5IHByb2JlLWFibGUgb3IgaW5zdGFudGlhdGVkLgoKT2theSwgbGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBjb2RlLiBJJiMzOTtsbCBuZWVkIHRvIGxvb2sgYXQgYHN0bW1hY19wY2kuY2AgYW5kIGBkd21hY18qLmNgIGFuZCBzZWUgd2hpY2ggc3BlY2lmaWMgY2hpcHMgdGhleSBzdXBwb3J0LiBUaGlzIHdpbGwgZ2l2ZSBtZSBzb21lIHNvbGlkIGFuc3dlcnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TU9EVUxFX0RFVklDRV9UQUJMRXxwY2lfZGV2aWNlX2lkfHBsYXRmb3JtX2RldmljZV9pZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz0xMTk9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYW5hcmlvbl9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjItfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYzoxMjM6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgYW5hcmlvbl9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTI0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MzUzPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGR3Y19ldGhfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM1OC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozNTk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZHdjX2V0aF9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM2MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmM9MzUwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGVpYzc3MDBfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmMtMzU5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmM6MzYwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGVpYzc3MDBfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTM2MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmM9NTI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZHdtYWNfZ2VuZXJpY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy02Ni19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jOjY3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGR3bWFjX2dlbmVyaWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jLTY4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jPTM4ND1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbXhfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zODktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlteC5jOjM5MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbXhfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzkxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYz0yNjI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW5nZW5pY19tYWNfb2ZfbWF0Y2hlc1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yNjktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYzoyNzA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaW5nZW5pY19tYWNfb2ZfbWF0Y2hlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMjcxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYz0zNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpbnRlbF9ldGhfcGxhdF9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy0zOS19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jOjQwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGludGVsX2V0aF9wbGF0X21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy00MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTEyNjM9c3RhdGljIGludCBpbnRlbF9ldGhfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxMjY0Olx0XHRcdCAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyNjUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTM2Mj1zdGF0aWMgdm9pZCBpbnRlbF9ldGhfcGNpX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEzOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEzOTU6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGludGVsX2V0aF9wY2lfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTM5Ni1cdHsgUENJX0RFVklDRV9EQVRBKElOVEVMLCBRVUFSSywgXHUwMDI2cXVhcmtfaW5mbykgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTQxNTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaW50ZWxfZXRoX3BjaV9pZF90YWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jPTQ5MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBpcHE4MDZ4X2dtYWNfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDk0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM6NDk1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlwcTgwNnhfZ21hY19kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDk2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NDc5PXN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfZml4X3Jlc2V0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTQ5Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NDk4OnN0YXRpYyBpbnQgbG9vbmdzb25fZHdtYWNfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNDk5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jPTU3OD1zdGF0aWMgdm9pZCBsb29uZ3Nvbl9kd21hY19yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy01OTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjU5NjpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbG9vbmdzb25fZHdtYWNfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTk3LVx0eyBQQ0lfREVWSUNFX0RBVEEoTE9PTkdTT04sIEdNQUMxLCBcdTAwMjZsb29uZ3Nvbl9nbWFjX3BjaV9pbmZvKSB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNjAxLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jOjYwMjpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgbG9vbmdzb25fZHdtYWNfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MDMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM9MjE2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGxzMXhfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYy0yMjYtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jOjIyNzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBsczF4X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTIyOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM9NzE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHBjMTh4eF9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy03NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jOjc1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGxwYzE4eHhfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTc2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM9NjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lZGlhdGVrX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02NjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jOjY3MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtZWRpYXRla19kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTY3MS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jPTc2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uNl9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtNzktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM6ODA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbWVzb242X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtODEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jPTQ4Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZXNvbjhiX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jLTUwNC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jOjUwNTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtZXNvbjhiX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MjY0PXN0YXRpYyBpbnQgbW90b3Jjb21tX3NldHVwX2lycShzdHJ1Y3QgcGNpX2RldiAqcGRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0yOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzoyOTM6c3RhdGljIGludCBtb3RvcmNvbW1fcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI5NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM9MzYyPXN0YXRpYyB2b2lkIG1vdG9yY29tbV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzY3OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBkd21hY19tb3RvcmNvbW1fcGNpX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNjgtXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NT1RPUkNPTU0sIDB4NjgwMSkgfSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNzAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM3MTpNT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZHdtYWNfbW90b3Jjb21tX3BjaV9pZF90YWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNzItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jPTExOD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBudnRfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMTIxLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM6MTIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG52dF9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMTIzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9ODAwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHFjb21fZXRocW9zX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy04MDYtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM6ODA3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHFjb21fZXRocW9zX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtODA4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcmVuZXNhc19nYmV0aF9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yMjEtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYzoyMjI6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmVuZXNhc19nYmV0aF9tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmMtMjIzLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM9MTYxNj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBya19nbWFjX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNjM0LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jOjE2MzU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcmtfZ21hY19kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jLTE2MzYtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jPTc1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJ6bjFfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtNzgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYzo3OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByem4xX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYy04MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgczMyX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMjE5LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYzoyMjA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgczMyX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXMzMi5jLTIyMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NjczPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNvY2ZwZ2FfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjc4LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6Njc5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvY2ZwZ2FfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTY4MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYz03Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb3BoZ29fZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy03Ni19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmM6Nzc6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc29waGdvX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTc4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM9MjEwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHNwYWNlbWl0X2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yMTMtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM6MjE0Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNwYWNlbWl0X2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMjE1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9MTYwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0YXJmaXZlX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xNjQtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM6MTY1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0YXJmaXZlX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTY2LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jPTI5Nj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGlfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yOTktfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjMwMDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdGlfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmMtMzAxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM9NjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN0bTMyX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy02NjgtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM6NjY5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN0bTMyX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmMtNjcwLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jPTE0MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdW41NWlfZ21hYzIwMF9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTE0NC19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmM6MTQ1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN1bjU1aV9nbWFjMjAwX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTE0Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jPTEyNjg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuOGlfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jLTEyODItfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmM6MTI4MzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW44aV9kd21hY19tYXRjaCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jLTEyODQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYz0xNTA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuN2lfZHdtYWNfbWF0Y2hbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE1My19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYzoxNTQ6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3VuN2lfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYy0xNTUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYz0zOTc9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgdGVncmFfbWdiZV9tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtNDAwLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jOjQwMTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0ZWdyYV9tZ2JlX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtNDAyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM9MjY3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRoZWFkX2R3bWFjX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yNzAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM6MjcxOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHRoZWFkX2R3bWFjX21hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmMtMjcyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM9MjU1PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHZpc2NvbnRpX2V0aF9kd21hY19tYXRjaFtdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmMtMjU4LX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jOjI1OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB2aXNjb250aV9ldGhfZHdtYWNfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yNjAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jPTExOD1zdGF0aWMgaW50IHN0bW1hY19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MTE5Olx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MTkyPXN0YXRpYyB2b2lkIHN0bW1hY19wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjAzOnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBzdG1tYWNfaWRfdGFibGVbXSA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDQtXHR7IFBDSV9ERVZJQ0VfREFUQShTVE1NQUMsIFNUTU1BQywgXHUwMDI2c3RtbWFjX3BjaV9pbmZvKSB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjEwOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDowODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMzY1NgoJCQkJCQkJb3V0cHV0OiA1MgoJCQkJCQkJdGhvdWdodHM6IDc4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgc3RtbWFjIEVtdWxhdGlvbiBpbiBRRU1VIGFuZCBTeXprYWxsZXIgZm9yIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gSSYjMzk7bSBsb29raW5nIGF0IGBzdG1tYWNgLCB0aGUgcGh5c2ljYWwgRXRoZXJuZXQgTUFDIGNvbnRyb2xsZXIgZHJpdmVyIHVzZWQgYWNyb3NzIGEgcmFuZ2Ugb2YgU29DcyBhbmQgUENJIGRldmljZXMg4oCTIFNUTTMyLCBBbGx3aW5uZXIsIFJvY2tjaGlwLCBJbnRlbCwgVGVncmEsIGFuZCBzbyBvbi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBpcyB0aGlzIHRoaW5nIGVtdWxhdGVkIGluIGEgc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudCBvciBvbiBHQ0U/IFNwZWNpZmljYWxseSwgZG9lcyBzdGFuZGFyZCBRRU1VIGV2ZW4gKmhhbmRsZSogYHN0bW1hY2Agb3IgYGR3bWFjYD8KCkkgbmVlZCB0byBjb25maXJtIHRoYXQuIExldCBtZSByZXBocmFzZTogZG9lcyBRRU1VIG9mZmVyIGFueSBlbXVsYXRpb24gb2YgYHN0bW1hY2Agb3IgYGR3bWFjYD8gT3IsIGRvZXMgaXQgZGVwZW5kIG9uIHJlYWwsIHBoeXNpY2FsIFNvQyBvciBQQ0llIGhhcmR3YXJlIHdoaWNoIGlzIG5vdCBlbXVsYXRlZD8gSSYjMzk7bGwgcmUtY2hlY2sgd2hhdCBzcGVjaWZpYyBRRU1VIG1hY2hpbmVzIG1pZ2h0IGluY2x1ZGUgZHdtYWMgb3Igc3RtbWFjLCBvciBpZiBpdCYjMzk7cyBjb25zaWRlcmVkIGV4Y2x1c2l2ZWx5IGEgcGh5c2ljYWwgaGFyZHdhcmUgY29tcG9uZW50LgoKQSBxdWljayByZXZpZXcgb2YgYXZhaWxhYmxlIFFFTVUgbmV0d29yayBkZXZpY2Vz4oCUZTEwMDAsIGlnYiwgdmlydGlvLW5ldCwgZXRjLuKAlHNob3dzIG1hbnkgZW11bGF0ZWQgTklDcy4gT24gdGhlIEFSTSBzaWRlLCBJIHNlZSBzb21lIG1vcmUgc3BlY2lmaWMgZW11bGF0aW9ucywgbGlrZSBzbWM5MWMxMTEgYW5kIGlteF9mZWMuIExvb2tpbmcgYXQgdGhlIEFsbHdpbm5lciBzdW40aS9zdW44aSBvZmZlcmluZ3MgaW4gUUVNVSwgdGhlIGVtdWxhdGVkIGRldmljZXMgYXJlIGBhbGx3aW5uZXItZW1hY2AgYW5kIGBhbGx3aW5uZXItc3VuOGktZW1hY2AuIEludGVyZXN0aW5nLiBCdXQsIGRvIHRoZXNlIHJlbGF0ZSB0byB0aGUgRFdNQUMgb3Igc3RtbWFjIGRyaXZlcnM/IE5vLCB0aGUgYGFsbHdpbm5lci1zdW44aS1lbWFjLmNgIGZpbGUgcHJvdmlkZXMgc29tZSBjbGFyaXR5LgoKT2theSwgYmFjayB0byB0aGUgY29yZSBxdWVzdGlvbjogRG9lcyBRRU1VICphY3R1YWxseSogZW11bGF0ZSBTVE1NQUMgLyBEV01BQz8KCkV2ZW4gaWYgdGhlcmUmIzM5O3Mgc29tZSBvYnNjdXJlIGJvYXJkIGVtdWxhdGlvbiBvdXQgdGhlcmUsIGxldCYjMzk7cyBjb25zaWRlciB0aGUgZnV6emluZyBwZXJzcGVjdGl2ZSB3aXRoIHN5emthbGxlci4gSSBuZWVkIHRvIHJlZmVyIGJhY2sgdG8gaG93IHN5emthbGxlciBmdXp6ZXMgYW5kIHdoYXQgdGhlIGluc3RydWN0aW9uIHNldCBzYXlzIGFib3V0IGl0cyB1c2UgY2FzZXMuIFNwZWNpZmljYWxseSwgc3l6a2FsbGVyIHdpbGwgJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgaWYgdGhlIHBhdGNoIG9ubHkgaW5jbHVkZXMgY29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWwgZW52aXJvbm1lbnRzIChsaWtlIEdDRSBvciBRRU1VKSwgZXZlbiB3aGVuIHVzaW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBJdCBhbHNvIGV4Y2x1ZGVzIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCBkcml2ZXJzLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuIEFkZGl0aW9uYWxseSwgaXQgc2tpcHMgZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcy4gSSBtdXN0IGtlZXAgdGhpcyBpbiBtaW5kLgoKTm93LCBsZXQmIzM5O3Mgc3RlcCBiYWNrIGEgYml0IGFuZCBjb25zaWRlciB0aGUgZ2VuZXJhbCBsYW5kc2NhcGUgb2YgZXRoZXJuZXQgZHJpdmVycywgbG9jYXRlZCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvKmAuIExpbnV4IGtlcm5lbCBmdXp6aW5nIHdpdGggc3l6a2FsbGVyIG9wZXJhdGVzIHdpdGhpbiBzdGFuZGFyZCBRRU1VICh4ODZfNjQsIGFybTY0KSBvciBHQ0UgVk1zLiBUaGUgZXRoZXJuZXQgZHJpdmVycyBpbiB0aGF0IGRpcmVjdG9yeSBhcmUgcHJpbWFyaWx5IGZvciBzcGVjaWZpYyBoYXJkd2FyZSBOSUNzIChsaWtlIEludGVsIGUxMDAwLCByODE2OSwgQnJvYWRjb20gdGczLCBNZWxsYW5veCBtbHg0L21seDUsIENoZWxzaW8gY3hnYiwgZXRjLikgYW5kIHRoZXkgYXJlIG9mdGVuIGVtdWxhdGVkIGluIFFFTVUuCgpCdXQgbm93LCBiYWNrIHRvIHRoZSBjZW50cmFsIHF1ZXN0aW9uOiBJcyBgc3RtbWFjYCBoYXJkd2FyZSBwcmVzZW50IHdpdGhpbiB0aGVzZSBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMgdXNlZCBmb3IgZnV6emluZz8gRnJvbSBldmVyeXRoaW5nIEkmIzM5O3ZlIHNlZW4sIGl0JiMzOTtzIGNsZWFyOiBOby4gVGhlIHN0YW5kYXJkIFFFTVUgeDg2XzY0IC8gYXJtNjQgVk1zIHVzZWQgYnkgc3l6a2FsbGVyIGRvICpub3QqIGluc3RhbnRpYXRlIGBzdG1tYWNgIGRldmljZXMuIEl0IGlzbiYjMzk7dCBwYXJ0IG9mIHRoYXQgc3RhbmRhcmQgZW52aXJvbm1lbnQuCgpTbywgbGV0JiMzOTtzIHJlLWV2YWx1YXRlOiBjYW4gSSBpbnN0YW50aWF0ZSBgc3RtbWFjYCB1c2luZyBhIHBsYXRmb3JtIGRldmljZSBvciBuZXRsaW5rIG9yIHNvbWUgbW9jayBmcmFtZXdvcms/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlIGFyZSB2aXJ0dWFsIG9yIG1vY2sgYHN0bW1hY2AgZHJpdmVycyBhcm91bmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyLipzdG1tYWN8c3RtbWFjX3Byb2JlX2NvbmZpZ19kdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmMtMTAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTI4Mz1zdGF0aWMgaW50IGR3Y19ldGhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTMwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzA3Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDgtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmM9MTY3PXN0YXRpYyBpbnQgZWljNzcwMF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYy0xODAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmM6MTgxOlx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTE4Mi1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYz0xOT1zdGF0aWMgaW50IGR3bWFjX2dlbmVyaWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtMjktXHRpZiAocGRldi1cdTAwM2VkZXYub2Zfbm9kZSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jOjMwOlx0XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtMzEtXHRcdGlmIChJU19FUlIocGxhdF9kYXQpKSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM9MjkzPXN0YXRpYyBpbnQgaW14X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM6MzA5Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmMtMzEwLVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jPTE1ND1zdGF0aWMgaW50IGluZ2VuaWNfbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jLTE2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYzoxNjc6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmMtMTY4LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jPTQyPXN0YXRpYyBpbnQgaW50ZWxfZXRoX3BsYXRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmM6NTQ6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNTUtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYz0zNzQ9c3RhdGljIGludCBpcHE4MDZ4X2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtMzg2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjM4NzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYy0zODgtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYz0xNTg9c3RhdGljIGludCBsczF4X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMTg3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MTg4Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMTg5LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jPTQyPXN0YXRpYyBpbnQgbHBjMTh4eF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYzo1MzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01NC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM9NTk5PXN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTYzMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM6NjMxOlx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYy02MzItXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jPTQ3PXN0YXRpYyBpbnQgbWVzb242X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYy01Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM6NTg6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTU5LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jPTM4Mj1zdGF0aWMgaW50IG1lc29uOGJfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtMzkyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb244Yi5jOjM5MzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy0zOTQtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM9ODI9c3RhdGljIGludCBudnRfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy05My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYzo5NDpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy05NS1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM9Njg0PXN0YXRpYyBpbnQgcWNvbV9ldGhxb3NfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jLTY5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmM6Njk5Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy03MDAtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYz0xMzE9c3RhdGljIGludCByZW5lc2FzX2diZXRoX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTE0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYzoxNDY6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmMtMTQ3LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYz0xNTY4PXN0YXRpYyBpbnQgcmtfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU4NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTU4NTpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTU4Ni1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYz00OD1zdGF0aWMgaW50IHJ6bjFfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtNTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmM6NTk6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtNjAtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYz0xNDQ9c3RhdGljIGludCBzMzJfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0xNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYzoxNjM6XHRwbGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHJlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTY0LVx0aWYgKElTX0VSUihwbGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NTk2PXN0YXRpYyBpbnQgc29jZnBnYV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy02MTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NjE1Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTYxNi1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jPTM1PXN0YXRpYyBpbnQgc29waGdvX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmMtNDctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYzo0ODpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTQ5LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYz0xNDc9c3RhdGljIGludCBzcGFjZW1pdF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMTY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYzoxNjk6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTE3MC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9OTA9c3RhdGljIGludCBzdGFyZml2ZV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxMDM6XHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jLTEwNC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jPTI0OT1zdGF0aWMgaW50IHN0aV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI2Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jOjI2NzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0aS5jLTI2OC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM9NTI1PXN0YXRpYyBpbnQgc3RtMzJfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTUzNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0bTMyLmM6NTM3Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy01MzgtXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYz0xMDU9c3RhdGljIGludCBzdW41NWlfZ21hYzIwMF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTExNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jOjExNzpcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTExOC1cdGlmIChJU19FUlIocGxhdF9kYXQpKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmM9MTEwNT1zdGF0aWMgaW50IHN1bjhpX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYy0xMTczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYzoxMTc0Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYy0xMTc1LVx0aWYgKElTX0VSUihwbGF0X2RhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYz05OT1zdGF0aWMgaW50IHN1bjdpX2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTExMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM6MTExOlx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYy0xMTItXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jLTMxOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzIwOlx0cGxhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCByZXMubWFjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzIxLVx0aWYgKElTX0VSUihwbGF0KSkge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM9MjE2PXN0YXRpYyBpbnQgdGhlYWRfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTIyOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRoZWFkLmM6MjMwOlx0cGxhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jLTIzMS1cdGlmIChJU19FUlIocGxhdCkpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYz0yMDU9c3RhdGljIGludCB2aXNjb250aV9ldGhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jLTIxNS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM6MjE2Olx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yMTctXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz0zOTM9c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzdG1tYWNfZ21hYzRfY29tcGF0c1tdID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTQwNS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjQwNjogKiBzdG1tYWNfcHJvYmVfY29uZmlnX2R0IC0gcGFyc2UgZGV2aWNlLXRyZWUgZHJpdmVyIHBhcmFtZXRlcnNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTQwNy0gKiBAcGRldjogcGxhdGZvcm1fZGV2aWNlIHN0cnVjdHVyZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTQxMz1zdGF0aWMgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjQxNDpzdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy00MTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTY0MT1zdGF0aWMgdm9pZCBkZXZtX3N0bW1hY19yZW1vdmVfY29uZmlnX2R0KHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjUxLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NjUyOiAqIGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjUzLSAqIEBwZGV2OiBwbGF0Zm9ybV9kZXZpY2Ugc3RydWN0dXJlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NTQtICogQG1hYzogTUFDIGFkZHJlc3MgdG8gdXNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo2NTU6ICogRGVzY3JpcHRpb246IERldnJlcyB2YXJpYW50IG9mIHN0bW1hY19wcm9iZV9jb25maWdfZHQoKS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY1Ni0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTY1Nz1zdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NjU4OmRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjU5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo2NjM6XHRwbGF0ID0gc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBtYWMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjY0LVx0aWYgKElTX0VSUihwbGF0KSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz02NzU9c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY3NjpkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdTggKm1hYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY3Ny17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjgwLSNlbmRpZiAvKiBDT05GSUdfT0YgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY4MTpFWFBPUlRfU1lNQk9MX0dQTChkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjgyLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5oPTE0PXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uaDoxNTpkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdTggKm1hYyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uaC0xNi1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yOSAxMDowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTc2MgoJCQkJCQkJb3V0cHV0OiA5NAoJCQkJCQkJdGhvdWdodHM6IDQ2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBCYXNlZCBvbiB0aGUgZmlsZXMgSSYjMzk7bSBzZWVpbmcsIHRoZXNlIGxvb2sgbGlrZSBwbGF0Zm9ybS1zcGVjaWZpYyBvciBQQ0kgZHJpdmVycyBmb3IgdGhlIFNUTU1BQy9EV01BQyBFdGhlcm5ldCBNQUMgZnJvbSBTeW5vcHN5cyBEZXNpZ25XYXJlLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBjYW4gdGVsbCB0aGVzZSBhcmUgKm5vdCogdmlydHVhbCBuZXR3b3JrIGRldmljZXMgbGlrZSB0dW4sIHRhcCwgb3IgZXZlbiBzb21ldGhpbmcgZW11bGF0ZWQgYnkgc3RhbmRhcmQgUUVNVS4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuCgpOb3csIGxldCYjMzk7cyBnbyBiYWNrIGFuZCBjYXJlZnVsbHkgYXBwbHkgdGhlIHByb21wdCYjMzk7cyBleGNsdXNpb24gY3JpdGVyaWEuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcuIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIHNwZWNpZmljIGNoZWNrczogZG9jdW1lbnRhdGlvbiwgY29uZmlnIGZpbGVzLCBjb21tZW50cywgbG9nZ2luZywgY29uc3RhbnRzLCB1bnJlYWNoYWJsZSBjb2RlIGluIHN0YW5kYXJkIFFFTVUsIHZlbmRvci1zcGVjaWZpYyBQQ0llL1NtYXJ0TklDL0dQVSBkcml2ZXJzLCBhbmQgZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcy4KClNwZWNpZmljYWxseSwgdGhlIHN0bW1hYyBkcml2ZXIgaXMgZGVzaWduZWQgdG8gd29yayB3aXRoIFN5bm9wc3lzIERlc2lnbldhcmUgYW5kIFNUTWljcm9lbGVjdHJvbmljcyBNQUMgaGFyZHdhcmUuIFRoaXMgbWVhbnMgaXQgKm5lZWRzKiByZWFsIGhhcmR3YXJlIG9yIGEgcGFydGljdWxhciBTb0MgcGxhdGZvcm07IGl0JiMzOTtzICpub3QqIHNvbWV0aGluZyB0aGF0JiMzOTtzIHByb3Blcmx5IGVtdWxhdGVkIGluIGEgc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnQuIFRoaXMgaW1tZWRpYXRlbHkgc3VnZ2VzdHMgaXRzIGNvZGUgcGF0aHMgYXJlIGxhcmdlbHkgb2ZmLWxpbWl0cyB0byBmdXp6aW5nIGluIHRoZXNlIHN0YW5kYXJkIHZpcnR1YWxpemVkIHNldC11cHMuCgpHaXZlbiB0aGF0LCBJJiMzOTttIGNvbmZpZGVudCBpbiBzYXlpbmcgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGBmYWxzZWAuIFRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIGFyZSB3aXRoaW4gdGhlIFNUTWljcm9lbGVjdHJvbmljcy9TeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyAoc3RtbWFjKSBkcml2ZXIuIEl0JiMzOTtzIGEgaGFyZHdhcmUtc3BlY2lmaWMgbmV0d29yayBkcml2ZXIgdGhhdCBkZW1hbmRzIHBoeXNpY2FsIGhhcmR3YXJlL1NvQ3MsIHdoaWNoIGFyZSBub3QgYWNjZXNzaWJsZSB3aXRoaW4gdGhlIGNvbmZpbmVzIG9mIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgYW5kIEdDRS4gVGhlcmVmb3JlLCBJJiMzOTttIGdvaW5nIHRvIHNldCBgRW5hYmxlQ29uZmlnc2AgYW5kIGBGb2N1c1N5bWJvbHNgIHRvIGVtcHR5IGFuZCBtYWtlIHRoaXMgZGVjaXNpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI5IDEwOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjkgMTA6MDk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjA4OjI5LjMzMjk3MDk3NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyMjUyNDQ3NDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFNUTWljcm9lbGVjdHJvbmljcyAvIFN5bm9wc3lzIERlc2lnbldhcmUgRXRoZXJuZXQgTUFDIChzdG1tYWMpIGRyaXZlciB0byByZS1hcHBseSB0YXByaW8gRVNUIG9mZmxvYWRpbmcgdXBvbiBpbnRlcmZhY2UgdXAgYW5kIHRpbWUgYWRqdXN0bWVudHMuIFRoaXMgZHJpdmVyIHRhcmdldHMgcGh5c2ljYWwgU29DL1BDSSBoYXJkd2FyZSBhbmQgaXMgbm90IGF2YWlsYWJsZSBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MDg6MjkuMzMyOTc2NDg0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDg4OTMxMDA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMzI3MjJhMjJhN2Y3NDAwMjdmZTIyZmIxZDRlN2JmMDUwYWZjY2E2NVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDowODoyNiAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmNcXG5pbmRleCBhZmM1MTYwNTliODk3Li5iYmViZDMzYzhhODgzIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xcbkBAIC04MCw2ICs4MCwzOSBAQCBzdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4raW50IHN0bW1hY19zZXR1cF9lc3Qoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbit7XFxuK1xcdHN0cnVjdCB0aW1lc3BlYzY0IGN1cnJlbnRfdGltZSwgdGltZTtcXG4rXFx0a3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lO1xcbitcXHR1NjQgY3ljbGVfdGltZTtcXG4rXFx0aW50IGVycjtcXG4rXFxuK1xcdG11dGV4X2xvY2soXFx1MDAyNnByaXYtXFx1MDAzZWVzdF9sb2NrKTtcXG4rXFxuK1xcdHByaXYtXFx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFxcdTAwMjZwcml2LVxcdTAwM2VwdHBfY2xvY2tfb3BzLCBcXHUwMDI2Y3VycmVudF90aW1lKTtcXG4rXFx0Y3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpO1xcbitcXG4rXFx0dGltZS50dl9uc2VjID0gcHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJfcmVzZXJ2ZVswXTtcXG4rXFx0dGltZS50dl9zZWMgPSBwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWJ0cl9yZXNlcnZlWzFdO1xcbitcXHRiYXNldGltZSA9IHRpbWVzcGVjNjRfdG9fa3RpbWUodGltZSk7XFxuK1xcbitcXHRjeWNsZV90aW1lID0gKHU2NClwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWN0clsxXSAqIE5TRUNfUEVSX1NFQyArIHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlY3RyWzBdO1xcbitcXG4rXFx0dGltZSA9IHN0bW1hY19jYWxjX3Rhc19iYXNldGltZShiYXNldGltZSwgY3VycmVudF90aW1lX25zLCBjeWNsZV90aW1lKTtcXG4rXFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJbMF0gPSAodTMyKXRpbWUudHZfbnNlYztcXG4rXFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xcbitcXG4rXFx0ZXJyID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi1cXHUwMDNlZXN0LFxcbitcXHRcXHRcXHRcXHQgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VjbGtfcHRwX3JhdGUpO1xcbitcXG4rXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwcml2LVxcdTAwM2Vlc3RfbG9jayk7XFxuK1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRuZXRkZXZfZXJyKHByaXYtXFx1MDAzZWRldiwgXFxcImZhaWxlZCB0byByZS1jb25maWd1cmUgRVNUXFxcXG5cXFwiKTtcXG4rXFxuK1xcdHJldHVybiBlcnI7XFxuK31cXG4rXFxuIHN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0XFx0XFx0ICAgc3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyAqeCwgdTMyIHR4cWNudClcXG4ge1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmhcXG5pbmRleCBmNzAyMjFjOWM4NGFmLi5mNjIwZDMzMzFjMmNjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaFxcbkBAIC02NSwzICs2NSw1IEBAXFxuICNkZWZpbmUgRVNUX0dDTF9EQVRBXFx0XFx0XFx0MHgwMDAwMDAzNFxcbiBcXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZXN0X29wcyBkd21hYzUxMF9lc3Rfb3BzO1xcbitcXG4raW50IHN0bW1hY19zZXR1cF9lc3Qoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcXG5pbmRleCBkNTc2MDU5YzA0ZGY5Li5iMzAwMzY0MjgxODhjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXFxuQEAgLTQ4LDYgKzQ4LDcgQEBcXG4gI2luY2x1ZGUgXFxcInN0bW1hY19wdHAuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInN0bW1hY19mcGUuaFxcXCJcXG4gI2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbisjaW5jbHVkZSBcXFwic3RtbWFjX2VzdC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwic3RtbWFjX3Bjcy5oXFxcIlxcbiAjaW5jbHVkZSBcXFwic3RtbWFjX3hkcC5oXFxcIlxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcmVzZXQuaFxcdTAwM2VcXG5AQCAtNDE1MywxMSArNDE1NCwyMiBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XFxuIFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuIFxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiJXM6IEh3IHNldHVwIGZhaWxlZFxcXFxuXFxcIiwgX19mdW5jX18pO1xcbi1cXHRcXHRnb3RvIGluaXRfZXJyb3I7XFxuK1xcdFxcdHJldHVybiByZXQ7XFxuIFxcdH1cXG4gXFxuIFxcdHN0bW1hY19zZXR1cF9wdHAocHJpdik7XFxuIFxcbitcXHQvKiBUaGUgY29yZSBzb2Z0IHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIGNsZWFycyB0aGUgTVRMX0VTVFxcbitcXHQgKiByZWdpc3RlcnMsIHNvIHJlLWFwcGx5IHRoZSB0YXByaW8gb2ZmbG9hZCBhZnRlciBQVFAgaXMgdXAuXFxuK1xcdCAqL1xcbitcXHRpZiAocHJpdi1cXHUwMDNlZXN0IFxcdTAwMjZcXHUwMDI2IHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlZW5hYmxlKSB7XFxuK1xcdFxcdHJldCA9IHN0bW1hY19zZXR1cF9lc3QocHJpdik7XFxuK1xcdFxcdGlmIChyZXQgXFx1MDAzYyAwKSB7XFxuK1xcdFxcdFxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlZW5hYmxlID0gZmFsc2U7XFxuK1xcdFxcdFxcdHJldHVybiByZXQ7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXG4gXFx0c3RtbWFjX2luaXRfY29hbGVzY2UocHJpdik7XFxuIFxcbiBcXHRwaHlsaW5rX3N0YXJ0KHByaXYtXFx1MDAzZXBoeWxpbmspO1xcbkBAIC00MTgxLDcgKzQxOTMsNyBAQCBzdGF0aWMgaW50IF9fc3RtbWFjX29wZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0XFx0aHJ0aW1lcl9jYW5jZWwoXFx1MDAyNnByaXYtXFx1MDAzZWRtYV9jb25mLnR4X3F1ZXVlW2NoYW5dLnR4dGltZXIpO1xcbiBcXG4gXFx0c3RtbWFjX3JlbGVhc2VfcHRwKHByaXYpO1xcbi1pbml0X2Vycm9yOlxcbitcXG4gXFx0cmV0dXJuIHJldDtcXG4gfVxcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jXFxuaW5kZXggOTYwMjQ5OTYwMDA0Yy4uOTE3ZWY3ZGRjYWU2MSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmNcXG5AQCAtOCw2ICs4LDcgQEBcXG4gICBBdXRob3I6IFJheWFnb25kIEtva2F0YW51ciBcXHUwMDNjcmF5YWdvbmRAdmF5YXZ5YWxhYnMuY29tXFx1MDAzZVxcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xcbiAjaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuKyNpbmNsdWRlIFxcXCJzdG1tYWNfZXN0LmhcXFwiXFxuICNpbmNsdWRlIFxcXCJzdG1tYWNfcHRwLmhcXFwiXFxuIFxcbiAjZGVmaW5lIFBUUF9TQUZFX1RJTUVfT0ZGU0VUX05TXFx0NTAwMDAwXFxuQEAgLTU1LDcgKzU2LDYgQEAgc3RhdGljIGludCBzdG1tYWNfYWRqdXN0X3RpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcXG4gXFx0dTMyIHF1b3RpZW50LCByZW1pbmRlcjtcXG4gXFx0aW50IG5lZ19hZGogPSAwO1xcbiBcXHRib29sIHhtYWMsIGVzdF9yc3QgPSBmYWxzZTtcXG4tXFx0aW50IHJldDtcXG4gXFxuIFxcdHhtYWMgPSBkd21hY19pc194bWFjKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSk7XFxuIFxcbkBAIC04NCwzMCArODQsOCBAQCBzdGF0aWMgaW50IHN0bW1hY19hZGp1c3RfdGltZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCwgczY0IGRlbHRhKVxcbiBcXG4gXFx0LyogQ2FsY3VsYXRlIG5ldyBiYXNldGltZSBhbmQgcmUtY29uZmlndXJlZCBFU1QgYWZ0ZXIgUFRQIHRpbWUgYWRqdXN0LiAqL1xcbiBcXHRpZiAoZXN0X3JzdCkge1xcbi1cXHRcXHRzdHJ1Y3QgdGltZXNwZWM2NCBjdXJyZW50X3RpbWUsIHRpbWU7XFxuLVxcdFxcdGt0aW1lX3QgY3VycmVudF90aW1lX25zLCBiYXNldGltZTtcXG4tXFx0XFx0dTY0IGN5Y2xlX3RpbWU7XFxuLVxcbi1cXHRcXHRtdXRleF9sb2NrKFxcdTAwMjZwcml2LVxcdTAwM2Vlc3RfbG9jayk7XFxuLVxcdFxcdHByaXYtXFx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFxcdTAwMjZwcml2LVxcdTAwM2VwdHBfY2xvY2tfb3BzLCBcXHUwMDI2Y3VycmVudF90aW1lKTtcXG4tXFx0XFx0Y3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpO1xcbi1cXHRcXHR0aW1lLnR2X25zZWMgPSBwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWJ0cl9yZXNlcnZlWzBdO1xcbi1cXHRcXHR0aW1lLnR2X3NlYyA9IHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyX3Jlc2VydmVbMV07XFxuLVxcdFxcdGJhc2V0aW1lID0gdGltZXNwZWM2NF90b19rdGltZSh0aW1lKTtcXG4tXFx0XFx0Y3ljbGVfdGltZSA9ICh1NjQpcHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VjdHJbMV0gKiBOU0VDX1BFUl9TRUMgK1xcbi1cXHRcXHRcXHQgICAgIHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlY3RyWzBdO1xcbi1cXHRcXHR0aW1lID0gc3RtbWFjX2NhbGNfdGFzX2Jhc2V0aW1lKGJhc2V0aW1lLFxcbi1cXHRcXHRcXHRcXHRcXHRcXHRjdXJyZW50X3RpbWVfbnMsXFxuLVxcdFxcdFxcdFxcdFxcdFxcdGN5Y2xlX3RpbWUpO1xcbi1cXG4tXFx0XFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJbMF0gPSAodTMyKXRpbWUudHZfbnNlYztcXG4tXFx0XFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xcbiBcXHRcXHRwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWVuYWJsZSA9IHRydWU7XFxuLVxcdFxcdHJldCA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXFx1MDAzZWVzdCxcXG4tXFx0XFx0XFx0XFx0XFx0ICAgcHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY2xrX3B0cF9yYXRlKTtcXG4tXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwcml2LVxcdTAwM2Vlc3RfbG9jayk7XFxuLVxcdFxcdGlmIChyZXQpXFxuLVxcdFxcdFxcdG5ldGRldl9lcnIocHJpdi1cXHUwMDNlZGV2LCBcXFwiZmFpbGVkIHRvIGNvbmZpZ3VyZSBFU1RcXFxcblxcXCIpO1xcbitcXHRcXHRzdG1tYWNfc2V0dXBfZXN0KHByaXYpO1xcbiBcXHR9XFxuIFxcbiBcXHRyZXR1cm4gMDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuY1xcbmluZGV4IDE0Y2FiZTc2ZTUzZWMuLmI0MWRmMzE3ZDczY2MgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmNcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuY1xcbkBAIC0xMCw2ICsxMCw3IEBAXFxuICNpbmNsdWRlIFxcXCJkd21hYzQuaFxcXCJcXG4gI2luY2x1ZGUgXFxcImR3bWFjNS5oXFxcIlxcbiAjaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuKyNpbmNsdWRlIFxcXCJzdG1tYWNfZXN0LmhcXFwiXFxuIFxcbiBzdGF0aWMgdm9pZCB0Y19maWxsX2FsbF9wYXNzX2VudHJ5KHN0cnVjdCBzdG1tYWNfdGNfZW50cnkgKmVudHJ5KVxcbiB7XFxuQEAgLTk2OCw4ICs5NjksNyBAQCBzdGF0aWMgaW50IHRjX3RhcHJpb19jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxcbiB7XFxuIFxcdHUzMiBzaXplLCB3aWQgPSBwcml2LVxcdTAwM2VkbWFfY2FwLmVzdHdpZCwgZGVwID0gcHJpdi1cXHUwMDNlZG1hX2NhcC5lc3RkZXA7XFxuIFxcdHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjayA9IHFvcHQtXFx1MDAzZW1xcHJpby5leHRhY2s7XFxuLVxcdHN0cnVjdCB0aW1lc3BlYzY0IHRpbWUsIGN1cnJlbnRfdGltZSwgcW9wdF90aW1lO1xcbi1cXHRrdGltZV90IGN1cnJlbnRfdGltZV9ucztcXG4rXFx0c3RydWN0IHRpbWVzcGVjNjQgdGltZTtcXG4gXFx0aW50IGksIHJldCA9IDA7XFxuIFxcdHU2NCBjdHI7XFxuIFxcbkBAIC0xMDY5LDM0ICsxMDY5LDIzIEBAIHN0YXRpYyBpbnQgdGNfdGFwcmlvX2NvbmZpZ3VyZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuIFxcdH1cXG4gXFxuIFxcdG11dGV4X2xvY2soXFx1MDAyNnByaXYtXFx1MDAzZWVzdF9sb2NrKTtcXG4tXFx0LyogQWRqdXN0IGZvciByZWFsIHN5c3RlbSB0aW1lICovXFxuLVxcdHByaXYtXFx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFxcdTAwMjZwcml2LVxcdTAwM2VwdHBfY2xvY2tfb3BzLCBcXHUwMDI2Y3VycmVudF90aW1lKTtcXG4tXFx0Y3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpO1xcbi1cXHR0aW1lID0gc3RtbWFjX2NhbGNfdGFzX2Jhc2V0aW1lKHFvcHQtXFx1MDAzZWJhc2VfdGltZSwgY3VycmVudF90aW1lX25zLFxcbi1cXHRcXHRcXHRcXHRcXHRxb3B0LVxcdTAwM2VjeWNsZV90aW1lKTtcXG4tXFxuLVxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyWzBdID0gKHUzMil0aW1lLnR2X25zZWM7XFxuLVxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcXG4gXFxuLVxcdHFvcHRfdGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC1cXHUwMDNlYmFzZV90aW1lKTtcXG4tXFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJfcmVzZXJ2ZVswXSA9ICh1MzIpcW9wdF90aW1lLnR2X25zZWM7XFxuLVxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXFvcHRfdGltZS50dl9zZWM7XFxuK1xcdHRpbWUgPSBrdGltZV90b190aW1lc3BlYzY0KHFvcHQtXFx1MDAzZWJhc2VfdGltZSk7XFxuK1xcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlYnRyX3Jlc2VydmVbMF0gPSAodTMyKXRpbWUudHZfbnNlYztcXG4rXFx0cHJpdi1cXHUwMDNlZXN0LVxcdTAwM2VidHJfcmVzZXJ2ZVsxXSA9ICh1MzIpdGltZS50dl9zZWM7XFxuIFxcbiBcXHRjdHIgPSBxb3B0LVxcdTAwM2VjeWNsZV90aW1lO1xcbiBcXHRwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZWN0clswXSA9IGRvX2RpdihjdHIsIE5TRUNfUEVSX1NFQyk7XFxuIFxcdHByaXYtXFx1MDAzZWVzdC1cXHUwMDNlY3RyWzFdID0gKHUzMiljdHI7XFxuIFxcbiBcXHRwcml2LVxcdTAwM2Vlc3QtXFx1MDAzZXRlciA9IHFvcHQtXFx1MDAzZWN5Y2xlX3RpbWVfZXh0ZW5zaW9uO1xcbi1cXG4gXFx0dGNfdGFwcmlvX21hcF9tYXhzZHVfdHhxKHByaXYsIHFvcHQpO1xcbiBcXG4tXFx0cmV0ID0gc3RtbWFjX2VzdF9jb25maWd1cmUocHJpdiwgcHJpdiwgcHJpdi1cXHUwMDNlZXN0LFxcbi1cXHRcXHRcXHRcXHQgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VjbGtfcHRwX3JhdGUpO1xcbiBcXHRtdXRleF91bmxvY2soXFx1MDAyNnByaXYtXFx1MDAzZWVzdF9sb2NrKTtcXG4tXFx0aWYgKHJldCkge1xcbi1cXHRcXHRuZXRkZXZfZXJyKHByaXYtXFx1MDAzZWRldiwgXFxcImZhaWxlZCB0byBjb25maWd1cmUgRVNUXFxcXG5cXFwiKTtcXG4rXFxuK1xcdHJldCA9IHN0bW1hY19zZXR1cF9lc3QocHJpdik7XFxuK1xcdGlmIChyZXQpXFxuIFxcdFxcdGdvdG8gZGlzYWJsZTtcXG4tXFx0fVxcbiBcXG4gXFx0cmV0ID0gc3RtbWFjX2ZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyhwcml2LCBwcml2LVxcdTAwM2VkZXYsIGV4dGFjayxcXG4gXFx0XFx0XFx0XFx0XFx0ICAgICAgcW9wdC1cXHUwMDNlbXFwcmlvLnByZWVtcHRpYmxlX3Rjcyk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjA4OjMwLjgyMjUyNjU2OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6NDA3NjI4NzI3OTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTVE1pY3JvZWxlY3Ryb25pY3MgLyBTeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyAoc3RtbWFjKSBkcml2ZXIgdG8gcmUtYXBwbHkgdGFwcmlvIEVTVCBvZmZsb2FkaW5nIHVwb24gaW50ZXJmYWNlIHVwIGFuZCB0aW1lIGFkanVzdG1lbnRzLiBUaGlzIGRyaXZlciB0YXJnZXRzIHBoeXNpY2FsIFNvQy9QQ0kgaGFyZHdhcmUgYW5kIGlzIG5vdCBhdmFpbGFibGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDMyNzIyYTIyYTdmNzQwMDI3ZmUyMmZiMWQ0ZTdiZjA1MGFmY2NhNjVcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAyOSAxMDowODoyNiAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xuaW5kZXggYWZjNTE2MDU5Yjg5Ny4uYmJlYmQzM2M4YTg4MyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jXG5AQCAtODAsNiArODAsMzkgQEAgc3RhdGljIGludCBlc3RfY29uZmlndXJlKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IHN0bW1hY19lc3QgKmNmZyxcbiBcdHJldHVybiAwO1xuIH1cbiBcbitpbnQgc3RtbWFjX3NldHVwX2VzdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4re1xuK1x0c3RydWN0IHRpbWVzcGVjNjQgY3VycmVudF90aW1lLCB0aW1lO1xuK1x0a3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lO1xuK1x0dTY0IGN5Y2xlX3RpbWU7XG4rXHRpbnQgZXJyO1xuK1xuK1x0bXV0ZXhfbG9jayhcdTAwMjZwcml2LVx1MDAzZWVzdF9sb2NrKTtcbitcbitcdHByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcy5nZXR0aW1lNjQoXHUwMDI2cHJpdi1cdTAwM2VwdHBfY2xvY2tfb3BzLCBcdTAwMjZjdXJyZW50X3RpbWUpO1xuK1x0Y3VycmVudF90aW1lX25zID0gdGltZXNwZWM2NF90b19rdGltZShjdXJyZW50X3RpbWUpO1xuK1xuK1x0dGltZS50dl9uc2VjID0gcHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF07XG4rXHR0aW1lLnR2X3NlYyA9IHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0cl9yZXNlcnZlWzFdO1xuK1x0YmFzZXRpbWUgPSB0aW1lc3BlYzY0X3RvX2t0aW1lKHRpbWUpO1xuK1xuK1x0Y3ljbGVfdGltZSA9ICh1NjQpcHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzFdICogTlNFQ19QRVJfU0VDICsgcHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzBdO1xuK1xuK1x0dGltZSA9IHN0bW1hY19jYWxjX3Rhc19iYXNldGltZShiYXNldGltZSwgY3VycmVudF90aW1lX25zLCBjeWNsZV90aW1lKTtcbitcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuK1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcbitcbitcdGVyciA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXHUwMDNlZXN0LFxuK1x0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4rXG4rXHRtdXRleF91bmxvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4rXG4rXHRpZiAoZXJyKVxuK1x0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcImZhaWxlZCB0byByZS1jb25maWd1cmUgRVNUXFxuXCIpO1xuK1xuK1x0cmV0dXJuIGVycjtcbit9XG4rXG4gc3RhdGljIHZvaWQgZXN0X2lycV9zdGF0dXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdCAgIHN0cnVjdCBzdG1tYWNfZXh0cmFfc3RhdHMgKngsIHUzMiB0eHFjbnQpXG4ge1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaFxuaW5kZXggZjcwMjIxYzljODRhZi4uZjYyMGQzMzMxYzJjYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5oXG5AQCAtNjUsMyArNjUsNSBAQFxuICNkZWZpbmUgRVNUX0dDTF9EQVRBXHRcdFx0MHgwMDAwMDAzNFxuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2VzdF9vcHMgZHdtYWM1MTBfZXN0X29wcztcbitcbitpbnQgc3RtbWFjX3NldHVwX2VzdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jXG5pbmRleCBkNTc2MDU5YzA0ZGY5Li5iMzAwMzY0MjgxODhjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1xuQEAgLTQ4LDYgKzQ4LDcgQEBcbiAjaW5jbHVkZSBcInN0bW1hY19wdHAuaFwiXG4gI2luY2x1ZGUgXCJzdG1tYWNfZnBlLmhcIlxuICNpbmNsdWRlIFwic3RtbWFjLmhcIlxuKyNpbmNsdWRlIFwic3RtbWFjX2VzdC5oXCJcbiAjaW5jbHVkZSBcInN0bW1hY19wY3MuaFwiXG4gI2luY2x1ZGUgXCJzdG1tYWNfeGRwLmhcIlxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbkBAIC00MTUzLDExICs0MTU0LDIyIEBAIHN0YXRpYyBpbnQgX19zdG1tYWNfb3BlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0cmV0ID0gc3RtbWFjX2h3X3NldHVwKGRldik7XG4gXHRpZiAocmV0IFx1MDAzYyAwKSB7XG4gXHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiJXM6IEh3IHNldHVwIGZhaWxlZFxcblwiLCBfX2Z1bmNfXyk7XG4tXHRcdGdvdG8gaW5pdF9lcnJvcjtcbitcdFx0cmV0dXJuIHJldDtcbiBcdH1cbiBcbiBcdHN0bW1hY19zZXR1cF9wdHAocHJpdik7XG4gXG4rXHQvKiBUaGUgY29yZSBzb2Z0IHJlc2V0IGluIHN0bW1hY19od19zZXR1cCgpIGNsZWFycyB0aGUgTVRMX0VTVFxuK1x0ICogcmVnaXN0ZXJzLCBzbyByZS1hcHBseSB0aGUgdGFwcmlvIG9mZmxvYWQgYWZ0ZXIgUFRQIGlzIHVwLlxuK1x0ICovXG4rXHRpZiAocHJpdi1cdTAwM2Vlc3QgXHUwMDI2XHUwMDI2IHByaXYtXHUwMDNlZXN0LVx1MDAzZWVuYWJsZSkge1xuK1x0XHRyZXQgPSBzdG1tYWNfc2V0dXBfZXN0KHByaXYpO1xuK1x0XHRpZiAocmV0IFx1MDAzYyAwKSB7XG4rXHRcdFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlZW5hYmxlID0gZmFsc2U7XG4rXHRcdFx0cmV0dXJuIHJldDtcbitcdFx0fVxuK1x0fVxuK1xuIFx0c3RtbWFjX2luaXRfY29hbGVzY2UocHJpdik7XG4gXG4gXHRwaHlsaW5rX3N0YXJ0KHByaXYtXHUwMDNlcGh5bGluayk7XG5AQCAtNDE4MSw3ICs0MTkzLDcgQEAgc3RhdGljIGludCBfX3N0bW1hY19vcGVuKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXHRcdGhydGltZXJfY2FuY2VsKFx1MDAyNnByaXYtXHUwMDNlZG1hX2NvbmYudHhfcXVldWVbY2hhbl0udHh0aW1lcik7XG4gXG4gXHRzdG1tYWNfcmVsZWFzZV9wdHAocHJpdik7XG4taW5pdF9lcnJvcjpcbitcbiBcdHJldHVybiByZXQ7XG4gfVxuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuY1xuaW5kZXggOTYwMjQ5OTYwMDA0Yy4uOTE3ZWY3ZGRjYWU2MSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5jXG5AQCAtOCw2ICs4LDcgQEBcbiAgIEF1dGhvcjogUmF5YWdvbmQgS29rYXRhbnVyIFx1MDAzY3JheWFnb25kQHZheWF2eWFsYWJzLmNvbVx1MDAzZVxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4gI2luY2x1ZGUgXCJzdG1tYWMuaFwiXG4rI2luY2x1ZGUgXCJzdG1tYWNfZXN0LmhcIlxuICNpbmNsdWRlIFwic3RtbWFjX3B0cC5oXCJcbiBcbiAjZGVmaW5lIFBUUF9TQUZFX1RJTUVfT0ZGU0VUX05TXHQ1MDAwMDBcbkBAIC01NSw3ICs1Niw2IEBAIHN0YXRpYyBpbnQgc3RtbWFjX2FkanVzdF90aW1lKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLCBzNjQgZGVsdGEpXG4gXHR1MzIgcXVvdGllbnQsIHJlbWluZGVyO1xuIFx0aW50IG5lZ19hZGogPSAwO1xuIFx0Ym9vbCB4bWFjLCBlc3RfcnN0ID0gZmFsc2U7XG4tXHRpbnQgcmV0O1xuIFxuIFx0eG1hYyA9IGR3bWFjX2lzX3htYWMocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSk7XG4gXG5AQCAtODQsMzAgKzg0LDggQEAgc3RhdGljIGludCBzdG1tYWNfYWRqdXN0X3RpbWUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsIHM2NCBkZWx0YSlcbiBcbiBcdC8qIENhbGN1bGF0ZSBuZXcgYmFzZXRpbWUgYW5kIHJlLWNvbmZpZ3VyZWQgRVNUIGFmdGVyIFBUUCB0aW1lIGFkanVzdC4gKi9cbiBcdGlmIChlc3RfcnN0KSB7XG4tXHRcdHN0cnVjdCB0aW1lc3BlYzY0IGN1cnJlbnRfdGltZSwgdGltZTtcbi1cdFx0a3RpbWVfdCBjdXJyZW50X3RpbWVfbnMsIGJhc2V0aW1lO1xuLVx0XHR1NjQgY3ljbGVfdGltZTtcbi1cbi1cdFx0bXV0ZXhfbG9jayhcdTAwMjZwcml2LVx1MDAzZWVzdF9sb2NrKTtcbi1cdFx0cHJpdi1cdTAwM2VwdHBfY2xvY2tfb3BzLmdldHRpbWU2NChcdTAwMjZwcml2LVx1MDAzZXB0cF9jbG9ja19vcHMsIFx1MDAyNmN1cnJlbnRfdGltZSk7XG4tXHRcdGN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTtcbi1cdFx0dGltZS50dl9uc2VjID0gcHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF07XG4tXHRcdHRpbWUudHZfc2VjID0gcHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV07XG4tXHRcdGJhc2V0aW1lID0gdGltZXNwZWM2NF90b19rdGltZSh0aW1lKTtcbi1cdFx0Y3ljbGVfdGltZSA9ICh1NjQpcHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzFdICogTlNFQ19QRVJfU0VDICtcbi1cdFx0XHQgICAgIHByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clswXTtcbi1cdFx0dGltZSA9IHN0bW1hY19jYWxjX3Rhc19iYXNldGltZShiYXNldGltZSxcbi1cdFx0XHRcdFx0XHRjdXJyZW50X3RpbWVfbnMsXG4tXHRcdFx0XHRcdFx0Y3ljbGVfdGltZSk7XG4tXG4tXHRcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuLVx0XHRwcml2LVx1MDAzZWVzdC1cdTAwM2VidHJbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xuIFx0XHRwcml2LVx1MDAzZWVzdC1cdTAwM2VlbmFibGUgPSB0cnVlO1xuLVx0XHRyZXQgPSBzdG1tYWNfZXN0X2NvbmZpZ3VyZShwcml2LCBwcml2LCBwcml2LVx1MDAzZWVzdCxcbi1cdFx0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4tXHRcdG11dGV4X3VubG9jayhcdTAwMjZwcml2LVx1MDAzZWVzdF9sb2NrKTtcbi1cdFx0aWYgKHJldClcbi1cdFx0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcImZhaWxlZCB0byBjb25maWd1cmUgRVNUXFxuXCIpO1xuK1x0XHRzdG1tYWNfc2V0dXBfZXN0KHByaXYpO1xuIFx0fVxuIFxuIFx0cmV0dXJuIDA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuY1xuaW5kZXggMTRjYWJlNzZlNTNlYy4uYjQxZGYzMTdkNzNjYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY190Yy5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfdGMuY1xuQEAgLTEwLDYgKzEwLDcgQEBcbiAjaW5jbHVkZSBcImR3bWFjNC5oXCJcbiAjaW5jbHVkZSBcImR3bWFjNS5oXCJcbiAjaW5jbHVkZSBcInN0bW1hYy5oXCJcbisjaW5jbHVkZSBcInN0bW1hY19lc3QuaFwiXG4gXG4gc3RhdGljIHZvaWQgdGNfZmlsbF9hbGxfcGFzc19lbnRyeShzdHJ1Y3Qgc3RtbWFjX3RjX2VudHJ5ICplbnRyeSlcbiB7XG5AQCAtOTY4LDggKzk2OSw3IEBAIHN0YXRpYyBpbnQgdGNfdGFwcmlvX2NvbmZpZ3VyZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4ge1xuIFx0dTMyIHNpemUsIHdpZCA9IHByaXYtXHUwMDNlZG1hX2NhcC5lc3R3aWQsIGRlcCA9IHByaXYtXHUwMDNlZG1hX2NhcC5lc3RkZXA7XG4gXHRzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2sgPSBxb3B0LVx1MDAzZW1xcHJpby5leHRhY2s7XG4tXHRzdHJ1Y3QgdGltZXNwZWM2NCB0aW1lLCBjdXJyZW50X3RpbWUsIHFvcHRfdGltZTtcbi1cdGt0aW1lX3QgY3VycmVudF90aW1lX25zO1xuK1x0c3RydWN0IHRpbWVzcGVjNjQgdGltZTtcbiBcdGludCBpLCByZXQgPSAwO1xuIFx0dTY0IGN0cjtcbiBcbkBAIC0xMDY5LDM0ICsxMDY5LDIzIEBAIHN0YXRpYyBpbnQgdGNfdGFwcmlvX2NvbmZpZ3VyZShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4gXHR9XG4gXG4gXHRtdXRleF9sb2NrKFx1MDAyNnByaXYtXHUwMDNlZXN0X2xvY2spO1xuLVx0LyogQWRqdXN0IGZvciByZWFsIHN5c3RlbSB0aW1lICovXG4tXHRwcml2LVx1MDAzZXB0cF9jbG9ja19vcHMuZ2V0dGltZTY0KFx1MDAyNnByaXYtXHUwMDNlcHRwX2Nsb2NrX29wcywgXHUwMDI2Y3VycmVudF90aW1lKTtcbi1cdGN1cnJlbnRfdGltZV9ucyA9IHRpbWVzcGVjNjRfdG9fa3RpbWUoY3VycmVudF90aW1lKTtcbi1cdHRpbWUgPSBzdG1tYWNfY2FsY190YXNfYmFzZXRpbWUocW9wdC1cdTAwM2ViYXNlX3RpbWUsIGN1cnJlbnRfdGltZV9ucyxcbi1cdFx0XHRcdFx0cW9wdC1cdTAwM2VjeWNsZV90aW1lKTtcbi1cbi1cdHByaXYtXHUwMDNlZXN0LVx1MDAzZWJ0clswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyWzFdID0gKHUzMil0aW1lLnR2X3NlYztcbiBcbi1cdHFvcHRfdGltZSA9IGt0aW1lX3RvX3RpbWVzcGVjNjQocW9wdC1cdTAwM2ViYXNlX3RpbWUpO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMF0gPSAodTMyKXFvcHRfdGltZS50dl9uc2VjO1xuLVx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXFvcHRfdGltZS50dl9zZWM7XG4rXHR0aW1lID0ga3RpbWVfdG9fdGltZXNwZWM2NChxb3B0LVx1MDAzZWJhc2VfdGltZSk7XG4rXHRwcml2LVx1MDAzZWVzdC1cdTAwM2VidHJfcmVzZXJ2ZVswXSA9ICh1MzIpdGltZS50dl9uc2VjO1xuK1x0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlYnRyX3Jlc2VydmVbMV0gPSAodTMyKXRpbWUudHZfc2VjO1xuIFxuIFx0Y3RyID0gcW9wdC1cdTAwM2VjeWNsZV90aW1lO1xuIFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNlY3RyWzBdID0gZG9fZGl2KGN0ciwgTlNFQ19QRVJfU0VDKTtcbiBcdHByaXYtXHUwMDNlZXN0LVx1MDAzZWN0clsxXSA9ICh1MzIpY3RyO1xuIFxuIFx0cHJpdi1cdTAwM2Vlc3QtXHUwMDNldGVyID0gcW9wdC1cdTAwM2VjeWNsZV90aW1lX2V4dGVuc2lvbjtcbi1cbiBcdHRjX3RhcHJpb19tYXBfbWF4c2R1X3R4cShwcml2LCBxb3B0KTtcbiBcbi1cdHJldCA9IHN0bW1hY19lc3RfY29uZmlndXJlKHByaXYsIHByaXYsIHByaXYtXHUwMDNlZXN0LFxuLVx0XHRcdFx0ICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNsa19wdHBfcmF0ZSk7XG4gXHRtdXRleF91bmxvY2soXHUwMDI2cHJpdi1cdTAwM2Vlc3RfbG9jayk7XG4tXHRpZiAocmV0KSB7XG4tXHRcdG5ldGRldl9lcnIocHJpdi1cdTAwM2VkZXYsIFwiZmFpbGVkIHRvIGNvbmZpZ3VyZSBFU1RcXG5cIik7XG4rXG4rXHRyZXQgPSBzdG1tYWNfc2V0dXBfZXN0KHByaXYpO1xuK1x0aWYgKHJldClcbiBcdFx0Z290byBkaXNhYmxlO1xuLVx0fVxuIFxuIFx0cmV0ID0gc3RtbWFjX2ZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyhwcml2LCBwcml2LVx1MDAzZWRldiwgZXh0YWNrLFxuIFx0XHRcdFx0XHQgICAgICBxb3B0LVx1MDAzZW1xcHJpby5wcmVlbXB0aWJsZV90Y3MpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MDg6MzAuODIyNTI3ODA5WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTUwNTM4OTI3ODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyBGZWFzaWJpbGl0eSBBc3Nlc3NtZW50KipcblxuT2theSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhpcyBwYXRjaC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgZnV6emluZyB0aGlzIGNvZGUgaXMgZXZlbiB3b3J0aHdoaWxlLiBJdCBsb29rcyBsaWtlIGl0IHRvdWNoZXMgdGhlIGBzdG1tYWNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2AgZGlyZWN0b3J5LiBJIHNlZSBtb2RpZmljYXRpb25zIGluIGBzdG1tYWNfZXN0LmNgLCBgc3RtbWFjX2VzdC5oYCwgYHN0bW1hY19tYWluLmNgLCBgc3RtbWFjX3B0cC5jYCwgYW5kIGBzdG1tYWNfdGMuY2AuIFRoZSBjb3JlIGNoYW5nZSBzZWVtcyB0byBiZSB0aGUgaW50cm9kdWN0aW9uIG9mIHRoaXMgYHN0bW1hY19zZXR1cF9lc3RgIGZ1bmN0aW9uLiBJdCBsb29rcyBsaWtlIGBfX3N0bW1hY19vcGVuKClgIGNhbGxzIGl0IGlmIGBwcml2LVx1MDAzZWVzdCBcdTAwMjZcdTAwMjYgcHJpdi1cdTAwM2Vlc3QtXHUwMDNlZW5hYmxlYC4gVGhlIG90aGVyIGNoYW5nZXMgcmVmYWN0b3Igc29tZSBleGlzdGluZyBmdW5jdGlvbmFsaXR5IGluIGBzdG1tYWNfYWRqdXN0X3RpbWUoKWAgYW5kIGB0Y190YXByaW9fY29uZmlndXJlKClgIHRvIG1ha2UgdXNlIG9mIHRoZSBuZXcgZnVuY3Rpb24uXG5cbkJlZm9yZSBJIGNvbW1pdCB0byBhbnl0aGluZywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGhhcmR3YXJlIGRlcGVuZGVuY2llcyBoZXJlLiBgc3RtbWFjYCBpcyB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSBFdGhlcm5ldCBNQUMgYW5kIFNUTWljcm9lbGVjdHJvbmljcycgaW1wbGVtZW50YXRpb24sIHJpZ2h0PyBJcyB0aGlzIHNvbWV0aGluZyB0aGF0J3MgbGlrZWx5IHRvIGJlIHByZXNlbnQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUsIG9yIGlzIGl0IHNwZWNpZmljIGhhcmR3YXJlPyBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgYHN0bW1hY2AgaXMgY29tbW9ubHkgdXNlZC4gQ2FuIEkgcmVhc29uYWJseSBleHBlY3QgdG8gZmluZCBlbXVsYXRlZCBgc3RtbWFjYCBkZXZpY2VzIGluIFFFTVUsIG9yIGRvIEkgbmVlZCB0byBodW50IGZvciBhY3R1YWwgUENJIGBzdG1tYWNgIGRldmljZXMgZm9yIHRlc3Rpbmc/IExldCBtZSBkbyBhIHF1aWNrIGBncmVwYCBpbiB0aGUgYEtjb25maWdgIGZpbGVzIGFuZCBkcml2ZXIgZGlyZWN0b3JpZXMgdG8gZ2V0IGEgY2xlYXJlciBwaWN0dXJlIG9mIGl0cyBjb25maWd1cmF0aW9uIGFuZCB1c2FnZS4gSSB3YW50IHRvIHNlZSBob3cgcmVhZGlseSBJIGNhbiBidWlsZCBhIHRlc3QgZW52aXJvbm1lbnQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxMzAsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowODo0NS44NzY0MjIyNTZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTEzNjMzNjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBTVE1NQUNfXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTg9aWYgU1RNTUFDX0VUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTpjb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBsYXRmb3JtIGJ1cyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzE9ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowODo0NS45OTAwNjAwNzVaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1MjcyMjg0NTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFNUTU1BQyBEcml2ZXIgYW5kIGl0cyBXb3J0aGluZXNzIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgZW11bGF0aW9uIHNpdHVhdGlvbiBmb3IgYHN0bW1hY2AuIElzIHRoaXMgYSBzdGFuZGFyZCBRRU1VIGVtdWxhdGVkIGRldmljZSwgb3IgYXJlIHdlIGxvb2tpbmcgYXQgc29tZXRoaW5nIHNwZWNpZmljIHRvIGEgcGFydGljdWxhciBTeXN0ZW0tb24tQ2hpcCAoU29DKSBvciBJbnRlbCBQQ0kgbGlrZSBRdWFyayBvciBFbGtoYXJ0IExha2U/XG5cblRoZSBuZXh0IHRoaW5nIEknbSBhc2tpbmcgbXlzZWxmIGlzLCB3aGljaCBRRU1VIG1hY2hpbmVzIGFjdHVhbGx5ICp1c2UqIGBkd21hY2Agb3IgYHN0bW1hY2A/IE9yLCBpcyB0aGlzIHNvbWV0aGluZyB0aGF0IGFsd2F5cyBwb2ludHMgdG8gcGh5c2ljYWwgaGFyZHdhcmU/IEknbSBzcGVjaWZpY2FsbHkgcmVmZXJlbmNpbmcgdGhlIGV0aGVybmV0IGNvbnRyb2xsZXIgZHJpdmVycyBoZXJlLlxuXG5Ib2xkIG9uLCBsZXQgbWUgcXVpY2tseSByZXZpZXcgdGhlc2UgaW5zdHJ1Y3Rpb25zLiBUaGV54oCZcmUgZ2l2aW5nIGNyaXRlcmlhIGZvciBkZXRlcm1pbmluZyBpZiBzb21ldGhpbmcgaXMgXCJXb3J0aEZ1enppbmc9ZmFsc2VcIi4gSG1tLCB0aGUga2V5IHBvaW50cyBoZXJlIGFyZTogdW5yZWFjaGFibGUgY29kZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUgZXZlbiB3aXRoIGVtdWxhdGVkIGhhcmR3YXJlLCBzdWNoIGFzIFVTQiBnYWRnZXQgb3IgbWFjODAyMTFfaHdzaW0pLCB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVycyB0aGF0IG5lZWQgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSAobGlrZSBgbWx4c3dgLCBgcGRzX2NvcmVgLCBgcWVkYCwgZXRjLiB3aGljaCBhcmUgdGhlIHNvcnQgb2YgdGhpbmdzIEkgZGVhbCB3aXRoIG9uIGEgcmVndWxhciBiYXNpcyksIGFuZCBkcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIHRoYXQgYXJlIG9ubHkgZXhlY3V0ZWQgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuU28sIGNpcmNsaW5nIGJhY2ssIGRvZXMgUUVNVSBoYXZlIHByb3BlciBlbXVsYXRpb24gb2YgU1RNTUFDP1xuXG5Fc3NlbnRpYWxseSwgY2FuIEkgZ2V0IGl0IHRvIHdvcms/IERvZXMgUUVNVSBldmVuIGVtdWxhdGUgYGR3bWFjYCBvciBgc3RtbWFjYCBldGhlcm5ldD8gSSBuZWVkIHRvIGtub3cuXG5cbk5vdywgSSdsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggUUVNVSBwbGF0Zm9ybXMgc3VwcG9ydCBgc3RtbWFjYCBuYXRpdmVseSwgd2hldGhlciBpdOKAmXMgdXNlZCB3aXRoIEFsbHdpbm5lciBTdW54aSwgU1RNMzIsIGV0Yy4gT3IsIGNhbiBJIHJlYWNoIGl0IG9uIHN0YW5kYXJkIHg4Nl82NCBvciBhcm02NCBmdXp6aW5nIHRhcmdldHM/XG5cbkkgc2hvdWxkIHJlYWxseSBmaWd1cmUgb3V0IHdoZXRoZXIgaXQgaXMgYWN0dWFsbHkgcHJvYmUtYWJsZSBvciBpbnN0YW50aWF0ZWQuXG5cbk9rYXksIGxldCdzIGRpZyBpbnRvIHRoZSBjb2RlLiBJJ2xsIG5lZWQgdG8gbG9vayBhdCBgc3RtbWFjX3BjaS5jYCBhbmQgYGR3bWFjXyouY2AgYW5kIHNlZSB3aGljaCBzcGVjaWZpYyBjaGlwcyB0aGV5IHN1cHBvcnQuIFRoaXMgd2lsbCBnaXZlIG1lIHNvbWUgc29saWQgYW5zd2Vycy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjM0NiwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowODo1MS4yNjIzNDY0OTFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIzMzE0OTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRXxwY2lfZGV2aWNlX2lkfHBsYXRmb3JtX2RldmljZV9pZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM9MTE5PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGFuYXJpb25fZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjItfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1hbmFyaW9uLmM6MTIzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGFuYXJpb25fZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMjQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jPTM1Mz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBkd2NfZXRoX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1kd2MtcW9zLWV0aC5jLTM1OC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM6MzU5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGR3Y19ldGhfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzYwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jPTM1MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBlaWM3NzAwX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmMtMzU5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jOjM2MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBlaWM3NzAwX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1laWM3NzAwLmMtMzYxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZ2VuZXJpYy5jPTUyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGR3bWFjX2dlbmVyaWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy02Ni19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYzo2NzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBkd21hY19nZW5lcmljX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmMtNjgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYz0zODQ9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW14X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zODktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYzozOTA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaW14X2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM9MjYyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGluZ2VuaWNfbWFjX29mX21hdGNoZXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yNjktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM6MjcwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGluZ2VuaWNfbWFjX29mX21hdGNoZXMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0yNzEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgaW50ZWxfZXRoX3BsYXRfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYy0zOS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYzo0MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBpbnRlbF9ldGhfcGxhdF9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jLTQxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMjYzPXN0YXRpYyBpbnQgaW50ZWxfZXRoX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjEyNjQ6XFx0XFx0XFx0ICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTEyNjUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYz0xMzYyPXN0YXRpYyB2b2lkIGludGVsX2V0aF9wY2lfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xMzk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTM5NTpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgaW50ZWxfZXRoX3BjaV9pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTM5Ni1cXHR7IFBDSV9ERVZJQ0VfREFUQShJTlRFTCwgUVVBUkssIFxcdTAwMjZxdWFya19pbmZvKSB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYzoxNDE1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBpbnRlbF9ldGhfcGNpX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmM9NDkxPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGlwcTgwNnhfZ21hY19kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTQ5NC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYzo0OTU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaXBxODA2eF9nbWFjX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pcHE4MDZ4LmMtNDk2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz00Nzk9c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19maXhfcmVzZXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy00OTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo0OTg6c3RhdGljIGludCBsb29uZ3Nvbl9kd21hY19wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNDk5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NTc4PXN0YXRpYyB2b2lkIGxvb25nc29uX2R3bWFjX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTk1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NTk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBsb29uZ3Nvbl9kd21hY19pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNTk3LVxcdHsgUENJX0RFVklDRV9EQVRBKExPT05HU09OLCBHTUFDMSwgXFx1MDAyNmxvb25nc29uX2dtYWNfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYwMS19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NjAyOk1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBsb29uZ3Nvbl9kd21hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MDMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYz0yMTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbHMxeF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmMtMjI2LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24xLmM6MjI3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGxzMXhfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTIyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYz03MT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBscGMxOHh4X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmMtNzQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6NzU6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbHBjMTh4eF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbHBjMTh4eC5jLTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYz02NjI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMtNjY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM6NjcwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lZGlhdGVrX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTY3MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM9NzY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVzb242X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbi5jLTc5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYzo4MDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtZXNvbjZfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtODEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM9NDgyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1lc29uOGJfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmM6NTA1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG1lc29uOGJfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy01MDYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0yNjQ9c3RhdGljIGludCBtb3RvcmNvbW1fc2V0dXBfaXJxKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMjkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjI5MzpzdGF0aWMgaW50IG1vdG9yY29tbV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTI5NC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0zNjI9c3RhdGljIHZvaWQgbW90b3Jjb21tX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM2Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzozNjc6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIGR3bWFjX21vdG9yY29tbV9wY2lfaWRfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNjgtXFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTU9UT1JDT01NLCAweDY4MDEpIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zNzAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYzozNzE6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGR3bWFjX21vdG9yY29tbV9wY2lfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYz0xMTg9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbnZ0X2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmMtMTIxLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jOjEyMjpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBudnRfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYy0xMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jPTgwMD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBxY29tX2V0aHFvc19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy04MDYtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1xY29tLWV0aHFvcy5jOjgwNzpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBxY29tX2V0aHFvc19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy04MDgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM9MjE2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJlbmVzYXNfZ2JldGhfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yMjEtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MjIyOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJlbmVzYXNfZ2JldGhfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJlbmVzYXMtZ2JldGguYy0yMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yay5jPTE2MTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgcmtfZ21hY19kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNjM0LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYzoxNjM1Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHJrX2dtYWNfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmMtMTYzNi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYz03NT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCByem4xX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmMtNzgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yem4xLmM6Nzk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgcnpuMV9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTgwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM9MjE2PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHMzMl9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMjE5LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM6MjIwOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHMzMl9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMjIxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTY3Mz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzb2NmcGdhX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjc4LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjY3OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzb2NmcGdhX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjgwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmM9NzI9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc29waGdvX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy03Ni19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjc3Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHNvcGhnb19kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmMtNzgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jPTIxMD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzcGFjZW1pdF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yMTMtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jOjIxNDpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzcGFjZW1pdF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3BhY2VtaXQuYy0yMTUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jPTE2MD1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdGFyZml2ZV9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xNjQtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGFyZml2ZS5jOjE2NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdGFyZml2ZV9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xNjYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYz0yOTY9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3RpX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yOTktfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYzozMDA6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3RpX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0zMDEtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jPTY2Mj1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBzdG0zMl9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy02NjgtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jOjY2OTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdG0zMl9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy02NzAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYz0xNDE9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgc3VuNTVpX2dtYWMyMDBfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jLTE0NC19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jOjE0NTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBzdW41NWlfZ21hYzIwMF9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTQ2LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYz0xMjY4PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN1bjhpX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jLTEyODItfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jOjEyODM6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgc3VuOGlfZHdtYWNfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTI4NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM9MTUwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHN1bjdpX2R3bWFjX21hdGNoW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE1My19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM6MTU0Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIHN1bjdpX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTE1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM9Mzk3PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHRlZ3JhX21nYmVfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtNDAwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYzo0MDE6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdGVncmFfbWdiZV9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy00MDItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jPTI2Nz1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB0aGVhZF9kd21hY19tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yNzAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10aGVhZC5jOjI3MTpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCB0aGVhZF9kd21hY19tYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yNzItXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jPTI1NT1zdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCB2aXNjb250aV9ldGhfZHdtYWNfbWF0Y2hbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmMtMjU4LX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYzoyNTk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgdmlzY29udGlfZXRoX2R3bWFjX21hdGNoKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jLTI2MC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0xMTg9c3RhdGljIGludCBzdG1tYWNfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoxMTk6XFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMTIwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYz0xOTI9c3RhdGljIHZvaWQgc3RtbWFjX3BjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjAyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMDM6c3RhdGljIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkIHN0bW1hY19pZF90YWJsZVtdID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMDQtXFx0eyBQQ0lfREVWSUNFX0RBVEEoU1RNTUFDLCBTVE1NQUMsIFxcdTAwMjZzdG1tYWNfcGNpX2luZm8pIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjA5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTA6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIHN0bW1hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjlUMTA6MDg6NTEuMzE0NjgwOTcxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTE4Mjg1MTA4MDIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHN0bW1hYyBFbXVsYXRpb24gaW4gUUVNVSBhbmQgU3l6a2FsbGVyIGZvciBGdXp6aW5nKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJJ20gbG9va2luZyBhdCBgc3RtbWFjYCwgdGhlIHBoeXNpY2FsIEV0aGVybmV0IE1BQyBjb250cm9sbGVyIGRyaXZlciB1c2VkIGFjcm9zcyBhIHJhbmdlIG9mIFNvQ3MgYW5kIFBDSSBkZXZpY2VzIOKAkyBTVE0zMiwgQWxsd2lubmVyLCBSb2NrY2hpcCwgSW50ZWwsIFRlZ3JhLCBhbmQgc28gb24uIE15IGluaXRpYWwgdGhvdWdodCBpcywgaXMgdGhpcyB0aGluZyBlbXVsYXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnQgb3Igb24gR0NFPyBTcGVjaWZpY2FsbHksIGRvZXMgc3RhbmRhcmQgUUVNVSBldmVuICpoYW5kbGUqIGBzdG1tYWNgIG9yIGBkd21hY2A/XG5cbkkgbmVlZCB0byBjb25maXJtIHRoYXQuIExldCBtZSByZXBocmFzZTogZG9lcyBRRU1VIG9mZmVyIGFueSBlbXVsYXRpb24gb2YgYHN0bW1hY2Agb3IgYGR3bWFjYD8gT3IsIGRvZXMgaXQgZGVwZW5kIG9uIHJlYWwsIHBoeXNpY2FsIFNvQyBvciBQQ0llIGhhcmR3YXJlIHdoaWNoIGlzIG5vdCBlbXVsYXRlZD8gSSdsbCByZS1jaGVjayB3aGF0IHNwZWNpZmljIFFFTVUgbWFjaGluZXMgbWlnaHQgaW5jbHVkZSBkd21hYyBvciBzdG1tYWMsIG9yIGlmIGl0J3MgY29uc2lkZXJlZCBleGNsdXNpdmVseSBhIHBoeXNpY2FsIGhhcmR3YXJlIGNvbXBvbmVudC5cblxuQSBxdWljayByZXZpZXcgb2YgYXZhaWxhYmxlIFFFTVUgbmV0d29yayBkZXZpY2Vz4oCUZTEwMDAsIGlnYiwgdmlydGlvLW5ldCwgZXRjLuKAlHNob3dzIG1hbnkgZW11bGF0ZWQgTklDcy4gT24gdGhlIEFSTSBzaWRlLCBJIHNlZSBzb21lIG1vcmUgc3BlY2lmaWMgZW11bGF0aW9ucywgbGlrZSBzbWM5MWMxMTEgYW5kIGlteF9mZWMuIExvb2tpbmcgYXQgdGhlIEFsbHdpbm5lciBzdW40aS9zdW44aSBvZmZlcmluZ3MgaW4gUUVNVSwgdGhlIGVtdWxhdGVkIGRldmljZXMgYXJlIGBhbGx3aW5uZXItZW1hY2AgYW5kIGBhbGx3aW5uZXItc3VuOGktZW1hY2AuIEludGVyZXN0aW5nLiBCdXQsIGRvIHRoZXNlIHJlbGF0ZSB0byB0aGUgRFdNQUMgb3Igc3RtbWFjIGRyaXZlcnM/IE5vLCB0aGUgYGFsbHdpbm5lci1zdW44aS1lbWFjLmNgIGZpbGUgcHJvdmlkZXMgc29tZSBjbGFyaXR5LlxuXG5Pa2F5LCBiYWNrIHRvIHRoZSBjb3JlIHF1ZXN0aW9uOiBEb2VzIFFFTVUgKmFjdHVhbGx5KiBlbXVsYXRlIFNUTU1BQyAvIERXTUFDP1xuXG5FdmVuIGlmIHRoZXJlJ3Mgc29tZSBvYnNjdXJlIGJvYXJkIGVtdWxhdGlvbiBvdXQgdGhlcmUsIGxldCdzIGNvbnNpZGVyIHRoZSBmdXp6aW5nIHBlcnNwZWN0aXZlIHdpdGggc3l6a2FsbGVyLiBJIG5lZWQgdG8gcmVmZXIgYmFjayB0byBob3cgc3l6a2FsbGVyIGZ1enplcyBhbmQgd2hhdCB0aGUgaW5zdHJ1Y3Rpb24gc2V0IHNheXMgYWJvdXQgaXRzIHVzZSBjYXNlcy4gU3BlY2lmaWNhbGx5LCBzeXprYWxsZXIgd2lsbCBcIlJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2VcIiBpZiB0aGUgcGF0Y2ggb25seSBpbmNsdWRlcyBjb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbCBlbnZpcm9ubWVudHMgKGxpa2UgR0NFIG9yIFFFTVUpLCBldmVuIHdoZW4gdXNpbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUuIEl0IGFsc28gZXhjbHVkZXMgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoIGRyaXZlcnMsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4gQWRkaXRpb25hbGx5LCBpdCBza2lwcyBkcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzLiBJIG11c3Qga2VlcCB0aGlzIGluIG1pbmQuXG5cbk5vdywgbGV0J3Mgc3RlcCBiYWNrIGEgYml0IGFuZCBjb25zaWRlciB0aGUgZ2VuZXJhbCBsYW5kc2NhcGUgb2YgZXRoZXJuZXQgZHJpdmVycywgbG9jYXRlZCBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvKmAuIExpbnV4IGtlcm5lbCBmdXp6aW5nIHdpdGggc3l6a2FsbGVyIG9wZXJhdGVzIHdpdGhpbiBzdGFuZGFyZCBRRU1VICh4ODZfNjQsIGFybTY0KSBvciBHQ0UgVk1zLiBUaGUgZXRoZXJuZXQgZHJpdmVycyBpbiB0aGF0IGRpcmVjdG9yeSBhcmUgcHJpbWFyaWx5IGZvciBzcGVjaWZpYyBoYXJkd2FyZSBOSUNzIChsaWtlIEludGVsIGUxMDAwLCByODE2OSwgQnJvYWRjb20gdGczLCBNZWxsYW5veCBtbHg0L21seDUsIENoZWxzaW8gY3hnYiwgZXRjLikgYW5kIHRoZXkgYXJlIG9mdGVuIGVtdWxhdGVkIGluIFFFTVUuXG5cbkJ1dCBub3csIGJhY2sgdG8gdGhlIGNlbnRyYWwgcXVlc3Rpb246IElzIGBzdG1tYWNgIGhhcmR3YXJlIHByZXNlbnQgd2l0aGluIHRoZXNlIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50cyB1c2VkIGZvciBmdXp6aW5nPyBGcm9tIGV2ZXJ5dGhpbmcgSSd2ZSBzZWVuLCBpdCdzIGNsZWFyOiBOby4gVGhlIHN0YW5kYXJkIFFFTVUgeDg2XzY0IC8gYXJtNjQgVk1zIHVzZWQgYnkgc3l6a2FsbGVyIGRvICpub3QqIGluc3RhbnRpYXRlIGBzdG1tYWNgIGRldmljZXMuIEl0IGlzbid0IHBhcnQgb2YgdGhhdCBzdGFuZGFyZCBlbnZpcm9ubWVudC5cblxuU28sIGxldCdzIHJlLWV2YWx1YXRlOiBjYW4gSSBpbnN0YW50aWF0ZSBgc3RtbWFjYCB1c2luZyBhIHBsYXRmb3JtIGRldmljZSBvciBuZXRsaW5rIG9yIHNvbWUgbW9jayBmcmFtZXdvcms/IEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlIGFyZSB2aXJ0dWFsIG9yIG1vY2sgYHN0bW1hY2AgZHJpdmVycyBhcm91bmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzNjU2LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Nzg2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI5VDEwOjA5OjAzLjE0MzE5NDk1M1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Njg3MjczMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIuKnN0bW1hY3xzdG1tYWNfcHJvYmVfY29uZmlnX2R0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYz05Mz1zdGF0aWMgaW50IGFuYXJpb25fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWFuYXJpb24uYy0xMDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jOjEwNDpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtYW5hcmlvbi5jLTEwNS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmM9MjgzPXN0YXRpYyBpbnQgZHdjX2V0aF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYy0zMDYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZHdjLXFvcy1ldGguYzozMDc6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWR3Yy1xb3MtZXRoLmMtMzA4LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jPTE2Nz1zdGF0aWMgaW50IGVpYzc3MDBfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWVpYzc3MDAuYy0xODAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jOjE4MTpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtZWljNzcwMC5jLTE4Mi1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYz0xOT1zdGF0aWMgaW50IGR3bWFjX2dlbmVyaWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy0yOS1cXHRpZiAocGRldi1cXHUwMDNlZGV2Lm9mX25vZGUpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1nZW5lcmljLmM6MzA6XFx0XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWdlbmVyaWMuYy0zMS1cXHRcXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM9MjkzPXN0YXRpYyBpbnQgaW14X2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zMDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW14LmM6MzA5OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbXguYy0zMTAtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbmdlbmljLmM9MTU0PXN0YXRpYyBpbnQgaW5nZW5pY19tYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWluZ2VuaWMuYy0xNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jOjE2NzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW5nZW5pYy5jLTE2OC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLXBsYXQuYz00Mj1zdGF0aWMgaW50IGludGVsX2V0aF9wbGF0X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwtcGxhdC5jOjU0OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC1wbGF0LmMtNTUtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYz0zNzQ9c3RhdGljIGludCBpcHE4MDZ4X2dtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWlwcTgwNnguYy0zODYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jOjM4NzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaXBxODA2eC5jLTM4OC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jPTE1OD1zdGF0aWMgaW50IGxzMXhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTE4Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3NvbjEuYzoxODg6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uMS5jLTE4OS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYz00Mj1zdGF0aWMgaW50IGxwYzE4eHhfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1scGMxOHh4LmM6NTM6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxwYzE4eHguYy01NC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM9NTk5PXN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMtNjMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmM6NjMxOlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jLTYzMi1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmM9NDc9c3RhdGljIGludCBtZXNvbjZfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uLmMtNTctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYzo1ODpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVzb24uYy01OS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYz0zODI9c3RhdGljIGludCBtZXNvbjhiX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZXNvbjhiLmMtMzkyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYzozOTM6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lc29uOGIuYy0zOTQtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1udXZvdG9uLmM9ODI9c3RhdGljIGludCBudnRfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW51dm90b24uYzo5NDpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbnV2b3Rvbi5jLTk1LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYz02ODQ9c3RhdGljIGludCBxY29tX2V0aHFvc19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYy02OTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcWNvbS1ldGhxb3MuYzo2OTk6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXFjb20tZXRocW9zLmMtNzAwLVxcdGlmIChJU19FUlIocGxhdF9kYXQpKSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM9MTMxPXN0YXRpYyBpbnQgcmVuZXNhc19nYmV0aF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmVuZXNhcy1nYmV0aC5jLTE0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmM6MTQ2OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1yZW5lc2FzLWdiZXRoLmMtMTQ3LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYz0xNTY4PXN0YXRpYyBpbnQgcmtfZ21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNTg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJrLmM6MTU4NTpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcmsuYy0xNTg2LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jPTQ4PXN0YXRpYyBpbnQgcnpuMV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTU4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXJ6bjEuYzo1OTpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtcnpuMS5jLTYwLVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM9MTQ0PXN0YXRpYyBpbnQgczMyX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zMzIuYy0xNjItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmM6MTYzOlxcdHBsYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtczMyLmMtMTY0LVxcdGlmIChJU19FUlIocGxhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM9NTk2PXN0YXRpYyBpbnQgc29jZnBnYV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTYxNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NjE1OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtNjE2LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29waGdvLmM9MzU9c3RhdGljIGludCBzb3BoZ29fZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jLTQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvcGhnby5jOjQ4OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb3BoZ28uYy00OS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM9MTQ3PXN0YXRpYyBpbnQgc3BhY2VtaXRfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmMtMTY4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNwYWNlbWl0LmM6MTY5OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zcGFjZW1pdC5jLTE3MC1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmM9OTA9c3RhdGljIGludCBzdGFyZml2ZV9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYy0xMDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RhcmZpdmUuYzoxMDM6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN0YXJmaXZlLmMtMTA0LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM9MjQ5PXN0YXRpYyBpbnQgc3RpX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yNjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RpLmM6MjY3OlxcdHBsYXRfZGF0ID0gZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHBkZXYsIHN0bW1hY19yZXMubWFjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdGkuYy0yNjgtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jPTUyNT1zdGF0aWMgaW50IHN0bTMyX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jLTUzNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdG0zMi5jOjUzNzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3RtMzIuYy01MzgtXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW41NWkuYz0xMDU9c3RhdGljIGludCBzdW41NWlfZ21hYzIwMF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTE2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjU1aS5jOjExNzpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuNTVpLmMtMTE4LVxcdGlmIChJU19FUlIocGxhdF9kYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VuOGkuYz0xMTA1PXN0YXRpYyBpbnQgc3VuOGlfZHdtYWNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTE3My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW44aS5jOjExNzQ6XFx0cGxhdF9kYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgc3RtbWFjX3Jlcy5tYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bjhpLmMtMTE3NS1cXHRpZiAoSVNfRVJSKHBsYXRfZGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXN1bnhpLmM9OTk9c3RhdGljIGludCBzdW43aV9nbWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jLTExMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zdW54aS5jOjExMTpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc3VueGkuYy0xMTItXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzE5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzIwOlxcdHBsYXQgPSBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQocGRldiwgcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjEtXFx0aWYgKElTX0VSUihwbGF0KSkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYz0yMTY9c3RhdGljIGludCB0aGVhZF9kd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYzoyMzA6XFx0cGxhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGhlYWQuYy0yMzEtXFx0aWYgKElTX0VSUihwbGF0KSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXZpc2NvbnRpLmM9MjA1PXN0YXRpYyBpbnQgdmlzY29udGlfZXRoX2R3bWFjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jLTIxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy12aXNjb250aS5jOjIxNjpcXHRwbGF0X2RhdCA9IGRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBzdG1tYWNfcmVzLm1hYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdmlzY29udGkuYy0yMTctXFx0aWYgKElTX0VSUihwbGF0X2RhdCkpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz0zOTM9c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzdG1tYWNfZ21hYzRfY29tcGF0c1tdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNDA1LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjQwNjogKiBzdG1tYWNfcHJvYmVfY29uZmlnX2R0IC0gcGFyc2UgZGV2aWNlLXRyZWUgZHJpdmVyIHBhcmFtZXRlcnNcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy00MDctICogQHBkZXY6IHBsYXRmb3JtX2RldmljZSBzdHJ1Y3R1cmVcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTQxMz1zdGF0aWMgc3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYzo0MTQ6c3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTQxNS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz02NDE9c3RhdGljIHZvaWQgZGV2bV9zdG1tYWNfcmVtb3ZlX2NvbmZpZ19kdCh2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjUxLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY1MjogKiBkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NTMtICogQHBkZXY6IHBsYXRmb3JtX2RldmljZSBzdHJ1Y3R1cmVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NTQtICogQG1hYzogTUFDIGFkZHJlc3MgdG8gdXNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NjU1OiAqIERlc2NyaXB0aW9uOiBEZXZyZXMgdmFyaWFudCBvZiBzdG1tYWNfcHJvYmVfY29uZmlnX2R0KCkuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjU2LSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jPTY1Nz1zdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY1ODpkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdTggKm1hYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02NTkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmMtNjYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY2MzpcXHRwbGF0ID0gc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChwZGV2LCBtYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY2NC1cXHRpZiAoSVNfRVJSKHBsYXQpKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM9Njc1PXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6Njc2OmRldm1fc3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy02ODAtI2VuZGlmIC8qIENPTkZJR19PRiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjY4MTpFWFBPUlRfU1lNQk9MX0dQTChkZXZtX3N0bW1hY19wcm9iZV9jb25maWdfZHQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTY4Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5oPTE0PXN0cnVjdCBwbGF0X3N0bW1hY2VuZXRfZGF0YSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmg6MTU6ZGV2bV9zdG1tYWNfcHJvYmVfY29uZmlnX2R0KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHU4ICptYWMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5oLTE2LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowOTowMy4xOTAwNzE0MjNaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo4Mzk1MzA0MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBhdGNoJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBCYXNlZCBvbiB0aGUgZmlsZXMgSSdtIHNlZWluZywgdGhlc2UgbG9vayBsaWtlIHBsYXRmb3JtLXNwZWNpZmljIG9yIFBDSSBkcml2ZXJzIGZvciB0aGUgU1RNTUFDL0RXTUFDIEV0aGVybmV0IE1BQyBmcm9tIFN5bm9wc3lzIERlc2lnbldhcmUuIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIGNhbiB0ZWxsIHRoZXNlIGFyZSAqbm90KiB2aXJ0dWFsIG5ldHdvcmsgZGV2aWNlcyBsaWtlIHR1biwgdGFwLCBvciBldmVuIHNvbWV0aGluZyBlbXVsYXRlZCBieSBzdGFuZGFyZCBRRU1VLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LlxuXG5Ob3csIGxldCdzIGdvIGJhY2sgYW5kIGNhcmVmdWxseSBhcHBseSB0aGUgcHJvbXB0J3MgZXhjbHVzaW9uIGNyaXRlcmlhLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgaGF2ZW4ndCBtaXNzZWQgYW55dGhpbmcuIEknbSBmb2N1c2luZyBvbiB0aGUgc3BlY2lmaWMgY2hlY2tzOiBkb2N1bWVudGF0aW9uLCBjb25maWcgZmlsZXMsIGNvbW1lbnRzLCBsb2dnaW5nLCBjb25zdGFudHMsIHVucmVhY2hhYmxlIGNvZGUgaW4gc3RhbmRhcmQgUUVNVSwgdmVuZG9yLXNwZWNpZmljIFBDSWUvU21hcnROSUMvR1BVIGRyaXZlcnMsIGFuZCBkcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzLlxuXG5TcGVjaWZpY2FsbHksIHRoZSBzdG1tYWMgZHJpdmVyIGlzIGRlc2lnbmVkIHRvIHdvcmsgd2l0aCBTeW5vcHN5cyBEZXNpZ25XYXJlIGFuZCBTVE1pY3JvZWxlY3Ryb25pY3MgTUFDIGhhcmR3YXJlLiBUaGlzIG1lYW5zIGl0ICpuZWVkcyogcmVhbCBoYXJkd2FyZSBvciBhIHBhcnRpY3VsYXIgU29DIHBsYXRmb3JtOyBpdCdzICpub3QqIHNvbWV0aGluZyB0aGF0J3MgcHJvcGVybHkgZW11bGF0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudC4gVGhpcyBpbW1lZGlhdGVseSBzdWdnZXN0cyBpdHMgY29kZSBwYXRocyBhcmUgbGFyZ2VseSBvZmYtbGltaXRzIHRvIGZ1enppbmcgaW4gdGhlc2Ugc3RhbmRhcmQgdmlydHVhbGl6ZWQgc2V0LXVwcy5cblxuR2l2ZW4gdGhhdCwgSSdtIGNvbmZpZGVudCBpbiBzYXlpbmcgYFdvcnRoRnV6emluZ2Agc2hvdWxkIGJlIGBmYWxzZWAuIFRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIGFyZSB3aXRoaW4gdGhlIFNUTWljcm9lbGVjdHJvbmljcy9TeW5vcHN5cyBEZXNpZ25XYXJlIEV0aGVybmV0IE1BQyAoc3RtbWFjKSBkcml2ZXIuIEl0J3MgYSBoYXJkd2FyZS1zcGVjaWZpYyBuZXR3b3JrIGRyaXZlciB0aGF0IGRlbWFuZHMgcGh5c2ljYWwgaGFyZHdhcmUvU29Dcywgd2hpY2ggYXJlIG5vdCBhY2Nlc3NpYmxlIHdpdGhpbiB0aGUgY29uZmluZXMgb2Ygc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBhbmQgR0NFLiBUaGVyZWZvcmUsIEknbSBnb2luZyB0byBzZXQgYEVuYWJsZUNvbmZpZ3NgIGFuZCBgRm9jdXNTeW1ib2xzYCB0byBlbXB0eSBhbmQgbWFrZSB0aGlzIGRlY2lzaW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTc2MiwiT3V0cHV0VG9rZW5zIjo5NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ2NiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowOToxMS41ODUzNzc2NjlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU1RNaWNyb2VsZWN0cm9uaWNzIC8gU3lub3BzeXMgRGVzaWduV2FyZSBFdGhlcm5ldCBNQUMgKHN0bW1hYykgZHJpdmVyIHRvIHJlLWFwcGx5IHRhcHJpbyBFU1Qgb2ZmbG9hZGluZyB1cG9uIGludGVyZmFjZSB1cCBhbmQgdGltZSBhZGp1c3RtZW50cy4gVGhpcyBkcml2ZXIgdGFyZ2V0cyBwaHlzaWNhbCBTb0MvUENJIGhhcmR3YXJlIGFuZCBpcyBub3QgYXZhaWxhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU1RNaWNyb2VsZWN0cm9uaWNzIC8gU3lub3BzeXMgRGVzaWduV2FyZSBFdGhlcm5ldCBNQUMgKHN0bW1hYykgZHJpdmVyIHRvIHJlLWFwcGx5IHRhcHJpbyBFU1Qgb2ZmbG9hZGluZyB1cG9uIGludGVyZmFjZSB1cCBhbmQgdGltZSBhZGp1c3RtZW50cy4gVGhpcyBkcml2ZXIgdGFyZ2V0cyBwaHlzaWNhbCBTb0MvUENJIGhhcmR3YXJlIGFuZCBpcyBub3QgYXZhaWxhYmxlIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yOVQxMDowOToxMS41ODU0MDA5MjlaIiwiU2VxIjoxMSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow2ds4x[1] Phase: Running StartedAt: 2026-08-29 10:09:22 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow2ds4x[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-29 10:09:22 +0000 UTC FinishedAt: 2026-08-29 10:09:26 +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,}