Name: series-workflowfhx6w Phase: Failed StartedAt: 2026-07-07 15:33:11 +0000 UTC FinishedAt: 2026-07-07 15:46:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfhx6w[0] Phase: Succeeded StartedAt: 2026-07-07 15:33:11 +0000 UTC FinishedAt: 2026-07-07 15:46:48 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfhx6w[0].run-triage Phase: Succeeded StartedAt: 2026-07-07 15:33:11 +0000 UTC FinishedAt: 2026-07-07 15:46:48 +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+CgkJCTx0ZD4yMDI2LzA3LzA3IDE1OjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DIChNVDgxODkpIHRvIHRoZSBkd21hYy1tZWRpYXRlayBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IHJlbGllcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgc3BlY2lmaWMgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZXhlY3V0ZWQgb3IgcmVhY2hlZCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxNTo0NTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDlkOTRmMDVlMTMyZmMxNzY0ODQ1NDBmMWExNmExNjA5MGFmMjdjYjZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCA3IDE1OjQ1OjMxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbFxuaW5kZXggM2FhYjIxYjhlOGRlNWIuLjAwMGFiZWMwMjNiMzE0IDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sXG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWxcbkBAIC0yMCwxMyAmIzQzOzIwLDExIEBAIHNlbGVjdDpcbiAgICAgICAgIGVudW06XG4gICAgICAgICAgIC0gbWVkaWF0ZWssbXQyNzEyLWdtYWNcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODgtZ21hY1xuJiM0MzsgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODktZ21hY1xuICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXG4gICByZXF1aXJlZDpcbiAgICAgLSBjb21wYXRpYmxlXG4gXG4tYWxsT2Y6XG4tICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbi1cbiBwcm9wZXJ0aWVzOlxuICAgY29tcGF0aWJsZTpcbiAgICAgb25lT2Y6XG5AQCAtMzYsNiAmIzQzOzM0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbiYjNDM7ICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OS1nbWFjXG4gICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4xMGFcbiAgICAgICAtIGl0ZW1zOlxuQEAgLTQ0LDI2ICYjNDM7NDMsNiBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIGNvbnN0OiBtZWRpYXRlayxtdDgxOTUtZ21hY1xuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXG4gXG4tICBjbG9ja3M6XG4tICAgIG1pbkl0ZW1zOiA1XG4tICAgIGl0ZW1zOlxuLSAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBjbG9ja1xuLSAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBjbG9ja1xuLSAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBNYWluIGNsb2NrXG4tICAgICAgLSBkZXNjcmlwdGlvbjogUFRQIGNsb2NrXG4tICAgICAgLSBkZXNjcmlwdGlvbjogUk1JSSByZWZlcmVuY2UgY2xvY2sgcHJvdmlkZWQgYnkgTUFDXG4tICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIGNsb2NrIGdhdGVcbi1cbi0gIGNsb2NrLW5hbWVzOlxuLSAgICBtaW5JdGVtczogNVxuLSAgICBpdGVtczpcbi0gICAgICAtIGNvbnN0OiBheGlcbi0gICAgICAtIGNvbnN0OiBhcGJcbi0gICAgICAtIGNvbnN0OiBtYWNfbWFpblxuLSAgICAgIC0gY29uc3Q6IHB0cF9yZWZcbi0gICAgICAtIGNvbnN0OiBybWlpX2ludGVybmFsXG4tICAgICAgLSBjb25zdDogbWFjX2NnXG4tXG4gICBpbnRlcnJ1cHRzOlxuICAgICBtYXhJdGVtczogMVxuIFxuQEAgLTE0Nyw2ICYjNDM7MTI2LDU4IEBAIHJlcXVpcmVkOlxuICAgLSBwaHktbW9kZVxuICAgLSBtZWRpYXRlayxwZXJpY2ZnXG4gXG4mIzQzO2FsbE9mOlxuJiM0MzsgIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuJiM0MzsgIC0gaWY6XG4mIzQzOyAgICAgIHByb3BlcnRpZXM6XG4mIzQzOyAgICAgICAgY29tcGF0aWJsZTpcbiYjNDM7ICAgICAgICAgIGNvbnRhaW5zOlxuJiM0MzsgICAgICAgICAgICBlbnVtOlxuJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQyNzEyLWdtYWNcbiYjNDM7ICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OC1nbWFjXG4mIzQzOyAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxOTUtZ21hY1xuJiM0MzsgICAgdGhlbjpcbiYjNDM7ICAgICAgcHJvcGVydGllczpcbiYjNDM7ICAgICAgICBjbG9ja3M6XG4mIzQzOyAgICAgICAgICBtaW5JdGVtczogNVxuJiM0MzsgICAgICAgICAgaXRlbXM6XG4mIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBjbG9ja1xuJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBBUEIgY2xvY2tcbiYjNDM7ICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2tcbiYjNDM7ICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogUFRQIGNsb2NrXG4mIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQ1xuJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgY2xvY2sgZ2F0ZVxuJiM0MztcbiYjNDM7ICAgICAgICBjbG9jay1uYW1lczpcbiYjNDM7ICAgICAgICAgIG1pbkl0ZW1zOiA1XG4mIzQzOyAgICAgICAgICBpdGVtczpcbiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogYXhpXG4mIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IGFwYlxuJiM0MzsgICAgICAgICAgICAtIGNvbnN0OiBtYWNfbWFpblxuJiM0MzsgICAgICAgICAgICAtIGNvbnN0OiBwdHBfcmVmXG4mIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWxcbiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogbWFjX2NnXG4mIzQzO1xuJiM0MzsgIC0gaWY6XG4mIzQzOyAgICAgIHByb3BlcnRpZXM6XG4mIzQzOyAgICAgICAgY29tcGF0aWJsZTpcbiYjNDM7ICAgICAgICAgIGNvbnRhaW5zOlxuJiM0MzsgICAgICAgICAgICBlbnVtOlxuJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWNcbiYjNDM7ICAgIHRoZW46XG4mIzQzOyAgICAgIHByb3BlcnRpZXM6XG4mIzQzOyAgICAgICAgY2xvY2tzOlxuJiM0MzsgICAgICAgICAgaXRlbXM6XG4mIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBNYWluIGNsb2NrXG4mIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9ja1xuJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBSTUlJIHJlZmVyZW5jZSBjbG9jayBwcm92aWRlZCBieSBNQUNcbiYjNDM7XG4mIzQzOyAgICAgICAgY2xvY2stbmFtZXM6XG4mIzQzOyAgICAgICAgICBpdGVtczpcbiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogbWFjX21haW5cbiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogcHRwX3JlZlxuJiM0MzsgICAgICAgICAgICAtIGNvbnN0OiBybWlpX2ludGVybmFsXG4mIzQzO1xuIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2VcbiBcbiBleGFtcGxlczpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuY1xuaW5kZXggMzBhZTBkYmE3ZmZmZGIuLmU3ZTMzNmIxZjExNGM0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuY1xuQEAgLTM2LDggJiM0MzszNiwxNiBAQFxuICNkZWZpbmUgRVRIX0ZJTkVfRExZX0dUWENcdEJJVCgxKVxuICNkZWZpbmUgRVRIX0ZJTkVfRExZX1JYQ1x0QklUKDApXG4gXG4mIzQzOy8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTg5ICovXG4mIzQzOyNkZWZpbmUgTVQ4MTg5X1BFUklfRVRIX0NUUkxfQkFTRVx0XHQweDI3MFxuJiM0MztcbiYjNDM7I2RlZmluZSBNVDgxODlfQ1RSTDBfVFhDX09VVF9PUFx0XHRcdEJJVCgyMClcbiYjNDM7I2RlZmluZSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORVx0R0VOTUFTSygxMSwgNilcbiYjNDM7XG4gLyogUGVyaSBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIGZvciBtdDgxOTUgKi9cbi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMFx0XHQweEZEMFxuJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMX0JBU0VcdDB4RkQwXG4mIzQzO1xuJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMFx0XHQweDBcbiAjZGVmaW5lIE1UODE5NV9STUlJX0NMS19TUkNfSU5URVJOQUxcdEJJVCgyOClcbiAjZGVmaW5lIE1UODE5NV9STUlJX0NMS19TUkNfUlhDXHRcdEJJVCgyNylcbiAjZGVmaW5lIE1UODE5NV9FVEhfSU5URl9TRUxcdFx0R0VOTUFTSygyNiwgMjQpXG5AQCAtNDcsNyAmIzQzOzU1LDcgQEBcbiAjZGVmaW5lIE1UODE5NV9ETFlfR1RYQ19FTkFCTEVcdFx0QklUKDUpXG4gI2RlZmluZSBNVDgxOTVfRExZX0dUWENfU1RBR0VTXHRcdEdFTk1BU0soNCwgMClcbiBcbi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMVx0XHQweEZENFxuJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMVx0XHQweDRcbiAjZGVmaW5lIE1UODE5NV9ETFlfUlhDX0lOVlx0XHRCSVQoMjUpXG4gI2RlZmluZSBNVDgxOTVfRExZX1JYQ19FTkFCTEVcdFx0QklUKDE4KVxuICNkZWZpbmUgTVQ4MTk1X0RMWV9SWENfU1RBR0VTXHRcdEdFTk1BU0soMTcsIDEzKVxuQEAgLTU1LDcgJiM0Mzs2Myw3IEBAXG4gI2RlZmluZSBNVDgxOTVfRExZX1RYQ19FTkFCTEVcdFx0QklUKDUpXG4gI2RlZmluZSBNVDgxOTVfRExZX1RYQ19TVEFHRVNcdFx0R0VOTUFTSyg0LCAwKVxuIFxuLSNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwyXHRcdDB4RkQ4XG4mIzQzOyNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwyXHRcdDB4OFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19JTlZcdFx0QklUKDI1KVxuICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19FTkFCTEVcdEJJVCgxOClcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfU1RBR0VTXHRHRU5NQVNLKDE3LCAxMylcbkBAIC05NSw3ICYjNDM7MTAzLDEwIEBAIHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IHtcbiBcbiBcdHUzMiByeF9kZWxheV9tYXg7XG4gXHR1MzIgdHhfZGVsYXlfbWF4O1xuJiM0MztcdHUzMiBwZXJpX2V0aF9jdHJsX29mZnNldDtcbiBcdHU4IGRtYV9iaXRfbWFzaztcbiYjNDM7XHRib29sIHVzZV9vdXRfb3A7XG4mIzQzO1x0Ym9vbCB1c2Vfc3RhZ2VfZmluZTtcbiB9O1xuIFxuIC8qIGxpc3Qgb2YgY2xvY2tzIHJlcXVpcmVkIGZvciBtYWMgKi9cbkBAIC0xMDcsNyAmIzQzOzExOCwxMSBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG10ODE5NV9kd21hY19jbGtfbFtdID0ge1xuIFx0XCYjMzQ7YXhpXCYjMzQ7LCBcJiMzNDthcGJcJiMzNDssIFwmIzM0O21hY19jZ1wmIzM0OywgXCYjMzQ7bWFjX21haW5cJiMzNDssIFwmIzM0O3B0cF9yZWZcJiMzNDtcbiB9O1xuIFxuLXN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcbiYjNDM7c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtdDgxODlfZHdtYWNfY2xrX2xbXSA9IHtcbiYjNDM7XHRcJiMzNDttYWNfbWFpblwmIzM0OywgXCYjMzQ7cHRwX3JlZlwmIzM0O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7c3RhdGljIGludCBzZXRfcGh5X2ludGVyZmFjZV92MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0XHRcdFx0dTggcGh5X2ludGZfc2VsKVxuIHtcbiBcdHUzMiBpbnRmX3ZhbCA9IHBoeV9pbnRmX3NlbDtcbkBAIC0xMjQsNyAmIzQzOzEzOSw3IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcbiBcdHJldHVybiAwO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiYjNDM7c3RhdGljIHZvaWQgZGVsYXlfcHMyc3RhZ2VfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiB7XG4gXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXHUwMDI2cGxhdC1cdTAwM2VtYWNfZGVsYXk7XG4gXG5AQCAtMTQ5LDcgJiM0MzsxNjQsNyBAQCBzdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdH1cbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4mIzQzO3N0YXRpYyB2b2lkIGRlbGF5X3N0YWdlMnBzX3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFxuQEAgLTE3NCwxMiAmIzQzOzE4OSwxMiBAQCBzdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfc3RhZ2UycHMoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdH1cbiB9XG4gXG4tc3RhdGljIGludCBtdDI3MTJfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4mIzQzO3N0YXRpYyBpbnQgc2V0X2RlbGF5X3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFx0dTMyIGRlbGF5X3ZhbCA9IDAsIGZpbmVfdmFsID0gMDtcbiBcbi1cdG10MjcxMl9kZWxheV9wczJzdGFnZShwbGF0KTtcbiYjNDM7XHRkZWxheV9wczJzdGFnZV92MShwbGF0KTtcbiBcbiBcdHN3aXRjaCAocGxhdC1cdTAwM2VwaHlfbW9kZSkge1xuIFx0Y2FzZSBQSFlfSU5URVJGQUNFX01PREVfTUlJOlxuQEAgLTI1OCwxNCAmIzQzOzI3MywxNCBAQCBzdGF0aWMgaW50IG10MjcxMl9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdHJlZ21hcF93cml0ZShwbGF0LVx1MDAzZXBlcmlfcmVnbWFwLCBQRVJJX0VUSF9ETFksIGRlbGF5X3ZhbCk7XG4gXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgUEVSSV9FVEhfRExZX0ZJTkUsIGZpbmVfdmFsKTtcbiBcbi1cdG10MjcxMl9kZWxheV9zdGFnZTJwcyhwbGF0KTtcbiYjNDM7XHRkZWxheV9zdGFnZTJwc192MShwbGF0KTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcbi1cdFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gbXQyNzEyX3NldF9pbnRlcmZhY2UsXG4tXHRcdC5kd21hY19zZXRfZGVsYXkgPSBtdDI3MTJfc2V0X2RlbGF5LFxuJiM0MztcdFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjEsXG4mIzQzO1x0XHQuZHdtYWNfc2V0X2RlbGF5ID0gc2V0X2RlbGF5X3YxLFxuIFx0XHQuY2xrX2xpc3QgPSBtdDI3MTJfZHdtYWNfY2xrX2wsXG4gXHRcdC5udW1fY2xrcyA9IEFSUkFZX1NJWkUobXQyNzEyX2R3bWFjX2Nsa19sKSxcbiBcdFx0LnJ4X2RlbGF5X21heCA9IDE3NjAwLFxuQEAgLTI3MywxMCAmIzQzOzI4OCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcbiBcdFx0LmRtYV9iaXRfbWFzayA9IDMzLFxuIH07XG4gXG4tc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuJiM0MztzdGF0aWMgaW50IHNldF9waHlfaW50ZXJmYWNlX3YyKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQsXG4gXHRcdFx0XHR1OCBwaHlfaW50Zl9zZWwpXG4ge1xuIFx0dTMyIGludGZfdmFsID0gRklFTERfUFJFUChNVDgxOTVfRVRIX0lOVEZfU0VMLCBwaHlfaW50Zl9zZWwpO1xuJiM0MztcdHUzMiByZWdfb2Zmc2V0ID0gcGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXBlcmlfZXRoX2N0cmxfb2Zmc2V0O1xuIFxuIFx0aWYgKHBoeV9pbnRmX3NlbCA9PSBQSFlfSU5URl9TRUxfUk1JSSkge1xuIFx0XHRpZiAocGxhdC1cdTAwM2VybWlpX2Nsa19mcm9tX21hYylcbkBAIC0yODgsMTIgJiM0MzszMDQsMTcgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0LyogTVQ4MTk1IG9ubHkgc3VwcG9ydCBleHRlcm5hbCBQSFkgKi9cbiBcdGludGZfdmFsIHw9IE1UODE5NV9FWFRfUEhZX01PREU7XG4gXG4tXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLCBpbnRmX3ZhbCk7XG4mIzQzO1x0aWYgKHBsYXQtXHUwMDNldmFyaWFudC1cdTAwM2V1c2Vfb3V0X29wKVxuJiM0MztcdFx0aW50Zl92YWwgfD0gTVQ4MTg5X0NUUkwwX1RYQ19PVVRfT1A7XG4mIzQzO1xuJiM0MztcdHJlZ21hcF93cml0ZShwbGF0LVx1MDAzZXBlcmlfcmVnbWFwLFxuJiM0MztcdFx0ICAgICByZWdfb2Zmc2V0ICYjNDM7IE1UODE5NV9QRVJJX0VUSF9DVFJMMCxcbiYjNDM7XHRcdCAgICAgaW50Zl92YWwpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIG10ODE5NV9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuJiM0MztzdGF0aWMgdm9pZCBkZWxheV9wczJzdGFnZV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIHtcbiBcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcdTAwMjZwbGF0LVx1MDAzZW1hY19kZWxheTtcbiBcbkBAIC0zMDIsNyAmIzQzOzMyMyw3IEBAIHN0YXRpYyB2b2lkIG10ODE5NV9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIFx0bWFjX2RlbGF5LVx1MDAzZXJ4X2RlbGF5IC89IDI5MDtcbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4mIzQzO3N0YXRpYyB2b2lkIGRlbGF5X3N0YWdlMnBzX3YyKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFxuQEAgLTMxMSwxMiAmIzQzOzMzMiwxNiBAQCBzdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfc3RhZ2UycHMoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdG1hY19kZWxheS1cdTAwM2VyeF9kZWxheSAqPSAyOTA7XG4gfVxuIFxuLXN0YXRpYyBpbnQgbXQ4MTk1X3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuJiM0MztzdGF0aWMgaW50IHNldF9kZWxheV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIHtcbiBcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcdTAwMjZwbGF0LVx1MDAzZW1hY19kZWxheTtcbi1cdHUzMiBndHhjX2RlbGF5X3ZhbCA9IDAsIGRlbGF5X3ZhbCA9IDAsIHJtaWlfZGVsYXlfdmFsID0gMDtcbiYjNDM7XHR1MzIgcmVnX29mZnNldCA9IHBsYXQtXHUwMDNldmFyaWFudC1cdTAwM2VwZXJpX2V0aF9jdHJsX29mZnNldDtcbiYjNDM7XHR1MzIgZ3R4Y19kZWxheV9tYXNrID0gMDtcbiYjNDM7XHR1MzIgZ3R4Y19kZWxheV92YWwgPSAwO1xuJiM0MztcdHUzMiBybWlpX2RlbGF5X3ZhbCA9IDA7XG4mIzQzO1x0dTMyIGRlbGF5X3ZhbCA9IDA7XG4gXG4tXHRtdDgxOTVfZGVsYXlfcHMyc3RhZ2UocGxhdCk7XG4mIzQzO1x0ZGVsYXlfcHMyc3RhZ2VfdjIocGxhdCk7XG4gXG4gXHRzd2l0Y2ggKHBsYXQtXHUwMDNlcGh5X21vZGUpIHtcbiBcdGNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX01JSTpcbkBAIC0zODgsNiAmIzQzOzQxMyw5IEBAIHN0YXRpYyBpbnQgbXQ4MTk1X3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIFx0XHRndHhjX2RlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfR1RYQ19TVEFHRVMsIG1hY19kZWxheS1cdTAwM2V0eF9kZWxheSk7XG4gXHRcdGd0eGNfZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9HVFhDX0lOViwgbWFjX2RlbGF5LVx1MDAzZXR4X2ludik7XG4gXG4mIzQzO1x0XHRpZiAocGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXVzZV9zdGFnZV9maW5lKVxuJiM0MztcdFx0XHRndHhjX2RlbGF5X3ZhbCB8PSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORTtcbiYjNDM7XG4gXHRcdGRlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfUlhDX0VOQUJMRSwgISFtYWNfZGVsYXktXHUwMDNlcnhfZGVsYXkpO1xuIFx0XHRkZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX1JYQ19TVEFHRVMsIG1hY19kZWxheS1cdTAwM2VyeF9kZWxheSk7XG4gXHRcdGRlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfUlhDX0lOViwgbWFjX2RlbGF5LVx1MDAzZXJ4X2ludik7XG5AQCAtMzk4LDI5ICYjNDM7NDI2LDUyIEBAIHN0YXRpYyBpbnQgbXQ4MTk1X3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbiBcbiYjNDM7XHRndHhjX2RlbGF5X21hc2sgPSBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfFxuJiM0MztcdFx0XHQgIE1UODE5NV9ETFlfR1RYQ19JTlYgfFxuJiM0MztcdFx0XHQgIE1UODE5NV9ETFlfR1RYQ19FTkFCTEUgfFxuJiM0MztcdFx0XHQgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVM7XG4mIzQzO1xuJiM0MztcdGlmIChwbGF0LVx1MDAzZXZhcmlhbnQtXHUwMDNldXNlX3N0YWdlX2ZpbmUpXG4mIzQzO1x0XHRndHhjX2RlbGF5X21hc2sgfD0gTVQ4MTg5X0NUUkwwX0RMWV9HVFhDX1NUQUdFX0ZJTkU7XG4mIzQzO1xuIFx0cmVnbWFwX3VwZGF0ZV9iaXRzKHBsYXQtXHUwMDNlcGVyaV9yZWdtYXAsXG4tXHRcdFx0ICAgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLFxuLVx0XHRcdCAgIE1UODE5NV9SR01JSV9UWENfUEhBU0VfQ1RSTCB8XG4tXHRcdFx0ICAgTVQ4MTk1X0RMWV9HVFhDX0lOViB8XG4tXHRcdFx0ICAgTVQ4MTk1X0RMWV9HVFhDX0VOQUJMRSB8XG4tXHRcdFx0ICAgTVQ4MTk1X0RMWV9HVFhDX1NUQUdFUyxcbiYjNDM7XHRcdFx0ICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsXG4mIzQzO1x0XHRcdCAgIGd0eGNfZGVsYXlfbWFzayxcbiBcdFx0XHQgICBndHhjX2RlbGF5X3ZhbCk7XG4tXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwxLCBkZWxheV92YWwpO1xuLVx0cmVnbWFwX3dyaXRlKHBsYXQtXHUwMDNlcGVyaV9yZWdtYXAsIE1UODE5NV9QRVJJX0VUSF9DVFJMMiwgcm1paV9kZWxheV92YWwpO1xuJiM0MztcdHJlZ21hcF93cml0ZShwbGF0LVx1MDAzZXBlcmlfcmVnbWFwLFxuJiM0MztcdFx0ICAgICByZWdfb2Zmc2V0ICYjNDM7IE1UODE5NV9QRVJJX0VUSF9DVFJMMSxcbiYjNDM7XHRcdCAgICAgZGVsYXlfdmFsKTtcbiYjNDM7XHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCxcbiYjNDM7XHRcdCAgICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDIsXG4mIzQzO1x0XHQgICAgIHJtaWlfZGVsYXlfdmFsKTtcbiBcbi1cdG10ODE5NV9kZWxheV9zdGFnZTJwcyhwbGF0KTtcbiYjNDM7XHRkZWxheV9zdGFnZTJwc192MihwbGF0KTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiBcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10ODE4OV9nbWFjX3ZhcmlhbnQgPSB7XG4mIzQzO1x0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXG4mIzQzO1x0LmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MixcbiYjNDM7XHQuY2xrX2xpc3QgPSBtdDgxODlfZHdtYWNfY2xrX2wsXG4mIzQzO1x0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxODlfZHdtYWNfY2xrX2wpLFxuJiM0MztcdC5kbWFfYml0X21hc2sgPSAzNSxcbiYjNDM7XHQucnhfZGVsYXlfbWF4ID0gOTI4MCxcbiYjNDM7XHQudHhfZGVsYXlfbWF4ID0gOTI4MCxcbiYjNDM7XHQucGVyaV9ldGhfY3RybF9vZmZzZXQgPSBNVDgxODlfUEVSSV9FVEhfQ1RSTF9CQVNFLFxuJiM0MztcdC51c2Vfb3V0X29wID0gdHJ1ZSxcbiYjNDM7XHQudXNlX3N0YWdlX2ZpbmUgPSB0cnVlLFxuJiM0Mzt9O1xuJiM0MztcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQ4MTk1X2dtYWNfdmFyaWFudCA9IHtcbi1cdC5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IG10ODE5NV9zZXRfaW50ZXJmYWNlLFxuLVx0LmR3bWFjX3NldF9kZWxheSA9IG10ODE5NV9zZXRfZGVsYXksXG4mIzQzO1x0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXG4mIzQzO1x0LmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MixcbiBcdC5jbGtfbGlzdCA9IG10ODE5NV9kd21hY19jbGtfbCxcbiBcdC5udW1fY2xrcyA9IEFSUkFZX1NJWkUobXQ4MTk1X2R3bWFjX2Nsa19sKSxcbiBcdC5yeF9kZWxheV9tYXggPSA5MjgwLFxuIFx0LnR4X2RlbGF5X21heCA9IDkyODAsXG4gXHQuZG1hX2JpdF9tYXNrID0gMzUsXG4mIzQzO1x0LnBlcmlfZXRoX2N0cmxfb2Zmc2V0ID0gTVQ4MTk1X1BFUklfRVRIX0NUUkxfQkFTRSxcbiB9O1xuIFxuIHN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG5AQCAtNjYyLDYgJiM0Mzs3MTMsOCBAQCBzdGF0aWMgdm9pZCBtZWRpYXRla19kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZWRpYXRla19kd21hY19tYXRjaFtdID0ge1xuIFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10MjcxMi1nbWFjXCYjMzQ7LFxuIFx0ICAuZGF0YSA9IFx1MDAyNm10MjcxMl9nbWFjX3ZhcmlhbnQgfSxcbiYjNDM7XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ4MTg5LWdtYWNcJiMzNDssXG4mIzQzO1x0ICAuZGF0YSA9IFx1MDAyNm10ODE4OV9nbWFjX3ZhcmlhbnQgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDgxOTUtZ21hY1wmIzM0OyxcbiBcdCAgLmRhdGEgPSBcdTAwMjZtdDgxOTVfZ21hY192YXJpYW50IH0sXG4gXHR7IH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxNTo0NTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGEgbmV3IE1lZGlhVGVrIFNvQyAoTVQ4MTg5KSB0byB0aGUgZHdtYWMtbWVkaWF0ZWsgcGxhdGZvcm0gZHJpdmVyLiBUaGlzIGlzIGhhcmR3YXJlLXNwZWNpZmljIGNvZGUgdGhhdCByZWxpZXMgb24gcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgYW5kIHNwZWNpZmljIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb25zLCB3aGljaCBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGV4ZWN1dGVkIG9yIHJlYWNoZWQgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDlkOTRmMDVlMTMyZmMxNzY0ODQ1NDBmMWExNmExNjA5MGFmMjdjYjYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCA3IDE1OjQ1OjMxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sCmluZGV4IDNhYWIyMWI4ZThkZTViLi4wMDBhYmVjMDIzYjMxNCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sCiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbApAQCAtMjAsMTMgJiM0MzsyMCwxMSBAQCBzZWxlY3Q6CiAgICAgICAgIGVudW06CiAgICAgICAgICAgLSBtZWRpYXRlayxtdDI3MTItZ21hYwogICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg4LWdtYWMKJiM0MzsgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODktZ21hYwogICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWMKICAgcmVxdWlyZWQ6CiAgICAgLSBjb21wYXRpYmxlCiAKLWFsbE9mOgotICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCMKLQogcHJvcGVydGllczoKICAgY29tcGF0aWJsZToKICAgICBvbmVPZjoKQEAgLTM2LDYgJiM0MzszNCw3IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYQogICAgICAgLSBpdGVtczoKICAgICAgICAgICAtIGVudW06CiYjNDM7ICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OS1nbWFjCiAgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWMKICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhCiAgICAgICAtIGl0ZW1zOgpAQCAtNDQsMjYgJiM0Mzs0Myw2IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ4MTk1LWdtYWMKICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhCiAKLSAgY2xvY2tzOgotICAgIG1pbkl0ZW1zOiA1Ci0gICAgaXRlbXM6Ci0gICAgICAtIGRlc2NyaXB0aW9uOiBBWEkgY2xvY2sKLSAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBjbG9jawotICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2sKLSAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9jawotICAgICAgLSBkZXNjcmlwdGlvbjogUk1JSSByZWZlcmVuY2UgY2xvY2sgcHJvdmlkZWQgYnkgTUFDCi0gICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgY2xvY2sgZ2F0ZQotCi0gIGNsb2NrLW5hbWVzOgotICAgIG1pbkl0ZW1zOiA1Ci0gICAgaXRlbXM6Ci0gICAgICAtIGNvbnN0OiBheGkKLSAgICAgIC0gY29uc3Q6IGFwYgotICAgICAgLSBjb25zdDogbWFjX21haW4KLSAgICAgIC0gY29uc3Q6IHB0cF9yZWYKLSAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWwKLSAgICAgIC0gY29uc3Q6IG1hY19jZwotCiAgIGludGVycnVwdHM6CiAgICAgbWF4SXRlbXM6IDEKIApAQCAtMTQ3LDYgJiM0MzsxMjYsNTggQEAgcmVxdWlyZWQ6CiAgIC0gcGh5LW1vZGUKICAgLSBtZWRpYXRlayxwZXJpY2ZnCiAKJiM0MzthbGxPZjoKJiM0MzsgIC0gJHJlZjogc25wcyxkd21hYy55YW1sIwomIzQzOyAgLSBpZjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY29tcGF0aWJsZToKJiM0MzsgICAgICAgICAgY29udGFpbnM6CiYjNDM7ICAgICAgICAgICAgZW51bToKJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQyNzEyLWdtYWMKJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg4LWdtYWMKJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWMKJiM0MzsgICAgdGhlbjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY2xvY2tzOgomIzQzOyAgICAgICAgICBtaW5JdGVtczogNQomIzQzOyAgICAgICAgICBpdGVtczoKJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBBWEkgY2xvY2sKJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBBUEIgY2xvY2sKJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgTWFpbiBjbG9jawomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9jawomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQwomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBjbG9jayBnYXRlCiYjNDM7CiYjNDM7ICAgICAgICBjbG9jay1uYW1lczoKJiM0MzsgICAgICAgICAgbWluSXRlbXM6IDUKJiM0MzsgICAgICAgICAgaXRlbXM6CiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogYXhpCiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogYXBiCiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogbWFjX21haW4KJiM0MzsgICAgICAgICAgICAtIGNvbnN0OiBwdHBfcmVmCiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogcm1paV9pbnRlcm5hbAomIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IG1hY19jZwomIzQzOwomIzQzOyAgLSBpZjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY29tcGF0aWJsZToKJiM0MzsgICAgICAgICAgY29udGFpbnM6CiYjNDM7ICAgICAgICAgICAgZW51bToKJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWMKJiM0MzsgICAgdGhlbjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY2xvY2tzOgomIzQzOyAgICAgICAgICBpdGVtczoKJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgTWFpbiBjbG9jawomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9jawomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQwomIzQzOwomIzQzOyAgICAgICAgY2xvY2stbmFtZXM6CiYjNDM7ICAgICAgICAgIGl0ZW1zOgomIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IG1hY19tYWluCiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogcHRwX3JlZgomIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWwKJiM0MzsKIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2UKIAogZXhhbXBsZXM6CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYwppbmRleCAzMGFlMGRiYTdmZmZkYi4uZTdlMzM2YjFmMTE0YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYwpAQCAtMzYsOCAmIzQzOzM2LDE2IEBACiAjZGVmaW5lIEVUSF9GSU5FX0RMWV9HVFhDCUJJVCgxKQogI2RlZmluZSBFVEhfRklORV9ETFlfUlhDCUJJVCgwKQogCiYjNDM7LyogUGVyaSBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIGZvciBtdDgxODkgKi8KJiM0MzsjZGVmaW5lIE1UODE4OV9QRVJJX0VUSF9DVFJMX0JBU0UJCTB4MjcwCiYjNDM7CiYjNDM7I2RlZmluZSBNVDgxODlfQ1RSTDBfVFhDX09VVF9PUAkJCUJJVCgyMCkKJiM0MzsjZGVmaW5lIE1UODE4OV9DVFJMMF9ETFlfR1RYQ19TVEFHRV9GSU5FCUdFTk1BU0soMTEsIDYpCiYjNDM7CiAvKiBQZXJpIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgZm9yIG10ODE5NSAqLwotI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAJCTB4RkQwCiYjNDM7I2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTF9CQVNFCTB4RkQwCiYjNDM7CiYjNDM7I2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAJCTB4MAogI2RlZmluZSBNVDgxOTVfUk1JSV9DTEtfU1JDX0lOVEVSTkFMCUJJVCgyOCkKICNkZWZpbmUgTVQ4MTk1X1JNSUlfQ0xLX1NSQ19SWEMJCUJJVCgyNykKICNkZWZpbmUgTVQ4MTk1X0VUSF9JTlRGX1NFTAkJR0VOTUFTSygyNiwgMjQpCkBAIC00Nyw3ICYjNDM7NTUsNyBAQAogI2RlZmluZSBNVDgxOTVfRExZX0dUWENfRU5BQkxFCQlCSVQoNSkKICNkZWZpbmUgTVQ4MTk1X0RMWV9HVFhDX1NUQUdFUwkJR0VOTUFTSyg0LCAwKQogCi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMQkJMHhGRDQKJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMQkJMHg0CiAjZGVmaW5lIE1UODE5NV9ETFlfUlhDX0lOVgkJQklUKDI1KQogI2RlZmluZSBNVDgxOTVfRExZX1JYQ19FTkFCTEUJCUJJVCgxOCkKICNkZWZpbmUgTVQ4MTk1X0RMWV9SWENfU1RBR0VTCQlHRU5NQVNLKDE3LCAxMykKQEAgLTU1LDcgJiM0Mzs2Myw3IEBACiAjZGVmaW5lIE1UODE5NV9ETFlfVFhDX0VOQUJMRQkJQklUKDUpCiAjZGVmaW5lIE1UODE5NV9ETFlfVFhDX1NUQUdFUwkJR0VOTUFTSyg0LCAwKQogCi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMgkJMHhGRDgKJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMgkJMHg4CiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfSU5WCQlCSVQoMjUpCiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfRU5BQkxFCUJJVCgxOCkKICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19TVEFHRVMJR0VOTUFTSygxNywgMTMpCkBAIC05NSw3ICYjNDM7MTAzLDEwIEBAIHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IHsKIAogCXUzMiByeF9kZWxheV9tYXg7CiAJdTMyIHR4X2RlbGF5X21heDsKJiM0MzsJdTMyIHBlcmlfZXRoX2N0cmxfb2Zmc2V0OwogCXU4IGRtYV9iaXRfbWFzazsKJiM0MzsJYm9vbCB1c2Vfb3V0X29wOwomIzQzOwlib29sIHVzZV9zdGFnZV9maW5lOwogfTsKIAogLyogbGlzdCBvZiBjbG9ja3MgcmVxdWlyZWQgZm9yIG1hYyAqLwpAQCAtMTA3LDcgJiM0MzsxMTgsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtdDgxOTVfZHdtYWNfY2xrX2xbXSA9IHsKIAkmIzM0O2F4aSYjMzQ7LCAmIzM0O2FwYiYjMzQ7LCAmIzM0O21hY19jZyYjMzQ7LCAmIzM0O21hY19tYWluJiMzNDssICYjMzQ7cHRwX3JlZiYjMzQ7CiB9OwogCi1zdGF0aWMgaW50IG10MjcxMl9zZXRfaW50ZXJmYWNlKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQsCiYjNDM7c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtdDgxODlfZHdtYWNfY2xrX2xbXSA9IHsKJiM0MzsJJiMzNDttYWNfbWFpbiYjMzQ7LCAmIzM0O3B0cF9yZWYmIzM0OwomIzQzO307CiYjNDM7CiYjNDM7c3RhdGljIGludCBzZXRfcGh5X2ludGVyZmFjZV92MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LAogCQkJCXU4IHBoeV9pbnRmX3NlbCkKIHsKIAl1MzIgaW50Zl92YWwgPSBwaHlfaW50Zl9zZWw7CkBAIC0xMjQsNyAmIzQzOzEzOSw3IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3BzMnN0YWdlKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiYjNDM7c3RhdGljIHZvaWQgZGVsYXlfcHMyc3RhZ2VfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIHsKIAlzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gJmFtcDtwbGF0LSZndDttYWNfZGVsYXk7CiAKQEAgLTE0OSw3ICYjNDM7MTY0LDcgQEAgc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3BzMnN0YWdlKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfc3RhZ2UycHMoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKJiM0MztzdGF0aWMgdm9pZCBkZWxheV9zdGFnZTJwc192MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KQogewogCXN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSAmYW1wO3BsYXQtJmd0O21hY19kZWxheTsKIApAQCAtMTc0LDEyICYjNDM7MTg5LDEyIEBAIHN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9zdGFnZTJwcyhzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KQogCX0KIH0KIAotc3RhdGljIGludCBtdDI3MTJfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiYjNDM7c3RhdGljIGludCBzZXRfZGVsYXlfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIHsKIAlzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gJmFtcDtwbGF0LSZndDttYWNfZGVsYXk7CiAJdTMyIGRlbGF5X3ZhbCA9IDAsIGZpbmVfdmFsID0gMDsKIAotCW10MjcxMl9kZWxheV9wczJzdGFnZShwbGF0KTsKJiM0MzsJZGVsYXlfcHMyc3RhZ2VfdjEocGxhdCk7CiAKIAlzd2l0Y2ggKHBsYXQtJmd0O3BoeV9tb2RlKSB7CiAJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfTUlJOgpAQCAtMjU4LDE0ICYjNDM7MjczLDE0IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KQogCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgUEVSSV9FVEhfRExZLCBkZWxheV92YWwpOwogCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgUEVSSV9FVEhfRExZX0ZJTkUsIGZpbmVfdmFsKTsKIAotCW10MjcxMl9kZWxheV9zdGFnZTJwcyhwbGF0KTsKJiM0MzsJZGVsYXlfc3RhZ2UycHNfdjEocGxhdCk7CiAKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10MjcxMl9nbWFjX3ZhcmlhbnQgPSB7Ci0JCS5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IG10MjcxMl9zZXRfaW50ZXJmYWNlLAotCQkuZHdtYWNfc2V0X2RlbGF5ID0gbXQyNzEyX3NldF9kZWxheSwKJiM0MzsJCS5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IHNldF9waHlfaW50ZXJmYWNlX3YxLAomIzQzOwkJLmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MSwKIAkJLmNsa19saXN0ID0gbXQyNzEyX2R3bWFjX2Nsa19sLAogCQkubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG10MjcxMl9kd21hY19jbGtfbCksCiAJCS5yeF9kZWxheV9tYXggPSAxNzYwMCwKQEAgLTI3MywxMCAmIzQzOzI4OCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHsKIAkJLmRtYV9iaXRfbWFzayA9IDMzLAogfTsKIAotc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LAomIzQzO3N0YXRpYyBpbnQgc2V0X3BoeV9pbnRlcmZhY2VfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCwKIAkJCQl1OCBwaHlfaW50Zl9zZWwpCiB7CiAJdTMyIGludGZfdmFsID0gRklFTERfUFJFUChNVDgxOTVfRVRIX0lOVEZfU0VMLCBwaHlfaW50Zl9zZWwpOwomIzQzOwl1MzIgcmVnX29mZnNldCA9IHBsYXQtJmd0O3ZhcmlhbnQtJmd0O3BlcmlfZXRoX2N0cmxfb2Zmc2V0OwogCiAJaWYgKHBoeV9pbnRmX3NlbCA9PSBQSFlfSU5URl9TRUxfUk1JSSkgewogCQlpZiAocGxhdC0mZ3Q7cm1paV9jbGtfZnJvbV9tYWMpCkBAIC0yODgsMTIgJiM0MzszMDQsMTcgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LAogCS8qIE1UODE5NSBvbmx5IHN1cHBvcnQgZXh0ZXJuYWwgUEhZICovCiAJaW50Zl92YWwgfD0gTVQ4MTk1X0VYVF9QSFlfTU9ERTsKIAotCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLCBpbnRmX3ZhbCk7CiYjNDM7CWlmIChwbGF0LSZndDt2YXJpYW50LSZndDt1c2Vfb3V0X29wKQomIzQzOwkJaW50Zl92YWwgfD0gTVQ4MTg5X0NUUkwwX1RYQ19PVVRfT1A7CiYjNDM7CiYjNDM7CXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwKJiM0MzsJCSAgICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsCiYjNDM7CQkgICAgIGludGZfdmFsKTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKJiM0MztzdGF0aWMgdm9pZCBkZWxheV9wczJzdGFnZV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KQogewogCXN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSAmYW1wO3BsYXQtJmd0O21hY19kZWxheTsKIApAQCAtMzAyLDcgJiM0MzszMjMsNyBAQCBzdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIAltYWNfZGVsYXktJmd0O3J4X2RlbGF5IC89IDI5MDsKIH0KIAotc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiYjNDM7c3RhdGljIHZvaWQgZGVsYXlfc3RhZ2UycHNfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIHsKIAlzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gJmFtcDtwbGF0LSZndDttYWNfZGVsYXk7CiAKQEAgLTMxMSwxMiAmIzQzOzMzMiwxNiBAQCBzdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfc3RhZ2UycHMoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIAltYWNfZGVsYXktJmd0O3J4X2RlbGF5ICo9IDI5MDsKIH0KIAotc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiYjNDM7c3RhdGljIGludCBzZXRfZGVsYXlfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIHsKIAlzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gJmFtcDtwbGF0LSZndDttYWNfZGVsYXk7Ci0JdTMyIGd0eGNfZGVsYXlfdmFsID0gMCwgZGVsYXlfdmFsID0gMCwgcm1paV9kZWxheV92YWwgPSAwOwomIzQzOwl1MzIgcmVnX29mZnNldCA9IHBsYXQtJmd0O3ZhcmlhbnQtJmd0O3BlcmlfZXRoX2N0cmxfb2Zmc2V0OwomIzQzOwl1MzIgZ3R4Y19kZWxheV9tYXNrID0gMDsKJiM0MzsJdTMyIGd0eGNfZGVsYXlfdmFsID0gMDsKJiM0MzsJdTMyIHJtaWlfZGVsYXlfdmFsID0gMDsKJiM0MzsJdTMyIGRlbGF5X3ZhbCA9IDA7CiAKLQltdDgxOTVfZGVsYXlfcHMyc3RhZ2UocGxhdCk7CiYjNDM7CWRlbGF5X3BzMnN0YWdlX3YyKHBsYXQpOwogCiAJc3dpdGNoIChwbGF0LSZndDtwaHlfbW9kZSkgewogCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX01JSToKQEAgLTM4OCw2ICYjNDM7NDEzLDkgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiAJCWd0eGNfZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9HVFhDX1NUQUdFUywgbWFjX2RlbGF5LSZndDt0eF9kZWxheSk7CiAJCWd0eGNfZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9HVFhDX0lOViwgbWFjX2RlbGF5LSZndDt0eF9pbnYpOwogCiYjNDM7CQlpZiAocGxhdC0mZ3Q7dmFyaWFudC0mZ3Q7dXNlX3N0YWdlX2ZpbmUpCiYjNDM7CQkJZ3R4Y19kZWxheV92YWwgfD0gTVQ4MTg5X0NUUkwwX0RMWV9HVFhDX1NUQUdFX0ZJTkU7CiYjNDM7CiAJCWRlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfUlhDX0VOQUJMRSwgISFtYWNfZGVsYXktJmd0O3J4X2RlbGF5KTsKIAkJZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfU1RBR0VTLCBtYWNfZGVsYXktJmd0O3J4X2RlbGF5KTsKIAkJZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfSU5WLCBtYWNfZGVsYXktJmd0O3J4X2ludik7CkBAIC0zOTgsMjkgJiM0Mzs0MjYsNTIgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAomIzQzOwlndHhjX2RlbGF5X21hc2sgPSBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfAomIzQzOwkJCSAgTVQ4MTk1X0RMWV9HVFhDX0lOViB8CiYjNDM7CQkJICBNVDgxOTVfRExZX0dUWENfRU5BQkxFIHwKJiM0MzsJCQkgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVM7CiYjNDM7CiYjNDM7CWlmIChwbGF0LSZndDt2YXJpYW50LSZndDt1c2Vfc3RhZ2VfZmluZSkKJiM0MzsJCWd0eGNfZGVsYXlfbWFzayB8PSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORTsKJiM0MzsKIAlyZWdtYXBfdXBkYXRlX2JpdHMocGxhdC0mZ3Q7cGVyaV9yZWdtYXAsCi0JCQkgICBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsCi0JCQkgICBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfAotCQkJICAgTVQ4MTk1X0RMWV9HVFhDX0lOViB8Ci0JCQkgICBNVDgxOTVfRExZX0dUWENfRU5BQkxFIHwKLQkJCSAgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVMsCiYjNDM7CQkJICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsCiYjNDM7CQkJICAgZ3R4Y19kZWxheV9tYXNrLAogCQkJICAgZ3R4Y19kZWxheV92YWwpOwotCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwxLCBkZWxheV92YWwpOwotCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwyLCBybWlpX2RlbGF5X3ZhbCk7CiYjNDM7CXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwKJiM0MzsJCSAgICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDEsCiYjNDM7CQkgICAgIGRlbGF5X3ZhbCk7CiYjNDM7CXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwKJiM0MzsJCSAgICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDIsCiYjNDM7CQkgICAgIHJtaWlfZGVsYXlfdmFsKTsKIAotCW10ODE5NV9kZWxheV9zdGFnZTJwcyhwbGF0KTsKJiM0MzsJZGVsYXlfc3RhZ2UycHNfdjIocGxhdCk7CiAKIAlyZXR1cm4gMDsKIH0KIAomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfdmFyaWFudCBtdDgxODlfZ21hY192YXJpYW50ID0gewomIzQzOwkuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBzZXRfcGh5X2ludGVyZmFjZV92MiwKJiM0MzsJLmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MiwKJiM0MzsJLmNsa19saXN0ID0gbXQ4MTg5X2R3bWFjX2Nsa19sLAomIzQzOwkubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG10ODE4OV9kd21hY19jbGtfbCksCiYjNDM7CS5kbWFfYml0X21hc2sgPSAzNSwKJiM0MzsJLnJ4X2RlbGF5X21heCA9IDkyODAsCiYjNDM7CS50eF9kZWxheV9tYXggPSA5MjgwLAomIzQzOwkucGVyaV9ldGhfY3RybF9vZmZzZXQgPSBNVDgxODlfUEVSSV9FVEhfQ1RSTF9CQVNFLAomIzQzOwkudXNlX291dF9vcCA9IHRydWUsCiYjNDM7CS51c2Vfc3RhZ2VfZmluZSA9IHRydWUsCiYjNDM7fTsKJiM0MzsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfdmFyaWFudCBtdDgxOTVfZ21hY192YXJpYW50ID0gewotCS5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IG10ODE5NV9zZXRfaW50ZXJmYWNlLAotCS5kd21hY19zZXRfZGVsYXkgPSBtdDgxOTVfc2V0X2RlbGF5LAomIzQzOwkuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBzZXRfcGh5X2ludGVyZmFjZV92MiwKJiM0MzsJLmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MiwKIAkuY2xrX2xpc3QgPSBtdDgxOTVfZHdtYWNfY2xrX2wsCiAJLm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxOTVfZHdtYWNfY2xrX2wpLAogCS5yeF9kZWxheV9tYXggPSA5MjgwLAogCS50eF9kZWxheV9tYXggPSA5MjgwLAogCS5kbWFfYml0X21hc2sgPSAzNSwKJiM0MzsJLnBlcmlfZXRoX2N0cmxfb2Zmc2V0ID0gTVQ4MTk1X1BFUklfRVRIX0NUUkxfQkFTRSwKIH07CiAKIHN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCkBAIC02NjIsNiAmIzQzOzcxMyw4IEBAIHN0YXRpYyB2b2lkIG1lZGlhdGVrX2R3bWFjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZHdtYWNfbWF0Y2hbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gJiMzNDttZWRpYXRlayxtdDI3MTItZ21hYyYjMzQ7LAogCSAgLmRhdGEgPSAmYW1wO210MjcxMl9nbWFjX3ZhcmlhbnQgfSwKJiM0MzsJeyAuY29tcGF0aWJsZSA9ICYjMzQ7bWVkaWF0ZWssbXQ4MTg5LWdtYWMmIzM0OywKJiM0MzsJICAuZGF0YSA9ICZhbXA7bXQ4MTg5X2dtYWNfdmFyaWFudCB9LAogCXsgLmNvbXBhdGlibGUgPSAmIzM0O21lZGlhdGVrLG10ODE5NS1nbWFjJiMzNDssCiAJICAuZGF0YSA9ICZhbXA7bXQ4MTk1X2dtYWNfdmFyaWFudCB9LAogCXsgfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxNTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2OTI1CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogNzYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmV3IEdNQUMgVmFyaWFudCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaC4gSXQmIzM5O3MgdG91Y2hpbmcgYGR3bWFjLW1lZGlhdGVrLmNgIGFuZCB0aGUgZGV2aWNlIHRyZWUgYmluZGluZ3MuIFRoZSBnb2FsIGlzIHRvIGFkZCBzdXBwb3J0IGZvciBhIG5ldyBNZWRpYVRlayBHTUFDIHZhcmlhbnQ6IGBtdDgxODktZ21hY2AuIEl0IGxvb2tzIGxpa2UgdGhlcmUmIzM5O3Mgc29tZSBmdW5jdGlvbiByZWZhY3RvcmluZyBoYXBwZW5pbmcgdG9vLCB3aGljaCBpcyBhbHdheXMgc29tZXRoaW5nIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8sIG1ha2luZyBzdXJlIHRoZSBjaGFuZ2VzIGFyZSBjbGVhbiBhbmQgZG9uJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucy4gVGhleSYjMzk7cmUgcmVuYW1pbmcgYSBidW5jaCBvZiBgbXQyNzEyX2AgYW5kIGBtdDgxOTVfYCBmdW5jdGlvbnMgdG8gYSBgdjFgIGFuZCBgdjJgIHNjaGVtZSwgYW5kIHRoZW4gdXNpbmcgdGhlIGB2MmAgdmVyc2lvbnMgZm9yIHRoaXMgbmV3IGBtdDgxODlfZ21hY192YXJpYW50YC4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gSSBldmVuICp0ZXN0KiB0aGlzIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudD8gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgYGR3bWFjLW1lZGlhdGVrLmNgLCBhbmQgdGhvc2UgYXJlIG9mdGVuIGEgcGFpbi4gUGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgU29DcyBsaWtlIHRoZSBNZWRpYVRlayBvbmVzIGFyZSB0eXBpY2FsbHkgbm90IHRlc3RhYmxlIGluIGdlbmVyaWMgUUVNVSwgdW5sZXNzIHRoZXJlJiMzOTtzIGRlZGljYXRlZCBtYWNoaW5lIGVtdWxhdGlvbiBmb3IgdGhlIHRhcmdldCBoYXJkd2FyZS4gU28sIEkgbmVlZCB0byBjaGVjayBpZiB0aGlzIGRyaXZlciBjYW4gZXZlbiBiZSBwcm9iZWQgaW4gUUVNVSBvciBpZiBpdCYjMzk7cyBzdHJpY3RseSB0aWVkIHRvIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2UgdHJlZS4KClRoZSBkcml2ZXIgbWF0Y2hlcyBvbiB0aGUgdXN1YWwgTWVkaWFUZWsgR01BQyBJRHMgbGlrZSBgbWVkaWF0ZWssbXQ4MTg5LWdtYWNgLCBhbmQgc28gb24uIFVubGVzcyBJIGNhbiBpbmplY3QgYSBkZXZpY2UgdHJlZSBub2RlIGludG8gdGhlIGVudmlyb25tZW50LCBvciBRRU1VIGhhcyAqc3BlY2lmaWMqIGVtdWxhdGlvbiBmb3IgdGhpcyBNZWRpYVRlayBib2FyZCAod2hpY2ggaXMgdW5saWtlbHkpLCBpdCYjMzk7cyBwcm9iYWJseSB1bnJlYWNoYWJsZS4KCk5vdywgd2FpdCwgY291bGQgSSB1c2Ugc29tZXRoaW5nIGxpa2Ugc3l6a2FsbGVyPyBTeXprYWxsZXIgKmNhbiogaW5qZWN0IHBsYXRmb3JtIGRldmljZXMgdXNpbmcgYHN5el9kZXZfcGxhdGZvcm1fYWRkYCBvciBieSBtYW5pcHVsYXRpbmcgdGhlIGRldmljZSB0cmVlLCBidXQgbW9zdCBwbGF0Zm9ybSBkcml2ZXJzIGxpa2UgdGhpcyB0aGF0IE1NSU8gdG8gc3BlY2lmaWMgcGh5c2ljYWwgYWRkcmVzc2VzIHdvdWxkIGNyYXNoIG9yIGp1c3QgZmFpbCB0byBwcm9iZSB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUgcHJlc2VudCB1bmxlc3MsIG9mIGNvdXJzZSwgdGhlIHJlZ2lzdGVycyBhcmUgbW9ja2VkLiBBbmQgSSYjMzk7dmUgZm91bmQgaW4gdGhlIHBhc3QgdGhhdCB3aGlsZSBzeXprYWxsZXIgaGFzIHBzZXVkby1kZXZpY2VzIGZvciAqc29tZSogdGhpbmdzLCByYW5kb20gU29DIGV0aGVybmV0IE1BQ3MgYXJlIHVzdWFsbHkganVzdCBhIG5vLWdvIGZvciBwcm9iaW5nLgoKU28sIGlzIGl0IGZ1enphYmxlPyBQcm9iYWJseSBub3QsIGF0IGxlYXN0IG5vdCBpbiBhbnkgc2Vuc2libGUgd2F5LiBVbmxlc3MgaXQmIzM5O3MgYSBVU0Igb3IgUENJIGRldmljZSB0aGF0IGNhbiBiZSBlbXVsYXRlZCAod2l0aCBhIGR1bW15IEhDRCBvciBQQ0kgZW11bGF0aW9uKSwgb3IgaXMgYSAqdmlydHVhbCogZHJpdmVyLCBJJiMzOTttIGdvaW5nIHRvIGNvbnNpZGVyIGl0IHVucmVhY2hhYmxlIGZvciB0aGUgdGltZSBiZWluZy4gR2VuZXJhbGx5LCB0aGVzZSBTb0Mtc3BlY2lmaWMgRXRoZXJuZXQgTUFDIGRyaXZlcnMgYXJlIG5vdCBmdXp6YWJsZSBpbiB4ODYgVk1zLiBJIHNob3VsZCBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGBkd21hYy1tZWRpYXRlay5jYCBpcyB0aWVkIHRvIGBDT05GSUdfRFdNQUNfTUVESUFURUtgLiBJdCYjMzk7cyB3b3J0aCB2ZXJpZnlpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTU6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERXTUFDX01FRElBVEVLJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTA2PWNvbmZpZyBEV01BQ19MUEMxOFhYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjExNDpjb25maWcgRFdNQUNfTUVESUFURUtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE1LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQyN3h4IEdNQUMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDE1OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg0MTMKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkFzc2Vzc2luZyBEZXBlbmRlbmNpZXMgZm9yIGBEV01BQ19NRURJQVRFS2AqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoZSBgRFdNQUNfTUVESUFURUtgIG1vZHVsZSBhbmQgbWFwIG91dCBpdHMgbGFuZHNjYXBlLiBJIG5lZWQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIGl0cyBkZXBlbmRlbmNpZXMuIFRoaXMgaXMgY3JpdGljYWwgZm9yIGV2ZXJ5dGhpbmcgZnJvbSB0cm91Ymxlc2hvb3RpbmcgaW50ZWdyYXRpb24gaXNzdWVzIHRvIHByZWRpY3RpbmcgdGhlIGltcGFjdCBvZiBwb3RlbnRpYWwgbW9kaWZpY2F0aW9ucyBkb3duIHRoZSBsaW5lLiBXZSBjYW4mIzM5O3QgYWZmb3JkIHRvIGhhdmUgYSBjYXNjYWRlIG9mIHVuZXhwZWN0ZWQgYmVoYXZpb3IuCgpTbywgSSYjMzk7bSB0aGlua2luZywgd2hlcmUgZG8gd2Ugc3RhcnQ/IEkgbmVlZCB0byBrbm93OiB3aGF0IG90aGVyIG1vZHVsZXMgb3IgbGlicmFyaWVzIGRvZXMgYERXTUFDX01FRElBVEVLYCByZWx5IG9uPyBBcmUgdGhlc2UgaW50ZXJuYWwgY29tcG9uZW50cywgc3BlY2lmaWMgdG8gdGhlIE1lZGlhVGVrIHBsYXRmb3JtLCBvciBhcmUgd2UgZGVhbGluZyB3aXRoIGV4dGVybmFsIGxpYnJhcmllcz8gV2hhdCB2ZXJzaW9uIGNvbnRyb2wgaXMgaW4gcGxhY2UgZm9yIHRoZXNlIGRlcGVuZGVuY2llcz8gQXJlIHRoZXkgbG9ja2VkIHRvIHNwZWNpZmljIHZlcnNpb25zLCBvciBkbyB3ZSBoYXZlIGEgcmFuZ2Ugd2UgY2FuIHdvcmsgd2l0aD8gQXJlIHRoZXJlIGtub3duIGNvbXBhdGliaWxpdHkgaXNzdWVzIGJldHdlZW4gdGhlIG1vZHVsZSBhbmQgYW55IG9mIGl0cyBkZXBlbmRlbmNpZXM/IEhhdmUgdGhlcmUgYmVlbiByZXBvcnRzIG9mIGluc3RhYmlsaXR5IGluIGNlcnRhaW4gZGVwZW5kZW5jeSB2ZXJzaW9ucz8KCkkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbnRlcmZhY2VzLiBIb3cgZG9lcyBgRFdNQUNfTUVESUFURUtgIGludGVyYWN0IHdpdGggdGhlc2UgY29tcG9uZW50cz8gSXMgaXQgdGhyb3VnaCBkaXJlY3QgZnVuY3Rpb24gY2FsbHMsIG1lc3NhZ2UgcGFzc2luZywgb3Igc29tZSBvdGhlciBtZWNoYW5pc20/IEFyZSB0aGVyZSBhbnkgc2hhcmVkIHJlc291cmNlcywgbGlrZSBtZW1vcnkgcmVnaW9ucywgdGhhdCBtaWdodCByZXF1aXJlIGNhcmVmdWwgc3luY2hyb25pemF0aW9uPyBXaGF0IGtpbmQgb2YgdGVzdGluZyBhbmQgdmFsaWRhdGlvbiBpcyBpbiBwbGFjZSB0byBlbnN1cmUgdGhlc2UgZGVwZW5kZW5jaWVzIGFyZSBwcm9wZXJseSBtYW5hZ2VkPwoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIHNwZWNpZmljcy4gV2UgbmVlZCB0byBnYXRoZXIgdGhpcyBpbmZvcm1hdGlvbiB0byBidWlsZCBhIHNvbGlkIGZvdW5kYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTU6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbi4qQVJDSF9NRURJQVRFSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMTQ9Y29uZmlnIERXTUFDX01FRElBVEVLXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExNS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UMjd4eCBHTUFDIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTE2Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfTUVESUFURUsgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTctXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTU6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODkyMAoJCQkJCQkJb3V0cHV0OiA5NwoJCQkJCQkJdGhvdWdodHM6IDI2NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBwYXRjaCBpc24mIzM5O3QgZ29pbmcgdG8gYmUgZnJ1aXRmdWwgZm9yIGZ1enppbmcgaW4gYSBzdGFuZGFyZCBzZXR1cC4gVGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIChgQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RgKSBpcyBhIGRlYWQgZ2l2ZWF3YXkuIFNpbmNlIHRoaXMgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciBNZWRpYVRlayBTb0NzLCBpdCYjMzk7cyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB5b3VyIGF2ZXJhZ2UgeDg2IFFFTVUgVk0uIEl0IGhpbmdlcyBvbiBoYXZpbmcgdGhlIGNvcnJlY3QgZGV2aWNlIHRyZWUgbm9kZXMgZGVmaW5lZCBhbmQgdGhlIGNvcnJlY3QgcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgbWFwcGVkLCB0aGluZ3MgdGhhdCBqdXN0IGFyZW4mIzM5O3QgZ29pbmcgdG8gaGFwcGVuIGluIGEgZ2VuZXJpYyB2aXJ0dWFsIGVudmlyb25tZW50LiBFdmVuIGlmIHlvdSB0cmllZCB0byBmYWtlIGl0IGJ5IGluamVjdGluZyBhIGRldmljZSB0cmVlIG5vZGUsIGVpdGhlciBgZGV2bV9yZWdtYXBfaW5pdGAgb3IgYHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGVgIGlzIGdvaW5nIHRvIGZhaWwsIG9yIGFueSBhdHRlbXB0ZWQgTU1JTyBhY2Nlc3Mgd2lsbCBmYXVsdCwgZG8gbm90aGluZywgb3Igc2ltcGx5IG5vdCBiZSByZWFjaGFibGUgYmVjYXVzZSB0aGUgaGFyZHdhcmUgZG9lc24mIzM5O3QgZXhpc3QuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoZXJlJiMzOTtzIG5vIGdlbmVyaWMgbG9naWMgdGhhdCAqY291bGQqIGJlIGV4ZXJjaXNlZC4gQWgsIG5vcGUuIExvb2tzIGxpa2UgdGhlIHBhdGNoJiMzOTtzIGNoYW5nZXMgY29uc2lzdCBvZiBhZGRpbmcgYSBuZXcgdmFyaWFudCBzdHJ1Y3R1cmUsIHNvbWUgZnVuY3Rpb24gcmVuYW1pbmcsIGFuZCBhIGhhbmRmdWwgb2YgYml0d2lzZSBvcGVyYXRpb25zIGZvciB0aGUgbmV3IHZhcmlhbnQuIEl0JiMzOTtzIHB1cmUgaGFyZHdhcmUgZW5hYmxlbWVudCwgZXNzZW50aWFsbHkgdGFpbG9yaW5nIHRoZSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgU29DLiBJdCYjMzk7cyBub3QgZXhwb3NpbmcgZ2VuZXJpYyBmdW5jdGlvbmFsaXR5LgoKVGhlcmVmb3JlLCBJJiMzOTttIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByYXRpb25hbGUgaXMgc3RyYWlnaHRmb3J3YXJkOiBUaGlzIHBhdGNoIGludHJvZHVjZXMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DLCB0aGUgTVQ4MTg5LCB3aXRoaW4gdGhlIGR3bWFjLW1lZGlhdGVrIHBsYXRmb3JtIGRyaXZlci4gSXQmIzM5O3MgZW50aXJlbHkgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IGRlcGVuZHMgb24gcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgYW5kIHBhcnRpY3VsYXIgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMuIFRoaXMgbWVhbnMgdGhhdCBleGVjdXRpbmcgb3IgcmVhY2hpbmcgaXQgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSBpcyBlc3NlbnRpYWxseSBtZWFuaW5nbGVzcy4gQW55IGZ1enppbmcgYXR0ZW1wdHMgd291bGQgYmUgZnJ1aXRsZXNzIGJlY2F1c2UgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgZGVwZW5kZW5jaWVzIGFyZSBzaW1wbHkgbm90IHByZXNlbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTU6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGEgbmV3IE1lZGlhVGVrIFNvQyAoTVQ4MTg5KSB0byB0aGUgZHdtYWMtbWVkaWF0ZWsgcGxhdGZvcm0gZHJpdmVyLiBUaGlzIGlzIGhhcmR3YXJlLXNwZWNpZmljIGNvZGUgdGhhdCByZWxpZXMgb24gcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgYW5kIHNwZWNpZmljIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb25zLCB3aGljaCBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGV4ZWN1dGVkIG9yIHJlYWNoZWQgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DIChNVDgxODkpIHRvIHRoZSBkd21hYy1tZWRpYXRlayBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IHJlbGllcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgc3BlY2lmaWMgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZXhlY3V0ZWQgb3IgcmVhY2hlZCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjMzLjEzMDgyMjUxMVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NzY5NTkzNjc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGEgbmV3IE1lZGlhVGVrIFNvQyAoTVQ4MTg5KSB0byB0aGUgZHdtYWMtbWVkaWF0ZWsgcGxhdGZvcm0gZHJpdmVyLiBUaGlzIGlzIGhhcmR3YXJlLXNwZWNpZmljIGNvZGUgdGhhdCByZWxpZXMgb24gcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgYW5kIHNwZWNpZmljIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb25zLCB3aGljaCBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGV4ZWN1dGVkIG9yIHJlYWNoZWQgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjMzLjEzMDgyODA2MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMwNTEzNDk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOWQ5NGYwNWUxMzJmYzE3NjQ4NDU0MGYxYTE2YTE2MDkwYWYyN2NiNlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCA3IDE1OjQ1OjMxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbFxcbmluZGV4IDNhYWIyMWI4ZThkZTViLi4wMDBhYmVjMDIzYjMxNCAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWxcXG4rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWxcXG5AQCAtMjAsMTMgKzIwLDExIEBAIHNlbGVjdDpcXG4gICAgICAgICBlbnVtOlxcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDI3MTItZ21hY1xcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODgtZ21hY1xcbisgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODktZ21hY1xcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxOTUtZ21hY1xcbiAgIHJlcXVpcmVkOlxcbiAgICAgLSBjb21wYXRpYmxlXFxuIFxcbi1hbGxPZjpcXG4tICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG4tXFxuIHByb3BlcnRpZXM6XFxuICAgY29tcGF0aWJsZTpcXG4gICAgIG9uZU9mOlxcbkBAIC0zNiw2ICszNCw3IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTQuMjBhXFxuICAgICAgIC0gaXRlbXM6XFxuICAgICAgICAgICAtIGVudW06XFxuKyAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODktZ21hY1xcbiAgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWNcXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4xMGFcXG4gICAgICAgLSBpdGVtczpcXG5AQCAtNDQsMjYgKzQzLDYgQEAgcHJvcGVydGllczpcXG4gICAgICAgICAgIC0gY29uc3Q6IG1lZGlhdGVrLG10ODE5NS1nbWFjXFxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXFxuIFxcbi0gIGNsb2NrczpcXG4tICAgIG1pbkl0ZW1zOiA1XFxuLSAgICBpdGVtczpcXG4tICAgICAgLSBkZXNjcmlwdGlvbjogQVhJIGNsb2NrXFxuLSAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBjbG9ja1xcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgTWFpbiBjbG9ja1xcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBQVFAgY2xvY2tcXG4tICAgICAgLSBkZXNjcmlwdGlvbjogUk1JSSByZWZlcmVuY2UgY2xvY2sgcHJvdmlkZWQgYnkgTUFDXFxuLSAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBjbG9jayBnYXRlXFxuLVxcbi0gIGNsb2NrLW5hbWVzOlxcbi0gICAgbWluSXRlbXM6IDVcXG4tICAgIGl0ZW1zOlxcbi0gICAgICAtIGNvbnN0OiBheGlcXG4tICAgICAgLSBjb25zdDogYXBiXFxuLSAgICAgIC0gY29uc3Q6IG1hY19tYWluXFxuLSAgICAgIC0gY29uc3Q6IHB0cF9yZWZcXG4tICAgICAgLSBjb25zdDogcm1paV9pbnRlcm5hbFxcbi0gICAgICAtIGNvbnN0OiBtYWNfY2dcXG4tXFxuICAgaW50ZXJydXB0czpcXG4gICAgIG1heEl0ZW1zOiAxXFxuIFxcbkBAIC0xNDcsNiArMTI2LDU4IEBAIHJlcXVpcmVkOlxcbiAgIC0gcGh5LW1vZGVcXG4gICAtIG1lZGlhdGVrLHBlcmljZmdcXG4gXFxuK2FsbE9mOlxcbisgIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbisgIC0gaWY6XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgY29tcGF0aWJsZTpcXG4rICAgICAgICAgIGNvbnRhaW5zOlxcbisgICAgICAgICAgICBlbnVtOlxcbisgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQyNzEyLWdtYWNcXG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OC1nbWFjXFxuKyAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxOTUtZ21hY1xcbisgICAgdGhlbjpcXG4rICAgICAgcHJvcGVydGllczpcXG4rICAgICAgICBjbG9ja3M6XFxuKyAgICAgICAgICBtaW5JdGVtczogNVxcbisgICAgICAgICAgaXRlbXM6XFxuKyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBjbG9ja1xcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBBUEIgY2xvY2tcXG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2tcXG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogUFRQIGNsb2NrXFxuKyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQ1xcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgY2xvY2sgZ2F0ZVxcbitcXG4rICAgICAgICBjbG9jay1uYW1lczpcXG4rICAgICAgICAgIG1pbkl0ZW1zOiA1XFxuKyAgICAgICAgICBpdGVtczpcXG4rICAgICAgICAgICAgLSBjb25zdDogYXhpXFxuKyAgICAgICAgICAgIC0gY29uc3Q6IGFwYlxcbisgICAgICAgICAgICAtIGNvbnN0OiBtYWNfbWFpblxcbisgICAgICAgICAgICAtIGNvbnN0OiBwdHBfcmVmXFxuKyAgICAgICAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWxcXG4rICAgICAgICAgICAgLSBjb25zdDogbWFjX2NnXFxuK1xcbisgIC0gaWY6XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgY29tcGF0aWJsZTpcXG4rICAgICAgICAgIGNvbnRhaW5zOlxcbisgICAgICAgICAgICBlbnVtOlxcbisgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWNcXG4rICAgIHRoZW46XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgY2xvY2tzOlxcbisgICAgICAgICAgaXRlbXM6XFxuKyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBNYWluIGNsb2NrXFxuKyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9ja1xcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBSTUlJIHJlZmVyZW5jZSBjbG9jayBwcm92aWRlZCBieSBNQUNcXG4rXFxuKyAgICAgICAgY2xvY2stbmFtZXM6XFxuKyAgICAgICAgICBpdGVtczpcXG4rICAgICAgICAgICAgLSBjb25zdDogbWFjX21haW5cXG4rICAgICAgICAgICAgLSBjb25zdDogcHRwX3JlZlxcbisgICAgICAgICAgICAtIGNvbnN0OiBybWlpX2ludGVybmFsXFxuK1xcbiB1bmV2YWx1YXRlZFByb3BlcnRpZXM6IGZhbHNlXFxuIFxcbiBleGFtcGxlczpcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmNcXG5pbmRleCAzMGFlMGRiYTdmZmZkYi4uZTdlMzM2YjFmMTE0YzQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmNcXG5AQCAtMzYsOCArMzYsMTYgQEBcXG4gI2RlZmluZSBFVEhfRklORV9ETFlfR1RYQ1xcdEJJVCgxKVxcbiAjZGVmaW5lIEVUSF9GSU5FX0RMWV9SWENcXHRCSVQoMClcXG4gXFxuKy8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTg5ICovXFxuKyNkZWZpbmUgTVQ4MTg5X1BFUklfRVRIX0NUUkxfQkFTRVxcdFxcdDB4MjcwXFxuK1xcbisjZGVmaW5lIE1UODE4OV9DVFJMMF9UWENfT1VUX09QXFx0XFx0XFx0QklUKDIwKVxcbisjZGVmaW5lIE1UODE4OV9DVFJMMF9ETFlfR1RYQ19TVEFHRV9GSU5FXFx0R0VOTUFTSygxMSwgNilcXG4rXFxuIC8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTk1ICovXFxuLSNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwwXFx0XFx0MHhGRDBcXG4rI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTF9CQVNFXFx0MHhGRDBcXG4rXFxuKyNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwwXFx0XFx0MHgwXFxuICNkZWZpbmUgTVQ4MTk1X1JNSUlfQ0xLX1NSQ19JTlRFUk5BTFxcdEJJVCgyOClcXG4gI2RlZmluZSBNVDgxOTVfUk1JSV9DTEtfU1JDX1JYQ1xcdFxcdEJJVCgyNylcXG4gI2RlZmluZSBNVDgxOTVfRVRIX0lOVEZfU0VMXFx0XFx0R0VOTUFTSygyNiwgMjQpXFxuQEAgLTQ3LDcgKzU1LDcgQEBcXG4gI2RlZmluZSBNVDgxOTVfRExZX0dUWENfRU5BQkxFXFx0XFx0QklUKDUpXFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9HVFhDX1NUQUdFU1xcdFxcdEdFTk1BU0soNCwgMClcXG4gXFxuLSNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwxXFx0XFx0MHhGRDRcXG4rI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDFcXHRcXHQweDRcXG4gI2RlZmluZSBNVDgxOTVfRExZX1JYQ19JTlZcXHRcXHRCSVQoMjUpXFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9SWENfRU5BQkxFXFx0XFx0QklUKDE4KVxcbiAjZGVmaW5lIE1UODE5NV9ETFlfUlhDX1NUQUdFU1xcdFxcdEdFTk1BU0soMTcsIDEzKVxcbkBAIC01NSw3ICs2Myw3IEBAXFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9UWENfRU5BQkxFXFx0XFx0QklUKDUpXFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9UWENfU1RBR0VTXFx0XFx0R0VOTUFTSyg0LCAwKVxcbiBcXG4tI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDJcXHRcXHQweEZEOFxcbisjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMlxcdFxcdDB4OFxcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfSU5WXFx0XFx0QklUKDI1KVxcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfRU5BQkxFXFx0QklUKDE4KVxcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfU1RBR0VTXFx0R0VOTUFTSygxNywgMTMpXFxuQEAgLTk1LDcgKzEwMywxMCBAQCBzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfdmFyaWFudCB7XFxuIFxcbiBcXHR1MzIgcnhfZGVsYXlfbWF4O1xcbiBcXHR1MzIgdHhfZGVsYXlfbWF4O1xcbitcXHR1MzIgcGVyaV9ldGhfY3RybF9vZmZzZXQ7XFxuIFxcdHU4IGRtYV9iaXRfbWFzaztcXG4rXFx0Ym9vbCB1c2Vfb3V0X29wO1xcbitcXHRib29sIHVzZV9zdGFnZV9maW5lO1xcbiB9O1xcbiBcXG4gLyogbGlzdCBvZiBjbG9ja3MgcmVxdWlyZWQgZm9yIG1hYyAqL1xcbkBAIC0xMDcsNyArMTE4LDExIEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXQ4MTk1X2R3bWFjX2Nsa19sW10gPSB7XFxuIFxcdFxcXCJheGlcXFwiLCBcXFwiYXBiXFxcIiwgXFxcIm1hY19jZ1xcXCIsIFxcXCJtYWNfbWFpblxcXCIsIFxcXCJwdHBfcmVmXFxcIlxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBtdDI3MTJfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxcbitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG10ODE4OV9kd21hY19jbGtfbFtdID0ge1xcbitcXHRcXFwibWFjX21haW5cXFwiLCBcXFwicHRwX3JlZlxcXCJcXG4rfTtcXG4rXFxuK3N0YXRpYyBpbnQgc2V0X3BoeV9pbnRlcmZhY2VfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcXG4gXFx0XFx0XFx0XFx0dTggcGh5X2ludGZfc2VsKVxcbiB7XFxuIFxcdHUzMiBpbnRmX3ZhbCA9IHBoeV9pbnRmX3NlbDtcXG5AQCAtMTI0LDcgKzEzOSw3IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbitzdGF0aWMgdm9pZCBkZWxheV9wczJzdGFnZV92MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiB7XFxuIFxcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcXHUwMDI2cGxhdC1cXHUwMDNlbWFjX2RlbGF5O1xcbiBcXG5AQCAtMTQ5LDcgKzE2NCw3IEBAIHN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiBcXHR9XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9zdGFnZTJwcyhzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbitzdGF0aWMgdm9pZCBkZWxheV9zdGFnZTJwc192MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiB7XFxuIFxcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcXHUwMDI2cGxhdC1cXHUwMDNlbWFjX2RlbGF5O1xcbiBcXG5AQCAtMTc0LDEyICsxODksMTIgQEAgc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuIFxcdH1cXG4gfVxcbiBcXG4tc3RhdGljIGludCBtdDI3MTJfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuK3N0YXRpYyBpbnQgc2V0X2RlbGF5X3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuIHtcXG4gXFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFxcdTAwMjZwbGF0LVxcdTAwM2VtYWNfZGVsYXk7XFxuIFxcdHUzMiBkZWxheV92YWwgPSAwLCBmaW5lX3ZhbCA9IDA7XFxuIFxcbi1cXHRtdDI3MTJfZGVsYXlfcHMyc3RhZ2UocGxhdCk7XFxuK1xcdGRlbGF5X3BzMnN0YWdlX3YxKHBsYXQpO1xcbiBcXG4gXFx0c3dpdGNoIChwbGF0LVxcdTAwM2VwaHlfbW9kZSkge1xcbiBcXHRjYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUk6XFxuQEAgLTI1OCwxNCArMjczLDE0IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiBcXHRyZWdtYXBfd3JpdGUocGxhdC1cXHUwMDNlcGVyaV9yZWdtYXAsIFBFUklfRVRIX0RMWSwgZGVsYXlfdmFsKTtcXG4gXFx0cmVnbWFwX3dyaXRlKHBsYXQtXFx1MDAzZXBlcmlfcmVnbWFwLCBQRVJJX0VUSF9ETFlfRklORSwgZmluZV92YWwpO1xcbiBcXG4tXFx0bXQyNzEyX2RlbGF5X3N0YWdlMnBzKHBsYXQpO1xcbitcXHRkZWxheV9zdGFnZTJwc192MShwbGF0KTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcXG4tXFx0XFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gbXQyNzEyX3NldF9pbnRlcmZhY2UsXFxuLVxcdFxcdC5kd21hY19zZXRfZGVsYXkgPSBtdDI3MTJfc2V0X2RlbGF5LFxcbitcXHRcXHQuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBzZXRfcGh5X2ludGVyZmFjZV92MSxcXG4rXFx0XFx0LmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MSxcXG4gXFx0XFx0LmNsa19saXN0ID0gbXQyNzEyX2R3bWFjX2Nsa19sLFxcbiBcXHRcXHQubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG10MjcxMl9kd21hY19jbGtfbCksXFxuIFxcdFxcdC5yeF9kZWxheV9tYXggPSAxNzYwMCxcXG5AQCAtMjczLDEwICsyODgsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10MjcxMl9nbWFjX3ZhcmlhbnQgPSB7XFxuIFxcdFxcdC5kbWFfYml0X21hc2sgPSAzMyxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgbXQ4MTk1X3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcXG4rc3RhdGljIGludCBzZXRfcGh5X2ludGVyZmFjZV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxcbiBcXHRcXHRcXHRcXHR1OCBwaHlfaW50Zl9zZWwpXFxuIHtcXG4gXFx0dTMyIGludGZfdmFsID0gRklFTERfUFJFUChNVDgxOTVfRVRIX0lOVEZfU0VMLCBwaHlfaW50Zl9zZWwpO1xcbitcXHR1MzIgcmVnX29mZnNldCA9IHBsYXQtXFx1MDAzZXZhcmlhbnQtXFx1MDAzZXBlcmlfZXRoX2N0cmxfb2Zmc2V0O1xcbiBcXG4gXFx0aWYgKHBoeV9pbnRmX3NlbCA9PSBQSFlfSU5URl9TRUxfUk1JSSkge1xcbiBcXHRcXHRpZiAocGxhdC1cXHUwMDNlcm1paV9jbGtfZnJvbV9tYWMpXFxuQEAgLTI4OCwxMiArMzA0LDE3IEBAIHN0YXRpYyBpbnQgbXQ4MTk1X3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcXG4gXFx0LyogTVQ4MTk1IG9ubHkgc3VwcG9ydCBleHRlcm5hbCBQSFkgKi9cXG4gXFx0aW50Zl92YWwgfD0gTVQ4MTk1X0VYVF9QSFlfTU9ERTtcXG4gXFxuLVxcdHJlZ21hcF93cml0ZShwbGF0LVxcdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLCBpbnRmX3ZhbCk7XFxuK1xcdGlmIChwbGF0LVxcdTAwM2V2YXJpYW50LVxcdTAwM2V1c2Vfb3V0X29wKVxcbitcXHRcXHRpbnRmX3ZhbCB8PSBNVDgxODlfQ1RSTDBfVFhDX09VVF9PUDtcXG4rXFxuK1xcdHJlZ21hcF93cml0ZShwbGF0LVxcdTAwM2VwZXJpX3JlZ21hcCxcXG4rXFx0XFx0ICAgICByZWdfb2Zmc2V0ICsgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLFxcbitcXHRcXHQgICAgIGludGZfdmFsKTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4rc3RhdGljIHZvaWQgZGVsYXlfcHMyc3RhZ2VfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4ge1xcbiBcXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXFx1MDAyNnBsYXQtXFx1MDAzZW1hY19kZWxheTtcXG4gXFxuQEAgLTMwMiw3ICszMjMsNyBAQCBzdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4gXFx0bWFjX2RlbGF5LVxcdTAwM2VyeF9kZWxheSAvPSAyOTA7XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIG10ODE5NV9kZWxheV9zdGFnZTJwcyhzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbitzdGF0aWMgdm9pZCBkZWxheV9zdGFnZTJwc192MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiB7XFxuIFxcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcXHUwMDI2cGxhdC1cXHUwMDNlbWFjX2RlbGF5O1xcbiBcXG5AQCAtMzExLDEyICszMzIsMTYgQEAgc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuIFxcdG1hY19kZWxheS1cXHUwMDNlcnhfZGVsYXkgKj0gMjkwO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW50IG10ODE5NV9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4rc3RhdGljIGludCBzZXRfZGVsYXlfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4ge1xcbiBcXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXFx1MDAyNnBsYXQtXFx1MDAzZW1hY19kZWxheTtcXG4tXFx0dTMyIGd0eGNfZGVsYXlfdmFsID0gMCwgZGVsYXlfdmFsID0gMCwgcm1paV9kZWxheV92YWwgPSAwO1xcbitcXHR1MzIgcmVnX29mZnNldCA9IHBsYXQtXFx1MDAzZXZhcmlhbnQtXFx1MDAzZXBlcmlfZXRoX2N0cmxfb2Zmc2V0O1xcbitcXHR1MzIgZ3R4Y19kZWxheV9tYXNrID0gMDtcXG4rXFx0dTMyIGd0eGNfZGVsYXlfdmFsID0gMDtcXG4rXFx0dTMyIHJtaWlfZGVsYXlfdmFsID0gMDtcXG4rXFx0dTMyIGRlbGF5X3ZhbCA9IDA7XFxuIFxcbi1cXHRtdDgxOTVfZGVsYXlfcHMyc3RhZ2UocGxhdCk7XFxuK1xcdGRlbGF5X3BzMnN0YWdlX3YyKHBsYXQpO1xcbiBcXG4gXFx0c3dpdGNoIChwbGF0LVxcdTAwM2VwaHlfbW9kZSkge1xcbiBcXHRjYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUk6XFxuQEAgLTM4OCw2ICs0MTMsOSBAQCBzdGF0aWMgaW50IG10ODE5NV9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4gXFx0XFx0Z3R4Y19kZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX0dUWENfU1RBR0VTLCBtYWNfZGVsYXktXFx1MDAzZXR4X2RlbGF5KTtcXG4gXFx0XFx0Z3R4Y19kZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX0dUWENfSU5WLCBtYWNfZGVsYXktXFx1MDAzZXR4X2ludik7XFxuIFxcbitcXHRcXHRpZiAocGxhdC1cXHUwMDNldmFyaWFudC1cXHUwMDNldXNlX3N0YWdlX2ZpbmUpXFxuK1xcdFxcdFxcdGd0eGNfZGVsYXlfdmFsIHw9IE1UODE4OV9DVFJMMF9ETFlfR1RYQ19TVEFHRV9GSU5FO1xcbitcXG4gXFx0XFx0ZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfRU5BQkxFLCAhIW1hY19kZWxheS1cXHUwMDNlcnhfZGVsYXkpO1xcbiBcXHRcXHRkZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX1JYQ19TVEFHRVMsIG1hY19kZWxheS1cXHUwMDNlcnhfZGVsYXkpO1xcbiBcXHRcXHRkZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX1JYQ19JTlYsIG1hY19kZWxheS1cXHUwMDNlcnhfaW52KTtcXG5AQCAtMzk4LDI5ICs0MjYsNTIgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHR9XFxuIFxcbitcXHRndHhjX2RlbGF5X21hc2sgPSBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfFxcbitcXHRcXHRcXHQgIE1UODE5NV9ETFlfR1RYQ19JTlYgfFxcbitcXHRcXHRcXHQgIE1UODE5NV9ETFlfR1RYQ19FTkFCTEUgfFxcbitcXHRcXHRcXHQgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVM7XFxuK1xcbitcXHRpZiAocGxhdC1cXHUwMDNldmFyaWFudC1cXHUwMDNldXNlX3N0YWdlX2ZpbmUpXFxuK1xcdFxcdGd0eGNfZGVsYXlfbWFzayB8PSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORTtcXG4rXFxuIFxcdHJlZ21hcF91cGRhdGVfYml0cyhwbGF0LVxcdTAwM2VwZXJpX3JlZ21hcCxcXG4tXFx0XFx0XFx0ICAgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLFxcbi1cXHRcXHRcXHQgICBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfFxcbi1cXHRcXHRcXHQgICBNVDgxOTVfRExZX0dUWENfSU5WIHxcXG4tXFx0XFx0XFx0ICAgTVQ4MTk1X0RMWV9HVFhDX0VOQUJMRSB8XFxuLVxcdFxcdFxcdCAgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVMsXFxuK1xcdFxcdFxcdCAgIHJlZ19vZmZzZXQgKyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsXFxuK1xcdFxcdFxcdCAgIGd0eGNfZGVsYXlfbWFzayxcXG4gXFx0XFx0XFx0ICAgZ3R4Y19kZWxheV92YWwpO1xcbi1cXHRyZWdtYXBfd3JpdGUocGxhdC1cXHUwMDNlcGVyaV9yZWdtYXAsIE1UODE5NV9QRVJJX0VUSF9DVFJMMSwgZGVsYXlfdmFsKTtcXG4tXFx0cmVnbWFwX3dyaXRlKHBsYXQtXFx1MDAzZXBlcmlfcmVnbWFwLCBNVDgxOTVfUEVSSV9FVEhfQ1RSTDIsIHJtaWlfZGVsYXlfdmFsKTtcXG4rXFx0cmVnbWFwX3dyaXRlKHBsYXQtXFx1MDAzZXBlcmlfcmVnbWFwLFxcbitcXHRcXHQgICAgIHJlZ19vZmZzZXQgKyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDEsXFxuK1xcdFxcdCAgICAgZGVsYXlfdmFsKTtcXG4rXFx0cmVnbWFwX3dyaXRlKHBsYXQtXFx1MDAzZXBlcmlfcmVnbWFwLFxcbitcXHRcXHQgICAgIHJlZ19vZmZzZXQgKyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDIsXFxuK1xcdFxcdCAgICAgcm1paV9kZWxheV92YWwpO1xcbiBcXG4tXFx0bXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHBsYXQpO1xcbitcXHRkZWxheV9zdGFnZTJwc192MihwbGF0KTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbitzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQ4MTg5X2dtYWNfdmFyaWFudCA9IHtcXG4rXFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXFxuK1xcdC5kd21hY19zZXRfZGVsYXkgPSBzZXRfZGVsYXlfdjIsXFxuK1xcdC5jbGtfbGlzdCA9IG10ODE4OV9kd21hY19jbGtfbCxcXG4rXFx0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxODlfZHdtYWNfY2xrX2wpLFxcbitcXHQuZG1hX2JpdF9tYXNrID0gMzUsXFxuK1xcdC5yeF9kZWxheV9tYXggPSA5MjgwLFxcbitcXHQudHhfZGVsYXlfbWF4ID0gOTI4MCxcXG4rXFx0LnBlcmlfZXRoX2N0cmxfb2Zmc2V0ID0gTVQ4MTg5X1BFUklfRVRIX0NUUkxfQkFTRSxcXG4rXFx0LnVzZV9vdXRfb3AgPSB0cnVlLFxcbitcXHQudXNlX3N0YWdlX2ZpbmUgPSB0cnVlLFxcbit9O1xcbitcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10ODE5NV9nbWFjX3ZhcmlhbnQgPSB7XFxuLVxcdC5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IG10ODE5NV9zZXRfaW50ZXJmYWNlLFxcbi1cXHQuZHdtYWNfc2V0X2RlbGF5ID0gbXQ4MTk1X3NldF9kZWxheSxcXG4rXFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXFxuK1xcdC5kd21hY19zZXRfZGVsYXkgPSBzZXRfZGVsYXlfdjIsXFxuIFxcdC5jbGtfbGlzdCA9IG10ODE5NV9kd21hY19jbGtfbCxcXG4gXFx0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxOTVfZHdtYWNfY2xrX2wpLFxcbiBcXHQucnhfZGVsYXlfbWF4ID0gOTI4MCxcXG4gXFx0LnR4X2RlbGF5X21heCA9IDkyODAsXFxuIFxcdC5kbWFfYml0X21hc2sgPSAzNSxcXG4rXFx0LnBlcmlfZXRoX2N0cmxfb2Zmc2V0ID0gTVQ4MTk1X1BFUklfRVRIX0NUUkxfQkFTRSxcXG4gfTtcXG4gXFxuIHN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuQEAgLTY2Miw2ICs3MTMsOCBAQCBzdGF0aWMgdm9pZCBtZWRpYXRla19kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZHdtYWNfbWF0Y2hbXSA9IHtcXG4gXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDI3MTItZ21hY1xcXCIsXFxuIFxcdCAgLmRhdGEgPSBcXHUwMDI2bXQyNzEyX2dtYWNfdmFyaWFudCB9LFxcbitcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10ODE4OS1nbWFjXFxcIixcXG4rXFx0ICAuZGF0YSA9IFxcdTAwMjZtdDgxODlfZ21hY192YXJpYW50IH0sXFxuIFxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ4MTk1LWdtYWNcXFwiLFxcbiBcXHQgIC5kYXRhID0gXFx1MDAyNm10ODE5NV9nbWFjX3ZhcmlhbnQgfSxcXG4gXFx0eyB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjMzLjY2MjAzMjU4OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQyMzgzNzgyNDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DIChNVDgxODkpIHRvIHRoZSBkd21hYy1tZWRpYXRlayBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IHJlbGllcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgc3BlY2lmaWMgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZXhlY3V0ZWQgb3IgcmVhY2hlZCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5ZDk0ZjA1ZTEzMmZjMTc2NDg0NTQwZjFhMTZhMTYwOTBhZjI3Y2I2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgNyAxNTo0NTozMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbFxuaW5kZXggM2FhYjIxYjhlOGRlNWIuLjAwMGFiZWMwMjNiMzE0IDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sXG4rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWxcbkBAIC0yMCwxMyArMjAsMTEgQEAgc2VsZWN0OlxuICAgICAgICAgZW51bTpcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDI3MTItZ21hY1xuICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OC1nbWFjXG4rICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWNcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxOTUtZ21hY1xuICAgcmVxdWlyZWQ6XG4gICAgIC0gY29tcGF0aWJsZVxuIFxuLWFsbE9mOlxuLSAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXG4tXG4gcHJvcGVydGllczpcbiAgIGNvbXBhdGlibGU6XG4gICAgIG9uZU9mOlxuQEAgLTM2LDYgKzM0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbisgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWNcbiAgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWNcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjEwYVxuICAgICAgIC0gaXRlbXM6XG5AQCAtNDQsMjYgKzQzLDYgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ4MTk1LWdtYWNcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjEwYVxuIFxuLSAgY2xvY2tzOlxuLSAgICBtaW5JdGVtczogNVxuLSAgICBpdGVtczpcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBBWEkgY2xvY2tcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBBUEIgY2xvY2tcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgTWFpbiBjbG9ja1xuLSAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9ja1xuLSAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQ1xuLSAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBjbG9jayBnYXRlXG4tXG4tICBjbG9jay1uYW1lczpcbi0gICAgbWluSXRlbXM6IDVcbi0gICAgaXRlbXM6XG4tICAgICAgLSBjb25zdDogYXhpXG4tICAgICAgLSBjb25zdDogYXBiXG4tICAgICAgLSBjb25zdDogbWFjX21haW5cbi0gICAgICAtIGNvbnN0OiBwdHBfcmVmXG4tICAgICAgLSBjb25zdDogcm1paV9pbnRlcm5hbFxuLSAgICAgIC0gY29uc3Q6IG1hY19jZ1xuLVxuICAgaW50ZXJydXB0czpcbiAgICAgbWF4SXRlbXM6IDFcbiBcbkBAIC0xNDcsNiArMTI2LDU4IEBAIHJlcXVpcmVkOlxuICAgLSBwaHktbW9kZVxuICAgLSBtZWRpYXRlayxwZXJpY2ZnXG4gXG4rYWxsT2Y6XG4rICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbisgIC0gaWY6XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGNvbXBhdGlibGU6XG4rICAgICAgICAgIGNvbnRhaW5zOlxuKyAgICAgICAgICAgIGVudW06XG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10MjcxMi1nbWFjXG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OC1nbWFjXG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXG4rICAgIHRoZW46XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGNsb2NrczpcbisgICAgICAgICAgbWluSXRlbXM6IDVcbisgICAgICAgICAgaXRlbXM6XG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogQVhJIGNsb2NrXG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogQVBCIGNsb2NrXG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2tcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBQVFAgY2xvY2tcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBSTUlJIHJlZmVyZW5jZSBjbG9jayBwcm92aWRlZCBieSBNQUNcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgY2xvY2sgZ2F0ZVxuK1xuKyAgICAgICAgY2xvY2stbmFtZXM6XG4rICAgICAgICAgIG1pbkl0ZW1zOiA1XG4rICAgICAgICAgIGl0ZW1zOlxuKyAgICAgICAgICAgIC0gY29uc3Q6IGF4aVxuKyAgICAgICAgICAgIC0gY29uc3Q6IGFwYlxuKyAgICAgICAgICAgIC0gY29uc3Q6IG1hY19tYWluXG4rICAgICAgICAgICAgLSBjb25zdDogcHRwX3JlZlxuKyAgICAgICAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWxcbisgICAgICAgICAgICAtIGNvbnN0OiBtYWNfY2dcbitcbisgIC0gaWY6XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGNvbXBhdGlibGU6XG4rICAgICAgICAgIGNvbnRhaW5zOlxuKyAgICAgICAgICAgIGVudW06XG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OS1nbWFjXG4rICAgIHRoZW46XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGNsb2NrczpcbisgICAgICAgICAgaXRlbXM6XG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2tcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBQVFAgY2xvY2tcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBSTUlJIHJlZmVyZW5jZSBjbG9jayBwcm92aWRlZCBieSBNQUNcbitcbisgICAgICAgIGNsb2NrLW5hbWVzOlxuKyAgICAgICAgICBpdGVtczpcbisgICAgICAgICAgICAtIGNvbnN0OiBtYWNfbWFpblxuKyAgICAgICAgICAgIC0gY29uc3Q6IHB0cF9yZWZcbisgICAgICAgICAgICAtIGNvbnN0OiBybWlpX2ludGVybmFsXG4rXG4gdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzOiBmYWxzZVxuIFxuIGV4YW1wbGVzOlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jXG5pbmRleCAzMGFlMGRiYTdmZmZkYi4uZTdlMzM2YjFmMTE0YzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jXG5AQCAtMzYsOCArMzYsMTYgQEBcbiAjZGVmaW5lIEVUSF9GSU5FX0RMWV9HVFhDXHRCSVQoMSlcbiAjZGVmaW5lIEVUSF9GSU5FX0RMWV9SWENcdEJJVCgwKVxuIFxuKy8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTg5ICovXG4rI2RlZmluZSBNVDgxODlfUEVSSV9FVEhfQ1RSTF9CQVNFXHRcdDB4MjcwXG4rXG4rI2RlZmluZSBNVDgxODlfQ1RSTDBfVFhDX09VVF9PUFx0XHRcdEJJVCgyMClcbisjZGVmaW5lIE1UODE4OV9DVFJMMF9ETFlfR1RYQ19TVEFHRV9GSU5FXHRHRU5NQVNLKDExLCA2KVxuK1xuIC8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTk1ICovXG4tI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDBcdFx0MHhGRDBcbisjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMX0JBU0VcdDB4RkQwXG4rXG4rI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDBcdFx0MHgwXG4gI2RlZmluZSBNVDgxOTVfUk1JSV9DTEtfU1JDX0lOVEVSTkFMXHRCSVQoMjgpXG4gI2RlZmluZSBNVDgxOTVfUk1JSV9DTEtfU1JDX1JYQ1x0XHRCSVQoMjcpXG4gI2RlZmluZSBNVDgxOTVfRVRIX0lOVEZfU0VMXHRcdEdFTk1BU0soMjYsIDI0KVxuQEAgLTQ3LDcgKzU1LDcgQEBcbiAjZGVmaW5lIE1UODE5NV9ETFlfR1RYQ19FTkFCTEVcdFx0QklUKDUpXG4gI2RlZmluZSBNVDgxOTVfRExZX0dUWENfU1RBR0VTXHRcdEdFTk1BU0soNCwgMClcbiBcbi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMVx0XHQweEZENFxuKyNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwxXHRcdDB4NFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9SWENfSU5WXHRcdEJJVCgyNSlcbiAjZGVmaW5lIE1UODE5NV9ETFlfUlhDX0VOQUJMRVx0XHRCSVQoMTgpXG4gI2RlZmluZSBNVDgxOTVfRExZX1JYQ19TVEFHRVNcdFx0R0VOTUFTSygxNywgMTMpXG5AQCAtNTUsNyArNjMsNyBAQFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9UWENfRU5BQkxFXHRcdEJJVCg1KVxuICNkZWZpbmUgTVQ4MTk1X0RMWV9UWENfU1RBR0VTXHRcdEdFTk1BU0soNCwgMClcbiBcbi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMlx0XHQweEZEOFxuKyNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwyXHRcdDB4OFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19JTlZcdFx0QklUKDI1KVxuICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19FTkFCTEVcdEJJVCgxOClcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfU1RBR0VTXHRHRU5NQVNLKDE3LCAxMylcbkBAIC05NSw3ICsxMDMsMTAgQEAgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQge1xuIFxuIFx0dTMyIHJ4X2RlbGF5X21heDtcbiBcdHUzMiB0eF9kZWxheV9tYXg7XG4rXHR1MzIgcGVyaV9ldGhfY3RybF9vZmZzZXQ7XG4gXHR1OCBkbWFfYml0X21hc2s7XG4rXHRib29sIHVzZV9vdXRfb3A7XG4rXHRib29sIHVzZV9zdGFnZV9maW5lO1xuIH07XG4gXG4gLyogbGlzdCBvZiBjbG9ja3MgcmVxdWlyZWQgZm9yIG1hYyAqL1xuQEAgLTEwNyw3ICsxMTgsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtdDgxOTVfZHdtYWNfY2xrX2xbXSA9IHtcbiBcdFwiYXhpXCIsIFwiYXBiXCIsIFwibWFjX2NnXCIsIFwibWFjX21haW5cIiwgXCJwdHBfcmVmXCJcbiB9O1xuIFxuLXN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcbitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG10ODE4OV9kd21hY19jbGtfbFtdID0ge1xuK1x0XCJtYWNfbWFpblwiLCBcInB0cF9yZWZcIlxuK307XG4rXG4rc3RhdGljIGludCBzZXRfcGh5X2ludGVyZmFjZV92MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0XHRcdFx0dTggcGh5X2ludGZfc2VsKVxuIHtcbiBcdHUzMiBpbnRmX3ZhbCA9IHBoeV9pbnRmX3NlbDtcbkBAIC0xMjQsNyArMTM5LDcgQEAgc3RhdGljIGludCBtdDI3MTJfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuK3N0YXRpYyB2b2lkIGRlbGF5X3BzMnN0YWdlX3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFxuQEAgLTE0OSw3ICsxNjQsNyBAQCBzdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdH1cbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4rc3RhdGljIHZvaWQgZGVsYXlfc3RhZ2UycHNfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiB7XG4gXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXHUwMDI2cGxhdC1cdTAwM2VtYWNfZGVsYXk7XG4gXG5AQCAtMTc0LDEyICsxODksMTIgQEAgc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4gXHR9XG4gfVxuIFxuLXN0YXRpYyBpbnQgbXQyNzEyX3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuK3N0YXRpYyBpbnQgc2V0X2RlbGF5X3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFx0dTMyIGRlbGF5X3ZhbCA9IDAsIGZpbmVfdmFsID0gMDtcbiBcbi1cdG10MjcxMl9kZWxheV9wczJzdGFnZShwbGF0KTtcbitcdGRlbGF5X3BzMnN0YWdlX3YxKHBsYXQpO1xuIFxuIFx0c3dpdGNoIChwbGF0LVx1MDAzZXBoeV9tb2RlKSB7XG4gXHRjYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUk6XG5AQCAtMjU4LDE0ICsyNzMsMTQgQEAgc3RhdGljIGludCBtdDI3MTJfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4gXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgUEVSSV9FVEhfRExZLCBkZWxheV92YWwpO1xuIFx0cmVnbWFwX3dyaXRlKHBsYXQtXHUwMDNlcGVyaV9yZWdtYXAsIFBFUklfRVRIX0RMWV9GSU5FLCBmaW5lX3ZhbCk7XG4gXG4tXHRtdDI3MTJfZGVsYXlfc3RhZ2UycHMocGxhdCk7XG4rXHRkZWxheV9zdGFnZTJwc192MShwbGF0KTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcbi1cdFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gbXQyNzEyX3NldF9pbnRlcmZhY2UsXG4tXHRcdC5kd21hY19zZXRfZGVsYXkgPSBtdDI3MTJfc2V0X2RlbGF5LFxuK1x0XHQuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBzZXRfcGh5X2ludGVyZmFjZV92MSxcbitcdFx0LmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MSxcbiBcdFx0LmNsa19saXN0ID0gbXQyNzEyX2R3bWFjX2Nsa19sLFxuIFx0XHQubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG10MjcxMl9kd21hY19jbGtfbCksXG4gXHRcdC5yeF9kZWxheV9tYXggPSAxNzYwMCxcbkBAIC0yNzMsMTAgKzI4OCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcbiBcdFx0LmRtYV9iaXRfbWFzayA9IDMzLFxuIH07XG4gXG4tc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuK3N0YXRpYyBpbnQgc2V0X3BoeV9pbnRlcmZhY2VfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcbiBcdFx0XHRcdHU4IHBoeV9pbnRmX3NlbClcbiB7XG4gXHR1MzIgaW50Zl92YWwgPSBGSUVMRF9QUkVQKE1UODE5NV9FVEhfSU5URl9TRUwsIHBoeV9pbnRmX3NlbCk7XG4rXHR1MzIgcmVnX29mZnNldCA9IHBsYXQtXHUwMDNldmFyaWFudC1cdTAwM2VwZXJpX2V0aF9jdHJsX29mZnNldDtcbiBcbiBcdGlmIChwaHlfaW50Zl9zZWwgPT0gUEhZX0lOVEZfU0VMX1JNSUkpIHtcbiBcdFx0aWYgKHBsYXQtXHUwMDNlcm1paV9jbGtfZnJvbV9tYWMpXG5AQCAtMjg4LDEyICszMDQsMTcgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0LyogTVQ4MTk1IG9ubHkgc3VwcG9ydCBleHRlcm5hbCBQSFkgKi9cbiBcdGludGZfdmFsIHw9IE1UODE5NV9FWFRfUEhZX01PREU7XG4gXG4tXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLCBpbnRmX3ZhbCk7XG4rXHRpZiAocGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXVzZV9vdXRfb3ApXG4rXHRcdGludGZfdmFsIHw9IE1UODE4OV9DVFJMMF9UWENfT1VUX09QO1xuK1xuK1x0cmVnbWFwX3dyaXRlKHBsYXQtXHUwMDNlcGVyaV9yZWdtYXAsXG4rXHRcdCAgICAgcmVnX29mZnNldCArIE1UODE5NV9QRVJJX0VUSF9DVFJMMCxcbitcdFx0ICAgICBpbnRmX3ZhbCk7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3BzMnN0YWdlKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4rc3RhdGljIHZvaWQgZGVsYXlfcHMyc3RhZ2VfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiB7XG4gXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXHUwMDI2cGxhdC1cdTAwM2VtYWNfZGVsYXk7XG4gXG5AQCAtMzAyLDcgKzMyMyw3IEBAIHN0YXRpYyB2b2lkIG10ODE5NV9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIFx0bWFjX2RlbGF5LVx1MDAzZXJ4X2RlbGF5IC89IDI5MDtcbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4rc3RhdGljIHZvaWQgZGVsYXlfc3RhZ2UycHNfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiB7XG4gXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXHUwMDI2cGxhdC1cdTAwM2VtYWNfZGVsYXk7XG4gXG5AQCAtMzExLDEyICszMzIsMTYgQEAgc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4gXHRtYWNfZGVsYXktXHUwMDNlcnhfZGVsYXkgKj0gMjkwO1xuIH1cbiBcbi1zdGF0aWMgaW50IG10ODE5NV9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbitzdGF0aWMgaW50IHNldF9kZWxheV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIHtcbiBcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcdTAwMjZwbGF0LVx1MDAzZW1hY19kZWxheTtcbi1cdHUzMiBndHhjX2RlbGF5X3ZhbCA9IDAsIGRlbGF5X3ZhbCA9IDAsIHJtaWlfZGVsYXlfdmFsID0gMDtcbitcdHUzMiByZWdfb2Zmc2V0ID0gcGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXBlcmlfZXRoX2N0cmxfb2Zmc2V0O1xuK1x0dTMyIGd0eGNfZGVsYXlfbWFzayA9IDA7XG4rXHR1MzIgZ3R4Y19kZWxheV92YWwgPSAwO1xuK1x0dTMyIHJtaWlfZGVsYXlfdmFsID0gMDtcbitcdHUzMiBkZWxheV92YWwgPSAwO1xuIFxuLVx0bXQ4MTk1X2RlbGF5X3BzMnN0YWdlKHBsYXQpO1xuK1x0ZGVsYXlfcHMyc3RhZ2VfdjIocGxhdCk7XG4gXG4gXHRzd2l0Y2ggKHBsYXQtXHUwMDNlcGh5X21vZGUpIHtcbiBcdGNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX01JSTpcbkBAIC0zODgsNiArNDEzLDkgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4gXHRcdGd0eGNfZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9HVFhDX1NUQUdFUywgbWFjX2RlbGF5LVx1MDAzZXR4X2RlbGF5KTtcbiBcdFx0Z3R4Y19kZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX0dUWENfSU5WLCBtYWNfZGVsYXktXHUwMDNldHhfaW52KTtcbiBcbitcdFx0aWYgKHBsYXQtXHUwMDNldmFyaWFudC1cdTAwM2V1c2Vfc3RhZ2VfZmluZSlcbitcdFx0XHRndHhjX2RlbGF5X3ZhbCB8PSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORTtcbitcbiBcdFx0ZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfRU5BQkxFLCAhIW1hY19kZWxheS1cdTAwM2VyeF9kZWxheSk7XG4gXHRcdGRlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfUlhDX1NUQUdFUywgbWFjX2RlbGF5LVx1MDAzZXJ4X2RlbGF5KTtcbiBcdFx0ZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfSU5WLCBtYWNfZGVsYXktXHUwMDNlcnhfaW52KTtcbkBAIC0zOTgsMjkgKzQyNiw1MiBAQCBzdGF0aWMgaW50IG10ODE5NV9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXG4rXHRndHhjX2RlbGF5X21hc2sgPSBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfFxuK1x0XHRcdCAgTVQ4MTk1X0RMWV9HVFhDX0lOViB8XG4rXHRcdFx0ICBNVDgxOTVfRExZX0dUWENfRU5BQkxFIHxcbitcdFx0XHQgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVM7XG4rXG4rXHRpZiAocGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXVzZV9zdGFnZV9maW5lKVxuK1x0XHRndHhjX2RlbGF5X21hc2sgfD0gTVQ4MTg5X0NUUkwwX0RMWV9HVFhDX1NUQUdFX0ZJTkU7XG4rXG4gXHRyZWdtYXBfdXBkYXRlX2JpdHMocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCxcbi1cdFx0XHQgICBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsXG4tXHRcdFx0ICAgTVQ4MTk1X1JHTUlJX1RYQ19QSEFTRV9DVFJMIHxcbi1cdFx0XHQgICBNVDgxOTVfRExZX0dUWENfSU5WIHxcbi1cdFx0XHQgICBNVDgxOTVfRExZX0dUWENfRU5BQkxFIHxcbi1cdFx0XHQgICBNVDgxOTVfRExZX0dUWENfU1RBR0VTLFxuK1x0XHRcdCAgIHJlZ19vZmZzZXQgKyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsXG4rXHRcdFx0ICAgZ3R4Y19kZWxheV9tYXNrLFxuIFx0XHRcdCAgIGd0eGNfZGVsYXlfdmFsKTtcbi1cdHJlZ21hcF93cml0ZShwbGF0LVx1MDAzZXBlcmlfcmVnbWFwLCBNVDgxOTVfUEVSSV9FVEhfQ1RSTDEsIGRlbGF5X3ZhbCk7XG4tXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwyLCBybWlpX2RlbGF5X3ZhbCk7XG4rXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCxcbitcdFx0ICAgICByZWdfb2Zmc2V0ICsgTVQ4MTk1X1BFUklfRVRIX0NUUkwxLFxuK1x0XHQgICAgIGRlbGF5X3ZhbCk7XG4rXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCxcbitcdFx0ICAgICByZWdfb2Zmc2V0ICsgTVQ4MTk1X1BFUklfRVRIX0NUUkwyLFxuK1x0XHQgICAgIHJtaWlfZGVsYXlfdmFsKTtcbiBcbi1cdG10ODE5NV9kZWxheV9zdGFnZTJwcyhwbGF0KTtcbitcdGRlbGF5X3N0YWdlMnBzX3YyKHBsYXQpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfdmFyaWFudCBtdDgxODlfZ21hY192YXJpYW50ID0ge1xuK1x0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXG4rXHQuZHdtYWNfc2V0X2RlbGF5ID0gc2V0X2RlbGF5X3YyLFxuK1x0LmNsa19saXN0ID0gbXQ4MTg5X2R3bWFjX2Nsa19sLFxuK1x0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxODlfZHdtYWNfY2xrX2wpLFxuK1x0LmRtYV9iaXRfbWFzayA9IDM1LFxuK1x0LnJ4X2RlbGF5X21heCA9IDkyODAsXG4rXHQudHhfZGVsYXlfbWF4ID0gOTI4MCxcbitcdC5wZXJpX2V0aF9jdHJsX29mZnNldCA9IE1UODE4OV9QRVJJX0VUSF9DVFJMX0JBU0UsXG4rXHQudXNlX291dF9vcCA9IHRydWUsXG4rXHQudXNlX3N0YWdlX2ZpbmUgPSB0cnVlLFxuK307XG4rXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10ODE5NV9nbWFjX3ZhcmlhbnQgPSB7XG4tXHQuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBtdDgxOTVfc2V0X2ludGVyZmFjZSxcbi1cdC5kd21hY19zZXRfZGVsYXkgPSBtdDgxOTVfc2V0X2RlbGF5LFxuK1x0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXG4rXHQuZHdtYWNfc2V0X2RlbGF5ID0gc2V0X2RlbGF5X3YyLFxuIFx0LmNsa19saXN0ID0gbXQ4MTk1X2R3bWFjX2Nsa19sLFxuIFx0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxOTVfZHdtYWNfY2xrX2wpLFxuIFx0LnJ4X2RlbGF5X21heCA9IDkyODAsXG4gXHQudHhfZGVsYXlfbWF4ID0gOTI4MCxcbiBcdC5kbWFfYml0X21hc2sgPSAzNSxcbitcdC5wZXJpX2V0aF9jdHJsX29mZnNldCA9IE1UODE5NV9QRVJJX0VUSF9DVFJMX0JBU0UsXG4gfTtcbiBcbiBzdGF0aWMgaW50IG1lZGlhdGVrX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuQEAgLTY2Miw2ICs3MTMsOCBAQCBzdGF0aWMgdm9pZCBtZWRpYXRla19kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZWRpYXRla19kd21hY19tYXRjaFtdID0ge1xuIFx0eyAuY29tcGF0aWJsZSA9IFwibWVkaWF0ZWssbXQyNzEyLWdtYWNcIixcbiBcdCAgLmRhdGEgPSBcdTAwMjZtdDI3MTJfZ21hY192YXJpYW50IH0sXG4rXHR7IC5jb21wYXRpYmxlID0gXCJtZWRpYXRlayxtdDgxODktZ21hY1wiLFxuK1x0ICAuZGF0YSA9IFx1MDAyNm10ODE4OV9nbWFjX3ZhcmlhbnQgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcIm1lZGlhdGVrLG10ODE5NS1nbWFjXCIsXG4gXHQgIC5kYXRhID0gXHUwMDI2bXQ4MTk1X2dtYWNfdmFyaWFudCB9LFxuIFx0eyB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxNTo0NTozMy42NjIwMzM4NzlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxODcxODcxMTI2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5ldyBHTUFDIFZhcmlhbnQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCdzIHRvdWNoaW5nIGBkd21hYy1tZWRpYXRlay5jYCBhbmQgdGhlIGRldmljZSB0cmVlIGJpbmRpbmdzLiBUaGUgZ29hbCBpcyB0byBhZGQgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgR01BQyB2YXJpYW50OiBgbXQ4MTg5LWdtYWNgLiBJdCBsb29rcyBsaWtlIHRoZXJlJ3Mgc29tZSBmdW5jdGlvbiByZWZhY3RvcmluZyBoYXBwZW5pbmcgdG9vLCB3aGljaCBpcyBhbHdheXMgc29tZXRoaW5nIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8sIG1ha2luZyBzdXJlIHRoZSBjaGFuZ2VzIGFyZSBjbGVhbiBhbmQgZG9uJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zLiBUaGV5J3JlIHJlbmFtaW5nIGEgYnVuY2ggb2YgYG10MjcxMl9gIGFuZCBgbXQ4MTk1X2AgZnVuY3Rpb25zIHRvIGEgYHYxYCBhbmQgYHYyYCBzY2hlbWUsIGFuZCB0aGVuIHVzaW5nIHRoZSBgdjJgIHZlcnNpb25zIGZvciB0aGlzIG5ldyBgbXQ4MTg5X2dtYWNfdmFyaWFudGAuXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gSSBldmVuICp0ZXN0KiB0aGlzIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudD8gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgYGR3bWFjLW1lZGlhdGVrLmNgLCBhbmQgdGhvc2UgYXJlIG9mdGVuIGEgcGFpbi4gUGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgU29DcyBsaWtlIHRoZSBNZWRpYVRlayBvbmVzIGFyZSB0eXBpY2FsbHkgbm90IHRlc3RhYmxlIGluIGdlbmVyaWMgUUVNVSwgdW5sZXNzIHRoZXJlJ3MgZGVkaWNhdGVkIG1hY2hpbmUgZW11bGF0aW9uIGZvciB0aGUgdGFyZ2V0IGhhcmR3YXJlLiBTbywgSSBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgZHJpdmVyIGNhbiBldmVuIGJlIHByb2JlZCBpbiBRRU1VIG9yIGlmIGl0J3Mgc3RyaWN0bHkgdGllZCB0byB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlIHRyZWUuXG5cblRoZSBkcml2ZXIgbWF0Y2hlcyBvbiB0aGUgdXN1YWwgTWVkaWFUZWsgR01BQyBJRHMgbGlrZSBgbWVkaWF0ZWssbXQ4MTg5LWdtYWNgLCBhbmQgc28gb24uIFVubGVzcyBJIGNhbiBpbmplY3QgYSBkZXZpY2UgdHJlZSBub2RlIGludG8gdGhlIGVudmlyb25tZW50LCBvciBRRU1VIGhhcyAqc3BlY2lmaWMqIGVtdWxhdGlvbiBmb3IgdGhpcyBNZWRpYVRlayBib2FyZCAod2hpY2ggaXMgdW5saWtlbHkpLCBpdCdzIHByb2JhYmx5IHVucmVhY2hhYmxlLlxuXG5Ob3csIHdhaXQsIGNvdWxkIEkgdXNlIHNvbWV0aGluZyBsaWtlIHN5emthbGxlcj8gU3l6a2FsbGVyICpjYW4qIGluamVjdCBwbGF0Zm9ybSBkZXZpY2VzIHVzaW5nIGBzeXpfZGV2X3BsYXRmb3JtX2FkZGAgb3IgYnkgbWFuaXB1bGF0aW5nIHRoZSBkZXZpY2UgdHJlZSwgYnV0IG1vc3QgcGxhdGZvcm0gZHJpdmVycyBsaWtlIHRoaXMgdGhhdCBNTUlPIHRvIHNwZWNpZmljIHBoeXNpY2FsIGFkZHJlc3NlcyB3b3VsZCBjcmFzaCBvciBqdXN0IGZhaWwgdG8gcHJvYmUgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlIHByZXNlbnQgdW5sZXNzLCBvZiBjb3Vyc2UsIHRoZSByZWdpc3RlcnMgYXJlIG1vY2tlZC4gQW5kIEkndmUgZm91bmQgaW4gdGhlIHBhc3QgdGhhdCB3aGlsZSBzeXprYWxsZXIgaGFzIHBzZXVkby1kZXZpY2VzIGZvciAqc29tZSogdGhpbmdzLCByYW5kb20gU29DIGV0aGVybmV0IE1BQ3MgYXJlIHVzdWFsbHkganVzdCBhIG5vLWdvIGZvciBwcm9iaW5nLlxuXG5TbywgaXMgaXQgZnV6emFibGU/IFByb2JhYmx5IG5vdCwgYXQgbGVhc3Qgbm90IGluIGFueSBzZW5zaWJsZSB3YXkuIFVubGVzcyBpdCdzIGEgVVNCIG9yIFBDSSBkZXZpY2UgdGhhdCBjYW4gYmUgZW11bGF0ZWQgKHdpdGggYSBkdW1teSBIQ0Qgb3IgUENJIGVtdWxhdGlvbiksIG9yIGlzIGEgKnZpcnR1YWwqIGRyaXZlciwgSSdtIGdvaW5nIHRvIGNvbnNpZGVyIGl0IHVucmVhY2hhYmxlIGZvciB0aGUgdGltZSBiZWluZy4gR2VuZXJhbGx5LCB0aGVzZSBTb0Mtc3BlY2lmaWMgRXRoZXJuZXQgTUFDIGRyaXZlcnMgYXJlIG5vdCBmdXp6YWJsZSBpbiB4ODYgVk1zLiBJIHNob3VsZCBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGBkd21hYy1tZWRpYXRlay5jYCBpcyB0aWVkIHRvIGBDT05GSUdfRFdNQUNfTUVESUFURUtgLiBJdCdzIHdvcnRoIHZlcmlmeWluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjkyNSwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc2MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjUyLjM4MDc0NzMxM1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTQ4MDczMDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEV01BQ19NRURJQVRFS1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEwNj1jb25maWcgRFdNQUNfTFBDMThYWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMTQ6Y29uZmlnIERXTUFDX01FRElBVEVLXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTUtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UMjd4eCBHTUFDIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjU1LjMyODgyNTkwNFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1MTUwNTg1NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqQXNzZXNzaW5nIERlcGVuZGVuY2llcyBmb3IgYERXTUFDX01FRElBVEVLYCoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBgRFdNQUNfTUVESUFURUtgIG1vZHVsZSBhbmQgbWFwIG91dCBpdHMgbGFuZHNjYXBlLiBJIG5lZWQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIGl0cyBkZXBlbmRlbmNpZXMuIFRoaXMgaXMgY3JpdGljYWwgZm9yIGV2ZXJ5dGhpbmcgZnJvbSB0cm91Ymxlc2hvb3RpbmcgaW50ZWdyYXRpb24gaXNzdWVzIHRvIHByZWRpY3RpbmcgdGhlIGltcGFjdCBvZiBwb3RlbnRpYWwgbW9kaWZpY2F0aW9ucyBkb3duIHRoZSBsaW5lLiBXZSBjYW4ndCBhZmZvcmQgdG8gaGF2ZSBhIGNhc2NhZGUgb2YgdW5leHBlY3RlZCBiZWhhdmlvci5cblxuU28sIEknbSB0aGlua2luZywgd2hlcmUgZG8gd2Ugc3RhcnQ/IEkgbmVlZCB0byBrbm93OiB3aGF0IG90aGVyIG1vZHVsZXMgb3IgbGlicmFyaWVzIGRvZXMgYERXTUFDX01FRElBVEVLYCByZWx5IG9uPyBBcmUgdGhlc2UgaW50ZXJuYWwgY29tcG9uZW50cywgc3BlY2lmaWMgdG8gdGhlIE1lZGlhVGVrIHBsYXRmb3JtLCBvciBhcmUgd2UgZGVhbGluZyB3aXRoIGV4dGVybmFsIGxpYnJhcmllcz8gV2hhdCB2ZXJzaW9uIGNvbnRyb2wgaXMgaW4gcGxhY2UgZm9yIHRoZXNlIGRlcGVuZGVuY2llcz8gQXJlIHRoZXkgbG9ja2VkIHRvIHNwZWNpZmljIHZlcnNpb25zLCBvciBkbyB3ZSBoYXZlIGEgcmFuZ2Ugd2UgY2FuIHdvcmsgd2l0aD8gQXJlIHRoZXJlIGtub3duIGNvbXBhdGliaWxpdHkgaXNzdWVzIGJldHdlZW4gdGhlIG1vZHVsZSBhbmQgYW55IG9mIGl0cyBkZXBlbmRlbmNpZXM/IEhhdmUgdGhlcmUgYmVlbiByZXBvcnRzIG9mIGluc3RhYmlsaXR5IGluIGNlcnRhaW4gZGVwZW5kZW5jeSB2ZXJzaW9ucz9cblxuSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGludGVyZmFjZXMuIEhvdyBkb2VzIGBEV01BQ19NRURJQVRFS2AgaW50ZXJhY3Qgd2l0aCB0aGVzZSBjb21wb25lbnRzPyBJcyBpdCB0aHJvdWdoIGRpcmVjdCBmdW5jdGlvbiBjYWxscywgbWVzc2FnZSBwYXNzaW5nLCBvciBzb21lIG90aGVyIG1lY2hhbmlzbT8gQXJlIHRoZXJlIGFueSBzaGFyZWQgcmVzb3VyY2VzLCBsaWtlIG1lbW9yeSByZWdpb25zLCB0aGF0IG1pZ2h0IHJlcXVpcmUgY2FyZWZ1bCBzeW5jaHJvbml6YXRpb24/IFdoYXQga2luZCBvZiB0ZXN0aW5nIGFuZCB2YWxpZGF0aW9uIGlzIGluIHBsYWNlIHRvIGVuc3VyZSB0aGVzZSBkZXBlbmRlbmNpZXMgYXJlIHByb3Blcmx5IG1hbmFnZWQ/XG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIHNwZWNpZmljcy4gV2UgbmVlZCB0byBnYXRoZXIgdGhpcyBpbmZvcm1hdGlvbiB0byBidWlsZCBhIHNvbGlkIGZvdW5kYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg0MTMsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxNTo0NTo1OS44NDM4ODU5NDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTY5NzIwMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvbi4qQVJDSF9NRURJQVRFS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE1LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDI3eHggR01BQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTE2OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfTUVESUFURUsgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE3LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMTU6NDU6NTkuOTAwODYyNTIxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzk5OTUxNDY0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBwYXRjaCBpc24ndCBnb2luZyB0byBiZSBmcnVpdGZ1bCBmb3IgZnV6emluZyBpbiBhIHN0YW5kYXJkIHNldHVwLiBUaGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gKGBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVGApIGlzIGEgZGVhZCBnaXZlYXdheS4gU2luY2UgdGhpcyBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgZm9yIE1lZGlhVGVrIFNvQ3MsIGl0J3MgdmlydHVhbGx5IGltcG9zc2libGUgdG8gcmVhY2ggaW4geW91ciBhdmVyYWdlIHg4NiBRRU1VIFZNLiBJdCBoaW5nZXMgb24gaGF2aW5nIHRoZSBjb3JyZWN0IGRldmljZSB0cmVlIG5vZGVzIGRlZmluZWQgYW5kIHRoZSBjb3JyZWN0IHBoeXNpY2FsIE1NSU8gcmVnaXN0ZXJzIG1hcHBlZCwgdGhpbmdzIHRoYXQganVzdCBhcmVuJ3QgZ29pbmcgdG8gaGFwcGVuIGluIGEgZ2VuZXJpYyB2aXJ0dWFsIGVudmlyb25tZW50LiBFdmVuIGlmIHlvdSB0cmllZCB0byBmYWtlIGl0IGJ5IGluamVjdGluZyBhIGRldmljZSB0cmVlIG5vZGUsIGVpdGhlciBgZGV2bV9yZWdtYXBfaW5pdGAgb3IgYHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGVgIGlzIGdvaW5nIHRvIGZhaWwsIG9yIGFueSBhdHRlbXB0ZWQgTU1JTyBhY2Nlc3Mgd2lsbCBmYXVsdCwgZG8gbm90aGluZywgb3Igc2ltcGx5IG5vdCBiZSByZWFjaGFibGUgYmVjYXVzZSB0aGUgaGFyZHdhcmUgZG9lc24ndCBleGlzdC5cblxuTGV0J3MgcXVpY2tseSBjb25maXJtIHRoZXJlJ3Mgbm8gZ2VuZXJpYyBsb2dpYyB0aGF0ICpjb3VsZCogYmUgZXhlcmNpc2VkLiBBaCwgbm9wZS4gTG9va3MgbGlrZSB0aGUgcGF0Y2gncyBjaGFuZ2VzIGNvbnNpc3Qgb2YgYWRkaW5nIGEgbmV3IHZhcmlhbnQgc3RydWN0dXJlLCBzb21lIGZ1bmN0aW9uIHJlbmFtaW5nLCBhbmQgYSBoYW5kZnVsIG9mIGJpdHdpc2Ugb3BlcmF0aW9ucyBmb3IgdGhlIG5ldyB2YXJpYW50LiBJdCdzIHB1cmUgaGFyZHdhcmUgZW5hYmxlbWVudCwgZXNzZW50aWFsbHkgdGFpbG9yaW5nIHRoZSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgU29DLiBJdCdzIG5vdCBleHBvc2luZyBnZW5lcmljIGZ1bmN0aW9uYWxpdHkuXG5cblRoZXJlZm9yZSwgSSdtIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByYXRpb25hbGUgaXMgc3RyYWlnaHRmb3J3YXJkOiBUaGlzIHBhdGNoIGludHJvZHVjZXMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DLCB0aGUgTVQ4MTg5LCB3aXRoaW4gdGhlIGR3bWFjLW1lZGlhdGVrIHBsYXRmb3JtIGRyaXZlci4gSXQncyBlbnRpcmVseSBoYXJkd2FyZS1zcGVjaWZpYyBjb2RlIHRoYXQgZGVwZW5kcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgcGFydGljdWxhciBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9ucy4gVGhpcyBtZWFucyB0aGF0IGV4ZWN1dGluZyBvciByZWFjaGluZyBpdCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIGlzIGVzc2VudGlhbGx5IG1lYW5pbmdsZXNzLiBBbnkgZnV6emluZyBhdHRlbXB0cyB3b3VsZCBiZSBmcnVpdGxlc3MgYmVjYXVzZSB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBkZXBlbmRlbmNpZXMgYXJlIHNpbXBseSBub3QgcHJlc2VudC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODkyMCwiT3V0cHV0VG9rZW5zIjo5NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxNTo0NjowNy45MDAzNzg3NjZaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMDQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DIChNVDgxODkpIHRvIHRoZSBkd21hYy1tZWRpYXRlayBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IHJlbGllcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgc3BlY2lmaWMgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZXhlY3V0ZWQgb3IgcmVhY2hlZCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBNZWRpYVRlayBTb0MgKE1UODE4OSkgdG8gdGhlIGR3bWFjLW1lZGlhdGVrIHBsYXRmb3JtIGRyaXZlci4gVGhpcyBpcyBoYXJkd2FyZS1zcGVjaWZpYyBjb2RlIHRoYXQgcmVsaWVzIG9uIHBoeXNpY2FsIE1NSU8gcmVnaXN0ZXJzIGFuZCBzcGVjaWZpYyBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9ucywgd2hpY2ggY2Fubm90IGJlIG1lYW5pbmdmdWxseSBleGVjdXRlZCBvciByZWFjaGVkIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfhx6w[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-07 15:33:11 +0000 UTC FinishedAt: 2026-07-07 15:46:09 +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+CgkJCTx0ZD4yMDI2LzA3LzA3IDE1OjQ1PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DIChNVDgxODkpIHRvIHRoZSBkd21hYy1tZWRpYXRlayBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IHJlbGllcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgc3BlY2lmaWMgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZXhlY3V0ZWQgb3IgcmVhY2hlZCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxNTo0NTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDlkOTRmMDVlMTMyZmMxNzY0ODQ1NDBmMWExNmExNjA5MGFmMjdjYjZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCA3IDE1OjQ1OjMxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbFxuaW5kZXggM2FhYjIxYjhlOGRlNWIuLjAwMGFiZWMwMjNiMzE0IDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sXG4mIzQzOyYjNDM7JiM0MzsgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWxcbkBAIC0yMCwxMyAmIzQzOzIwLDExIEBAIHNlbGVjdDpcbiAgICAgICAgIGVudW06XG4gICAgICAgICAgIC0gbWVkaWF0ZWssbXQyNzEyLWdtYWNcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODgtZ21hY1xuJiM0MzsgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODktZ21hY1xuICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXG4gICByZXF1aXJlZDpcbiAgICAgLSBjb21wYXRpYmxlXG4gXG4tYWxsT2Y6XG4tICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbi1cbiBwcm9wZXJ0aWVzOlxuICAgY29tcGF0aWJsZTpcbiAgICAgb25lT2Y6XG5AQCAtMzYsNiAmIzQzOzM0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbiYjNDM7ICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OS1nbWFjXG4gICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4xMGFcbiAgICAgICAtIGl0ZW1zOlxuQEAgLTQ0LDI2ICYjNDM7NDMsNiBAQCBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAtIGNvbnN0OiBtZWRpYXRlayxtdDgxOTUtZ21hY1xuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXG4gXG4tICBjbG9ja3M6XG4tICAgIG1pbkl0ZW1zOiA1XG4tICAgIGl0ZW1zOlxuLSAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBjbG9ja1xuLSAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBjbG9ja1xuLSAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBNYWluIGNsb2NrXG4tICAgICAgLSBkZXNjcmlwdGlvbjogUFRQIGNsb2NrXG4tICAgICAgLSBkZXNjcmlwdGlvbjogUk1JSSByZWZlcmVuY2UgY2xvY2sgcHJvdmlkZWQgYnkgTUFDXG4tICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIGNsb2NrIGdhdGVcbi1cbi0gIGNsb2NrLW5hbWVzOlxuLSAgICBtaW5JdGVtczogNVxuLSAgICBpdGVtczpcbi0gICAgICAtIGNvbnN0OiBheGlcbi0gICAgICAtIGNvbnN0OiBhcGJcbi0gICAgICAtIGNvbnN0OiBtYWNfbWFpblxuLSAgICAgIC0gY29uc3Q6IHB0cF9yZWZcbi0gICAgICAtIGNvbnN0OiBybWlpX2ludGVybmFsXG4tICAgICAgLSBjb25zdDogbWFjX2NnXG4tXG4gICBpbnRlcnJ1cHRzOlxuICAgICBtYXhJdGVtczogMVxuIFxuQEAgLTE0Nyw2ICYjNDM7MTI2LDU4IEBAIHJlcXVpcmVkOlxuICAgLSBwaHktbW9kZVxuICAgLSBtZWRpYXRlayxwZXJpY2ZnXG4gXG4mIzQzO2FsbE9mOlxuJiM0MzsgIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xuJiM0MzsgIC0gaWY6XG4mIzQzOyAgICAgIHByb3BlcnRpZXM6XG4mIzQzOyAgICAgICAgY29tcGF0aWJsZTpcbiYjNDM7ICAgICAgICAgIGNvbnRhaW5zOlxuJiM0MzsgICAgICAgICAgICBlbnVtOlxuJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQyNzEyLWdtYWNcbiYjNDM7ICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OC1nbWFjXG4mIzQzOyAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxOTUtZ21hY1xuJiM0MzsgICAgdGhlbjpcbiYjNDM7ICAgICAgcHJvcGVydGllczpcbiYjNDM7ICAgICAgICBjbG9ja3M6XG4mIzQzOyAgICAgICAgICBtaW5JdGVtczogNVxuJiM0MzsgICAgICAgICAgaXRlbXM6XG4mIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBjbG9ja1xuJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBBUEIgY2xvY2tcbiYjNDM7ICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2tcbiYjNDM7ICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogUFRQIGNsb2NrXG4mIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQ1xuJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgY2xvY2sgZ2F0ZVxuJiM0MztcbiYjNDM7ICAgICAgICBjbG9jay1uYW1lczpcbiYjNDM7ICAgICAgICAgIG1pbkl0ZW1zOiA1XG4mIzQzOyAgICAgICAgICBpdGVtczpcbiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogYXhpXG4mIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IGFwYlxuJiM0MzsgICAgICAgICAgICAtIGNvbnN0OiBtYWNfbWFpblxuJiM0MzsgICAgICAgICAgICAtIGNvbnN0OiBwdHBfcmVmXG4mIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWxcbiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogbWFjX2NnXG4mIzQzO1xuJiM0MzsgIC0gaWY6XG4mIzQzOyAgICAgIHByb3BlcnRpZXM6XG4mIzQzOyAgICAgICAgY29tcGF0aWJsZTpcbiYjNDM7ICAgICAgICAgIGNvbnRhaW5zOlxuJiM0MzsgICAgICAgICAgICBlbnVtOlxuJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWNcbiYjNDM7ICAgIHRoZW46XG4mIzQzOyAgICAgIHByb3BlcnRpZXM6XG4mIzQzOyAgICAgICAgY2xvY2tzOlxuJiM0MzsgICAgICAgICAgaXRlbXM6XG4mIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBNYWluIGNsb2NrXG4mIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9ja1xuJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBSTUlJIHJlZmVyZW5jZSBjbG9jayBwcm92aWRlZCBieSBNQUNcbiYjNDM7XG4mIzQzOyAgICAgICAgY2xvY2stbmFtZXM6XG4mIzQzOyAgICAgICAgICBpdGVtczpcbiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogbWFjX21haW5cbiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogcHRwX3JlZlxuJiM0MzsgICAgICAgICAgICAtIGNvbnN0OiBybWlpX2ludGVybmFsXG4mIzQzO1xuIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2VcbiBcbiBleGFtcGxlczpcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuY1xuaW5kZXggMzBhZTBkYmE3ZmZmZGIuLmU3ZTMzNmIxZjExNGM0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuY1xuQEAgLTM2LDggJiM0MzszNiwxNiBAQFxuICNkZWZpbmUgRVRIX0ZJTkVfRExZX0dUWENcdEJJVCgxKVxuICNkZWZpbmUgRVRIX0ZJTkVfRExZX1JYQ1x0QklUKDApXG4gXG4mIzQzOy8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTg5ICovXG4mIzQzOyNkZWZpbmUgTVQ4MTg5X1BFUklfRVRIX0NUUkxfQkFTRVx0XHQweDI3MFxuJiM0MztcbiYjNDM7I2RlZmluZSBNVDgxODlfQ1RSTDBfVFhDX09VVF9PUFx0XHRcdEJJVCgyMClcbiYjNDM7I2RlZmluZSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORVx0R0VOTUFTSygxMSwgNilcbiYjNDM7XG4gLyogUGVyaSBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIGZvciBtdDgxOTUgKi9cbi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMFx0XHQweEZEMFxuJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMX0JBU0VcdDB4RkQwXG4mIzQzO1xuJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMFx0XHQweDBcbiAjZGVmaW5lIE1UODE5NV9STUlJX0NMS19TUkNfSU5URVJOQUxcdEJJVCgyOClcbiAjZGVmaW5lIE1UODE5NV9STUlJX0NMS19TUkNfUlhDXHRcdEJJVCgyNylcbiAjZGVmaW5lIE1UODE5NV9FVEhfSU5URl9TRUxcdFx0R0VOTUFTSygyNiwgMjQpXG5AQCAtNDcsNyAmIzQzOzU1LDcgQEBcbiAjZGVmaW5lIE1UODE5NV9ETFlfR1RYQ19FTkFCTEVcdFx0QklUKDUpXG4gI2RlZmluZSBNVDgxOTVfRExZX0dUWENfU1RBR0VTXHRcdEdFTk1BU0soNCwgMClcbiBcbi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMVx0XHQweEZENFxuJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMVx0XHQweDRcbiAjZGVmaW5lIE1UODE5NV9ETFlfUlhDX0lOVlx0XHRCSVQoMjUpXG4gI2RlZmluZSBNVDgxOTVfRExZX1JYQ19FTkFCTEVcdFx0QklUKDE4KVxuICNkZWZpbmUgTVQ4MTk1X0RMWV9SWENfU1RBR0VTXHRcdEdFTk1BU0soMTcsIDEzKVxuQEAgLTU1LDcgJiM0Mzs2Myw3IEBAXG4gI2RlZmluZSBNVDgxOTVfRExZX1RYQ19FTkFCTEVcdFx0QklUKDUpXG4gI2RlZmluZSBNVDgxOTVfRExZX1RYQ19TVEFHRVNcdFx0R0VOTUFTSyg0LCAwKVxuIFxuLSNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwyXHRcdDB4RkQ4XG4mIzQzOyNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwyXHRcdDB4OFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19JTlZcdFx0QklUKDI1KVxuICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19FTkFCTEVcdEJJVCgxOClcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfU1RBR0VTXHRHRU5NQVNLKDE3LCAxMylcbkBAIC05NSw3ICYjNDM7MTAzLDEwIEBAIHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IHtcbiBcbiBcdHUzMiByeF9kZWxheV9tYXg7XG4gXHR1MzIgdHhfZGVsYXlfbWF4O1xuJiM0MztcdHUzMiBwZXJpX2V0aF9jdHJsX29mZnNldDtcbiBcdHU4IGRtYV9iaXRfbWFzaztcbiYjNDM7XHRib29sIHVzZV9vdXRfb3A7XG4mIzQzO1x0Ym9vbCB1c2Vfc3RhZ2VfZmluZTtcbiB9O1xuIFxuIC8qIGxpc3Qgb2YgY2xvY2tzIHJlcXVpcmVkIGZvciBtYWMgKi9cbkBAIC0xMDcsNyAmIzQzOzExOCwxMSBAQCBzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG10ODE5NV9kd21hY19jbGtfbFtdID0ge1xuIFx0XCYjMzQ7YXhpXCYjMzQ7LCBcJiMzNDthcGJcJiMzNDssIFwmIzM0O21hY19jZ1wmIzM0OywgXCYjMzQ7bWFjX21haW5cJiMzNDssIFwmIzM0O3B0cF9yZWZcJiMzNDtcbiB9O1xuIFxuLXN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcbiYjNDM7c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtdDgxODlfZHdtYWNfY2xrX2xbXSA9IHtcbiYjNDM7XHRcJiMzNDttYWNfbWFpblwmIzM0OywgXCYjMzQ7cHRwX3JlZlwmIzM0O1xuJiM0Mzt9O1xuJiM0MztcbiYjNDM7c3RhdGljIGludCBzZXRfcGh5X2ludGVyZmFjZV92MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0XHRcdFx0dTggcGh5X2ludGZfc2VsKVxuIHtcbiBcdHUzMiBpbnRmX3ZhbCA9IHBoeV9pbnRmX3NlbDtcbkBAIC0xMjQsNyAmIzQzOzEzOSw3IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcbiBcdHJldHVybiAwO1xuIH1cbiBcbi1zdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiYjNDM7c3RhdGljIHZvaWQgZGVsYXlfcHMyc3RhZ2VfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiB7XG4gXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXHUwMDI2cGxhdC1cdTAwM2VtYWNfZGVsYXk7XG4gXG5AQCAtMTQ5LDcgJiM0MzsxNjQsNyBAQCBzdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdH1cbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4mIzQzO3N0YXRpYyB2b2lkIGRlbGF5X3N0YWdlMnBzX3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFxuQEAgLTE3NCwxMiAmIzQzOzE4OSwxMiBAQCBzdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfc3RhZ2UycHMoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdH1cbiB9XG4gXG4tc3RhdGljIGludCBtdDI3MTJfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4mIzQzO3N0YXRpYyBpbnQgc2V0X2RlbGF5X3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFx0dTMyIGRlbGF5X3ZhbCA9IDAsIGZpbmVfdmFsID0gMDtcbiBcbi1cdG10MjcxMl9kZWxheV9wczJzdGFnZShwbGF0KTtcbiYjNDM7XHRkZWxheV9wczJzdGFnZV92MShwbGF0KTtcbiBcbiBcdHN3aXRjaCAocGxhdC1cdTAwM2VwaHlfbW9kZSkge1xuIFx0Y2FzZSBQSFlfSU5URVJGQUNFX01PREVfTUlJOlxuQEAgLTI1OCwxNCAmIzQzOzI3MywxNCBAQCBzdGF0aWMgaW50IG10MjcxMl9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdHJlZ21hcF93cml0ZShwbGF0LVx1MDAzZXBlcmlfcmVnbWFwLCBQRVJJX0VUSF9ETFksIGRlbGF5X3ZhbCk7XG4gXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgUEVSSV9FVEhfRExZX0ZJTkUsIGZpbmVfdmFsKTtcbiBcbi1cdG10MjcxMl9kZWxheV9zdGFnZTJwcyhwbGF0KTtcbiYjNDM7XHRkZWxheV9zdGFnZTJwc192MShwbGF0KTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcbi1cdFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gbXQyNzEyX3NldF9pbnRlcmZhY2UsXG4tXHRcdC5kd21hY19zZXRfZGVsYXkgPSBtdDI3MTJfc2V0X2RlbGF5LFxuJiM0MztcdFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjEsXG4mIzQzO1x0XHQuZHdtYWNfc2V0X2RlbGF5ID0gc2V0X2RlbGF5X3YxLFxuIFx0XHQuY2xrX2xpc3QgPSBtdDI3MTJfZHdtYWNfY2xrX2wsXG4gXHRcdC5udW1fY2xrcyA9IEFSUkFZX1NJWkUobXQyNzEyX2R3bWFjX2Nsa19sKSxcbiBcdFx0LnJ4X2RlbGF5X21heCA9IDE3NjAwLFxuQEAgLTI3MywxMCAmIzQzOzI4OCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcbiBcdFx0LmRtYV9iaXRfbWFzayA9IDMzLFxuIH07XG4gXG4tc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuJiM0MztzdGF0aWMgaW50IHNldF9waHlfaW50ZXJmYWNlX3YyKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQsXG4gXHRcdFx0XHR1OCBwaHlfaW50Zl9zZWwpXG4ge1xuIFx0dTMyIGludGZfdmFsID0gRklFTERfUFJFUChNVDgxOTVfRVRIX0lOVEZfU0VMLCBwaHlfaW50Zl9zZWwpO1xuJiM0MztcdHUzMiByZWdfb2Zmc2V0ID0gcGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXBlcmlfZXRoX2N0cmxfb2Zmc2V0O1xuIFxuIFx0aWYgKHBoeV9pbnRmX3NlbCA9PSBQSFlfSU5URl9TRUxfUk1JSSkge1xuIFx0XHRpZiAocGxhdC1cdTAwM2VybWlpX2Nsa19mcm9tX21hYylcbkBAIC0yODgsMTIgJiM0MzszMDQsMTcgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0LyogTVQ4MTk1IG9ubHkgc3VwcG9ydCBleHRlcm5hbCBQSFkgKi9cbiBcdGludGZfdmFsIHw9IE1UODE5NV9FWFRfUEhZX01PREU7XG4gXG4tXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLCBpbnRmX3ZhbCk7XG4mIzQzO1x0aWYgKHBsYXQtXHUwMDNldmFyaWFudC1cdTAwM2V1c2Vfb3V0X29wKVxuJiM0MztcdFx0aW50Zl92YWwgfD0gTVQ4MTg5X0NUUkwwX1RYQ19PVVRfT1A7XG4mIzQzO1xuJiM0MztcdHJlZ21hcF93cml0ZShwbGF0LVx1MDAzZXBlcmlfcmVnbWFwLFxuJiM0MztcdFx0ICAgICByZWdfb2Zmc2V0ICYjNDM7IE1UODE5NV9QRVJJX0VUSF9DVFJMMCxcbiYjNDM7XHRcdCAgICAgaW50Zl92YWwpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIG10ODE5NV9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuJiM0MztzdGF0aWMgdm9pZCBkZWxheV9wczJzdGFnZV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIHtcbiBcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcdTAwMjZwbGF0LVx1MDAzZW1hY19kZWxheTtcbiBcbkBAIC0zMDIsNyAmIzQzOzMyMyw3IEBAIHN0YXRpYyB2b2lkIG10ODE5NV9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIFx0bWFjX2RlbGF5LVx1MDAzZXJ4X2RlbGF5IC89IDI5MDtcbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4mIzQzO3N0YXRpYyB2b2lkIGRlbGF5X3N0YWdlMnBzX3YyKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFxuQEAgLTMxMSwxMiAmIzQzOzMzMiwxNiBAQCBzdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfc3RhZ2UycHMoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdG1hY19kZWxheS1cdTAwM2VyeF9kZWxheSAqPSAyOTA7XG4gfVxuIFxuLXN0YXRpYyBpbnQgbXQ4MTk1X3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuJiM0MztzdGF0aWMgaW50IHNldF9kZWxheV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIHtcbiBcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcdTAwMjZwbGF0LVx1MDAzZW1hY19kZWxheTtcbi1cdHUzMiBndHhjX2RlbGF5X3ZhbCA9IDAsIGRlbGF5X3ZhbCA9IDAsIHJtaWlfZGVsYXlfdmFsID0gMDtcbiYjNDM7XHR1MzIgcmVnX29mZnNldCA9IHBsYXQtXHUwMDNldmFyaWFudC1cdTAwM2VwZXJpX2V0aF9jdHJsX29mZnNldDtcbiYjNDM7XHR1MzIgZ3R4Y19kZWxheV9tYXNrID0gMDtcbiYjNDM7XHR1MzIgZ3R4Y19kZWxheV92YWwgPSAwO1xuJiM0MztcdHUzMiBybWlpX2RlbGF5X3ZhbCA9IDA7XG4mIzQzO1x0dTMyIGRlbGF5X3ZhbCA9IDA7XG4gXG4tXHRtdDgxOTVfZGVsYXlfcHMyc3RhZ2UocGxhdCk7XG4mIzQzO1x0ZGVsYXlfcHMyc3RhZ2VfdjIocGxhdCk7XG4gXG4gXHRzd2l0Y2ggKHBsYXQtXHUwMDNlcGh5X21vZGUpIHtcbiBcdGNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX01JSTpcbkBAIC0zODgsNiAmIzQzOzQxMyw5IEBAIHN0YXRpYyBpbnQgbXQ4MTk1X3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIFx0XHRndHhjX2RlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfR1RYQ19TVEFHRVMsIG1hY19kZWxheS1cdTAwM2V0eF9kZWxheSk7XG4gXHRcdGd0eGNfZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9HVFhDX0lOViwgbWFjX2RlbGF5LVx1MDAzZXR4X2ludik7XG4gXG4mIzQzO1x0XHRpZiAocGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXVzZV9zdGFnZV9maW5lKVxuJiM0MztcdFx0XHRndHhjX2RlbGF5X3ZhbCB8PSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORTtcbiYjNDM7XG4gXHRcdGRlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfUlhDX0VOQUJMRSwgISFtYWNfZGVsYXktXHUwMDNlcnhfZGVsYXkpO1xuIFx0XHRkZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX1JYQ19TVEFHRVMsIG1hY19kZWxheS1cdTAwM2VyeF9kZWxheSk7XG4gXHRcdGRlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfUlhDX0lOViwgbWFjX2RlbGF5LVx1MDAzZXJ4X2ludik7XG5AQCAtMzk4LDI5ICYjNDM7NDI2LDUyIEBAIHN0YXRpYyBpbnQgbXQ4MTk1X3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbiBcbiYjNDM7XHRndHhjX2RlbGF5X21hc2sgPSBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfFxuJiM0MztcdFx0XHQgIE1UODE5NV9ETFlfR1RYQ19JTlYgfFxuJiM0MztcdFx0XHQgIE1UODE5NV9ETFlfR1RYQ19FTkFCTEUgfFxuJiM0MztcdFx0XHQgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVM7XG4mIzQzO1xuJiM0MztcdGlmIChwbGF0LVx1MDAzZXZhcmlhbnQtXHUwMDNldXNlX3N0YWdlX2ZpbmUpXG4mIzQzO1x0XHRndHhjX2RlbGF5X21hc2sgfD0gTVQ4MTg5X0NUUkwwX0RMWV9HVFhDX1NUQUdFX0ZJTkU7XG4mIzQzO1xuIFx0cmVnbWFwX3VwZGF0ZV9iaXRzKHBsYXQtXHUwMDNlcGVyaV9yZWdtYXAsXG4tXHRcdFx0ICAgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLFxuLVx0XHRcdCAgIE1UODE5NV9SR01JSV9UWENfUEhBU0VfQ1RSTCB8XG4tXHRcdFx0ICAgTVQ4MTk1X0RMWV9HVFhDX0lOViB8XG4tXHRcdFx0ICAgTVQ4MTk1X0RMWV9HVFhDX0VOQUJMRSB8XG4tXHRcdFx0ICAgTVQ4MTk1X0RMWV9HVFhDX1NUQUdFUyxcbiYjNDM7XHRcdFx0ICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsXG4mIzQzO1x0XHRcdCAgIGd0eGNfZGVsYXlfbWFzayxcbiBcdFx0XHQgICBndHhjX2RlbGF5X3ZhbCk7XG4tXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwxLCBkZWxheV92YWwpO1xuLVx0cmVnbWFwX3dyaXRlKHBsYXQtXHUwMDNlcGVyaV9yZWdtYXAsIE1UODE5NV9QRVJJX0VUSF9DVFJMMiwgcm1paV9kZWxheV92YWwpO1xuJiM0MztcdHJlZ21hcF93cml0ZShwbGF0LVx1MDAzZXBlcmlfcmVnbWFwLFxuJiM0MztcdFx0ICAgICByZWdfb2Zmc2V0ICYjNDM7IE1UODE5NV9QRVJJX0VUSF9DVFJMMSxcbiYjNDM7XHRcdCAgICAgZGVsYXlfdmFsKTtcbiYjNDM7XHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCxcbiYjNDM7XHRcdCAgICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDIsXG4mIzQzO1x0XHQgICAgIHJtaWlfZGVsYXlfdmFsKTtcbiBcbi1cdG10ODE5NV9kZWxheV9zdGFnZTJwcyhwbGF0KTtcbiYjNDM7XHRkZWxheV9zdGFnZTJwc192MihwbGF0KTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiBcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10ODE4OV9nbWFjX3ZhcmlhbnQgPSB7XG4mIzQzO1x0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXG4mIzQzO1x0LmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MixcbiYjNDM7XHQuY2xrX2xpc3QgPSBtdDgxODlfZHdtYWNfY2xrX2wsXG4mIzQzO1x0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxODlfZHdtYWNfY2xrX2wpLFxuJiM0MztcdC5kbWFfYml0X21hc2sgPSAzNSxcbiYjNDM7XHQucnhfZGVsYXlfbWF4ID0gOTI4MCxcbiYjNDM7XHQudHhfZGVsYXlfbWF4ID0gOTI4MCxcbiYjNDM7XHQucGVyaV9ldGhfY3RybF9vZmZzZXQgPSBNVDgxODlfUEVSSV9FVEhfQ1RSTF9CQVNFLFxuJiM0MztcdC51c2Vfb3V0X29wID0gdHJ1ZSxcbiYjNDM7XHQudXNlX3N0YWdlX2ZpbmUgPSB0cnVlLFxuJiM0Mzt9O1xuJiM0MztcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQ4MTk1X2dtYWNfdmFyaWFudCA9IHtcbi1cdC5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IG10ODE5NV9zZXRfaW50ZXJmYWNlLFxuLVx0LmR3bWFjX3NldF9kZWxheSA9IG10ODE5NV9zZXRfZGVsYXksXG4mIzQzO1x0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXG4mIzQzO1x0LmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MixcbiBcdC5jbGtfbGlzdCA9IG10ODE5NV9kd21hY19jbGtfbCxcbiBcdC5udW1fY2xrcyA9IEFSUkFZX1NJWkUobXQ4MTk1X2R3bWFjX2Nsa19sKSxcbiBcdC5yeF9kZWxheV9tYXggPSA5MjgwLFxuIFx0LnR4X2RlbGF5X21heCA9IDkyODAsXG4gXHQuZG1hX2JpdF9tYXNrID0gMzUsXG4mIzQzO1x0LnBlcmlfZXRoX2N0cmxfb2Zmc2V0ID0gTVQ4MTk1X1BFUklfRVRIX0NUUkxfQkFTRSxcbiB9O1xuIFxuIHN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG5AQCAtNjYyLDYgJiM0Mzs3MTMsOCBAQCBzdGF0aWMgdm9pZCBtZWRpYXRla19kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZWRpYXRla19kd21hY19tYXRjaFtdID0ge1xuIFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10MjcxMi1nbWFjXCYjMzQ7LFxuIFx0ICAuZGF0YSA9IFx1MDAyNm10MjcxMl9nbWFjX3ZhcmlhbnQgfSxcbiYjNDM7XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7bWVkaWF0ZWssbXQ4MTg5LWdtYWNcJiMzNDssXG4mIzQzO1x0ICAuZGF0YSA9IFx1MDAyNm10ODE4OV9nbWFjX3ZhcmlhbnQgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDttZWRpYXRlayxtdDgxOTUtZ21hY1wmIzM0OyxcbiBcdCAgLmRhdGEgPSBcdTAwMjZtdDgxOTVfZ21hY192YXJpYW50IH0sXG4gXHR7IH1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxNTo0NTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGEgbmV3IE1lZGlhVGVrIFNvQyAoTVQ4MTg5KSB0byB0aGUgZHdtYWMtbWVkaWF0ZWsgcGxhdGZvcm0gZHJpdmVyLiBUaGlzIGlzIGhhcmR3YXJlLXNwZWNpZmljIGNvZGUgdGhhdCByZWxpZXMgb24gcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgYW5kIHNwZWNpZmljIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb25zLCB3aGljaCBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGV4ZWN1dGVkIG9yIHJlYWNoZWQgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDlkOTRmMDVlMTMyZmMxNzY0ODQ1NDBmMWExNmExNjA5MGFmMjdjYjYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEp1bCA3IDE1OjQ1OjMxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sCmluZGV4IDNhYWIyMWI4ZThkZTViLi4wMDBhYmVjMDIzYjMxNCAxMDA2NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sCiYjNDM7JiM0MzsmIzQzOyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbApAQCAtMjAsMTMgJiM0MzsyMCwxMSBAQCBzZWxlY3Q6CiAgICAgICAgIGVudW06CiAgICAgICAgICAgLSBtZWRpYXRlayxtdDI3MTItZ21hYwogICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg4LWdtYWMKJiM0MzsgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODktZ21hYwogICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWMKICAgcmVxdWlyZWQ6CiAgICAgLSBjb21wYXRpYmxlCiAKLWFsbE9mOgotICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCMKLQogcHJvcGVydGllczoKICAgY29tcGF0aWJsZToKICAgICBvbmVPZjoKQEAgLTM2LDYgJiM0MzszNCw3IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYQogICAgICAgLSBpdGVtczoKICAgICAgICAgICAtIGVudW06CiYjNDM7ICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OS1nbWFjCiAgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWMKICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhCiAgICAgICAtIGl0ZW1zOgpAQCAtNDQsMjYgJiM0Mzs0Myw2IEBAIHByb3BlcnRpZXM6CiAgICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ4MTk1LWdtYWMKICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhCiAKLSAgY2xvY2tzOgotICAgIG1pbkl0ZW1zOiA1Ci0gICAgaXRlbXM6Ci0gICAgICAtIGRlc2NyaXB0aW9uOiBBWEkgY2xvY2sKLSAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBjbG9jawotICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2sKLSAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9jawotICAgICAgLSBkZXNjcmlwdGlvbjogUk1JSSByZWZlcmVuY2UgY2xvY2sgcHJvdmlkZWQgYnkgTUFDCi0gICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgY2xvY2sgZ2F0ZQotCi0gIGNsb2NrLW5hbWVzOgotICAgIG1pbkl0ZW1zOiA1Ci0gICAgaXRlbXM6Ci0gICAgICAtIGNvbnN0OiBheGkKLSAgICAgIC0gY29uc3Q6IGFwYgotICAgICAgLSBjb25zdDogbWFjX21haW4KLSAgICAgIC0gY29uc3Q6IHB0cF9yZWYKLSAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWwKLSAgICAgIC0gY29uc3Q6IG1hY19jZwotCiAgIGludGVycnVwdHM6CiAgICAgbWF4SXRlbXM6IDEKIApAQCAtMTQ3LDYgJiM0MzsxMjYsNTggQEAgcmVxdWlyZWQ6CiAgIC0gcGh5LW1vZGUKICAgLSBtZWRpYXRlayxwZXJpY2ZnCiAKJiM0MzthbGxPZjoKJiM0MzsgIC0gJHJlZjogc25wcyxkd21hYy55YW1sIwomIzQzOyAgLSBpZjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY29tcGF0aWJsZToKJiM0MzsgICAgICAgICAgY29udGFpbnM6CiYjNDM7ICAgICAgICAgICAgZW51bToKJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQyNzEyLWdtYWMKJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg4LWdtYWMKJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWMKJiM0MzsgICAgdGhlbjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY2xvY2tzOgomIzQzOyAgICAgICAgICBtaW5JdGVtczogNQomIzQzOyAgICAgICAgICBpdGVtczoKJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBBWEkgY2xvY2sKJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBBUEIgY2xvY2sKJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgTWFpbiBjbG9jawomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9jawomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQwomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBjbG9jayBnYXRlCiYjNDM7CiYjNDM7ICAgICAgICBjbG9jay1uYW1lczoKJiM0MzsgICAgICAgICAgbWluSXRlbXM6IDUKJiM0MzsgICAgICAgICAgaXRlbXM6CiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogYXhpCiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogYXBiCiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogbWFjX21haW4KJiM0MzsgICAgICAgICAgICAtIGNvbnN0OiBwdHBfcmVmCiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogcm1paV9pbnRlcm5hbAomIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IG1hY19jZwomIzQzOwomIzQzOyAgLSBpZjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY29tcGF0aWJsZToKJiM0MzsgICAgICAgICAgY29udGFpbnM6CiYjNDM7ICAgICAgICAgICAgZW51bToKJiM0MzsgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWMKJiM0MzsgICAgdGhlbjoKJiM0MzsgICAgICBwcm9wZXJ0aWVzOgomIzQzOyAgICAgICAgY2xvY2tzOgomIzQzOyAgICAgICAgICBpdGVtczoKJiM0MzsgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgTWFpbiBjbG9jawomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9jawomIzQzOyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQwomIzQzOwomIzQzOyAgICAgICAgY2xvY2stbmFtZXM6CiYjNDM7ICAgICAgICAgIGl0ZW1zOgomIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IG1hY19tYWluCiYjNDM7ICAgICAgICAgICAgLSBjb25zdDogcHRwX3JlZgomIzQzOyAgICAgICAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWwKJiM0MzsKIHVuZXZhbHVhdGVkUHJvcGVydGllczogZmFsc2UKIAogZXhhbXBsZXM6CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYwppbmRleCAzMGFlMGRiYTdmZmZkYi4uZTdlMzM2YjFmMTE0YzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYwpAQCAtMzYsOCAmIzQzOzM2LDE2IEBACiAjZGVmaW5lIEVUSF9GSU5FX0RMWV9HVFhDCUJJVCgxKQogI2RlZmluZSBFVEhfRklORV9ETFlfUlhDCUJJVCgwKQogCiYjNDM7LyogUGVyaSBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIGZvciBtdDgxODkgKi8KJiM0MzsjZGVmaW5lIE1UODE4OV9QRVJJX0VUSF9DVFJMX0JBU0UJCTB4MjcwCiYjNDM7CiYjNDM7I2RlZmluZSBNVDgxODlfQ1RSTDBfVFhDX09VVF9PUAkJCUJJVCgyMCkKJiM0MzsjZGVmaW5lIE1UODE4OV9DVFJMMF9ETFlfR1RYQ19TVEFHRV9GSU5FCUdFTk1BU0soMTEsIDYpCiYjNDM7CiAvKiBQZXJpIENvbmZpZ3VyYXRpb24gcmVnaXN0ZXIgZm9yIG10ODE5NSAqLwotI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAJCTB4RkQwCiYjNDM7I2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTF9CQVNFCTB4RkQwCiYjNDM7CiYjNDM7I2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAJCTB4MAogI2RlZmluZSBNVDgxOTVfUk1JSV9DTEtfU1JDX0lOVEVSTkFMCUJJVCgyOCkKICNkZWZpbmUgTVQ4MTk1X1JNSUlfQ0xLX1NSQ19SWEMJCUJJVCgyNykKICNkZWZpbmUgTVQ4MTk1X0VUSF9JTlRGX1NFTAkJR0VOTUFTSygyNiwgMjQpCkBAIC00Nyw3ICYjNDM7NTUsNyBAQAogI2RlZmluZSBNVDgxOTVfRExZX0dUWENfRU5BQkxFCQlCSVQoNSkKICNkZWZpbmUgTVQ4MTk1X0RMWV9HVFhDX1NUQUdFUwkJR0VOTUFTSyg0LCAwKQogCi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMQkJMHhGRDQKJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMQkJMHg0CiAjZGVmaW5lIE1UODE5NV9ETFlfUlhDX0lOVgkJQklUKDI1KQogI2RlZmluZSBNVDgxOTVfRExZX1JYQ19FTkFCTEUJCUJJVCgxOCkKICNkZWZpbmUgTVQ4MTk1X0RMWV9SWENfU1RBR0VTCQlHRU5NQVNLKDE3LCAxMykKQEAgLTU1LDcgJiM0Mzs2Myw3IEBACiAjZGVmaW5lIE1UODE5NV9ETFlfVFhDX0VOQUJMRQkJQklUKDUpCiAjZGVmaW5lIE1UODE5NV9ETFlfVFhDX1NUQUdFUwkJR0VOTUFTSyg0LCAwKQogCi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMgkJMHhGRDgKJiM0MzsjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMgkJMHg4CiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfSU5WCQlCSVQoMjUpCiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfRU5BQkxFCUJJVCgxOCkKICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19TVEFHRVMJR0VOTUFTSygxNywgMTMpCkBAIC05NSw3ICYjNDM7MTAzLDEwIEBAIHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IHsKIAogCXUzMiByeF9kZWxheV9tYXg7CiAJdTMyIHR4X2RlbGF5X21heDsKJiM0MzsJdTMyIHBlcmlfZXRoX2N0cmxfb2Zmc2V0OwogCXU4IGRtYV9iaXRfbWFzazsKJiM0MzsJYm9vbCB1c2Vfb3V0X29wOwomIzQzOwlib29sIHVzZV9zdGFnZV9maW5lOwogfTsKIAogLyogbGlzdCBvZiBjbG9ja3MgcmVxdWlyZWQgZm9yIG1hYyAqLwpAQCAtMTA3LDcgJiM0MzsxMTgsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtdDgxOTVfZHdtYWNfY2xrX2xbXSA9IHsKIAkmIzM0O2F4aSYjMzQ7LCAmIzM0O2FwYiYjMzQ7LCAmIzM0O21hY19jZyYjMzQ7LCAmIzM0O21hY19tYWluJiMzNDssICYjMzQ7cHRwX3JlZiYjMzQ7CiB9OwogCi1zdGF0aWMgaW50IG10MjcxMl9zZXRfaW50ZXJmYWNlKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQsCiYjNDM7c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtdDgxODlfZHdtYWNfY2xrX2xbXSA9IHsKJiM0MzsJJiMzNDttYWNfbWFpbiYjMzQ7LCAmIzM0O3B0cF9yZWYmIzM0OwomIzQzO307CiYjNDM7CiYjNDM7c3RhdGljIGludCBzZXRfcGh5X2ludGVyZmFjZV92MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LAogCQkJCXU4IHBoeV9pbnRmX3NlbCkKIHsKIAl1MzIgaW50Zl92YWwgPSBwaHlfaW50Zl9zZWw7CkBAIC0xMjQsNyAmIzQzOzEzOSw3IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCwKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3BzMnN0YWdlKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiYjNDM7c3RhdGljIHZvaWQgZGVsYXlfcHMyc3RhZ2VfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIHsKIAlzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gJmFtcDtwbGF0LSZndDttYWNfZGVsYXk7CiAKQEAgLTE0OSw3ICYjNDM7MTY0LDcgQEAgc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3BzMnN0YWdlKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiAJfQogfQogCi1zdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfc3RhZ2UycHMoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKJiM0MztzdGF0aWMgdm9pZCBkZWxheV9zdGFnZTJwc192MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KQogewogCXN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSAmYW1wO3BsYXQtJmd0O21hY19kZWxheTsKIApAQCAtMTc0LDEyICYjNDM7MTg5LDEyIEBAIHN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9zdGFnZTJwcyhzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KQogCX0KIH0KIAotc3RhdGljIGludCBtdDI3MTJfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiYjNDM7c3RhdGljIGludCBzZXRfZGVsYXlfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIHsKIAlzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gJmFtcDtwbGF0LSZndDttYWNfZGVsYXk7CiAJdTMyIGRlbGF5X3ZhbCA9IDAsIGZpbmVfdmFsID0gMDsKIAotCW10MjcxMl9kZWxheV9wczJzdGFnZShwbGF0KTsKJiM0MzsJZGVsYXlfcHMyc3RhZ2VfdjEocGxhdCk7CiAKIAlzd2l0Y2ggKHBsYXQtJmd0O3BoeV9tb2RlKSB7CiAJY2FzZSBQSFlfSU5URVJGQUNFX01PREVfTUlJOgpAQCAtMjU4LDE0ICYjNDM7MjczLDE0IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KQogCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgUEVSSV9FVEhfRExZLCBkZWxheV92YWwpOwogCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgUEVSSV9FVEhfRExZX0ZJTkUsIGZpbmVfdmFsKTsKIAotCW10MjcxMl9kZWxheV9zdGFnZTJwcyhwbGF0KTsKJiM0MzsJZGVsYXlfc3RhZ2UycHNfdjEocGxhdCk7CiAKIAlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10MjcxMl9nbWFjX3ZhcmlhbnQgPSB7Ci0JCS5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IG10MjcxMl9zZXRfaW50ZXJmYWNlLAotCQkuZHdtYWNfc2V0X2RlbGF5ID0gbXQyNzEyX3NldF9kZWxheSwKJiM0MzsJCS5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IHNldF9waHlfaW50ZXJmYWNlX3YxLAomIzQzOwkJLmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MSwKIAkJLmNsa19saXN0ID0gbXQyNzEyX2R3bWFjX2Nsa19sLAogCQkubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG10MjcxMl9kd21hY19jbGtfbCksCiAJCS5yeF9kZWxheV9tYXggPSAxNzYwMCwKQEAgLTI3MywxMCAmIzQzOzI4OCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHsKIAkJLmRtYV9iaXRfbWFzayA9IDMzLAogfTsKIAotc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LAomIzQzO3N0YXRpYyBpbnQgc2V0X3BoeV9pbnRlcmZhY2VfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCwKIAkJCQl1OCBwaHlfaW50Zl9zZWwpCiB7CiAJdTMyIGludGZfdmFsID0gRklFTERfUFJFUChNVDgxOTVfRVRIX0lOVEZfU0VMLCBwaHlfaW50Zl9zZWwpOwomIzQzOwl1MzIgcmVnX29mZnNldCA9IHBsYXQtJmd0O3ZhcmlhbnQtJmd0O3BlcmlfZXRoX2N0cmxfb2Zmc2V0OwogCiAJaWYgKHBoeV9pbnRmX3NlbCA9PSBQSFlfSU5URl9TRUxfUk1JSSkgewogCQlpZiAocGxhdC0mZ3Q7cm1paV9jbGtfZnJvbV9tYWMpCkBAIC0yODgsMTIgJiM0MzszMDQsMTcgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LAogCS8qIE1UODE5NSBvbmx5IHN1cHBvcnQgZXh0ZXJuYWwgUEhZICovCiAJaW50Zl92YWwgfD0gTVQ4MTk1X0VYVF9QSFlfTU9ERTsKIAotCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLCBpbnRmX3ZhbCk7CiYjNDM7CWlmIChwbGF0LSZndDt2YXJpYW50LSZndDt1c2Vfb3V0X29wKQomIzQzOwkJaW50Zl92YWwgfD0gTVQ4MTg5X0NUUkwwX1RYQ19PVVRfT1A7CiYjNDM7CiYjNDM7CXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwKJiM0MzsJCSAgICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsCiYjNDM7CQkgICAgIGludGZfdmFsKTsKIAogCXJldHVybiAwOwogfQogCi1zdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKJiM0MztzdGF0aWMgdm9pZCBkZWxheV9wczJzdGFnZV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KQogewogCXN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSAmYW1wO3BsYXQtJmd0O21hY19kZWxheTsKIApAQCAtMzAyLDcgJiM0MzszMjMsNyBAQCBzdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIAltYWNfZGVsYXktJmd0O3J4X2RlbGF5IC89IDI5MDsKIH0KIAotc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiYjNDM7c3RhdGljIHZvaWQgZGVsYXlfc3RhZ2UycHNfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIHsKIAlzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gJmFtcDtwbGF0LSZndDttYWNfZGVsYXk7CiAKQEAgLTMxMSwxMiAmIzQzOzMzMiwxNiBAQCBzdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfc3RhZ2UycHMoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIAltYWNfZGVsYXktJmd0O3J4X2RlbGF5ICo9IDI5MDsKIH0KIAotc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiYjNDM7c3RhdGljIGludCBzZXRfZGVsYXlfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCkKIHsKIAlzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gJmFtcDtwbGF0LSZndDttYWNfZGVsYXk7Ci0JdTMyIGd0eGNfZGVsYXlfdmFsID0gMCwgZGVsYXlfdmFsID0gMCwgcm1paV9kZWxheV92YWwgPSAwOwomIzQzOwl1MzIgcmVnX29mZnNldCA9IHBsYXQtJmd0O3ZhcmlhbnQtJmd0O3BlcmlfZXRoX2N0cmxfb2Zmc2V0OwomIzQzOwl1MzIgZ3R4Y19kZWxheV9tYXNrID0gMDsKJiM0MzsJdTMyIGd0eGNfZGVsYXlfdmFsID0gMDsKJiM0MzsJdTMyIHJtaWlfZGVsYXlfdmFsID0gMDsKJiM0MzsJdTMyIGRlbGF5X3ZhbCA9IDA7CiAKLQltdDgxOTVfZGVsYXlfcHMyc3RhZ2UocGxhdCk7CiYjNDM7CWRlbGF5X3BzMnN0YWdlX3YyKHBsYXQpOwogCiAJc3dpdGNoIChwbGF0LSZndDtwaHlfbW9kZSkgewogCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX01JSToKQEAgLTM4OCw2ICYjNDM7NDEzLDkgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiAJCWd0eGNfZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9HVFhDX1NUQUdFUywgbWFjX2RlbGF5LSZndDt0eF9kZWxheSk7CiAJCWd0eGNfZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9HVFhDX0lOViwgbWFjX2RlbGF5LSZndDt0eF9pbnYpOwogCiYjNDM7CQlpZiAocGxhdC0mZ3Q7dmFyaWFudC0mZ3Q7dXNlX3N0YWdlX2ZpbmUpCiYjNDM7CQkJZ3R4Y19kZWxheV92YWwgfD0gTVQ4MTg5X0NUUkwwX0RMWV9HVFhDX1NUQUdFX0ZJTkU7CiYjNDM7CiAJCWRlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfUlhDX0VOQUJMRSwgISFtYWNfZGVsYXktJmd0O3J4X2RlbGF5KTsKIAkJZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfU1RBR0VTLCBtYWNfZGVsYXktJmd0O3J4X2RlbGF5KTsKIAkJZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfSU5WLCBtYWNfZGVsYXktJmd0O3J4X2ludik7CkBAIC0zOTgsMjkgJiM0Mzs0MjYsNTIgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAomIzQzOwlndHhjX2RlbGF5X21hc2sgPSBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfAomIzQzOwkJCSAgTVQ4MTk1X0RMWV9HVFhDX0lOViB8CiYjNDM7CQkJICBNVDgxOTVfRExZX0dUWENfRU5BQkxFIHwKJiM0MzsJCQkgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVM7CiYjNDM7CiYjNDM7CWlmIChwbGF0LSZndDt2YXJpYW50LSZndDt1c2Vfc3RhZ2VfZmluZSkKJiM0MzsJCWd0eGNfZGVsYXlfbWFzayB8PSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORTsKJiM0MzsKIAlyZWdtYXBfdXBkYXRlX2JpdHMocGxhdC0mZ3Q7cGVyaV9yZWdtYXAsCi0JCQkgICBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsCi0JCQkgICBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfAotCQkJICAgTVQ4MTk1X0RMWV9HVFhDX0lOViB8Ci0JCQkgICBNVDgxOTVfRExZX0dUWENfRU5BQkxFIHwKLQkJCSAgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVMsCiYjNDM7CQkJICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsCiYjNDM7CQkJICAgZ3R4Y19kZWxheV9tYXNrLAogCQkJICAgZ3R4Y19kZWxheV92YWwpOwotCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwxLCBkZWxheV92YWwpOwotCXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwyLCBybWlpX2RlbGF5X3ZhbCk7CiYjNDM7CXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwKJiM0MzsJCSAgICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDEsCiYjNDM7CQkgICAgIGRlbGF5X3ZhbCk7CiYjNDM7CXJlZ21hcF93cml0ZShwbGF0LSZndDtwZXJpX3JlZ21hcCwKJiM0MzsJCSAgICAgcmVnX29mZnNldCAmIzQzOyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDIsCiYjNDM7CQkgICAgIHJtaWlfZGVsYXlfdmFsKTsKIAotCW10ODE5NV9kZWxheV9zdGFnZTJwcyhwbGF0KTsKJiM0MzsJZGVsYXlfc3RhZ2UycHNfdjIocGxhdCk7CiAKIAlyZXR1cm4gMDsKIH0KIAomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfdmFyaWFudCBtdDgxODlfZ21hY192YXJpYW50ID0gewomIzQzOwkuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBzZXRfcGh5X2ludGVyZmFjZV92MiwKJiM0MzsJLmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MiwKJiM0MzsJLmNsa19saXN0ID0gbXQ4MTg5X2R3bWFjX2Nsa19sLAomIzQzOwkubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG10ODE4OV9kd21hY19jbGtfbCksCiYjNDM7CS5kbWFfYml0X21hc2sgPSAzNSwKJiM0MzsJLnJ4X2RlbGF5X21heCA9IDkyODAsCiYjNDM7CS50eF9kZWxheV9tYXggPSA5MjgwLAomIzQzOwkucGVyaV9ldGhfY3RybF9vZmZzZXQgPSBNVDgxODlfUEVSSV9FVEhfQ1RSTF9CQVNFLAomIzQzOwkudXNlX291dF9vcCA9IHRydWUsCiYjNDM7CS51c2Vfc3RhZ2VfZmluZSA9IHRydWUsCiYjNDM7fTsKJiM0MzsKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfdmFyaWFudCBtdDgxOTVfZ21hY192YXJpYW50ID0gewotCS5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IG10ODE5NV9zZXRfaW50ZXJmYWNlLAotCS5kd21hY19zZXRfZGVsYXkgPSBtdDgxOTVfc2V0X2RlbGF5LAomIzQzOwkuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBzZXRfcGh5X2ludGVyZmFjZV92MiwKJiM0MzsJLmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MiwKIAkuY2xrX2xpc3QgPSBtdDgxOTVfZHdtYWNfY2xrX2wsCiAJLm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxOTVfZHdtYWNfY2xrX2wpLAogCS5yeF9kZWxheV9tYXggPSA5MjgwLAogCS50eF9kZWxheV9tYXggPSA5MjgwLAogCS5kbWFfYml0X21hc2sgPSAzNSwKJiM0MzsJLnBlcmlfZXRoX2N0cmxfb2Zmc2V0ID0gTVQ4MTk1X1BFUklfRVRIX0NUUkxfQkFTRSwKIH07CiAKIHN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpCkBAIC02NjIsNiAmIzQzOzcxMyw4IEBAIHN0YXRpYyB2b2lkIG1lZGlhdGVrX2R3bWFjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZHdtYWNfbWF0Y2hbXSA9IHsKIAl7IC5jb21wYXRpYmxlID0gJiMzNDttZWRpYXRlayxtdDI3MTItZ21hYyYjMzQ7LAogCSAgLmRhdGEgPSAmYW1wO210MjcxMl9nbWFjX3ZhcmlhbnQgfSwKJiM0MzsJeyAuY29tcGF0aWJsZSA9ICYjMzQ7bWVkaWF0ZWssbXQ4MTg5LWdtYWMmIzM0OywKJiM0MzsJICAuZGF0YSA9ICZhbXA7bXQ4MTg5X2dtYWNfdmFyaWFudCB9LAogCXsgLmNvbXBhdGlibGUgPSAmIzM0O21lZGlhdGVrLG10ODE5NS1nbWFjJiMzNDssCiAJICAuZGF0YSA9ICZhbXA7bXQ4MTk1X2dtYWNfdmFyaWFudCB9LAogCXsgfQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wNyAxNTo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2OTI1CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogNzYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgTmV3IEdNQUMgVmFyaWFudCBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaC4gSXQmIzM5O3MgdG91Y2hpbmcgYGR3bWFjLW1lZGlhdGVrLmNgIGFuZCB0aGUgZGV2aWNlIHRyZWUgYmluZGluZ3MuIFRoZSBnb2FsIGlzIHRvIGFkZCBzdXBwb3J0IGZvciBhIG5ldyBNZWRpYVRlayBHTUFDIHZhcmlhbnQ6IGBtdDgxODktZ21hY2AuIEl0IGxvb2tzIGxpa2UgdGhlcmUmIzM5O3Mgc29tZSBmdW5jdGlvbiByZWZhY3RvcmluZyBoYXBwZW5pbmcgdG9vLCB3aGljaCBpcyBhbHdheXMgc29tZXRoaW5nIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8sIG1ha2luZyBzdXJlIHRoZSBjaGFuZ2VzIGFyZSBjbGVhbiBhbmQgZG9uJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucy4gVGhleSYjMzk7cmUgcmVuYW1pbmcgYSBidW5jaCBvZiBgbXQyNzEyX2AgYW5kIGBtdDgxOTVfYCBmdW5jdGlvbnMgdG8gYSBgdjFgIGFuZCBgdjJgIHNjaGVtZSwgYW5kIHRoZW4gdXNpbmcgdGhlIGB2MmAgdmVyc2lvbnMgZm9yIHRoaXMgbmV3IGBtdDgxODlfZ21hY192YXJpYW50YC4KCk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gSSBldmVuICp0ZXN0KiB0aGlzIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudD8gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgYGR3bWFjLW1lZGlhdGVrLmNgLCBhbmQgdGhvc2UgYXJlIG9mdGVuIGEgcGFpbi4gUGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgU29DcyBsaWtlIHRoZSBNZWRpYVRlayBvbmVzIGFyZSB0eXBpY2FsbHkgbm90IHRlc3RhYmxlIGluIGdlbmVyaWMgUUVNVSwgdW5sZXNzIHRoZXJlJiMzOTtzIGRlZGljYXRlZCBtYWNoaW5lIGVtdWxhdGlvbiBmb3IgdGhlIHRhcmdldCBoYXJkd2FyZS4gU28sIEkgbmVlZCB0byBjaGVjayBpZiB0aGlzIGRyaXZlciBjYW4gZXZlbiBiZSBwcm9iZWQgaW4gUUVNVSBvciBpZiBpdCYjMzk7cyBzdHJpY3RseSB0aWVkIHRvIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSBkZXZpY2UgdHJlZS4KClRoZSBkcml2ZXIgbWF0Y2hlcyBvbiB0aGUgdXN1YWwgTWVkaWFUZWsgR01BQyBJRHMgbGlrZSBgbWVkaWF0ZWssbXQ4MTg5LWdtYWNgLCBhbmQgc28gb24uIFVubGVzcyBJIGNhbiBpbmplY3QgYSBkZXZpY2UgdHJlZSBub2RlIGludG8gdGhlIGVudmlyb25tZW50LCBvciBRRU1VIGhhcyAqc3BlY2lmaWMqIGVtdWxhdGlvbiBmb3IgdGhpcyBNZWRpYVRlayBib2FyZCAod2hpY2ggaXMgdW5saWtlbHkpLCBpdCYjMzk7cyBwcm9iYWJseSB1bnJlYWNoYWJsZS4KCk5vdywgd2FpdCwgY291bGQgSSB1c2Ugc29tZXRoaW5nIGxpa2Ugc3l6a2FsbGVyPyBTeXprYWxsZXIgKmNhbiogaW5qZWN0IHBsYXRmb3JtIGRldmljZXMgdXNpbmcgYHN5el9kZXZfcGxhdGZvcm1fYWRkYCBvciBieSBtYW5pcHVsYXRpbmcgdGhlIGRldmljZSB0cmVlLCBidXQgbW9zdCBwbGF0Zm9ybSBkcml2ZXJzIGxpa2UgdGhpcyB0aGF0IE1NSU8gdG8gc3BlY2lmaWMgcGh5c2ljYWwgYWRkcmVzc2VzIHdvdWxkIGNyYXNoIG9yIGp1c3QgZmFpbCB0byBwcm9iZSB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUgcHJlc2VudCB1bmxlc3MsIG9mIGNvdXJzZSwgdGhlIHJlZ2lzdGVycyBhcmUgbW9ja2VkLiBBbmQgSSYjMzk7dmUgZm91bmQgaW4gdGhlIHBhc3QgdGhhdCB3aGlsZSBzeXprYWxsZXIgaGFzIHBzZXVkby1kZXZpY2VzIGZvciAqc29tZSogdGhpbmdzLCByYW5kb20gU29DIGV0aGVybmV0IE1BQ3MgYXJlIHVzdWFsbHkganVzdCBhIG5vLWdvIGZvciBwcm9iaW5nLgoKU28sIGlzIGl0IGZ1enphYmxlPyBQcm9iYWJseSBub3QsIGF0IGxlYXN0IG5vdCBpbiBhbnkgc2Vuc2libGUgd2F5LiBVbmxlc3MgaXQmIzM5O3MgYSBVU0Igb3IgUENJIGRldmljZSB0aGF0IGNhbiBiZSBlbXVsYXRlZCAod2l0aCBhIGR1bW15IEhDRCBvciBQQ0kgZW11bGF0aW9uKSwgb3IgaXMgYSAqdmlydHVhbCogZHJpdmVyLCBJJiMzOTttIGdvaW5nIHRvIGNvbnNpZGVyIGl0IHVucmVhY2hhYmxlIGZvciB0aGUgdGltZSBiZWluZy4gR2VuZXJhbGx5LCB0aGVzZSBTb0Mtc3BlY2lmaWMgRXRoZXJuZXQgTUFDIGRyaXZlcnMgYXJlIG5vdCBmdXp6YWJsZSBpbiB4ODYgVk1zLiBJIHNob3VsZCBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGBkd21hYy1tZWRpYXRlay5jYCBpcyB0aWVkIHRvIGBDT05GSUdfRFdNQUNfTUVESUFURUtgLiBJdCYjMzk7cyB3b3J0aCB2ZXJpZnlpbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTU6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERXTUFDX01FRElBVEVLJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTA2PWNvbmZpZyBEV01BQ19MUEMxOFhYXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjExNDpjb25maWcgRFdNQUNfTUVESUFURUtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE1LVx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQyN3h4IEdNQUMgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA3IDE1OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg0MTMKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6CgoqKkFzc2Vzc2luZyBEZXBlbmRlbmNpZXMgZm9yIGBEV01BQ19NRURJQVRFS2AqKgoKT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoZSBgRFdNQUNfTUVESUFURUtgIG1vZHVsZSBhbmQgbWFwIG91dCBpdHMgbGFuZHNjYXBlLiBJIG5lZWQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIGl0cyBkZXBlbmRlbmNpZXMuIFRoaXMgaXMgY3JpdGljYWwgZm9yIGV2ZXJ5dGhpbmcgZnJvbSB0cm91Ymxlc2hvb3RpbmcgaW50ZWdyYXRpb24gaXNzdWVzIHRvIHByZWRpY3RpbmcgdGhlIGltcGFjdCBvZiBwb3RlbnRpYWwgbW9kaWZpY2F0aW9ucyBkb3duIHRoZSBsaW5lLiBXZSBjYW4mIzM5O3QgYWZmb3JkIHRvIGhhdmUgYSBjYXNjYWRlIG9mIHVuZXhwZWN0ZWQgYmVoYXZpb3IuCgpTbywgSSYjMzk7bSB0aGlua2luZywgd2hlcmUgZG8gd2Ugc3RhcnQ/IEkgbmVlZCB0byBrbm93OiB3aGF0IG90aGVyIG1vZHVsZXMgb3IgbGlicmFyaWVzIGRvZXMgYERXTUFDX01FRElBVEVLYCByZWx5IG9uPyBBcmUgdGhlc2UgaW50ZXJuYWwgY29tcG9uZW50cywgc3BlY2lmaWMgdG8gdGhlIE1lZGlhVGVrIHBsYXRmb3JtLCBvciBhcmUgd2UgZGVhbGluZyB3aXRoIGV4dGVybmFsIGxpYnJhcmllcz8gV2hhdCB2ZXJzaW9uIGNvbnRyb2wgaXMgaW4gcGxhY2UgZm9yIHRoZXNlIGRlcGVuZGVuY2llcz8gQXJlIHRoZXkgbG9ja2VkIHRvIHNwZWNpZmljIHZlcnNpb25zLCBvciBkbyB3ZSBoYXZlIGEgcmFuZ2Ugd2UgY2FuIHdvcmsgd2l0aD8gQXJlIHRoZXJlIGtub3duIGNvbXBhdGliaWxpdHkgaXNzdWVzIGJldHdlZW4gdGhlIG1vZHVsZSBhbmQgYW55IG9mIGl0cyBkZXBlbmRlbmNpZXM/IEhhdmUgdGhlcmUgYmVlbiByZXBvcnRzIG9mIGluc3RhYmlsaXR5IGluIGNlcnRhaW4gZGVwZW5kZW5jeSB2ZXJzaW9ucz8KCkkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbnRlcmZhY2VzLiBIb3cgZG9lcyBgRFdNQUNfTUVESUFURUtgIGludGVyYWN0IHdpdGggdGhlc2UgY29tcG9uZW50cz8gSXMgaXQgdGhyb3VnaCBkaXJlY3QgZnVuY3Rpb24gY2FsbHMsIG1lc3NhZ2UgcGFzc2luZywgb3Igc29tZSBvdGhlciBtZWNoYW5pc20/IEFyZSB0aGVyZSBhbnkgc2hhcmVkIHJlc291cmNlcywgbGlrZSBtZW1vcnkgcmVnaW9ucywgdGhhdCBtaWdodCByZXF1aXJlIGNhcmVmdWwgc3luY2hyb25pemF0aW9uPyBXaGF0IGtpbmQgb2YgdGVzdGluZyBhbmQgdmFsaWRhdGlvbiBpcyBpbiBwbGFjZSB0byBlbnN1cmUgdGhlc2UgZGVwZW5kZW5jaWVzIGFyZSBwcm9wZXJseSBtYW5hZ2VkPwoKQWxyaWdodCwgbGV0JiMzOTtzIGdldCBkb3duIHRvIHNwZWNpZmljcy4gV2UgbmVlZCB0byBnYXRoZXIgdGhpcyBpbmZvcm1hdGlvbiB0byBidWlsZCBhIHNvbGlkIGZvdW5kYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTU6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGVwZW5kcyBvbi4qQVJDSF9NRURJQVRFSyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xMTQ9Y29uZmlnIERXTUFDX01FRElBVEVLXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTExNS1cdHRyaXN0YXRlIFwmIzM0O01lZGlhVGVrIE1UMjd4eCBHTUFDIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTE2Olx0ZGVwZW5kcyBvbiBPRiBcdTAwMjZcdTAwMjYgKEFSQ0hfTUVESUFURUsgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTctXHRoZWxwXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTU6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODkyMAoJCQkJCQkJb3V0cHV0OiA5NwoJCQkJCQkJdGhvdWdodHM6IDI2NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBwYXRjaCBpc24mIzM5O3QgZ29pbmcgdG8gYmUgZnJ1aXRmdWwgZm9yIGZ1enppbmcgaW4gYSBzdGFuZGFyZCBzZXR1cC4gVGhlIGNvbmRpdGlvbmFsIGNvbXBpbGF0aW9uIChgQVJDSF9NRURJQVRFSyB8fCBDT01QSUxFX1RFU1RgKSBpcyBhIGRlYWQgZ2l2ZWF3YXkuIFNpbmNlIHRoaXMgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgc3BlY2lmaWNhbGx5IGZvciBNZWRpYVRlayBTb0NzLCBpdCYjMzk7cyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB5b3VyIGF2ZXJhZ2UgeDg2IFFFTVUgVk0uIEl0IGhpbmdlcyBvbiBoYXZpbmcgdGhlIGNvcnJlY3QgZGV2aWNlIHRyZWUgbm9kZXMgZGVmaW5lZCBhbmQgdGhlIGNvcnJlY3QgcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgbWFwcGVkLCB0aGluZ3MgdGhhdCBqdXN0IGFyZW4mIzM5O3QgZ29pbmcgdG8gaGFwcGVuIGluIGEgZ2VuZXJpYyB2aXJ0dWFsIGVudmlyb25tZW50LiBFdmVuIGlmIHlvdSB0cmllZCB0byBmYWtlIGl0IGJ5IGluamVjdGluZyBhIGRldmljZSB0cmVlIG5vZGUsIGVpdGhlciBgZGV2bV9yZWdtYXBfaW5pdGAgb3IgYHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGVgIGlzIGdvaW5nIHRvIGZhaWwsIG9yIGFueSBhdHRlbXB0ZWQgTU1JTyBhY2Nlc3Mgd2lsbCBmYXVsdCwgZG8gbm90aGluZywgb3Igc2ltcGx5IG5vdCBiZSByZWFjaGFibGUgYmVjYXVzZSB0aGUgaGFyZHdhcmUgZG9lc24mIzM5O3QgZXhpc3QuCgpMZXQmIzM5O3MgcXVpY2tseSBjb25maXJtIHRoZXJlJiMzOTtzIG5vIGdlbmVyaWMgbG9naWMgdGhhdCAqY291bGQqIGJlIGV4ZXJjaXNlZC4gQWgsIG5vcGUuIExvb2tzIGxpa2UgdGhlIHBhdGNoJiMzOTtzIGNoYW5nZXMgY29uc2lzdCBvZiBhZGRpbmcgYSBuZXcgdmFyaWFudCBzdHJ1Y3R1cmUsIHNvbWUgZnVuY3Rpb24gcmVuYW1pbmcsIGFuZCBhIGhhbmRmdWwgb2YgYml0d2lzZSBvcGVyYXRpb25zIGZvciB0aGUgbmV3IHZhcmlhbnQuIEl0JiMzOTtzIHB1cmUgaGFyZHdhcmUgZW5hYmxlbWVudCwgZXNzZW50aWFsbHkgdGFpbG9yaW5nIHRoZSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgU29DLiBJdCYjMzk7cyBub3QgZXhwb3NpbmcgZ2VuZXJpYyBmdW5jdGlvbmFsaXR5LgoKVGhlcmVmb3JlLCBJJiMzOTttIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByYXRpb25hbGUgaXMgc3RyYWlnaHRmb3J3YXJkOiBUaGlzIHBhdGNoIGludHJvZHVjZXMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DLCB0aGUgTVQ4MTg5LCB3aXRoaW4gdGhlIGR3bWFjLW1lZGlhdGVrIHBsYXRmb3JtIGRyaXZlci4gSXQmIzM5O3MgZW50aXJlbHkgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IGRlcGVuZHMgb24gcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgYW5kIHBhcnRpY3VsYXIgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMuIFRoaXMgbWVhbnMgdGhhdCBleGVjdXRpbmcgb3IgcmVhY2hpbmcgaXQgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRSBpcyBlc3NlbnRpYWxseSBtZWFuaW5nbGVzcy4gQW55IGZ1enppbmcgYXR0ZW1wdHMgd291bGQgYmUgZnJ1aXRsZXNzIGJlY2F1c2UgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgZGVwZW5kZW5jaWVzIGFyZSBzaW1wbHkgbm90IHByZXNlbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDcgMTU6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGEgbmV3IE1lZGlhVGVrIFNvQyAoTVQ4MTg5KSB0byB0aGUgZHdtYWMtbWVkaWF0ZWsgcGxhdGZvcm0gZHJpdmVyLiBUaGlzIGlzIGhhcmR3YXJlLXNwZWNpZmljIGNvZGUgdGhhdCByZWxpZXMgb24gcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgYW5kIHNwZWNpZmljIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb25zLCB3aGljaCBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGV4ZWN1dGVkIG9yIHJlYWNoZWQgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DIChNVDgxODkpIHRvIHRoZSBkd21hYy1tZWRpYXRlayBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IHJlbGllcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgc3BlY2lmaWMgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZXhlY3V0ZWQgb3IgcmVhY2hlZCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjMzLjEzMDgyMjUxMVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM0NzY5NTkzNjc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGEgbmV3IE1lZGlhVGVrIFNvQyAoTVQ4MTg5KSB0byB0aGUgZHdtYWMtbWVkaWF0ZWsgcGxhdGZvcm0gZHJpdmVyLiBUaGlzIGlzIGhhcmR3YXJlLXNwZWNpZmljIGNvZGUgdGhhdCByZWxpZXMgb24gcGh5c2ljYWwgTU1JTyByZWdpc3RlcnMgYW5kIHNwZWNpZmljIGRldmljZSB0cmVlIGNvbmZpZ3VyYXRpb25zLCB3aGljaCBjYW5ub3QgYmUgbWVhbmluZ2Z1bGx5IGV4ZWN1dGVkIG9yIHJlYWNoZWQgaW4gZ2VuZXJpYyB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjMzLjEzMDgyODA2MVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMwNTEzNDk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgOWQ5NGYwNWUxMzJmYzE3NjQ4NDU0MGYxYTE2YTE2MDkwYWYyN2NiNlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVHVlIEp1bCA3IDE1OjQ1OjMxIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbFxcbmluZGV4IDNhYWIyMWI4ZThkZTViLi4wMDBhYmVjMDIzYjMxNCAxMDA2NDRcXG4tLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWxcXG4rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWxcXG5AQCAtMjAsMTMgKzIwLDExIEBAIHNlbGVjdDpcXG4gICAgICAgICBlbnVtOlxcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDI3MTItZ21hY1xcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODgtZ21hY1xcbisgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODktZ21hY1xcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxOTUtZ21hY1xcbiAgIHJlcXVpcmVkOlxcbiAgICAgLSBjb21wYXRpYmxlXFxuIFxcbi1hbGxPZjpcXG4tICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcXG4tXFxuIHByb3BlcnRpZXM6XFxuICAgY29tcGF0aWJsZTpcXG4gICAgIG9uZU9mOlxcbkBAIC0zNiw2ICszNCw3IEBAIHByb3BlcnRpZXM6XFxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTQuMjBhXFxuICAgICAgIC0gaXRlbXM6XFxuICAgICAgICAgICAtIGVudW06XFxuKyAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxODktZ21hY1xcbiAgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWNcXG4gICAgICAgICAgIC0gY29uc3Q6IHNucHMsZHdtYWMtNS4xMGFcXG4gICAgICAgLSBpdGVtczpcXG5AQCAtNDQsMjYgKzQzLDYgQEAgcHJvcGVydGllczpcXG4gICAgICAgICAgIC0gY29uc3Q6IG1lZGlhdGVrLG10ODE5NS1nbWFjXFxuICAgICAgICAgICAtIGNvbnN0OiBzbnBzLGR3bWFjLTUuMTBhXFxuIFxcbi0gIGNsb2NrczpcXG4tICAgIG1pbkl0ZW1zOiA1XFxuLSAgICBpdGVtczpcXG4tICAgICAgLSBkZXNjcmlwdGlvbjogQVhJIGNsb2NrXFxuLSAgICAgIC0gZGVzY3JpcHRpb246IEFQQiBjbG9ja1xcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgTWFpbiBjbG9ja1xcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBQVFAgY2xvY2tcXG4tICAgICAgLSBkZXNjcmlwdGlvbjogUk1JSSByZWZlcmVuY2UgY2xvY2sgcHJvdmlkZWQgYnkgTUFDXFxuLSAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBjbG9jayBnYXRlXFxuLVxcbi0gIGNsb2NrLW5hbWVzOlxcbi0gICAgbWluSXRlbXM6IDVcXG4tICAgIGl0ZW1zOlxcbi0gICAgICAtIGNvbnN0OiBheGlcXG4tICAgICAgLSBjb25zdDogYXBiXFxuLSAgICAgIC0gY29uc3Q6IG1hY19tYWluXFxuLSAgICAgIC0gY29uc3Q6IHB0cF9yZWZcXG4tICAgICAgLSBjb25zdDogcm1paV9pbnRlcm5hbFxcbi0gICAgICAtIGNvbnN0OiBtYWNfY2dcXG4tXFxuICAgaW50ZXJydXB0czpcXG4gICAgIG1heEl0ZW1zOiAxXFxuIFxcbkBAIC0xNDcsNiArMTI2LDU4IEBAIHJlcXVpcmVkOlxcbiAgIC0gcGh5LW1vZGVcXG4gICAtIG1lZGlhdGVrLHBlcmljZmdcXG4gXFxuK2FsbE9mOlxcbisgIC0gJHJlZjogc25wcyxkd21hYy55YW1sI1xcbisgIC0gaWY6XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgY29tcGF0aWJsZTpcXG4rICAgICAgICAgIGNvbnRhaW5zOlxcbisgICAgICAgICAgICBlbnVtOlxcbisgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQyNzEyLWdtYWNcXG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OC1nbWFjXFxuKyAgICAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxOTUtZ21hY1xcbisgICAgdGhlbjpcXG4rICAgICAgcHJvcGVydGllczpcXG4rICAgICAgICBjbG9ja3M6XFxuKyAgICAgICAgICBtaW5JdGVtczogNVxcbisgICAgICAgICAgaXRlbXM6XFxuKyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IEFYSSBjbG9ja1xcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBBUEIgY2xvY2tcXG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2tcXG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogUFRQIGNsb2NrXFxuKyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQ1xcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgY2xvY2sgZ2F0ZVxcbitcXG4rICAgICAgICBjbG9jay1uYW1lczpcXG4rICAgICAgICAgIG1pbkl0ZW1zOiA1XFxuKyAgICAgICAgICBpdGVtczpcXG4rICAgICAgICAgICAgLSBjb25zdDogYXhpXFxuKyAgICAgICAgICAgIC0gY29uc3Q6IGFwYlxcbisgICAgICAgICAgICAtIGNvbnN0OiBtYWNfbWFpblxcbisgICAgICAgICAgICAtIGNvbnN0OiBwdHBfcmVmXFxuKyAgICAgICAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWxcXG4rICAgICAgICAgICAgLSBjb25zdDogbWFjX2NnXFxuK1xcbisgIC0gaWY6XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgY29tcGF0aWJsZTpcXG4rICAgICAgICAgIGNvbnRhaW5zOlxcbisgICAgICAgICAgICBlbnVtOlxcbisgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWNcXG4rICAgIHRoZW46XFxuKyAgICAgIHByb3BlcnRpZXM6XFxuKyAgICAgICAgY2xvY2tzOlxcbisgICAgICAgICAgaXRlbXM6XFxuKyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBNYWluIGNsb2NrXFxuKyAgICAgICAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9ja1xcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBSTUlJIHJlZmVyZW5jZSBjbG9jayBwcm92aWRlZCBieSBNQUNcXG4rXFxuKyAgICAgICAgY2xvY2stbmFtZXM6XFxuKyAgICAgICAgICBpdGVtczpcXG4rICAgICAgICAgICAgLSBjb25zdDogbWFjX21haW5cXG4rICAgICAgICAgICAgLSBjb25zdDogcHRwX3JlZlxcbisgICAgICAgICAgICAtIGNvbnN0OiBybWlpX2ludGVybmFsXFxuK1xcbiB1bmV2YWx1YXRlZFByb3BlcnRpZXM6IGZhbHNlXFxuIFxcbiBleGFtcGxlczpcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmNcXG5pbmRleCAzMGFlMGRiYTdmZmZkYi4uZTdlMzM2YjFmMTE0YzQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbWVkaWF0ZWsuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmNcXG5AQCAtMzYsOCArMzYsMTYgQEBcXG4gI2RlZmluZSBFVEhfRklORV9ETFlfR1RYQ1xcdEJJVCgxKVxcbiAjZGVmaW5lIEVUSF9GSU5FX0RMWV9SWENcXHRCSVQoMClcXG4gXFxuKy8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTg5ICovXFxuKyNkZWZpbmUgTVQ4MTg5X1BFUklfRVRIX0NUUkxfQkFTRVxcdFxcdDB4MjcwXFxuK1xcbisjZGVmaW5lIE1UODE4OV9DVFJMMF9UWENfT1VUX09QXFx0XFx0XFx0QklUKDIwKVxcbisjZGVmaW5lIE1UODE4OV9DVFJMMF9ETFlfR1RYQ19TVEFHRV9GSU5FXFx0R0VOTUFTSygxMSwgNilcXG4rXFxuIC8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTk1ICovXFxuLSNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwwXFx0XFx0MHhGRDBcXG4rI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTF9CQVNFXFx0MHhGRDBcXG4rXFxuKyNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwwXFx0XFx0MHgwXFxuICNkZWZpbmUgTVQ4MTk1X1JNSUlfQ0xLX1NSQ19JTlRFUk5BTFxcdEJJVCgyOClcXG4gI2RlZmluZSBNVDgxOTVfUk1JSV9DTEtfU1JDX1JYQ1xcdFxcdEJJVCgyNylcXG4gI2RlZmluZSBNVDgxOTVfRVRIX0lOVEZfU0VMXFx0XFx0R0VOTUFTSygyNiwgMjQpXFxuQEAgLTQ3LDcgKzU1LDcgQEBcXG4gI2RlZmluZSBNVDgxOTVfRExZX0dUWENfRU5BQkxFXFx0XFx0QklUKDUpXFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9HVFhDX1NUQUdFU1xcdFxcdEdFTk1BU0soNCwgMClcXG4gXFxuLSNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwxXFx0XFx0MHhGRDRcXG4rI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDFcXHRcXHQweDRcXG4gI2RlZmluZSBNVDgxOTVfRExZX1JYQ19JTlZcXHRcXHRCSVQoMjUpXFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9SWENfRU5BQkxFXFx0XFx0QklUKDE4KVxcbiAjZGVmaW5lIE1UODE5NV9ETFlfUlhDX1NUQUdFU1xcdFxcdEdFTk1BU0soMTcsIDEzKVxcbkBAIC01NSw3ICs2Myw3IEBAXFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9UWENfRU5BQkxFXFx0XFx0QklUKDUpXFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9UWENfU1RBR0VTXFx0XFx0R0VOTUFTSyg0LCAwKVxcbiBcXG4tI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDJcXHRcXHQweEZEOFxcbisjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMlxcdFxcdDB4OFxcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfSU5WXFx0XFx0QklUKDI1KVxcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfRU5BQkxFXFx0QklUKDE4KVxcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfU1RBR0VTXFx0R0VOTUFTSygxNywgMTMpXFxuQEAgLTk1LDcgKzEwMywxMCBAQCBzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfdmFyaWFudCB7XFxuIFxcbiBcXHR1MzIgcnhfZGVsYXlfbWF4O1xcbiBcXHR1MzIgdHhfZGVsYXlfbWF4O1xcbitcXHR1MzIgcGVyaV9ldGhfY3RybF9vZmZzZXQ7XFxuIFxcdHU4IGRtYV9iaXRfbWFzaztcXG4rXFx0Ym9vbCB1c2Vfb3V0X29wO1xcbitcXHRib29sIHVzZV9zdGFnZV9maW5lO1xcbiB9O1xcbiBcXG4gLyogbGlzdCBvZiBjbG9ja3MgcmVxdWlyZWQgZm9yIG1hYyAqL1xcbkBAIC0xMDcsNyArMTE4LDExIEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXQ4MTk1X2R3bWFjX2Nsa19sW10gPSB7XFxuIFxcdFxcXCJheGlcXFwiLCBcXFwiYXBiXFxcIiwgXFxcIm1hY19jZ1xcXCIsIFxcXCJtYWNfbWFpblxcXCIsIFxcXCJwdHBfcmVmXFxcIlxcbiB9O1xcbiBcXG4tc3RhdGljIGludCBtdDI3MTJfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxcbitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG10ODE4OV9kd21hY19jbGtfbFtdID0ge1xcbitcXHRcXFwibWFjX21haW5cXFwiLCBcXFwicHRwX3JlZlxcXCJcXG4rfTtcXG4rXFxuK3N0YXRpYyBpbnQgc2V0X3BoeV9pbnRlcmZhY2VfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcXG4gXFx0XFx0XFx0XFx0dTggcGh5X2ludGZfc2VsKVxcbiB7XFxuIFxcdHUzMiBpbnRmX3ZhbCA9IHBoeV9pbnRmX3NlbDtcXG5AQCAtMTI0LDcgKzEzOSw3IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbitzdGF0aWMgdm9pZCBkZWxheV9wczJzdGFnZV92MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiB7XFxuIFxcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcXHUwMDI2cGxhdC1cXHUwMDNlbWFjX2RlbGF5O1xcbiBcXG5AQCAtMTQ5LDcgKzE2NCw3IEBAIHN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiBcXHR9XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9zdGFnZTJwcyhzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbitzdGF0aWMgdm9pZCBkZWxheV9zdGFnZTJwc192MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiB7XFxuIFxcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcXHUwMDI2cGxhdC1cXHUwMDNlbWFjX2RlbGF5O1xcbiBcXG5AQCAtMTc0LDEyICsxODksMTIgQEAgc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuIFxcdH1cXG4gfVxcbiBcXG4tc3RhdGljIGludCBtdDI3MTJfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuK3N0YXRpYyBpbnQgc2V0X2RlbGF5X3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuIHtcXG4gXFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFxcdTAwMjZwbGF0LVxcdTAwM2VtYWNfZGVsYXk7XFxuIFxcdHUzMiBkZWxheV92YWwgPSAwLCBmaW5lX3ZhbCA9IDA7XFxuIFxcbi1cXHRtdDI3MTJfZGVsYXlfcHMyc3RhZ2UocGxhdCk7XFxuK1xcdGRlbGF5X3BzMnN0YWdlX3YxKHBsYXQpO1xcbiBcXG4gXFx0c3dpdGNoIChwbGF0LVxcdTAwM2VwaHlfbW9kZSkge1xcbiBcXHRjYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUk6XFxuQEAgLTI1OCwxNCArMjczLDE0IEBAIHN0YXRpYyBpbnQgbXQyNzEyX3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiBcXHRyZWdtYXBfd3JpdGUocGxhdC1cXHUwMDNlcGVyaV9yZWdtYXAsIFBFUklfRVRIX0RMWSwgZGVsYXlfdmFsKTtcXG4gXFx0cmVnbWFwX3dyaXRlKHBsYXQtXFx1MDAzZXBlcmlfcmVnbWFwLCBQRVJJX0VUSF9ETFlfRklORSwgZmluZV92YWwpO1xcbiBcXG4tXFx0bXQyNzEyX2RlbGF5X3N0YWdlMnBzKHBsYXQpO1xcbitcXHRkZWxheV9zdGFnZTJwc192MShwbGF0KTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcXG4tXFx0XFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gbXQyNzEyX3NldF9pbnRlcmZhY2UsXFxuLVxcdFxcdC5kd21hY19zZXRfZGVsYXkgPSBtdDI3MTJfc2V0X2RlbGF5LFxcbitcXHRcXHQuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBzZXRfcGh5X2ludGVyZmFjZV92MSxcXG4rXFx0XFx0LmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MSxcXG4gXFx0XFx0LmNsa19saXN0ID0gbXQyNzEyX2R3bWFjX2Nsa19sLFxcbiBcXHRcXHQubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG10MjcxMl9kd21hY19jbGtfbCksXFxuIFxcdFxcdC5yeF9kZWxheV9tYXggPSAxNzYwMCxcXG5AQCAtMjczLDEwICsyODgsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10MjcxMl9nbWFjX3ZhcmlhbnQgPSB7XFxuIFxcdFxcdC5kbWFfYml0X21hc2sgPSAzMyxcXG4gfTtcXG4gXFxuLXN0YXRpYyBpbnQgbXQ4MTk1X3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcXG4rc3RhdGljIGludCBzZXRfcGh5X2ludGVyZmFjZV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxcbiBcXHRcXHRcXHRcXHR1OCBwaHlfaW50Zl9zZWwpXFxuIHtcXG4gXFx0dTMyIGludGZfdmFsID0gRklFTERfUFJFUChNVDgxOTVfRVRIX0lOVEZfU0VMLCBwaHlfaW50Zl9zZWwpO1xcbitcXHR1MzIgcmVnX29mZnNldCA9IHBsYXQtXFx1MDAzZXZhcmlhbnQtXFx1MDAzZXBlcmlfZXRoX2N0cmxfb2Zmc2V0O1xcbiBcXG4gXFx0aWYgKHBoeV9pbnRmX3NlbCA9PSBQSFlfSU5URl9TRUxfUk1JSSkge1xcbiBcXHRcXHRpZiAocGxhdC1cXHUwMDNlcm1paV9jbGtfZnJvbV9tYWMpXFxuQEAgLTI4OCwxMiArMzA0LDE3IEBAIHN0YXRpYyBpbnQgbXQ4MTk1X3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcXG4gXFx0LyogTVQ4MTk1IG9ubHkgc3VwcG9ydCBleHRlcm5hbCBQSFkgKi9cXG4gXFx0aW50Zl92YWwgfD0gTVQ4MTk1X0VYVF9QSFlfTU9ERTtcXG4gXFxuLVxcdHJlZ21hcF93cml0ZShwbGF0LVxcdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLCBpbnRmX3ZhbCk7XFxuK1xcdGlmIChwbGF0LVxcdTAwM2V2YXJpYW50LVxcdTAwM2V1c2Vfb3V0X29wKVxcbitcXHRcXHRpbnRmX3ZhbCB8PSBNVDgxODlfQ1RSTDBfVFhDX09VVF9PUDtcXG4rXFxuK1xcdHJlZ21hcF93cml0ZShwbGF0LVxcdTAwM2VwZXJpX3JlZ21hcCxcXG4rXFx0XFx0ICAgICByZWdfb2Zmc2V0ICsgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLFxcbitcXHRcXHQgICAgIGludGZfdmFsKTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbi1zdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4rc3RhdGljIHZvaWQgZGVsYXlfcHMyc3RhZ2VfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4ge1xcbiBcXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXFx1MDAyNnBsYXQtXFx1MDAzZW1hY19kZWxheTtcXG4gXFxuQEAgLTMwMiw3ICszMjMsNyBAQCBzdGF0aWMgdm9pZCBtdDgxOTVfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4gXFx0bWFjX2RlbGF5LVxcdTAwM2VyeF9kZWxheSAvPSAyOTA7XFxuIH1cXG4gXFxuLXN0YXRpYyB2b2lkIG10ODE5NV9kZWxheV9zdGFnZTJwcyhzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbitzdGF0aWMgdm9pZCBkZWxheV9zdGFnZTJwc192MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxcbiB7XFxuIFxcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcXHUwMDI2cGxhdC1cXHUwMDNlbWFjX2RlbGF5O1xcbiBcXG5AQCAtMzExLDEyICszMzIsMTYgQEAgc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuIFxcdG1hY19kZWxheS1cXHUwMDNlcnhfZGVsYXkgKj0gMjkwO1xcbiB9XFxuIFxcbi1zdGF0aWMgaW50IG10ODE5NV9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4rc3RhdGljIGludCBzZXRfZGVsYXlfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4ge1xcbiBcXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXFx1MDAyNnBsYXQtXFx1MDAzZW1hY19kZWxheTtcXG4tXFx0dTMyIGd0eGNfZGVsYXlfdmFsID0gMCwgZGVsYXlfdmFsID0gMCwgcm1paV9kZWxheV92YWwgPSAwO1xcbitcXHR1MzIgcmVnX29mZnNldCA9IHBsYXQtXFx1MDAzZXZhcmlhbnQtXFx1MDAzZXBlcmlfZXRoX2N0cmxfb2Zmc2V0O1xcbitcXHR1MzIgZ3R4Y19kZWxheV9tYXNrID0gMDtcXG4rXFx0dTMyIGd0eGNfZGVsYXlfdmFsID0gMDtcXG4rXFx0dTMyIHJtaWlfZGVsYXlfdmFsID0gMDtcXG4rXFx0dTMyIGRlbGF5X3ZhbCA9IDA7XFxuIFxcbi1cXHRtdDgxOTVfZGVsYXlfcHMyc3RhZ2UocGxhdCk7XFxuK1xcdGRlbGF5X3BzMnN0YWdlX3YyKHBsYXQpO1xcbiBcXG4gXFx0c3dpdGNoIChwbGF0LVxcdTAwM2VwaHlfbW9kZSkge1xcbiBcXHRjYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUk6XFxuQEAgLTM4OCw2ICs0MTMsOSBAQCBzdGF0aWMgaW50IG10ODE5NV9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcXG4gXFx0XFx0Z3R4Y19kZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX0dUWENfU1RBR0VTLCBtYWNfZGVsYXktXFx1MDAzZXR4X2RlbGF5KTtcXG4gXFx0XFx0Z3R4Y19kZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX0dUWENfSU5WLCBtYWNfZGVsYXktXFx1MDAzZXR4X2ludik7XFxuIFxcbitcXHRcXHRpZiAocGxhdC1cXHUwMDNldmFyaWFudC1cXHUwMDNldXNlX3N0YWdlX2ZpbmUpXFxuK1xcdFxcdFxcdGd0eGNfZGVsYXlfdmFsIHw9IE1UODE4OV9DVFJMMF9ETFlfR1RYQ19TVEFHRV9GSU5FO1xcbitcXG4gXFx0XFx0ZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfRU5BQkxFLCAhIW1hY19kZWxheS1cXHUwMDNlcnhfZGVsYXkpO1xcbiBcXHRcXHRkZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX1JYQ19TVEFHRVMsIG1hY19kZWxheS1cXHUwMDNlcnhfZGVsYXkpO1xcbiBcXHRcXHRkZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX1JYQ19JTlYsIG1hY19kZWxheS1cXHUwMDNlcnhfaW52KTtcXG5AQCAtMzk4LDI5ICs0MjYsNTIgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuIFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbiBcXHR9XFxuIFxcbitcXHRndHhjX2RlbGF5X21hc2sgPSBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfFxcbitcXHRcXHRcXHQgIE1UODE5NV9ETFlfR1RYQ19JTlYgfFxcbitcXHRcXHRcXHQgIE1UODE5NV9ETFlfR1RYQ19FTkFCTEUgfFxcbitcXHRcXHRcXHQgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVM7XFxuK1xcbitcXHRpZiAocGxhdC1cXHUwMDNldmFyaWFudC1cXHUwMDNldXNlX3N0YWdlX2ZpbmUpXFxuK1xcdFxcdGd0eGNfZGVsYXlfbWFzayB8PSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORTtcXG4rXFxuIFxcdHJlZ21hcF91cGRhdGVfYml0cyhwbGF0LVxcdTAwM2VwZXJpX3JlZ21hcCxcXG4tXFx0XFx0XFx0ICAgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLFxcbi1cXHRcXHRcXHQgICBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfFxcbi1cXHRcXHRcXHQgICBNVDgxOTVfRExZX0dUWENfSU5WIHxcXG4tXFx0XFx0XFx0ICAgTVQ4MTk1X0RMWV9HVFhDX0VOQUJMRSB8XFxuLVxcdFxcdFxcdCAgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVMsXFxuK1xcdFxcdFxcdCAgIHJlZ19vZmZzZXQgKyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsXFxuK1xcdFxcdFxcdCAgIGd0eGNfZGVsYXlfbWFzayxcXG4gXFx0XFx0XFx0ICAgZ3R4Y19kZWxheV92YWwpO1xcbi1cXHRyZWdtYXBfd3JpdGUocGxhdC1cXHUwMDNlcGVyaV9yZWdtYXAsIE1UODE5NV9QRVJJX0VUSF9DVFJMMSwgZGVsYXlfdmFsKTtcXG4tXFx0cmVnbWFwX3dyaXRlKHBsYXQtXFx1MDAzZXBlcmlfcmVnbWFwLCBNVDgxOTVfUEVSSV9FVEhfQ1RSTDIsIHJtaWlfZGVsYXlfdmFsKTtcXG4rXFx0cmVnbWFwX3dyaXRlKHBsYXQtXFx1MDAzZXBlcmlfcmVnbWFwLFxcbitcXHRcXHQgICAgIHJlZ19vZmZzZXQgKyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDEsXFxuK1xcdFxcdCAgICAgZGVsYXlfdmFsKTtcXG4rXFx0cmVnbWFwX3dyaXRlKHBsYXQtXFx1MDAzZXBlcmlfcmVnbWFwLFxcbitcXHRcXHQgICAgIHJlZ19vZmZzZXQgKyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDIsXFxuK1xcdFxcdCAgICAgcm1paV9kZWxheV92YWwpO1xcbiBcXG4tXFx0bXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHBsYXQpO1xcbitcXHRkZWxheV9zdGFnZTJwc192MihwbGF0KTtcXG4gXFxuIFxcdHJldHVybiAwO1xcbiB9XFxuIFxcbitzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQ4MTg5X2dtYWNfdmFyaWFudCA9IHtcXG4rXFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXFxuK1xcdC5kd21hY19zZXRfZGVsYXkgPSBzZXRfZGVsYXlfdjIsXFxuK1xcdC5jbGtfbGlzdCA9IG10ODE4OV9kd21hY19jbGtfbCxcXG4rXFx0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxODlfZHdtYWNfY2xrX2wpLFxcbitcXHQuZG1hX2JpdF9tYXNrID0gMzUsXFxuK1xcdC5yeF9kZWxheV9tYXggPSA5MjgwLFxcbitcXHQudHhfZGVsYXlfbWF4ID0gOTI4MCxcXG4rXFx0LnBlcmlfZXRoX2N0cmxfb2Zmc2V0ID0gTVQ4MTg5X1BFUklfRVRIX0NUUkxfQkFTRSxcXG4rXFx0LnVzZV9vdXRfb3AgPSB0cnVlLFxcbitcXHQudXNlX3N0YWdlX2ZpbmUgPSB0cnVlLFxcbit9O1xcbitcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10ODE5NV9nbWFjX3ZhcmlhbnQgPSB7XFxuLVxcdC5kd21hY19zZXRfcGh5X2ludGVyZmFjZSA9IG10ODE5NV9zZXRfaW50ZXJmYWNlLFxcbi1cXHQuZHdtYWNfc2V0X2RlbGF5ID0gbXQ4MTk1X3NldF9kZWxheSxcXG4rXFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXFxuK1xcdC5kd21hY19zZXRfZGVsYXkgPSBzZXRfZGVsYXlfdjIsXFxuIFxcdC5jbGtfbGlzdCA9IG10ODE5NV9kd21hY19jbGtfbCxcXG4gXFx0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxOTVfZHdtYWNfY2xrX2wpLFxcbiBcXHQucnhfZGVsYXlfbWF4ID0gOTI4MCxcXG4gXFx0LnR4X2RlbGF5X21heCA9IDkyODAsXFxuIFxcdC5kbWFfYml0X21hc2sgPSAzNSxcXG4rXFx0LnBlcmlfZXRoX2N0cmxfb2Zmc2V0ID0gTVQ4MTk1X1BFUklfRVRIX0NUUkxfQkFTRSxcXG4gfTtcXG4gXFxuIHN0YXRpYyBpbnQgbWVkaWF0ZWtfZHdtYWNfY29uZmlnX2R0KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXFxuQEAgLTY2Miw2ICs3MTMsOCBAQCBzdGF0aWMgdm9pZCBtZWRpYXRla19kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbWVkaWF0ZWtfZHdtYWNfbWF0Y2hbXSA9IHtcXG4gXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtZWRpYXRlayxtdDI3MTItZ21hY1xcXCIsXFxuIFxcdCAgLmRhdGEgPSBcXHUwMDI2bXQyNzEyX2dtYWNfdmFyaWFudCB9LFxcbitcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10ODE4OS1nbWFjXFxcIixcXG4rXFx0ICAuZGF0YSA9IFxcdTAwMjZtdDgxODlfZ21hY192YXJpYW50IH0sXFxuIFxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWVkaWF0ZWssbXQ4MTk1LWdtYWNcXFwiLFxcbiBcXHQgIC5kYXRhID0gXFx1MDAyNm10ODE5NV9nbWFjX3ZhcmlhbnQgfSxcXG4gXFx0eyB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjMzLjY2MjAzMjU4OVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQyMzgzNzgyNDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DIChNVDgxODkpIHRvIHRoZSBkd21hYy1tZWRpYXRlayBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IHJlbGllcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgc3BlY2lmaWMgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZXhlY3V0ZWQgb3IgcmVhY2hlZCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5ZDk0ZjA1ZTEzMmZjMTc2NDg0NTQwZjFhMTZhMTYwOTBhZjI3Y2I2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgNyAxNTo0NTozMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWVkaWF0ZWstZHdtYWMueWFtbFxuaW5kZXggM2FhYjIxYjhlOGRlNWIuLjAwMGFiZWMwMjNiMzE0IDEwMDY0NFxuLS0tIGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tZWRpYXRlay1kd21hYy55YW1sXG4rKysgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21lZGlhdGVrLWR3bWFjLnlhbWxcbkBAIC0yMCwxMyArMjAsMTEgQEAgc2VsZWN0OlxuICAgICAgICAgZW51bTpcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDI3MTItZ21hY1xuICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OC1nbWFjXG4rICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWNcbiAgICAgICAgICAgLSBtZWRpYXRlayxtdDgxOTUtZ21hY1xuICAgcmVxdWlyZWQ6XG4gICAgIC0gY29tcGF0aWJsZVxuIFxuLWFsbE9mOlxuLSAgLSAkcmVmOiBzbnBzLGR3bWFjLnlhbWwjXG4tXG4gcHJvcGVydGllczpcbiAgIGNvbXBhdGlibGU6XG4gICAgIG9uZU9mOlxuQEAgLTM2LDYgKzM0LDcgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy00LjIwYVxuICAgICAgIC0gaXRlbXM6XG4gICAgICAgICAgIC0gZW51bTpcbisgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTg5LWdtYWNcbiAgICAgICAgICAgICAgIC0gbWVkaWF0ZWssbXQ4MTk1LWdtYWNcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjEwYVxuICAgICAgIC0gaXRlbXM6XG5AQCAtNDQsMjYgKzQzLDYgQEAgcHJvcGVydGllczpcbiAgICAgICAgICAgLSBjb25zdDogbWVkaWF0ZWssbXQ4MTk1LWdtYWNcbiAgICAgICAgICAgLSBjb25zdDogc25wcyxkd21hYy01LjEwYVxuIFxuLSAgY2xvY2tzOlxuLSAgICBtaW5JdGVtczogNVxuLSAgICBpdGVtczpcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBBWEkgY2xvY2tcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBBUEIgY2xvY2tcbi0gICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgTWFpbiBjbG9ja1xuLSAgICAgIC0gZGVzY3JpcHRpb246IFBUUCBjbG9ja1xuLSAgICAgIC0gZGVzY3JpcHRpb246IFJNSUkgcmVmZXJlbmNlIGNsb2NrIHByb3ZpZGVkIGJ5IE1BQ1xuLSAgICAgIC0gZGVzY3JpcHRpb246IE1BQyBjbG9jayBnYXRlXG4tXG4tICBjbG9jay1uYW1lczpcbi0gICAgbWluSXRlbXM6IDVcbi0gICAgaXRlbXM6XG4tICAgICAgLSBjb25zdDogYXhpXG4tICAgICAgLSBjb25zdDogYXBiXG4tICAgICAgLSBjb25zdDogbWFjX21haW5cbi0gICAgICAtIGNvbnN0OiBwdHBfcmVmXG4tICAgICAgLSBjb25zdDogcm1paV9pbnRlcm5hbFxuLSAgICAgIC0gY29uc3Q6IG1hY19jZ1xuLVxuICAgaW50ZXJydXB0czpcbiAgICAgbWF4SXRlbXM6IDFcbiBcbkBAIC0xNDcsNiArMTI2LDU4IEBAIHJlcXVpcmVkOlxuICAgLSBwaHktbW9kZVxuICAgLSBtZWRpYXRlayxwZXJpY2ZnXG4gXG4rYWxsT2Y6XG4rICAtICRyZWY6IHNucHMsZHdtYWMueWFtbCNcbisgIC0gaWY6XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGNvbXBhdGlibGU6XG4rICAgICAgICAgIGNvbnRhaW5zOlxuKyAgICAgICAgICAgIGVudW06XG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10MjcxMi1nbWFjXG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OC1nbWFjXG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE5NS1nbWFjXG4rICAgIHRoZW46XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGNsb2NrczpcbisgICAgICAgICAgbWluSXRlbXM6IDVcbisgICAgICAgICAgaXRlbXM6XG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogQVhJIGNsb2NrXG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogQVBCIGNsb2NrXG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2tcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBQVFAgY2xvY2tcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBSTUlJIHJlZmVyZW5jZSBjbG9jayBwcm92aWRlZCBieSBNQUNcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBNQUMgY2xvY2sgZ2F0ZVxuK1xuKyAgICAgICAgY2xvY2stbmFtZXM6XG4rICAgICAgICAgIG1pbkl0ZW1zOiA1XG4rICAgICAgICAgIGl0ZW1zOlxuKyAgICAgICAgICAgIC0gY29uc3Q6IGF4aVxuKyAgICAgICAgICAgIC0gY29uc3Q6IGFwYlxuKyAgICAgICAgICAgIC0gY29uc3Q6IG1hY19tYWluXG4rICAgICAgICAgICAgLSBjb25zdDogcHRwX3JlZlxuKyAgICAgICAgICAgIC0gY29uc3Q6IHJtaWlfaW50ZXJuYWxcbisgICAgICAgICAgICAtIGNvbnN0OiBtYWNfY2dcbitcbisgIC0gaWY6XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGNvbXBhdGlibGU6XG4rICAgICAgICAgIGNvbnRhaW5zOlxuKyAgICAgICAgICAgIGVudW06XG4rICAgICAgICAgICAgICAtIG1lZGlhdGVrLG10ODE4OS1nbWFjXG4rICAgIHRoZW46XG4rICAgICAgcHJvcGVydGllczpcbisgICAgICAgIGNsb2NrczpcbisgICAgICAgICAgaXRlbXM6XG4rICAgICAgICAgICAgLSBkZXNjcmlwdGlvbjogTUFDIE1haW4gY2xvY2tcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBQVFAgY2xvY2tcbisgICAgICAgICAgICAtIGRlc2NyaXB0aW9uOiBSTUlJIHJlZmVyZW5jZSBjbG9jayBwcm92aWRlZCBieSBNQUNcbitcbisgICAgICAgIGNsb2NrLW5hbWVzOlxuKyAgICAgICAgICBpdGVtczpcbisgICAgICAgICAgICAtIGNvbnN0OiBtYWNfbWFpblxuKyAgICAgICAgICAgIC0gY29uc3Q6IHB0cF9yZWZcbisgICAgICAgICAgICAtIGNvbnN0OiBybWlpX2ludGVybmFsXG4rXG4gdW5ldmFsdWF0ZWRQcm9wZXJ0aWVzOiBmYWxzZVxuIFxuIGV4YW1wbGVzOlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1lZGlhdGVrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jXG5pbmRleCAzMGFlMGRiYTdmZmZkYi4uZTdlMzM2YjFmMTE0YzQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tZWRpYXRlay5jXG5AQCAtMzYsOCArMzYsMTYgQEBcbiAjZGVmaW5lIEVUSF9GSU5FX0RMWV9HVFhDXHRCSVQoMSlcbiAjZGVmaW5lIEVUSF9GSU5FX0RMWV9SWENcdEJJVCgwKVxuIFxuKy8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTg5ICovXG4rI2RlZmluZSBNVDgxODlfUEVSSV9FVEhfQ1RSTF9CQVNFXHRcdDB4MjcwXG4rXG4rI2RlZmluZSBNVDgxODlfQ1RSTDBfVFhDX09VVF9PUFx0XHRcdEJJVCgyMClcbisjZGVmaW5lIE1UODE4OV9DVFJMMF9ETFlfR1RYQ19TVEFHRV9GSU5FXHRHRU5NQVNLKDExLCA2KVxuK1xuIC8qIFBlcmkgQ29uZmlndXJhdGlvbiByZWdpc3RlciBmb3IgbXQ4MTk1ICovXG4tI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDBcdFx0MHhGRDBcbisjZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMX0JBU0VcdDB4RkQwXG4rXG4rI2RlZmluZSBNVDgxOTVfUEVSSV9FVEhfQ1RSTDBcdFx0MHgwXG4gI2RlZmluZSBNVDgxOTVfUk1JSV9DTEtfU1JDX0lOVEVSTkFMXHRCSVQoMjgpXG4gI2RlZmluZSBNVDgxOTVfUk1JSV9DTEtfU1JDX1JYQ1x0XHRCSVQoMjcpXG4gI2RlZmluZSBNVDgxOTVfRVRIX0lOVEZfU0VMXHRcdEdFTk1BU0soMjYsIDI0KVxuQEAgLTQ3LDcgKzU1LDcgQEBcbiAjZGVmaW5lIE1UODE5NV9ETFlfR1RYQ19FTkFCTEVcdFx0QklUKDUpXG4gI2RlZmluZSBNVDgxOTVfRExZX0dUWENfU1RBR0VTXHRcdEdFTk1BU0soNCwgMClcbiBcbi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMVx0XHQweEZENFxuKyNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwxXHRcdDB4NFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9SWENfSU5WXHRcdEJJVCgyNSlcbiAjZGVmaW5lIE1UODE5NV9ETFlfUlhDX0VOQUJMRVx0XHRCSVQoMTgpXG4gI2RlZmluZSBNVDgxOTVfRExZX1JYQ19TVEFHRVNcdFx0R0VOTUFTSygxNywgMTMpXG5AQCAtNTUsNyArNjMsNyBAQFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9UWENfRU5BQkxFXHRcdEJJVCg1KVxuICNkZWZpbmUgTVQ4MTk1X0RMWV9UWENfU1RBR0VTXHRcdEdFTk1BU0soNCwgMClcbiBcbi0jZGVmaW5lIE1UODE5NV9QRVJJX0VUSF9DVFJMMlx0XHQweEZEOFxuKyNkZWZpbmUgTVQ4MTk1X1BFUklfRVRIX0NUUkwyXHRcdDB4OFxuICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19JTlZcdFx0QklUKDI1KVxuICNkZWZpbmUgTVQ4MTk1X0RMWV9STUlJX1JYQ19FTkFCTEVcdEJJVCgxOClcbiAjZGVmaW5lIE1UODE5NV9ETFlfUk1JSV9SWENfU1RBR0VTXHRHRU5NQVNLKDE3LCAxMylcbkBAIC05NSw3ICsxMDMsMTAgQEAgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQge1xuIFxuIFx0dTMyIHJ4X2RlbGF5X21heDtcbiBcdHUzMiB0eF9kZWxheV9tYXg7XG4rXHR1MzIgcGVyaV9ldGhfY3RybF9vZmZzZXQ7XG4gXHR1OCBkbWFfYml0X21hc2s7XG4rXHRib29sIHVzZV9vdXRfb3A7XG4rXHRib29sIHVzZV9zdGFnZV9maW5lO1xuIH07XG4gXG4gLyogbGlzdCBvZiBjbG9ja3MgcmVxdWlyZWQgZm9yIG1hYyAqL1xuQEAgLTEwNyw3ICsxMTgsMTEgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBtdDgxOTVfZHdtYWNfY2xrX2xbXSA9IHtcbiBcdFwiYXhpXCIsIFwiYXBiXCIsIFwibWFjX2NnXCIsIFwibWFjX21haW5cIiwgXCJwdHBfcmVmXCJcbiB9O1xuIFxuLXN0YXRpYyBpbnQgbXQyNzEyX3NldF9pbnRlcmZhY2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcbitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG10ODE4OV9kd21hY19jbGtfbFtdID0ge1xuK1x0XCJtYWNfbWFpblwiLCBcInB0cF9yZWZcIlxuK307XG4rXG4rc3RhdGljIGludCBzZXRfcGh5X2ludGVyZmFjZV92MShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0XHRcdFx0dTggcGh5X2ludGZfc2VsKVxuIHtcbiBcdHUzMiBpbnRmX3ZhbCA9IHBoeV9pbnRmX3NlbDtcbkBAIC0xMjQsNyArMTM5LDcgQEAgc3RhdGljIGludCBtdDI3MTJfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuLXN0YXRpYyB2b2lkIG10MjcxMl9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuK3N0YXRpYyB2b2lkIGRlbGF5X3BzMnN0YWdlX3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFxuQEAgLTE0OSw3ICsxNjQsNyBAQCBzdGF0aWMgdm9pZCBtdDI3MTJfZGVsYXlfcHMyc3RhZ2Uoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdH1cbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4rc3RhdGljIHZvaWQgZGVsYXlfc3RhZ2UycHNfdjEoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiB7XG4gXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXHUwMDI2cGxhdC1cdTAwM2VtYWNfZGVsYXk7XG4gXG5AQCAtMTc0LDEyICsxODksMTIgQEAgc3RhdGljIHZvaWQgbXQyNzEyX2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4gXHR9XG4gfVxuIFxuLXN0YXRpYyBpbnQgbXQyNzEyX3NldF9kZWxheShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuK3N0YXRpYyBpbnQgc2V0X2RlbGF5X3YxKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4ge1xuIFx0c3RydWN0IG1hY19kZWxheV9zdHJ1Y3QgKm1hY19kZWxheSA9IFx1MDAyNnBsYXQtXHUwMDNlbWFjX2RlbGF5O1xuIFx0dTMyIGRlbGF5X3ZhbCA9IDAsIGZpbmVfdmFsID0gMDtcbiBcbi1cdG10MjcxMl9kZWxheV9wczJzdGFnZShwbGF0KTtcbitcdGRlbGF5X3BzMnN0YWdlX3YxKHBsYXQpO1xuIFxuIFx0c3dpdGNoIChwbGF0LVx1MDAzZXBoeV9tb2RlKSB7XG4gXHRjYXNlIFBIWV9JTlRFUkZBQ0VfTU9ERV9NSUk6XG5AQCAtMjU4LDE0ICsyNzMsMTQgQEAgc3RhdGljIGludCBtdDI3MTJfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4gXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgUEVSSV9FVEhfRExZLCBkZWxheV92YWwpO1xuIFx0cmVnbWFwX3dyaXRlKHBsYXQtXHUwMDNlcGVyaV9yZWdtYXAsIFBFUklfRVRIX0RMWV9GSU5FLCBmaW5lX3ZhbCk7XG4gXG4tXHRtdDI3MTJfZGVsYXlfc3RhZ2UycHMocGxhdCk7XG4rXHRkZWxheV9zdGFnZTJwc192MShwbGF0KTtcbiBcbiBcdHJldHVybiAwO1xuIH1cbiBcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcbi1cdFx0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gbXQyNzEyX3NldF9pbnRlcmZhY2UsXG4tXHRcdC5kd21hY19zZXRfZGVsYXkgPSBtdDI3MTJfc2V0X2RlbGF5LFxuK1x0XHQuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBzZXRfcGh5X2ludGVyZmFjZV92MSxcbitcdFx0LmR3bWFjX3NldF9kZWxheSA9IHNldF9kZWxheV92MSxcbiBcdFx0LmNsa19saXN0ID0gbXQyNzEyX2R3bWFjX2Nsa19sLFxuIFx0XHQubnVtX2Nsa3MgPSBBUlJBWV9TSVpFKG10MjcxMl9kd21hY19jbGtfbCksXG4gXHRcdC5yeF9kZWxheV9tYXggPSAxNzYwMCxcbkBAIC0yNzMsMTAgKzI4OCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG1lZGlhdGVrX2R3bWFjX3ZhcmlhbnQgbXQyNzEyX2dtYWNfdmFyaWFudCA9IHtcbiBcdFx0LmRtYV9iaXRfbWFzayA9IDMzLFxuIH07XG4gXG4tc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuK3N0YXRpYyBpbnQgc2V0X3BoeV9pbnRlcmZhY2VfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdCxcbiBcdFx0XHRcdHU4IHBoeV9pbnRmX3NlbClcbiB7XG4gXHR1MzIgaW50Zl92YWwgPSBGSUVMRF9QUkVQKE1UODE5NV9FVEhfSU5URl9TRUwsIHBoeV9pbnRmX3NlbCk7XG4rXHR1MzIgcmVnX29mZnNldCA9IHBsYXQtXHUwMDNldmFyaWFudC1cdTAwM2VwZXJpX2V0aF9jdHJsX29mZnNldDtcbiBcbiBcdGlmIChwaHlfaW50Zl9zZWwgPT0gUEhZX0lOVEZfU0VMX1JNSUkpIHtcbiBcdFx0aWYgKHBsYXQtXHUwMDNlcm1paV9jbGtfZnJvbV9tYWMpXG5AQCAtMjg4LDEyICszMDQsMTcgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2ludGVyZmFjZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0LFxuIFx0LyogTVQ4MTk1IG9ubHkgc3VwcG9ydCBleHRlcm5hbCBQSFkgKi9cbiBcdGludGZfdmFsIHw9IE1UODE5NV9FWFRfUEhZX01PREU7XG4gXG4tXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwwLCBpbnRmX3ZhbCk7XG4rXHRpZiAocGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXVzZV9vdXRfb3ApXG4rXHRcdGludGZfdmFsIHw9IE1UODE4OV9DVFJMMF9UWENfT1VUX09QO1xuK1xuK1x0cmVnbWFwX3dyaXRlKHBsYXQtXHUwMDNlcGVyaV9yZWdtYXAsXG4rXHRcdCAgICAgcmVnX29mZnNldCArIE1UODE5NV9QRVJJX0VUSF9DVFJMMCxcbitcdFx0ICAgICBpbnRmX3ZhbCk7XG4gXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3BzMnN0YWdlKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4rc3RhdGljIHZvaWQgZGVsYXlfcHMyc3RhZ2VfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiB7XG4gXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXHUwMDI2cGxhdC1cdTAwM2VtYWNfZGVsYXk7XG4gXG5AQCAtMzAyLDcgKzMyMyw3IEBAIHN0YXRpYyB2b2lkIG10ODE5NV9kZWxheV9wczJzdGFnZShzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIFx0bWFjX2RlbGF5LVx1MDAzZXJ4X2RlbGF5IC89IDI5MDtcbiB9XG4gXG4tc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4rc3RhdGljIHZvaWQgZGVsYXlfc3RhZ2UycHNfdjIoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiB7XG4gXHRzdHJ1Y3QgbWFjX2RlbGF5X3N0cnVjdCAqbWFjX2RlbGF5ID0gXHUwMDI2cGxhdC1cdTAwM2VtYWNfZGVsYXk7XG4gXG5AQCAtMzExLDEyICszMzIsMTYgQEAgc3RhdGljIHZvaWQgbXQ4MTk1X2RlbGF5X3N0YWdlMnBzKHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4gXHRtYWNfZGVsYXktXHUwMDNlcnhfZGVsYXkgKj0gMjkwO1xuIH1cbiBcbi1zdGF0aWMgaW50IG10ODE5NV9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbitzdGF0aWMgaW50IHNldF9kZWxheV92MihzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuIHtcbiBcdHN0cnVjdCBtYWNfZGVsYXlfc3RydWN0ICptYWNfZGVsYXkgPSBcdTAwMjZwbGF0LVx1MDAzZW1hY19kZWxheTtcbi1cdHUzMiBndHhjX2RlbGF5X3ZhbCA9IDAsIGRlbGF5X3ZhbCA9IDAsIHJtaWlfZGVsYXlfdmFsID0gMDtcbitcdHUzMiByZWdfb2Zmc2V0ID0gcGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXBlcmlfZXRoX2N0cmxfb2Zmc2V0O1xuK1x0dTMyIGd0eGNfZGVsYXlfbWFzayA9IDA7XG4rXHR1MzIgZ3R4Y19kZWxheV92YWwgPSAwO1xuK1x0dTMyIHJtaWlfZGVsYXlfdmFsID0gMDtcbitcdHUzMiBkZWxheV92YWwgPSAwO1xuIFxuLVx0bXQ4MTk1X2RlbGF5X3BzMnN0YWdlKHBsYXQpO1xuK1x0ZGVsYXlfcHMyc3RhZ2VfdjIocGxhdCk7XG4gXG4gXHRzd2l0Y2ggKHBsYXQtXHUwMDNlcGh5X21vZGUpIHtcbiBcdGNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX01JSTpcbkBAIC0zODgsNiArNDEzLDkgQEAgc3RhdGljIGludCBtdDgxOTVfc2V0X2RlbGF5KHN0cnVjdCBtZWRpYXRla19kd21hY19wbGF0X2RhdGEgKnBsYXQpXG4gXHRcdGd0eGNfZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9HVFhDX1NUQUdFUywgbWFjX2RlbGF5LVx1MDAzZXR4X2RlbGF5KTtcbiBcdFx0Z3R4Y19kZWxheV92YWwgfD0gRklFTERfUFJFUChNVDgxOTVfRExZX0dUWENfSU5WLCBtYWNfZGVsYXktXHUwMDNldHhfaW52KTtcbiBcbitcdFx0aWYgKHBsYXQtXHUwMDNldmFyaWFudC1cdTAwM2V1c2Vfc3RhZ2VfZmluZSlcbitcdFx0XHRndHhjX2RlbGF5X3ZhbCB8PSBNVDgxODlfQ1RSTDBfRExZX0dUWENfU1RBR0VfRklORTtcbitcbiBcdFx0ZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfRU5BQkxFLCAhIW1hY19kZWxheS1cdTAwM2VyeF9kZWxheSk7XG4gXHRcdGRlbGF5X3ZhbCB8PSBGSUVMRF9QUkVQKE1UODE5NV9ETFlfUlhDX1NUQUdFUywgbWFjX2RlbGF5LVx1MDAzZXJ4X2RlbGF5KTtcbiBcdFx0ZGVsYXlfdmFsIHw9IEZJRUxEX1BSRVAoTVQ4MTk1X0RMWV9SWENfSU5WLCBtYWNfZGVsYXktXHUwMDNlcnhfaW52KTtcbkBAIC0zOTgsMjkgKzQyNiw1MiBAQCBzdGF0aWMgaW50IG10ODE5NV9zZXRfZGVsYXkoc3RydWN0IG1lZGlhdGVrX2R3bWFjX3BsYXRfZGF0YSAqcGxhdClcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXG4rXHRndHhjX2RlbGF5X21hc2sgPSBNVDgxOTVfUkdNSUlfVFhDX1BIQVNFX0NUUkwgfFxuK1x0XHRcdCAgTVQ4MTk1X0RMWV9HVFhDX0lOViB8XG4rXHRcdFx0ICBNVDgxOTVfRExZX0dUWENfRU5BQkxFIHxcbitcdFx0XHQgIE1UODE5NV9ETFlfR1RYQ19TVEFHRVM7XG4rXG4rXHRpZiAocGxhdC1cdTAwM2V2YXJpYW50LVx1MDAzZXVzZV9zdGFnZV9maW5lKVxuK1x0XHRndHhjX2RlbGF5X21hc2sgfD0gTVQ4MTg5X0NUUkwwX0RMWV9HVFhDX1NUQUdFX0ZJTkU7XG4rXG4gXHRyZWdtYXBfdXBkYXRlX2JpdHMocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCxcbi1cdFx0XHQgICBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsXG4tXHRcdFx0ICAgTVQ4MTk1X1JHTUlJX1RYQ19QSEFTRV9DVFJMIHxcbi1cdFx0XHQgICBNVDgxOTVfRExZX0dUWENfSU5WIHxcbi1cdFx0XHQgICBNVDgxOTVfRExZX0dUWENfRU5BQkxFIHxcbi1cdFx0XHQgICBNVDgxOTVfRExZX0dUWENfU1RBR0VTLFxuK1x0XHRcdCAgIHJlZ19vZmZzZXQgKyBNVDgxOTVfUEVSSV9FVEhfQ1RSTDAsXG4rXHRcdFx0ICAgZ3R4Y19kZWxheV9tYXNrLFxuIFx0XHRcdCAgIGd0eGNfZGVsYXlfdmFsKTtcbi1cdHJlZ21hcF93cml0ZShwbGF0LVx1MDAzZXBlcmlfcmVnbWFwLCBNVDgxOTVfUEVSSV9FVEhfQ1RSTDEsIGRlbGF5X3ZhbCk7XG4tXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCwgTVQ4MTk1X1BFUklfRVRIX0NUUkwyLCBybWlpX2RlbGF5X3ZhbCk7XG4rXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCxcbitcdFx0ICAgICByZWdfb2Zmc2V0ICsgTVQ4MTk1X1BFUklfRVRIX0NUUkwxLFxuK1x0XHQgICAgIGRlbGF5X3ZhbCk7XG4rXHRyZWdtYXBfd3JpdGUocGxhdC1cdTAwM2VwZXJpX3JlZ21hcCxcbitcdFx0ICAgICByZWdfb2Zmc2V0ICsgTVQ4MTk1X1BFUklfRVRIX0NUUkwyLFxuK1x0XHQgICAgIHJtaWlfZGVsYXlfdmFsKTtcbiBcbi1cdG10ODE5NV9kZWxheV9zdGFnZTJwcyhwbGF0KTtcbitcdGRlbGF5X3N0YWdlMnBzX3YyKHBsYXQpO1xuIFxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfdmFyaWFudCBtdDgxODlfZ21hY192YXJpYW50ID0ge1xuK1x0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXG4rXHQuZHdtYWNfc2V0X2RlbGF5ID0gc2V0X2RlbGF5X3YyLFxuK1x0LmNsa19saXN0ID0gbXQ4MTg5X2R3bWFjX2Nsa19sLFxuK1x0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxODlfZHdtYWNfY2xrX2wpLFxuK1x0LmRtYV9iaXRfbWFzayA9IDM1LFxuK1x0LnJ4X2RlbGF5X21heCA9IDkyODAsXG4rXHQudHhfZGVsYXlfbWF4ID0gOTI4MCxcbitcdC5wZXJpX2V0aF9jdHJsX29mZnNldCA9IE1UODE4OV9QRVJJX0VUSF9DVFJMX0JBU0UsXG4rXHQudXNlX291dF9vcCA9IHRydWUsXG4rXHQudXNlX3N0YWdlX2ZpbmUgPSB0cnVlLFxuK307XG4rXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBtZWRpYXRla19kd21hY192YXJpYW50IG10ODE5NV9nbWFjX3ZhcmlhbnQgPSB7XG4tXHQuZHdtYWNfc2V0X3BoeV9pbnRlcmZhY2UgPSBtdDgxOTVfc2V0X2ludGVyZmFjZSxcbi1cdC5kd21hY19zZXRfZGVsYXkgPSBtdDgxOTVfc2V0X2RlbGF5LFxuK1x0LmR3bWFjX3NldF9waHlfaW50ZXJmYWNlID0gc2V0X3BoeV9pbnRlcmZhY2VfdjIsXG4rXHQuZHdtYWNfc2V0X2RlbGF5ID0gc2V0X2RlbGF5X3YyLFxuIFx0LmNsa19saXN0ID0gbXQ4MTk1X2R3bWFjX2Nsa19sLFxuIFx0Lm51bV9jbGtzID0gQVJSQVlfU0laRShtdDgxOTVfZHdtYWNfY2xrX2wpLFxuIFx0LnJ4X2RlbGF5X21heCA9IDkyODAsXG4gXHQudHhfZGVsYXlfbWF4ID0gOTI4MCxcbiBcdC5kbWFfYml0X21hc2sgPSAzNSxcbitcdC5wZXJpX2V0aF9jdHJsX29mZnNldCA9IE1UODE5NV9QRVJJX0VUSF9DVFJMX0JBU0UsXG4gfTtcbiBcbiBzdGF0aWMgaW50IG1lZGlhdGVrX2R3bWFjX2NvbmZpZ19kdChzdHJ1Y3QgbWVkaWF0ZWtfZHdtYWNfcGxhdF9kYXRhICpwbGF0KVxuQEAgLTY2Miw2ICs3MTMsOCBAQCBzdGF0aWMgdm9pZCBtZWRpYXRla19kd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtZWRpYXRla19kd21hY19tYXRjaFtdID0ge1xuIFx0eyAuY29tcGF0aWJsZSA9IFwibWVkaWF0ZWssbXQyNzEyLWdtYWNcIixcbiBcdCAgLmRhdGEgPSBcdTAwMjZtdDI3MTJfZ21hY192YXJpYW50IH0sXG4rXHR7IC5jb21wYXRpYmxlID0gXCJtZWRpYXRlayxtdDgxODktZ21hY1wiLFxuK1x0ICAuZGF0YSA9IFx1MDAyNm10ODE4OV9nbWFjX3ZhcmlhbnQgfSxcbiBcdHsgLmNvbXBhdGlibGUgPSBcIm1lZGlhdGVrLG10ODE5NS1nbWFjXCIsXG4gXHQgIC5kYXRhID0gXHUwMDI2bXQ4MTk1X2dtYWNfdmFyaWFudCB9LFxuIFx0eyB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxNTo0NTozMy42NjIwMzM4NzlaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxODcxODcxMTI2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIE5ldyBHTUFDIFZhcmlhbnQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoLiBJdCdzIHRvdWNoaW5nIGBkd21hYy1tZWRpYXRlay5jYCBhbmQgdGhlIGRldmljZSB0cmVlIGJpbmRpbmdzLiBUaGUgZ29hbCBpcyB0byBhZGQgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgR01BQyB2YXJpYW50OiBgbXQ4MTg5LWdtYWNgLiBJdCBsb29rcyBsaWtlIHRoZXJlJ3Mgc29tZSBmdW5jdGlvbiByZWZhY3RvcmluZyBoYXBwZW5pbmcgdG9vLCB3aGljaCBpcyBhbHdheXMgc29tZXRoaW5nIHRvIHBheSBjbG9zZSBhdHRlbnRpb24gdG8sIG1ha2luZyBzdXJlIHRoZSBjaGFuZ2VzIGFyZSBjbGVhbiBhbmQgZG9uJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zLiBUaGV5J3JlIHJlbmFtaW5nIGEgYnVuY2ggb2YgYG10MjcxMl9gIGFuZCBgbXQ4MTk1X2AgZnVuY3Rpb25zIHRvIGEgYHYxYCBhbmQgYHYyYCBzY2hlbWUsIGFuZCB0aGVuIHVzaW5nIHRoZSBgdjJgIHZlcnNpb25zIGZvciB0aGlzIG5ldyBgbXQ4MTg5X2dtYWNfdmFyaWFudGAuXG5cbk15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBjYW4gSSBldmVuICp0ZXN0KiB0aGlzIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudD8gVGhpcyBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciwgYGR3bWFjLW1lZGlhdGVrLmNgLCBhbmQgdGhvc2UgYXJlIG9mdGVuIGEgcGFpbi4gUGxhdGZvcm0gZHJpdmVycyBmb3Igc3BlY2lmaWMgU29DcyBsaWtlIHRoZSBNZWRpYVRlayBvbmVzIGFyZSB0eXBpY2FsbHkgbm90IHRlc3RhYmxlIGluIGdlbmVyaWMgUUVNVSwgdW5sZXNzIHRoZXJlJ3MgZGVkaWNhdGVkIG1hY2hpbmUgZW11bGF0aW9uIGZvciB0aGUgdGFyZ2V0IGhhcmR3YXJlLiBTbywgSSBuZWVkIHRvIGNoZWNrIGlmIHRoaXMgZHJpdmVyIGNhbiBldmVuIGJlIHByb2JlZCBpbiBRRU1VIG9yIGlmIGl0J3Mgc3RyaWN0bHkgdGllZCB0byB0aGUgcGh5c2ljYWwgaGFyZHdhcmUgZGV2aWNlIHRyZWUuXG5cblRoZSBkcml2ZXIgbWF0Y2hlcyBvbiB0aGUgdXN1YWwgTWVkaWFUZWsgR01BQyBJRHMgbGlrZSBgbWVkaWF0ZWssbXQ4MTg5LWdtYWNgLCBhbmQgc28gb24uIFVubGVzcyBJIGNhbiBpbmplY3QgYSBkZXZpY2UgdHJlZSBub2RlIGludG8gdGhlIGVudmlyb25tZW50LCBvciBRRU1VIGhhcyAqc3BlY2lmaWMqIGVtdWxhdGlvbiBmb3IgdGhpcyBNZWRpYVRlayBib2FyZCAod2hpY2ggaXMgdW5saWtlbHkpLCBpdCdzIHByb2JhYmx5IHVucmVhY2hhYmxlLlxuXG5Ob3csIHdhaXQsIGNvdWxkIEkgdXNlIHNvbWV0aGluZyBsaWtlIHN5emthbGxlcj8gU3l6a2FsbGVyICpjYW4qIGluamVjdCBwbGF0Zm9ybSBkZXZpY2VzIHVzaW5nIGBzeXpfZGV2X3BsYXRmb3JtX2FkZGAgb3IgYnkgbWFuaXB1bGF0aW5nIHRoZSBkZXZpY2UgdHJlZSwgYnV0IG1vc3QgcGxhdGZvcm0gZHJpdmVycyBsaWtlIHRoaXMgdGhhdCBNTUlPIHRvIHNwZWNpZmljIHBoeXNpY2FsIGFkZHJlc3NlcyB3b3VsZCBjcmFzaCBvciBqdXN0IGZhaWwgdG8gcHJvYmUgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlIHByZXNlbnQgdW5sZXNzLCBvZiBjb3Vyc2UsIHRoZSByZWdpc3RlcnMgYXJlIG1vY2tlZC4gQW5kIEkndmUgZm91bmQgaW4gdGhlIHBhc3QgdGhhdCB3aGlsZSBzeXprYWxsZXIgaGFzIHBzZXVkby1kZXZpY2VzIGZvciAqc29tZSogdGhpbmdzLCByYW5kb20gU29DIGV0aGVybmV0IE1BQ3MgYXJlIHVzdWFsbHkganVzdCBhIG5vLWdvIGZvciBwcm9iaW5nLlxuXG5TbywgaXMgaXQgZnV6emFibGU/IFByb2JhYmx5IG5vdCwgYXQgbGVhc3Qgbm90IGluIGFueSBzZW5zaWJsZSB3YXkuIFVubGVzcyBpdCdzIGEgVVNCIG9yIFBDSSBkZXZpY2UgdGhhdCBjYW4gYmUgZW11bGF0ZWQgKHdpdGggYSBkdW1teSBIQ0Qgb3IgUENJIGVtdWxhdGlvbiksIG9yIGlzIGEgKnZpcnR1YWwqIGRyaXZlciwgSSdtIGdvaW5nIHRvIGNvbnNpZGVyIGl0IHVucmVhY2hhYmxlIGZvciB0aGUgdGltZSBiZWluZy4gR2VuZXJhbGx5LCB0aGVzZSBTb0Mtc3BlY2lmaWMgRXRoZXJuZXQgTUFDIGRyaXZlcnMgYXJlIG5vdCBmdXp6YWJsZSBpbiB4ODYgVk1zLiBJIHNob3VsZCBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGBkd21hYy1tZWRpYXRlay5jYCBpcyB0aWVkIHRvIGBDT05GSUdfRFdNQUNfTUVESUFURUtgLiBJdCdzIHdvcnRoIHZlcmlmeWluZy5cblxuXG4iLCJJbnB1dFRva2VucyI6NjkyNSwiT3V0cHV0VG9rZW5zIjoyMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjc2MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjUyLjM4MDc0NzMxM1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTQ4MDczMDQxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBEV01BQ19NRURJQVRFS1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTEwNj1jb25maWcgRFdNQUNfTFBDMThYWFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoxMTQ6Y29uZmlnIERXTUFDX01FRElBVEVLXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0xMTUtXFx0dHJpc3RhdGUgXFxcIk1lZGlhVGVrIE1UMjd4eCBHTUFDIHN1cHBvcnRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA3VDE1OjQ1OjU1LjMyODgyNTkwNFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1MTUwNTg1NjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyByZXF1ZXN0ZWQ6XG5cbioqQXNzZXNzaW5nIERlcGVuZGVuY2llcyBmb3IgYERXTUFDX01FRElBVEVLYCoqXG5cbk9rYXksIGZpcnN0IHRoaW5ncyBmaXJzdCwgbGV0J3MgZGl2ZSBpbnRvIHRoZSBgRFdNQUNfTUVESUFURUtgIG1vZHVsZSBhbmQgbWFwIG91dCBpdHMgbGFuZHNjYXBlLiBJIG5lZWQgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIGl0cyBkZXBlbmRlbmNpZXMuIFRoaXMgaXMgY3JpdGljYWwgZm9yIGV2ZXJ5dGhpbmcgZnJvbSB0cm91Ymxlc2hvb3RpbmcgaW50ZWdyYXRpb24gaXNzdWVzIHRvIHByZWRpY3RpbmcgdGhlIGltcGFjdCBvZiBwb3RlbnRpYWwgbW9kaWZpY2F0aW9ucyBkb3duIHRoZSBsaW5lLiBXZSBjYW4ndCBhZmZvcmQgdG8gaGF2ZSBhIGNhc2NhZGUgb2YgdW5leHBlY3RlZCBiZWhhdmlvci5cblxuU28sIEknbSB0aGlua2luZywgd2hlcmUgZG8gd2Ugc3RhcnQ/IEkgbmVlZCB0byBrbm93OiB3aGF0IG90aGVyIG1vZHVsZXMgb3IgbGlicmFyaWVzIGRvZXMgYERXTUFDX01FRElBVEVLYCByZWx5IG9uPyBBcmUgdGhlc2UgaW50ZXJuYWwgY29tcG9uZW50cywgc3BlY2lmaWMgdG8gdGhlIE1lZGlhVGVrIHBsYXRmb3JtLCBvciBhcmUgd2UgZGVhbGluZyB3aXRoIGV4dGVybmFsIGxpYnJhcmllcz8gV2hhdCB2ZXJzaW9uIGNvbnRyb2wgaXMgaW4gcGxhY2UgZm9yIHRoZXNlIGRlcGVuZGVuY2llcz8gQXJlIHRoZXkgbG9ja2VkIHRvIHNwZWNpZmljIHZlcnNpb25zLCBvciBkbyB3ZSBoYXZlIGEgcmFuZ2Ugd2UgY2FuIHdvcmsgd2l0aD8gQXJlIHRoZXJlIGtub3duIGNvbXBhdGliaWxpdHkgaXNzdWVzIGJldHdlZW4gdGhlIG1vZHVsZSBhbmQgYW55IG9mIGl0cyBkZXBlbmRlbmNpZXM/IEhhdmUgdGhlcmUgYmVlbiByZXBvcnRzIG9mIGluc3RhYmlsaXR5IGluIGNlcnRhaW4gZGVwZW5kZW5jeSB2ZXJzaW9ucz9cblxuSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGludGVyZmFjZXMuIEhvdyBkb2VzIGBEV01BQ19NRURJQVRFS2AgaW50ZXJhY3Qgd2l0aCB0aGVzZSBjb21wb25lbnRzPyBJcyBpdCB0aHJvdWdoIGRpcmVjdCBmdW5jdGlvbiBjYWxscywgbWVzc2FnZSBwYXNzaW5nLCBvciBzb21lIG90aGVyIG1lY2hhbmlzbT8gQXJlIHRoZXJlIGFueSBzaGFyZWQgcmVzb3VyY2VzLCBsaWtlIG1lbW9yeSByZWdpb25zLCB0aGF0IG1pZ2h0IHJlcXVpcmUgY2FyZWZ1bCBzeW5jaHJvbml6YXRpb24/IFdoYXQga2luZCBvZiB0ZXN0aW5nIGFuZCB2YWxpZGF0aW9uIGlzIGluIHBsYWNlIHRvIGVuc3VyZSB0aGVzZSBkZXBlbmRlbmNpZXMgYXJlIHByb3Blcmx5IG1hbmFnZWQ/XG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIHNwZWNpZmljcy4gV2UgbmVlZCB0byBnYXRoZXIgdGhpcyBpbmZvcm1hdGlvbiB0byBidWlsZCBhIHNvbGlkIGZvdW5kYXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg0MTMsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxNTo0NTo1OS44NDM4ODU5NDFaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTY5NzIwMzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVwZW5kcyBvbi4qQVJDSF9NRURJQVRFS1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTE0PWNvbmZpZyBEV01BQ19NRURJQVRFS1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE1LVxcdHRyaXN0YXRlIFxcXCJNZWRpYVRlayBNVDI3eHggR01BQyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MTE2OlxcdGRlcGVuZHMgb24gT0YgXFx1MDAyNlxcdTAwMjYgKEFSQ0hfTUVESUFURUsgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTE3LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDdUMTU6NDU6NTkuOTAwODYyNTIxWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzk5OTUxNDY0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRoYXQgdGhpcyBwYXRjaCBpc24ndCBnb2luZyB0byBiZSBmcnVpdGZ1bCBmb3IgZnV6emluZyBpbiBhIHN0YW5kYXJkIHNldHVwLiBUaGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gKGBBUkNIX01FRElBVEVLIHx8IENPTVBJTEVfVEVTVGApIGlzIGEgZGVhZCBnaXZlYXdheS4gU2luY2UgdGhpcyBpcyBhIHBsYXRmb3JtIGRyaXZlciBzcGVjaWZpY2FsbHkgZm9yIE1lZGlhVGVrIFNvQ3MsIGl0J3MgdmlydHVhbGx5IGltcG9zc2libGUgdG8gcmVhY2ggaW4geW91ciBhdmVyYWdlIHg4NiBRRU1VIFZNLiBJdCBoaW5nZXMgb24gaGF2aW5nIHRoZSBjb3JyZWN0IGRldmljZSB0cmVlIG5vZGVzIGRlZmluZWQgYW5kIHRoZSBjb3JyZWN0IHBoeXNpY2FsIE1NSU8gcmVnaXN0ZXJzIG1hcHBlZCwgdGhpbmdzIHRoYXQganVzdCBhcmVuJ3QgZ29pbmcgdG8gaGFwcGVuIGluIGEgZ2VuZXJpYyB2aXJ0dWFsIGVudmlyb25tZW50LiBFdmVuIGlmIHlvdSB0cmllZCB0byBmYWtlIGl0IGJ5IGluamVjdGluZyBhIGRldmljZSB0cmVlIG5vZGUsIGVpdGhlciBgZGV2bV9yZWdtYXBfaW5pdGAgb3IgYHN5c2Nvbl9yZWdtYXBfbG9va3VwX2J5X3BoYW5kbGVgIGlzIGdvaW5nIHRvIGZhaWwsIG9yIGFueSBhdHRlbXB0ZWQgTU1JTyBhY2Nlc3Mgd2lsbCBmYXVsdCwgZG8gbm90aGluZywgb3Igc2ltcGx5IG5vdCBiZSByZWFjaGFibGUgYmVjYXVzZSB0aGUgaGFyZHdhcmUgZG9lc24ndCBleGlzdC5cblxuTGV0J3MgcXVpY2tseSBjb25maXJtIHRoZXJlJ3Mgbm8gZ2VuZXJpYyBsb2dpYyB0aGF0ICpjb3VsZCogYmUgZXhlcmNpc2VkLiBBaCwgbm9wZS4gTG9va3MgbGlrZSB0aGUgcGF0Y2gncyBjaGFuZ2VzIGNvbnNpc3Qgb2YgYWRkaW5nIGEgbmV3IHZhcmlhbnQgc3RydWN0dXJlLCBzb21lIGZ1bmN0aW9uIHJlbmFtaW5nLCBhbmQgYSBoYW5kZnVsIG9mIGJpdHdpc2Ugb3BlcmF0aW9ucyBmb3IgdGhlIG5ldyB2YXJpYW50LiBJdCdzIHB1cmUgaGFyZHdhcmUgZW5hYmxlbWVudCwgZXNzZW50aWFsbHkgdGFpbG9yaW5nIHRoZSBkcml2ZXIgZm9yIGEgc3BlY2lmaWMgU29DLiBJdCdzIG5vdCBleHBvc2luZyBnZW5lcmljIGZ1bmN0aW9uYWxpdHkuXG5cblRoZXJlZm9yZSwgSSdtIHNldHRpbmcgYFdvcnRoRnV6emluZz1mYWxzZWAuIFRoZSByYXRpb25hbGUgaXMgc3RyYWlnaHRmb3J3YXJkOiBUaGlzIHBhdGNoIGludHJvZHVjZXMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DLCB0aGUgTVQ4MTg5LCB3aXRoaW4gdGhlIGR3bWFjLW1lZGlhdGVrIHBsYXRmb3JtIGRyaXZlci4gSXQncyBlbnRpcmVseSBoYXJkd2FyZS1zcGVjaWZpYyBjb2RlIHRoYXQgZGVwZW5kcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgcGFydGljdWxhciBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9ucy4gVGhpcyBtZWFucyB0aGF0IGV4ZWN1dGluZyBvciByZWFjaGluZyBpdCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFIGlzIGVzc2VudGlhbGx5IG1lYW5pbmdsZXNzLiBBbnkgZnV6emluZyBhdHRlbXB0cyB3b3VsZCBiZSBmcnVpdGxlc3MgYmVjYXVzZSB0aGUgdW5kZXJseWluZyBoYXJkd2FyZSBkZXBlbmRlbmNpZXMgYXJlIHNpbXBseSBub3QgcHJlc2VudC5cblxuXG4iLCJJbnB1dFRva2VucyI6ODkyMCwiT3V0cHV0VG9rZW5zIjo5NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wN1QxNTo0NjowNy45MDAzNzg3NjZaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMDQ5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgYSBuZXcgTWVkaWFUZWsgU29DIChNVDgxODkpIHRvIHRoZSBkd21hYy1tZWRpYXRlayBwbGF0Zm9ybSBkcml2ZXIuIFRoaXMgaXMgaGFyZHdhcmUtc3BlY2lmaWMgY29kZSB0aGF0IHJlbGllcyBvbiBwaHlzaWNhbCBNTUlPIHJlZ2lzdGVycyBhbmQgc3BlY2lmaWMgZGV2aWNlIHRyZWUgY29uZmlndXJhdGlvbnMsIHdoaWNoIGNhbm5vdCBiZSBtZWFuaW5nZnVsbHkgZXhlY3V0ZWQgb3IgcmVhY2hlZCBpbiBnZW5lcmljIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBhIG5ldyBNZWRpYVRlayBTb0MgKE1UODE4OSkgdG8gdGhlIGR3bWFjLW1lZGlhdGVrIHBsYXRmb3JtIGRyaXZlci4gVGhpcyBpcyBoYXJkd2FyZS1zcGVjaWZpYyBjb2RlIHRoYXQgcmVsaWVzIG9uIHBoeXNpY2FsIE1NSU8gcmVnaXN0ZXJzIGFuZCBzcGVjaWZpYyBkZXZpY2UgdHJlZSBjb25maWd1cmF0aW9ucywgd2hpY2ggY2Fubm90IGJlIG1lYW5pbmdmdWxseSBleGVjdXRlZCBvciByZWFjaGVkIGluIGdlbmVyaWMgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfhx6w[1] Phase: Running StartedAt: 2026-07-07 15:46:48 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfhx6w[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-07 15:46:48 +0000 UTC FinishedAt: 2026-07-07 15:46:54 +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,}