Name: series-workflowxd8vj Phase: Failed StartedAt: 2026-07-15 07:33:16 +0000 UTC FinishedAt: 2026-07-15 07:47:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxd8vj[0] Phase: Succeeded StartedAt: 2026-07-15 07:33:16 +0000 UTC FinishedAt: 2026-07-15 07:47:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxd8vj[0].run-triage Phase: Succeeded StartedAt: 2026-07-15 07:33:16 +0000 UTC FinishedAt: 2026-07-15 07:47:01 +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+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgc3dpdGNoZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBRRU1VIG9yIHRoZSBrZXJuZWwsIGFuZCB0aGUgZHJpdmVyIHJlcXVpcmVzIGEgZGV2aWNlIHRyZWUgbm9kZSB0byBwcm9iZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGUxZGJlYmQ2NDU3OWJjMDE1NzA0YjNiZTBlODY0ZDVjMmQxYjUyNTNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAwNzo0NDo0NSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5pbmRleCA4MGI4NzdjNzQ1MTNkNi4uNmZhYWU3NGRlMDRhOWIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcbkBAIC0yNTIzLDcgJiM0MzsyNTIzLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9hZGRfYnJvYWRjYXN0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4gXHRyZXR1cm4gbXY4OGU2eHh4X3BvcnRfZGJfbG9hZF9wdXJnZShjaGlwLCBwb3J0LCBicm9hZGNhc3QsIHZpZCwgc3RhdGUpO1xuIH1cbiBcbi1zdGF0aWMgaW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKVxuJiM0MztpbnQgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiB2aWQpXG4ge1xuIFx0aW50IHBvcnQ7XG4gXHRpbnQgZXJyO1xuQEAgLTU3NDcsNiAmIzQzOzU3NDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MDk3LFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjA4NVwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDEwLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU3OTIsNiAmIzQzOzU3OTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MDk3LFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjA5Ny84OEU2MDk3RlwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuQEAgLTU4MTcsNiAmIzQzOzU4MTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MTY1LFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjEyM1wmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTAyNCxcbiBcdFx0Lm51bV9wb3J0cyA9IDMsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNTg2Myw2ICYjNDM7NTg2Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNDEsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MTQxXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDI1NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDIwNDgsXG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU4ODksNiAmIzQzOzU4OTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MTY1LFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjE2MVwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTAyNCxcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNTkxNSw2ICYjNDM7NTkyMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MTY1XCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcbkBAIC01OTQwLDYgJiM0Mzs1OTQ2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxNzFcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU5NjUsNiAmIzQzOzU5NzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjE3MlwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNTk5MSw2ICYjNDM7NTk5OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MTc1XCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC02MDE2LDYgJiM0Mzs2MDI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxNzZcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTYwNjQsNiAmIzQzOzYwNzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjE5MFwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTYzODQsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuQEAgLTYwODksNiAmIzQzOzYxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjE5MFhcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02MTE0LDYgJiM0Mzs2MTI2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxOTFcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02MTM5LDYgJiM0Mzs2MTUyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxOTFYXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcbiBcdFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMSxcbkBAIC02MTY0LDYgJiM0Mzs2MTc4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxOTNYXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG5AQCAtNjIxOCw2ICYjNDM7NjIzMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MjQwXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC02MjY3LDYgJiM0Mzs2MjgzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYyOTBcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbkBAIC02Mjk0LDYgJiM0Mzs2MzExLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjMyMCxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYzMjBcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuQEAgLTYzMjIsNiAmIzQzOzYzNDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjMyMVwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXG5AQCAtNjM1MCw2ICYjNDM7NjM2OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNDEsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MzQxXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDI1NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDIwNDgsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuQEAgLTYzNzcsNiAmIzQzOzYzOTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUxLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjM1MFwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNjQwMiw2ICYjNDM7NjQyMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MzUxXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC02NDI3LDYgJiM0Mzs2NDQ5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYzNTJcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTY0NTMsNiAmIzQzOzY0NzYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjM2MVwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTYzODQsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcbiBcdFx0LyogUG9ydHMgMSwgMiBhbmQgOCBhcmUgbm90IHJvdXRlZCAqL1xuQEAgLTY0ODAsNiAmIzQzOzY1MDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjM5MFwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTYzODQsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuQEAgLTY1MDgsNiAmIzQzOzY1MzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjM5MFhcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02NTM1LDYgJiM0Mzs2NTYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYzOTNYXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuaW5kZXggZTk2NmU3YzRjYzVkZWEuLmFiYmI0NDZiNzM0NTZlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXG5AQCAtMTc2LDYgJiM0MzsxNzYsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0LyogU3VwcG9ydHMgUFRQICovXG4gXHRib29sIHB0cF9zdXBwb3J0O1xuIFxuJiM0MztcdC8qIEhhcyBhIGRlZGljYXRlZCBBVFUgRklEIHJlZ2lzdGVyLiAqL1xuJiM0MztcdGJvb2wgYXR1X2ZpZF9yZWc7XG4mIzQzO1xuIFx0LyogSW50ZXJuYWwgUEhZIHN0YXJ0IGluZGV4LiAwIG1lYW5zIHRoYXQgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXRcbiBcdCAqIHBvcnQgMCwgMSBtZWFucyBpbnRlcm5hbCBQSFlzIHJhbmdlIHN0YXJ0cyBhdCBwb3J0IDEsIGV0Y1xuIFx0ICovXG5AQCAtODkwLDQgJiM0Mzs4OTMsNiBAQCBpbnQgbXY4OGU2eHh4X3Z0dV93YWxrKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbiBcdFx0XHRcdCB2b2lkICpwcml2KSxcbiBcdFx0ICAgICAgIHZvaWQgKnByaXYpO1xuIFxuJiM0MztpbnQgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiB2aWQpO1xuJiM0MztcbiAjZW5kaWYgLyogX01WODhFNlhYWF9DSElQX0ggKi9cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jXG5pbmRleCA2ZjAzNDg0MTg4M2M2Zi4uNTE2ODMzNWY1MjI4OWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9kZXZsaW5rLmNcbkBAIC02MSw2ICYjNDM7NjEsMTIgQEAgaW50IG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtX3NldChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHUzMiBpZCxcbiBcdHN3aXRjaCAoaWQpIHtcbiBcdGNhc2UgTVY4OEU2WFhYX0RFVkxJTktfUEFSQU1fSURfQVRVX0hBU0g6XG4gXHRcdGVyciA9IG12ODhlNnh4eF9hdHVfc2V0X2hhc2goY2hpcCwgY3R4LVx1MDAzZXZhbC52dTgpO1xuJiM0MztcdFx0aWYgKGVycilcbiYjNDM7XHRcdFx0YnJlYWs7XG4mIzQzO1x0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfYXR1X2ZsdXNoKGNoaXAsIDAsIHRydWUpO1xuJiM0MztcdFx0aWYgKGVycilcbiYjNDM7XHRcdFx0YnJlYWs7XG4mIzQzO1x0XHRlcnIgPSBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwKGNoaXAsIDApO1xuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4gXHRcdGVyciA9IC1FT1BOT1RTVVBQO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuY1xuaW5kZXggYzQ3ZjA2OGY1NmIzMmEuLjZiZWU5NDNjODM1NzVkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmNcbkBAIC0xMzUsNyAmIzQzOzEzNSw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2F0dV9vcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiBmaWQsIHUxNiBvcClcbiBcdGludCBlcnI7XG4gXG4gXHQvKiBGSUQgYml0cyBhcmUgZGlzcGF0Y2hlZCBhbGwgYXJvdW5kIGdyYWR1YWxseSBhcyBtb3JlIGFyZSBzdXBwb3J0ZWQgKi9cbi1cdGlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSBcdTAwM2UgMjU2KSB7XG4mIzQzO1x0aWYgKGNoaXAtXHUwMDNlaW5mby1cdTAwM2VhdHVfZmlkX3JlZykge1xuIFx0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF93cml0ZShjaGlwLCBmaWQpO1xuIFx0XHRpZiAoZXJyKVxuIFx0XHRcdHJldHVybiBlcnI7XG5AQCAtMTc5LDcgJiM0MzsxNzksNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfZmlkX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgKmZpZClcbiBcdHUxNiB2YWwgPSAwLCB1cHBlciA9IDAsIG9wID0gMDtcbiBcdGludCBlcnIgPSAtRU9QTk9UU1VQUDtcbiBcbi1cdGlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSBcdTAwM2UgMjU2KSB7XG4mIzQzO1x0aWYgKGNoaXAtXHUwMDNlaW5mby1cdTAwM2VhdHVfZmlkX3JlZykge1xuIFx0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTYzNTJfRzFfQVRVX0ZJRCwgXHUwMDI2dmFsKTtcbiBcdFx0dmFsIFx1MDAyNj0gMHhmZmY7XG4gXHRcdGlmIChlcnIpXG5AQCAtMjM5LDcgJiM0MzsyMzksNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4gXHRcdGlmIChlbnRyeS1cdTAwM2V0cnVuaylcbiBcdFx0XHRkYXRhIHw9IE1WODhFNlhYWF9HMV9BVFVfREFUQV9UUlVOSztcbiBcbi1cdFx0ZGF0YSB8PSAoZW50cnktXHUwMDNlcG9ydHZlYyBcdTAwMjYgbXY4OGU2eHh4X3BvcnRfbWFzayhjaGlwKSkgXHUwMDNjXHUwMDNjIDQ7XG4mIzQzO1x0XHRkYXRhIHw9IGVudHJ5LVx1MDAzZXBvcnR2ZWMgXHUwMDNjXHUwMDNjIDQ7XG4gXHR9XG4gXG4gXHRyZXR1cm4gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9BVFVfREFUQSwgZGF0YSk7XG5AQCAtMzI2LDYgJiM0MzszMjYsMTEgQEAgaW50IG12ODhlNnh4eF9nMV9hdHVfbG9hZHB1cmdlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IGZpZCxcbiBcdGlmIChlcnIpXG4gXHRcdHJldHVybiBlcnI7XG4gXG4mIzQzO1x0LyogTWFzayBwb3J0dmVjIHRvIGEgY2hpcCYjMzk7cyByZWFsIHBvcnRzIHNvIHRoZXkgY2Fubm90IHNwaWxsIGludG9cbiYjNDM7XHQgKiBhZGphY2VudCBBVFUgRGF0YSByZWdpc3RlciBmaWVsZHMuXG4mIzQzO1x0ICovXG4mIzQzO1x0ZW50cnktXHUwMDNlcG9ydHZlYyBcdTAwMjY9IG12ODhlNnh4eF9wb3J0X21hc2soY2hpcCk7XG4mIzQzO1xuIFx0ZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9kYXRhX3dyaXRlKGNoaXAsIGVudHJ5KTtcbiBcdGlmIChlcnIpXG4gXHRcdHJldHVybiBlcnI7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBwaHlzaWNhbCBzd2l0Y2hlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIFFFTVUgb3IgdGhlIGtlcm5lbCwgYW5kIHRoZSBkcml2ZXIgcmVxdWlyZXMgYSBkZXZpY2UgdHJlZSBub2RlIHRvIHByb2JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlMWRiZWJkNjQ1NzliYzAxNTcwNGIzYmUwZTg2NGQ1YzJkMWI1MjUzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMTUgMDc6NDQ6NDUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCmluZGV4IDgwYjg3N2M3NDUxM2Q2Li42ZmFhZTc0ZGUwNGE5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKQEAgLTI1MjMsNyAmIzQzOzI1MjMsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2FkZF9icm9hZGNhc3Qoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKIAlyZXR1cm4gbXY4OGU2eHh4X3BvcnRfZGJfbG9hZF9wdXJnZShjaGlwLCBwb3J0LCBicm9hZGNhc3QsIHZpZCwgc3RhdGUpOwogfQogCi1zdGF0aWMgaW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKQomIzQzO2ludCBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IHZpZCkKIHsKIAlpbnQgcG9ydDsKIAlpbnQgZXJyOwpAQCAtNTc0Nyw2ICYjNDM7NTc0Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYwOTcsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYwODUmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDEwLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNTc5Miw2ICYjNDM7NTc5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYwOTcsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYwOTcvODhFNjA5N0YmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDExLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA4LApAQCAtNTgxNyw2ICYjNDM7NTgxOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxMjMmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTAyNCwKIAkJLm51bV9wb3J0cyA9IDMsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC01ODYzLDYgJiM0Mzs1ODY2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM0MSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE0MSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDI1NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDIwNDgsCiAJCS5udW1fcG9ydHMgPSA2LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNTg4OSw2ICYjNDM7NTg5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxNjEmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTAyNCwKIAkJLm51bV9wb3J0cyA9IDYsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC01OTE1LDYgJiM0Mzs1OTIwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjE2NSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE2NSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNiwKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gMCwKQEAgLTU5NDAsNiAmIzQzOzU5NDYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUxLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MTcxJiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNTk2NSw2ICYjNDM7NTk3Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxNzImIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC01OTkxLDYgJiM0Mzs1OTk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE3NSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKQEAgLTYwMTYsNiAmIzQzOzYwMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MTc2JiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNjA2NCw2ICYjNDM7NjA3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxOTAmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCkBAIC02MDg5LDYgJiM0Mzs2MTAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE5MFgmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCkBAIC02MTE0LDYgJiM0Mzs2MTI2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE5MSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX21hY3MgPSAxNjM4NCwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKQEAgLTYxMzksNiAmIzQzOzYxNTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MTkxWCYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX3BvcnRzID0gMTEsCS8qIDEwICYjNDM7IFo4MCAqLwogCQkubnVtX2ludGVybmFsX3BoeXMgPSA4LAogCQkuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLApAQCAtNjE2NCw2ICYjNDM7NjE3OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTMsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxOTNYJiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDgsCiAJCS5udW1fdGNhbV9lbnRyaWVzID0gMjU2LApAQCAtNjIxOCw2ICYjNDM7NjIzMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYyNDAmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC02MjY3LDYgJiM0Mzs2MjgzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjI5MCYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX3BvcnRzID0gMTEsCS8qIDEwICYjNDM7IFo4MCAqLwogCQkubnVtX2ludGVybmFsX3BoeXMgPSA5LAogCQkubnVtX2dwaW8gPSAxNiwKQEAgLTYyOTQsNiAmIzQzOzYzMTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MzIwJiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSAyLApAQCAtNjMyMiw2ICYjNDM7NjM0MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzMjAsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYzMjEmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDIsCkBAIC02MzUwLDYgJiM0Mzs2MzY5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM0MSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjM0MSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDI1NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDIwNDgsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiAJCS5udW1fcG9ydHMgPSA2LApAQCAtNjM3Nyw2ICYjNDM7NjM5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYzNTAmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC02NDAyLDYgJiM0Mzs2NDIzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjM1MSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKQEAgLTY0MjcsNiAmIzQzOzY0NDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MzUyJiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNjQ1Myw2ICYjNDM7NjQ3Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTMsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYzNjEmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwKIAkJLyogUG9ydHMgMSwgMiBhbmQgOCBhcmUgbm90IHJvdXRlZCAqLwpAQCAtNjQ4MCw2ICYjNDM7NjUwNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYzOTAmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCkBAIC02NTA4LDYgJiM0Mzs2NTMzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjM5MFgmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCkBAIC02NTM1LDYgJiM0Mzs2NTYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MywKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjM5M1gmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOCwKIAkJLm51bV90Y2FtX2VudHJpZXMgPSAyNTYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oCmluZGV4IGU5NjZlN2M0Y2M1ZGVhLi5hYmJiNDQ2YjczNDU2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKQEAgLTE3Niw2ICYjNDM7MTc2LDkgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHsKIAkvKiBTdXBwb3J0cyBQVFAgKi8KIAlib29sIHB0cF9zdXBwb3J0OwogCiYjNDM7CS8qIEhhcyBhIGRlZGljYXRlZCBBVFUgRklEIHJlZ2lzdGVyLiAqLwomIzQzOwlib29sIGF0dV9maWRfcmVnOwomIzQzOwogCS8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0CiAJICogcG9ydCAwLCAxIG1lYW5zIGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0IHBvcnQgMSwgZXRjCiAJICovCkBAIC04OTAsNCAmIzQzOzg5Myw2IEBAIGludCBtdjg4ZTZ4eHhfdnR1X3dhbGsoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLAogCQkJCSB2b2lkICpwcml2KSwKIAkJICAgICAgIHZvaWQgKnByaXYpOwogCiYjNDM7aW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKTsKJiM0MzsKICNlbmRpZiAvKiBfTVY4OEU2WFhYX0NISVBfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9kZXZsaW5rLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuYwppbmRleCA2ZjAzNDg0MTg4M2M2Zi4uNTE2ODMzNWY1MjI4OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jCkBAIC02MSw2ICYjNDM7NjEsMTIgQEAgaW50IG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtX3NldChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHUzMiBpZCwKIAlzd2l0Y2ggKGlkKSB7CiAJY2FzZSBNVjg4RTZYWFhfREVWTElOS19QQVJBTV9JRF9BVFVfSEFTSDoKIAkJZXJyID0gbXY4OGU2eHh4X2F0dV9zZXRfaGFzaChjaGlwLCBjdHgtJmd0O3ZhbC52dTgpOwomIzQzOwkJaWYgKGVycikKJiM0MzsJCQlicmVhazsKJiM0MzsJCWVyciA9IG12ODhlNnh4eF9nMV9hdHVfZmx1c2goY2hpcCwgMCwgdHJ1ZSk7CiYjNDM7CQlpZiAoZXJyKQomIzQzOwkJCWJyZWFrOwomIzQzOwkJZXJyID0gbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChjaGlwLCAwKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJZXJyID0gLUVPUE5PVFNVUFA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmMKaW5kZXggYzQ3ZjA2OGY1NmIzMmEuLjZiZWU5NDNjODM1NzVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jCkBAIC0xMzUsNyAmIzQzOzEzNSw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2F0dV9vcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiBmaWQsIHUxNiBvcCkKIAlpbnQgZXJyOwogCiAJLyogRklEIGJpdHMgYXJlIGRpc3BhdGNoZWQgYWxsIGFyb3VuZCBncmFkdWFsbHkgYXMgbW9yZSBhcmUgc3VwcG9ydGVkICovCi0JaWYgKG12ODhlNnh4eF9udW1fZGF0YWJhc2VzKGNoaXApICZndDsgMjU2KSB7CiYjNDM7CWlmIChjaGlwLSZndDtpbmZvLSZndDthdHVfZmlkX3JlZykgewogCQllcnIgPSBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF93cml0ZShjaGlwLCBmaWQpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKQEAgLTE3OSw3ICYjNDM7MTc5LDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2ICpmaWQpCiAJdTE2IHZhbCA9IDAsIHVwcGVyID0gMCwgb3AgPSAwOwogCWludCBlcnIgPSAtRU9QTk9UU1VQUDsKIAotCWlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSAmZ3Q7IDI1NikgewomIzQzOwlpZiAoY2hpcC0mZ3Q7aW5mby0mZ3Q7YXR1X2ZpZF9yZWcpIHsKIAkJZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2MzUyX0cxX0FUVV9GSUQsICZhbXA7dmFsKTsKIAkJdmFsICZhbXA7PSAweGZmZjsKIAkJaWYgKGVycikKQEAgLTIzOSw3ICYjNDM7MjM5LDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfYXR1X2RhdGFfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLAogCQlpZiAoZW50cnktJmd0O3RydW5rKQogCQkJZGF0YSB8PSBNVjg4RTZYWFhfRzFfQVRVX0RBVEFfVFJVTks7CiAKLQkJZGF0YSB8PSAoZW50cnktJmd0O3BvcnR2ZWMgJmFtcDsgbXY4OGU2eHh4X3BvcnRfbWFzayhjaGlwKSkgJmx0OyZsdDsgNDsKJiM0MzsJCWRhdGEgfD0gZW50cnktJmd0O3BvcnR2ZWMgJmx0OyZsdDsgNDsKIAl9CiAKIAlyZXR1cm4gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9BVFVfREFUQSwgZGF0YSk7CkBAIC0zMjYsNiAmIzQzOzMyNiwxMSBAQCBpbnQgbXY4OGU2eHh4X2cxX2F0dV9sb2FkcHVyZ2Uoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgZmlkLAogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKJiM0MzsJLyogTWFzayBwb3J0dmVjIHRvIGEgY2hpcCYjMzk7cyByZWFsIHBvcnRzIHNvIHRoZXkgY2Fubm90IHNwaWxsIGludG8KJiM0MzsJICogYWRqYWNlbnQgQVRVIERhdGEgcmVnaXN0ZXIgZmllbGRzLgomIzQzOwkgKi8KJiM0MzsJZW50cnktJmd0O3BvcnR2ZWMgJmFtcDs9IG12ODhlNnh4eF9wb3J0X21hc2soY2hpcCk7CiYjNDM7CiAJZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9kYXRhX3dyaXRlKGNoaXAsIGVudHJ5KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MzA1CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNjUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIHRvIHRoZSBgbXY4OGU2eHh4YCBEU0EgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgYG12ODhlNnh4eGAgRFNBIGRyaXZlci4gRmlyc3QgZ2xhbmNlLCBpdCBzZWVtcyB0byBiZSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCB0d2Vha2luZyB0aGUgQVRVIChBZGRyZXNzIFRyYW5zbGF0aW9uIFVuaXQpIGhhc2ggc2V0dGluZyBsb2dpYyB0aHJvdWdoIGRldmxpbmsgYW5kIGFsc28gZml4aW5nIHNvbWUgaXNzdWVzIHJlbGF0ZWQgdG8gdGhlIEFUVSBGSUQgcmVnaXN0ZXIgYWNjZXNzIGFuZCBwb3J0dmVjIG1hc2tpbmcuIFRoYXQmIzM5O3MgZ29vZCwgYnV0IG15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcyBhbHdheXMgYWJvdXQgcmVhY2hhYmlsaXR5LCBlc3BlY2lhbGx5IGZvciBhIGRyaXZlciBsaWtlIHRoaXMuCgpTcGVjaWZpY2FsbHksIHdoYXQmIzM5O3MgYmVlbiBjaGFuZ2VkPyBMZXQgbWUgYnJlYWsgaXQgZG93bjogVGhlIHBhdGNoIGV4cG9zZXMgYG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXBgIGJ5IHJlbW92aW5nIGBzdGF0aWNgIGFuZCBhZGRpbmcgaXQgdG8gYGNoaXAuaGAuIEl0IGFsc28gaW50cm9kdWNlcyBhIGJvb2xlYW4gZmxhZyBgYXR1X2ZpZF9yZWdgIHRvIGBzdHJ1Y3QgbXY4OGU2eHh4X2luZm9gIGFuZCBzZXRzIGl0IGZvciBhIGJ1bmNoIG9mIE1hcnZlbGwgc3dpdGNoIGNoaXBzIGluIGBtdjg4ZTZ4eHhfdGFibGVgLiBUaGVuLCB3aGVuIHRoZSBgTVY4OEU2WFhYX0RFVkxJTktfUEFSQU1fSURfQVRVX0hBU0hgIHBhcmFtZXRlciBpcyBzZXQsIHRoZSBwYXRjaCBub3cgZmx1c2hlcyB0aGUgQVRVIHVzaW5nIGBtdjg4ZTZ4eHhfZzFfYXR1X2ZsdXNoYCBhbmQgY2FsbHMgYG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoY2hpcCwgMClgLiBGdXJ0aGVyLCBpbiB0aGUgYG12ODhlNnh4eF9nMV9hdHVfb3BgIGFuZCBgbXY4OGU2eHh4X2cxX2F0dV9maWRfcmVhZGAgZnVuY3Rpb25zLCBpdCByZXBsYWNlcyB0aGF0IGNoZWNrIHVzaW5nIGBtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSAmZ3Q7IDI1NmAgd2l0aCBgY2hpcC0mZ3Q7aW5mby0mZ3Q7YXR1X2ZpZF9yZWdgLiBJdCBhbHNvIGNoYW5nZXMgcG9ydHZlYyBtYXNraW5nIGluIGBtdjg4ZTZ4eHhfZzFfYXR1X2RhdGFfd3JpdGVgIGFuZCBhZGRzIGEgcG9ydHZlYyBtYXNrIGluIGBtdjg4ZTZ4eHhfZzFfYXR1X2xvYWRwdXJnZWAuCgpBbHJpZ2h0LCBzaW5jZSB0aGlzIGRyaXZlciBpcyBmb3IgdGhlIE1hcnZlbGwgODhFNnh4eCBzd2l0Y2gsIGl0JiMzOTtzIGhhcmR3YXJlLXNwZWNpZmljLiBUaGlzIGlzIGEgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBkcml2ZXIsIHNvIGl0IHNob3VsZCBiZSBwcm9iZWQgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUgb3IgdGhlIE1ESU8gYnVzLiBNeSBjb25jZXJuIG5vdyBpcyBhYm91dCBmdXp6aW5nLiBDYW4gSSBnZXQgYXQgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBEU0EgZHJpdmVycywgZXNwZWNpYWxseSB0aG9zZSBpbnRlcmFjdGluZyB3aXRoIEkyQy9NRElPLWNvbm5lY3RlZCBoYXJkd2FyZSwgYXJlIHR5cGljYWxseSBub3QgcmVhY2hhYmxlIHVubGVzcyB0aGVyZSYjMzk7cyBhbiBlbXVsYXRvciBvciBhIHZpcnR1YWwgZHJpdmVyIGluc3RhbnRpYXRpb24uIFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBpcyB0aGVyZSBhbnkgZW11bGF0aW9uIGZvciB0aGUgTWFydmVsbCA4OEU2eHh4LCBvciBzb21lIGtpbmQgb2Ygc29mdHdhcmUgaW5zdGFudGlhdGlvbiBtZWNoYW5pc20/CgpTeXprYWxsZXIgKmNhbiogc29tZXRpbWVzIGluamVjdCBNRElPIGRldmljZXMgb3IgdXNlIGR1bW15IGRldmljZXMsIGJ1dCBnZW5lcmFsbHksIHRoZXNlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMsIHdpdGhvdXQgcHJvcGVyIGVtdWxhdGlvbiBhcmUgaW5hY2Nlc3NpYmxlLiBIbW0uLi4gSSByZWNhbGwgc3l6a2FsbGVyICpkb2VzbiYjMzk7dCogaGF2ZSBhIGdlbmVyaWMgTURJTyBmdXp6ZXIuIFNvLCB0aGUgY2hhbmNlcyBvZiBpbW1lZGlhdGUgcmVhY2hhYmlsaXR5IGFyZSBzbGltLiBCdXQsIEkgbmVlZCB0byBjaGVjayBpZiBgbXY4OGU2eHh4YCBjYW4gYmUgcHJvYmVkIGF0IGFsbC4gSSBuZWVkIHRvIGdldCBzb21lIG1vcmUgaW5mbyBvbiBob3cgdGhpcyB0aGluZyBpcyBhY3R1YWxseSBpbnN0YW50aWF0ZWQuIEkgc2hvdWxkIHNlYXJjaCBmb3IgYG12ODhlNnh4eGAgd2l0aGluIHRoZSBrZXJuZWwgdG8gdW5kZXJzdGFuZCBpdHMgcHJvYmluZyBtZWNoYW5pc20gYW5kIGRlcGVuZGVuY3kgY2hhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXY4OGU2eHh4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDEyMyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw9MTk9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTk0LSAgICAgIGNvbXBhdGlibGU6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjk1OiAgICAgICAgY29uc3Q6IG1hcnZlbGwsbXY4OGU2eHh4LW1kaW8tZXh0ZXJuYWxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtOTYtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbD0xMDk9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0yNDAtICAgICAgICAgICAgbWRpby1leHRlcm5hbCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjI0MTogICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2eHh4LW1kaW8tZXh0ZXJuYWxcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI0Mi0gICAgICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sPTEyPWRlc2NyaXB0aW9uOiB8JiM0Mztcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwsbXZ1c2IueWFtbC0xOC0gIGhhdmluZyBhIGRldmljZSB0cmVlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXZpY2UuIEJ1dCBpbiBvcmRlciB0byB1c2UgaXQgd2l0aFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWw6MTk6ICB0aGUgbXY4OGU2eHh4IGRyaXZlciwgeW91IG5lZWQgYSBkZXZpY2UgdHJlZSBub2RlIGluIHdoaWNoIHRvIHBsYWNlIHRoZSBzd2l0Y2hcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sLTIwLSAgZGVmaW5pdGlvbi5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3Q9Nzc9cGFyYW1ldGVycywgaW5mbyB2ZXJzaW9ucywgYW5kIG90aGVyIGZlYXR1cmVzIGl0IHN1cHBvcnRzLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdC05NS0gICBtbHhzd1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvaW5kZXgucnN0Ojk2OiAgIG12ODhlNnh4eFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvaW5kZXgucnN0LTk3LSAgIG5ldGRldnNpbVxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtMy09PT09PT09PT09PT09PT09PT09PT09PT09XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0OjQ6bXY4OGU2eHh4IGRldmxpbmsgc3VwcG9ydFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC01LT09PT09PT09PT09PT09PT09PT09PT09PT1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtNi1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3Q6NzpUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgZGV2bGluayBmZWF0dXJlcyBpbXBsZW1lbnRlZCBieSB0aGUgYGBtdjg4ZTZ4eHhgYFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC04LWRldmljZSBkcml2ZXIuXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdD0xMD1QYXJhbWV0ZXJzXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC0xMi1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3Q6MTM6VGhlIGBgbXY4OGU2eHh4YGAgZHJpdmVyIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItc3BlY2lmaWMgcGFyYW1ldGVycy5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtMTQtXG4tLVxuTUFJTlRBSU5FUlM9MTU1OTU9RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2MDYwLnlhbWxcbk1BSU5UQUlORVJTOjE1NTk2OkY6XHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sXG5NQUlOVEFJTkVSUzoxNTU5NzpGOlx0RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdFxuTUFJTlRBSU5FUlM6MTU1OTg6RjpcdGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXG5NQUlOVEFJTkVSUzoxNTU5OTpGOlx0aW5jbHVkZS9saW51eC9kc2EvbXY4OGU2eHh4Lmhcbk1BSU5UQUlORVJTOjE1NjAwOkY6XHRpbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvbXY4OGU2eHh4Lmhcbk1BSU5UQUlORVJTLTE1NjAxLVxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4MS1uZXRnZWFyLWdzMTEwZW14LmR0cz0xMjc9XHRcdG1kaW8tZXh0ZXJuYWwge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzgxLW5ldGdlYXItZ3MxMTBlbXguZHRzOjEyODpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTZ4eHgtbWRpby1leHRlcm5hbFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4MS1uZXRnZWFyLWdzMTEwZW14LmR0cy0xMjktXHRcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktc3NtYi1kdHUuZHRzPTE3MD1cdFx0XHRtZGlvLWV4dGVybmFsIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktc3NtYi1kdHUuZHRzOjE3MTpcdFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNnh4eC1tZGlvLWV4dGVybmFsXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1zc21iLWR0dS5kdHMtMTcyLVx0XHRcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cz0yOTI9XHRcdFx0c3dpdGNoMHBoeTQ6IGV0aGVybmV0LXBoeUA0IHtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNmLXByby5kdHMtMzAyLVx0XHQgKiBtZGlvLWV4dGVybmFsIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0czozMDM6XHRcdCAqXHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTZ4eHgtbWRpby1leHRlcm5hbFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cy0zMDQtXHRcdCAqXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuZHJpdmVycy9uZXQvZHNhL0tjb25maWc9NzM9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvZHNhL0tjb25maWctNzQtXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZzo3NTpzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZy03Ni1cbi0tXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGU9MjE9b2JqLXlcdFx0XHRcdCYjNDM7PSBtaWNyb2NoaXAvXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGU6MjI6b2JqLXlcdFx0XHRcdCYjNDM7PSBtdjg4ZTZ4eHgvXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGUtMjMtb2JqLXlcdFx0XHRcdCYjNDM7PSBteGw4NjJ4eC9cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmgtNS0gKlxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5oOjY6ICogQmFzZWQgb24gbXY4OGU2eHh4LmhcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuaC03LSAqIENvcHlyaWdodCAoYykgMjAwOCBNYXJ2ZWxsIFNlbWljb25kdWN0b3Jcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWCkgJiM0Mzs9IG12ODhlNnh4eC5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjM6bXY4OGU2eHh4LW9ianMgOj0gY2hpcC5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjQ6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IGRldmxpbmsub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo1Om12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwxLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6Njptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMV9hdHUub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo3Om12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwxX3Z0dS5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjg6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IGdsb2JhbDIub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo5Om12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwyX2F2Yi5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEwOm12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwyX3NjcmF0Y2gub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxMTptdjg4ZTZ4eHgtJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFhfUFRQKSAmIzQzOz0gaHd0c3RhbXAub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxMjptdjg4ZTZ4eHgtJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFhfTEVEUykgJiM0Mzs9IGxlZHMub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxMzptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcGNzLTYxODUub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNDptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcGNzLTYzNTIub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNTptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcGNzLTYzOXgub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNjptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcGh5Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTc6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBvcnQub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxODptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcG9ydF9oaWRkZW4ub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxOTptdjg4ZTZ4eHgtJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFhfUFRQKSAmIzQzOz0gcHRwLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjA6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHNlcmRlcy5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIxOm12ODhlNnh4eC1vYmpzICYjNDM7PSBzbWkub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMjptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gc3dpdGNoZGV2Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjM6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjQ6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHRjZmxvd2VyLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjU6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHRjYW0ub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZS0yNi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNC0jaW5jbHVkZSBcdTAwM2NsaW51eC9kZWxheS5oXHUwMDNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTojaW5jbHVkZSBcdTAwM2NsaW51eC9kc2EvbXY4OGU2eHh4LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2LSNpbmNsdWRlIFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOC0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9tZGlvLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5OiNpbmNsdWRlIFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RhdGEvbXY4OGU2eHh4LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMwLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Byb3BlcnR5LmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00OC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5OnN0YXRpYyB2b2lkIGFzc2VydF9yZWdfbG9jayhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzppbnQgbXY4OGU2eHh4X3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZywgdTE2ICp2YWwpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01OC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzpcdGVyciA9IG12ODhlNnh4eF9zbWlfcmVhZChjaGlwLCBhZGRyLCByZWcsIHZhbCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzppbnQgbXY4OGU2eHh4X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsIHUxNiB2YWwpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3OTpcdGVyciA9IG12ODhlNnh4eF9zbWlfd3JpdGUoY2hpcCwgYWRkciwgcmVnLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODk6aW50IG12ODhlNnh4eF93YWl0X21hc2soc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkwLVx0XHRcdHUxNiBtYXNrLCB1MTYgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEwMS1cdGZvciAoaSA9IDA7IHRpbWVfYmVmb3JlKGppZmZpZXMsIHRpbWVvdXQpIHx8IChpIFx1MDAzYyAyKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEwMjpcdFx0ZXJyID0gbXY4OGU2eHh4X3JlYWQoY2hpcCwgYWRkciwgcmVnLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEwMy1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMTQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMTU6XHRlcnIgPSBtdjg4ZTZ4eHhfcmVhZChjaGlwLCBhZGRyLCByZWcsIFx1MDAyNmRhdGEpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTE2LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMjUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMjY6aW50IG12ODhlNnh4eF93YWl0X2JpdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTI3LVx0XHQgICAgICAgaW50IGJpdCwgaW50IHZhbClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyOC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMjk6XHRyZXR1cm4gbXY4OGU2eHh4X3dhaXRfbWFzayhjaGlwLCBhZGRyLCByZWcsIEJJVChiaXQpLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTMwLVx0XHRcdFx0ICAgdmFsID8gQklUKGJpdCkgOiAweDAwMDApO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzMzpzdHJ1Y3QgbWlpX2J1cyAqbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM0LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzNTpcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM3LVx0bWRpb19idXMgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoXHUwMDI2Y2hpcC1cdTAwM2VtZGlvcyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzODpcdFx0XHRcdFx0ICAgIHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMsIGxpc3QpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM5LVx0aWYgKCFtZGlvX2J1cylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNDU6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0Ni17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNDc6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0OC1cdHVuc2lnbmVkIGludCBuID0gZC1cdTAwM2Vod2lycTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNTItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV91bm1hc2soc3RydWN0IGlycV9kYXRhICpkKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTU0LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE1NTpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTU2LVx0dW5zaWduZWQgaW50IG4gPSBkLVx1MDAzZWh3aXJxO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE2MTpzdGF0aWMgaXJxcmV0dXJuX3QgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNjIte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE3MDpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE3MTpcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9TVFMsIFx1MDAyNnJlZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzI6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE3My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xODYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxODc6XHRcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE4ODpcdFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFx1MDAyNmN0bDEpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg5LVx0XHRpZiAoZXJyKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTkwLVx0XHRcdGdvdG8gdW5sb2NrO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTkxOlx0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTkyLXVubG9jazpcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MzpcdFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTQtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjAyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjAzOnN0YXRpYyBpcnFyZXR1cm5fdCBtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF9mbihpbnQgaXJxLCB2b2lkICpkZXZfaWQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDQte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjA1Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gZGV2X2lkO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjA3Olx0cmV0dXJuIG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX3dvcmsoY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDgtfVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjEwOnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfYnVzX2xvY2soc3RydWN0IGlycV9kYXRhICpkKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjExLXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxMjpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjEzLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjE0Olx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjE1LX1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIxNi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxNzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19zeW5jX3VubG9jayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTgte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjE5Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjAtXHR1MTYgbWFzayA9IEdFTk1BU0soY2hpcC1cdTAwM2VnMV9pcnEubmlycXMsIDApO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIyMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIyNDpcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjI1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzE6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIHJlZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzNS1vdXQ6XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzY6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzNy19XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzk6c3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfY2hpcCBtdjg4ZTZ4eHhfZzFfaXJxX2NoaXAgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNDA6XHQubmFtZVx0XHRcdD0gXCYjMzQ7bXY4OGU2eHh4LWcxXCYjMzQ7LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQxOlx0LmlycV9tYXNrXHRcdD0gbXY4OGU2eHh4X2cxX2lycV9tYXNrLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQyOlx0LmlycV91bm1hc2tcdFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX3VubWFzayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MzpcdC5pcnFfYnVzX2xvY2tcdFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19sb2NrLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ0Olx0LmlycV9idXNfc3luY191bmxvY2tcdD0gbXY4OGU2eHh4X2cxX2lycV9idXNfc3luY191bmxvY2ssXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDUtfTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI0Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0NzpzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9pcnFfZG9tYWluX21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqZCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI0OC1cdFx0XHRcdCAgICAgICB1bnNpZ25lZCBpbnQgaXJxLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI1MC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNTE6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkLVx1MDAzZWhvc3RfZGF0YTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI1Mi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjA6c3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjE6XHQubWFwXHQ9IG12ODhlNnh4eF9nMV9pcnFfZG9tYWluX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI2Mi1cdC54bGF0ZVx0PSBpcnFfZG9tYWluX3hsYXRlX3R3b2NlbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY1LS8qIFRvIGJlIGNhbGxlZCB3aXRoIHJlZ19sb2NrIGhlbGQgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI2NjpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI2Ny17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjcwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjcxOlx0bXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFx1MDAyNm1hc2spO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjcyLVx0bWFzayBcdTAwMjY9IH5HRU5NQVNLKGNoaXAtXHUwMDNlZzFfaXJxLm5pcnFzLCAwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI3MzpcdG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNzQtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjgyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjgzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfZnJlZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yODQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI5MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5MTpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5MjpcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTM6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI5NC19XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTY6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwX2NvbW1vbihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMwMy1cdFx0TlVMTCwgY2hpcC1cdTAwM2VnMV9pcnEubmlycXMsIDAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMDQ6XHRcdFx1MDAyNm12ODhlNnh4eF9nMV9pcnFfZG9tYWluX29wcywgY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMDUtXHRpZiAoIWNoaXAtXHUwMDNlZzFfaXJxLmRvbWFpbilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMTE6XHRjaGlwLVx1MDAzZWcxX2lycS5jaGlwID0gbXY4OGU2eHh4X2cxX2lycV9jaGlwO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEyLVx0Y2hpcC1cdTAwM2VnMV9pcnEubWFza2VkID0gfjA7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMTQ6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgXHUwMDI2bWFzayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTUtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMxOS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMyMDpcdGVyciA9IG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNC1cdC8qIFJlYWRpbmcgdGhlIGludGVycnVwdCBzdGF0dXMgY2xlYXJzIChtb3N0IG9mKSB0aGVtICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMjU6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzI2LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMzItXHRtYXNrIFx1MDAyNj0gfkdFTk1BU0soY2hpcC1cdTAwM2VnMV9pcnEubmlycXMsIDApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzMzOlx0bXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBtYXNrKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMzNC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNDUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNDY6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM0Ny17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzUxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzUyOlx0ZXJyID0gbXY4OGU2eHh4X2cxX2lycV9zZXR1cF9jb21tb24oY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNTMtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Mi1cdHNucHJpbnRmKGNoaXAtXHUwMDNlaXJxX25hbWUsIHNpemVvZihjaGlwLVx1MDAzZWlycV9uYW1lKSxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM2MzpcdFx0IFwmIzM0O212ODhlNnh4eC0lc1wmIzM0OywgZGV2X25hbWUoY2hpcC1cdTAwM2VkZXYpKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2NC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM2NTpcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzY2LVx0ZXJyID0gcmVxdWVzdF90aHJlYWRlZF9pcnEoY2hpcC1cdTAwM2VpcnEsIE5VTEwsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjc6XHRcdFx0XHQgICBtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF9mbixcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2OC1cdFx0XHRcdCAgIElSUUZfT05FU0hPVCB8IElSUUZfU0hBUkVELFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzY5LVx0XHRcdFx0ICAgY2hpcC1cdTAwM2VpcnFfbmFtZSwgY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzA6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzEtXHRpZiAoZXJyKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzcyOlx0XHRtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzczLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfaXJxX3BvbGwoc3RydWN0IGt0aHJlYWRfd29yayAqd29yaylcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3OC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzk6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBjb250YWluZXJfb2Yod29yayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MDpcdFx0XHRcdFx0XHQgICBzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODEtXHRcdFx0XHRcdFx0ICAgaXJxX3BvbGxfd29yay53b3JrKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MjpcdG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX3dvcmsoY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg4OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2lycV9wb2xsX3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4OS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzkxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkyOlx0ZXJyID0gbXY4OGU2eHh4X2cxX2lycV9zZXR1cF9jb21tb24oY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTMtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5Ni1cdGt0aHJlYWRfaW5pdF9kZWxheWVkX3dvcmsoXHUwMDI2Y2hpcC1cdTAwM2VpcnFfcG9sbF93b3JrLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzk3Olx0XHRcdFx0ICBtdjg4ZTZ4eHhfaXJxX3BvbGwpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzk4LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQwOC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQwOTpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfaXJxX3BvbGxfZnJlZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTAte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQxMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxNDpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxNTpcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MTY6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQxNy19XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MTk6c3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9jb25maWdfaW50ZXJmYWNlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMC1cdFx0XHRcdFx0ICAgaW50IHBvcnQsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDQwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDQxOnN0YXRpYyBpbnQgbXY4OGU2eHh4X3BvcnRfc2V0dXBfbWFjKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDItXHRcdFx0XHQgICAgaW50IGxpbmssIGludCBzcGVlZCwgaW50IGR1cGxleCwgaW50IHBhdXNlLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ2ODpcdGVyciA9IG12ODhlNnh4eF9wb3J0X2NvbmZpZ19pbnRlcmZhY2UoY2hpcCwgcG9ydCwgbW9kZSk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjktcmVzdG9yZV9saW5rOlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3NS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3NjpzdGF0aWMgaW50IG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3Ny17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDgzOnN0YXRpYyBpbnQgbXY4OGU2eHh4X3BvcnRfcHB1X3VwZGF0ZXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ4NC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDkxLVx0aWYgKGNoaXAtXHUwMDNlaW5mby1cdTAwM2VmYW1pbHkgPT0gTVY4OEU2WFhYX0ZBTUlMWV82MjUwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDkyOlx0XHRyZXR1cm4gbXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5My1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5NDpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDk1LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUwNT1zdGF0aWMgY29uc3QgdTggbXY4OGU2MTg1X3BoeV9pbnRlcmZhY2VfbW9kZXNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MTQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MTU6c3RhdGljIHZvaWQgbXY4OGU2MDk1X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNi1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MjEtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MjI6XHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIzLVx0XHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX01JSSwgY29uZmlnLVx1MDAzZXN1cHBvcnRlZF9pbnRlcmZhY2VzKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MzQ6c3RhdGljIHZvaWQgbXY4OGU2MTg1X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUzNS1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NDctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NDg6c3RhdGljIGNvbnN0IHU4IG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NDktXHRbTVY4OEU2WFhYX1BPUlRfU1RTX0NNT0RFX01JSV9QSFldXHQ9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SRVZNSUksXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTYyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTYzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUodTggY21vZGUsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2NC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NjU6XHRpZiAoY21vZGUgXHUwMDNjIEFSUkFZX1NJWkUobXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXMpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTY2Olx0ICAgIG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW2Ntb2RlXSlcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NzpcdFx0X19zZXRfYml0KG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW2Ntb2RlXSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2OC1cdGVsc2UgaWYgKGNtb2RlID09IE1WODhFNlhYWF9QT1JUX1NUU19DTU9ERV9SR01JSSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01NzI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU3Mzptdjg4ZTYyNTBfc2V0dXBfc3VwcG9ydGVkX2ludGVyZmFjZXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3NC1cdFx0XHRcdCAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTc5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTgwOlx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIFx1MDAyNnJlZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01ODEtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjIxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjIyOnN0YXRpYyB2b2lkIG12ODhlNjI1MF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MjMtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MjQte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjI1Olx0aWYgKCFtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKGNoaXAsIHBvcnQpKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjI2LVx0XHRtdjg4ZTYyNTBfc2V0dXBfc3VwcG9ydGVkX2ludGVyZmFjZXMoY2hpcCwgcG9ydCwgY29uZmlnKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzE6c3RhdGljIHZvaWQgbXY4OGU2MzUxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzMi1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzYtXHQvKiBUcmFuc2xhdGUgdGhlIGRlZmF1bHQgY21vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYzNzpcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzOC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NDItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDM6c3RhdGljIGludCBtdjg4ZTYzeHhfZ2V0X3BvcnRfc2VyZGVzX2Ntb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NDQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY0ODpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQ5LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NTYtXHR2YWwgPSByZWcgXHUwMDI2IH5NVjg4RTZYWFhfUE9SVF9TVFNfUEhZX0RFVEVDVDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY1NzpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY1OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjYxOlx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIFx1MDAyNnZhbCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY2NS1cdC8qIFJlc3RvcmUgUEhZX0RFVEVDVCB2YWx1ZSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjY2Olx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCByZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjY3LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzM6c3RhdGljIHZvaWQgbXY4OGU2MzUyX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3NC1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzktXHQvKiBUcmFuc2xhdGUgdGhlIGRlZmF1bHQgY21vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY4MDpcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY4MS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02OTUtXHRcdGVsc2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY5NjpcdFx0XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjk3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcwMDpzdGF0aWMgdm9pZCBtdjg4ZTYzMnhfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzAxLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwNi1cdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzA3Olx0bXY4OGU2eHh4X3RyYW5zbGF0ZV9jbW9kZShjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzA4LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcxOC1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzE5Olx0XHRcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MjAtXHR9XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzIyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzIzOnN0YXRpYyB2b2lkIG12ODhlNjM0MV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MjQtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzI4LVx0LyogVHJhbnNsYXRlIHRoZSBkZWZhdWx0IGNtb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3Mjk6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzAtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQ0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzQ1OnN0YXRpYyB2b2lkIG12ODhlNjM5MF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NDYtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwLVx0LyogVHJhbnNsYXRlIHRoZSBkZWZhdWx0IGNtb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTE6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTItXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzY2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzY3OnN0YXRpYyB2b2lkIG12ODhlNjM5MHhfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzY4LVx0XHRcdFx0XHRzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MDEtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4MDI6c3RhdGljIHZvaWQgbXY4OGU2MzkzeF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MDMtXHRcdFx0XHRcdHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTgxMC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjgxMTpcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTgxMi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NDUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NDY6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2dldF9jYXBzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NDctXHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ4LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg0OTpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NTAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTE6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NTItXHRjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBoeWxpbmtfZ2V0X2NhcHMoY2hpcCwgcG9ydCwgY29uZmlnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg1MzpcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODU0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODU1Olx0aWYgKG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCkpIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Ni1cdFx0X19zZXRfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV9JTlRFUk5BTCxcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjk1OAoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDQ4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1hcnZlbGwgODhFNnh4eCBEU0EgU3dpdGNoIERyaXZlciBpbiBhIEZ1enppbmcgQ29udGV4dCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYCwgYSBEU0Egc3dpdGNoIGRyaXZlci4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBnZXQgdGhpcyBpbnN0YW50aWF0ZWQgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudD8gRGV2aWNlIHRyZWUgc2V0dXAgd291bGQgYmUgdGhlIG5hdHVyYWwgYXBwcm9hY2gsIGJ1dCBkb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogdGhlIE1hcnZlbGwgODhFNnh4eCBzd2l0Y2g/IE5vLCB0aGF0JiMzOTtzIG5vdCBzb21ldGhpbmcgUUVNVSBwcm92aWRlcywgc28gdGhhdCBhdmVudWUgaXMgY2xvc2VkLgoKSSBzdGFydGVkIHRoaW5raW5nIGFib3V0IHN5emthbGxlciYjMzk7cyBNRElPIGluamVjdGlvbiBjYXBhYmlsaXRpZXMsIG1heWJlIHRoZXJlJiMzOTtzIGFuIE1ESU8gaW5qZWN0aW9uIG9wdGlvbj8gTm9wZSwgaXQgZG9lc24mIzM5O3QgZGlyZWN0bHkgc3VwcG9ydCB0aGF0LiBTeXprYWxsZXIgZG9lcyBoYXZlIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0aG91Z2gsIGJ1dCB0aGVyZSB3b3VsZG4mIzM5O3QgYmUgYSBVU0IgdG8gTURJTyBicmlkZ2UgZm9yIHRoYXQgdG8gYXBwbHkgdG8gdGhpcyBkcml2ZXIuIFNpbmNlIGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gZGV2aWNlLCBVU0IgaXMgYSBkZWFkIGVuZC4KClRoZW4gSSBzYXcgdGhlIGF1dGhvciBvZiB0aGUgcGF0Y2ggaXMgJiMzNDtzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7JiMzNDsuIFRoYXTigJlzIGEgaHVnZSBjbHVlLCBzaW5jZSBzeXprYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBjb2RlIGl0IGZpbmRzLiBUaGlzIG1lYW5zIHN5emthbGxlciBsaWtlbHkgZm91bmQgYSBidWcsIG9yIGlzIGZ1enppbmcgdGhpcyBjb2RlISBCdXQgaG93PyBNeSBtaW5kIHJhY2VkLiBJcyB0aGVyZSBzb21lIHZpcnR1YWwgTURJTyBkcml2ZXIgb3IgY2xldmVyIG1lY2hhbmlzbSBzeXprYWxsZXIgdXNlcz8KCkkgY29uc2lkZXJlZCBkZXZsaW5rLCBhcyBpdCYjMzk7cyBhY2Nlc3NpYmxlIHZpYSBuZXRsaW5rIGFuZCBJIGNvdWxkIHBvc3NpYmx5IGluc3RhbnRpYXRlIGEgYG12ODhlNnh4eGAgZGV2aWNlIHRoYXQgd2F5LiBCdXQgbm8sIGRldmxpbmsgY29uZmlndXJlcyAqZXhpc3RpbmcqIGRldmljZXMsIG5vdCBjcmVhdGUgdGhlbS4KCkkgc3RhcnRlZCB0byB0aGluaywgKmlzKiB0aGUgZHJpdmVyIGluc3RhbnRpYXRlZCB2aWEgc29tZSBvdGhlciBtZWFucz8gSSBsb29rZWQgZm9yIGFueSBkdW1teSBvciBzb2Z0d2FyZS1lbXVsYXRlZCBEU0Egc3dpdGNoLgoKVGhlbiwgd2FpdCEgSSByZW1lbWJlcmVkIHRoZSBjb21taXQgbWVzc2FnZSEgSXQgc2F5cyAmIzM0O3N5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldyYjMzQ7LiBBaGEhIFRoYXQgbWVhbnMgSSYjMzk7bSByZXZpZXdpbmcgYSBwYXRjaCB0aGF0IHRoZSBzeXprYWxsZXIgaW5mcmFzdHJ1Y3R1cmUgaXMgKnRlc3RpbmcqLiBJdCBkb2VzbiYjMzk7dCBtZWFuIHN5emthbGxlciAqZm91bmQqIGEgYnVnLCBpdCBtZWFucyB0aGUgcGF0Y2ggaXMgYmVpbmcgYXNzZXNzZWQgYnkgc3l6a2FsbGVyLgoKU28sIGlmIFFFTVUgKmRvZXNuJiMzOTt0KiBlbXVsYXRlIHRoaXMgZGV2aWNlICh3aGljaCBJIGNvbmZpcm1lZCksIHRoZW4gdGhlIGNvZGUgaXMgcHJvYmFibHkgdW5yZWFjaGFibGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgUUVNVSBlbXVsYXRlcyBgbXY4OGU2eHh4YC4gSSBkb24mIzM5O3QgaGF2ZSB0aGUgUUVNVSBzb3VyY2UgcmlnaHQgbm93IHRvIHNlYXJjaCwgc28gSSBuZWVkIHRvIGNoZWNrIHRoZSBrZXJuZWwgaXRzZWxmIHRvIHNlZSBpZiB0aGUgZHJpdmVyIGlzIGluc3RhbnRpYXRlZCBpbiBzb2Z0d2FyZS4gSSB3aWxsIGxvb2sgZm9yIGFueSBzb2Z0d2FyZSBpbnN0YW50aWF0aW9uIG9mIGBtdjg4ZTZ4eHhgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyLiptdjg4ZTZ4eHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDM0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBVc2Vyc3BhY2UgQ29udHJvbCBvZiBNVjg4RTZYWFggTURJTyBBY2Nlc3MqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGEgd2F5LCBhIGRpcmVjdCBwYXRoLCB0byB0cmlnZ2VyIGFuIGBtZGlvYCBkZXZpY2UgcmVnaXN0cmF0aW9uIGZvciB0aGUgYG12ODhlNnh4eGAgZnJvbSB1c2Vyc3BhY2Ugd2l0aGluIHRoZSBrZXJuZWwuIFR5cGljYWxseSwgSSYjMzk7ZCBleHBlY3QgTURJTyBkZXZpY2VzLCBsaWtlIHRoaXMgc3dpdGNoLCB0byBiZSByZWdpc3RlcmVkIG11Y2ggbG93ZXIgZG93biwgZWl0aGVyIHRocm91Z2ggdGhlIGRldmljZSB0cmVlIG9yIHRoZSBib2FyZCBmaWxlcy4gSXQmIzM5O3MgdGhlIHN0YW5kYXJkIHByYWN0aWNlLiBIbW0sIG5vIG9idmlvdXMgdXNlcnNwYWNlIHRyaWdnZXIuLi4KCldhaXQsIHRoZXJlJiMzOTtzIGBkc2FfbG9vcGAuIFJpZ2h0LCB0aGF0JiMzOTtzIGEgc29mdHdhcmUtZW11bGF0ZWQgRFNBIHN3aXRjaCwgYSB1c2VmdWwgZGVidWdnaW5nIHRvb2wuIENvdWxkIHRoZXJlIGJlIGFuIGVtdWxhdGVkIGBtdjg4ZTZ4eHhgIGltcGxlbWVudGF0aW9uLCBzb21ldGhpbmcgdGhhdCBgZHNhX2xvb3BgIG1pZ2h0IHByb3ZpZGUgb3IgaW50ZXJhY3Qgd2l0aD8gVGhhdCBjb3VsZCBiZSBhbiBpbnRlcmVzdGluZyBhdmVudWUgdG8gZXhwbG9yZSBmb3IgcG90ZW50aWFsIHVzZXJzcGFjZSBjb250cm9sLCBldmVuIGlmIGl0JiMzOTtzIGluZGlyZWN0LiBJIG5lZWQgdG8gY2hlY2sgaWYgdGhpcyBlbXVsYXRpb24gZXhpc3RzLiBUaGlzIGNvdWxkIGJlIHVzZWZ1bCB0byBleHBsb3JlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWRpb19ib2FyZF9pbmZvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDM3MwoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOgoKKipNRElPIERldmljZSBSZWdpc3RyYXRpb24gLSBBIFF1aWNrIFJlZnJlc2hlcioqCgpPa2F5LCBzbyBJJiMzOTttIGRlYWxpbmcgd2l0aCBNRElPIGRldmljZXMgaGVyZSwgYW5kIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGV5JiMzOTtyZSBiZWluZyByZWdpc3RlcmVkIGluIHRoaXMgY29kZS4gTXkgZ3V0IGZlZWxpbmcgdGVsbHMgbWUgYG1kaW9fYm9hcmRfaW5mb2AgaXMgcHJvYmFibHkgdGhlIGtleSBzdHJ1Y3R1cmUgZm9yIHRoaXMuIEl0JiMzOTtzIGEgY29tbW9uIHBhdHRlcm4sIGVzcGVjaWFsbHkgd2l0aCBib2FyZC1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gTm93LCBpZiBgbWRpb19ib2FyZF9pbmZvYCBpcyBpbmRlZWQgaW52b2x2ZWQgaW4gcmVnaXN0cmF0aW9uLCB0aGVuIHRoZXJlJiMzOTtzIGxpa2VseSBhIGNvcnJlc3BvbmRpbmcgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uLCBzb21ldGhpbmcgbGlrZSwgd2VsbCwgSSYjMzk7ZCBiZXQgb24gYG1kaW9fcmVnaXN0ZXJfYm9hcmRfaW5mb2AuIExldCYjMzk7cyBjb25maXJtIHRoYXQgaHlwb3RoZXNpcy4gQSBxdWljayBzZWFyY2ggZm9yIGBtZGlvX3JlZ2lzdGVyX2JvYXJkX2luZm9gIHNob3VsZCBnaXZlIG1lIGEgZ29vZCBzdGFydGluZyBwb2ludC4gVGhhdCBzaG91bGQgaW1tZWRpYXRlbHkgbGVhZCBtZSB0byB0aGUgcmVsZXZhbnQgcmVnaXN0cmF0aW9uIGNvZGUuIFRoYXQmIzM5O3MgbXkgbmV4dCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21kaW9fcmVnaXN0ZXJfYm9hcmRfaW5mbyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NjM1CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBteXNlbGY6CgoqKkNvbnNpZGVyaW5nIE1ESU8gQnVzIFJlZ2lzdHJhdGlvbioqCgpIbW0sIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0IGZ1bmN0aW9uIGhlcmUuLi53YWl0IGEgc2Vjb25kLiBDb3VsZCBpdCBiZSBgbWRpb2J1c19yZWdpc3Rlcl9ib2FyZF9pbmZvYD8gVGhhdCBmdW5jdGlvbiwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCBpcyB0aGUgb25lIHRoYXQgYWxsb3dzIG1lIHRvIHJlZ2lzdGVyIGJvYXJkLXNwZWNpZmljIE1ESU8gYnVzIGluZm9ybWF0aW9uLiBUaGF0IHNvdW5kcyBsaWtlIGEgc3Ryb25nIGNhbmRpZGF0ZSwgYmFzZWQgb24gd2hhdCBJIG5lZWQgdG8gZG8uIEkgbmVlZCB0byByZWdpc3RlciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgTURJTyBidXMgZm9yIHRoZSBwYXJ0aWN1bGFyIGhhcmR3YXJlIHBsYXRmb3JtIEkmIzM5O20gdGFyZ2V0aW5nLCByaWdodD8gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIHNwZWNpZmljcyBvZiB0aGUgYXJndW1lbnRzIGl0IGV4cGVjdHMgYW5kIGVuc3VyZSBJIGhhdmUgYWxsIHRoZSBuZWNlc3NhcnkgZGF0YSB0byBmZWVkIGl0LCBidXQgdGhlIG5hbWUgaXMgcHJvbWlzaW5nLiBJIHNob3VsZCBnbyBsb29rIHVwIGl0cyBkb2N1bWVudGF0aW9uIHRvIGJlIGNlcnRhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWRpb2J1c19yZWdpc3Rlcl9ib2FyZF9pbmZvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ4NTUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipQcm9iaW5nIHRoZSBgbXY4OGU2eHh4YCBTd2l0Y2g6IEEgUXVpY2sgRGl2ZSoqCgpBbHJpZ2h0LCBzbyB0aGUgaW5pdGlhbCB0aG91Z2h0IGlzIHN0cmFpZ2h0Zm9yd2FyZDogbGV0JiMzOTtzIGdldCBhIGhhbmRsZSBvbiBob3cgdGhpcyBgbXY4OGU2eHh4YCBzd2l0Y2ggaXMgYmVpbmcgcHJvYmVkLiBJJiMzOTttIGFscmVhZHkgZW52aXNpb25pbmcgdGhlIGxpa2VseSBhcmVhcyB0byBpbnZlc3RpZ2F0ZSDigJMgdGhlIGRldmljZSB0cmVlIGJpbmRpbmdzLCBrZXJuZWwgZHJpdmVyIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLCBhbmQgdGhlIGdlbmVyYWwgc2VxdWVuY2Ugb2YgZXZlbnRzIGR1cmluZyBzeXN0ZW0gc3RhcnR1cC4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBzdGFuZGFyZCBtZXRob2RzIOKAkyB0aGUgYG9mX21hdGNoX3RhYmxlYCBvciBzaW1pbGFyIG1lY2hhbmlzbXMgdXNlZCB0byBpZGVudGlmeSBhbmQgYXR0YWNoIHRoZSBhcHByb3ByaWF0ZSBkcml2ZXIgdG8gdGhlIGhhcmR3YXJlLiBJIHdhbnQgdG8gcXVpY2tseSB1bmRlcnN0YW5kIHRoZSBlbnRyeSBwb2ludHMsIHRoZSBwcm9iaW5nIGZ1bmN0aW9uJiMzOTtzIHN0cnVjdHVyZSwgYW5kIGFueSBwb3RlbnRpYWwgcXVpcmtzLiBJJiMzOTttIGhvcGluZyBpdCYjMzk7cyB3ZWxsLXN0cnVjdHVyZWQgYW5kIGZvbGxvd3MgaW5kdXN0cnkgYmVzdCBwcmFjdGljZXMsIGJ1dCBleHBlcmllbmNlIGhhcyB0YXVnaHQgbWUgdG8gYmUgcHJlcGFyZWQgZm9yIGFueXRoaW5nLiBUaGlzIHF1aWNrIHByb2JlIHdpbGwgaGVscCBtZSBkZXRlcm1pbmUgdGhlIGNvcmUgZmxvdyBhbmQgd2hhdCBpbmZvcm1hdGlvbiBvciBob29rcyBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIgZm9yIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucyBvciBpbnRlZ3JhdGlvbiB3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9tZGlvX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUxMzYKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgTVY4OEU2WFhYIFByb2JlIEZ1bmN0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSYjMzk7bSB0aGlua2luZyBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gaG93IHRoaXMgTVY4OEU2WFhYIGRyaXZlciBoYW5kbGVzIGluaXRpYWxpemF0aW9uLiBUaGUgYmVzdCBwbGFjZSB0byBzdGFydCwgYXMgYWx3YXlzLCBpcyB3aXRoIHRoZSBwcm9iZSBmdW5jdGlvbi4gSSYjMzk7bGwgZ28gc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYC4gVGhhdCYjMzk7cyB3aGVyZSBJIGV4cGVjdCB0byBmaW5kIHRoZSBtZWF0IG9mIHRoZSBpbml0aWFsIGRldmljZSBzZXR1cC4gSSB3YW50IHRvIHNlZSBob3cgdGhlIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUgZHVyaW5nIHRoZSBlYXJseSBzdGFnZXMg4oCTIHRoZSBkZXZpY2UgSUQgY2hlY2tzLCByZXNvdXJjZSBhbGxvY2F0aW9uLCBQSFkgY29uZmlndXJhdGlvbiwgYW5kIHBvdGVudGlhbGx5IGFueSByZWdpc3RlciBpbml0aWFsaXphdGlvbiBpdCBwZXJmb3Jtcy4gSeKAmW0gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gaG93IHRoZXkmIzM5O3JlIGhhbmRsaW5nIGFueSBwb3RlbnRpYWwgZXJyYXRhIGFuZCB3b3JrYXJvdW5kIGltcGxlbWVudGF0aW9uIGZvciB0aGlzIHNwZWNpZmljIGZhbWlseSBvZiBzd2l0Y2hlcy4gSG9wZWZ1bGx5IHRoZSBjb2RlIGlzIHdlbGwtY29tbWVudGVkIHNvIEkgZG9u4oCZdCBoYXZlIHRvIHNwZW5kIHRvbyBsb25nIHJldmVyc2UgZW5naW5lZXJpbmcgd2hhdCB0aGV5IHdlcmUgdGhpbmtpbmcuIExldCYjMzk7cyBzZWUgd2hhdCBnZW1zIHdlIGNhbiB1bmVhcnRoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03MzM4PXN0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhtdjg4ZTZ4eHhfcG1fb3BzLCBtdjg4ZTZ4eHhfc3VzcGVuZCwgbXY4OGU2eHh4X3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzM5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzM0MDpzdGF0aWMgaW50IG12ODhlNnh4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzQxLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTQ4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2eHh4X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1NDk6XHQucHJvYmVcdD0gbXY4OGU2eHh4X3Byb2JlLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1MC1cdC5yZW1vdmUgPSBtdjg4ZTZ4eHhfcmVtb3ZlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTcxMQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDEyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNRElPIERldmljZSBDcmVhdGlvbiBJbnF1aXJ5KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBtZGlvX2RyaXZlcmAgYW5kIHRoZSBxdWVzdGlvbiBpbW1lZGlhdGVseSBwb3BzIGludG8gbXkgaGVhZDogY2FuIHdlIGNvbmp1cmUgYW4gYG1kaW9fZGV2aWNlYCBmcm9tIHVzZXJzcGFjZT8gTXkgaW50dWl0aW9uIGlzIGxlYW5pbmcgdG93YXJkcyAmIzM0O25vJiMzNDsg4oCTIEkgZG9uJiMzOTt0IHJlY2FsbCBzZWVpbmcgYSBnZW5lcmljIG1lY2hhbmlzbSBmb3IgdGhhdCwgd2hpY2ggaXMgb2RkIGlmIEkgdGhpbmsgYWJvdXQgb3RoZXIgYnVzc2VzLiBXYWl0LCBob2xkIG9uLiBXaGF0IGFib3V0IHRoZSBJMkMgYnVzPyBUaGUgSTJDIGJ1cyAqZG9lcyogYWxsb3cgdXNlcnNwYWNlIGRldmljZSBjcmVhdGlvbiwgZG9lc24mIzM5O3QgaXQsIHRocm91Z2ggdGhlIGAvc3lzL2J1cy9pMmMvZGV2aWNlcy9pMmMtKi9uZXdfZGV2aWNlYCBpbnRlcmZhY2U/CgpUaGlzIG1ha2VzIG1lIHdvbmRlciBpZiBhIHNpbWlsYXIgdHJpY2sgZXhpc3RzIGZvciBNRElPLiBJcyB0aGVyZSBhIGAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzL2AgZGlyZWN0b3J5IHdoZXJlIHdlIGNvdWxkIHBvdGVudGlhbGx5IGZpbmQgYSBgbmV3X2RldmljZWAgZW50cnk/IFRoYXQgd291bGQgYmUgZmFudGFzdGljISBUaGUgcmVhbCBxdWVzdGlvbiBpcywgZG9lcyB0aGUgTURJTyBidXMgKmV2ZW4gc3VwcG9ydCogc3VjaCBhIGZlYXR1cmU/IExldCBtZSBnbyBwb2tlIGFyb3VuZCBhbmQgc2VlIGlmIEkgY2FuIGZpbmQgYW4gYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25ld19kZXZpY2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbWRpb19idXMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MTAzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1ESU8gRGV2aWNlIEluc3RhbnRpYXRpb24gRGlsZW1tYSoqCgpPa2F5LCBzbyBJJiMzOTttIGZhY2luZyBhIHdhbGwgaGVyZS4gTURJTyBkZXZpY2VzLCBmcm9tIHdoYXQgSSB1bmRlcnN0YW5kLCBjYW4mIzM5O3QgYmUgc3B1biB1cCBkaXJlY3RseSBmcm9tIHVzZXJzcGFjZS4gVGhhdOKAmXMgYSBzaWduaWZpY2FudCBodXJkbGUuIE5vdywgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGFuZCBkZXZpY2UgdHJlZSBvdmVybGF5cy4gVGhlIGlkZWEgZmxpY2tlcmVkIC0gY291bGQgSSBwb3RlbnRpYWxseSBsZXZlcmFnZSB0aGF0IGZvciBzb21lIGxldmVsIG9mIGNvbnRyb2w/CgpCdXQsIHRoYXQgbWVtb3J5IG5lZWRzIHJlZmluaW5nLiBEb2VzIHN5emthbGxlciAqYWN0dWFsbHkqIHByb3ZpZGUgZGV2aWNlIHRyZWUgb3ZlcmxheSBpbmplY3Rpb24sIHByb3ZpZGVkIGBDT05GSUdfT0ZfT1ZFUkxBWWAgaXMgZW5hYmxlZD8gSSYjMzk7bSBhbG1vc3QgY2VydGFpbiBpdHMgbWFpbmxpbmUgbGFja3MgdGhhdCBjYXBhYmlsaXR5LiBEYW1taXQuCgpBbHJpZ2h0LCBwaXZvdC4gSXMgdGhlcmUgc29tZSBjb252b2x1dGVkIGJ1cyBwYXRoIEkmIzM5O20gb3Zlcmxvb2tpbmc/IE1heWJlIHRoZSBNRElPIGRyaXZlciBjYW4gYmUgcmVhY2hlZCBpbmRpcmVjdGx5PyBObywgbm8sIGl0JiMzOTtzIHN0cmljdGx5IE1ESU8uIFRoYXQgYXZlbnVlIGlzIGNsb3NlZC4KCkkmIzM5O20gaGl0dGluZyBhIGRlYWQgZW5kIGhlcmUuIElzIHRoZXJlICphbnkqIHdheSB0byB0b3VjaCB0aGlzIGNvZGU/IFRoaXMgZmVlbHMgaW5jcmVhc2luZ2x5IGRpZmZpY3VsdCB0byBmdXp6LiBJZiwgaW4gYW55IHZpcnR1YWxpemVkIGNvbnRleHQgKEdDRSwgUUVNVSwgdGhlIHVzdWFsIHN1c3BlY3RzKSwgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlLCB0aGVuIGhvbmVzdGx5LCBJJiMzOTttIHdhc3RpbmcgcmVzb3VyY2VzIG9uIGEgZnV6emluZyB0YXJnZXQgdGhhdCYjMzk7cyB1bmFjaGlldmFibGUuIFRpbWUgdG8gYWRtaXQgZGVmZWF0IGFuZCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuCgpJ4oCZbSBhbHNvIGdvaW5nIHRvIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUsIGlmIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgYG12ODhlNnh4eGAgbGl2ZXMgaW4gdGhlIGtlcm5lbC4gTWF5YmUgdGhlcmUmIzM5O3MgYSBiYWNrIGRvb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXY4OGU2eHh4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjYxNwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIHN0cmVhbSBvZiB0aG91Z2h0OgoKKipOZXRkZXZzaW0gYW5kIE15IEhhcmR3YXJlIEVtdWxhdGlvbiBOZWVkcyoqCgpIbW0sIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgbmV0d29yayBkZXZpY2Ugc2ltdWxhdGlvbiBhZ2Fpbi4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHdvbmRlcmluZyBpZiBgbmV0ZGV2c2ltYCBjb3VsZCBiZSBhIHZpYWJsZSBvcHRpb24gZm9yIGVtdWxhdGluZyBhIHNwZWNpZmljIE1hcnZlbGwgc3dpdGNoIOKAkyB0aGUgYG12ODhlNnh4eGAgc2VyaWVzLiBJJiMzOTt2ZSBiZWVuIHRhY2tsaW5nIHRoaXMga2luZCBvZiBjaGFsbGVuZ2UgYmVmb3JlIGFuZCBJIGtub3cgdGhlIGxhbmRzY2FwZSBwcmV0dHkgd2VsbC4gSSBuZWVkIGEgcm9idXN0IGFuZCBmbGV4aWJsZSBlbnZpcm9ubWVudCBmb3IgdGVzdGluZy4gYG5ldGRldnNpbWAgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBwcm92aWRpbmcgdGhlIGNvcmUgZnJhbWV3b3JrIGZvciByZXByZXNlbnRpbmcgdmlydHVhbCBuZXR3b3JrIGRldmljZXMuIEJ1dCBkb2VzIGl0IGdvIGZhciBlbm91Z2g/IERvZXMgaXQgb2ZmZXIgdGhlIGxldmVsIG9mICpzcGVjaWZpYyogZGV0YWlsIHJlcXVpcmVkIHRvIGFjY3VyYXRlbHkgcmVwbGljYXRlIHRoZSBiZWhhdmlvciBvZiB0aGF0IHBhcnRpY3VsYXIgTWFydmVsbCBjaGlwc2V0PyBJIG5lZWQgdG8gZGlnIGRlZXBlci4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgZG9jdW1lbnRhdGlvbiwgc2VlIHdoYXQgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkLCBhbmQgcHJvYmFibHkgZGl2ZSBpbnRvIHRoZSBzb3VyY2UgY29kZSB0byBnZXQgYSByZWFsIGhhbmRsZSBvbiBpdHMgY2FwYWJpbGl0aWVzLiBJdOKAmXMgYW4gaW50ZXJlc3RpbmcgcXVlc3Rpb24gdG8gY29uc2lkZXIgaWYgaXQgaGFzIGJlZW4gZG9uZSBiZWZvcmUuIFVsdGltYXRlbHksIEkmIzM5O20gdHJ5aW5nIHRvIGRlY2lkZSBpZiBJIGNhbiB1c2UgaXQgYXMgYSBmb3VuZGF0aW9uIG9yIGlmIEkgbmVlZCB0byBidWlsZCBhIG1vcmUgY3VzdG9tIHNvbHV0aW9uLiBUaGUgZGV2aWwsIGFzIGFsd2F5cywgaXMgaW4gdGhlIGRldGFpbHMsIGVzcGVjaWFsbHkgaW4gaGFyZHdhcmUgZW11bGF0aW9uIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212ODhlNnh4eCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L25ldGRldnNpbS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjkzNwoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDM5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBGdXp6YWJpbGl0eSoqCgpPa2F5LCBteSBpbml0aWFsIGluc3RpbmN0IHdhcyBjb3JyZWN0LiBUaGlzIGRyaXZlciAoYG12ODhlNnh4eGApIGlzIHN0cmljdGx5IGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgaGFyZHdhcmUgc3dpdGNoZXMuIEl0JiMzOTtzIGEgbG93LWxldmVsIGRyaXZlciwgc28gbXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGl0IHJlbGllcyBvbiBkaXJlY3QgaW50ZXJhY3Rpb24gd2l0aCB0aGUgaGFyZHdhcmUuIFNpbmNlIFFFTVUsIGFuZCB2aXJ0dWFsaXphdGlvbiBpbiBnZW5lcmFsIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lLCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUg4oCTIGFuZCB0aGVyZSYjMzk7cyBubyBlcXVpdmFsZW50IGtlcm5lbC1sZXZlbCBzb2Z0d2FyZSBlbXVsYXRpb24g4oCTIHRoZSBjb2RlIGlzIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgaW4gYSBmdXp6ZXIgbGlrZSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IHN0YW5kczogYFdvcnRoRnV6emluZz1mYWxzZWAuCgpMZXQgbWUganVzdCBxdWlja2x5IHJlLWV4YW1pbmUgdGhlIHBhdGNoLiBPa2F5LCBpdCYjMzk7cyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgLCBgY2hpcC5oYCwgYGRldmxpbmsuY2AsIGFuZCBgZ2xvYmFsMV9hdHUuY2AuIEFsbCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2AgZGlyZWN0b3J5LCB3aGljaCBjb25maXJtcyBpdCYjMzk7cyB0aGUgTWFydmVsbCA4OEU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBOb3RoaW5nIGhlcmUgc3VnZ2VzdHMgYW4gYWx0ZXJuYXRpdmUgcGF0aCwgY29uZmlybWluZyBteSBpbml0aWFsIGFzc2Vzc21lbnQuIFRoZSBjb3JlIGlzc3VlIGlzIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmN5IOKAkyBpdCBjYW4mIzM5O3QgYmUgZnV6emVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZSByZWFzb25pbmcgc2hvdWxkIGJlIGNsZWFyOiBpdCBtb2RpZmllcyB0aGUgTWFydmVsbCA4OEU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLCByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUsIGFuZCB0aGVyZSYjMzk7cyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIHRvIGJyaWRnZSB0aGUgZ2FwIGZvciBmdXp6ZXIgdXRpbGl6YXRpb24uCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIGRpZyBhIGxpdHRsZSBkZWVwZXIsIEkgbmVlZCB0byBjaGVjayBmb3IgYSBwb3NzaWJsZSBwYXRod2F5LiBDb3VsZCBpdCBwb3RlbnRpYWxseSBiZSBleHBvc2VkIHZpYSBhIFBDSSBkZXZpY2U/IE5vLiBNRElPLCB0aGF0JiMzOTtzIHdoYXQgSSB0aG91Z2h0LiBVU0I/IEhvbGQgb24sIHdhaXQuIFRoZSBkb2N1bWVudGF0aW9uIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwsbXZ1c2IueWFtbGAgbWVudGlvbnMgdXNpbmcgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciB3aXRoIGEgZGV2aWNlIHRyZWUgbm9kZSBmb3Igc3dpdGNoIGRlZmluaXRpb24uIENvdWxkIHRoZXJlIGJlIGEgVVNCLXRvLU1ESU8gYnJpZGdlPyBJdCBpbXBsaWVzIHRoZSBwb3NzaWJpbGl0eS4gSXQgbG9va3MgbGlrZSBpdCBtZW50aW9ucyBgbWFydmVsbCxtdnVzYmAsIHdoaWNoIGlzIHNvbWV0aGluZyB0byBsb29rIGludG8uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21hcnZlbGwsbXZ1c2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvbWFydmVsbCxtdnVzYi55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5NQUlOVEFJTkVSUz0xNTc3ND1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6MTU3NzU6RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sXG5NQUlOVEFJTkVSUy0xNTc3Ni1GOlx0ZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc5OTAKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgc25pcHBldCwgYXMgdGhvdWdoIGl0IHdlcmUgbXkgdHJhaW4gb2YgdGhvdWdodDoKCioqRGl2aW5nIGludG8gdGhlIE1ESU8gVVNCIERyaXZlcioqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCB0aGUgTWFydmVsbCBVU0IgTURJTyBkcml2ZXIsIHNwZWNpZmljYWxseSBgZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmNgLiBUaGlzIHN1Z2dlc3RzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBVU0ItY29ubmVjdGVkIE1ESU8gY29udHJvbGxlciwgbGlrZWx5IGZvciBpbnRlcmZhY2luZyB3aXRoIFBIWXMgd2l0aGluIGEgbmV0d29ya2luZyBjb250ZXh0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIFVTQiBjb21tdW5pY2F0aW9uIGlzIGhhbmRsZWQgYXQgdGhpcyBsZXZlbCwgaG93IGl0IHRyYW5zbGF0ZXMgTURJTyBjb21tYW5kcywgYW5kIHdoYXQgc3BlY2lmaWMgTWFydmVsbCBzaWxpY29uIHRoaXMgZHJpdmVyIHRhcmdldHMuIEkgZXhwZWN0IHRvIHNlZSB0aGUgVVNCIGRlc2NyaXB0b3JzLCBlbmRwb2ludCBjb25maWd1cmF0aW9ucywgYW5kIHRoZSBjb3JlIE1ESU8gdHJhbnNhY3Rpb24gbG9naWMuIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGFueSBkZXZpY2Utc3BlY2lmaWMgcXVpcmtzIG9yIG9wdGltaXphdGlvbnMgTWFydmVsbCBtaWdodCBoYXZlIGltcGxlbWVudGVkIGluIHRoZWlyIFVTQiBpbnRlcmZhY2UgZm9yIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212dXNiJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTAtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMTpzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgbXZ1c2JfbWRpb190YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTItXHR7IFVTQl9ERVZJQ0UoVVNCX01BUlZFTExfVklELCAweDFmYTQpIH0sXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTUtfTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjE2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBtdnVzYl9tZGlvX3RhYmxlKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTE3LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM9MTg9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMjQtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoyNTpzdHJ1Y3QgbXZ1c2JfbWRpbyB7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0yNi1cdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTMxLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MzI6c3RhdGljIGludCBtdnVzYl9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKm1kaW8sIGludCBkZXYsIGludCByZWcpXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0zMy17XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzozNDpcdHN0cnVjdCBtdnVzYl9tZGlvICptdnVzYiA9IG1kaW8tXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTM1LVx0aW50IGVyciwgYWxlbjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTM2LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6Mzc6XHRtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX0FERFJdID0gY3B1X3RvX2xlMTYoMHhhNDAwIHwgKGRldiBcdTAwM2NcdTAwM2MgNSkgfCByZWcpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMzgtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzozOTpcdGVyciA9IHVzYl9idWxrX21zZyhtdnVzYi1cdTAwM2V1ZGV2LCB1c2Jfc25kYnVsa3BpcGUobXZ1c2ItXHUwMDNldWRldiwgMiksXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0MDpcdFx0XHQgICBtdnVzYi1cdTAwM2VidWYsIDYsIFx1MDAyNmFsZW4sIDEwMCk7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy00MS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNDMtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0NDpcdGVyciA9IHVzYl9idWxrX21zZyhtdnVzYi1cdTAwM2V1ZGV2LCB1c2JfcmN2YnVsa3BpcGUobXZ1c2ItXHUwMDNldWRldiwgNiksXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0NTpcdFx0XHQgICBcdTAwMjZtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX1ZBTF0sIDIsIFx1MDAyNmFsZW4sIDEwMCk7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy00Ni1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNDgtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0OTpcdHJldHVybiBsZTE2X3RvX2NwdShtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX1ZBTF0pO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNTAtfVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNTEtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo1MjpzdGF0aWMgaW50IG12dXNiX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW8sIGludCBkZXYsIGludCByZWcsIHUxNiB2YWwpXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01My17XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo1NDpcdHN0cnVjdCBtdnVzYl9tZGlvICptdnVzYiA9IG1kaW8tXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTU1LVx0aW50IGFsZW47XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01Ni1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjU3Olx0bXZ1c2ItXHUwMDNlYnVmW01WVVNCX0NNRF9BRERSXSA9IGNwdV90b19sZTE2KDB4ODAwMCB8IChkZXYgXHUwMDNjXHUwMDNjIDUpIHwgcmVnKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjU4Olx0bXZ1c2ItXHUwMDNlYnVmW01WVVNCX0NNRF9WQUxdICA9IGNwdV90b19sZTE2KHZhbCk7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01OS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjYwOlx0cmV0dXJuIHVzYl9idWxrX21zZyhtdnVzYi1cdTAwM2V1ZGV2LCB1c2Jfc25kYnVsa3BpcGUobXZ1c2ItXHUwMDNldWRldiwgMiksXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo2MTpcdFx0XHQgICAgbXZ1c2ItXHUwMDNlYnVmLCA4LCBcdTAwMjZhbGVuLCAxMDApO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjItfVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjMtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo2NDpzdGF0aWMgaW50IG12dXNiX21kaW9fcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTY1LVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjctXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZpbnRlcmZhY2UtXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6Njg6XHRzdHJ1Y3QgbXZ1c2JfbWRpbyAqbXZ1c2I7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy02OS1cdHN0cnVjdCBtaWlfYnVzICptZGlvO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNzAtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo3MTpcdG1kaW8gPSBkZXZtX21kaW9idXNfYWxsb2Nfc2l6ZShkZXYsIHNpemVvZigqbXZ1c2IpKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTcyLVx0aWYgKCFtZGlvKVxuLS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTc0LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NzU6XHRtdnVzYiA9IG1kaW8tXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjc2Olx0bXZ1c2ItXHUwMDNlbWRpbyA9IG1kaW87XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo3NzpcdG12dXNiLVx1MDAzZXVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy03OC1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTc5LVx0LyogUmV2ZXJzZWQgZnJvbSBVU0IgUENBUHMsIG5vIGlkZWEgd2hhdCB0aGVzZSBtZWFuLiAqL1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODA6XHRtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX1BSRUFNQkxFMF0gPSBjcHVfdG9fbGUxNigweGU4MDApO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODE6XHRtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX1BSRUFNQkxFMV0gPSBjcHVfdG9fbGUxNigweDAwMDEpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtODItXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo4MzpcdHNucHJpbnRmKG1kaW8tXHUwMDNlaWQsIE1JSV9CVVNfSURfU0laRSwgXCYjMzQ7bXZ1c2ItJXNcJiMzNDssIGRldl9uYW1lKGRldikpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtODQtXHRtZGlvLVx1MDAzZW5hbWUgPSBtZGlvLVx1MDAzZWlkO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtODUtXHRtZGlvLVx1MDAzZXBhcmVudCA9IGRldjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjg2Olx0bWRpby1cdTAwM2VyZWFkID0gbXZ1c2JfbWRpb19yZWFkO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODc6XHRtZGlvLVx1MDAzZXdyaXRlID0gbXZ1c2JfbWRpb193cml0ZTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTg4LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODk6XHR1c2Jfc2V0X2ludGZkYXRhKGludGVyZmFjZSwgbXZ1c2IpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtOTAtXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtOTMtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo5NDpzdGF0aWMgdm9pZCBtdnVzYl9tZGlvX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTk1LXtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjk2Olx0c3RydWN0IG12dXNiX21kaW8gKm12dXNiID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtOTctXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo5ODpcdG1kaW9idXNfdW5yZWdpc3RlcihtdnVzYi1cdTAwM2VtZGlvKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTk5LVx0dXNiX3NldF9pbnRmZGF0YShpbnRlcmZhY2UsIE5VTEwpO1xuLS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTEwMS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjEwMjpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXZ1c2JfbWRpb19kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDM6XHQubmFtZSAgICAgICA9IFwmIzM0O212dXNiX21kaW9cJiMzNDssXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDQ6XHQuaWRfdGFibGUgICA9IG12dXNiX21kaW9fdGFibGUsXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDU6XHQucHJvYmUgICAgICA9IG12dXNiX21kaW9fcHJvYmUsXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDY6XHQuZGlzY29ubmVjdCA9IG12dXNiX21kaW9fZGlzY29ubmVjdCxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTEwNy19O1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTA4LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MTA5Om1vZHVsZV91c2JfZHJpdmVyKG12dXNiX21kaW9fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTExMC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA3MjUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyNTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIGBtZGlvLW12dXNiLmNgIERyaXZlciBhbmQgUG90ZW50aWFsIFN5emthbGxlciBJbnRlcmFjdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYG1kaW8tbXZ1c2IuY2AsIGFuZCBpdCYjMzk7cyBhIFVTQiBkcml2ZXIgdGhhdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgYW4gTURJTyBidXMuIEludGVyZXN0aW5nLiBOb3csIEkga25vdyBTeXprYWxsZXIgY2FuIGVtdWxhdGUgVVNCIGRldmljZXMgdXNpbmcgYHN5el91c2JfY29ubmVjdGAuIFRoZSBpbW1lZGlhdGUgaW1wbGljYXRpb24gaXMgdGhhdCBpZiBTeXprYWxsZXIgZmlyZXMgdXAgdGhpcyBVU0IgZGV2aWNlLCBpdCBzaG91bGQgcmVnaXN0ZXIgYW4gTURJTyBidXMuCgpCdXQsIGEgY3JpdGljYWwgcXVlc3Rpb24gaW1tZWRpYXRlbHkganVtcHMgdG8gbWluZDogRG9lcyB0aGlzIE1ESU8gYnVzIHJlZ2lzdHJhdGlvbiBhdXRvbWF0aWNhbGx5IHRyaWdnZXIgYSBwcm9iZSBvZiB0aGUgYG12ODhlNnh4eGAgZHJpdmVyPyBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgdHlwaWNhbGx5LCBNRElPIGRldmljZXMgYXJlIHByb2JlZCBiYXNlZCBvbiBkZXZpY2UgdHJlZSBub2RlcyBvciBib2FyZC1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gU28sIGp1c3QgcmVnaXN0ZXJpbmcgdGhlIFVTQiBkZXZpY2UsIGNyZWF0aW5nIHRoZSBNRElPIGJ1cywgaXMgdW5saWtlbHkgdG8gcG9wdWxhdGUgaXQgd2l0aCBhbnkgZGV2aWNlcywgdW5sZXNzIHRoZXkgYXJlIHNwZWNpZmljYWxseSBlbnVtZXJhdGVkLgoKVGhlbiBJIHJlbWVtYmVyZWQgdGhhdCBNRElPIGJ1c2VzIGhhdmUgYSBzY2FubmluZyBjYXBhYmlsaXR5IGZvciBQSFlzLCB0aGF0IGlzIGRldmljZXMgaW4gdGhlIGFkZHJlc3MgcmFuZ2UgMC0zMS4gTm93LCBkb2VzIGBtZGlvYnVzX3JlZ2lzdGVyYCBhY3R1YWxseSBwZXJmb3JtIHRoaXMgc2Nhbj8gWWVzISBMb29raW5nIGNsb3NlciwgYF9fbWRpb2J1c19yZWdpc3RlcmAgY2FsbHMgYG1kaW9idXNfc2NhbmAgZm9yIGFsbCBhZGRyZXNzZXMgaWYgdGhlIGBwaHlfbWFza2AgZG9lc24mIzM5O3QgZXhjbHVkZSB0aGVtLiBTbywgYXQgbGVhc3QgdGhlcmUgKmlzKiBhIG1lY2hhbmlzbSBmb3IgZGV0ZWN0aW5nIGRldmljZXMuCgpNeSBuZXh0IGxpbmUgb2YgdGhvdWdodCBpcyB0aGF0IGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gZHJpdmVyLiBIb3cgZG9lcyBpdCBnZXQgYm91bmQ/IElzIGl0IHRocm91Z2ggYSBkaXJlY3QgbWF0Y2ggb24gYSBQSFkgSUQ/IEkgbmVlZCB0byBjaGVjayBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgIGFuZCBodW50IGRvd24gYG1kaW9fZGV2aWNlX2lkYCBvciBzb21lIG90aGVyIGJpbmRpbmcgbG9naWMuIFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGlmIHRoaXMgZW50aXJlIHNldHVwIHdpbGwgd29yayBhcyBleHBlY3RlZCB3aXRoIFN5emthbGxlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvX2RldmljZV9pZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE0MjQKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqRm9jdXNpbmcgb24gdGhlIENvcmUgb2YgdGhlIElzc3VlKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHRoZSByb290IG9mIHRoaXMuIEJhc2VkIG9uIHdoYXQgSSYjMzk7dmUgc2VlbiBzbyBmYXIsIGFuZCB0aGUgZ2VuZXJhbCBhcmNoaXRlY3R1cmUsIG15IGltbWVkaWF0ZSBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIGEgZmV3IGNyaXRpY2FsIGFyZWFzIHdpdGhpbiB0aGUgYGNoaXAuY2AgZmlsZS4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gY2hlY2sgdGhlIGltcGxlbWVudGF0aW9ucyByZWxhdGVkIHRvIGVpdGhlciBgb2ZfZGV2aWNlX2lkYCBvciBgbWRpb19kcml2ZXJgLiBPbmUgb2YgdGhlc2UgaXMgKmhpZ2hseSogbGlrZWx5IHRvIGNvbnRhaW4gdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIGNvbW11bmljYXRpb24gZmxvdywgd2hpY2ggaXMgd2hlcmUgbXkgc3VzcGljaW9uIGxpZXMgZm9yIHRoZSBjdXJyZW50IGlzc3VlIEkmIzM5O20gZGVidWdnaW5nLiBUaGVzZSBhcmUgb2Z0ZW4gdGhlIHBsYWNlcyB3aGVyZSB0aGUgZHJpdmVyIGlkZW50aWZpZXMgdGhlIHNwZWNpZmljIGhhcmR3YXJlIGl0JiMzOTtzIHRhbGtpbmcgdG8gYW5kIHNldHMgdXAgdGhlIG5lY2Vzc2FyeSBpbnRlcmZhY2UgZm9yIG1hbmFnaW5nIHRoZSBkZXZpY2UuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBhY3R1YWxseSBnb2luZyBvbiBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXY4OGU2eHh4X29mX21hdGNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUxOD1zdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MjktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTMwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ODhlNnh4eF9vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzMS1cdHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTQ1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzU0NjpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdjg4ZTZ4eHhfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1NDg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTMtXHRcdC5uYW1lID0gXCYjMzQ7bXY4OGU2MDg1XCYjMzQ7LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzU1NDpcdFx0Lm9mX21hdGNoX3RhYmxlID0gbXY4OGU2eHh4X29mX21hdGNoLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1NS1cdFx0LnBtID0gXHUwMDI2bXY4OGU2eHh4X3BtX29wcyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIwODcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxMDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEZXZpY2UgQmluZGluZyBNZWNoYW5pc20qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgdGhlIGtleSB0aGluZyB0aGF0IGp1bXBzIG91dCBpcyB0aGUgZmFjdCB0aGF0IGl0ICpvbmx5KiBoYXMgYW4gYG9mX21hdGNoX3RhYmxlYC4gVGhhdCYjMzk7cyBhIHByZXR0eSBzdHJvbmcgaW5kaWNhdG9yLiBJdCBtZWFucyB0aGUgZHJpdmVyIGlzIHNwZWNpZmljYWxseSBkZXNpZ25lZCB0byBiaW5kIGV4Y2x1c2l2ZWx5IHRvIGRldmljZXMgdGhhdCBhcmUgaW5zdGFudGlhdGVkIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLiBUaGF0JiMzOTtzIGEgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24uCgpJZiBzeXprYWxsZXIgaXMgZ29pbmcgdG8gZW11bGF0ZSBhIFVTQiBkZXZpY2UsIHRoZSBNRElPIGJ1cyAqd2lsbCogYmUgY3JlYXRlZCwgb2YgY291cnNlLiBCdXQgdGhlIHJlYWwgcHJvYmxlbSBpcyB0aGF0LCB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBkZXZpY2UgdHJlZSBub2RlIGZvciB0aGUgTURJTyBidXMgaXRzZWxmIGFuZCwgY3J1Y2lhbGx5LCBmb3IgaXRzIGNoaWxkIGRldmljZXMsIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgc2ltcGx5IHdvbiYjMzk7dCBiaW5kLiBUaGUgd2hvbGUgdGhpbmcgaGluZ2VzIG9uIHRoYXQgZGV2aWNlIHRyZWUgZGVzY3JpcHRpb24uIEl0JiMzOTtzIGxpa2UgdGhlIGRyaXZlciBuZWVkcyBhIGJpcnRoIGNlcnRpZmljYXRlLCBhbmQgdGhlIGRldmljZSB0cmVlIHByb3ZpZGVzIGl0LgoKSGFuZyBvbiBhIHNlY29uZOKApiBJIG5lZWQgdG8gY29uc2lkZXIgYWxsIHRoZSBhbmdsZXMgaGVyZS4gSXMgKnRoaXMqIHRoZSBvbmx5IHdheSB0aGlzIGRyaXZlciBnZXRzIGF0dGFjaGVkIHRvIGhhcmR3YXJlPyBMZXQgbWUgZG91YmxlLWNoZWNrLiBJIG5lZWQgdG8gcnVsZSBvdXQgYW55dGhpbmcgZWxzZSwgYW55IHNuZWFreSBgcGxhdGZvcm1fZGF0YWAgc3RydWN0dXJlcywgYW55IG90aGVyIG1hdGNoIHRhYmxlcyB0aGF0IG1pZ2h0IGhhdmUgYmVlbiBtaXNzZWQuIFdlJiMzOTtyZSBsb29raW5nIGZvciBhbHRlcm5hdGl2ZSBiaW5kaW5nIG1ldGhvZHMuIEdvdHRhIGNvdmVyIGFsbCBteSBiYXNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TU9EVUxFX0RFVklDRV9UQUJMRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MzA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXY4OGU2eHh4X29mX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0NS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1NDY6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXY4OGU2eHh4X29mX21hdGNoKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NDctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjQxCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBtdjg4ZTZ4eHhgIENvZGUgd2l0aCBTeXprYWxsZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHN5emthbGxlciBjYW4gYWN0dWFsbHkgcmVhY2ggdGhlIGNvZGUgaXQmIzM5O3MgdG91Y2hpbmcuIFRoZSBmaXJzdCB0aGluZyB0aGF0IGp1bXBzIG91dCBpcyB0aGF0IGl0JiMzOTtzIHVzaW5nIGBvZl9tYXRjaF90YWJsZWAsIHdoaWNoIG1lYW5zIHRoaXMgZHJpdmVyIGlzICpzdHJpY3RseSogZGV2aWNlIHRyZWUgbm9kZSBkZXBlbmRlbnQuIFN5emthbGxlciwgaW4gaXRzIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb24sIGRvZXNuJiMzOTt0IGluamVjdCBkZXZpY2UgdHJlZSBub2Rlcy4gSXQgdXN1YWxseSBydW5zIG9uIFFFTVUgeDg2XzY0IG9yIEFSTTY0IHdpdGggc29tZXRoaW5nIGxpa2UgdGhlIGB2aXJ0YCBtYWNoaW5lLCB3aGljaCwgYXMgSSByZWNhbGwsIGRlZmluaXRlbHkgZG9lc24mIzM5O3QgaGF2ZSBhbiBgbXY4OGU2eHh4YCBub2RlIGluIGl0cyBkZXZpY2UgdHJlZS4gU28sIHN0YW5kYXJkIGZ1enppbmcgaXNuJiMzOTt0IGdvaW5nIHRvIGdldCB1cyB0aGVyZS4KCldhaXQsIHRob3VnaOKApiB3aGF0IGlmIHN5emthbGxlciAqaXMqIHJ1bm5pbmcgb24gYSBib2FyZCB0aGF0ICpkb2VzKiBoYXZlIHRoaXMgZGV2aWNlIHRyZWUgbm9kZT8gVGhhdCYjMzk7cyBhIHBvc3NpYmlsaXR5LCBidXQgdW5saWtlbHkgZm9yIHRoZSBzdGFuZGFyZCBjb25maWd1cmF0aW9ucy4KCkFscmlnaHQsIHdoYXQgb3RoZXIgYW5nbGVzIGFyZSB0aGVyZT8gQ291bGQgaXQgYmUgaW5zdGFudGlhdGVkIHRocm91Z2ggc29tZSBsZWdhY3kgYm9hcmQgZmlsZSBtZWNoYW5pc20/IEhtbSwgbm8uIEkgcmVtZW1iZXIgY2hlY2tpbmcg4oCTIGl0JiMzOTtzIGFuIE1ESU8gZHJpdmVyLCBhbmQgYG1kaW9fYm9hcmRfaW5mb2AgaXNuJiMzOTt0IHVzZWQgYW55d2hlcmUgaW4gdGhlIGtlcm5lbCBmb3IgYG12ODhlNnh4eGAuIFNvIHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4KCldhaXQgYSBzZWNvbmTigKYgdGhpcyBwYXRjaCBtaWdodCBoYXZlIGJlZW4gYXBwbGllZCBieSBgc3l6LWNsdXN0ZXJgIGp1c3QgYmVjYXVzZSBpdCB3YXMgcGFydCBvZiBhIGxhcmdlciBzZXJpZXMsIG9yIGJlY2F1c2Ugc3l6Ym90IGF1dG9tYXRpY2FsbHkgdGVzdHMgZXZlcnl0aGluZyBzZW50IHRvIG1haWxpbmcgbGlzdHMgbGlrZSBuZXRkZXYuIFN5emJvdCBpcyBwcmV0dHkgYWdncmVzc2l2ZSDigJMgaXQmIzM5O2xsIGFwcGx5LCBjb21waWxlLCBhbmQgZnV6eiBhbnkgcGF0Y2ggaXQgc2Vlcy4gSXQgZG9lc24mIzM5O3QgYWN0dWFsbHkgKmNhcmUqIGlmIHRoZSBjb2RlIGlzIHJlYWNoYWJsZSwgaXQganVzdCBkb2VzIGl0cyBiZXN0LiBTbywgdGhlIGZhY3QgdGhhdCBzeXpib3QgYXBwbGllZCBpdCBkb2VzbiYjMzk7dCBtZWFuIGl0IGNhbiBiZSBmdXp6ZWQuCgpSaWdodCwgc28gdG8gbWFrZSBzdXJlLCBsZXQgbWUgZG91YmxlIGNoZWNrIGlmIHRoZXJlJiMzOTtzICphbm90aGVyKiB3YXkgdG8gZ2V0IHRvIGBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwYC4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtX3NldGAsIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGRldmxpbmsgcGFyYW1ldGVycyBhcmUgYmVpbmcgc2V0LCBzbyB0aGF0JiMzOTtzIHJlZ2lzdGVyZWQgaW4gYG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtc19yZWdpc3RlcmAuIE9rYXksIHRoYXQgcmVnaXN0cmF0aW9uIGlzIGNhbGxlZCBmcm9tIGBtdjg4ZTZ4eHhfc2V0dXBfZGV2bGlua19wYXJhbXNgLCB3aGljaCBpcyAqaXRzZWxmKiBjYWxsZWQgZnJvbSBgbXY4OGU2eHh4X3Byb2JlYC4gU28sIHRoZSBlbnRpcmUgY2hhaW4gaGluZ2VzIG9uIGBtdjg4ZTZ4eHhfcHJvYmVgIGJlaW5nIGNhbGxlZC4gSWYgYG12ODhlNnh4eF9wcm9iZWAgbmV2ZXIgZ2V0cyBjYWxsZWQsIHRoZSBkZXZsaW5rIHBhcmFtZXRlcnMgYXJlbiYjMzk7dCByZWdpc3RlcmVkLCBhbmQgZXZlcnl0aGluZyBkb3duIHRoZSBsaW5lIGlzIHVucmVhY2hhYmxlLgoKTm93IHRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbjogSXMgdGhlcmUgKmFueSogY2hhbmNlIGBtdjg4ZTZ4eHhfcHJvYmVgIGFjdHVhbGx5IGdldHMgY2FsbGVkPyBJIG5lZWQgdG8gY2hlY2sgdGhlIGtlcm5lbCBmb3IgYW55IGBtZGlvX2RldmljZV9yZWdpc3RlcmAgb3Igc29tZSBzaW1pbGFyIGZ1bmN0aW9uIHRoYXQgd291bGQgY3JlYXRlIGFuIGBtdjg4ZTZ4eHhgIGRldmljZS4gTGV0IG1lIGNoZWNrIHRoZSBrZXJuZWwgc291cmNlcy4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvX2RldmljZV9yZWdpc3RlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz00NDY9c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDczLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDc0Olx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3dpdGNoX21kaW9kZXYpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDc1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYz01Mj1zdGF0aWMgaW50IG9mX21kaW9idXNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtaWlfYnVzICptZGlvLFxuLS1cbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTY4LVx0LyogQWxsIGRhdGEgaXMgbm93IHN0b3JlZCBpbiB0aGUgbWRpb2RldiBzdHJ1Y3Q7IHJlZ2lzdGVyIGl0LiAqL1xuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM6Njk6XHRyYyA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmMtNzAtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jPTMzNz1zdGF0aWMgaW50IHhwY3NfcGxhdF9pbml0X2RldihzdHJ1Y3QgZHdfeHBjc19wbGF0ICpweHBjcylcbi0tXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1Ni1cbmRyaXZlcnMvbmV0L3Bjcy9wY3MteHBjcy1wbGF0LmM6MzU3Olx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1OC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYz0xMDc0PXN0YXRpYyBpbnQgYW44ODExaGJfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbi0tXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk3LVxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM6MTA5ODpcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5OS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjctLyoqXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoyODogKiBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldCAtIFJlYWQgYW5kIGluaXRpYWxpemUgdGhlIHJlc2V0IHByb3BlcnRpZXMgb2ZcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTI5LSAqXHRcdFx0XHRhbiBtZGlvIGRldmljZVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTMzLSAqL1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MzQ6c3RhdGljIGludCBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zNS17XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTQ0PUVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfY3JlYXRlKTtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDYtLyoqXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNDc6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXIgLSBSZWdpc3RlciB0aGUgbWRpbyBkZXZpY2Ugb24gdGhlIE1ESU8gYnVzXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDgtICogQG1kaW9kZXY6IG1kaW9fZGV2aWNlIHN0cnVjdHVyZSB0byBiZSBhZGRlZCB0byB0aGUgTURJTyBidXNcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTEtICovXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNTI6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE1My17XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTczLX1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE3NDpFWFBPUlRfU1lNQk9MKG1kaW9fZGV2aWNlX3JlZ2lzdGVyKTtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3NS1cbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODEtICogVGhpcyBkb2VzbiYjMzk7dCBmcmVlIHRoZSBtZGlvX2RldmljZSBpdHNlbGYsIGl0IG1lcmVseSByZXZlcnNlcyB0aGUgZWZmZWN0c1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTgyOiAqIG9mIG1kaW9fZGV2aWNlX3JlZ2lzdGVyKCkuIFVzZSBtZGlvX2RldmljZV9mcmVlKCkgdG8gZnJlZSB0aGUgZGV2aWNlXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODMtICogYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jPTE5Mj1pbnQgbWRpb2J1c19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE5OS1cdGlmIChtZGlvZGV2LVx1MDAzZWZsYWdzIFx1MDAyNiBNRElPX0RFVklDRV9GTEFHX1BIWSkge1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MjAwOlx0XHRlcnIgPSBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChtZGlvZGV2KTtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTIwMS1cdFx0aWYgKGVycilcbi0tXG5pbmNsdWRlL2xpbnV4L21kaW8uaD05MD1zdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9fZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XG5pbmNsdWRlL2xpbnV4L21kaW8uaDo5MTppbnQgbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcbmluY2x1ZGUvbGludXgvbWRpby5oLTkyLXZvaWQgbWRpb19kZXZpY2VfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MDY5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHN1bW1hcnk6CgoqKkRpZ2dpbmcgaW50byB0aGUgYGRzYV9sb29wLmNgIE1vZHVsZSoqCgpBbHJpZ2h0LCBzbyBgZHNhX2xvb3AuY2AgaXMgd2hlcmUgdGhpbmdzIGFyZSBnZXR0aW5nIGludGVyZXN0aW5nLiBNeSBpbml0aWFsIGh1bmNoIHdhcyBjb3JyZWN0OyBpdCBsb29rcyBsaWtlIHRoaXMgaXMgd2hlcmUgYSBgbWRpb2RldmAgc3dpdGNoIGlzIGFjdHVhbGx5ICpjcmVhdGVkKi4gVGhhdCYjMzk7cyBhIGtleSBwaWVjZSBvZiB0aGUgcHV6emxlIEkgd2FzIGxvb2tpbmcgZm9yLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIGRlZXBlci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bmRhbWVudGFsIHB1cnBvc2Ugb2YgYGRzYV9sb29wLmNgIGFuZCBzcGVjaWZpY2FsbHksIHdoYXQgdGhpcyBgbWRpb2RldmAgc3dpdGNoIGlzLiBMZXQmIzM5O3Mgc3RhcnQgYnkgZGlzc2VjdGluZyB0aGUgY29kZSB3aXRoaW4gdGhpcyBmaWxlLiBUaGUgZG9jdW1lbnRhdGlvbiBzaG91bGQgYmUgcHJldHR5IGNsZWFyLCBidXQgbGV0JiMzOTtzIGFzc3VtZSB0aGUgd29yc3QsIGFuZCBJIG1pZ2h0IG5lZWQgdG8gdHJhY2UgdGhlIHZhcmlhYmxlcywgb3IgYXQgbGVhc3Qgc2VhcmNoIGZvciB0aGUgcmVsYXRlZCBmdW5jdGlvbnMgdG8gdW5kZXJzdGFuZCBpdHMgZnVuY3Rpb25hbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHNhX2xvb3AmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1OnN0cnVjdCBkc2FfbG9vcF92bGFuIHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI2LVx0dTE2IG1lbWJlcnM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjktXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMDpzdHJ1Y3QgZHNhX2xvb3BfbWliX2VudHJ5IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxLVx0Y2hhciBuYW1lW0VUSF9HU1RSSU5HX0xFTl07XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTplbnVtIGRzYV9sb29wX21pYl9jb3VudGVycyB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNi1cdERTQV9MT09QX1BIWV9SRUFEX09LLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM6c3RydWN0IGRzYV9sb29wX3BvcnQge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ6XHRzdHJ1Y3QgZHNhX2xvb3BfbWliX2VudHJ5IG1pYltfX0RTQV9MT09QX0NOVF9NQVhdO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDUtXHR1MTYgcHZpZDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5OnN0cnVjdCBkc2FfbG9vcF9wcml2IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwLVx0c3RydWN0IG1paV9idXNcdCpidXM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MS1cdHVuc2lnbmVkIGludFx0cG9ydF9iYXNlO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTI6XHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiB2bGFuc1tWTEFOX05fVklEXTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUzLVx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjU0Olx0c3RydWN0IGRzYV9sb29wX3BvcnQgcG9ydHNbRFNBX01BWF9QT1JUU107XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01NS19O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTYtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1NzpzdHJ1Y3QgZHNhX2xvb3BfcGRhdGEge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTgtXHQvKiBNdXN0IGJlIGZpcnN0LCBzdWNoIHRoYXQgZHNhX3JlZ2lzdGVyX3N3aXRjaCgpIGNhbiBhY2Nlc3MgdGhpc1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTY2LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Njc6c3RhdGljIHN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkgZHNhX2xvb3BfbWlic1tdID0ge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNjgtXHRbRFNBX0xPT1BfUEhZX1JFQURfT0tdXHQ9IHsgXCYjMzQ7cGh5X3JlYWRfb2tcJiMzNDssIH0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9NzU9c3RhdGljIHN0cnVjdCBtZGlvX2RldmljZSAqc3dpdGNoX21kaW9kZXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy03Ni1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjc3OmVudW0gZHNhX2xvb3BfZGV2bGlua19yZXNvdXJjZV9pZCB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy03OC1cdERTQV9MT09QX0RFVkxJTktfUEFSQU1fSURfTk9ORSwgIC8qIERFVkxJTktfUkVTT1VSQ0VfSURfUEFSRU5UX1RPUCAqL1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTgxLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6ODI6c3RhdGljIHU2NCBkc2FfbG9vcF9kZXZsaW5rX3Z0dV9nZXQodm9pZCAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTgzLXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjg0Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTg1LVx0dW5zaWduZWQgaW50IGksIGNvdW50ID0gMDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjg2Olx0c3RydWN0IGRzYV9sb29wX3ZsYW4gKnZsO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODctXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTYtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo5NzpzdGF0aWMgaW50IGRzYV9sb29wX3NldHVwX2RldmxpbmtfcmVzb3VyY2VzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTk4LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTk5LVx0c3RydWN0IGRldmxpbmtfcmVzb3VyY2Vfc2l6ZV9wYXJhbXMgc2l6ZV9wYXJhbXM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMDA6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTAxLVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMTUtXHRcdFx0XHRcdCAgICAgIERTQV9MT09QX0RFVkxJTktfUEFSQU1fSURfVlRVLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTE2Olx0XHRcdFx0XHQgICAgICBkc2FfbG9vcF9kZXZsaW5rX3Z0dV9nZXQsIHBzKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTExNy1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMjQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMjU6c3RhdGljIGVudW0gZHNhX3RhZ19wcm90b2NvbCBkc2FfbG9vcF9nZXRfcHJvdG9jb2woc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTI2LVx0XHRcdFx0XHRcdCAgIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzMy1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEzNDpzdGF0aWMgaW50IGRzYV9sb29wX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzNS17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMzY6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTM3LVx0dW5zaWduZWQgaW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTM5LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZHMtXHUwMDNlbnVtX3BvcnRzOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0MDpcdFx0bWVtY3B5KHBzLVx1MDAzZXBvcnRzW2ldLm1pYiwgZHNhX2xvb3BfbWlicyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0MTpcdFx0ICAgICAgIHNpemVvZihkc2FfbG9vcF9taWJzKSk7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDItXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ0LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTQ1Olx0cmV0dXJuIGRzYV9sb29wX3NldHVwX2RldmxpbmtfcmVzb3VyY2VzKGRzKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Ni19XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDctXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDg6c3RhdGljIHZvaWQgZHNhX2xvb3BfdGVhcmRvd24oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNTItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNTM6c3RhdGljIGludCBkc2FfbG9vcF9nZXRfc3NldF9jb3VudChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCBpbnQgc3NldClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE1NC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTYwLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTYxOnN0YXRpYyB2b2lkIGRzYV9sb29wX2dldF9zdHJpbmdzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjItXHRcdFx0XHQgdTMyIHN0cmluZ3NldCwgdWludDhfdCAqZGF0YSlcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE2My17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNjQ6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTY1LVx0dW5zaWduZWQgaW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTczLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTc0OnN0YXRpYyB2b2lkIGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzUtXHRcdFx0XHQgICAgICAgdWludDY0X3QgKmRhdGEpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzYte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTc3Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE3OC1cdHVuc2lnbmVkIGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE4My1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE4NDpzdGF0aWMgaW50IGRzYV9sb29wX3BoeV9yZWFkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCByZWdudW0pXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xODUte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTg2Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE4Ny1cdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cdTAwM2VidXM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTk4LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTk5OnN0YXRpYyBpbnQgZHNhX2xvb3BfcGh5X3dyaXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDAtXHRcdFx0ICAgICAgaW50IHJlZ251bSwgdTE2IHZhbHVlKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjAxLXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIwMjpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDMtXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzID0gcHMtXHUwMDNlYnVzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIxNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIxNTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfYnJpZGdlX2pvaW4oc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIxNi1cdFx0XHRcdCAgICAgc3RydWN0IGRzYV9icmlkZ2UgYnJpZGdlLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIyNS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIyNjpzdGF0aWMgdm9pZCBkc2FfbG9vcF9wb3J0X2JyaWRnZV9sZWF2ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjI3LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBkc2FfYnJpZGdlIGJyaWRnZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMzItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyMzM6c3RhdGljIHZvaWQgZHNhX2xvb3BfcG9ydF9zdHBfc3RhdGVfc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMzQtXHRcdFx0XHRcdHU4IHN0YXRlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzOS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI0MDpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9maWx0ZXJpbmcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0MS1cdFx0XHRcdFx0Ym9vbCB2bGFuX2ZpbHRlcmluZyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNDktXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNTA6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X3ZsYW5fYWRkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTEtXHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBzd2l0Y2hkZXZfb2JqX3BvcnRfdmxhbiAqdmxhbixcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTUtXHRib29sIHB2aWQgPSB2bGFuLVx1MDAzZWZsYWdzIFx1MDAyNiBCUklER0VfVkxBTl9JTkZPX1BWSUQ7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNTY6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU3LVx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVx1MDAzZWJ1cztcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1ODpcdHN0cnVjdCBkc2FfbG9vcF92bGFuICp2bDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1OS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyODM6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X3ZsYW5fZGVsKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODQtXHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBzd2l0Y2hkZXZfb2JqX3BvcnRfdmxhbiAqdmxhbilcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODYtXHRib29sIHVudGFnZ2VkID0gdmxhbi1cdTAwM2VmbGFncyBcdTAwMjYgQlJJREdFX1ZMQU5fSU5GT19VTlRBR0dFRDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI4NzpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODgtXHR1MTYgcHZpZCA9IHBzLVx1MDAzZXBvcnRzW3BvcnRdLnB2aWQ7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODktXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzID0gcHMtXHUwMDNlYnVzO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjkwOlx0c3RydWN0IGRzYV9sb29wX3ZsYW4gKnZsO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjkxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxMC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMxMTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfY2hhbmdlX210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEyLVx0XHRcdFx0ICAgIGludCBuZXdfbXR1KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEzLXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMxNDpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcml2ID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxNS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjAtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMjE6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X21heF9tdHUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyMi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzI1LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzI2OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzYSwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjctXHRcdFx0XHQgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMzMtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzQ6c3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBkc2FfbG9vcF9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzU6XHQuZ2V0X3RhZ19wcm90b2NvbFx0PSBkc2FfbG9vcF9nZXRfcHJvdG9jb2wsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzY6XHQuc2V0dXBcdFx0XHQ9IGRzYV9sb29wX3NldHVwLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM3Olx0LnRlYXJkb3duXHRcdD0gZHNhX2xvb3BfdGVhcmRvd24sXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzg6XHQuZ2V0X3N0cmluZ3NcdFx0PSBkc2FfbG9vcF9nZXRfc3RyaW5ncyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzOTpcdC5nZXRfZXRodG9vbF9zdGF0c1x0PSBkc2FfbG9vcF9nZXRfZXRodG9vbF9zdGF0cyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MDpcdC5nZXRfc3NldF9jb3VudFx0XHQ9IGRzYV9sb29wX2dldF9zc2V0X2NvdW50LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQxOlx0LmdldF9ldGh0b29sX3BoeV9zdGF0c1x0PSBkc2FfbG9vcF9nZXRfZXRodG9vbF9zdGF0cyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MjpcdC5waHlfcmVhZFx0XHQ9IGRzYV9sb29wX3BoeV9yZWFkLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQzOlx0LnBoeV93cml0ZVx0XHQ9IGRzYV9sb29wX3BoeV93cml0ZSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NDpcdC5wb3J0X2JyaWRnZV9qb2luXHQ9IGRzYV9sb29wX3BvcnRfYnJpZGdlX2pvaW4sXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDU6XHQucG9ydF9icmlkZ2VfbGVhdmVcdD0gZHNhX2xvb3BfcG9ydF9icmlkZ2VfbGVhdmUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDY6XHQucG9ydF9zdHBfc3RhdGVfc2V0XHQ9IGRzYV9sb29wX3BvcnRfc3RwX3N0YXRlX3NldCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NzpcdC5wb3J0X3ZsYW5fZmlsdGVyaW5nXHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9maWx0ZXJpbmcsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDg6XHQucG9ydF92bGFuX2FkZFx0XHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9hZGQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDk6XHQucG9ydF92bGFuX2RlbFx0XHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9kZWwsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTA6XHQucG9ydF9jaGFuZ2VfbXR1XHQ9IGRzYV9sb29wX3BvcnRfY2hhbmdlX210dSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MTpcdC5wb3J0X21heF9tdHVcdFx0PSBkc2FfbG9vcF9wb3J0X21heF9tdHUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTI6XHQucGh5bGlua19nZXRfY2Fwc1x0PSBkc2FfbG9vcF9waHlsaW5rX2dldF9jYXBzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzUzLX07XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTU6c3RhdGljIGludCBkc2FfbG9vcF9kcnZfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU2LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1NzpcdHN0cnVjdCBkc2FfbG9vcF9wZGF0YSAqcGRhdGEgPSBtZGlvZGV2LVx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU4Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU5LVx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM4Mi1cdGRzLVx1MDAzZWRldiA9IFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzgzOlx0ZHMtXHUwMDNlb3BzID0gXHUwMDI2ZHNhX2xvb3BfZHJpdmVyO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzg0LVx0ZHMtXHUwMDNlcHJpdiA9IHBzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5Ni1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM5NzpzdGF0aWMgdm9pZCBkc2FfbG9vcF9kcnZfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5OC17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zOTktXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkZXZfZ2V0X2RydmRhdGEoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDAwOlx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDAxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQxMC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQxMTpzdGF0aWMgdm9pZCBkc2FfbG9vcF9kcnZfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDEyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MjM6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBkc2FfbG9vcF9kcnYgPSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjQtXHQubWRpb2Rydi5kcml2ZXJcdD0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyNi1cdH0sXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjc6XHQucHJvYmVcdD0gZHNhX2xvb3BfZHJ2X3Byb2JlLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDI4Olx0LnJlbW92ZVx0PSBkc2FfbG9vcF9kcnZfcmVtb3ZlLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDI5Olx0LnNodXRkb3duID0gZHNhX2xvb3BfZHJ2X3NodXRkb3duLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDMwLX07XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzEtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzI6c3RhdGljIGludCBkc2FfbG9vcF9idXNfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDMzLVx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzQte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM1Olx0cmV0dXJuIGRydiA9PSBcdTAwMjZkc2FfbG9vcF9kcnYubWRpb2Rydi5kcml2ZXI7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzYtfVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDM3LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM4OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3Rlcih2b2lkKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDM5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NDUtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDY6c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NDcte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ4Olx0c3RhdGljIHN0cnVjdCBkc2FfbG9vcF9wZGF0YSBkc2FfbG9vcF9wZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0OS1cdFx0LmNkID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3MC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3MTpcdHN3aXRjaF9tZGlvZGV2LVx1MDAzZWJ1c19tYXRjaCA9IGRzYV9sb29wX2J1c19tYXRjaDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3MjpcdHN3aXRjaF9tZGlvZGV2LVx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhID0gXHUwMDI2ZHNhX2xvb3BfcGRhdGE7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDgxLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDgyOnN0YXRpYyBpbnQgX19pbml0IGRzYV9sb29wX2luaXQodm9pZClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4My17XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDg2LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDg3Olx0cmV0ID0gZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KCk7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00ODgtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ5My1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5NDpcdHJldCA9IG1kaW9fZHJpdmVyX3JlZ2lzdGVyKFx1MDAyNmRzYV9sb29wX2Rydik7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTUtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0OTY6XHRcdGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3RlcigpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDk3LVx0XHRtZGlvX2RldmljZV9yZW1vdmUoc3dpdGNoX21kaW9kZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwMi19XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDM6bW9kdWxlX2luaXQoZHNhX2xvb3BfaW5pdCk7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MDQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDU6c3RhdGljIHZvaWQgX19leGl0IGRzYV9sb29wX2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwNi17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDc6XHRtZGlvX2RyaXZlcl91bnJlZ2lzdGVyKFx1MDAyNmRzYV9sb29wX2Rydik7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDg6XHRkc2FfbG9vcF9waHlkZXZzX3VucmVnaXN0ZXIoKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwOS1cdG1kaW9fZGV2aWNlX3JlbW92ZShzd2l0Y2hfbWRpb2Rldik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTExLX1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUxMjptb2R1bGVfZXhpdChkc2FfbG9vcF9leGl0KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE3NTQKCQkJCQkJCW91dHB1dDogMTA4CgkJCQkJCQl0aG91Z2h0czogMzU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IFRoaXMgUGF0Y2ggaXMgTm90IEZ1enphYmxlIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqCgpPa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBJJiMzOTt2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBgZHNhX2xvb3AuY2AgZmlsZSwgYW5kIGl0JiMzOTtzIGNsZWFyIHRoYXQgaXQmIzM5O3MgYSBzb2Z0d2FyZS1lbXVsYXRlZCBEU0Egc3dpdGNoLCBidXQgaXQgZG9lc24mIzM5O3QgdHJ5IHRvIGVtdWxhdGUgYW55IHNwZWNpZmljIGhhcmR3YXJlIGxpa2UgdGhlIGBtdjg4ZTZ4eHhgLiBJdCBjcmVhdGVzIGl0cyBvd24gTURJTyBkZXZpY2UgYW5kIHJlZ2lzdGVycyBpdHMgb3duIGRyaXZlciwgYGRzYV9sb29wX2RydmAsIHRvdGFsbHkgaW5kZXBlbmRlbnQgb2YgdGhlIE1hcnZlbGwgY2hpcC4gIFNvLCBiYXNlZCBvbiB0aGF0LCB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIGlzbiYjMzk7dCBnb2luZyB0byBiZSByZWFjaGFibGUgdGhyb3VnaCBgZHNhX2xvb3BgLgoKSSBhbHNvIGNoZWNrZWQgYGRzYV9sb29wX2JkaW5mby5jYCB3aGljaCByZWdpc3RlcnMgYSBmaXhlZCBQSFksIGJ1dCBhZ2FpbiwgdGhpcyBkb2VzbiYjMzk7dCBvZmZlciB1cyBhIHBhdGggdG8gZW11bGF0ZSBvciByZWFjaCB0aGUgTWFydmVsbCBjaGlwLgoKRnVydGhlcm1vcmUsIEkgaGF2ZSB2ZXJpZmllZCB0aGVyZSYjMzk7cyBubyBvdGhlciBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgYG12ODhlNnh4eGAgd2l0aGluIHRoaXMgY29udGV4dC4KClRoZXJlZm9yZSwgdGhlIGNyaXRpY2FsIGNvbmNsdXNpb24gaXMgdGhhdCB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIGlzIHNpbXBseSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZS4gVGhpcyBtZWFucyB3ZSBjYW4mIzM5O3QgZnV6eiBpdC4KCkxldCBtZSBmb3JtdWxhdGUgdGhlIHJlYXNvbmluZyBmb3IgdGhlIHJlY29yZDogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBtdjg4ZTZ4eHhgIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IHBoeXNpY2FsIHN3aXRjaGVzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gUUVNVSBvciB0aGUga2VybmVsLCBhbmQgdGhlIGRyaXZlciByZXF1aXJlcyBhIGRldmljZSB0cmVlIG5vZGUgdG8gcHJvYmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OwoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkgY2hlY2tlZCB0aGUgYHN5emthbGxlcmAgY29uZmlndXJhdGlvbnMuIFdoaWxlIGl0JiMzOTtzIGNvbW1vbiB0byBzZWUgYENPTkZJR19ORVRfRFNBX01WODhFNlhYWD15YCBlbmFibGVkLCB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUgb3IgZW11bGF0aW9uLCB0aGUgZHJpdmVyIGp1c3Qgc2l0cyB0aGVyZSwgYW5kIGl0cyBwcm9iZSBmdW5jdGlvbiBuZXZlciBnZXRzIGV4ZWN1dGVkLiBUaGlzIGZ1cnRoZXIgc29saWRpZmllcyB0aGUgY29uY2x1c2lvbi4KCkkmIzM5O20gY29uZmlkZW50IGluIG15IGFzc2Vzc21lbnQuIEkmIzM5O20gZ29pbmcgdG8gc2V0IHRoZSByZXN1bHRzIHRvIGBXb3J0aEZ1enppbmc9ZmFsc2VgIHdpdGggdGhlIHJlYXNvbmluZyBJJiMzOTt2ZSBzdGF0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBwaHlzaWNhbCBzd2l0Y2hlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIFFFTVUgb3IgdGhlIGtlcm5lbCwgYW5kIHRoZSBkcml2ZXIgcmVxdWlyZXMgYSBkZXZpY2UgdHJlZSBub2RlIHRvIHByb2JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IHBoeXNpY2FsIHN3aXRjaGVzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gUUVNVSBvciB0aGUga2VybmVsLCBhbmQgdGhlIGRyaXZlciByZXF1aXJlcyBhIGRldmljZSB0cmVlIG5vZGUgdG8gcHJvYmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NDo0Ny43MDc5NTI0NzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjEyNjc1MzA3MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgc3dpdGNoZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBRRU1VIG9yIHRoZSBrZXJuZWwsIGFuZCB0aGUgZHJpdmVyIHJlcXVpcmVzIGEgZGV2aWNlIHRyZWUgbm9kZSB0byBwcm9iZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDQ6NDcuNzA3OTU4OTk2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTU3NjY1NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlMWRiZWJkNjQ1NzliYzAxNTcwNGIzYmUwZTg2NGQ1YzJkMWI1MjUzXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDE1IDA3OjQ0OjQ1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcXG5pbmRleCA4MGI4NzdjNzQ1MTNkNi4uNmZhYWU3NGRlMDRhOWIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xcbkBAIC0yNTIzLDcgKzI1MjMsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2FkZF9icm9hZGNhc3Qoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG4gXFx0cmV0dXJuIG12ODhlNnh4eF9wb3J0X2RiX2xvYWRfcHVyZ2UoY2hpcCwgcG9ydCwgYnJvYWRjYXN0LCB2aWQsIHN0YXRlKTtcXG4gfVxcbiBcXG4tc3RhdGljIGludCBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IHZpZClcXG4raW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKVxcbiB7XFxuIFxcdGludCBwb3J0O1xcbiBcXHRpbnQgZXJyO1xcbkBAIC01NzQ3LDYgKzU3NDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MDk3LFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYwODVcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMCxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTc5Miw2ICs1NzkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjA5NyxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MDk3Lzg4RTYwOTdGXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXFxuQEAgLTU4MTcsNiArNTgxOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjEyM1xcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gMTAyNCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDMsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTU4NjMsNiArNTg2Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNDEsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjE0MVxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gMjU2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSAyMDQ4LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNixcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTg4OSw2ICs1ODkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjE2NSxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTYxXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSAxMDI0LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNixcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTkxNSw2ICs1OTIwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjE2NSxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTY1XFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNixcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcXG5AQCAtNTk0MCw2ICs1OTQ2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTcxXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTk2NSw2ICs1OTcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTcyXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTk5MSw2ICs1OTk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTc1XFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNjAxNiw2ICs2MDI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTc2XFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNjA2NCw2ICs2MDc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTkwXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSAxNjM4NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuQEAgLTYwODksNiArNjEwMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjE5MFhcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDE2Mzg0LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFx0LyogMTAgKyBaODAgKi9cXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcXG5AQCAtNjExNCw2ICs2MTI2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTkxXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSAxNjM4NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuQEAgLTYxMzksNiArNjE1Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTMsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjE5MVhcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxcbiBcXHRcXHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxcbkBAIC02MTY0LDYgKzYxNzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYxOTNYXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFx0LyogMTAgKyBaODAgKi9cXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcXG4gXFx0XFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXFxuQEAgLTYyMTgsNiArNjIzMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjI0MFxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTYyNjcsNiArNjI4Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjI5MFxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE2LFxcbkBAIC02Mjk0LDYgKzYzMTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzMjBcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxcbkBAIC02MzIyLDYgKzYzNDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzMjFcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxcbkBAIC02MzUwLDYgKzYzNjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzQxLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzNDFcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDI1NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gMjA0OCxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDYsXFxuQEAgLTYzNzcsNiArNjM5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjM1MFxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTY0MDIsNiArNjQyMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjM1MVxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTY0MjcsNiArNjQ0OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjM1MlxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTY0NTMsNiArNjQ3Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTMsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjM2MVxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gMTYzODQsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXG4gXFx0XFx0LyogUG9ydHMgMSwgMiBhbmQgOCBhcmUgbm90IHJvdXRlZCAqL1xcbkBAIC02NDgwLDYgKzY1MDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzOTBcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDE2Mzg0LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFx0LyogMTAgKyBaODAgKi9cXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcXG5AQCAtNjUwOCw2ICs2NTMzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MzkwWFxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gMTYzODQsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxcbkBAIC02NTM1LDYgKzY1NjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzOTNYXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFx0LyogMTAgKyBaODAgKi9cXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcXG4gXFx0XFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcXG5pbmRleCBlOTY2ZTdjNGNjNWRlYS4uYWJiYjQ0NmI3MzQ1NmUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxcbkBAIC0xNzYsNiArMTc2LDkgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHtcXG4gXFx0LyogU3VwcG9ydHMgUFRQICovXFxuIFxcdGJvb2wgcHRwX3N1cHBvcnQ7XFxuIFxcbitcXHQvKiBIYXMgYSBkZWRpY2F0ZWQgQVRVIEZJRCByZWdpc3Rlci4gKi9cXG4rXFx0Ym9vbCBhdHVfZmlkX3JlZztcXG4rXFxuIFxcdC8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0XFxuIFxcdCAqIHBvcnQgMCwgMSBtZWFucyBpbnRlcm5hbCBQSFlzIHJhbmdlIHN0YXJ0cyBhdCBwb3J0IDEsIGV0Y1xcbiBcXHQgKi9cXG5AQCAtODkwLDQgKzg5Myw2IEBAIGludCBtdjg4ZTZ4eHhfdnR1X3dhbGsoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbiBcXHRcXHRcXHRcXHQgdm9pZCAqcHJpdiksXFxuIFxcdFxcdCAgICAgICB2b2lkICpwcml2KTtcXG4gXFxuK2ludCBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IHZpZCk7XFxuK1xcbiAjZW5kaWYgLyogX01WODhFNlhYWF9DSElQX0ggKi9cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9kZXZsaW5rLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuY1xcbmluZGV4IDZmMDM0ODQxODgzYzZmLi41MTY4MzM1ZjUyMjg5YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jXFxuQEAgLTYxLDYgKzYxLDEyIEBAIGludCBtdjg4ZTZ4eHhfZGV2bGlua19wYXJhbV9zZXQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCB1MzIgaWQsXFxuIFxcdHN3aXRjaCAoaWQpIHtcXG4gXFx0Y2FzZSBNVjg4RTZYWFhfREVWTElOS19QQVJBTV9JRF9BVFVfSEFTSDpcXG4gXFx0XFx0ZXJyID0gbXY4OGU2eHh4X2F0dV9zZXRfaGFzaChjaGlwLCBjdHgtXFx1MDAzZXZhbC52dTgpO1xcbitcXHRcXHRpZiAoZXJyKVxcbitcXHRcXHRcXHRicmVhaztcXG4rXFx0XFx0ZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9mbHVzaChjaGlwLCAwLCB0cnVlKTtcXG4rXFx0XFx0aWYgKGVycilcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcdFxcdGVyciA9IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoY2hpcCwgMCk7XFxuIFxcdFxcdGJyZWFrO1xcbiBcXHRkZWZhdWx0OlxcbiBcXHRcXHRlcnIgPSAtRU9QTk9UU1VQUDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jXFxuaW5kZXggYzQ3ZjA2OGY1NmIzMmEuLjZiZWU5NDNjODM1NzVkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuY1xcbkBAIC0xMzUsNyArMTM1LDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfYXR1X29wKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IGZpZCwgdTE2IG9wKVxcbiBcXHRpbnQgZXJyO1xcbiBcXG4gXFx0LyogRklEIGJpdHMgYXJlIGRpc3BhdGNoZWQgYWxsIGFyb3VuZCBncmFkdWFsbHkgYXMgbW9yZSBhcmUgc3VwcG9ydGVkICovXFxuLVxcdGlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSBcXHUwMDNlIDI1Nikge1xcbitcXHRpZiAoY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlYXR1X2ZpZF9yZWcpIHtcXG4gXFx0XFx0ZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9maWRfd3JpdGUoY2hpcCwgZmlkKTtcXG4gXFx0XFx0aWYgKGVycilcXG4gXFx0XFx0XFx0cmV0dXJuIGVycjtcXG5AQCAtMTc5LDcgKzE3OSw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2F0dV9maWRfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiAqZmlkKVxcbiBcXHR1MTYgdmFsID0gMCwgdXBwZXIgPSAwLCBvcCA9IDA7XFxuIFxcdGludCBlcnIgPSAtRU9QTk9UU1VQUDtcXG4gXFxuLVxcdGlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSBcXHUwMDNlIDI1Nikge1xcbitcXHRpZiAoY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlYXR1X2ZpZF9yZWcpIHtcXG4gXFx0XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2MzUyX0cxX0FUVV9GSUQsIFxcdTAwMjZ2YWwpO1xcbiBcXHRcXHR2YWwgXFx1MDAyNj0gMHhmZmY7XFxuIFxcdFxcdGlmIChlcnIpXFxuQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXFxuIFxcdFxcdGlmIChlbnRyeS1cXHUwMDNldHJ1bmspXFxuIFxcdFxcdFxcdGRhdGEgfD0gTVY4OEU2WFhYX0cxX0FUVV9EQVRBX1RSVU5LO1xcbiBcXG4tXFx0XFx0ZGF0YSB8PSAoZW50cnktXFx1MDAzZXBvcnR2ZWMgXFx1MDAyNiBtdjg4ZTZ4eHhfcG9ydF9tYXNrKGNoaXApKSBcXHUwMDNjXFx1MDAzYyA0O1xcbitcXHRcXHRkYXRhIHw9IGVudHJ5LVxcdTAwM2Vwb3J0dmVjIFxcdTAwM2NcXHUwMDNjIDQ7XFxuIFxcdH1cXG4gXFxuIFxcdHJldHVybiBtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0FUVV9EQVRBLCBkYXRhKTtcXG5AQCAtMzI2LDYgKzMyNiwxMSBAQCBpbnQgbXY4OGU2eHh4X2cxX2F0dV9sb2FkcHVyZ2Uoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgZmlkLFxcbiBcXHRpZiAoZXJyKVxcbiBcXHRcXHRyZXR1cm4gZXJyO1xcbiBcXG4rXFx0LyogTWFzayBwb3J0dmVjIHRvIGEgY2hpcCdzIHJlYWwgcG9ydHMgc28gdGhleSBjYW5ub3Qgc3BpbGwgaW50b1xcbitcXHQgKiBhZGphY2VudCBBVFUgRGF0YSByZWdpc3RlciBmaWVsZHMuXFxuK1xcdCAqL1xcbitcXHRlbnRyeS1cXHUwMDNlcG9ydHZlYyBcXHUwMDI2PSBtdjg4ZTZ4eHhfcG9ydF9tYXNrKGNoaXApO1xcbitcXG4gXFx0ZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9kYXRhX3dyaXRlKGNoaXAsIGVudHJ5KTtcXG4gXFx0aWYgKGVycilcXG4gXFx0XFx0cmV0dXJuIGVycjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDQ6NDguNDI0NzE2MzUxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjA1NTA3NTcwNTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgc3dpdGNoZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBRRU1VIG9yIHRoZSBrZXJuZWwsIGFuZCB0aGUgZHJpdmVyIHJlcXVpcmVzIGEgZGV2aWNlIHRyZWUgbm9kZSB0byBwcm9iZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlMWRiZWJkNjQ1NzliYzAxNTcwNGIzYmUwZTg2NGQ1YzJkMWI1MjUzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMDc6NDQ6NDUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5pbmRleCA4MGI4NzdjNzQ1MTNkNi4uNmZhYWU3NGRlMDRhOWIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcbkBAIC0yNTIzLDcgKzI1MjMsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2FkZF9icm9hZGNhc3Qoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiBcdHJldHVybiBtdjg4ZTZ4eHhfcG9ydF9kYl9sb2FkX3B1cmdlKGNoaXAsIHBvcnQsIGJyb2FkY2FzdCwgdmlkLCBzdGF0ZSk7XG4gfVxuIFxuLXN0YXRpYyBpbnQgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiB2aWQpXG4raW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKVxuIHtcbiBcdGludCBwb3J0O1xuIFx0aW50IGVycjtcbkBAIC01NzQ3LDYgKzU3NDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MDk3LFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MDg1XCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDEwLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU3OTIsNiArNTc5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYwOTcsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYwOTcvODhFNjA5N0ZcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG5AQCAtNTgxNyw2ICs1ODE5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjE2NSxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjEyM1wiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDEwMjQsXG4gXHRcdC5udW1fcG9ydHMgPSAzLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU4NjMsNiArNTg2Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNDEsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxNDFcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSAyNTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDIwNDgsXG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU4ODksNiArNTg5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxNjFcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSAxMDI0LFxuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC01OTE1LDYgKzU5MjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MTY1LFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MTY1XCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG5AQCAtNTk0MCw2ICs1OTQ2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjE3MVwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU5NjUsNiArNTk3Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxNzJcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC01OTkxLDYgKzU5OTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUxLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MTc1XCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNjAxNiw2ICs2MDI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjE3NlwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTYwNjQsNiArNjA3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxOTBcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSAxNjM4NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02MDg5LDYgKzYxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MTkwWFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuQEAgLTYxMTQsNiArNjEyNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxOTFcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSAxNjM4NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02MTM5LDYgKzYxNTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MTkxWFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDEsXG5AQCAtNjE2NCw2ICs2MTc4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjE5M1hcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuIFx0XHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcbkBAIC02MjE4LDYgKzYyMzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MjQwXCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNjI2Nyw2ICs2MjgzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjI5MFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXG4gXHRcdC5udW1fZ3BpbyA9IDE2LFxuQEAgLTYyOTQsNiArNjMxMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzMjAsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYzMjBcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMixcbkBAIC02MzIyLDYgKzYzNDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MzIxXCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXG5AQCAtNjM1MCw2ICs2MzY5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM0MSxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjM0MVwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDI1NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMjA0OCxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG5AQCAtNjM3Nyw2ICs2Mzk3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjM1MFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTY0MDIsNiArNjQyMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYzNTFcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC02NDI3LDYgKzY0NDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MzUyXCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNjQ1Myw2ICs2NDc2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjM2MVwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXG4gXHRcdC8qIFBvcnRzIDEsIDIgYW5kIDggYXJlIG5vdCByb3V0ZWQgKi9cbkBAIC02NDgwLDYgKzY1MDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MzkwXCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTYzODQsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXG5AQCAtNjUwOCw2ICs2NTMzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjM5MFhcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSAxNjM4NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02NTM1LDYgKzY1NjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MzkzWFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5udW1fdGNhbV9lbnRyaWVzID0gMjU2LFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcbmluZGV4IGU5NjZlN2M0Y2M1ZGVhLi5hYmJiNDQ2YjczNDU2ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuQEAgLTE3Niw2ICsxNzYsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0LyogU3VwcG9ydHMgUFRQICovXG4gXHRib29sIHB0cF9zdXBwb3J0O1xuIFxuK1x0LyogSGFzIGEgZGVkaWNhdGVkIEFUVSBGSUQgcmVnaXN0ZXIuICovXG4rXHRib29sIGF0dV9maWRfcmVnO1xuK1xuIFx0LyogSW50ZXJuYWwgUEhZIHN0YXJ0IGluZGV4LiAwIG1lYW5zIHRoYXQgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXRcbiBcdCAqIHBvcnQgMCwgMSBtZWFucyBpbnRlcm5hbCBQSFlzIHJhbmdlIHN0YXJ0cyBhdCBwb3J0IDEsIGV0Y1xuIFx0ICovXG5AQCAtODkwLDQgKzg5Myw2IEBAIGludCBtdjg4ZTZ4eHhfdnR1X3dhbGsoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuIFx0XHRcdFx0IHZvaWQgKnByaXYpLFxuIFx0XHQgICAgICAgdm9pZCAqcHJpdik7XG4gXG4raW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKTtcbitcbiAjZW5kaWYgLyogX01WODhFNlhYWF9DSElQX0ggKi9cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jXG5pbmRleCA2ZjAzNDg0MTg4M2M2Zi4uNTE2ODMzNWY1MjI4OWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuY1xuKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9kZXZsaW5rLmNcbkBAIC02MSw2ICs2MSwxMiBAQCBpbnQgbXY4OGU2eHh4X2RldmxpbmtfcGFyYW1fc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgdTMyIGlkLFxuIFx0c3dpdGNoIChpZCkge1xuIFx0Y2FzZSBNVjg4RTZYWFhfREVWTElOS19QQVJBTV9JRF9BVFVfSEFTSDpcbiBcdFx0ZXJyID0gbXY4OGU2eHh4X2F0dV9zZXRfaGFzaChjaGlwLCBjdHgtXHUwMDNldmFsLnZ1OCk7XG4rXHRcdGlmIChlcnIpXG4rXHRcdFx0YnJlYWs7XG4rXHRcdGVyciA9IG12ODhlNnh4eF9nMV9hdHVfZmx1c2goY2hpcCwgMCwgdHJ1ZSk7XG4rXHRcdGlmIChlcnIpXG4rXHRcdFx0YnJlYWs7XG4rXHRcdGVyciA9IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoY2hpcCwgMCk7XG4gXHRcdGJyZWFrO1xuIFx0ZGVmYXVsdDpcbiBcdFx0ZXJyID0gLUVPUE5PVFNVUFA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jXG5pbmRleCBjNDdmMDY4ZjU2YjMyYS4uNmJlZTk0M2M4MzU3NWQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuY1xuQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfb3Aoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgZmlkLCB1MTYgb3ApXG4gXHRpbnQgZXJyO1xuIFxuIFx0LyogRklEIGJpdHMgYXJlIGRpc3BhdGNoZWQgYWxsIGFyb3VuZCBncmFkdWFsbHkgYXMgbW9yZSBhcmUgc3VwcG9ydGVkICovXG4tXHRpZiAobXY4OGU2eHh4X251bV9kYXRhYmFzZXMoY2hpcCkgXHUwMDNlIDI1Nikge1xuK1x0aWYgKGNoaXAtXHUwMDNlaW5mby1cdTAwM2VhdHVfZmlkX3JlZykge1xuIFx0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF93cml0ZShjaGlwLCBmaWQpO1xuIFx0XHRpZiAoZXJyKVxuIFx0XHRcdHJldHVybiBlcnI7XG5AQCAtMTc5LDcgKzE3OSw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2F0dV9maWRfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiAqZmlkKVxuIFx0dTE2IHZhbCA9IDAsIHVwcGVyID0gMCwgb3AgPSAwO1xuIFx0aW50IGVyciA9IC1FT1BOT1RTVVBQO1xuIFxuLVx0aWYgKG12ODhlNnh4eF9udW1fZGF0YWJhc2VzKGNoaXApIFx1MDAzZSAyNTYpIHtcbitcdGlmIChjaGlwLVx1MDAzZWluZm8tXHUwMDNlYXR1X2ZpZF9yZWcpIHtcbiBcdFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2MzUyX0cxX0FUVV9GSUQsIFx1MDAyNnZhbCk7XG4gXHRcdHZhbCBcdTAwMjY9IDB4ZmZmO1xuIFx0XHRpZiAoZXJyKVxuQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4gXHRcdGlmIChlbnRyeS1cdTAwM2V0cnVuaylcbiBcdFx0XHRkYXRhIHw9IE1WODhFNlhYWF9HMV9BVFVfREFUQV9UUlVOSztcbiBcbi1cdFx0ZGF0YSB8PSAoZW50cnktXHUwMDNlcG9ydHZlYyBcdTAwMjYgbXY4OGU2eHh4X3BvcnRfbWFzayhjaGlwKSkgXHUwMDNjXHUwMDNjIDQ7XG4rXHRcdGRhdGEgfD0gZW50cnktXHUwMDNlcG9ydHZlYyBcdTAwM2NcdTAwM2MgNDtcbiBcdH1cbiBcbiBcdHJldHVybiBtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0FUVV9EQVRBLCBkYXRhKTtcbkBAIC0zMjYsNiArMzI2LDExIEBAIGludCBtdjg4ZTZ4eHhfZzFfYXR1X2xvYWRwdXJnZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiBmaWQsXG4gXHRpZiAoZXJyKVxuIFx0XHRyZXR1cm4gZXJyO1xuIFxuK1x0LyogTWFzayBwb3J0dmVjIHRvIGEgY2hpcCdzIHJlYWwgcG9ydHMgc28gdGhleSBjYW5ub3Qgc3BpbGwgaW50b1xuK1x0ICogYWRqYWNlbnQgQVRVIERhdGEgcmVnaXN0ZXIgZmllbGRzLlxuK1x0ICovXG4rXHRlbnRyeS1cdTAwM2Vwb3J0dmVjIFx1MDAyNj0gbXY4OGU2eHh4X3BvcnRfbWFzayhjaGlwKTtcbitcbiBcdGVyciA9IG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZShjaGlwLCBlbnRyeSk7XG4gXHRpZiAoZXJyKVxuIFx0XHRyZXR1cm4gZXJyO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDQ6NDguNDI0NzE4MDcxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTg4OTA4NzI5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaCB0byB0aGUgYG12ODhlNnh4eGAgRFNBIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBgbXY4OGU2eHh4YCBEU0EgZHJpdmVyLiBGaXJzdCBnbGFuY2UsIGl0IHNlZW1zIHRvIGJlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHR3ZWFraW5nIHRoZSBBVFUgKEFkZHJlc3MgVHJhbnNsYXRpb24gVW5pdCkgaGFzaCBzZXR0aW5nIGxvZ2ljIHRocm91Z2ggZGV2bGluayBhbmQgYWxzbyBmaXhpbmcgc29tZSBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgQVRVIEZJRCByZWdpc3RlciBhY2Nlc3MgYW5kIHBvcnR2ZWMgbWFza2luZy4gVGhhdCdzIGdvb2QsIGJ1dCBteSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMgYWx3YXlzIGFib3V0IHJlYWNoYWJpbGl0eSwgZXNwZWNpYWxseSBmb3IgYSBkcml2ZXIgbGlrZSB0aGlzLlxuXG5TcGVjaWZpY2FsbHksIHdoYXQncyBiZWVuIGNoYW5nZWQ/IExldCBtZSBicmVhayBpdCBkb3duOiBUaGUgcGF0Y2ggZXhwb3NlcyBgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cGAgYnkgcmVtb3ZpbmcgYHN0YXRpY2AgYW5kIGFkZGluZyBpdCB0byBgY2hpcC5oYC4gSXQgYWxzbyBpbnRyb2R1Y2VzIGEgYm9vbGVhbiBmbGFnIGBhdHVfZmlkX3JlZ2AgdG8gYHN0cnVjdCBtdjg4ZTZ4eHhfaW5mb2AgYW5kIHNldHMgaXQgZm9yIGEgYnVuY2ggb2YgTWFydmVsbCBzd2l0Y2ggY2hpcHMgaW4gYG12ODhlNnh4eF90YWJsZWAuIFRoZW4sIHdoZW4gdGhlIGBNVjg4RTZYWFhfREVWTElOS19QQVJBTV9JRF9BVFVfSEFTSGAgcGFyYW1ldGVyIGlzIHNldCwgdGhlIHBhdGNoIG5vdyBmbHVzaGVzIHRoZSBBVFUgdXNpbmcgYG12ODhlNnh4eF9nMV9hdHVfZmx1c2hgIGFuZCBjYWxscyBgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChjaGlwLCAwKWAuIEZ1cnRoZXIsIGluIHRoZSBgbXY4OGU2eHh4X2cxX2F0dV9vcGAgYW5kIGBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF9yZWFkYCBmdW5jdGlvbnMsIGl0IHJlcGxhY2VzIHRoYXQgY2hlY2sgdXNpbmcgYG12ODhlNnh4eF9udW1fZGF0YWJhc2VzKGNoaXApIFx1MDAzZSAyNTZgIHdpdGggYGNoaXAtXHUwMDNlaW5mby1cdTAwM2VhdHVfZmlkX3JlZ2AuIEl0IGFsc28gY2hhbmdlcyBwb3J0dmVjIG1hc2tpbmcgaW4gYG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZWAgYW5kIGFkZHMgYSBwb3J0dmVjIG1hc2sgaW4gYG12ODhlNnh4eF9nMV9hdHVfbG9hZHB1cmdlYC5cblxuQWxyaWdodCwgc2luY2UgdGhpcyBkcml2ZXIgaXMgZm9yIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggc3dpdGNoLCBpdCdzIGhhcmR3YXJlLXNwZWNpZmljLiBUaGlzIGlzIGEgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBkcml2ZXIsIHNvIGl0IHNob3VsZCBiZSBwcm9iZWQgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUgb3IgdGhlIE1ESU8gYnVzLiBNeSBjb25jZXJuIG5vdyBpcyBhYm91dCBmdXp6aW5nLiBDYW4gSSBnZXQgYXQgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBEU0EgZHJpdmVycywgZXNwZWNpYWxseSB0aG9zZSBpbnRlcmFjdGluZyB3aXRoIEkyQy9NRElPLWNvbm5lY3RlZCBoYXJkd2FyZSwgYXJlIHR5cGljYWxseSBub3QgcmVhY2hhYmxlIHVubGVzcyB0aGVyZSdzIGFuIGVtdWxhdG9yIG9yIGEgdmlydHVhbCBkcml2ZXIgaW5zdGFudGlhdGlvbi4gVGhlIHF1ZXN0aW9uIGJlY29tZXMsIGlzIHRoZXJlIGFueSBlbXVsYXRpb24gZm9yIHRoZSBNYXJ2ZWxsIDg4RTZ4eHgsIG9yIHNvbWUga2luZCBvZiBzb2Z0d2FyZSBpbnN0YW50aWF0aW9uIG1lY2hhbmlzbT9cblxuU3l6a2FsbGVyICpjYW4qIHNvbWV0aW1lcyBpbmplY3QgTURJTyBkZXZpY2VzIG9yIHVzZSBkdW1teSBkZXZpY2VzLCBidXQgZ2VuZXJhbGx5LCB0aGVzZSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzLCB3aXRob3V0IHByb3BlciBlbXVsYXRpb24gYXJlIGluYWNjZXNzaWJsZS4gSG1tLi4uIEkgcmVjYWxsIHN5emthbGxlciAqZG9lc24ndCogaGF2ZSBhIGdlbmVyaWMgTURJTyBmdXp6ZXIuIFNvLCB0aGUgY2hhbmNlcyBvZiBpbW1lZGlhdGUgcmVhY2hhYmlsaXR5IGFyZSBzbGltLiBCdXQsIEkgbmVlZCB0byBjaGVjayBpZiBgbXY4OGU2eHh4YCBjYW4gYmUgcHJvYmVkIGF0IGFsbC4gSSBuZWVkIHRvIGdldCBzb21lIG1vcmUgaW5mbyBvbiBob3cgdGhpcyB0aGluZyBpcyBhY3R1YWxseSBpbnN0YW50aWF0ZWQuIEkgc2hvdWxkIHNlYXJjaCBmb3IgYG12ODhlNnh4eGAgd2l0aGluIHRoZSBrZXJuZWwgdG8gdW5kZXJzdGFuZCBpdHMgcHJvYmluZyBtZWNoYW5pc20gYW5kIGRlcGVuZGVuY3kgY2hhaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczMDUsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NTMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NDo1OC4zMTM4MDc3MjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzY4MDY5NjExMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTAxMjMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbD0xOT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC05NC0gICAgICBjb21wYXRpYmxlOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6OTU6ICAgICAgICBjb25zdDogbWFydmVsbCxtdjg4ZTZ4eHgtbWRpby1leHRlcm5hbFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtOTYtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sPTEwOT1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMjQwLSAgICAgICAgICAgIG1kaW8tZXh0ZXJuYWwge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6MjQxOiAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2eHh4LW1kaW8tZXh0ZXJuYWxcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMjQyLSAgICAgICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sPTEyPWRlc2NyaXB0aW9uOiB8K1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwtMTgtICBoYXZpbmcgYSBkZXZpY2UgdHJlZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGV2aWNlLiBCdXQgaW4gb3JkZXIgdG8gdXNlIGl0IHdpdGhcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwsbXZ1c2IueWFtbDoxOTogIHRoZSBtdjg4ZTZ4eHggZHJpdmVyLCB5b3UgbmVlZCBhIGRldmljZSB0cmVlIG5vZGUgaW4gd2hpY2ggdG8gcGxhY2UgdGhlIHN3aXRjaFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sLTIwLSAgZGVmaW5pdGlvbi5cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdD03Nz1wYXJhbWV0ZXJzLCBpbmZvIHZlcnNpb25zLCBhbmQgb3RoZXIgZmVhdHVyZXMgaXQgc3VwcG9ydHMuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3QtOTUtICAgbWx4c3dcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3Q6OTY6ICAgbXY4OGU2eHh4XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvaW5kZXgucnN0LTk3LSAgIG5ldGRldnNpbVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC0zLT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0OjQ6bXY4OGU2eHh4IGRldmxpbmsgc3VwcG9ydFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtNS09PT09PT09PT09PT09PT09PT09PT09PT09XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC02LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3Q6NzpUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgZGV2bGluayBmZWF0dXJlcyBpbXBsZW1lbnRlZCBieSB0aGUgYGBtdjg4ZTZ4eHhgYFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtOC1kZXZpY2UgZHJpdmVyLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdD0xMD1QYXJhbWV0ZXJzXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0LTEyLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3Q6MTM6VGhlIGBgbXY4OGU2eHh4YGAgZHJpdmVyIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItc3BlY2lmaWMgcGFyYW1ldGVycy5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0LTE0LVxcbi0tXFxuTUFJTlRBSU5FUlM9MTU1OTU9RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNjA2MC55YW1sXFxuTUFJTlRBSU5FUlM6MTU1OTY6RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sXFxuTUFJTlRBSU5FUlM6MTU1OTc6RjpcXHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0XFxuTUFJTlRBSU5FUlM6MTU1OTg6RjpcXHRkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L1xcbk1BSU5UQUlORVJTOjE1NTk5OkY6XFx0aW5jbHVkZS9saW51eC9kc2EvbXY4OGU2eHh4LmhcXG5NQUlOVEFJTkVSUzoxNTYwMDpGOlxcdGluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9tdjg4ZTZ4eHguaFxcbk1BSU5UQUlORVJTLTE1NjAxLVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzgxLW5ldGdlYXItZ3MxMTBlbXguZHRzPTEyNz1cXHRcXHRtZGlvLWV4dGVybmFsIHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODEtbmV0Z2Vhci1nczExMGVteC5kdHM6MTI4OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTZ4eHgtbWRpby1leHRlcm5hbFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzgxLW5ldGdlYXItZ3MxMTBlbXguZHRzLTEyOS1cXHRcXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktc3NtYi1kdHUuZHRzPTE3MD1cXHRcXHRcXHRtZGlvLWV4dGVybmFsIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLXNzbWItZHR1LmR0czoxNzE6XFx0XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNnh4eC1tZGlvLWV4dGVybmFsXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLXNzbWItZHR1LmR0cy0xNzItXFx0XFx0XFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNmLXByby5kdHM9MjkyPVxcdFxcdFxcdHN3aXRjaDBwaHk0OiBldGhlcm5ldC1waHlANCB7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNmLXByby5kdHMtMzAyLVxcdFxcdCAqIG1kaW8tZXh0ZXJuYWwge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0czozMDM6XFx0XFx0ICpcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2eHh4LW1kaW8tZXh0ZXJuYWxcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cy0zMDQtXFx0XFx0ICpcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnPTczPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc0LVxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnOjc1OnNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIxPW9iai15XFx0XFx0XFx0XFx0Kz0gbWljcm9jaGlwL1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZToyMjpvYmoteVxcdFxcdFxcdFxcdCs9IG12ODhlNnh4eC9cXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGUtMjMtb2JqLXlcXHRcXHRcXHRcXHQrPSBteGw4NjJ4eC9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuaC01LSAqXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5oOjY6ICogQmFzZWQgb24gbXY4OGU2eHh4LmhcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmgtNy0gKiBDb3B5cmlnaHQgKGMpIDIwMDggTWFydmVsbCBTZW1pY29uZHVjdG9yXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFgpICs9IG12ODhlNnh4eC5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTozOm12ODhlNnh4eC1vYmpzIDo9IGNoaXAub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6NDptdjg4ZTZ4eHgtb2JqcyArPSBkZXZsaW5rLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjU6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo2Om12ODhlNnh4eC1vYmpzICs9IGdsb2JhbDFfYXR1Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjc6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMV92dHUub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6ODptdjg4ZTZ4eHgtb2JqcyArPSBnbG9iYWwyLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjk6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMl9hdmIub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTA6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMl9zY3JhdGNoLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjExOm12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFApICs9IGh3dHN0YW1wLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEyOm12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9MRURTKSArPSBsZWRzLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEzOm12ODhlNnh4eC1vYmpzICs9IHBjcy02MTg1Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE0Om12ODhlNnh4eC1vYmpzICs9IHBjcy02MzUyLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE1Om12ODhlNnh4eC1vYmpzICs9IHBjcy02Mzl4Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE2Om12ODhlNnh4eC1vYmpzICs9IHBoeS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNzptdjg4ZTZ4eHgtb2JqcyArPSBwb3J0Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE4Om12ODhlNnh4eC1vYmpzICs9IHBvcnRfaGlkZGVuLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE5Om12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFApICs9IHB0cC5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMDptdjg4ZTZ4eHgtb2JqcyArPSBzZXJkZXMub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjE6bXY4OGU2eHh4LW9ianMgKz0gc21pLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIyOm12ODhlNnh4eC1vYmpzICs9IHN3aXRjaGRldi5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMzptdjg4ZTZ4eHgtb2JqcyArPSB0cmFjZS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyNDptdjg4ZTZ4eHgtb2JqcyArPSB0Y2Zsb3dlci5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyNTptdjg4ZTZ4eHgtb2JqcyArPSB0Y2FtLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RlbGF5LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RzYS9tdjg4ZTZ4eHguaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9tZGlvLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mjk6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RhdGEvbXY4OGU2eHh4LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Byb3BlcnR5LmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00OC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTpzdGF0aWMgdm9pZCBhc3NlcnRfcmVnX2xvY2soc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU3OmludCBtdjg4ZTZ4eHhfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLCB1MTYgKnZhbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01OC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzpcXHRlcnIgPSBtdjg4ZTZ4eHhfc21pX3JlYWQoY2hpcCwgYWRkciwgcmVnLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzppbnQgbXY4OGU2eHh4X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsIHUxNiB2YWwpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Nzk6XFx0ZXJyID0gbXY4OGU2eHh4X3NtaV93cml0ZShjaGlwLCBhZGRyLCByZWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5OmludCBtdjg4ZTZ4eHhfd2FpdF9tYXNrKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTAtXFx0XFx0XFx0dTE2IG1hc2ssIHUxNiB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMDEtXFx0Zm9yIChpID0gMDsgdGltZV9iZWZvcmUoamlmZmllcywgdGltZW91dCkgfHwgKGkgXFx1MDAzYyAyKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTAyOlxcdFxcdGVyciA9IG12ODhlNnh4eF9yZWFkKGNoaXAsIGFkZHIsIHJlZywgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEwMy1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTE0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjExNTpcXHRlcnIgPSBtdjg4ZTZ4eHhfcmVhZChjaGlwLCBhZGRyLCByZWcsIFxcdTAwMjZkYXRhKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMTYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMjY6aW50IG12ODhlNnh4eF93YWl0X2JpdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNy1cXHRcXHQgICAgICAgaW50IGJpdCwgaW50IHZhbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMjgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEyOTpcXHRyZXR1cm4gbXY4OGU2eHh4X3dhaXRfbWFzayhjaGlwLCBhZGRyLCByZWcsIEJJVChiaXQpLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzMC1cXHRcXHRcXHRcXHQgICB2YWwgPyBCSVQoYml0KSA6IDB4MDAwMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTMzOnN0cnVjdCBtaWlfYnVzICptdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXM7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNy1cXHRtZGlvX2J1cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2Y2hpcC1cXHUwMDNlbWRpb3MsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTM4OlxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzktXFx0aWYgKCFtZGlvX2J1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0NC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNDU6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDYte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE0NzpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDgtXFx0dW5zaWduZWQgaW50IG4gPSBkLVxcdTAwM2Vod2lycTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV91bm1hc2soc3RydWN0IGlycV9kYXRhICpkKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1NC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU1OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Ni1cXHR1bnNpZ25lZCBpbnQgbiA9IGQtXFx1MDAzZWh3aXJxO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE2MTpzdGF0aWMgaXJxcmV0dXJuX3QgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2OS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzA6XFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE3MTpcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzI6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE4NzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTg4OlxcdFxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2Y3RsMSk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg5LVxcdFxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTkwLVxcdFxcdFxcdGdvdG8gdW5sb2NrO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MTpcXHRcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTItdW5sb2NrOlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTQtXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMDM6c3RhdGljIGlycXJldHVybl90IG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX2ZuKGludCBpcnEsIHZvaWQgKmRldl9pZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDQte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkZXZfaWQ7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNzpcXHRyZXR1cm4gbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDgtfVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTA6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9idXNfbG9jayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjExLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTI6XFx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxNDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjE1LX1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjE3OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfYnVzX3N5bmNfdW5sb2NrKHN0cnVjdCBpcnFfZGF0YSAqZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxOTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjAtXFx0dTE2IG1hc2sgPSBHRU5NQVNLKGNoaXAtXFx1MDAzZWcxX2lycS5uaXJxcywgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjI0OlxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjUtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzE6XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCByZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzMi1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM1LW91dDpcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzY6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM3LX1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2NoaXAgbXY4OGU2eHh4X2cxX2lycV9jaGlwID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MDpcXHQubmFtZVxcdFxcdFxcdD0gXFxcIm12ODhlNnh4eC1nMVxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQxOlxcdC5pcnFfbWFza1xcdFxcdD0gbXY4OGU2eHh4X2cxX2lycV9tYXNrLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MjpcXHQuaXJxX3VubWFza1xcdFxcdD0gbXY4OGU2eHh4X2cxX2lycV91bm1hc2ssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQzOlxcdC5pcnFfYnVzX2xvY2tcXHRcXHQ9IG12ODhlNnh4eF9nMV9pcnFfYnVzX2xvY2ssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ0OlxcdC5pcnFfYnVzX3N5bmNfdW5sb2NrXFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19zeW5jX3VubG9jayxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDUtfTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ3OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fbWFwKHN0cnVjdCBpcnFfZG9tYWluICpkLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI0OC1cXHRcXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IGlycSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI1MC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjUxOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGQtXFx1MDAzZWhvc3RfZGF0YTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTItXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjYwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI2MTpcXHQubWFwXFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjYyLVxcdC54bGF0ZVxcdD0gaXJxX2RvbWFpbl94bGF0ZV90d29jZWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY1LS8qIFRvIGJlIGNhbGxlZCB3aXRoIHJlZ19sb2NrIGhlbGQgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjY6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlX2NvbW1vbihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNzE6XFx0bXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFxcdTAwMjZtYXNrKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNzItXFx0bWFzayBcXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVxcdTAwM2VnMV9pcnEubmlycXMsIDApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI3MzpcXHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyODM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yODQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjkwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5MTpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkyOlxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkzOlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI5NC19XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjk1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5NjpzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzAzLVxcdFxcdE5VTEwsIGNoaXAtXFx1MDAzZWcxX2lycS5uaXJxcywgMCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMDQ6XFx0XFx0XFx1MDAyNm12ODhlNnh4eF9nMV9pcnFfZG9tYWluX29wcywgY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzA1LVxcdGlmICghY2hpcC1cXHUwMDNlZzFfaXJxLmRvbWFpbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMxMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMTE6XFx0Y2hpcC1cXHUwMDNlZzFfaXJxLmNoaXAgPSBtdjg4ZTZ4eHhfZzFfaXJxX2NoaXA7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEyLVxcdGNoaXAtXFx1MDAzZWcxX2lycS5tYXNrZWQgPSB+MDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzE0OlxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2bWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzE1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzIwOlxcdGVyciA9IG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzIxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjQtXFx0LyogUmVhZGluZyB0aGUgaW50ZXJydXB0IHN0YXR1cyBjbGVhcnMgKG1vc3Qgb2YpIHRoZW0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMjU6XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX1NUUywgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzI2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMzItXFx0bWFzayBcXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVxcdTAwM2VnMV9pcnEubmlycXMsIDApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMzMzpcXHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM0NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNDY6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzUxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM1MjpcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwX2NvbW1vbihjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNTMtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Mi1cXHRzbnByaW50ZihjaGlwLVxcdTAwM2VpcnFfbmFtZSwgc2l6ZW9mKGNoaXAtXFx1MDAzZWlycV9uYW1lKSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjM6XFx0XFx0IFxcXCJtdjg4ZTZ4eHgtJXNcXFwiLCBkZXZfbmFtZShjaGlwLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjQtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY1OlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Ni1cXHRlcnIgPSByZXF1ZXN0X3RocmVhZGVkX2lycShjaGlwLVxcdTAwM2VpcnEsIE5VTEwsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY3OlxcdFxcdFxcdFxcdCAgIG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX2ZuLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2OC1cXHRcXHRcXHRcXHQgICBJUlFGX09ORVNIT1QgfCBJUlFGX1NIQVJFRCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjktXFx0XFx0XFx0XFx0ICAgY2hpcC1cXHUwMDNlaXJxX25hbWUsIGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3MDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzcxLVxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzcyOlxcdFxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfaXJxX3BvbGwoc3RydWN0IGt0aHJlYWRfd29yayAqd29yaylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3OTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBjb250YWluZXJfb2Yod29yayxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODA6XFx0XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IG12ODhlNnh4eF9jaGlwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4MS1cXHRcXHRcXHRcXHRcXHRcXHQgICBpcnFfcG9sbF93b3JrLndvcmspO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MjpcXHRtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF93b3JrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODg6c3RhdGljIGludCBtdjg4ZTZ4eHhfaXJxX3BvbGxfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTEtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkyOlxcdGVyciA9IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5My1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzk2LVxcdGt0aHJlYWRfaW5pdF9kZWxheWVkX3dvcmsoXFx1MDAyNmNoaXAtXFx1MDAzZWlycV9wb2xsX3dvcmssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzk3OlxcdFxcdFxcdFxcdCAgbXY4OGU2eHh4X2lycV9wb2xsKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTgtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MDgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDA5OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9pcnFfcG9sbF9mcmVlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDEzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxNDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE1OlxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE2OlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQxNy19XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDE4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxOTpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2NvbmZpZ19pbnRlcmZhY2Uoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMC1cXHRcXHRcXHRcXHRcXHQgICBpbnQgcG9ydCwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NDE6c3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF9tYWMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDItXFx0XFx0XFx0XFx0ICAgIGludCBsaW5rLCBpbnQgc3BlZWQsIGludCBkdXBsZXgsIGludCBwYXVzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Njg6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShjaGlwLCBwb3J0LCBtb2RlKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjktcmVzdG9yZV9saW5rOlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDc1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3NjpzdGF0aWMgaW50IG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Nzcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgyLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ4MzpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5MS1cXHRpZiAoY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlZmFtaWx5ID09IE1WODhFNlhYWF9GQU1JTFlfNjI1MClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTI6XFx0XFx0cmV0dXJuIG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5NDpcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDk1LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUwNT1zdGF0aWMgY29uc3QgdTggbXY4OGU2MTg1X3BoeV9pbnRlcmZhY2VfbW9kZXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MTU6c3RhdGljIHZvaWQgbXY4OGU2MDk1X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MTYtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyMjpcXHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyMy1cXHRcXHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX01JSSwgY29uZmlnLVxcdTAwM2VzdXBwb3J0ZWRfaW50ZXJmYWNlcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTM0OnN0YXRpYyB2b2lkIG12ODhlNjE4NV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTM1LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NDg6c3RhdGljIGNvbnN0IHU4IG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ5LVxcdFtNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfTUlJX1BIWV1cXHQ9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SRVZNSUksXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTYzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUodTggY21vZGUsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjQte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NTpcXHRpZiAoY21vZGUgXFx1MDAzYyBBUlJBWV9TSVpFKG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NjpcXHQgICAgbXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXNbY21vZGVdKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NzpcXHRcXHRfX3NldF9iaXQobXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXNbY21vZGVdLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2OC1cXHRlbHNlIGlmIChjbW9kZSA9PSBNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfUkdNSUkpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01NzI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzM6bXY4OGU2MjUwX3NldHVwX3N1cHBvcnRlZF9pbnRlcmZhY2VzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTc0LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NzktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTgwOlxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01ODEtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjIxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYyMjpzdGF0aWMgdm9pZCBtdjg4ZTYyNTBfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyMy1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjI0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MjU6XFx0aWYgKCFtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKGNoaXAsIHBvcnQpKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyNi1cXHRcXHRtdjg4ZTYyNTBfc2V0dXBfc3VwcG9ydGVkX2ludGVyZmFjZXMoY2hpcCwgcG9ydCwgY29uZmlnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzE6c3RhdGljIHZvaWQgbXY4OGU2MzUxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzItXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjM2LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYzNzpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDM6c3RhdGljIGludCBtdjg4ZTYzeHhfZ2V0X3BvcnRfc2VyZGVzX2Ntb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDg6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0OS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjU2LVxcdHZhbCA9IHJlZyBcXHUwMDI2IH5NVjg4RTZYWFhfUE9SVF9TVFNfUEhZX0RFVEVDVDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NTc6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY1OC1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY2MTpcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYyLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjUtXFx0LyogUmVzdG9yZSBQSFlfREVURUNUIHZhbHVlICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjY2OlxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgcmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjctXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzM6c3RhdGljIHZvaWQgbXY4OGU2MzUyX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc5LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY4MDpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY4MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5NS1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Njk2OlxcdFxcdFxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjk3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5OS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MDA6c3RhdGljIHZvaWQgbXY4OGU2MzJ4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MDEtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzA2LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcwNzpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcxOC1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzE5OlxcdFxcdFxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzIwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MjM6c3RhdGljIHZvaWQgbXY4OGU2MzQxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MjQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzI4LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcyOTpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc0NC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NDU6c3RhdGljIHZvaWQgbXY4OGU2MzkwX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NDYtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwLVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MTpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc2Ni1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3Njc6c3RhdGljIHZvaWQgbXY4OGU2MzkweF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzY4LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjgwMjpzdGF0aWMgdm9pZCBtdjg4ZTYzOTN4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MDMtXFx0XFx0XFx0XFx0XFx0c3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MTAtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODExOlxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg0NjpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZ2V0X2NhcHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NDctXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg0OC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODQ5OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTE6XFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Mi1cXHRjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHMtXFx1MDAzZXBoeWxpbmtfZ2V0X2NhcHMoY2hpcCwgcG9ydCwgY29uZmlnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTM6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODU0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg1NTpcXHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Ni1cXHRcXHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX0lOVEVSTkFMLFxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjAxLjk5NDUxMzA5OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg4MDAwMTQ1OTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggRFNBIFN3aXRjaCBEcml2ZXIgaW4gYSBGdXp6aW5nIENvbnRleHQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgLCBhIERTQSBzd2l0Y2ggZHJpdmVyLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBjYW4gSSBldmVuIGdldCB0aGlzIGluc3RhbnRpYXRlZCB3aXRoaW4gYSBRRU1VIGVudmlyb25tZW50PyBEZXZpY2UgdHJlZSBzZXR1cCB3b3VsZCBiZSB0aGUgbmF0dXJhbCBhcHByb2FjaCwgYnV0IGRvZXMgUUVNVSBldmVuICplbXVsYXRlKiB0aGUgTWFydmVsbCA4OEU2eHh4IHN3aXRjaD8gTm8sIHRoYXQncyBub3Qgc29tZXRoaW5nIFFFTVUgcHJvdmlkZXMsIHNvIHRoYXQgYXZlbnVlIGlzIGNsb3NlZC5cblxuSSBzdGFydGVkIHRoaW5raW5nIGFib3V0IHN5emthbGxlcidzIE1ESU8gaW5qZWN0aW9uIGNhcGFiaWxpdGllcywgbWF5YmUgdGhlcmUncyBhbiBNRElPIGluamVjdGlvbiBvcHRpb24/IE5vcGUsIGl0IGRvZXNuJ3QgZGlyZWN0bHkgc3VwcG9ydCB0aGF0LiBTeXprYWxsZXIgZG9lcyBoYXZlIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0aG91Z2gsIGJ1dCB0aGVyZSB3b3VsZG4ndCBiZSBhIFVTQiB0byBNRElPIGJyaWRnZSBmb3IgdGhhdCB0byBhcHBseSB0byB0aGlzIGRyaXZlci4gU2luY2UgYG12ODhlNnh4eGAgaXMgYW4gTURJTyBkZXZpY2UsIFVTQiBpcyBhIGRlYWQgZW5kLlxuXG5UaGVuIEkgc2F3IHRoZSBhdXRob3Igb2YgdGhlIHBhdGNoIGlzIFwic3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIi4gVGhhdOKAmXMgYSBodWdlIGNsdWUsIHNpbmNlIHN5emthbGxlciBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGNvZGUgaXQgZmluZHMuIFRoaXMgbWVhbnMgc3l6a2FsbGVyIGxpa2VseSBmb3VuZCBhIGJ1Zywgb3IgaXMgZnV6emluZyB0aGlzIGNvZGUhIEJ1dCBob3c/IE15IG1pbmQgcmFjZWQuIElzIHRoZXJlIHNvbWUgdmlydHVhbCBNRElPIGRyaXZlciBvciBjbGV2ZXIgbWVjaGFuaXNtIHN5emthbGxlciB1c2VzP1xuXG5JIGNvbnNpZGVyZWQgZGV2bGluaywgYXMgaXQncyBhY2Nlc3NpYmxlIHZpYSBuZXRsaW5rIGFuZCBJIGNvdWxkIHBvc3NpYmx5IGluc3RhbnRpYXRlIGEgYG12ODhlNnh4eGAgZGV2aWNlIHRoYXQgd2F5LiBCdXQgbm8sIGRldmxpbmsgY29uZmlndXJlcyAqZXhpc3RpbmcqIGRldmljZXMsIG5vdCBjcmVhdGUgdGhlbS5cblxuSSBzdGFydGVkIHRvIHRoaW5rLCAqaXMqIHRoZSBkcml2ZXIgaW5zdGFudGlhdGVkIHZpYSBzb21lIG90aGVyIG1lYW5zPyBJIGxvb2tlZCBmb3IgYW55IGR1bW15IG9yIHNvZnR3YXJlLWVtdWxhdGVkIERTQSBzd2l0Y2guXG5cblRoZW4sIHdhaXQhIEkgcmVtZW1iZXJlZCB0aGUgY29tbWl0IG1lc3NhZ2UhIEl0IHNheXMgXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gQWhhISBUaGF0IG1lYW5zIEknbSByZXZpZXdpbmcgYSBwYXRjaCB0aGF0IHRoZSBzeXprYWxsZXIgaW5mcmFzdHJ1Y3R1cmUgaXMgKnRlc3RpbmcqLiBJdCBkb2Vzbid0IG1lYW4gc3l6a2FsbGVyICpmb3VuZCogYSBidWcsIGl0IG1lYW5zIHRoZSBwYXRjaCBpcyBiZWluZyBhc3Nlc3NlZCBieSBzeXprYWxsZXIuXG5cblNvLCBpZiBRRU1VICpkb2Vzbid0KiBlbXVsYXRlIHRoaXMgZGV2aWNlICh3aGljaCBJIGNvbmZpcm1lZCksIHRoZW4gdGhlIGNvZGUgaXMgcHJvYmFibHkgdW5yZWFjaGFibGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgUUVNVSBlbXVsYXRlcyBgbXY4OGU2eHh4YC4gSSBkb24ndCBoYXZlIHRoZSBRRU1VIHNvdXJjZSByaWdodCBub3cgdG8gc2VhcmNoLCBzbyBJIG5lZWQgdG8gY2hlY2sgdGhlIGtlcm5lbCBpdHNlbGYgdG8gc2VlIGlmIHRoZSBkcml2ZXIgaXMgaW5zdGFudGlhdGVkIGluIHNvZnR3YXJlLiBJIHdpbGwgbG9vayBmb3IgYW55IHNvZnR3YXJlIGluc3RhbnRpYXRpb24gb2YgYG12ODhlNnh4eGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTU4LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDg4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjEwLjc5NDUzMDMxOFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTQ1MDE1ODY3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIuKm12ODhlNnh4eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjEzLjczOTU1ODEyNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2OTQ4OTYzODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBVc2Vyc3BhY2UgQ29udHJvbCBvZiBNVjg4RTZYWFggTURJTyBBY2Nlc3MqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHNlZSBpZiB0aGVyZSdzIGEgd2F5LCBhIGRpcmVjdCBwYXRoLCB0byB0cmlnZ2VyIGFuIGBtZGlvYCBkZXZpY2UgcmVnaXN0cmF0aW9uIGZvciB0aGUgYG12ODhlNnh4eGAgZnJvbSB1c2Vyc3BhY2Ugd2l0aGluIHRoZSBrZXJuZWwuIFR5cGljYWxseSwgSSdkIGV4cGVjdCBNRElPIGRldmljZXMsIGxpa2UgdGhpcyBzd2l0Y2gsIHRvIGJlIHJlZ2lzdGVyZWQgbXVjaCBsb3dlciBkb3duLCBlaXRoZXIgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUgb3IgdGhlIGJvYXJkIGZpbGVzLiBJdCdzIHRoZSBzdGFuZGFyZCBwcmFjdGljZS4gSG1tLCBubyBvYnZpb3VzIHVzZXJzcGFjZSB0cmlnZ2VyLi4uXG5cbldhaXQsIHRoZXJlJ3MgYGRzYV9sb29wYC4gUmlnaHQsIHRoYXQncyBhIHNvZnR3YXJlLWVtdWxhdGVkIERTQSBzd2l0Y2gsIGEgdXNlZnVsIGRlYnVnZ2luZyB0b29sLiBDb3VsZCB0aGVyZSBiZSBhbiBlbXVsYXRlZCBgbXY4OGU2eHh4YCBpbXBsZW1lbnRhdGlvbiwgc29tZXRoaW5nIHRoYXQgYGRzYV9sb29wYCBtaWdodCBwcm92aWRlIG9yIGludGVyYWN0IHdpdGg/IFRoYXQgY291bGQgYmUgYW4gaW50ZXJlc3RpbmcgYXZlbnVlIHRvIGV4cGxvcmUgZm9yIHBvdGVudGlhbCB1c2Vyc3BhY2UgY29udHJvbCwgZXZlbiBpZiBpdCdzIGluZGlyZWN0LiBJIG5lZWQgdG8gY2hlY2sgaWYgdGhpcyBlbXVsYXRpb24gZXhpc3RzLiBUaGlzIGNvdWxkIGJlIHVzZWZ1bCB0byBleHBsb3JlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDAzNCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjE3LjQzNDQ1Njc4NVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjk1MDE0MDcxLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvX2JvYXJkX2luZm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NToxOS43Mjk0ODE4ODZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTY0ODUzNDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBteXNlbGY6XG5cbioqTURJTyBEZXZpY2UgUmVnaXN0cmF0aW9uIC0gQSBRdWljayBSZWZyZXNoZXIqKlxuXG5Pa2F5LCBzbyBJJ20gZGVhbGluZyB3aXRoIE1ESU8gZGV2aWNlcyBoZXJlLCBhbmQgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXkncmUgYmVpbmcgcmVnaXN0ZXJlZCBpbiB0aGlzIGNvZGUuIE15IGd1dCBmZWVsaW5nIHRlbGxzIG1lIGBtZGlvX2JvYXJkX2luZm9gIGlzIHByb2JhYmx5IHRoZSBrZXkgc3RydWN0dXJlIGZvciB0aGlzLiBJdCdzIGEgY29tbW9uIHBhdHRlcm4sIGVzcGVjaWFsbHkgd2l0aCBib2FyZC1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gTm93LCBpZiBgbWRpb19ib2FyZF9pbmZvYCBpcyBpbmRlZWQgaW52b2x2ZWQgaW4gcmVnaXN0cmF0aW9uLCB0aGVuIHRoZXJlJ3MgbGlrZWx5IGEgY29ycmVzcG9uZGluZyByZWdpc3RyYXRpb24gZnVuY3Rpb24sIHNvbWV0aGluZyBsaWtlLCB3ZWxsLCBJJ2QgYmV0IG9uIGBtZGlvX3JlZ2lzdGVyX2JvYXJkX2luZm9gLiBMZXQncyBjb25maXJtIHRoYXQgaHlwb3RoZXNpcy4gQSBxdWljayBzZWFyY2ggZm9yIGBtZGlvX3JlZ2lzdGVyX2JvYXJkX2luZm9gIHNob3VsZCBnaXZlIG1lIGEgZ29vZCBzdGFydGluZyBwb2ludC4gVGhhdCBzaG91bGQgaW1tZWRpYXRlbHkgbGVhZCBtZSB0byB0aGUgcmVsZXZhbnQgcmVnaXN0cmF0aW9uIGNvZGUuIFRoYXQncyBteSBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MzczLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6MjIuODk0MzM4Mjc4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTI4MzU1NDE2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvX3JlZ2lzdGVyX2JvYXJkX2luZm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NToyNS40MjI3MDUzNTNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk5ODc5NDY2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKkNvbnNpZGVyaW5nIE1ESU8gQnVzIFJlZ2lzdHJhdGlvbioqXG5cbkhtbSwgSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSByaWdodCBmdW5jdGlvbiBoZXJlLi4ud2FpdCBhIHNlY29uZC4gQ291bGQgaXQgYmUgYG1kaW9idXNfcmVnaXN0ZXJfYm9hcmRfaW5mb2A/IFRoYXQgZnVuY3Rpb24sIGlmIEkgcmVjYWxsIGNvcnJlY3RseSwgaXMgdGhlIG9uZSB0aGF0IGFsbG93cyBtZSB0byByZWdpc3RlciBib2FyZC1zcGVjaWZpYyBNRElPIGJ1cyBpbmZvcm1hdGlvbi4gVGhhdCBzb3VuZHMgbGlrZSBhIHN0cm9uZyBjYW5kaWRhdGUsIGJhc2VkIG9uIHdoYXQgSSBuZWVkIHRvIGRvLiBJIG5lZWQgdG8gcmVnaXN0ZXIgaW5mb3JtYXRpb24gYWJvdXQgdGhlIE1ESU8gYnVzIGZvciB0aGUgcGFydGljdWxhciBoYXJkd2FyZSBwbGF0Zm9ybSBJJ20gdGFyZ2V0aW5nLCByaWdodD8gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGUgc3BlY2lmaWNzIG9mIHRoZSBhcmd1bWVudHMgaXQgZXhwZWN0cyBhbmQgZW5zdXJlIEkgaGF2ZSBhbGwgdGhlIG5lY2Vzc2FyeSBkYXRhIHRvIGZlZWQgaXQsIGJ1dCB0aGUgbmFtZSBpcyBwcm9taXNpbmcuIEkgc2hvdWxkIGdvIGxvb2sgdXAgaXRzIGRvY3VtZW50YXRpb24gdG8gYmUgY2VydGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ2MzUsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NToyOC40MjE1MDU3MThaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MDU2NDYzNzYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1kaW9idXNfcmVnaXN0ZXJfYm9hcmRfaW5mb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjMwLjkyNzE1OTExNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTk3NzQ4ODIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipQcm9iaW5nIHRoZSBgbXY4OGU2eHh4YCBTd2l0Y2g6IEEgUXVpY2sgRGl2ZSoqXG5cbkFscmlnaHQsIHNvIHRoZSBpbml0aWFsIHRob3VnaHQgaXMgc3RyYWlnaHRmb3J3YXJkOiBsZXQncyBnZXQgYSBoYW5kbGUgb24gaG93IHRoaXMgYG12ODhlNnh4eGAgc3dpdGNoIGlzIGJlaW5nIHByb2JlZC4gSSdtIGFscmVhZHkgZW52aXNpb25pbmcgdGhlIGxpa2VseSBhcmVhcyB0byBpbnZlc3RpZ2F0ZSDigJMgdGhlIGRldmljZSB0cmVlIGJpbmRpbmdzLCBrZXJuZWwgZHJpdmVyIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLCBhbmQgdGhlIGdlbmVyYWwgc2VxdWVuY2Ugb2YgZXZlbnRzIGR1cmluZyBzeXN0ZW0gc3RhcnR1cC4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIHN0YW5kYXJkIG1ldGhvZHMg4oCTIHRoZSBgb2ZfbWF0Y2hfdGFibGVgIG9yIHNpbWlsYXIgbWVjaGFuaXNtcyB1c2VkIHRvIGlkZW50aWZ5IGFuZCBhdHRhY2ggdGhlIGFwcHJvcHJpYXRlIGRyaXZlciB0byB0aGUgaGFyZHdhcmUuIEkgd2FudCB0byBxdWlja2x5IHVuZGVyc3RhbmQgdGhlIGVudHJ5IHBvaW50cywgdGhlIHByb2JpbmcgZnVuY3Rpb24ncyBzdHJ1Y3R1cmUsIGFuZCBhbnkgcG90ZW50aWFsIHF1aXJrcy4gSSdtIGhvcGluZyBpdCdzIHdlbGwtc3RydWN0dXJlZCBhbmQgZm9sbG93cyBpbmR1c3RyeSBiZXN0IHByYWN0aWNlcywgYnV0IGV4cGVyaWVuY2UgaGFzIHRhdWdodCBtZSB0byBiZSBwcmVwYXJlZCBmb3IgYW55dGhpbmcuIFRoaXMgcXVpY2sgcHJvYmUgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgY29yZSBmbG93IGFuZCB3aGF0IGluZm9ybWF0aW9uIG9yIGhvb2tzIEkgbWlnaHQgbmVlZCB0byBjb25zaWRlciBmb3IgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zIG9yIGludGVncmF0aW9uIHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0ODU1LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6MzQuNTI0OTExMTI3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTg3MDY0OTMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV9tZGlvX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6MzQuODQzNjI0ODlaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY2MTUxMjYwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIE1WODhFNlhYWCBQcm9iZSBGdW5jdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJJ20gdGhpbmtpbmcgSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIGhvdyB0aGlzIE1WODhFNlhYWCBkcml2ZXIgaGFuZGxlcyBpbml0aWFsaXphdGlvbi4gVGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQsIGFzIGFsd2F5cywgaXMgd2l0aCB0aGUgcHJvYmUgZnVuY3Rpb24uIEknbGwgZ28gc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYC4gVGhhdCdzIHdoZXJlIEkgZXhwZWN0IHRvIGZpbmQgdGhlIG1lYXQgb2YgdGhlIGluaXRpYWwgZGV2aWNlIHNldHVwLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZSBkdXJpbmcgdGhlIGVhcmx5IHN0YWdlcyDigJMgdGhlIGRldmljZSBJRCBjaGVja3MsIHJlc291cmNlIGFsbG9jYXRpb24sIFBIWSBjb25maWd1cmF0aW9uLCBhbmQgcG90ZW50aWFsbHkgYW55IHJlZ2lzdGVyIGluaXRpYWxpemF0aW9uIGl0IHBlcmZvcm1zLiBJ4oCZbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiBob3cgdGhleSdyZSBoYW5kbGluZyBhbnkgcG90ZW50aWFsIGVycmF0YSBhbmQgd29ya2Fyb3VuZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhpcyBzcGVjaWZpYyBmYW1pbHkgb2Ygc3dpdGNoZXMuIEhvcGVmdWxseSB0aGUgY29kZSBpcyB3ZWxsLWNvbW1lbnRlZCBzbyBJIGRvbuKAmXQgaGF2ZSB0byBzcGVuZCB0b28gbG9uZyByZXZlcnNlIGVuZ2luZWVyaW5nIHdoYXQgdGhleSB3ZXJlIHRoaW5raW5nLiBMZXQncyBzZWUgd2hhdCBnZW1zIHdlIGNhbiB1bmVhcnRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTEzNiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjM4LjUwNTE0MjIwMVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1OTE3NzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03MzM4PXN0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhtdjg4ZTZ4eHhfcG1fb3BzLCBtdjg4ZTZ4eHhfc3VzcGVuZCwgbXY4OGU2eHh4X3Jlc3VtZSk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzMzOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzQwOnN0YXRpYyBpbnQgbXY4OGU2eHh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1NDg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1NDk6XFx0LnByb2JlXFx0PSBtdjg4ZTZ4eHhfcHJvYmUsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1MC1cXHQucmVtb3ZlID0gbXY4OGU2eHh4X3JlbW92ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6MzguNjQxMDY1Mjg4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MjU4Njg3MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTURJTyBEZXZpY2UgQ3JlYXRpb24gSW5xdWlyeSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYG1kaW9fZHJpdmVyYCBhbmQgdGhlIHF1ZXN0aW9uIGltbWVkaWF0ZWx5IHBvcHMgaW50byBteSBoZWFkOiBjYW4gd2UgY29uanVyZSBhbiBgbWRpb19kZXZpY2VgIGZyb20gdXNlcnNwYWNlPyBNeSBpbnR1aXRpb24gaXMgbGVhbmluZyB0b3dhcmRzIFwibm9cIiDigJMgSSBkb24ndCByZWNhbGwgc2VlaW5nIGEgZ2VuZXJpYyBtZWNoYW5pc20gZm9yIHRoYXQsIHdoaWNoIGlzIG9kZCBpZiBJIHRoaW5rIGFib3V0IG90aGVyIGJ1c3Nlcy4gV2FpdCwgaG9sZCBvbi4gV2hhdCBhYm91dCB0aGUgSTJDIGJ1cz8gVGhlIEkyQyBidXMgKmRvZXMqIGFsbG93IHVzZXJzcGFjZSBkZXZpY2UgY3JlYXRpb24sIGRvZXNuJ3QgaXQsIHRocm91Z2ggdGhlIGAvc3lzL2J1cy9pMmMvZGV2aWNlcy9pMmMtKi9uZXdfZGV2aWNlYCBpbnRlcmZhY2U/XG5cblRoaXMgbWFrZXMgbWUgd29uZGVyIGlmIGEgc2ltaWxhciB0cmljayBleGlzdHMgZm9yIE1ESU8uIElzIHRoZXJlIGEgYC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvYCBkaXJlY3Rvcnkgd2hlcmUgd2UgY291bGQgcG90ZW50aWFsbHkgZmluZCBhIGBuZXdfZGV2aWNlYCBlbnRyeT8gVGhhdCB3b3VsZCBiZSBmYW50YXN0aWMhIFRoZSByZWFsIHF1ZXN0aW9uIGlzLCBkb2VzIHRoZSBNRElPIGJ1cyAqZXZlbiBzdXBwb3J0KiBzdWNoIGEgZmVhdHVyZT8gTGV0IG1lIGdvIHBva2UgYXJvdW5kIGFuZCBzZWUgaWYgSSBjYW4gZmluZCBhbiBhbnN3ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NzExLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjQyLjU2NjkzODYyM1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzMDM1OTg4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZXdfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NTo0Mi42Njk5OTYwNjFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTA2OTM4NTQwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNRElPIERldmljZSBJbnN0YW50aWF0aW9uIERpbGVtbWEqKlxuXG5Pa2F5LCBzbyBJJ20gZmFjaW5nIGEgd2FsbCBoZXJlLiBNRElPIGRldmljZXMsIGZyb20gd2hhdCBJIHVuZGVyc3RhbmQsIGNhbid0IGJlIHNwdW4gdXAgZGlyZWN0bHkgZnJvbSB1c2Vyc3BhY2UuIFRoYXTigJlzIGEgc2lnbmlmaWNhbnQgaHVyZGxlLiBOb3csIGhvbGQgb24sIEkgc2VlbSB0byByZWNhbGwgc29tZXRoaW5nIGFib3V0IHN5emthbGxlciBhbmQgZGV2aWNlIHRyZWUgb3ZlcmxheXMuIFRoZSBpZGVhIGZsaWNrZXJlZCAtIGNvdWxkIEkgcG90ZW50aWFsbHkgbGV2ZXJhZ2UgdGhhdCBmb3Igc29tZSBsZXZlbCBvZiBjb250cm9sP1xuXG5CdXQsIHRoYXQgbWVtb3J5IG5lZWRzIHJlZmluaW5nLiBEb2VzIHN5emthbGxlciAqYWN0dWFsbHkqIHByb3ZpZGUgZGV2aWNlIHRyZWUgb3ZlcmxheSBpbmplY3Rpb24sIHByb3ZpZGVkIGBDT05GSUdfT0ZfT1ZFUkxBWWAgaXMgZW5hYmxlZD8gSSdtIGFsbW9zdCBjZXJ0YWluIGl0cyBtYWlubGluZSBsYWNrcyB0aGF0IGNhcGFiaWxpdHkuIERhbW1pdC5cblxuQWxyaWdodCwgcGl2b3QuIElzIHRoZXJlIHNvbWUgY29udm9sdXRlZCBidXMgcGF0aCBJJ20gb3Zlcmxvb2tpbmc/IE1heWJlIHRoZSBNRElPIGRyaXZlciBjYW4gYmUgcmVhY2hlZCBpbmRpcmVjdGx5PyBObywgbm8sIGl0J3Mgc3RyaWN0bHkgTURJTy4gVGhhdCBhdmVudWUgaXMgY2xvc2VkLlxuXG5JJ20gaGl0dGluZyBhIGRlYWQgZW5kIGhlcmUuIElzIHRoZXJlICphbnkqIHdheSB0byB0b3VjaCB0aGlzIGNvZGU/IFRoaXMgZmVlbHMgaW5jcmVhc2luZ2x5IGRpZmZpY3VsdCB0byBmdXp6LiBJZiwgaW4gYW55IHZpcnR1YWxpemVkIGNvbnRleHQgKEdDRSwgUUVNVSwgdGhlIHVzdWFsIHN1c3BlY3RzKSwgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlLCB0aGVuIGhvbmVzdGx5LCBJJ20gd2FzdGluZyByZXNvdXJjZXMgb24gYSBmdXp6aW5nIHRhcmdldCB0aGF0J3MgdW5hY2hpZXZhYmxlLiBUaW1lIHRvIGFkbWl0IGRlZmVhdCBhbmQgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5J4oCZbSBhbHNvIGdvaW5nIHRvIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUsIGlmIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgYG12ODhlNnh4eGAgbGl2ZXMgaW4gdGhlIGtlcm5lbC4gTWF5YmUgdGhlcmUncyBhIGJhY2sgZG9vci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYxMDMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6NDcuNzM5Mzg0MTkyWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTAzMzY3OTMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm12ODhlNnh4eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6NDguMDQ5NzMyOTE1WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4MTU3NzQ2NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCBwcmVzZW50ZWQgYXMgYSBzdHJlYW0gb2YgdGhvdWdodDpcblxuKipOZXRkZXZzaW0gYW5kIE15IEhhcmR3YXJlIEVtdWxhdGlvbiBOZWVkcyoqXG5cbkhtbSwgSSdtIHRoaW5raW5nIGFib3V0IG5ldHdvcmsgZGV2aWNlIHNpbXVsYXRpb24gYWdhaW4uIFNwZWNpZmljYWxseSwgSSdtIHdvbmRlcmluZyBpZiBgbmV0ZGV2c2ltYCBjb3VsZCBiZSBhIHZpYWJsZSBvcHRpb24gZm9yIGVtdWxhdGluZyBhIHNwZWNpZmljIE1hcnZlbGwgc3dpdGNoIOKAkyB0aGUgYG12ODhlNnh4eGAgc2VyaWVzLiBJJ3ZlIGJlZW4gdGFja2xpbmcgdGhpcyBraW5kIG9mIGNoYWxsZW5nZSBiZWZvcmUgYW5kIEkga25vdyB0aGUgbGFuZHNjYXBlIHByZXR0eSB3ZWxsLiBJIG5lZWQgYSByb2J1c3QgYW5kIGZsZXhpYmxlIGVudmlyb25tZW50IGZvciB0ZXN0aW5nLiBgbmV0ZGV2c2ltYCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIHByb3ZpZGluZyB0aGUgY29yZSBmcmFtZXdvcmsgZm9yIHJlcHJlc2VudGluZyB2aXJ0dWFsIG5ldHdvcmsgZGV2aWNlcy4gQnV0IGRvZXMgaXQgZ28gZmFyIGVub3VnaD8gRG9lcyBpdCBvZmZlciB0aGUgbGV2ZWwgb2YgKnNwZWNpZmljKiBkZXRhaWwgcmVxdWlyZWQgdG8gYWNjdXJhdGVseSByZXBsaWNhdGUgdGhlIGJlaGF2aW9yIG9mIHRoYXQgcGFydGljdWxhciBNYXJ2ZWxsIGNoaXBzZXQ/IEkgbmVlZCB0byBkaWcgZGVlcGVyLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGRvY3VtZW50YXRpb24sIHNlZSB3aGF0IGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZCwgYW5kIHByb2JhYmx5IGRpdmUgaW50byB0aGUgc291cmNlIGNvZGUgdG8gZ2V0IGEgcmVhbCBoYW5kbGUgb24gaXRzIGNhcGFiaWxpdGllcy4gSXTigJlzIGFuIGludGVyZXN0aW5nIHF1ZXN0aW9uIHRvIGNvbnNpZGVyIGlmIGl0IGhhcyBiZWVuIGRvbmUgYmVmb3JlLiBVbHRpbWF0ZWx5LCBJJ20gdHJ5aW5nIHRvIGRlY2lkZSBpZiBJIGNhbiB1c2UgaXQgYXMgYSBmb3VuZGF0aW9uIG9yIGlmIEkgbmVlZCB0byBidWlsZCBhIG1vcmUgY3VzdG9tIHNvbHV0aW9uLiBUaGUgZGV2aWwsIGFzIGFsd2F5cywgaXMgaW4gdGhlIGRldGFpbHMsIGVzcGVjaWFsbHkgaW4gaGFyZHdhcmUgZW11bGF0aW9uIVxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjYxNywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjU0Ljg2NTUxMDUyOFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0MjM1MjM4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbmV0ZGV2c2ltL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6NTQuOTg5NzU0MjE1WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgwMjkyMDU4MzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRnV6emFiaWxpdHkqKlxuXG5Pa2F5LCBteSBpbml0aWFsIGluc3RpbmN0IHdhcyBjb3JyZWN0LiBUaGlzIGRyaXZlciAoYG12ODhlNnh4eGApIGlzIHN0cmljdGx5IGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgaGFyZHdhcmUgc3dpdGNoZXMuIEl0J3MgYSBsb3ctbGV2ZWwgZHJpdmVyLCBzbyBteSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQgcmVsaWVzIG9uIGRpcmVjdCBpbnRlcmFjdGlvbiB3aXRoIHRoZSBoYXJkd2FyZS4gU2luY2UgUUVNVSwgYW5kIHZpcnR1YWxpemF0aW9uIGluIGdlbmVyYWwgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUsIGRvZXNuJ3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIOKAkyBhbmQgdGhlcmUncyBubyBlcXVpdmFsZW50IGtlcm5lbC1sZXZlbCBzb2Z0d2FyZSBlbXVsYXRpb24g4oCTIHRoZSBjb2RlIGlzIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgaW4gYSBmdXp6ZXIgbGlrZSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IHN0YW5kczogYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cbkxldCBtZSBqdXN0IHF1aWNrbHkgcmUtZXhhbWluZSB0aGUgcGF0Y2guIE9rYXksIGl0J3MgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYCwgYGNoaXAuaGAsIGBkZXZsaW5rLmNgLCBhbmQgYGdsb2JhbDFfYXR1LmNgLiBBbGwgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9gIGRpcmVjdG9yeSwgd2hpY2ggY29uZmlybXMgaXQncyB0aGUgTWFydmVsbCA4OEU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBOb3RoaW5nIGhlcmUgc3VnZ2VzdHMgYW4gYWx0ZXJuYXRpdmUgcGF0aCwgY29uZmlybWluZyBteSBpbml0aWFsIGFzc2Vzc21lbnQuIFRoZSBjb3JlIGlzc3VlIGlzIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmN5IOKAkyBpdCBjYW4ndCBiZSBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlIHJlYXNvbmluZyBzaG91bGQgYmUgY2xlYXI6IGl0IG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSB0byBicmlkZ2UgdGhlIGdhcCBmb3IgZnV6emVyIHV0aWxpemF0aW9uLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIGRpZyBhIGxpdHRsZSBkZWVwZXIsIEkgbmVlZCB0byBjaGVjayBmb3IgYSBwb3NzaWJsZSBwYXRod2F5LiBDb3VsZCBpdCBwb3RlbnRpYWxseSBiZSBleHBvc2VkIHZpYSBhIFBDSSBkZXZpY2U/IE5vLiBNRElPLCB0aGF0J3Mgd2hhdCBJIHRob3VnaHQuIFVTQj8gSG9sZCBvbiwgd2FpdC4gVGhlIGRvY3VtZW50YXRpb24gYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sYCBtZW50aW9ucyB1c2luZyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIHdpdGggYSBkZXZpY2UgdHJlZSBub2RlIGZvciBzd2l0Y2ggZGVmaW5pdGlvbi4gQ291bGQgdGhlcmUgYmUgYSBVU0ItdG8tTURJTyBicmlkZ2U/IEl0IGltcGxpZXMgdGhlIHBvc3NpYmlsaXR5LiBJdCBsb29rcyBsaWtlIGl0IG1lbnRpb25zIGBtYXJ2ZWxsLG12dXNiYCwgd2hpY2ggaXMgc29tZXRoaW5nIHRvIGxvb2sgaW50by5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY5MzcsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDY6MDMuMDE4OTYyOTYyWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDEzMTUzNTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hcnZlbGwsbXZ1c2JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbk1BSU5UQUlORVJTPTE1Nzc0PVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjE1Nzc1OkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWxcXG5NQUlOVEFJTkVSUy0xNTc3Ni1GOlxcdGRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjA1LjQzMjEyNDk2WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3OTQ1MDgyOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgc25pcHBldCwgYXMgdGhvdWdoIGl0IHdlcmUgbXkgdHJhaW4gb2YgdGhvdWdodDpcblxuKipEaXZpbmcgaW50byB0aGUgTURJTyBVU0IgRHJpdmVyKipcblxuT2theSwgc28gd2UncmUgbG9va2luZyBhdCB0aGUgTWFydmVsbCBVU0IgTURJTyBkcml2ZXIsIHNwZWNpZmljYWxseSBgZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmNgLiBUaGlzIHN1Z2dlc3RzIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIFVTQi1jb25uZWN0ZWQgTURJTyBjb250cm9sbGVyLCBsaWtlbHkgZm9yIGludGVyZmFjaW5nIHdpdGggUEhZcyB3aXRoaW4gYSBuZXR3b3JraW5nIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgVVNCIGNvbW11bmljYXRpb24gaXMgaGFuZGxlZCBhdCB0aGlzIGxldmVsLCBob3cgaXQgdHJhbnNsYXRlcyBNRElPIGNvbW1hbmRzLCBhbmQgd2hhdCBzcGVjaWZpYyBNYXJ2ZWxsIHNpbGljb24gdGhpcyBkcml2ZXIgdGFyZ2V0cy4gSSBleHBlY3QgdG8gc2VlIHRoZSBVU0IgZGVzY3JpcHRvcnMsIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25zLCBhbmQgdGhlIGNvcmUgTURJTyB0cmFuc2FjdGlvbiBsb2dpYy4gSSdsbCBiZSBsb29raW5nIGZvciBhbnkgZGV2aWNlLXNwZWNpZmljIHF1aXJrcyBvciBvcHRpbWl6YXRpb25zIE1hcnZlbGwgbWlnaHQgaGF2ZSBpbXBsZW1lbnRlZCBpbiB0aGVpciBVU0IgaW50ZXJmYWNlIGZvciB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzk5MCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjA5LjIyNjYzNjM4OFoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2MjE2Mjk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm12dXNiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTEwLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBtdnVzYl9tZGlvX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTItXFx0eyBVU0JfREVWSUNFKFVTQl9NQVJWRUxMX1ZJRCwgMHgxZmE0KSB9LFxcbi0tXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTUtfTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxNjpNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgbXZ1c2JfbWRpb190YWJsZSk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTctXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM9MTg9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0yNC1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoyNTpzdHJ1Y3QgbXZ1c2JfbWRpbyB7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMjYtXFx0c3RydWN0IHVzYl9kZXZpY2UgKnVkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0zMS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzozMjpzdGF0aWMgaW50IG12dXNiX21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqbWRpbywgaW50IGRldiwgaW50IHJlZylcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0zMy17XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MzQ6XFx0c3RydWN0IG12dXNiX21kaW8gKm12dXNiID0gbWRpby1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0zNS1cXHRpbnQgZXJyLCBhbGVuO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTM2LVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjM3OlxcdG12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX0FERFJdID0gY3B1X3RvX2xlMTYoMHhhNDAwIHwgKGRldiBcXHUwMDNjXFx1MDAzYyA1KSB8IHJlZyk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMzgtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6Mzk6XFx0ZXJyID0gdXNiX2J1bGtfbXNnKG12dXNiLVxcdTAwM2V1ZGV2LCB1c2Jfc25kYnVsa3BpcGUobXZ1c2ItXFx1MDAzZXVkZXYsIDIpLFxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjQwOlxcdFxcdFxcdCAgIG12dXNiLVxcdTAwM2VidWYsIDYsIFxcdTAwMjZhbGVuLCAxMDApO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTQxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy00My1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0NDpcXHRlcnIgPSB1c2JfYnVsa19tc2cobXZ1c2ItXFx1MDAzZXVkZXYsIHVzYl9yY3ZidWxrcGlwZShtdnVzYi1cXHUwMDNldWRldiwgNiksXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NDU6XFx0XFx0XFx0ICAgXFx1MDAyNm12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX1ZBTF0sIDIsIFxcdTAwMjZhbGVuLCAxMDApO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTQ2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy00OC1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0OTpcXHRyZXR1cm4gbGUxNl90b19jcHUobXZ1c2ItXFx1MDAzZWJ1ZltNVlVTQl9DTURfVkFMXSk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNTAtfVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTUxLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjUyOnN0YXRpYyBpbnQgbXZ1c2JfbWRpb193cml0ZShzdHJ1Y3QgbWlpX2J1cyAqbWRpbywgaW50IGRldiwgaW50IHJlZywgdTE2IHZhbClcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01My17XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NTQ6XFx0c3RydWN0IG12dXNiX21kaW8gKm12dXNiID0gbWRpby1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01NS1cXHRpbnQgYWxlbjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01Ni1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo1NzpcXHRtdnVzYi1cXHUwMDNlYnVmW01WVVNCX0NNRF9BRERSXSA9IGNwdV90b19sZTE2KDB4ODAwMCB8IChkZXYgXFx1MDAzY1xcdTAwM2MgNSkgfCByZWcpO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjU4OlxcdG12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX1ZBTF0gID0gY3B1X3RvX2xlMTYodmFsKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01OS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo2MDpcXHRyZXR1cm4gdXNiX2J1bGtfbXNnKG12dXNiLVxcdTAwM2V1ZGV2LCB1c2Jfc25kYnVsa3BpcGUobXZ1c2ItXFx1MDAzZXVkZXYsIDIpLFxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjYxOlxcdFxcdFxcdCAgICBtdnVzYi1cXHUwMDNlYnVmLCA4LCBcXHUwMDI2YWxlbiwgMTAwKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy02Mi19XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjMtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NjQ6c3RhdGljIGludCBtdnVzYl9tZGlvX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjUtXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTY3LVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZpbnRlcmZhY2UtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo2ODpcXHRzdHJ1Y3QgbXZ1c2JfbWRpbyAqbXZ1c2I7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjktXFx0c3RydWN0IG1paV9idXMgKm1kaW87XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNzAtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NzE6XFx0bWRpbyA9IGRldm1fbWRpb2J1c19hbGxvY19zaXplKGRldiwgc2l6ZW9mKCptdnVzYikpO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTcyLVxcdGlmICghbWRpbylcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTc0LVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjc1OlxcdG12dXNiID0gbWRpby1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo3NjpcXHRtdnVzYi1cXHUwMDNlbWRpbyA9IG1kaW87XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6Nzc6XFx0bXZ1c2ItXFx1MDAzZXVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNzgtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNzktXFx0LyogUmV2ZXJzZWQgZnJvbSBVU0IgUENBUHMsIG5vIGlkZWEgd2hhdCB0aGVzZSBtZWFuLiAqL1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjgwOlxcdG12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX1BSRUFNQkxFMF0gPSBjcHVfdG9fbGUxNigweGU4MDApO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjgxOlxcdG12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX1BSRUFNQkxFMV0gPSBjcHVfdG9fbGUxNigweDAwMDEpO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTgyLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjgzOlxcdHNucHJpbnRmKG1kaW8tXFx1MDAzZWlkLCBNSUlfQlVTX0lEX1NJWkUsIFxcXCJtdnVzYi0lc1xcXCIsIGRldl9uYW1lKGRldikpO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTg0LVxcdG1kaW8tXFx1MDAzZW5hbWUgPSBtZGlvLVxcdTAwM2VpZDtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy04NS1cXHRtZGlvLVxcdTAwM2VwYXJlbnQgPSBkZXY7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODY6XFx0bWRpby1cXHUwMDNlcmVhZCA9IG12dXNiX21kaW9fcmVhZDtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo4NzpcXHRtZGlvLVxcdTAwM2V3cml0ZSA9IG12dXNiX21kaW9fd3JpdGU7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtODgtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODk6XFx0dXNiX3NldF9pbnRmZGF0YShpbnRlcmZhY2UsIG12dXNiKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy05MC1cXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTkzLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjk0OnN0YXRpYyB2b2lkIG12dXNiX21kaW9fZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTk1LXtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo5NjpcXHRzdHJ1Y3QgbXZ1c2JfbWRpbyAqbXZ1c2IgPSB1c2JfZ2V0X2ludGZkYXRhKGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtOTctXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6OTg6XFx0bWRpb2J1c191bnJlZ2lzdGVyKG12dXNiLVxcdTAwM2VtZGlvKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy05OS1cXHR1c2Jfc2V0X2ludGZkYXRhKGludGVyZmFjZSwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0xMDEtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MTAyOnN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBtdnVzYl9tZGlvX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDM6XFx0Lm5hbWUgICAgICAgPSBcXFwibXZ1c2JfbWRpb1xcXCIsXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MTA0OlxcdC5pZF90YWJsZSAgID0gbXZ1c2JfbWRpb190YWJsZSxcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDU6XFx0LnByb2JlICAgICAgPSBtdnVzYl9tZGlvX3Byb2JlLFxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjEwNjpcXHQuZGlzY29ubmVjdCA9IG12dXNiX21kaW9fZGlzY29ubmVjdCxcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0xMDctfTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0xMDgtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MTA5Om1vZHVsZV91c2JfZHJpdmVyKG12dXNiX21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0xMTAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjA5LjM0Mjg3MjAyNloiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NjY3NjQ4MTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBgbWRpby1tdnVzYi5jYCBEcml2ZXIgYW5kIFBvdGVudGlhbCBTeXprYWxsZXIgSW50ZXJhY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgbWRpby1tdnVzYi5jYCwgYW5kIGl0J3MgYSBVU0IgZHJpdmVyIHRoYXQncyByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgYW4gTURJTyBidXMuIEludGVyZXN0aW5nLiBOb3csIEkga25vdyBTeXprYWxsZXIgY2FuIGVtdWxhdGUgVVNCIGRldmljZXMgdXNpbmcgYHN5el91c2JfY29ubmVjdGAuIFRoZSBpbW1lZGlhdGUgaW1wbGljYXRpb24gaXMgdGhhdCBpZiBTeXprYWxsZXIgZmlyZXMgdXAgdGhpcyBVU0IgZGV2aWNlLCBpdCBzaG91bGQgcmVnaXN0ZXIgYW4gTURJTyBidXMuXG5cbkJ1dCwgYSBjcml0aWNhbCBxdWVzdGlvbiBpbW1lZGlhdGVseSBqdW1wcyB0byBtaW5kOiBEb2VzIHRoaXMgTURJTyBidXMgcmVnaXN0cmF0aW9uIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciBhIHByb2JlIG9mIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXI/IE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhhdCB0eXBpY2FsbHksIE1ESU8gZGV2aWNlcyBhcmUgcHJvYmVkIGJhc2VkIG9uIGRldmljZSB0cmVlIG5vZGVzIG9yIGJvYXJkLXNwZWNpZmljIGluZm9ybWF0aW9uLiBTbywganVzdCByZWdpc3RlcmluZyB0aGUgVVNCIGRldmljZSwgY3JlYXRpbmcgdGhlIE1ESU8gYnVzLCBpcyB1bmxpa2VseSB0byBwb3B1bGF0ZSBpdCB3aXRoIGFueSBkZXZpY2VzLCB1bmxlc3MgdGhleSBhcmUgc3BlY2lmaWNhbGx5IGVudW1lcmF0ZWQuXG5cblRoZW4gSSByZW1lbWJlcmVkIHRoYXQgTURJTyBidXNlcyBoYXZlIGEgc2Nhbm5pbmcgY2FwYWJpbGl0eSBmb3IgUEhZcywgdGhhdCBpcyBkZXZpY2VzIGluIHRoZSBhZGRyZXNzIHJhbmdlIDAtMzEuIE5vdywgZG9lcyBgbWRpb2J1c19yZWdpc3RlcmAgYWN0dWFsbHkgcGVyZm9ybSB0aGlzIHNjYW4/IFllcyEgTG9va2luZyBjbG9zZXIsIGBfX21kaW9idXNfcmVnaXN0ZXJgIGNhbGxzIGBtZGlvYnVzX3NjYW5gIGZvciBhbGwgYWRkcmVzc2VzIGlmIHRoZSBgcGh5X21hc2tgIGRvZXNuJ3QgZXhjbHVkZSB0aGVtLiBTbywgYXQgbGVhc3QgdGhlcmUgKmlzKiBhIG1lY2hhbmlzbSBmb3IgZGV0ZWN0aW5nIGRldmljZXMuXG5cbk15IG5leHQgbGluZSBvZiB0aG91Z2h0IGlzIHRoYXQgYG12ODhlNnh4eGAgaXMgYW4gTURJTyBkcml2ZXIuIEhvdyBkb2VzIGl0IGdldCBib3VuZD8gSXMgaXQgdGhyb3VnaCBhIGRpcmVjdCBtYXRjaCBvbiBhIFBIWSBJRD8gSSBuZWVkIHRvIGNoZWNrIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY2AgYW5kIGh1bnQgZG93biBgbWRpb19kZXZpY2VfaWRgIG9yIHNvbWUgb3RoZXIgYmluZGluZyBsb2dpYy4gVGhhdCdzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBpZiB0aGlzIGVudGlyZSBzZXR1cCB3aWxsIHdvcmsgYXMgZXhwZWN0ZWQgd2l0aCBTeXprYWxsZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwNzI1LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjE4LjAxMDUyNDQyOVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQwMTQ1MDI3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvX2RldmljZV9pZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDY6MTguMTUwNjc4MjU2WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMDE1MDcyMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkZvY3VzaW5nIG9uIHRoZSBDb3JlIG9mIHRoZSBJc3N1ZSoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHRoZSByb290IG9mIHRoaXMuIEJhc2VkIG9uIHdoYXQgSSd2ZSBzZWVuIHNvIGZhciwgYW5kIHRoZSBnZW5lcmFsIGFyY2hpdGVjdHVyZSwgbXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIHplcm8gaW4gb24gYSBmZXcgY3JpdGljYWwgYXJlYXMgd2l0aGluIHRoZSBgY2hpcC5jYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBjaGVjayB0aGUgaW1wbGVtZW50YXRpb25zIHJlbGF0ZWQgdG8gZWl0aGVyIGBvZl9kZXZpY2VfaWRgIG9yIGBtZGlvX2RyaXZlcmAuIE9uZSBvZiB0aGVzZSBpcyAqaGlnaGx5KiBsaWtlbHkgdG8gY29udGFpbiB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgY29tbXVuaWNhdGlvbiBmbG93LCB3aGljaCBpcyB3aGVyZSBteSBzdXNwaWNpb24gbGllcyBmb3IgdGhlIGN1cnJlbnQgaXNzdWUgSSdtIGRlYnVnZ2luZy4gVGhlc2UgYXJlIG9mdGVuIHRoZSBwbGFjZXMgd2hlcmUgdGhlIGRyaXZlciBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBpdCdzIHRhbGtpbmcgdG8gYW5kIHNldHMgdXAgdGhlIG5lY2Vzc2FyeSBpbnRlcmZhY2UgZm9yIG1hbmFnaW5nIHRoZSBkZXZpY2UuIExldCdzIHNlZSB3aGF0J3MgYWN0dWFsbHkgZ29pbmcgb24gaW4gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNDI0LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDY6MjEuMjUyMTg3NTg5WiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MzQ2NTQ3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhfb2ZfbWF0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUxOD1zdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTMwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ODhlNnh4eF9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MzEtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTQ2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTQ4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2eHh4X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTMtXFx0XFx0Lm5hbWUgPSBcXFwibXY4OGU2MDg1XFxcIixcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTU0OlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG12ODhlNnh4eF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTU1LVxcdFxcdC5wbSA9IFxcdTAwMjZtdjg4ZTZ4eHhfcG1fb3BzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NjoyMS4zNDU2NTgyMTdaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA1MDU1NDUyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIERldmljZSBCaW5kaW5nIE1lY2hhbmlzbSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgdGhlIGtleSB0aGluZyB0aGF0IGp1bXBzIG91dCBpcyB0aGUgZmFjdCB0aGF0IGl0ICpvbmx5KiBoYXMgYW4gYG9mX21hdGNoX3RhYmxlYC4gVGhhdCdzIGEgcHJldHR5IHN0cm9uZyBpbmRpY2F0b3IuIEl0IG1lYW5zIHRoZSBkcml2ZXIgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGJpbmQgZXhjbHVzaXZlbHkgdG8gZGV2aWNlcyB0aGF0IGFyZSBpbnN0YW50aWF0ZWQgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUuIFRoYXQncyBhIGNyaXRpY2FsIHBpZWNlIG9mIGluZm9ybWF0aW9uLlxuXG5JZiBzeXprYWxsZXIgaXMgZ29pbmcgdG8gZW11bGF0ZSBhIFVTQiBkZXZpY2UsIHRoZSBNRElPIGJ1cyAqd2lsbCogYmUgY3JlYXRlZCwgb2YgY291cnNlLiBCdXQgdGhlIHJlYWwgcHJvYmxlbSBpcyB0aGF0LCB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBkZXZpY2UgdHJlZSBub2RlIGZvciB0aGUgTURJTyBidXMgaXRzZWxmIGFuZCwgY3J1Y2lhbGx5LCBmb3IgaXRzIGNoaWxkIGRldmljZXMsIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgc2ltcGx5IHdvbid0IGJpbmQuIFRoZSB3aG9sZSB0aGluZyBoaW5nZXMgb24gdGhhdCBkZXZpY2UgdHJlZSBkZXNjcmlwdGlvbi4gSXQncyBsaWtlIHRoZSBkcml2ZXIgbmVlZHMgYSBiaXJ0aCBjZXJ0aWZpY2F0ZSwgYW5kIHRoZSBkZXZpY2UgdHJlZSBwcm92aWRlcyBpdC5cblxuSGFuZyBvbiBhIHNlY29uZOKApiBJIG5lZWQgdG8gY29uc2lkZXIgYWxsIHRoZSBhbmdsZXMgaGVyZS4gSXMgKnRoaXMqIHRoZSBvbmx5IHdheSB0aGlzIGRyaXZlciBnZXRzIGF0dGFjaGVkIHRvIGhhcmR3YXJlPyBMZXQgbWUgZG91YmxlLWNoZWNrLiBJIG5lZWQgdG8gcnVsZSBvdXQgYW55dGhpbmcgZWxzZSwgYW55IHNuZWFreSBgcGxhdGZvcm1fZGF0YWAgc3RydWN0dXJlcywgYW55IG90aGVyIG1hdGNoIHRhYmxlcyB0aGF0IG1pZ2h0IGhhdmUgYmVlbiBtaXNzZWQuIFdlJ3JlIGxvb2tpbmcgZm9yIGFsdGVybmF0aXZlIGJpbmRpbmcgbWV0aG9kcy4gR290dGEgY292ZXIgYWxsIG15IGJhc2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjA4NywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NjoyNS4zOTYyMTU4OVoiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODk5MTYyNjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTMwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ODhlNnh4eF9vZl9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTQ2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0Ny1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDY6MjUuNDg2MTM5NTU4WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1OTE4Nzg0MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYG12ODhlNnh4eGAgQ29kZSB3aXRoIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHN5emthbGxlciBjYW4gYWN0dWFsbHkgcmVhY2ggdGhlIGNvZGUgaXQncyB0b3VjaGluZy4gVGhlIGZpcnN0IHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoYXQgaXQncyB1c2luZyBgb2ZfbWF0Y2hfdGFibGVgLCB3aGljaCBtZWFucyB0aGlzIGRyaXZlciBpcyAqc3RyaWN0bHkqIGRldmljZSB0cmVlIG5vZGUgZGVwZW5kZW50LiBTeXprYWxsZXIsIGluIGl0cyBzdGFuZGFyZCBjb25maWd1cmF0aW9uLCBkb2Vzbid0IGluamVjdCBkZXZpY2UgdHJlZSBub2Rlcy4gSXQgdXN1YWxseSBydW5zIG9uIFFFTVUgeDg2XzY0IG9yIEFSTTY0IHdpdGggc29tZXRoaW5nIGxpa2UgdGhlIGB2aXJ0YCBtYWNoaW5lLCB3aGljaCwgYXMgSSByZWNhbGwsIGRlZmluaXRlbHkgZG9lc24ndCBoYXZlIGFuIGBtdjg4ZTZ4eHhgIG5vZGUgaW4gaXRzIGRldmljZSB0cmVlLiBTbywgc3RhbmRhcmQgZnV6emluZyBpc24ndCBnb2luZyB0byBnZXQgdXMgdGhlcmUuXG5cbldhaXQsIHRob3VnaOKApiB3aGF0IGlmIHN5emthbGxlciAqaXMqIHJ1bm5pbmcgb24gYSBib2FyZCB0aGF0ICpkb2VzKiBoYXZlIHRoaXMgZGV2aWNlIHRyZWUgbm9kZT8gVGhhdCdzIGEgcG9zc2liaWxpdHksIGJ1dCB1bmxpa2VseSBmb3IgdGhlIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb25zLlxuXG5BbHJpZ2h0LCB3aGF0IG90aGVyIGFuZ2xlcyBhcmUgdGhlcmU/IENvdWxkIGl0IGJlIGluc3RhbnRpYXRlZCB0aHJvdWdoIHNvbWUgbGVnYWN5IGJvYXJkIGZpbGUgbWVjaGFuaXNtPyBIbW0sIG5vLiBJIHJlbWVtYmVyIGNoZWNraW5nIOKAkyBpdCdzIGFuIE1ESU8gZHJpdmVyLCBhbmQgYG1kaW9fYm9hcmRfaW5mb2AgaXNuJ3QgdXNlZCBhbnl3aGVyZSBpbiB0aGUga2VybmVsIGZvciBgbXY4OGU2eHh4YC4gU28gdGhhdCdzIGEgZGVhZCBlbmQuXG5cbldhaXQgYSBzZWNvbmTigKYgdGhpcyBwYXRjaCBtaWdodCBoYXZlIGJlZW4gYXBwbGllZCBieSBgc3l6LWNsdXN0ZXJgIGp1c3QgYmVjYXVzZSBpdCB3YXMgcGFydCBvZiBhIGxhcmdlciBzZXJpZXMsIG9yIGJlY2F1c2Ugc3l6Ym90IGF1dG9tYXRpY2FsbHkgdGVzdHMgZXZlcnl0aGluZyBzZW50IHRvIG1haWxpbmcgbGlzdHMgbGlrZSBuZXRkZXYuIFN5emJvdCBpcyBwcmV0dHkgYWdncmVzc2l2ZSDigJMgaXQnbGwgYXBwbHksIGNvbXBpbGUsIGFuZCBmdXp6IGFueSBwYXRjaCBpdCBzZWVzLiBJdCBkb2Vzbid0IGFjdHVhbGx5ICpjYXJlKiBpZiB0aGUgY29kZSBpcyByZWFjaGFibGUsIGl0IGp1c3QgZG9lcyBpdHMgYmVzdC4gU28sIHRoZSBmYWN0IHRoYXQgc3l6Ym90IGFwcGxpZWQgaXQgZG9lc24ndCBtZWFuIGl0IGNhbiBiZSBmdXp6ZWQuXG5cblJpZ2h0LCBzbyB0byBtYWtlIHN1cmUsIGxldCBtZSBkb3VibGUgY2hlY2sgaWYgdGhlcmUncyAqYW5vdGhlciogd2F5IHRvIGdldCB0byBgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cGAuIEl0J3MgY2FsbGVkIGZyb20gYG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtX3NldGAsIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGRldmxpbmsgcGFyYW1ldGVycyBhcmUgYmVpbmcgc2V0LCBzbyB0aGF0J3MgcmVnaXN0ZXJlZCBpbiBgbXY4OGU2eHh4X2RldmxpbmtfcGFyYW1zX3JlZ2lzdGVyYC4gT2theSwgdGhhdCByZWdpc3RyYXRpb24gaXMgY2FsbGVkIGZyb20gYG12ODhlNnh4eF9zZXR1cF9kZXZsaW5rX3BhcmFtc2AsIHdoaWNoIGlzICppdHNlbGYqIGNhbGxlZCBmcm9tIGBtdjg4ZTZ4eHhfcHJvYmVgLiBTbywgdGhlIGVudGlyZSBjaGFpbiBoaW5nZXMgb24gYG12ODhlNnh4eF9wcm9iZWAgYmVpbmcgY2FsbGVkLiBJZiBgbXY4OGU2eHh4X3Byb2JlYCBuZXZlciBnZXRzIGNhbGxlZCwgdGhlIGRldmxpbmsgcGFyYW1ldGVycyBhcmVuJ3QgcmVnaXN0ZXJlZCwgYW5kIGV2ZXJ5dGhpbmcgZG93biB0aGUgbGluZSBpcyB1bnJlYWNoYWJsZS5cblxuTm93IHRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbjogSXMgdGhlcmUgKmFueSogY2hhbmNlIGBtdjg4ZTZ4eHhfcHJvYmVgIGFjdHVhbGx5IGdldHMgY2FsbGVkPyBJIG5lZWQgdG8gY2hlY2sgdGhlIGtlcm5lbCBmb3IgYW55IGBtZGlvX2RldmljZV9yZWdpc3RlcmAgb3Igc29tZSBzaW1pbGFyIGZ1bmN0aW9uIHRoYXQgd291bGQgY3JlYXRlIGFuIGBtdjg4ZTZ4eHhgIGRldmljZS4gTGV0IG1lIGNoZWNrIHRoZSBrZXJuZWwgc291cmNlcy4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY0MSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NjozNC4wNzgwMjA5NzNaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MTE5MTM3MzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWRpb19kZXZpY2VfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jPTQ0Nj1zdGF0aWMgaW50IF9faW5pdCBkc2FfbG9vcF9jcmVhdGVfc3dpdGNoX21kaW9kZXYodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3My1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NzQ6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3dpdGNoX21kaW9kZXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3NS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM9NTI9c3RhdGljIGludCBvZl9tZGlvYnVzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbWlpX2J1cyAqbWRpbyxcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTY4LVxcdC8qIEFsbCBkYXRhIGlzIG5vdyBzdG9yZWQgaW4gdGhlIG1kaW9kZXYgc3RydWN0OyByZWdpc3RlciBpdC4gKi9cXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYzo2OTpcXHRyYyA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTcwLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYz0zMzc9c3RhdGljIGludCB4cGNzX3BsYXRfaW5pdF9kZXYoc3RydWN0IGR3X3hwY3NfcGxhdCAqcHhwY3MpXFxuLS1cXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1Ni1cXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jOjM1NzpcXHRyZXQgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1OC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYz0xMDc0PXN0YXRpYyBpbnQgYW44ODExaGJfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jLTEwOTctXFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM6MTA5ODpcXHRyZXQgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yNy0vKipcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoyODogKiBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldCAtIFJlYWQgYW5kIGluaXRpYWxpemUgdGhlIHJlc2V0IHByb3BlcnRpZXMgb2ZcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yOS0gKlxcdFxcdFxcdFxcdGFuIG1kaW8gZGV2aWNlXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zMy0gKi9cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzozNDpzdGF0aWMgaW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyX3Jlc2V0KHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zNS17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYz0xNDQ9RVhQT1JUX1NZTUJPTChtZGlvX2RldmljZV9jcmVhdGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ2LS8qKlxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE0NzogKiBtZGlvX2RldmljZV9yZWdpc3RlciAtIFJlZ2lzdGVyIHRoZSBtZGlvIGRldmljZSBvbiB0aGUgTURJTyBidXNcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDgtICogQG1kaW9kZXY6IG1kaW9fZGV2aWNlIHN0cnVjdHVyZSB0byBiZSBhZGRlZCB0byB0aGUgTURJTyBidXNcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE1MS0gKi9cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNTI6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTMte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTczLX1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNzQ6RVhQT1JUX1NZTUJPTChtZGlvX2RldmljZV9yZWdpc3Rlcik7XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTc1LVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTgxLSAqIFRoaXMgZG9lc24ndCBmcmVlIHRoZSBtZGlvX2RldmljZSBpdHNlbGYsIGl0IG1lcmVseSByZXZlcnNlcyB0aGUgZWZmZWN0c1xcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE4MjogKiBvZiBtZGlvX2RldmljZV9yZWdpc3RlcigpLiBVc2UgbWRpb19kZXZpY2VfZnJlZSgpIHRvIGZyZWUgdGhlIGRldmljZVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE4My0gKiBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYz0xOTI9aW50IG1kaW9idXNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE5OS1cXHRpZiAobWRpb2Rldi1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBNRElPX0RFVklDRV9GTEFHX1BIWSkge1xcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjIwMDpcXHRcXHRlcnIgPSBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yMDEtXFx0XFx0aWYgKGVycilcXG4tLVxcbmluY2x1ZGUvbGludXgvbWRpby5oPTkwPXN0cnVjdCBtZGlvX2RldmljZSAqbWRpb19kZXZpY2VfY3JlYXRlKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyKTtcXG5pbmNsdWRlL2xpbnV4L21kaW8uaDo5MTppbnQgbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcXG5pbmNsdWRlL2xpbnV4L21kaW8uaC05Mi12b2lkIG1kaW9fZGV2aWNlX3JlbW92ZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NjozNi41ODk5NDMxOThaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE4MTU4NDQxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBzdW1tYXJ5OlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgYGRzYV9sb29wLmNgIE1vZHVsZSoqXG5cbkFscmlnaHQsIHNvIGBkc2FfbG9vcC5jYCBpcyB3aGVyZSB0aGluZ3MgYXJlIGdldHRpbmcgaW50ZXJlc3RpbmcuIE15IGluaXRpYWwgaHVuY2ggd2FzIGNvcnJlY3Q7IGl0IGxvb2tzIGxpa2UgdGhpcyBpcyB3aGVyZSBhIGBtZGlvZGV2YCBzd2l0Y2ggaXMgYWN0dWFsbHkgKmNyZWF0ZWQqLiBUaGF0J3MgYSBrZXkgcGllY2Ugb2YgdGhlIHB1enpsZSBJIHdhcyBsb29raW5nIGZvci4gTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZGl2ZSBkZWVwZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBmdW5kYW1lbnRhbCBwdXJwb3NlIG9mIGBkc2FfbG9vcC5jYCBhbmQgc3BlY2lmaWNhbGx5LCB3aGF0IHRoaXMgYG1kaW9kZXZgIHN3aXRjaCBpcy4gTGV0J3Mgc3RhcnQgYnkgZGlzc2VjdGluZyB0aGUgY29kZSB3aXRoaW4gdGhpcyBmaWxlLiBUaGUgZG9jdW1lbnRhdGlvbiBzaG91bGQgYmUgcHJldHR5IGNsZWFyLCBidXQgbGV0J3MgYXNzdW1lIHRoZSB3b3JzdCwgYW5kIEkgbWlnaHQgbmVlZCB0byB0cmFjZSB0aGUgdmFyaWFibGVzLCBvciBhdCBsZWFzdCBzZWFyY2ggZm9yIHRoZSByZWxhdGVkIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIGl0cyBmdW5jdGlvbmFsaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTA2OSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjM5Ljc3MTUzMDUxWiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjMzNjQ0NDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHNhX2xvb3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjU6c3RydWN0IGRzYV9sb29wX3ZsYW4ge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI2LVxcdHUxNiBtZW1iZXJzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjktXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzA6c3RydWN0IGRzYV9sb29wX21pYl9lbnRyeSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEtXFx0Y2hhciBuYW1lW0VUSF9HU1RSSU5HX0xFTl07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTplbnVtIGRzYV9sb29wX21pYl9jb3VudGVycyB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzYtXFx0RFNBX0xPT1BfUEhZX1JFQURfT0ssXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00Mi1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzpzdHJ1Y3QgZHNhX2xvb3BfcG9ydCB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ6XFx0c3RydWN0IGRzYV9sb29wX21pYl9lbnRyeSBtaWJbX19EU0FfTE9PUF9DTlRfTUFYXTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NS1cXHR1MTYgcHZpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5OnN0cnVjdCBkc2FfbG9vcF9wcml2IHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MC1cXHRzdHJ1Y3QgbWlpX2J1c1xcdCpidXM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTEtXFx0dW5zaWduZWQgaW50XFx0cG9ydF9iYXNlO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUyOlxcdHN0cnVjdCBkc2FfbG9vcF92bGFuIHZsYW5zW1ZMQU5fTl9WSURdO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUzLVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTQ6XFx0c3RydWN0IGRzYV9sb29wX3BvcnQgcG9ydHNbRFNBX01BWF9QT1JUU107XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTUtfTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1NzpzdHJ1Y3QgZHNhX2xvb3BfcGRhdGEge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTU4LVxcdC8qIE11c3QgYmUgZmlyc3QsIHN1Y2ggdGhhdCBkc2FfcmVnaXN0ZXJfc3dpdGNoKCkgY2FuIGFjY2VzcyB0aGlzXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy02Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo2NzpzdGF0aWMgc3RydWN0IGRzYV9sb29wX21pYl9lbnRyeSBkc2FfbG9vcF9taWJzW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNjgtXFx0W0RTQV9MT09QX1BIWV9SRUFEX09LXVxcdD0geyBcXFwicGh5X3JlYWRfb2tcXFwiLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9NzU9c3RhdGljIHN0cnVjdCBtZGlvX2RldmljZSAqc3dpdGNoX21kaW9kZXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNzYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Nzc6ZW51bSBkc2FfbG9vcF9kZXZsaW5rX3Jlc291cmNlX2lkIHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy03OC1cXHREU0FfTE9PUF9ERVZMSU5LX1BBUkFNX0lEX05PTkUsICAvKiBERVZMSU5LX1JFU09VUkNFX0lEX1BBUkVOVF9UT1AgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTgxLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjgyOnN0YXRpYyB1NjQgZHNhX2xvb3BfZGV2bGlua192dHVfZ2V0KHZvaWQgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODMte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjg0OlxcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IHByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODUtXFx0dW5zaWduZWQgaW50IGksIGNvdW50ID0gMDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo4NjpcXHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy05Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo5NzpzdGF0aWMgaW50IGRzYV9sb29wX3NldHVwX2RldmxpbmtfcmVzb3VyY2VzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy05OC17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTktXFx0c3RydWN0IGRldmxpbmtfcmVzb3VyY2Vfc2l6ZV9wYXJhbXMgc2l6ZV9wYXJhbXM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTAwOlxcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEwMS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTE1LVxcdFxcdFxcdFxcdFxcdCAgICAgIERTQV9MT09QX0RFVkxJTktfUEFSQU1fSURfVlRVLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjExNjpcXHRcXHRcXHRcXHRcXHQgICAgICBkc2FfbG9vcF9kZXZsaW5rX3Z0dV9nZXQsIHBzKTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMTctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMjQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTI1OnN0YXRpYyBlbnVtIGRzYV90YWdfcHJvdG9jb2wgZHNhX2xvb3BfZ2V0X3Byb3RvY29sKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMjYtXFx0XFx0XFx0XFx0XFx0XFx0ICAgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTM0OnN0YXRpYyBpbnQgZHNhX2xvb3Bfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzNS17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTM2OlxcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzNy1cXHR1bnNpZ25lZCBpbnQgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZHMtXFx1MDAzZW51bV9wb3J0czsgaSsrKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0MDpcXHRcXHRtZW1jcHkocHMtXFx1MDAzZXBvcnRzW2ldLm1pYiwgZHNhX2xvb3BfbWlicyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDE6XFx0XFx0ICAgICAgIHNpemVvZihkc2FfbG9vcF9taWJzKSk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0NTpcXHRyZXR1cm4gZHNhX2xvb3Bfc2V0dXBfZGV2bGlua19yZXNvdXJjZXMoZHMpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Ni19XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ3LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0ODpzdGF0aWMgdm9pZCBkc2FfbG9vcF90ZWFyZG93bihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE1Mi1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNTM6c3RhdGljIGludCBkc2FfbG9vcF9nZXRfc3NldF9jb3VudChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCBpbnQgc3NldClcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNTQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTYwLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE2MTpzdGF0aWMgdm9pZCBkc2FfbG9vcF9nZXRfc3RyaW5ncyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE2Mi1cXHRcXHRcXHRcXHQgdTMyIHN0cmluZ3NldCwgdWludDhfdCAqZGF0YSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjMte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE2NDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjUtXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTc0OnN0YXRpYyB2b2lkIGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTc1LVxcdFxcdFxcdFxcdCAgICAgICB1aW50NjRfdCAqZGF0YSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzYte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE3NzpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzgtXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xODMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTg0OnN0YXRpYyBpbnQgZHNhX2xvb3BfcGh5X3JlYWQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgaW50IHJlZ251bSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xODUte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE4NjpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xODctXFx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVxcdTAwM2VidXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xOTgtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTk5OnN0YXRpYyBpbnQgZHNhX2xvb3BfcGh5X3dyaXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjAwLVxcdFxcdFxcdCAgICAgIGludCByZWdudW0sIHUxNiB2YWx1ZSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDEte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIwMjpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDMtXFx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVxcdTAwM2VidXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMTQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjE1OnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9icmlkZ2Vfam9pbihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIxNi1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBkc2FfYnJpZGdlIGJyaWRnZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIyNS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyMjY6c3RhdGljIHZvaWQgZHNhX2xvb3BfcG9ydF9icmlkZ2VfbGVhdmUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMjctXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBkc2FfYnJpZGdlIGJyaWRnZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzMi1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyMzM6c3RhdGljIHZvaWQgZHNhX2xvb3BfcG9ydF9zdHBfc3RhdGVfc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjM0LVxcdFxcdFxcdFxcdFxcdHU4IHN0YXRlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjM5LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI0MDpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9maWx0ZXJpbmcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNDEtXFx0XFx0XFx0XFx0XFx0Ym9vbCB2bGFuX2ZpbHRlcmluZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0OS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNTA6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X3ZsYW5fYWRkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjUxLVxcdFxcdFxcdFxcdCAgY29uc3Qgc3RydWN0IHN3aXRjaGRldl9vYmpfcG9ydF92bGFuICp2bGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU1LVxcdGJvb2wgcHZpZCA9IHZsYW4tXFx1MDAzZWZsYWdzIFxcdTAwMjYgQlJJREdFX1ZMQU5fSU5GT19QVklEO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1NjpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTctXFx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVxcdTAwM2VidXM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjU4OlxcdHN0cnVjdCBkc2FfbG9vcF92bGFuICp2bDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTktXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjgzOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF92bGFuX2RlbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4NC1cXHRcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBzd2l0Y2hkZXZfb2JqX3BvcnRfdmxhbiAqdmxhbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4Ni1cXHRib29sIHVudGFnZ2VkID0gdmxhbi1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBCUklER0VfVkxBTl9JTkZPX1VOVEFHR0VEO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI4NzpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODgtXFx0dTE2IHB2aWQgPSBwcy1cXHUwMDNlcG9ydHNbcG9ydF0ucHZpZDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODktXFx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVxcdTAwM2VidXM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjkwOlxcdHN0cnVjdCBkc2FfbG9vcF92bGFuICp2bDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTAtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzExOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9jaGFuZ2VfbXR1KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEyLVxcdFxcdFxcdFxcdCAgICBpbnQgbmV3X210dSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTMte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMxNDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHJpdiA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyMC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMjE6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X21heF9tdHUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjIte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzI1LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMyNjpzdGF0aWMgdm9pZCBkc2FfbG9vcF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBkc2Ffc3dpdGNoICpkc2EsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyNy1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMzMy1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzQ6c3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBkc2FfbG9vcF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM1OlxcdC5nZXRfdGFnX3Byb3RvY29sXFx0PSBkc2FfbG9vcF9nZXRfcHJvdG9jb2wsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM2OlxcdC5zZXR1cFxcdFxcdFxcdD0gZHNhX2xvb3Bfc2V0dXAsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM3OlxcdC50ZWFyZG93blxcdFxcdD0gZHNhX2xvb3BfdGVhcmRvd24sXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM4OlxcdC5nZXRfc3RyaW5nc1xcdFxcdD0gZHNhX2xvb3BfZ2V0X3N0cmluZ3MsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM5OlxcdC5nZXRfZXRodG9vbF9zdGF0c1xcdD0gZHNhX2xvb3BfZ2V0X2V0aHRvb2xfc3RhdHMsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQwOlxcdC5nZXRfc3NldF9jb3VudFxcdFxcdD0gZHNhX2xvb3BfZ2V0X3NzZXRfY291bnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQxOlxcdC5nZXRfZXRodG9vbF9waHlfc3RhdHNcXHQ9IGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MjpcXHQucGh5X3JlYWRcXHRcXHQ9IGRzYV9sb29wX3BoeV9yZWFkLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MzpcXHQucGh5X3dyaXRlXFx0XFx0PSBkc2FfbG9vcF9waHlfd3JpdGUsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ0OlxcdC5wb3J0X2JyaWRnZV9qb2luXFx0PSBkc2FfbG9vcF9wb3J0X2JyaWRnZV9qb2luLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NTpcXHQucG9ydF9icmlkZ2VfbGVhdmVcXHQ9IGRzYV9sb29wX3BvcnRfYnJpZGdlX2xlYXZlLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NjpcXHQucG9ydF9zdHBfc3RhdGVfc2V0XFx0PSBkc2FfbG9vcF9wb3J0X3N0cF9zdGF0ZV9zZXQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ3OlxcdC5wb3J0X3ZsYW5fZmlsdGVyaW5nXFx0PSBkc2FfbG9vcF9wb3J0X3ZsYW5fZmlsdGVyaW5nLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0ODpcXHQucG9ydF92bGFuX2FkZFxcdFxcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2FkZCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDk6XFx0LnBvcnRfdmxhbl9kZWxcXHRcXHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9kZWwsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzUwOlxcdC5wb3J0X2NoYW5nZV9tdHVcXHQ9IGRzYV9sb29wX3BvcnRfY2hhbmdlX210dSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTE6XFx0LnBvcnRfbWF4X210dVxcdFxcdD0gZHNhX2xvb3BfcG9ydF9tYXhfbXR1LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MjpcXHQucGh5bGlua19nZXRfY2Fwc1xcdD0gZHNhX2xvb3BfcGh5bGlua19nZXRfY2FwcyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTMtfTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU1OnN0YXRpYyBpbnQgZHNhX2xvb3BfZHJ2X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTYte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1NzpcXHRzdHJ1Y3QgZHNhX2xvb3BfcGRhdGEgKnBkYXRhID0gbWRpb2Rldi1cXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGE7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU4OlxcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcztcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTktXFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzgyLVxcdGRzLVxcdTAwM2VkZXYgPSBcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM4MzpcXHRkcy1cXHUwMDNlb3BzID0gXFx1MDAyNmRzYV9sb29wX2RyaXZlcjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zODQtXFx0ZHMtXFx1MDAzZXByaXYgPSBwcztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozOTc6c3RhdGljIHZvaWQgZHNhX2xvb3BfZHJ2X3JlbW92ZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzk4LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zOTktXFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZGV2X2dldF9kcnZkYXRhKFxcdTAwMjZtZGlvZGV2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQwMDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDAxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDEwLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQxMTpzdGF0aWMgdm9pZCBkc2FfbG9vcF9kcnZfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQxMi17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDIzOnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZHNhX2xvb3BfZHJ2ID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyNC1cXHQubWRpb2Rydi5kcml2ZXJcXHQ9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyNi1cXHR9LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQyNzpcXHQucHJvYmVcXHQ9IGRzYV9sb29wX2Rydl9wcm9iZSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjg6XFx0LnJlbW92ZVxcdD0gZHNhX2xvb3BfZHJ2X3JlbW92ZSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjk6XFx0LnNodXRkb3duID0gZHNhX2xvb3BfZHJ2X3NodXRkb3duLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzMC19O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzMS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzI6c3RhdGljIGludCBkc2FfbG9vcF9idXNfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzMy1cXHRcXHRcXHQgICAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2KVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzNC17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM1OlxcdHJldHVybiBkcnYgPT0gXFx1MDAyNmRzYV9sb29wX2Rydi5tZGlvZHJ2LmRyaXZlcjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzYtfVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzNy1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mzg6c3RhdGljIHZvaWQgZHNhX2xvb3BfcGh5ZGV2c191bnJlZ2lzdGVyKHZvaWQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0NS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDY6c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDQ3LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDg6XFx0c3RhdGljIHN0cnVjdCBkc2FfbG9vcF9wZGF0YSBkc2FfbG9vcF9wZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NDktXFx0XFx0LmNkID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDcwLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3MTpcXHRzd2l0Y2hfbWRpb2Rldi1cXHUwMDNlYnVzX21hdGNoID0gZHNhX2xvb3BfYnVzX21hdGNoO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3MjpcXHRzd2l0Y2hfbWRpb2Rldi1cXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGEgPSBcXHUwMDI2ZHNhX2xvb3BfcGRhdGE7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDgxLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ4MjpzdGF0aWMgaW50IF9faW5pdCBkc2FfbG9vcF9pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDgzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0ODc6XFx0cmV0ID0gZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KCk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDg4LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDk0OlxcdHJldCA9IG1kaW9fZHJpdmVyX3JlZ2lzdGVyKFxcdTAwMjZkc2FfbG9vcF9kcnYpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ5NS1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDk2OlxcdFxcdGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3RlcigpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ5Ny1cXHRcXHRtZGlvX2RldmljZV9yZW1vdmUoc3dpdGNoX21kaW9kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTAyLX1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDM6bW9kdWxlX2luaXQoZHNhX2xvb3BfaW5pdCk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTA0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwNTpzdGF0aWMgdm9pZCBfX2V4aXQgZHNhX2xvb3BfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwNi17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTA3OlxcdG1kaW9fZHJpdmVyX3VucmVnaXN0ZXIoXFx1MDAyNmRzYV9sb29wX2Rydik7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTA4OlxcdGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3RlcigpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwOS1cXHRtZGlvX2RldmljZV9yZW1vdmUoc3dpdGNoX21kaW9kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTExLX1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MTI6bW9kdWxlX2V4aXQoZHNhX2xvb3BfZXhpdCk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTEzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0Njo0MC4xMzQ5MDMzNTJaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODg0MDUyNzIyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBUaGlzIFBhdGNoIGlzIE5vdCBGdXp6YWJsZSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBJJ3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIGBkc2FfbG9vcC5jYCBmaWxlLCBhbmQgaXQncyBjbGVhciB0aGF0IGl0J3MgYSBzb2Z0d2FyZS1lbXVsYXRlZCBEU0Egc3dpdGNoLCBidXQgaXQgZG9lc24ndCB0cnkgdG8gZW11bGF0ZSBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgbGlrZSB0aGUgYG12ODhlNnh4eGAuIEl0IGNyZWF0ZXMgaXRzIG93biBNRElPIGRldmljZSBhbmQgcmVnaXN0ZXJzIGl0cyBvd24gZHJpdmVyLCBgZHNhX2xvb3BfZHJ2YCwgdG90YWxseSBpbmRlcGVuZGVudCBvZiB0aGUgTWFydmVsbCBjaGlwLiAgU28sIGJhc2VkIG9uIHRoYXQsIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgaXNuJ3QgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIHRocm91Z2ggYGRzYV9sb29wYC5cblxuSSBhbHNvIGNoZWNrZWQgYGRzYV9sb29wX2JkaW5mby5jYCB3aGljaCByZWdpc3RlcnMgYSBmaXhlZCBQSFksIGJ1dCBhZ2FpbiwgdGhpcyBkb2Vzbid0IG9mZmVyIHVzIGEgcGF0aCB0byBlbXVsYXRlIG9yIHJlYWNoIHRoZSBNYXJ2ZWxsIGNoaXAuXG5cbkZ1cnRoZXJtb3JlLCBJIGhhdmUgdmVyaWZpZWQgdGhlcmUncyBubyBvdGhlciBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgYG12ODhlNnh4eGAgd2l0aGluIHRoaXMgY29udGV4dC5cblxuVGhlcmVmb3JlLCB0aGUgY3JpdGljYWwgY29uY2x1c2lvbiBpcyB0aGF0IHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgaXMgc2ltcGx5IHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLiBUaGlzIG1lYW5zIHdlIGNhbid0IGZ1enogaXQuXG5cbkxldCBtZSBmb3JtdWxhdGUgdGhlIHJlYXNvbmluZyBmb3IgdGhlIHJlY29yZDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBtdjg4ZTZ4eHhgIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IHBoeXNpY2FsIHN3aXRjaGVzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gUUVNVSBvciB0aGUga2VybmVsLCBhbmQgdGhlIGRyaXZlciByZXF1aXJlcyBhIGRldmljZSB0cmVlIG5vZGUgdG8gcHJvYmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC5cIlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSBjaGVja2VkIHRoZSBgc3l6a2FsbGVyYCBjb25maWd1cmF0aW9ucy4gV2hpbGUgaXQncyBjb21tb24gdG8gc2VlIGBDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFg9eWAgZW5hYmxlZCwgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlIG9yIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBqdXN0IHNpdHMgdGhlcmUsIGFuZCBpdHMgcHJvYmUgZnVuY3Rpb24gbmV2ZXIgZ2V0cyBleGVjdXRlZC4gVGhpcyBmdXJ0aGVyIHNvbGlkaWZpZXMgdGhlIGNvbmNsdXNpb24uXG5cbkknbSBjb25maWRlbnQgaW4gbXkgYXNzZXNzbWVudC4gSSdtIGdvaW5nIHRvIHNldCB0aGUgcmVzdWx0cyB0byBgV29ydGhGdXp6aW5nPWZhbHNlYCB3aXRoIHRoZSByZWFzb25pbmcgSSd2ZSBzdGF0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxNzU0LCJPdXRwdXRUb2tlbnMiOjEwOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0Njo0OC45NzU0MzQwMjJaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNDc0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IHBoeXNpY2FsIHN3aXRjaGVzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gUUVNVSBvciB0aGUga2VybmVsLCBhbmQgdGhlIGRyaXZlciByZXF1aXJlcyBhIGRldmljZSB0cmVlIG5vZGUgdG8gcHJvYmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgc3dpdGNoZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBRRU1VIG9yIHRoZSBrZXJuZWwsIGFuZCB0aGUgZHJpdmVyIHJlcXVpcmVzIGEgZGV2aWNlIHRyZWUgbm9kZSB0byBwcm9iZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowxd8vj[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-15 07:33:16 +0000 UTC FinishedAt: 2026-07-15 07:46:51 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ0PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgc3dpdGNoZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBRRU1VIG9yIHRoZSBrZXJuZWwsIGFuZCB0aGUgZHJpdmVyIHJlcXVpcmVzIGEgZGV2aWNlIHRyZWUgbm9kZSB0byBwcm9iZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGUxZGJlYmQ2NDU3OWJjMDE1NzA0YjNiZTBlODY0ZDVjMmQxYjUyNTNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCAxNSAwNzo0NDo0NSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5pbmRleCA4MGI4NzdjNzQ1MTNkNi4uNmZhYWU3NGRlMDRhOWIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcbkBAIC0yNTIzLDcgJiM0MzsyNTIzLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9hZGRfYnJvYWRjYXN0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4gXHRyZXR1cm4gbXY4OGU2eHh4X3BvcnRfZGJfbG9hZF9wdXJnZShjaGlwLCBwb3J0LCBicm9hZGNhc3QsIHZpZCwgc3RhdGUpO1xuIH1cbiBcbi1zdGF0aWMgaW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKVxuJiM0MztpbnQgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiB2aWQpXG4ge1xuIFx0aW50IHBvcnQ7XG4gXHRpbnQgZXJyO1xuQEAgLTU3NDcsNiAmIzQzOzU3NDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MDk3LFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjA4NVwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDEwLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU3OTIsNiAmIzQzOzU3OTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MDk3LFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjA5Ny84OEU2MDk3RlwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuQEAgLTU4MTcsNiAmIzQzOzU4MTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MTY1LFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjEyM1wmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTAyNCxcbiBcdFx0Lm51bV9wb3J0cyA9IDMsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNTg2Myw2ICYjNDM7NTg2Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNDEsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MTQxXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDI1NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDIwNDgsXG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU4ODksNiAmIzQzOzU4OTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MTY1LFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjE2MVwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTAyNCxcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNTkxNSw2ICYjNDM7NTkyMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MTY1XCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcbkBAIC01OTQwLDYgJiM0Mzs1OTQ2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxNzFcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU5NjUsNiAmIzQzOzU5NzIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjE3MlwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNTk5MSw2ICYjNDM7NTk5OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MTc1XCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC02MDE2LDYgJiM0Mzs2MDI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxNzZcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTYwNjQsNiAmIzQzOzYwNzQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjE5MFwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTYzODQsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuQEAgLTYwODksNiAmIzQzOzYxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjE5MFhcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02MTE0LDYgJiM0Mzs2MTI2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxOTFcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02MTM5LDYgJiM0Mzs2MTUyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxOTFYXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcbiBcdFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMSxcbkBAIC02MTY0LDYgJiM0Mzs2MTc4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYxOTNYXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG5AQCAtNjIxOCw2ICYjNDM7NjIzMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MjQwXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC02MjY3LDYgJiM0Mzs2MjgzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYyOTBcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbkBAIC02Mjk0LDYgJiM0Mzs2MzExLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjMyMCxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYzMjBcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuQEAgLTYzMjIsNiAmIzQzOzYzNDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjMyMVwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXG5AQCAtNjM1MCw2ICYjNDM7NjM2OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNDEsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MzQxXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDI1NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDIwNDgsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuQEAgLTYzNzcsNiAmIzQzOzYzOTcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUxLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjM1MFwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNjQwMiw2ICYjNDM7NjQyMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXG4gXHRcdC5uYW1lID0gXCYjMzQ7TWFydmVsbCA4OEU2MzUxXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC02NDI3LDYgJiM0Mzs2NDQ5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYzNTJcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTY0NTMsNiAmIzQzOzY0NzYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjM2MVwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTYzODQsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcbiBcdFx0LyogUG9ydHMgMSwgMiBhbmQgOCBhcmUgbm90IHJvdXRlZCAqL1xuQEAgLTY0ODAsNiAmIzQzOzY1MDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjM5MFwmIzM0OyxcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuJiM0MztcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTYzODQsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuQEAgLTY1MDgsNiAmIzQzOzY1MzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwmIzM0O01hcnZlbGwgODhFNjM5MFhcJiMzNDssXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbiYjNDM7XHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02NTM1LDYgJiM0Mzs2NTYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcJiMzNDtNYXJ2ZWxsIDg4RTYzOTNYXCYjMzQ7LFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4mIzQzO1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuaW5kZXggZTk2NmU3YzRjYzVkZWEuLmFiYmI0NDZiNzM0NTZlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXG5AQCAtMTc2LDYgJiM0MzsxNzYsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0LyogU3VwcG9ydHMgUFRQICovXG4gXHRib29sIHB0cF9zdXBwb3J0O1xuIFxuJiM0MztcdC8qIEhhcyBhIGRlZGljYXRlZCBBVFUgRklEIHJlZ2lzdGVyLiAqL1xuJiM0MztcdGJvb2wgYXR1X2ZpZF9yZWc7XG4mIzQzO1xuIFx0LyogSW50ZXJuYWwgUEhZIHN0YXJ0IGluZGV4LiAwIG1lYW5zIHRoYXQgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXRcbiBcdCAqIHBvcnQgMCwgMSBtZWFucyBpbnRlcm5hbCBQSFlzIHJhbmdlIHN0YXJ0cyBhdCBwb3J0IDEsIGV0Y1xuIFx0ICovXG5AQCAtODkwLDQgJiM0Mzs4OTMsNiBAQCBpbnQgbXY4OGU2eHh4X3Z0dV93YWxrKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbiBcdFx0XHRcdCB2b2lkICpwcml2KSxcbiBcdFx0ICAgICAgIHZvaWQgKnByaXYpO1xuIFxuJiM0MztpbnQgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiB2aWQpO1xuJiM0MztcbiAjZW5kaWYgLyogX01WODhFNlhYWF9DSElQX0ggKi9cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jXG5pbmRleCA2ZjAzNDg0MTg4M2M2Zi4uNTE2ODMzNWY1MjI4OWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9kZXZsaW5rLmNcbkBAIC02MSw2ICYjNDM7NjEsMTIgQEAgaW50IG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtX3NldChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHUzMiBpZCxcbiBcdHN3aXRjaCAoaWQpIHtcbiBcdGNhc2UgTVY4OEU2WFhYX0RFVkxJTktfUEFSQU1fSURfQVRVX0hBU0g6XG4gXHRcdGVyciA9IG12ODhlNnh4eF9hdHVfc2V0X2hhc2goY2hpcCwgY3R4LVx1MDAzZXZhbC52dTgpO1xuJiM0MztcdFx0aWYgKGVycilcbiYjNDM7XHRcdFx0YnJlYWs7XG4mIzQzO1x0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfYXR1X2ZsdXNoKGNoaXAsIDAsIHRydWUpO1xuJiM0MztcdFx0aWYgKGVycilcbiYjNDM7XHRcdFx0YnJlYWs7XG4mIzQzO1x0XHRlcnIgPSBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwKGNoaXAsIDApO1xuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4gXHRcdGVyciA9IC1FT1BOT1RTVVBQO1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuY1xuaW5kZXggYzQ3ZjA2OGY1NmIzMmEuLjZiZWU5NDNjODM1NzVkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmNcbkBAIC0xMzUsNyAmIzQzOzEzNSw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2F0dV9vcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiBmaWQsIHUxNiBvcClcbiBcdGludCBlcnI7XG4gXG4gXHQvKiBGSUQgYml0cyBhcmUgZGlzcGF0Y2hlZCBhbGwgYXJvdW5kIGdyYWR1YWxseSBhcyBtb3JlIGFyZSBzdXBwb3J0ZWQgKi9cbi1cdGlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSBcdTAwM2UgMjU2KSB7XG4mIzQzO1x0aWYgKGNoaXAtXHUwMDNlaW5mby1cdTAwM2VhdHVfZmlkX3JlZykge1xuIFx0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF93cml0ZShjaGlwLCBmaWQpO1xuIFx0XHRpZiAoZXJyKVxuIFx0XHRcdHJldHVybiBlcnI7XG5AQCAtMTc5LDcgJiM0MzsxNzksNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfZmlkX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgKmZpZClcbiBcdHUxNiB2YWwgPSAwLCB1cHBlciA9IDAsIG9wID0gMDtcbiBcdGludCBlcnIgPSAtRU9QTk9UU1VQUDtcbiBcbi1cdGlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSBcdTAwM2UgMjU2KSB7XG4mIzQzO1x0aWYgKGNoaXAtXHUwMDNlaW5mby1cdTAwM2VhdHVfZmlkX3JlZykge1xuIFx0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTYzNTJfRzFfQVRVX0ZJRCwgXHUwMDI2dmFsKTtcbiBcdFx0dmFsIFx1MDAyNj0gMHhmZmY7XG4gXHRcdGlmIChlcnIpXG5AQCAtMjM5LDcgJiM0MzsyMzksNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4gXHRcdGlmIChlbnRyeS1cdTAwM2V0cnVuaylcbiBcdFx0XHRkYXRhIHw9IE1WODhFNlhYWF9HMV9BVFVfREFUQV9UUlVOSztcbiBcbi1cdFx0ZGF0YSB8PSAoZW50cnktXHUwMDNlcG9ydHZlYyBcdTAwMjYgbXY4OGU2eHh4X3BvcnRfbWFzayhjaGlwKSkgXHUwMDNjXHUwMDNjIDQ7XG4mIzQzO1x0XHRkYXRhIHw9IGVudHJ5LVx1MDAzZXBvcnR2ZWMgXHUwMDNjXHUwMDNjIDQ7XG4gXHR9XG4gXG4gXHRyZXR1cm4gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9BVFVfREFUQSwgZGF0YSk7XG5AQCAtMzI2LDYgJiM0MzszMjYsMTEgQEAgaW50IG12ODhlNnh4eF9nMV9hdHVfbG9hZHB1cmdlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IGZpZCxcbiBcdGlmIChlcnIpXG4gXHRcdHJldHVybiBlcnI7XG4gXG4mIzQzO1x0LyogTWFzayBwb3J0dmVjIHRvIGEgY2hpcCYjMzk7cyByZWFsIHBvcnRzIHNvIHRoZXkgY2Fubm90IHNwaWxsIGludG9cbiYjNDM7XHQgKiBhZGphY2VudCBBVFUgRGF0YSByZWdpc3RlciBmaWVsZHMuXG4mIzQzO1x0ICovXG4mIzQzO1x0ZW50cnktXHUwMDNlcG9ydHZlYyBcdTAwMjY9IG12ODhlNnh4eF9wb3J0X21hc2soY2hpcCk7XG4mIzQzO1xuIFx0ZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9kYXRhX3dyaXRlKGNoaXAsIGVudHJ5KTtcbiBcdGlmIChlcnIpXG4gXHRcdHJldHVybiBlcnI7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDQ8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBwaHlzaWNhbCBzd2l0Y2hlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIFFFTVUgb3IgdGhlIGtlcm5lbCwgYW5kIHRoZSBkcml2ZXIgcmVxdWlyZXMgYSBkZXZpY2UgdHJlZSBub2RlIHRvIHByb2JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBlMWRiZWJkNjQ1NzliYzAxNTcwNGIzYmUwZTg2NGQ1YzJkMWI1MjUzCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgMTUgMDc6NDQ6NDUgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCmluZGV4IDgwYjg3N2M3NDUxM2Q2Li42ZmFhZTc0ZGUwNGE5YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKQEAgLTI1MjMsNyAmIzQzOzI1MjMsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2FkZF9icm9hZGNhc3Qoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKIAlyZXR1cm4gbXY4OGU2eHh4X3BvcnRfZGJfbG9hZF9wdXJnZShjaGlwLCBwb3J0LCBicm9hZGNhc3QsIHZpZCwgc3RhdGUpOwogfQogCi1zdGF0aWMgaW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKQomIzQzO2ludCBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IHZpZCkKIHsKIAlpbnQgcG9ydDsKIAlpbnQgZXJyOwpAQCAtNTc0Nyw2ICYjNDM7NTc0Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYwOTcsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYwODUmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDEwLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNTc5Miw2ICYjNDM7NTc5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYwOTcsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYwOTcvODhFNjA5N0YmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDExLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA4LApAQCAtNTgxNyw2ICYjNDM7NTgxOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxMjMmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTAyNCwKIAkJLm51bV9wb3J0cyA9IDMsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC01ODYzLDYgJiM0Mzs1ODY2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM0MSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE0MSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDI1NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDIwNDgsCiAJCS5udW1fcG9ydHMgPSA2LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNTg4OSw2ICYjNDM7NTg5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxNjEmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTAyNCwKIAkJLm51bV9wb3J0cyA9IDYsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC01OTE1LDYgJiM0Mzs1OTIwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjE2NSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE2NSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNiwKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gMCwKQEAgLTU5NDAsNiAmIzQzOzU5NDYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUxLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MTcxJiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNTk2NSw2ICYjNDM7NTk3Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxNzImIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC01OTkxLDYgJiM0Mzs1OTk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE3NSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKQEAgLTYwMTYsNiAmIzQzOzYwMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MTc2JiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNjA2NCw2ICYjNDM7NjA3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxOTAmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCkBAIC02MDg5LDYgJiM0Mzs2MTAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE5MFgmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCkBAIC02MTE0LDYgJiM0Mzs2MTI2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjE5MSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX21hY3MgPSAxNjM4NCwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKQEAgLTYxMzksNiAmIzQzOzYxNTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MTkxWCYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX3BvcnRzID0gMTEsCS8qIDEwICYjNDM7IFo4MCAqLwogCQkubnVtX2ludGVybmFsX3BoeXMgPSA4LAogCQkuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLApAQCAtNjE2NCw2ICYjNDM7NjE3OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTMsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYxOTNYJiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDgsCiAJCS5udW1fdGNhbV9lbnRyaWVzID0gMjU2LApAQCAtNjIxOCw2ICYjNDM7NjIzMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYyNDAmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC02MjY3LDYgJiM0Mzs2MjgzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjI5MCYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX3BvcnRzID0gMTEsCS8qIDEwICYjNDM7IFo4MCAqLwogCQkubnVtX2ludGVybmFsX3BoeXMgPSA5LAogCQkubnVtX2dwaW8gPSAxNiwKQEAgLTYyOTQsNiAmIzQzOzYzMTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MzIwJiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSAyLApAQCAtNjMyMiw2ICYjNDM7NjM0MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzMjAsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYzMjEmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDIsCkBAIC02MzUwLDYgJiM0Mzs2MzY5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM0MSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjM0MSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDI1NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDIwNDgsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiAJCS5udW1fcG9ydHMgPSA2LApAQCAtNjM3Nyw2ICYjNDM7NjM5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYzNTAmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCkBAIC02NDAyLDYgJiM0Mzs2NDIzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjM1MSYjMzQ7LAogCQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiYjNDM7CQkuYXR1X2ZpZF9yZWcgPSB0cnVlLAogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKQEAgLTY0MjcsNiAmIzQzOzY0NDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLAogCQkubmFtZSA9ICYjMzQ7TWFydmVsbCA4OEU2MzUyJiMzNDssCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKJiM0MzsJCS5hdHVfZmlkX3JlZyA9IHRydWUsCiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LApAQCAtNjQ1Myw2ICYjNDM7NjQ3Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTMsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYzNjEmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwKIAkJLyogUG9ydHMgMSwgMiBhbmQgOCBhcmUgbm90IHJvdXRlZCAqLwpAQCAtNjQ4MCw2ICYjNDM7NjUwNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsCiAJCS5uYW1lID0gJiMzNDtNYXJ2ZWxsIDg4RTYzOTAmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCkBAIC02NTA4LDYgJiM0Mzs2NTMzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCwKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjM5MFgmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9tYWNzID0gMTYzODQsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCkBAIC02NTM1LDYgJiM0Mzs2NTYxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MywKIAkJLm5hbWUgPSAmIzM0O01hcnZlbGwgODhFNjM5M1gmIzM0OywKIAkJLm51bV9kYXRhYmFzZXMgPSA0MDk2LAomIzQzOwkJLmF0dV9maWRfcmVnID0gdHJ1ZSwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOCwKIAkJLm51bV90Y2FtX2VudHJpZXMgPSAyNTYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oCmluZGV4IGU5NjZlN2M0Y2M1ZGVhLi5hYmJiNDQ2YjczNDU2ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKQEAgLTE3Niw2ICYjNDM7MTc2LDkgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHsKIAkvKiBTdXBwb3J0cyBQVFAgKi8KIAlib29sIHB0cF9zdXBwb3J0OwogCiYjNDM7CS8qIEhhcyBhIGRlZGljYXRlZCBBVFUgRklEIHJlZ2lzdGVyLiAqLwomIzQzOwlib29sIGF0dV9maWRfcmVnOwomIzQzOwogCS8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0CiAJICogcG9ydCAwLCAxIG1lYW5zIGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0IHBvcnQgMSwgZXRjCiAJICovCkBAIC04OTAsNCAmIzQzOzg5Myw2IEBAIGludCBtdjg4ZTZ4eHhfdnR1X3dhbGsoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLAogCQkJCSB2b2lkICpwcml2KSwKIAkJICAgICAgIHZvaWQgKnByaXYpOwogCiYjNDM7aW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKTsKJiM0MzsKICNlbmRpZiAvKiBfTVY4OEU2WFhYX0NISVBfSCAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9kZXZsaW5rLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuYwppbmRleCA2ZjAzNDg0MTg4M2M2Zi4uNTE2ODMzNWY1MjI4OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jCkBAIC02MSw2ICYjNDM7NjEsMTIgQEAgaW50IG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtX3NldChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIHUzMiBpZCwKIAlzd2l0Y2ggKGlkKSB7CiAJY2FzZSBNVjg4RTZYWFhfREVWTElOS19QQVJBTV9JRF9BVFVfSEFTSDoKIAkJZXJyID0gbXY4OGU2eHh4X2F0dV9zZXRfaGFzaChjaGlwLCBjdHgtJmd0O3ZhbC52dTgpOwomIzQzOwkJaWYgKGVycikKJiM0MzsJCQlicmVhazsKJiM0MzsJCWVyciA9IG12ODhlNnh4eF9nMV9hdHVfZmx1c2goY2hpcCwgMCwgdHJ1ZSk7CiYjNDM7CQlpZiAoZXJyKQomIzQzOwkJCWJyZWFrOwomIzQzOwkJZXJyID0gbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChjaGlwLCAwKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJZXJyID0gLUVPUE5PVFNVUFA7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmMKaW5kZXggYzQ3ZjA2OGY1NmIzMmEuLjZiZWU5NDNjODM1NzVkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jCkBAIC0xMzUsNyAmIzQzOzEzNSw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2F0dV9vcChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiBmaWQsIHUxNiBvcCkKIAlpbnQgZXJyOwogCiAJLyogRklEIGJpdHMgYXJlIGRpc3BhdGNoZWQgYWxsIGFyb3VuZCBncmFkdWFsbHkgYXMgbW9yZSBhcmUgc3VwcG9ydGVkICovCi0JaWYgKG12ODhlNnh4eF9udW1fZGF0YWJhc2VzKGNoaXApICZndDsgMjU2KSB7CiYjNDM7CWlmIChjaGlwLSZndDtpbmZvLSZndDthdHVfZmlkX3JlZykgewogCQllcnIgPSBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF93cml0ZShjaGlwLCBmaWQpOwogCQlpZiAoZXJyKQogCQkJcmV0dXJuIGVycjsKQEAgLTE3OSw3ICYjNDM7MTc5LDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2ICpmaWQpCiAJdTE2IHZhbCA9IDAsIHVwcGVyID0gMCwgb3AgPSAwOwogCWludCBlcnIgPSAtRU9QTk9UU1VQUDsKIAotCWlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSAmZ3Q7IDI1NikgewomIzQzOwlpZiAoY2hpcC0mZ3Q7aW5mby0mZ3Q7YXR1X2ZpZF9yZWcpIHsKIAkJZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2MzUyX0cxX0FUVV9GSUQsICZhbXA7dmFsKTsKIAkJdmFsICZhbXA7PSAweGZmZjsKIAkJaWYgKGVycikKQEAgLTIzOSw3ICYjNDM7MjM5LDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfYXR1X2RhdGFfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLAogCQlpZiAoZW50cnktJmd0O3RydW5rKQogCQkJZGF0YSB8PSBNVjg4RTZYWFhfRzFfQVRVX0RBVEFfVFJVTks7CiAKLQkJZGF0YSB8PSAoZW50cnktJmd0O3BvcnR2ZWMgJmFtcDsgbXY4OGU2eHh4X3BvcnRfbWFzayhjaGlwKSkgJmx0OyZsdDsgNDsKJiM0MzsJCWRhdGEgfD0gZW50cnktJmd0O3BvcnR2ZWMgJmx0OyZsdDsgNDsKIAl9CiAKIAlyZXR1cm4gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9BVFVfREFUQSwgZGF0YSk7CkBAIC0zMjYsNiAmIzQzOzMyNiwxMSBAQCBpbnQgbXY4OGU2eHh4X2cxX2F0dV9sb2FkcHVyZ2Uoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgZmlkLAogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7CiAKJiM0MzsJLyogTWFzayBwb3J0dmVjIHRvIGEgY2hpcCYjMzk7cyByZWFsIHBvcnRzIHNvIHRoZXkgY2Fubm90IHNwaWxsIGludG8KJiM0MzsJICogYWRqYWNlbnQgQVRVIERhdGEgcmVnaXN0ZXIgZmllbGRzLgomIzQzOwkgKi8KJiM0MzsJZW50cnktJmd0O3BvcnR2ZWMgJmFtcDs9IG12ODhlNnh4eF9wb3J0X21hc2soY2hpcCk7CiYjNDM7CiAJZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9kYXRhX3dyaXRlKGNoaXAsIGVudHJ5KTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MzA1CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNjUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIFBhdGNoIHRvIHRoZSBgbXY4OGU2eHh4YCBEU0EgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciB0aGUgYG12ODhlNnh4eGAgRFNBIGRyaXZlci4gRmlyc3QgZ2xhbmNlLCBpdCBzZWVtcyB0byBiZSBhIGZ1bmN0aW9uYWwgY2hhbmdlLCB0d2Vha2luZyB0aGUgQVRVIChBZGRyZXNzIFRyYW5zbGF0aW9uIFVuaXQpIGhhc2ggc2V0dGluZyBsb2dpYyB0aHJvdWdoIGRldmxpbmsgYW5kIGFsc28gZml4aW5nIHNvbWUgaXNzdWVzIHJlbGF0ZWQgdG8gdGhlIEFUVSBGSUQgcmVnaXN0ZXIgYWNjZXNzIGFuZCBwb3J0dmVjIG1hc2tpbmcuIFRoYXQmIzM5O3MgZ29vZCwgYnV0IG15IGltbWVkaWF0ZSBxdWVzdGlvbiBpcyBhbHdheXMgYWJvdXQgcmVhY2hhYmlsaXR5LCBlc3BlY2lhbGx5IGZvciBhIGRyaXZlciBsaWtlIHRoaXMuCgpTcGVjaWZpY2FsbHksIHdoYXQmIzM5O3MgYmVlbiBjaGFuZ2VkPyBMZXQgbWUgYnJlYWsgaXQgZG93bjogVGhlIHBhdGNoIGV4cG9zZXMgYG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXBgIGJ5IHJlbW92aW5nIGBzdGF0aWNgIGFuZCBhZGRpbmcgaXQgdG8gYGNoaXAuaGAuIEl0IGFsc28gaW50cm9kdWNlcyBhIGJvb2xlYW4gZmxhZyBgYXR1X2ZpZF9yZWdgIHRvIGBzdHJ1Y3QgbXY4OGU2eHh4X2luZm9gIGFuZCBzZXRzIGl0IGZvciBhIGJ1bmNoIG9mIE1hcnZlbGwgc3dpdGNoIGNoaXBzIGluIGBtdjg4ZTZ4eHhfdGFibGVgLiBUaGVuLCB3aGVuIHRoZSBgTVY4OEU2WFhYX0RFVkxJTktfUEFSQU1fSURfQVRVX0hBU0hgIHBhcmFtZXRlciBpcyBzZXQsIHRoZSBwYXRjaCBub3cgZmx1c2hlcyB0aGUgQVRVIHVzaW5nIGBtdjg4ZTZ4eHhfZzFfYXR1X2ZsdXNoYCBhbmQgY2FsbHMgYG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoY2hpcCwgMClgLiBGdXJ0aGVyLCBpbiB0aGUgYG12ODhlNnh4eF9nMV9hdHVfb3BgIGFuZCBgbXY4OGU2eHh4X2cxX2F0dV9maWRfcmVhZGAgZnVuY3Rpb25zLCBpdCByZXBsYWNlcyB0aGF0IGNoZWNrIHVzaW5nIGBtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSAmZ3Q7IDI1NmAgd2l0aCBgY2hpcC0mZ3Q7aW5mby0mZ3Q7YXR1X2ZpZF9yZWdgLiBJdCBhbHNvIGNoYW5nZXMgcG9ydHZlYyBtYXNraW5nIGluIGBtdjg4ZTZ4eHhfZzFfYXR1X2RhdGFfd3JpdGVgIGFuZCBhZGRzIGEgcG9ydHZlYyBtYXNrIGluIGBtdjg4ZTZ4eHhfZzFfYXR1X2xvYWRwdXJnZWAuCgpBbHJpZ2h0LCBzaW5jZSB0aGlzIGRyaXZlciBpcyBmb3IgdGhlIE1hcnZlbGwgODhFNnh4eCBzd2l0Y2gsIGl0JiMzOTtzIGhhcmR3YXJlLXNwZWNpZmljLiBUaGlzIGlzIGEgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBkcml2ZXIsIHNvIGl0IHNob3VsZCBiZSBwcm9iZWQgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUgb3IgdGhlIE1ESU8gYnVzLiBNeSBjb25jZXJuIG5vdyBpcyBhYm91dCBmdXp6aW5nLiBDYW4gSSBnZXQgYXQgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBEU0EgZHJpdmVycywgZXNwZWNpYWxseSB0aG9zZSBpbnRlcmFjdGluZyB3aXRoIEkyQy9NRElPLWNvbm5lY3RlZCBoYXJkd2FyZSwgYXJlIHR5cGljYWxseSBub3QgcmVhY2hhYmxlIHVubGVzcyB0aGVyZSYjMzk7cyBhbiBlbXVsYXRvciBvciBhIHZpcnR1YWwgZHJpdmVyIGluc3RhbnRpYXRpb24uIFRoZSBxdWVzdGlvbiBiZWNvbWVzLCBpcyB0aGVyZSBhbnkgZW11bGF0aW9uIGZvciB0aGUgTWFydmVsbCA4OEU2eHh4LCBvciBzb21lIGtpbmQgb2Ygc29mdHdhcmUgaW5zdGFudGlhdGlvbiBtZWNoYW5pc20/CgpTeXprYWxsZXIgKmNhbiogc29tZXRpbWVzIGluamVjdCBNRElPIGRldmljZXMgb3IgdXNlIGR1bW15IGRldmljZXMsIGJ1dCBnZW5lcmFsbHksIHRoZXNlIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlcnMsIHdpdGhvdXQgcHJvcGVyIGVtdWxhdGlvbiBhcmUgaW5hY2Nlc3NpYmxlLiBIbW0uLi4gSSByZWNhbGwgc3l6a2FsbGVyICpkb2VzbiYjMzk7dCogaGF2ZSBhIGdlbmVyaWMgTURJTyBmdXp6ZXIuIFNvLCB0aGUgY2hhbmNlcyBvZiBpbW1lZGlhdGUgcmVhY2hhYmlsaXR5IGFyZSBzbGltLiBCdXQsIEkgbmVlZCB0byBjaGVjayBpZiBgbXY4OGU2eHh4YCBjYW4gYmUgcHJvYmVkIGF0IGFsbC4gSSBuZWVkIHRvIGdldCBzb21lIG1vcmUgaW5mbyBvbiBob3cgdGhpcyB0aGluZyBpcyBhY3R1YWxseSBpbnN0YW50aWF0ZWQuIEkgc2hvdWxkIHNlYXJjaCBmb3IgYG12ODhlNnh4eGAgd2l0aGluIHRoZSBrZXJuZWwgdG8gdW5kZXJzdGFuZCBpdHMgcHJvYmluZyBtZWNoYW5pc20gYW5kIGRlcGVuZGVuY3kgY2hhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDQ8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXY4OGU2eHh4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAxMDEyMyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0zLS0tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbDo0OiRpZDogaHR0cDovL2RldmljZXRyZWUub3JnL3NjaGVtYXMvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw9MTk9cHJvcGVydGllczpcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTk0LSAgICAgIGNvbXBhdGlibGU6XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjk1OiAgICAgICAgY29uc3Q6IG1hcnZlbGwsbXY4OGU2eHh4LW1kaW8tZXh0ZXJuYWxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtOTYtXG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbD0xMDk9ZXhhbXBsZXM6XG4tLVxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC0yNDAtICAgICAgICAgICAgbWRpby1leHRlcm5hbCB7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjI0MTogICAgICAgICAgICAgICAgY29tcGF0aWJsZSA9IFwmIzM0O21hcnZlbGwsbXY4OGU2eHh4LW1kaW8tZXh0ZXJuYWxcJiMzNDs7XG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sLTI0Mi0gICAgICAgICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sPTEyPWRlc2NyaXB0aW9uOiB8JiM0Mztcbi0tXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwsbXZ1c2IueWFtbC0xOC0gIGhhdmluZyBhIGRldmljZSB0cmVlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXZpY2UuIEJ1dCBpbiBvcmRlciB0byB1c2UgaXQgd2l0aFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWw6MTk6ICB0aGUgbXY4OGU2eHh4IGRyaXZlciwgeW91IG5lZWQgYSBkZXZpY2UgdHJlZSBub2RlIGluIHdoaWNoIHRvIHBsYWNlIHRoZSBzd2l0Y2hcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sLTIwLSAgZGVmaW5pdGlvbi5cbi0tXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3Q9Nzc9cGFyYW1ldGVycywgaW5mbyB2ZXJzaW9ucywgYW5kIG90aGVyIGZlYXR1cmVzIGl0IHN1cHBvcnRzLlxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdC05NS0gICBtbHhzd1xuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvaW5kZXgucnN0Ojk2OiAgIG12ODhlNnh4eFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvaW5kZXgucnN0LTk3LSAgIG5ldGRldnNpbVxuLS1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtMy09PT09PT09PT09PT09PT09PT09PT09PT09XG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0OjQ6bXY4OGU2eHh4IGRldmxpbmsgc3VwcG9ydFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC01LT09PT09PT09PT09PT09PT09PT09PT09PT1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtNi1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3Q6NzpUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgZGV2bGluayBmZWF0dXJlcyBpbXBsZW1lbnRlZCBieSB0aGUgYGBtdjg4ZTZ4eHhgYFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC04LWRldmljZSBkcml2ZXIuXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdD0xMD1QYXJhbWV0ZXJzXG4tLVxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC0xMi1cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3Q6MTM6VGhlIGBgbXY4OGU2eHh4YGAgZHJpdmVyIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItc3BlY2lmaWMgcGFyYW1ldGVycy5cbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtMTQtXG4tLVxuTUFJTlRBSU5FUlM9MTU1OTU9RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2MDYwLnlhbWxcbk1BSU5UQUlORVJTOjE1NTk2OkY6XHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sXG5NQUlOVEFJTkVSUzoxNTU5NzpGOlx0RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdFxuTUFJTlRBSU5FUlM6MTU1OTg6RjpcdGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvXG5NQUlOVEFJTkVSUzoxNTU5OTpGOlx0aW5jbHVkZS9saW51eC9kc2EvbXY4OGU2eHh4Lmhcbk1BSU5UQUlORVJTOjE1NjAwOkY6XHRpbmNsdWRlL2xpbnV4L3BsYXRmb3JtX2RhdGEvbXY4OGU2eHh4Lmhcbk1BSU5UQUlORVJTLTE1NjAxLVxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4MS1uZXRnZWFyLWdzMTEwZW14LmR0cz0xMjc9XHRcdG1kaW8tZXh0ZXJuYWwge1xuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzgxLW5ldGdlYXItZ3MxMTBlbXguZHRzOjEyODpcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTZ4eHgtbWRpby1leHRlcm5hbFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL21hcnZlbGwvYXJtYWRhLTM4MS1uZXRnZWFyLWdzMTEwZW14LmR0cy0xMjktXHRcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktc3NtYi1kdHUuZHRzPTE3MD1cdFx0XHRtZGlvLWV4dGVybmFsIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktc3NtYi1kdHUuZHRzOjE3MTpcdFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDttYXJ2ZWxsLG12ODhlNnh4eC1tZGlvLWV4dGVybmFsXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL3ZmL3ZmNjEwLXppaS1zc21iLWR0dS5kdHMtMTcyLVx0XHRcdFx0I2FkZHJlc3MtY2VsbHMgPSBcdTAwM2MxXHUwMDNlO1xuLS1cbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cz0yOTI9XHRcdFx0c3dpdGNoMHBoeTQ6IGV0aGVybmV0LXBoeUA0IHtcbi0tXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNmLXByby5kdHMtMzAyLVx0XHQgKiBtZGlvLWV4dGVybmFsIHtcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0czozMDM6XHRcdCAqXHRjb21wYXRpYmxlID0gXCYjMzQ7bWFydmVsbCxtdjg4ZTZ4eHgtbWRpby1leHRlcm5hbFwmIzM0OztcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cy0zMDQtXHRcdCAqXHQjYWRkcmVzcy1jZWxscyA9IFx1MDAzYzFcdTAwM2U7XG4tLVxuZHJpdmVycy9uZXQvZHNhL0tjb25maWc9NzM9c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvZHNhL0tjb25maWctNzQtXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZzo3NTpzb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZy03Ni1cbi0tXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGU9MjE9b2JqLXlcdFx0XHRcdCYjNDM7PSBtaWNyb2NoaXAvXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGU6MjI6b2JqLXlcdFx0XHRcdCYjNDM7PSBtdjg4ZTZ4eHgvXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGUtMjMtb2JqLXlcdFx0XHRcdCYjNDM7PSBteGw4NjJ4eC9cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmgtNS0gKlxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5oOjY6ICogQmFzZWQgb24gbXY4OGU2eHh4LmhcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuaC03LSAqIENvcHlyaWdodCAoYykgMjAwOCBNYXJ2ZWxsIFNlbWljb25kdWN0b3Jcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWCkgJiM0Mzs9IG12ODhlNnh4eC5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjM6bXY4OGU2eHh4LW9ianMgOj0gY2hpcC5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjQ6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IGRldmxpbmsub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo1Om12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwxLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6Njptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gZ2xvYmFsMV9hdHUub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo3Om12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwxX3Z0dS5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjg6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IGdsb2JhbDIub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo5Om12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwyX2F2Yi5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEwOm12ODhlNnh4eC1vYmpzICYjNDM7PSBnbG9iYWwyX3NjcmF0Y2gub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxMTptdjg4ZTZ4eHgtJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFhfUFRQKSAmIzQzOz0gaHd0c3RhbXAub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxMjptdjg4ZTZ4eHgtJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFhfTEVEUykgJiM0Mzs9IGxlZHMub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxMzptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcGNzLTYxODUub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNDptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcGNzLTYzNTIub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNTptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcGNzLTYzOXgub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNjptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcGh5Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTc6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHBvcnQub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxODptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gcG9ydF9oaWRkZW4ub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxOTptdjg4ZTZ4eHgtJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFhfUFRQKSAmIzQzOz0gcHRwLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjA6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHNlcmRlcy5vXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIxOm12ODhlNnh4eC1vYmpzICYjNDM7PSBzbWkub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMjptdjg4ZTZ4eHgtb2JqcyAmIzQzOz0gc3dpdGNoZGV2Lm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjM6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHRyYWNlLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjQ6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHRjZmxvd2VyLm9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjU6bXY4OGU2eHh4LW9ianMgJiM0Mzs9IHRjYW0ub1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZS0yNi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNC0jaW5jbHVkZSBcdTAwM2NsaW51eC9kZWxheS5oXHUwMDNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTojaW5jbHVkZSBcdTAwM2NsaW51eC9kc2EvbXY4OGU2eHh4LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2LSNpbmNsdWRlIFx1MDAzY2xpbnV4L2V0aGVyZGV2aWNlLmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOC0jaW5jbHVkZSBcdTAwM2NsaW51eC9vZl9tZGlvLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5OiNpbmNsdWRlIFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RhdGEvbXY4OGU2eHh4LmhcdTAwM2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMwLSNpbmNsdWRlIFx1MDAzY2xpbnV4L3Byb3BlcnR5LmhcdTAwM2Vcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00OC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5OnN0YXRpYyB2b2lkIGFzc2VydF9yZWdfbG9jayhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzppbnQgbXY4OGU2eHh4X3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZywgdTE2ICp2YWwpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01OC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzpcdGVyciA9IG12ODhlNnh4eF9zbWlfcmVhZChjaGlwLCBhZGRyLCByZWcsIHZhbCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzppbnQgbXY4OGU2eHh4X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsIHUxNiB2YWwpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3OTpcdGVyciA9IG12ODhlNnh4eF9zbWlfd3JpdGUoY2hpcCwgYWRkciwgcmVnLCB2YWwpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg4LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODk6aW50IG12ODhlNnh4eF93YWl0X21hc2soc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgaW50IHJlZyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTkwLVx0XHRcdHUxNiBtYXNrLCB1MTYgdmFsKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEwMS1cdGZvciAoaSA9IDA7IHRpbWVfYmVmb3JlKGppZmZpZXMsIHRpbWVvdXQpIHx8IChpIFx1MDAzYyAyKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEwMjpcdFx0ZXJyID0gbXY4OGU2eHh4X3JlYWQoY2hpcCwgYWRkciwgcmVnLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEwMy1cdFx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMTQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMTU6XHRlcnIgPSBtdjg4ZTZ4eHhfcmVhZChjaGlwLCBhZGRyLCByZWcsIFx1MDAyNmRhdGEpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTE2LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMjUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMjY6aW50IG12ODhlNnh4eF93YWl0X2JpdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTI3LVx0XHQgICAgICAgaW50IGJpdCwgaW50IHZhbClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyOC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMjk6XHRyZXR1cm4gbXY4OGU2eHh4X3dhaXRfbWFzayhjaGlwLCBhZGRyLCByZWcsIEJJVChiaXQpLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTMwLVx0XHRcdFx0ICAgdmFsID8gQklUKGJpdCkgOiAweDAwMDApO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzMi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzMzpzdHJ1Y3QgbWlpX2J1cyAqbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM0LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzNTpcdHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMgKm1kaW9fYnVzO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM3LVx0bWRpb19idXMgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwoXHUwMDI2Y2hpcC1cdTAwM2VtZGlvcyxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEzODpcdFx0XHRcdFx0ICAgIHN0cnVjdCBtdjg4ZTZ4eHhfbWRpb19idXMsIGxpc3QpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM5LVx0aWYgKCFtZGlvX2J1cylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNDU6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0Ni17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNDc6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0OC1cdHVuc2lnbmVkIGludCBuID0gZC1cdTAwM2Vod2lycTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNTItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV91bm1hc2soc3RydWN0IGlycV9kYXRhICpkKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTU0LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE1NTpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTU2LVx0dW5zaWduZWQgaW50IG4gPSBkLVx1MDAzZWh3aXJxO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE2MTpzdGF0aWMgaXJxcmV0dXJuX3QgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNjIte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE3MDpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE3MTpcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9TVFMsIFx1MDAyNnJlZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzI6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE3My1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xODYtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxODc6XHRcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE4ODpcdFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFx1MDAyNmN0bDEpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg5LVx0XHRpZiAoZXJyKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTkwLVx0XHRcdGdvdG8gdW5sb2NrO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTkxOlx0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTkyLXVubG9jazpcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MzpcdFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTQtXHRcdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjAyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjAzOnN0YXRpYyBpcnFyZXR1cm5fdCBtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF9mbihpbnQgaXJxLCB2b2lkICpkZXZfaWQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDQte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjA1Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gZGV2X2lkO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjA3Olx0cmV0dXJuIG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX3dvcmsoY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDgtfVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjEwOnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfYnVzX2xvY2soc3RydWN0IGlycV9kYXRhICpkKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjExLXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxMjpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjEzLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjE0Olx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjE1LX1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIxNi1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxNzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19zeW5jX3VubG9jayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTgte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjE5Olx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjAtXHR1MTYgbWFzayA9IEdFTk1BU0soY2hpcC1cdTAwM2VnMV9pcnEubmlycXMsIDApO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIyMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIyNDpcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjI1LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzE6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIHJlZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzNS1vdXQ6XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzY6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzNy19XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzk6c3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfY2hpcCBtdjg4ZTZ4eHhfZzFfaXJxX2NoaXAgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNDA6XHQubmFtZVx0XHRcdD0gXCYjMzQ7bXY4OGU2eHh4LWcxXCYjMzQ7LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQxOlx0LmlycV9tYXNrXHRcdD0gbXY4OGU2eHh4X2cxX2lycV9tYXNrLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQyOlx0LmlycV91bm1hc2tcdFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX3VubWFzayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MzpcdC5pcnFfYnVzX2xvY2tcdFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19sb2NrLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ0Olx0LmlycV9idXNfc3luY191bmxvY2tcdD0gbXY4OGU2eHh4X2cxX2lycV9idXNfc3luY191bmxvY2ssXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDUtfTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI0Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0NzpzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9pcnFfZG9tYWluX21hcChzdHJ1Y3QgaXJxX2RvbWFpbiAqZCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI0OC1cdFx0XHRcdCAgICAgICB1bnNpZ25lZCBpbnQgaXJxLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI1MC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNTE6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkLVx1MDAzZWhvc3RfZGF0YTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI1Mi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjA6c3RhdGljIGNvbnN0IHN0cnVjdCBpcnFfZG9tYWluX29wcyBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9vcHMgPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjE6XHQubWFwXHQ9IG12ODhlNnh4eF9nMV9pcnFfZG9tYWluX21hcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI2Mi1cdC54bGF0ZVx0PSBpcnFfZG9tYWluX3hsYXRlX3R3b2NlbGwsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY1LS8qIFRvIGJlIGNhbGxlZCB3aXRoIHJlZ19sb2NrIGhlbGQgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI2NjpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI2Ny17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjcwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjcxOlx0bXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFx1MDAyNm1hc2spO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjcyLVx0bWFzayBcdTAwMjY9IH5HRU5NQVNLKGNoaXAtXHUwMDNlZzFfaXJxLm5pcnFzLCAwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI3MzpcdG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNzQtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjgyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjgzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfZnJlZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yODQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI5MC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5MTpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5MjpcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTM6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI5NC19XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyOTY6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwX2NvbW1vbihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTcte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMwMy1cdFx0TlVMTCwgY2hpcC1cdTAwM2VnMV9pcnEubmlycXMsIDAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMDQ6XHRcdFx1MDAyNm12ODhlNnh4eF9nMV9pcnFfZG9tYWluX29wcywgY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMDUtXHRpZiAoIWNoaXAtXHUwMDNlZzFfaXJxLmRvbWFpbilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMTE6XHRjaGlwLVx1MDAzZWcxX2lycS5jaGlwID0gbXY4OGU2eHh4X2cxX2lycV9jaGlwO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEyLVx0Y2hpcC1cdTAwM2VnMV9pcnEubWFza2VkID0gfjA7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMTQ6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgXHUwMDI2bWFzayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTUtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMxOS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMyMDpcdGVyciA9IG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjEtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNC1cdC8qIFJlYWRpbmcgdGhlIGludGVycnVwdCBzdGF0dXMgY2xlYXJzIChtb3N0IG9mKSB0aGVtICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMjU6XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzI2LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMzItXHRtYXNrIFx1MDAyNj0gfkdFTk1BU0soY2hpcC1cdTAwM2VnMV9pcnEubmlycXMsIDApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzMzOlx0bXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBtYXNrKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMzNC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNDUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNDY6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM0Ny17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzUxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzUyOlx0ZXJyID0gbXY4OGU2eHh4X2cxX2lycV9zZXR1cF9jb21tb24oY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNTMtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Mi1cdHNucHJpbnRmKGNoaXAtXHUwMDNlaXJxX25hbWUsIHNpemVvZihjaGlwLVx1MDAzZWlycV9uYW1lKSxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM2MzpcdFx0IFwmIzM0O212ODhlNnh4eC0lc1wmIzM0OywgZGV2X25hbWUoY2hpcC1cdTAwM2VkZXYpKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2NC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM2NTpcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzY2LVx0ZXJyID0gcmVxdWVzdF90aHJlYWRlZF9pcnEoY2hpcC1cdTAwM2VpcnEsIE5VTEwsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjc6XHRcdFx0XHQgICBtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF9mbixcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2OC1cdFx0XHRcdCAgIElSUUZfT05FU0hPVCB8IElSUUZfU0hBUkVELFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzY5LVx0XHRcdFx0ICAgY2hpcC1cdTAwM2VpcnFfbmFtZSwgY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzA6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzEtXHRpZiAoZXJyKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzcyOlx0XHRtdjg4ZTZ4eHhfZzFfaXJxX2ZyZWVfY29tbW9uKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzczLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3Ni1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfaXJxX3BvbGwoc3RydWN0IGt0aHJlYWRfd29yayAqd29yaylcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM3OC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNzk6XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBjb250YWluZXJfb2Yod29yayxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MDpcdFx0XHRcdFx0XHQgICBzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODEtXHRcdFx0XHRcdFx0ICAgaXJxX3BvbGxfd29yay53b3JrKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MjpcdG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX3dvcmsoY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zODMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzg3LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzg4OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2lycV9wb2xsX3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4OS17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzkxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkyOlx0ZXJyID0gbXY4OGU2eHh4X2cxX2lycV9zZXR1cF9jb21tb24oY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTMtXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5Ni1cdGt0aHJlYWRfaW5pdF9kZWxheWVkX3dvcmsoXHUwMDI2Y2hpcC1cdTAwM2VpcnFfcG9sbF93b3JrLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzk3Olx0XHRcdFx0ICBtdjg4ZTZ4eHhfaXJxX3BvbGwpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzk4LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQwOC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQwOTpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfaXJxX3BvbGxfZnJlZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTAte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQxMy1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxNDpcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxNTpcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MTY6XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQxNy19XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTgtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0MTk6c3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9jb25maWdfaW50ZXJmYWNlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMC1cdFx0XHRcdFx0ICAgaW50IHBvcnQsIHBoeV9pbnRlcmZhY2VfdCBpbnRlcmZhY2UpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDQwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDQxOnN0YXRpYyBpbnQgbXY4OGU2eHh4X3BvcnRfc2V0dXBfbWFjKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDItXHRcdFx0XHQgICAgaW50IGxpbmssIGludCBzcGVlZCwgaW50IGR1cGxleCwgaW50IHBhdXNlLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ2ODpcdGVyciA9IG12ODhlNnh4eF9wb3J0X2NvbmZpZ19pbnRlcmZhY2UoY2hpcCwgcG9ydCwgbW9kZSk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjktcmVzdG9yZV9saW5rOlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3NS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3NjpzdGF0aWMgaW50IG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ3Ny17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDgzOnN0YXRpYyBpbnQgbXY4OGU2eHh4X3BvcnRfcHB1X3VwZGF0ZXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ4NC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDkxLVx0aWYgKGNoaXAtXHUwMDNlaW5mby1cdTAwM2VmYW1pbHkgPT0gTVY4OEU2WFhYX0ZBTUlMWV82MjUwKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDkyOlx0XHRyZXR1cm4gbXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5My1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5NDpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDk1LVx0aWYgKGVycikge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUwNT1zdGF0aWMgY29uc3QgdTggbXY4OGU2MTg1X3BoeV9pbnRlcmZhY2VfbW9kZXNbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MTQtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MTU6c3RhdGljIHZvaWQgbXY4OGU2MDk1X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNi1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MjEtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MjI6XHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIzLVx0XHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX01JSSwgY29uZmlnLVx1MDAzZXN1cHBvcnRlZF9pbnRlcmZhY2VzKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzMtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MzQ6c3RhdGljIHZvaWQgbXY4OGU2MTg1X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUzNS1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NDctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NDg6c3RhdGljIGNvbnN0IHU4IG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW10gPSB7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NDktXHRbTVY4OEU2WFhYX1BPUlRfU1RTX0NNT0RFX01JSV9QSFldXHQ9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SRVZNSUksXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTYyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTYzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUodTggY21vZGUsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZClcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2NC17XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NjU6XHRpZiAoY21vZGUgXHUwMDNjIEFSUkFZX1NJWkUobXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXMpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTY2Olx0ICAgIG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW2Ntb2RlXSlcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NzpcdFx0X19zZXRfYml0KG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW2Ntb2RlXSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2OC1cdGVsc2UgaWYgKGNtb2RlID09IE1WODhFNlhYWF9QT1JUX1NUU19DTU9ERV9SR01JSSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01NzI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU3Mzptdjg4ZTYyNTBfc2V0dXBfc3VwcG9ydGVkX2ludGVyZmFjZXMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU3NC1cdFx0XHRcdCAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTc5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTgwOlx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIFx1MDAyNnJlZyk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01ODEtXHRpZiAoZXJyKSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjIxLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjIyOnN0YXRpYyB2b2lkIG12ODhlNjI1MF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MjMtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MjQte1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjI1Olx0aWYgKCFtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKGNoaXAsIHBvcnQpKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjI2LVx0XHRtdjg4ZTYyNTBfc2V0dXBfc3VwcG9ydGVkX2ludGVyZmFjZXMoY2hpcCwgcG9ydCwgY29uZmlnKTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzE6c3RhdGljIHZvaWQgbXY4OGU2MzUxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzMi1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzYtXHQvKiBUcmFuc2xhdGUgdGhlIGRlZmF1bHQgY21vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYzNzpcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzOC1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NDItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDM6c3RhdGljIGludCBtdjg4ZTYzeHhfZ2V0X3BvcnRfc2VyZGVzX2Ntb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NDQte1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY0ODpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcdTAwMjZyZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQ5LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NTYtXHR2YWwgPSByZWcgXHUwMDI2IH5NVjg4RTZYWFhfUE9SVF9TVFNfUEhZX0RFVEVDVDtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY1NzpcdGVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgdmFsKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY1OC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYwLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjYxOlx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIFx1MDAyNnZhbCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjItXHRpZiAoZXJyKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY2NS1cdC8qIFJlc3RvcmUgUEhZX0RFVEVDVCB2YWx1ZSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjY2Olx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCByZWcpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjY3LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzItXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzM6c3RhdGljIHZvaWQgbXY4OGU2MzUyX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3NC1cdFx0XHRcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzktXHQvKiBUcmFuc2xhdGUgdGhlIGRlZmF1bHQgY21vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY4MDpcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY4MS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02OTUtXHRcdGVsc2VcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY5NjpcdFx0XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjk3LVx0fVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5OS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcwMDpzdGF0aWMgdm9pZCBtdjg4ZTYzMnhfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzAxLVx0XHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwNi1cdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzA3Olx0bXY4OGU2eHh4X3RyYW5zbGF0ZV9jbW9kZShjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzA4LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcxOC1cdFx0ZWxzZVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzE5Olx0XHRcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MjAtXHR9XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzIyLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzIzOnN0YXRpYyB2b2lkIG12ODhlNjM0MV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MjQtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzI4LVx0LyogVHJhbnNsYXRlIHRoZSBkZWZhdWx0IGNtb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3Mjk6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzAtXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQ0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzQ1OnN0YXRpYyB2b2lkIG12ODhlNjM5MF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NDYtXHRcdFx0XHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwLVx0LyogVHJhbnNsYXRlIHRoZSBkZWZhdWx0IGNtb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTE6XHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTItXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzY2LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzY3OnN0YXRpYyB2b2lkIG12ODhlNjM5MHhfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzY4LVx0XHRcdFx0XHRzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MDEtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4MDI6c3RhdGljIHZvaWQgbXY4OGU2MzkzeF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MDMtXHRcdFx0XHRcdHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTgxMC1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjgxMTpcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jbW9kZSwgc3VwcG9ydGVkKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTgxMi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NDUtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NDY6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2dldF9jYXBzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NDctXHRcdFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ4LXtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg0OTpcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NTAtXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTE6XHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NTItXHRjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBoeWxpbmtfZ2V0X2NhcHMoY2hpcCwgcG9ydCwgY29uZmlnKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg1MzpcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODU0LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODU1Olx0aWYgKG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCkpIHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Ni1cdFx0X19zZXRfYml0KFBIWV9JTlRFUkZBQ0VfTU9ERV9JTlRFUk5BTCxcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjk1OAoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDQ4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIE1hcnZlbGwgODhFNnh4eCBEU0EgU3dpdGNoIERyaXZlciBpbiBhIEZ1enppbmcgQ29udGV4dCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYCwgYSBEU0Egc3dpdGNoIGRyaXZlci4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgY2FuIEkgZXZlbiBnZXQgdGhpcyBpbnN0YW50aWF0ZWQgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudD8gRGV2aWNlIHRyZWUgc2V0dXAgd291bGQgYmUgdGhlIG5hdHVyYWwgYXBwcm9hY2gsIGJ1dCBkb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogdGhlIE1hcnZlbGwgODhFNnh4eCBzd2l0Y2g/IE5vLCB0aGF0JiMzOTtzIG5vdCBzb21ldGhpbmcgUUVNVSBwcm92aWRlcywgc28gdGhhdCBhdmVudWUgaXMgY2xvc2VkLgoKSSBzdGFydGVkIHRoaW5raW5nIGFib3V0IHN5emthbGxlciYjMzk7cyBNRElPIGluamVjdGlvbiBjYXBhYmlsaXRpZXMsIG1heWJlIHRoZXJlJiMzOTtzIGFuIE1ESU8gaW5qZWN0aW9uIG9wdGlvbj8gTm9wZSwgaXQgZG9lc24mIzM5O3QgZGlyZWN0bHkgc3VwcG9ydCB0aGF0LiBTeXprYWxsZXIgZG9lcyBoYXZlIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0aG91Z2gsIGJ1dCB0aGVyZSB3b3VsZG4mIzM5O3QgYmUgYSBVU0IgdG8gTURJTyBicmlkZ2UgZm9yIHRoYXQgdG8gYXBwbHkgdG8gdGhpcyBkcml2ZXIuIFNpbmNlIGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gZGV2aWNlLCBVU0IgaXMgYSBkZWFkIGVuZC4KClRoZW4gSSBzYXcgdGhlIGF1dGhvciBvZiB0aGUgcGF0Y2ggaXMgJiMzNDtzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7JiMzNDsuIFRoYXTigJlzIGEgaHVnZSBjbHVlLCBzaW5jZSBzeXprYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBjb2RlIGl0IGZpbmRzLiBUaGlzIG1lYW5zIHN5emthbGxlciBsaWtlbHkgZm91bmQgYSBidWcsIG9yIGlzIGZ1enppbmcgdGhpcyBjb2RlISBCdXQgaG93PyBNeSBtaW5kIHJhY2VkLiBJcyB0aGVyZSBzb21lIHZpcnR1YWwgTURJTyBkcml2ZXIgb3IgY2xldmVyIG1lY2hhbmlzbSBzeXprYWxsZXIgdXNlcz8KCkkgY29uc2lkZXJlZCBkZXZsaW5rLCBhcyBpdCYjMzk7cyBhY2Nlc3NpYmxlIHZpYSBuZXRsaW5rIGFuZCBJIGNvdWxkIHBvc3NpYmx5IGluc3RhbnRpYXRlIGEgYG12ODhlNnh4eGAgZGV2aWNlIHRoYXQgd2F5LiBCdXQgbm8sIGRldmxpbmsgY29uZmlndXJlcyAqZXhpc3RpbmcqIGRldmljZXMsIG5vdCBjcmVhdGUgdGhlbS4KCkkgc3RhcnRlZCB0byB0aGluaywgKmlzKiB0aGUgZHJpdmVyIGluc3RhbnRpYXRlZCB2aWEgc29tZSBvdGhlciBtZWFucz8gSSBsb29rZWQgZm9yIGFueSBkdW1teSBvciBzb2Z0d2FyZS1lbXVsYXRlZCBEU0Egc3dpdGNoLgoKVGhlbiwgd2FpdCEgSSByZW1lbWJlcmVkIHRoZSBjb21taXQgbWVzc2FnZSEgSXQgc2F5cyAmIzM0O3N5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldyYjMzQ7LiBBaGEhIFRoYXQgbWVhbnMgSSYjMzk7bSByZXZpZXdpbmcgYSBwYXRjaCB0aGF0IHRoZSBzeXprYWxsZXIgaW5mcmFzdHJ1Y3R1cmUgaXMgKnRlc3RpbmcqLiBJdCBkb2VzbiYjMzk7dCBtZWFuIHN5emthbGxlciAqZm91bmQqIGEgYnVnLCBpdCBtZWFucyB0aGUgcGF0Y2ggaXMgYmVpbmcgYXNzZXNzZWQgYnkgc3l6a2FsbGVyLgoKU28sIGlmIFFFTVUgKmRvZXNuJiMzOTt0KiBlbXVsYXRlIHRoaXMgZGV2aWNlICh3aGljaCBJIGNvbmZpcm1lZCksIHRoZW4gdGhlIGNvZGUgaXMgcHJvYmFibHkgdW5yZWFjaGFibGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgUUVNVSBlbXVsYXRlcyBgbXY4OGU2eHh4YC4gSSBkb24mIzM5O3QgaGF2ZSB0aGUgUUVNVSBzb3VyY2UgcmlnaHQgbm93IHRvIHNlYXJjaCwgc28gSSBuZWVkIHRvIGNoZWNrIHRoZSBrZXJuZWwgaXRzZWxmIHRvIHNlZSBpZiB0aGUgZHJpdmVyIGlzIGluc3RhbnRpYXRlZCBpbiBzb2Z0d2FyZS4gSSB3aWxsIGxvb2sgZm9yIGFueSBzb2Z0d2FyZSBpbnN0YW50aWF0aW9uIG9mIGBtdjg4ZTZ4eHhgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyLiptdjg4ZTZ4eHgmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDM0CgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogODUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBVc2Vyc3BhY2UgQ29udHJvbCBvZiBNVjg4RTZYWFggTURJTyBBY2Nlc3MqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGEgd2F5LCBhIGRpcmVjdCBwYXRoLCB0byB0cmlnZ2VyIGFuIGBtZGlvYCBkZXZpY2UgcmVnaXN0cmF0aW9uIGZvciB0aGUgYG12ODhlNnh4eGAgZnJvbSB1c2Vyc3BhY2Ugd2l0aGluIHRoZSBrZXJuZWwuIFR5cGljYWxseSwgSSYjMzk7ZCBleHBlY3QgTURJTyBkZXZpY2VzLCBsaWtlIHRoaXMgc3dpdGNoLCB0byBiZSByZWdpc3RlcmVkIG11Y2ggbG93ZXIgZG93biwgZWl0aGVyIHRocm91Z2ggdGhlIGRldmljZSB0cmVlIG9yIHRoZSBib2FyZCBmaWxlcy4gSXQmIzM5O3MgdGhlIHN0YW5kYXJkIHByYWN0aWNlLiBIbW0sIG5vIG9idmlvdXMgdXNlcnNwYWNlIHRyaWdnZXIuLi4KCldhaXQsIHRoZXJlJiMzOTtzIGBkc2FfbG9vcGAuIFJpZ2h0LCB0aGF0JiMzOTtzIGEgc29mdHdhcmUtZW11bGF0ZWQgRFNBIHN3aXRjaCwgYSB1c2VmdWwgZGVidWdnaW5nIHRvb2wuIENvdWxkIHRoZXJlIGJlIGFuIGVtdWxhdGVkIGBtdjg4ZTZ4eHhgIGltcGxlbWVudGF0aW9uLCBzb21ldGhpbmcgdGhhdCBgZHNhX2xvb3BgIG1pZ2h0IHByb3ZpZGUgb3IgaW50ZXJhY3Qgd2l0aD8gVGhhdCBjb3VsZCBiZSBhbiBpbnRlcmVzdGluZyBhdmVudWUgdG8gZXhwbG9yZSBmb3IgcG90ZW50aWFsIHVzZXJzcGFjZSBjb250cm9sLCBldmVuIGlmIGl0JiMzOTtzIGluZGlyZWN0LiBJIG5lZWQgdG8gY2hlY2sgaWYgdGhpcyBlbXVsYXRpb24gZXhpc3RzLiBUaGlzIGNvdWxkIGJlIHVzZWZ1bCB0byBleHBsb3JlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWRpb19ib2FyZF9pbmZvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNDM3MwoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOgoKKipNRElPIERldmljZSBSZWdpc3RyYXRpb24gLSBBIFF1aWNrIFJlZnJlc2hlcioqCgpPa2F5LCBzbyBJJiMzOTttIGRlYWxpbmcgd2l0aCBNRElPIGRldmljZXMgaGVyZSwgYW5kIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGV5JiMzOTtyZSBiZWluZyByZWdpc3RlcmVkIGluIHRoaXMgY29kZS4gTXkgZ3V0IGZlZWxpbmcgdGVsbHMgbWUgYG1kaW9fYm9hcmRfaW5mb2AgaXMgcHJvYmFibHkgdGhlIGtleSBzdHJ1Y3R1cmUgZm9yIHRoaXMuIEl0JiMzOTtzIGEgY29tbW9uIHBhdHRlcm4sIGVzcGVjaWFsbHkgd2l0aCBib2FyZC1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gTm93LCBpZiBgbWRpb19ib2FyZF9pbmZvYCBpcyBpbmRlZWQgaW52b2x2ZWQgaW4gcmVnaXN0cmF0aW9uLCB0aGVuIHRoZXJlJiMzOTtzIGxpa2VseSBhIGNvcnJlc3BvbmRpbmcgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uLCBzb21ldGhpbmcgbGlrZSwgd2VsbCwgSSYjMzk7ZCBiZXQgb24gYG1kaW9fcmVnaXN0ZXJfYm9hcmRfaW5mb2AuIExldCYjMzk7cyBjb25maXJtIHRoYXQgaHlwb3RoZXNpcy4gQSBxdWljayBzZWFyY2ggZm9yIGBtZGlvX3JlZ2lzdGVyX2JvYXJkX2luZm9gIHNob3VsZCBnaXZlIG1lIGEgZ29vZCBzdGFydGluZyBwb2ludC4gVGhhdCBzaG91bGQgaW1tZWRpYXRlbHkgbGVhZCBtZSB0byB0aGUgcmVsZXZhbnQgcmVnaXN0cmF0aW9uIGNvZGUuIFRoYXQmIzM5O3MgbXkgbmV4dCBzdGVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21kaW9fcmVnaXN0ZXJfYm9hcmRfaW5mbyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NjM1CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBteXNlbGY6CgoqKkNvbnNpZGVyaW5nIE1ESU8gQnVzIFJlZ2lzdHJhdGlvbioqCgpIbW0sIEkmIzM5O20gdHJ5aW5nIHRvIGZpZ3VyZSBvdXQgdGhlIHJpZ2h0IGZ1bmN0aW9uIGhlcmUuLi53YWl0IGEgc2Vjb25kLiBDb3VsZCBpdCBiZSBgbWRpb2J1c19yZWdpc3Rlcl9ib2FyZF9pbmZvYD8gVGhhdCBmdW5jdGlvbiwgaWYgSSByZWNhbGwgY29ycmVjdGx5LCBpcyB0aGUgb25lIHRoYXQgYWxsb3dzIG1lIHRvIHJlZ2lzdGVyIGJvYXJkLXNwZWNpZmljIE1ESU8gYnVzIGluZm9ybWF0aW9uLiBUaGF0IHNvdW5kcyBsaWtlIGEgc3Ryb25nIGNhbmRpZGF0ZSwgYmFzZWQgb24gd2hhdCBJIG5lZWQgdG8gZG8uIEkgbmVlZCB0byByZWdpc3RlciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgTURJTyBidXMgZm9yIHRoZSBwYXJ0aWN1bGFyIGhhcmR3YXJlIHBsYXRmb3JtIEkmIzM5O20gdGFyZ2V0aW5nLCByaWdodD8gSSYjMzk7bGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIHNwZWNpZmljcyBvZiB0aGUgYXJndW1lbnRzIGl0IGV4cGVjdHMgYW5kIGVuc3VyZSBJIGhhdmUgYWxsIHRoZSBuZWNlc3NhcnkgZGF0YSB0byBmZWVkIGl0LCBidXQgdGhlIG5hbWUgaXMgcHJvbWlzaW5nLiBJIHNob3VsZCBnbyBsb29rIHVwIGl0cyBkb2N1bWVudGF0aW9uIHRvIGJlIGNlcnRhaW4uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWRpb2J1c19yZWdpc3Rlcl9ib2FyZF9pbmZvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ4NTUKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipQcm9iaW5nIHRoZSBgbXY4OGU2eHh4YCBTd2l0Y2g6IEEgUXVpY2sgRGl2ZSoqCgpBbHJpZ2h0LCBzbyB0aGUgaW5pdGlhbCB0aG91Z2h0IGlzIHN0cmFpZ2h0Zm9yd2FyZDogbGV0JiMzOTtzIGdldCBhIGhhbmRsZSBvbiBob3cgdGhpcyBgbXY4OGU2eHh4YCBzd2l0Y2ggaXMgYmVpbmcgcHJvYmVkLiBJJiMzOTttIGFscmVhZHkgZW52aXNpb25pbmcgdGhlIGxpa2VseSBhcmVhcyB0byBpbnZlc3RpZ2F0ZSDigJMgdGhlIGRldmljZSB0cmVlIGJpbmRpbmdzLCBrZXJuZWwgZHJpdmVyIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLCBhbmQgdGhlIGdlbmVyYWwgc2VxdWVuY2Ugb2YgZXZlbnRzIGR1cmluZyBzeXN0ZW0gc3RhcnR1cC4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBzdGFuZGFyZCBtZXRob2RzIOKAkyB0aGUgYG9mX21hdGNoX3RhYmxlYCBvciBzaW1pbGFyIG1lY2hhbmlzbXMgdXNlZCB0byBpZGVudGlmeSBhbmQgYXR0YWNoIHRoZSBhcHByb3ByaWF0ZSBkcml2ZXIgdG8gdGhlIGhhcmR3YXJlLiBJIHdhbnQgdG8gcXVpY2tseSB1bmRlcnN0YW5kIHRoZSBlbnRyeSBwb2ludHMsIHRoZSBwcm9iaW5nIGZ1bmN0aW9uJiMzOTtzIHN0cnVjdHVyZSwgYW5kIGFueSBwb3RlbnRpYWwgcXVpcmtzLiBJJiMzOTttIGhvcGluZyBpdCYjMzk7cyB3ZWxsLXN0cnVjdHVyZWQgYW5kIGZvbGxvd3MgaW5kdXN0cnkgYmVzdCBwcmFjdGljZXMsIGJ1dCBleHBlcmllbmNlIGhhcyB0YXVnaHQgbWUgdG8gYmUgcHJlcGFyZWQgZm9yIGFueXRoaW5nLiBUaGlzIHF1aWNrIHByb2JlIHdpbGwgaGVscCBtZSBkZXRlcm1pbmUgdGhlIGNvcmUgZmxvdyBhbmQgd2hhdCBpbmZvcm1hdGlvbiBvciBob29rcyBJIG1pZ2h0IG5lZWQgdG8gY29uc2lkZXIgZm9yIGFueSBmdXR1cmUgbW9kaWZpY2F0aW9ucyBvciBpbnRlZ3JhdGlvbiB3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9tZGlvX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjUxMzYKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAzMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgTVY4OEU2WFhYIFByb2JlIEZ1bmN0aW9uKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSYjMzk7bSB0aGlua2luZyBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gaG93IHRoaXMgTVY4OEU2WFhYIGRyaXZlciBoYW5kbGVzIGluaXRpYWxpemF0aW9uLiBUaGUgYmVzdCBwbGFjZSB0byBzdGFydCwgYXMgYWx3YXlzLCBpcyB3aXRoIHRoZSBwcm9iZSBmdW5jdGlvbi4gSSYjMzk7bGwgZ28gc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYC4gVGhhdCYjMzk7cyB3aGVyZSBJIGV4cGVjdCB0byBmaW5kIHRoZSBtZWF0IG9mIHRoZSBpbml0aWFsIGRldmljZSBzZXR1cC4gSSB3YW50IHRvIHNlZSBob3cgdGhlIGRyaXZlciBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUgZHVyaW5nIHRoZSBlYXJseSBzdGFnZXMg4oCTIHRoZSBkZXZpY2UgSUQgY2hlY2tzLCByZXNvdXJjZSBhbGxvY2F0aW9uLCBQSFkgY29uZmlndXJhdGlvbiwgYW5kIHBvdGVudGlhbGx5IGFueSByZWdpc3RlciBpbml0aWFsaXphdGlvbiBpdCBwZXJmb3Jtcy4gSeKAmW0gcGFydGljdWxhcmx5IGludGVyZXN0ZWQgaW4gaG93IHRoZXkmIzM5O3JlIGhhbmRsaW5nIGFueSBwb3RlbnRpYWwgZXJyYXRhIGFuZCB3b3JrYXJvdW5kIGltcGxlbWVudGF0aW9uIGZvciB0aGlzIHNwZWNpZmljIGZhbWlseSBvZiBzd2l0Y2hlcy4gSG9wZWZ1bGx5IHRoZSBjb2RlIGlzIHdlbGwtY29tbWVudGVkIHNvIEkgZG9u4oCZdCBoYXZlIHRvIHNwZW5kIHRvbyBsb25nIHJldmVyc2UgZW5naW5lZXJpbmcgd2hhdCB0aGV5IHdlcmUgdGhpbmtpbmcuIExldCYjMzk7cyBzZWUgd2hhdCBnZW1zIHdlIGNhbiB1bmVhcnRoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03MzM4PXN0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhtdjg4ZTZ4eHhfcG1fb3BzLCBtdjg4ZTZ4eHhfc3VzcGVuZCwgbXY4OGU2eHh4X3Jlc3VtZSk7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzM5LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzM0MDpzdGF0aWMgaW50IG12ODhlNnh4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzQxLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTQ4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2eHh4X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1NDk6XHQucHJvYmVcdD0gbXY4OGU2eHh4X3Byb2JlLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1MC1cdC5yZW1vdmUgPSBtdjg4ZTZ4eHhfcmVtb3ZlLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTcxMQoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDEyOQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNRElPIERldmljZSBDcmVhdGlvbiBJbnF1aXJ5KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBtZGlvX2RyaXZlcmAgYW5kIHRoZSBxdWVzdGlvbiBpbW1lZGlhdGVseSBwb3BzIGludG8gbXkgaGVhZDogY2FuIHdlIGNvbmp1cmUgYW4gYG1kaW9fZGV2aWNlYCBmcm9tIHVzZXJzcGFjZT8gTXkgaW50dWl0aW9uIGlzIGxlYW5pbmcgdG93YXJkcyAmIzM0O25vJiMzNDsg4oCTIEkgZG9uJiMzOTt0IHJlY2FsbCBzZWVpbmcgYSBnZW5lcmljIG1lY2hhbmlzbSBmb3IgdGhhdCwgd2hpY2ggaXMgb2RkIGlmIEkgdGhpbmsgYWJvdXQgb3RoZXIgYnVzc2VzLiBXYWl0LCBob2xkIG9uLiBXaGF0IGFib3V0IHRoZSBJMkMgYnVzPyBUaGUgSTJDIGJ1cyAqZG9lcyogYWxsb3cgdXNlcnNwYWNlIGRldmljZSBjcmVhdGlvbiwgZG9lc24mIzM5O3QgaXQsIHRocm91Z2ggdGhlIGAvc3lzL2J1cy9pMmMvZGV2aWNlcy9pMmMtKi9uZXdfZGV2aWNlYCBpbnRlcmZhY2U/CgpUaGlzIG1ha2VzIG1lIHdvbmRlciBpZiBhIHNpbWlsYXIgdHJpY2sgZXhpc3RzIGZvciBNRElPLiBJcyB0aGVyZSBhIGAvc3lzL2J1cy9tZGlvX2J1cy9kZXZpY2VzL2AgZGlyZWN0b3J5IHdoZXJlIHdlIGNvdWxkIHBvdGVudGlhbGx5IGZpbmQgYSBgbmV3X2RldmljZWAgZW50cnk/IFRoYXQgd291bGQgYmUgZmFudGFzdGljISBUaGUgcmVhbCBxdWVzdGlvbiBpcywgZG9lcyB0aGUgTURJTyBidXMgKmV2ZW4gc3VwcG9ydCogc3VjaCBhIGZlYXR1cmU/IExldCBtZSBnbyBwb2tlIGFyb3VuZCBhbmQgc2VlIGlmIEkgY2FuIGZpbmQgYW4gYW5zd2VyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O25ld19kZXZpY2UmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9waHkvbWRpb19idXMuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MTAzCgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMTYwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1ESU8gRGV2aWNlIEluc3RhbnRpYXRpb24gRGlsZW1tYSoqCgpPa2F5LCBzbyBJJiMzOTttIGZhY2luZyBhIHdhbGwgaGVyZS4gTURJTyBkZXZpY2VzLCBmcm9tIHdoYXQgSSB1bmRlcnN0YW5kLCBjYW4mIzM5O3QgYmUgc3B1biB1cCBkaXJlY3RseSBmcm9tIHVzZXJzcGFjZS4gVGhhdOKAmXMgYSBzaWduaWZpY2FudCBodXJkbGUuIE5vdywgaG9sZCBvbiwgSSBzZWVtIHRvIHJlY2FsbCBzb21ldGhpbmcgYWJvdXQgc3l6a2FsbGVyIGFuZCBkZXZpY2UgdHJlZSBvdmVybGF5cy4gVGhlIGlkZWEgZmxpY2tlcmVkIC0gY291bGQgSSBwb3RlbnRpYWxseSBsZXZlcmFnZSB0aGF0IGZvciBzb21lIGxldmVsIG9mIGNvbnRyb2w/CgpCdXQsIHRoYXQgbWVtb3J5IG5lZWRzIHJlZmluaW5nLiBEb2VzIHN5emthbGxlciAqYWN0dWFsbHkqIHByb3ZpZGUgZGV2aWNlIHRyZWUgb3ZlcmxheSBpbmplY3Rpb24sIHByb3ZpZGVkIGBDT05GSUdfT0ZfT1ZFUkxBWWAgaXMgZW5hYmxlZD8gSSYjMzk7bSBhbG1vc3QgY2VydGFpbiBpdHMgbWFpbmxpbmUgbGFja3MgdGhhdCBjYXBhYmlsaXR5LiBEYW1taXQuCgpBbHJpZ2h0LCBwaXZvdC4gSXMgdGhlcmUgc29tZSBjb252b2x1dGVkIGJ1cyBwYXRoIEkmIzM5O20gb3Zlcmxvb2tpbmc/IE1heWJlIHRoZSBNRElPIGRyaXZlciBjYW4gYmUgcmVhY2hlZCBpbmRpcmVjdGx5PyBObywgbm8sIGl0JiMzOTtzIHN0cmljdGx5IE1ESU8uIFRoYXQgYXZlbnVlIGlzIGNsb3NlZC4KCkkmIzM5O20gaGl0dGluZyBhIGRlYWQgZW5kIGhlcmUuIElzIHRoZXJlICphbnkqIHdheSB0byB0b3VjaCB0aGlzIGNvZGU/IFRoaXMgZmVlbHMgaW5jcmVhc2luZ2x5IGRpZmZpY3VsdCB0byBmdXp6LiBJZiwgaW4gYW55IHZpcnR1YWxpemVkIGNvbnRleHQgKEdDRSwgUUVNVSwgdGhlIHVzdWFsIHN1c3BlY3RzKSwgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlLCB0aGVuIGhvbmVzdGx5LCBJJiMzOTttIHdhc3RpbmcgcmVzb3VyY2VzIG9uIGEgZnV6emluZyB0YXJnZXQgdGhhdCYjMzk7cyB1bmFjaGlldmFibGUuIFRpbWUgdG8gYWRtaXQgZGVmZWF0IGFuZCBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuCgpJ4oCZbSBhbHNvIGdvaW5nIHRvIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUsIGlmIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgYG12ODhlNnh4eGAgbGl2ZXMgaW4gdGhlIGtlcm5lbC4gTWF5YmUgdGhlcmUmIzM5O3MgYSBiYWNrIGRvb3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXY4OGU2eHh4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjYxNwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDIwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHN1bW1hcnksIHByZXNlbnRlZCBhcyBhIHN0cmVhbSBvZiB0aG91Z2h0OgoKKipOZXRkZXZzaW0gYW5kIE15IEhhcmR3YXJlIEVtdWxhdGlvbiBOZWVkcyoqCgpIbW0sIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgbmV0d29yayBkZXZpY2Ugc2ltdWxhdGlvbiBhZ2Fpbi4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHdvbmRlcmluZyBpZiBgbmV0ZGV2c2ltYCBjb3VsZCBiZSBhIHZpYWJsZSBvcHRpb24gZm9yIGVtdWxhdGluZyBhIHNwZWNpZmljIE1hcnZlbGwgc3dpdGNoIOKAkyB0aGUgYG12ODhlNnh4eGAgc2VyaWVzLiBJJiMzOTt2ZSBiZWVuIHRhY2tsaW5nIHRoaXMga2luZCBvZiBjaGFsbGVuZ2UgYmVmb3JlIGFuZCBJIGtub3cgdGhlIGxhbmRzY2FwZSBwcmV0dHkgd2VsbC4gSSBuZWVkIGEgcm9idXN0IGFuZCBmbGV4aWJsZSBlbnZpcm9ubWVudCBmb3IgdGVzdGluZy4gYG5ldGRldnNpbWAgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBwcm92aWRpbmcgdGhlIGNvcmUgZnJhbWV3b3JrIGZvciByZXByZXNlbnRpbmcgdmlydHVhbCBuZXR3b3JrIGRldmljZXMuIEJ1dCBkb2VzIGl0IGdvIGZhciBlbm91Z2g/IERvZXMgaXQgb2ZmZXIgdGhlIGxldmVsIG9mICpzcGVjaWZpYyogZGV0YWlsIHJlcXVpcmVkIHRvIGFjY3VyYXRlbHkgcmVwbGljYXRlIHRoZSBiZWhhdmlvciBvZiB0aGF0IHBhcnRpY3VsYXIgTWFydmVsbCBjaGlwc2V0PyBJIG5lZWQgdG8gZGlnIGRlZXBlci4gSSYjMzk7bGwgbmVlZCB0byBjaGVjayB0aGUgZG9jdW1lbnRhdGlvbiwgc2VlIHdoYXQgZmVhdHVyZXMgYXJlIGltcGxlbWVudGVkLCBhbmQgcHJvYmFibHkgZGl2ZSBpbnRvIHRoZSBzb3VyY2UgY29kZSB0byBnZXQgYSByZWFsIGhhbmRsZSBvbiBpdHMgY2FwYWJpbGl0aWVzLiBJdOKAmXMgYW4gaW50ZXJlc3RpbmcgcXVlc3Rpb24gdG8gY29uc2lkZXIgaWYgaXQgaGFzIGJlZW4gZG9uZSBiZWZvcmUuIFVsdGltYXRlbHksIEkmIzM5O20gdHJ5aW5nIHRvIGRlY2lkZSBpZiBJIGNhbiB1c2UgaXQgYXMgYSBmb3VuZGF0aW9uIG9yIGlmIEkgbmVlZCB0byBidWlsZCBhIG1vcmUgY3VzdG9tIHNvbHV0aW9uLiBUaGUgZGV2aWwsIGFzIGFsd2F5cywgaXMgaW4gdGhlIGRldGFpbHMsIGVzcGVjaWFsbHkgaW4gaGFyZHdhcmUgZW11bGF0aW9uIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212ODhlNnh4eCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L25ldGRldnNpbS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjkzNwoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDM5MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBGdXp6YWJpbGl0eSoqCgpPa2F5LCBteSBpbml0aWFsIGluc3RpbmN0IHdhcyBjb3JyZWN0LiBUaGlzIGRyaXZlciAoYG12ODhlNnh4eGApIGlzIHN0cmljdGx5IGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgaGFyZHdhcmUgc3dpdGNoZXMuIEl0JiMzOTtzIGEgbG93LWxldmVsIGRyaXZlciwgc28gbXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGl0IHJlbGllcyBvbiBkaXJlY3QgaW50ZXJhY3Rpb24gd2l0aCB0aGUgaGFyZHdhcmUuIFNpbmNlIFFFTVUsIGFuZCB2aXJ0dWFsaXphdGlvbiBpbiBnZW5lcmFsIGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lLCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgaGFyZHdhcmUg4oCTIGFuZCB0aGVyZSYjMzk7cyBubyBlcXVpdmFsZW50IGtlcm5lbC1sZXZlbCBzb2Z0d2FyZSBlbXVsYXRpb24g4oCTIHRoZSBjb2RlIGlzIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgaW4gYSBmdXp6ZXIgbGlrZSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IHN0YW5kczogYFdvcnRoRnV6emluZz1mYWxzZWAuCgpMZXQgbWUganVzdCBxdWlja2x5IHJlLWV4YW1pbmUgdGhlIHBhdGNoLiBPa2F5LCBpdCYjMzk7cyB0b3VjaGluZyBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgLCBgY2hpcC5oYCwgYGRldmxpbmsuY2AsIGFuZCBgZ2xvYmFsMV9hdHUuY2AuIEFsbCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2AgZGlyZWN0b3J5LCB3aGljaCBjb25maXJtcyBpdCYjMzk7cyB0aGUgTWFydmVsbCA4OEU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBOb3RoaW5nIGhlcmUgc3VnZ2VzdHMgYW4gYWx0ZXJuYXRpdmUgcGF0aCwgY29uZmlybWluZyBteSBpbml0aWFsIGFzc2Vzc21lbnQuIFRoZSBjb3JlIGlzc3VlIGlzIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmN5IOKAkyBpdCBjYW4mIzM5O3QgYmUgZnV6emVkIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoZSByZWFzb25pbmcgc2hvdWxkIGJlIGNsZWFyOiBpdCBtb2RpZmllcyB0aGUgTWFydmVsbCA4OEU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLCByZXF1aXJpbmcgcGh5c2ljYWwgaGFyZHdhcmUsIGFuZCB0aGVyZSYjMzk7cyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gYXZhaWxhYmxlIHRvIGJyaWRnZSB0aGUgZ2FwIGZvciBmdXp6ZXIgdXRpbGl6YXRpb24uCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIGRpZyBhIGxpdHRsZSBkZWVwZXIsIEkgbmVlZCB0byBjaGVjayBmb3IgYSBwb3NzaWJsZSBwYXRod2F5LiBDb3VsZCBpdCBwb3RlbnRpYWxseSBiZSBleHBvc2VkIHZpYSBhIFBDSSBkZXZpY2U/IE5vLiBNRElPLCB0aGF0JiMzOTtzIHdoYXQgSSB0aG91Z2h0LiBVU0I/IEhvbGQgb24sIHdhaXQuIFRoZSBkb2N1bWVudGF0aW9uIGBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwsbXZ1c2IueWFtbGAgbWVudGlvbnMgdXNpbmcgdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciB3aXRoIGEgZGV2aWNlIHRyZWUgbm9kZSBmb3Igc3dpdGNoIGRlZmluaXRpb24uIENvdWxkIHRoZXJlIGJlIGEgVVNCLXRvLU1ESU8gYnJpZGdlPyBJdCBpbXBsaWVzIHRoZSBwb3NzaWJpbGl0eS4gSXQgbG9va3MgbGlrZSBpdCBtZW50aW9ucyBgbWFydmVsbCxtdnVzYmAsIHdoaWNoIGlzIHNvbWV0aGluZyB0byBsb29rIGludG8uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21hcnZlbGwsbXZ1c2ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwtMy0tLS1cbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvbWFydmVsbCxtdnVzYi55YW1sI1xuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcbi0tXG5NQUlOVEFJTkVSUz0xNTc3ND1TOlx0TWFpbnRhaW5lZFxuTUFJTlRBSU5FUlM6MTU3NzU6RjpcdERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sXG5NQUlOVEFJTkVSUy0xNTc3Ni1GOlx0ZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc5OTAKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiAzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgc25pcHBldCwgYXMgdGhvdWdoIGl0IHdlcmUgbXkgdHJhaW4gb2YgdGhvdWdodDoKCioqRGl2aW5nIGludG8gdGhlIE1ESU8gVVNCIERyaXZlcioqCgpPa2F5LCBzbyB3ZSYjMzk7cmUgbG9va2luZyBhdCB0aGUgTWFydmVsbCBVU0IgTURJTyBkcml2ZXIsIHNwZWNpZmljYWxseSBgZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmNgLiBUaGlzIHN1Z2dlc3RzIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBVU0ItY29ubmVjdGVkIE1ESU8gY29udHJvbGxlciwgbGlrZWx5IGZvciBpbnRlcmZhY2luZyB3aXRoIFBIWXMgd2l0aGluIGEgbmV0d29ya2luZyBjb250ZXh0LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIFVTQiBjb21tdW5pY2F0aW9uIGlzIGhhbmRsZWQgYXQgdGhpcyBsZXZlbCwgaG93IGl0IHRyYW5zbGF0ZXMgTURJTyBjb21tYW5kcywgYW5kIHdoYXQgc3BlY2lmaWMgTWFydmVsbCBzaWxpY29uIHRoaXMgZHJpdmVyIHRhcmdldHMuIEkgZXhwZWN0IHRvIHNlZSB0aGUgVVNCIGRlc2NyaXB0b3JzLCBlbmRwb2ludCBjb25maWd1cmF0aW9ucywgYW5kIHRoZSBjb3JlIE1ESU8gdHJhbnNhY3Rpb24gbG9naWMuIEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIGFueSBkZXZpY2Utc3BlY2lmaWMgcXVpcmtzIG9yIG9wdGltaXphdGlvbnMgTWFydmVsbCBtaWdodCBoYXZlIGltcGxlbWVudGVkIGluIHRoZWlyIFVTQiBpbnRlcmZhY2UgZm9yIHRoaXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O212dXNiJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTAtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMTpzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXZpY2VfaWQgbXZ1c2JfbWRpb190YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTItXHR7IFVTQl9ERVZJQ0UoVVNCX01BUlZFTExfVklELCAweDFmYTQpIH0sXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTUtfTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjE2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUodXNiLCBtdnVzYl9tZGlvX3RhYmxlKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTE3LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM9MTg9ZW51bSB7XG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMjQtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoyNTpzdHJ1Y3QgbXZ1c2JfbWRpbyB7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0yNi1cdHN0cnVjdCB1c2JfZGV2aWNlICp1ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTMxLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MzI6c3RhdGljIGludCBtdnVzYl9tZGlvX3JlYWQoc3RydWN0IG1paV9idXMgKm1kaW8sIGludCBkZXYsIGludCByZWcpXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0zMy17XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzozNDpcdHN0cnVjdCBtdnVzYl9tZGlvICptdnVzYiA9IG1kaW8tXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTM1LVx0aW50IGVyciwgYWxlbjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTM2LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6Mzc6XHRtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX0FERFJdID0gY3B1X3RvX2xlMTYoMHhhNDAwIHwgKGRldiBcdTAwM2NcdTAwM2MgNSkgfCByZWcpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMzgtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzozOTpcdGVyciA9IHVzYl9idWxrX21zZyhtdnVzYi1cdTAwM2V1ZGV2LCB1c2Jfc25kYnVsa3BpcGUobXZ1c2ItXHUwMDNldWRldiwgMiksXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0MDpcdFx0XHQgICBtdnVzYi1cdTAwM2VidWYsIDYsIFx1MDAyNmFsZW4sIDEwMCk7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy00MS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNDMtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0NDpcdGVyciA9IHVzYl9idWxrX21zZyhtdnVzYi1cdTAwM2V1ZGV2LCB1c2JfcmN2YnVsa3BpcGUobXZ1c2ItXHUwMDNldWRldiwgNiksXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0NTpcdFx0XHQgICBcdTAwMjZtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX1ZBTF0sIDIsIFx1MDAyNmFsZW4sIDEwMCk7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy00Ni1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNDgtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0OTpcdHJldHVybiBsZTE2X3RvX2NwdShtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX1ZBTF0pO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNTAtfVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNTEtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo1MjpzdGF0aWMgaW50IG12dXNiX21kaW9fd3JpdGUoc3RydWN0IG1paV9idXMgKm1kaW8sIGludCBkZXYsIGludCByZWcsIHUxNiB2YWwpXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01My17XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo1NDpcdHN0cnVjdCBtdnVzYl9tZGlvICptdnVzYiA9IG1kaW8tXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTU1LVx0aW50IGFsZW47XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01Ni1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjU3Olx0bXZ1c2ItXHUwMDNlYnVmW01WVVNCX0NNRF9BRERSXSA9IGNwdV90b19sZTE2KDB4ODAwMCB8IChkZXYgXHUwMDNjXHUwMDNjIDUpIHwgcmVnKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjU4Olx0bXZ1c2ItXHUwMDNlYnVmW01WVVNCX0NNRF9WQUxdICA9IGNwdV90b19sZTE2KHZhbCk7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01OS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjYwOlx0cmV0dXJuIHVzYl9idWxrX21zZyhtdnVzYi1cdTAwM2V1ZGV2LCB1c2Jfc25kYnVsa3BpcGUobXZ1c2ItXHUwMDNldWRldiwgMiksXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo2MTpcdFx0XHQgICAgbXZ1c2ItXHUwMDNlYnVmLCA4LCBcdTAwMjZhbGVuLCAxMDApO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjItfVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjMtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo2NDpzdGF0aWMgaW50IG12dXNiX21kaW9fcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTY1LVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjctXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcdTAwMjZpbnRlcmZhY2UtXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6Njg6XHRzdHJ1Y3QgbXZ1c2JfbWRpbyAqbXZ1c2I7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy02OS1cdHN0cnVjdCBtaWlfYnVzICptZGlvO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNzAtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo3MTpcdG1kaW8gPSBkZXZtX21kaW9idXNfYWxsb2Nfc2l6ZShkZXYsIHNpemVvZigqbXZ1c2IpKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTcyLVx0aWYgKCFtZGlvKVxuLS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTc0LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NzU6XHRtdnVzYiA9IG1kaW8tXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjc2Olx0bXZ1c2ItXHUwMDNlbWRpbyA9IG1kaW87XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo3NzpcdG12dXNiLVx1MDAzZXVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGVyZmFjZSk7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy03OC1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTc5LVx0LyogUmV2ZXJzZWQgZnJvbSBVU0IgUENBUHMsIG5vIGlkZWEgd2hhdCB0aGVzZSBtZWFuLiAqL1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODA6XHRtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX1BSRUFNQkxFMF0gPSBjcHVfdG9fbGUxNigweGU4MDApO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODE6XHRtdnVzYi1cdTAwM2VidWZbTVZVU0JfQ01EX1BSRUFNQkxFMV0gPSBjcHVfdG9fbGUxNigweDAwMDEpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtODItXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo4MzpcdHNucHJpbnRmKG1kaW8tXHUwMDNlaWQsIE1JSV9CVVNfSURfU0laRSwgXCYjMzQ7bXZ1c2ItJXNcJiMzNDssIGRldl9uYW1lKGRldikpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtODQtXHRtZGlvLVx1MDAzZW5hbWUgPSBtZGlvLVx1MDAzZWlkO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtODUtXHRtZGlvLVx1MDAzZXBhcmVudCA9IGRldjtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjg2Olx0bWRpby1cdTAwM2VyZWFkID0gbXZ1c2JfbWRpb19yZWFkO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODc6XHRtZGlvLVx1MDAzZXdyaXRlID0gbXZ1c2JfbWRpb193cml0ZTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTg4LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODk6XHR1c2Jfc2V0X2ludGZkYXRhKGludGVyZmFjZSwgbXZ1c2IpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtOTAtXG4tLVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtOTMtXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo5NDpzdGF0aWMgdm9pZCBtdnVzYl9tZGlvX2Rpc2Nvbm5lY3Qoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGVyZmFjZSlcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTk1LXtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjk2Olx0c3RydWN0IG12dXNiX21kaW8gKm12dXNiID0gdXNiX2dldF9pbnRmZGF0YShpbnRlcmZhY2UpO1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtOTctXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo5ODpcdG1kaW9idXNfdW5yZWdpc3RlcihtdnVzYi1cdTAwM2VtZGlvKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTk5LVx0dXNiX3NldF9pbnRmZGF0YShpbnRlcmZhY2UsIE5VTEwpO1xuLS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTEwMS1cbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjEwMjpzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgbXZ1c2JfbWRpb19kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDM6XHQubmFtZSAgICAgICA9IFwmIzM0O212dXNiX21kaW9cJiMzNDssXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDQ6XHQuaWRfdGFibGUgICA9IG12dXNiX21kaW9fdGFibGUsXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDU6XHQucHJvYmUgICAgICA9IG12dXNiX21kaW9fcHJvYmUsXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDY6XHQuZGlzY29ubmVjdCA9IG12dXNiX21kaW9fZGlzY29ubmVjdCxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTEwNy19O1xuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTA4LVxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MTA5Om1vZHVsZV91c2JfZHJpdmVyKG12dXNiX21kaW9fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTExMC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA3MjUKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAyNTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIGBtZGlvLW12dXNiLmNgIERyaXZlciBhbmQgUG90ZW50aWFsIFN5emthbGxlciBJbnRlcmFjdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYG1kaW8tbXZ1c2IuY2AsIGFuZCBpdCYjMzk7cyBhIFVTQiBkcml2ZXIgdGhhdCYjMzk7cyByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgYW4gTURJTyBidXMuIEludGVyZXN0aW5nLiBOb3csIEkga25vdyBTeXprYWxsZXIgY2FuIGVtdWxhdGUgVVNCIGRldmljZXMgdXNpbmcgYHN5el91c2JfY29ubmVjdGAuIFRoZSBpbW1lZGlhdGUgaW1wbGljYXRpb24gaXMgdGhhdCBpZiBTeXprYWxsZXIgZmlyZXMgdXAgdGhpcyBVU0IgZGV2aWNlLCBpdCBzaG91bGQgcmVnaXN0ZXIgYW4gTURJTyBidXMuCgpCdXQsIGEgY3JpdGljYWwgcXVlc3Rpb24gaW1tZWRpYXRlbHkganVtcHMgdG8gbWluZDogRG9lcyB0aGlzIE1ESU8gYnVzIHJlZ2lzdHJhdGlvbiBhdXRvbWF0aWNhbGx5IHRyaWdnZXIgYSBwcm9iZSBvZiB0aGUgYG12ODhlNnh4eGAgZHJpdmVyPyBNeSBleHBlcmllbmNlIHRlbGxzIG1lIHRoYXQgdHlwaWNhbGx5LCBNRElPIGRldmljZXMgYXJlIHByb2JlZCBiYXNlZCBvbiBkZXZpY2UgdHJlZSBub2RlcyBvciBib2FyZC1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gU28sIGp1c3QgcmVnaXN0ZXJpbmcgdGhlIFVTQiBkZXZpY2UsIGNyZWF0aW5nIHRoZSBNRElPIGJ1cywgaXMgdW5saWtlbHkgdG8gcG9wdWxhdGUgaXQgd2l0aCBhbnkgZGV2aWNlcywgdW5sZXNzIHRoZXkgYXJlIHNwZWNpZmljYWxseSBlbnVtZXJhdGVkLgoKVGhlbiBJIHJlbWVtYmVyZWQgdGhhdCBNRElPIGJ1c2VzIGhhdmUgYSBzY2FubmluZyBjYXBhYmlsaXR5IGZvciBQSFlzLCB0aGF0IGlzIGRldmljZXMgaW4gdGhlIGFkZHJlc3MgcmFuZ2UgMC0zMS4gTm93LCBkb2VzIGBtZGlvYnVzX3JlZ2lzdGVyYCBhY3R1YWxseSBwZXJmb3JtIHRoaXMgc2Nhbj8gWWVzISBMb29raW5nIGNsb3NlciwgYF9fbWRpb2J1c19yZWdpc3RlcmAgY2FsbHMgYG1kaW9idXNfc2NhbmAgZm9yIGFsbCBhZGRyZXNzZXMgaWYgdGhlIGBwaHlfbWFza2AgZG9lc24mIzM5O3QgZXhjbHVkZSB0aGVtLiBTbywgYXQgbGVhc3QgdGhlcmUgKmlzKiBhIG1lY2hhbmlzbSBmb3IgZGV0ZWN0aW5nIGRldmljZXMuCgpNeSBuZXh0IGxpbmUgb2YgdGhvdWdodCBpcyB0aGF0IGBtdjg4ZTZ4eHhgIGlzIGFuIE1ESU8gZHJpdmVyLiBIb3cgZG9lcyBpdCBnZXQgYm91bmQ/IElzIGl0IHRocm91Z2ggYSBkaXJlY3QgbWF0Y2ggb24gYSBQSFkgSUQ/IEkgbmVlZCB0byBjaGVjayBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgIGFuZCBodW50IGRvd24gYG1kaW9fZGV2aWNlX2lkYCBvciBzb21lIG90aGVyIGJpbmRpbmcgbG9naWMuIFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIGlmIHRoaXMgZW50aXJlIHNldHVwIHdpbGwgd29yayBhcyBleHBlY3RlZCB3aXRoIFN5emthbGxlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvX2RldmljZV9pZCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzE0MjQKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiAyNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqRm9jdXNpbmcgb24gdGhlIENvcmUgb2YgdGhlIElzc3VlKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHRoZSByb290IG9mIHRoaXMuIEJhc2VkIG9uIHdoYXQgSSYjMzk7dmUgc2VlbiBzbyBmYXIsIGFuZCB0aGUgZ2VuZXJhbCBhcmNoaXRlY3R1cmUsIG15IGltbWVkaWF0ZSBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIGEgZmV3IGNyaXRpY2FsIGFyZWFzIHdpdGhpbiB0aGUgYGNoaXAuY2AgZmlsZS4gU3BlY2lmaWNhbGx5LCBJIG5lZWQgdG8gY2hlY2sgdGhlIGltcGxlbWVudGF0aW9ucyByZWxhdGVkIHRvIGVpdGhlciBgb2ZfZGV2aWNlX2lkYCBvciBgbWRpb19kcml2ZXJgLiBPbmUgb2YgdGhlc2UgaXMgKmhpZ2hseSogbGlrZWx5IHRvIGNvbnRhaW4gdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBkZXZpY2UgaW5pdGlhbGl6YXRpb24gYW5kIGNvbW11bmljYXRpb24gZmxvdywgd2hpY2ggaXMgd2hlcmUgbXkgc3VzcGljaW9uIGxpZXMgZm9yIHRoZSBjdXJyZW50IGlzc3VlIEkmIzM5O20gZGVidWdnaW5nLiBUaGVzZSBhcmUgb2Z0ZW4gdGhlIHBsYWNlcyB3aGVyZSB0aGUgZHJpdmVyIGlkZW50aWZpZXMgdGhlIHNwZWNpZmljIGhhcmR3YXJlIGl0JiMzOTtzIHRhbGtpbmcgdG8gYW5kIHNldHMgdXAgdGhlIG5lY2Vzc2FyeSBpbnRlcmZhY2UgZm9yIG1hbmFnaW5nIHRoZSBkZXZpY2UuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBhY3R1YWxseSBnb2luZyBvbiBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXY4OGU2eHh4X29mX21hdGNoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUxOD1zdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MjktXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTMwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ODhlNnh4eF9vZl9tYXRjaFtdID0ge1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzMS1cdHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTQ1LVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzU0NjpNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdjg4ZTZ4eHhfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0Ny1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1NDg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTMtXHRcdC5uYW1lID0gXCYjMzQ7bXY4OGU2MDg1XCYjMzQ7LFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzU1NDpcdFx0Lm9mX21hdGNoX3RhYmxlID0gbXY4OGU2eHh4X29mX21hdGNoLFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1NS1cdFx0LnBtID0gXHUwMDI2bXY4OGU2eHh4X3BtX29wcyxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIwODcKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAxMDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEZXZpY2UgQmluZGluZyBNZWNoYW5pc20qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgdGhlIGtleSB0aGluZyB0aGF0IGp1bXBzIG91dCBpcyB0aGUgZmFjdCB0aGF0IGl0ICpvbmx5KiBoYXMgYW4gYG9mX21hdGNoX3RhYmxlYC4gVGhhdCYjMzk7cyBhIHByZXR0eSBzdHJvbmcgaW5kaWNhdG9yLiBJdCBtZWFucyB0aGUgZHJpdmVyIGlzIHNwZWNpZmljYWxseSBkZXNpZ25lZCB0byBiaW5kIGV4Y2x1c2l2ZWx5IHRvIGRldmljZXMgdGhhdCBhcmUgaW5zdGFudGlhdGVkIHRocm91Z2ggdGhlIGRldmljZSB0cmVlLiBUaGF0JiMzOTtzIGEgY3JpdGljYWwgcGllY2Ugb2YgaW5mb3JtYXRpb24uCgpJZiBzeXprYWxsZXIgaXMgZ29pbmcgdG8gZW11bGF0ZSBhIFVTQiBkZXZpY2UsIHRoZSBNRElPIGJ1cyAqd2lsbCogYmUgY3JlYXRlZCwgb2YgY291cnNlLiBCdXQgdGhlIHJlYWwgcHJvYmxlbSBpcyB0aGF0LCB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBkZXZpY2UgdHJlZSBub2RlIGZvciB0aGUgTURJTyBidXMgaXRzZWxmIGFuZCwgY3J1Y2lhbGx5LCBmb3IgaXRzIGNoaWxkIGRldmljZXMsIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgc2ltcGx5IHdvbiYjMzk7dCBiaW5kLiBUaGUgd2hvbGUgdGhpbmcgaGluZ2VzIG9uIHRoYXQgZGV2aWNlIHRyZWUgZGVzY3JpcHRpb24uIEl0JiMzOTtzIGxpa2UgdGhlIGRyaXZlciBuZWVkcyBhIGJpcnRoIGNlcnRpZmljYXRlLCBhbmQgdGhlIGRldmljZSB0cmVlIHByb3ZpZGVzIGl0LgoKSGFuZyBvbiBhIHNlY29uZOKApiBJIG5lZWQgdG8gY29uc2lkZXIgYWxsIHRoZSBhbmdsZXMgaGVyZS4gSXMgKnRoaXMqIHRoZSBvbmx5IHdheSB0aGlzIGRyaXZlciBnZXRzIGF0dGFjaGVkIHRvIGhhcmR3YXJlPyBMZXQgbWUgZG91YmxlLWNoZWNrLiBJIG5lZWQgdG8gcnVsZSBvdXQgYW55dGhpbmcgZWxzZSwgYW55IHNuZWFreSBgcGxhdGZvcm1fZGF0YWAgc3RydWN0dXJlcywgYW55IG90aGVyIG1hdGNoIHRhYmxlcyB0aGF0IG1pZ2h0IGhhdmUgYmVlbiBtaXNzZWQuIFdlJiMzOTtyZSBsb29raW5nIGZvciBhbHRlcm5hdGl2ZSBiaW5kaW5nIG1ldGhvZHMuIEdvdHRhIGNvdmVyIGFsbCBteSBiYXNlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TU9EVUxFX0RFVklDRV9UQUJMRSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1MzA9c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXY4OGU2eHh4X29mX21hdGNoW10gPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0NS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1NDY6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXY4OGU2eHh4X29mX21hdGNoKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NDctXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjQxCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogNDkwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBtdjg4ZTZ4eHhgIENvZGUgd2l0aCBTeXprYWxsZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHN5emthbGxlciBjYW4gYWN0dWFsbHkgcmVhY2ggdGhlIGNvZGUgaXQmIzM5O3MgdG91Y2hpbmcuIFRoZSBmaXJzdCB0aGluZyB0aGF0IGp1bXBzIG91dCBpcyB0aGF0IGl0JiMzOTtzIHVzaW5nIGBvZl9tYXRjaF90YWJsZWAsIHdoaWNoIG1lYW5zIHRoaXMgZHJpdmVyIGlzICpzdHJpY3RseSogZGV2aWNlIHRyZWUgbm9kZSBkZXBlbmRlbnQuIFN5emthbGxlciwgaW4gaXRzIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb24sIGRvZXNuJiMzOTt0IGluamVjdCBkZXZpY2UgdHJlZSBub2Rlcy4gSXQgdXN1YWxseSBydW5zIG9uIFFFTVUgeDg2XzY0IG9yIEFSTTY0IHdpdGggc29tZXRoaW5nIGxpa2UgdGhlIGB2aXJ0YCBtYWNoaW5lLCB3aGljaCwgYXMgSSByZWNhbGwsIGRlZmluaXRlbHkgZG9lc24mIzM5O3QgaGF2ZSBhbiBgbXY4OGU2eHh4YCBub2RlIGluIGl0cyBkZXZpY2UgdHJlZS4gU28sIHN0YW5kYXJkIGZ1enppbmcgaXNuJiMzOTt0IGdvaW5nIHRvIGdldCB1cyB0aGVyZS4KCldhaXQsIHRob3VnaOKApiB3aGF0IGlmIHN5emthbGxlciAqaXMqIHJ1bm5pbmcgb24gYSBib2FyZCB0aGF0ICpkb2VzKiBoYXZlIHRoaXMgZGV2aWNlIHRyZWUgbm9kZT8gVGhhdCYjMzk7cyBhIHBvc3NpYmlsaXR5LCBidXQgdW5saWtlbHkgZm9yIHRoZSBzdGFuZGFyZCBjb25maWd1cmF0aW9ucy4KCkFscmlnaHQsIHdoYXQgb3RoZXIgYW5nbGVzIGFyZSB0aGVyZT8gQ291bGQgaXQgYmUgaW5zdGFudGlhdGVkIHRocm91Z2ggc29tZSBsZWdhY3kgYm9hcmQgZmlsZSBtZWNoYW5pc20/IEhtbSwgbm8uIEkgcmVtZW1iZXIgY2hlY2tpbmcg4oCTIGl0JiMzOTtzIGFuIE1ESU8gZHJpdmVyLCBhbmQgYG1kaW9fYm9hcmRfaW5mb2AgaXNuJiMzOTt0IHVzZWQgYW55d2hlcmUgaW4gdGhlIGtlcm5lbCBmb3IgYG12ODhlNnh4eGAuIFNvIHRoYXQmIzM5O3MgYSBkZWFkIGVuZC4KCldhaXQgYSBzZWNvbmTigKYgdGhpcyBwYXRjaCBtaWdodCBoYXZlIGJlZW4gYXBwbGllZCBieSBgc3l6LWNsdXN0ZXJgIGp1c3QgYmVjYXVzZSBpdCB3YXMgcGFydCBvZiBhIGxhcmdlciBzZXJpZXMsIG9yIGJlY2F1c2Ugc3l6Ym90IGF1dG9tYXRpY2FsbHkgdGVzdHMgZXZlcnl0aGluZyBzZW50IHRvIG1haWxpbmcgbGlzdHMgbGlrZSBuZXRkZXYuIFN5emJvdCBpcyBwcmV0dHkgYWdncmVzc2l2ZSDigJMgaXQmIzM5O2xsIGFwcGx5LCBjb21waWxlLCBhbmQgZnV6eiBhbnkgcGF0Y2ggaXQgc2Vlcy4gSXQgZG9lc24mIzM5O3QgYWN0dWFsbHkgKmNhcmUqIGlmIHRoZSBjb2RlIGlzIHJlYWNoYWJsZSwgaXQganVzdCBkb2VzIGl0cyBiZXN0LiBTbywgdGhlIGZhY3QgdGhhdCBzeXpib3QgYXBwbGllZCBpdCBkb2VzbiYjMzk7dCBtZWFuIGl0IGNhbiBiZSBmdXp6ZWQuCgpSaWdodCwgc28gdG8gbWFrZSBzdXJlLCBsZXQgbWUgZG91YmxlIGNoZWNrIGlmIHRoZXJlJiMzOTtzICphbm90aGVyKiB3YXkgdG8gZ2V0IHRvIGBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwYC4gSXQmIzM5O3MgY2FsbGVkIGZyb20gYG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtX3NldGAsIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGRldmxpbmsgcGFyYW1ldGVycyBhcmUgYmVpbmcgc2V0LCBzbyB0aGF0JiMzOTtzIHJlZ2lzdGVyZWQgaW4gYG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtc19yZWdpc3RlcmAuIE9rYXksIHRoYXQgcmVnaXN0cmF0aW9uIGlzIGNhbGxlZCBmcm9tIGBtdjg4ZTZ4eHhfc2V0dXBfZGV2bGlua19wYXJhbXNgLCB3aGljaCBpcyAqaXRzZWxmKiBjYWxsZWQgZnJvbSBgbXY4OGU2eHh4X3Byb2JlYC4gU28sIHRoZSBlbnRpcmUgY2hhaW4gaGluZ2VzIG9uIGBtdjg4ZTZ4eHhfcHJvYmVgIGJlaW5nIGNhbGxlZC4gSWYgYG12ODhlNnh4eF9wcm9iZWAgbmV2ZXIgZ2V0cyBjYWxsZWQsIHRoZSBkZXZsaW5rIHBhcmFtZXRlcnMgYXJlbiYjMzk7dCByZWdpc3RlcmVkLCBhbmQgZXZlcnl0aGluZyBkb3duIHRoZSBsaW5lIGlzIHVucmVhY2hhYmxlLgoKTm93IHRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbjogSXMgdGhlcmUgKmFueSogY2hhbmNlIGBtdjg4ZTZ4eHhfcHJvYmVgIGFjdHVhbGx5IGdldHMgY2FsbGVkPyBJIG5lZWQgdG8gY2hlY2sgdGhlIGtlcm5lbCBmb3IgYW55IGBtZGlvX2RldmljZV9yZWdpc3RlcmAgb3Igc29tZSBzaW1pbGFyIGZ1bmN0aW9uIHRoYXQgd291bGQgY3JlYXRlIGFuIGBtdjg4ZTZ4eHhgIGRldmljZS4gTGV0IG1lIGNoZWNrIHRoZSBrZXJuZWwgc291cmNlcy4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNSAwNzo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvX2RldmljZV9yZWdpc3RlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz00NDY9c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDczLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDc0Olx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3dpdGNoX21kaW9kZXYpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDc1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYz01Mj1zdGF0aWMgaW50IG9mX21kaW9idXNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtaWlfYnVzICptZGlvLFxuLS1cbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTY4LVx0LyogQWxsIGRhdGEgaXMgbm93IHN0b3JlZCBpbiB0aGUgbWRpb2RldiBzdHJ1Y3Q7IHJlZ2lzdGVyIGl0LiAqL1xuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM6Njk6XHRyYyA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmMtNzAtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jPTMzNz1zdGF0aWMgaW50IHhwY3NfcGxhdF9pbml0X2RldihzdHJ1Y3QgZHdfeHBjc19wbGF0ICpweHBjcylcbi0tXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1Ni1cbmRyaXZlcnMvbmV0L3Bjcy9wY3MteHBjcy1wbGF0LmM6MzU3Olx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1OC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYz0xMDc0PXN0YXRpYyBpbnQgYW44ODExaGJfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbi0tXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk3LVxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM6MTA5ODpcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5OS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjctLyoqXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoyODogKiBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldCAtIFJlYWQgYW5kIGluaXRpYWxpemUgdGhlIHJlc2V0IHByb3BlcnRpZXMgb2ZcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTI5LSAqXHRcdFx0XHRhbiBtZGlvIGRldmljZVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTMzLSAqL1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MzQ6c3RhdGljIGludCBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zNS17XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTQ0PUVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfY3JlYXRlKTtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDYtLyoqXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNDc6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXIgLSBSZWdpc3RlciB0aGUgbWRpbyBkZXZpY2Ugb24gdGhlIE1ESU8gYnVzXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDgtICogQG1kaW9kZXY6IG1kaW9fZGV2aWNlIHN0cnVjdHVyZSB0byBiZSBhZGRlZCB0byB0aGUgTURJTyBidXNcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTEtICovXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNTI6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE1My17XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTczLX1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE3NDpFWFBPUlRfU1lNQk9MKG1kaW9fZGV2aWNlX3JlZ2lzdGVyKTtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3NS1cbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODEtICogVGhpcyBkb2VzbiYjMzk7dCBmcmVlIHRoZSBtZGlvX2RldmljZSBpdHNlbGYsIGl0IG1lcmVseSByZXZlcnNlcyB0aGUgZWZmZWN0c1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTgyOiAqIG9mIG1kaW9fZGV2aWNlX3JlZ2lzdGVyKCkuIFVzZSBtZGlvX2RldmljZV9mcmVlKCkgdG8gZnJlZSB0aGUgZGV2aWNlXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODMtICogYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jPTE5Mj1pbnQgbWRpb2J1c19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE5OS1cdGlmIChtZGlvZGV2LVx1MDAzZWZsYWdzIFx1MDAyNiBNRElPX0RFVklDRV9GTEFHX1BIWSkge1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MjAwOlx0XHRlcnIgPSBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChtZGlvZGV2KTtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTIwMS1cdFx0aWYgKGVycilcbi0tXG5pbmNsdWRlL2xpbnV4L21kaW8uaD05MD1zdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9fZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XG5pbmNsdWRlL2xpbnV4L21kaW8uaDo5MTppbnQgbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcbmluY2x1ZGUvbGludXgvbWRpby5oLTkyLXZvaWQgbWRpb19kZXZpY2VfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1MDY5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHByZXNlbnRlZCBhcyBhIHN1bW1hcnk6CgoqKkRpZ2dpbmcgaW50byB0aGUgYGRzYV9sb29wLmNgIE1vZHVsZSoqCgpBbHJpZ2h0LCBzbyBgZHNhX2xvb3AuY2AgaXMgd2hlcmUgdGhpbmdzIGFyZSBnZXR0aW5nIGludGVyZXN0aW5nLiBNeSBpbml0aWFsIGh1bmNoIHdhcyBjb3JyZWN0OyBpdCBsb29rcyBsaWtlIHRoaXMgaXMgd2hlcmUgYSBgbWRpb2RldmAgc3dpdGNoIGlzIGFjdHVhbGx5ICpjcmVhdGVkKi4gVGhhdCYjMzk7cyBhIGtleSBwaWVjZSBvZiB0aGUgcHV6emxlIEkgd2FzIGxvb2tpbmcgZm9yLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBkaXZlIGRlZXBlci4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bmRhbWVudGFsIHB1cnBvc2Ugb2YgYGRzYV9sb29wLmNgIGFuZCBzcGVjaWZpY2FsbHksIHdoYXQgdGhpcyBgbWRpb2RldmAgc3dpdGNoIGlzLiBMZXQmIzM5O3Mgc3RhcnQgYnkgZGlzc2VjdGluZyB0aGUgY29kZSB3aXRoaW4gdGhpcyBmaWxlLiBUaGUgZG9jdW1lbnRhdGlvbiBzaG91bGQgYmUgcHJldHR5IGNsZWFyLCBidXQgbGV0JiMzOTtzIGFzc3VtZSB0aGUgd29yc3QsIGFuZCBJIG1pZ2h0IG5lZWQgdG8gdHJhY2UgdGhlIHZhcmlhYmxlcywgb3IgYXQgbGVhc3Qgc2VhcmNoIGZvciB0aGUgcmVsYXRlZCBmdW5jdGlvbnMgdG8gdW5kZXJzdGFuZCBpdHMgZnVuY3Rpb25hbGl0eS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZHNhX2xvb3AmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1OnN0cnVjdCBkc2FfbG9vcF92bGFuIHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI2LVx0dTE2IG1lbWJlcnM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjktXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMDpzdHJ1Y3QgZHNhX2xvb3BfbWliX2VudHJ5IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxLVx0Y2hhciBuYW1lW0VUSF9HU1RSSU5HX0xFTl07XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTplbnVtIGRzYV9sb29wX21pYl9jb3VudGVycyB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNi1cdERTQV9MT09QX1BIWV9SRUFEX09LLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM6c3RydWN0IGRzYV9sb29wX3BvcnQge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ6XHRzdHJ1Y3QgZHNhX2xvb3BfbWliX2VudHJ5IG1pYltfX0RTQV9MT09QX0NOVF9NQVhdO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDUtXHR1MTYgcHZpZDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5OnN0cnVjdCBkc2FfbG9vcF9wcml2IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwLVx0c3RydWN0IG1paV9idXNcdCpidXM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MS1cdHVuc2lnbmVkIGludFx0cG9ydF9iYXNlO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTI6XHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiB2bGFuc1tWTEFOX05fVklEXTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUzLVx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjU0Olx0c3RydWN0IGRzYV9sb29wX3BvcnQgcG9ydHNbRFNBX01BWF9QT1JUU107XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01NS19O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTYtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1NzpzdHJ1Y3QgZHNhX2xvb3BfcGRhdGEge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTgtXHQvKiBNdXN0IGJlIGZpcnN0LCBzdWNoIHRoYXQgZHNhX3JlZ2lzdGVyX3N3aXRjaCgpIGNhbiBhY2Nlc3MgdGhpc1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTY2LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Njc6c3RhdGljIHN0cnVjdCBkc2FfbG9vcF9taWJfZW50cnkgZHNhX2xvb3BfbWlic1tdID0ge1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNjgtXHRbRFNBX0xPT1BfUEhZX1JFQURfT0tdXHQ9IHsgXCYjMzQ7cGh5X3JlYWRfb2tcJiMzNDssIH0sXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9NzU9c3RhdGljIHN0cnVjdCBtZGlvX2RldmljZSAqc3dpdGNoX21kaW9kZXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy03Ni1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjc3OmVudW0gZHNhX2xvb3BfZGV2bGlua19yZXNvdXJjZV9pZCB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy03OC1cdERTQV9MT09QX0RFVkxJTktfUEFSQU1fSURfTk9ORSwgIC8qIERFVkxJTktfUkVTT1VSQ0VfSURfUEFSRU5UX1RPUCAqL1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTgxLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6ODI6c3RhdGljIHU2NCBkc2FfbG9vcF9kZXZsaW5rX3Z0dV9nZXQodm9pZCAqcHJpdilcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTgzLXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjg0Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTg1LVx0dW5zaWduZWQgaW50IGksIGNvdW50ID0gMDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjg2Olx0c3RydWN0IGRzYV9sb29wX3ZsYW4gKnZsO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODctXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTYtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo5NzpzdGF0aWMgaW50IGRzYV9sb29wX3NldHVwX2RldmxpbmtfcmVzb3VyY2VzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTk4LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTk5LVx0c3RydWN0IGRldmxpbmtfcmVzb3VyY2Vfc2l6ZV9wYXJhbXMgc2l6ZV9wYXJhbXM7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMDA6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTAxLVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMTUtXHRcdFx0XHRcdCAgICAgIERTQV9MT09QX0RFVkxJTktfUEFSQU1fSURfVlRVLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTE2Olx0XHRcdFx0XHQgICAgICBkc2FfbG9vcF9kZXZsaW5rX3Z0dV9nZXQsIHBzKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTExNy1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMjQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMjU6c3RhdGljIGVudW0gZHNhX3RhZ19wcm90b2NvbCBkc2FfbG9vcF9nZXRfcHJvdG9jb2woc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTI2LVx0XHRcdFx0XHRcdCAgIGludCBwb3J0LFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzMy1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjEzNDpzdGF0aWMgaW50IGRzYV9sb29wX3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzNS17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMzY6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTM3LVx0dW5zaWduZWQgaW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTM5LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgZHMtXHUwMDNlbnVtX3BvcnRzOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0MDpcdFx0bWVtY3B5KHBzLVx1MDAzZXBvcnRzW2ldLm1pYiwgZHNhX2xvb3BfbWlicyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0MTpcdFx0ICAgICAgIHNpemVvZihkc2FfbG9vcF9taWJzKSk7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDItXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ0LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTQ1Olx0cmV0dXJuIGRzYV9sb29wX3NldHVwX2RldmxpbmtfcmVzb3VyY2VzKGRzKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Ni19XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNDctXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDg6c3RhdGljIHZvaWQgZHNhX2xvb3BfdGVhcmRvd24oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNTItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNTM6c3RhdGljIGludCBkc2FfbG9vcF9nZXRfc3NldF9jb3VudChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCBpbnQgc3NldClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE1NC17XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTYwLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTYxOnN0YXRpYyB2b2lkIGRzYV9sb29wX2dldF9zdHJpbmdzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjItXHRcdFx0XHQgdTMyIHN0cmluZ3NldCwgdWludDhfdCAqZGF0YSlcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE2My17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNjQ6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTY1LVx0dW5zaWduZWQgaW50IGk7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTczLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTc0OnN0YXRpYyB2b2lkIGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzUtXHRcdFx0XHQgICAgICAgdWludDY0X3QgKmRhdGEpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzYte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTc3Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE3OC1cdHVuc2lnbmVkIGludCBpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE4My1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE4NDpzdGF0aWMgaW50IGRzYV9sb29wX3BoeV9yZWFkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsIGludCByZWdudW0pXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xODUte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTg2Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE4Ny1cdHN0cnVjdCBtaWlfYnVzICpidXMgPSBwcy1cdTAwM2VidXM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTk4LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTk5OnN0YXRpYyBpbnQgZHNhX2xvb3BfcGh5X3dyaXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDAtXHRcdFx0ICAgICAgaW50IHJlZ251bSwgdTE2IHZhbHVlKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjAxLXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIwMjpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDMtXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzID0gcHMtXHUwMDNlYnVzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIxNC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIxNTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfYnJpZGdlX2pvaW4oc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIxNi1cdFx0XHRcdCAgICAgc3RydWN0IGRzYV9icmlkZ2UgYnJpZGdlLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIyNS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIyNjpzdGF0aWMgdm9pZCBkc2FfbG9vcF9wb3J0X2JyaWRnZV9sZWF2ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjI3LVx0XHRcdFx0ICAgICAgIHN0cnVjdCBkc2FfYnJpZGdlIGJyaWRnZSlcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMzItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyMzM6c3RhdGljIHZvaWQgZHNhX2xvb3BfcG9ydF9zdHBfc3RhdGVfc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMzQtXHRcdFx0XHRcdHU4IHN0YXRlKVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzOS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI0MDpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9maWx0ZXJpbmcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0MS1cdFx0XHRcdFx0Ym9vbCB2bGFuX2ZpbHRlcmluZyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNDktXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNTA6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X3ZsYW5fYWRkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTEtXHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBzd2l0Y2hkZXZfb2JqX3BvcnRfdmxhbiAqdmxhbixcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTUtXHRib29sIHB2aWQgPSB2bGFuLVx1MDAzZWZsYWdzIFx1MDAyNiBCUklER0VfVkxBTl9JTkZPX1BWSUQ7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNTY6XHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cdTAwM2Vwcml2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU3LVx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVx1MDAzZWJ1cztcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1ODpcdHN0cnVjdCBkc2FfbG9vcF92bGFuICp2bDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI1OS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyODM6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X3ZsYW5fZGVsKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODQtXHRcdFx0XHQgIGNvbnN0IHN0cnVjdCBzd2l0Y2hkZXZfb2JqX3BvcnRfdmxhbiAqdmxhbilcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODYtXHRib29sIHVudGFnZ2VkID0gdmxhbi1cdTAwM2VmbGFncyBcdTAwMjYgQlJJREdFX1ZMQU5fSU5GT19VTlRBR0dFRDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI4NzpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODgtXHR1MTYgcHZpZCA9IHBzLVx1MDAzZXBvcnRzW3BvcnRdLnB2aWQ7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODktXHRzdHJ1Y3QgbWlpX2J1cyAqYnVzID0gcHMtXHUwMDNlYnVzO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjkwOlx0c3RydWN0IGRzYV9sb29wX3ZsYW4gKnZsO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjkxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxMC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMxMTpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfY2hhbmdlX210dShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEyLVx0XHRcdFx0ICAgIGludCBuZXdfbXR1KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEzLXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMxNDpcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcml2ID0gZHMtXHUwMDNlcHJpdjtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxNS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjAtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMjE6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X21heF9tdHUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyMi17XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzI1LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzI2OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzYSwgaW50IHBvcnQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjctXHRcdFx0XHQgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMzMtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzQ6c3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBkc2FfbG9vcF9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzU6XHQuZ2V0X3RhZ19wcm90b2NvbFx0PSBkc2FfbG9vcF9nZXRfcHJvdG9jb2wsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzY6XHQuc2V0dXBcdFx0XHQ9IGRzYV9sb29wX3NldHVwLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM3Olx0LnRlYXJkb3duXHRcdD0gZHNhX2xvb3BfdGVhcmRvd24sXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzg6XHQuZ2V0X3N0cmluZ3NcdFx0PSBkc2FfbG9vcF9nZXRfc3RyaW5ncyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMzOTpcdC5nZXRfZXRodG9vbF9zdGF0c1x0PSBkc2FfbG9vcF9nZXRfZXRodG9vbF9zdGF0cyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MDpcdC5nZXRfc3NldF9jb3VudFx0XHQ9IGRzYV9sb29wX2dldF9zc2V0X2NvdW50LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQxOlx0LmdldF9ldGh0b29sX3BoeV9zdGF0c1x0PSBkc2FfbG9vcF9nZXRfZXRodG9vbF9zdGF0cyxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MjpcdC5waHlfcmVhZFx0XHQ9IGRzYV9sb29wX3BoeV9yZWFkLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQzOlx0LnBoeV93cml0ZVx0XHQ9IGRzYV9sb29wX3BoeV93cml0ZSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NDpcdC5wb3J0X2JyaWRnZV9qb2luXHQ9IGRzYV9sb29wX3BvcnRfYnJpZGdlX2pvaW4sXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDU6XHQucG9ydF9icmlkZ2VfbGVhdmVcdD0gZHNhX2xvb3BfcG9ydF9icmlkZ2VfbGVhdmUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDY6XHQucG9ydF9zdHBfc3RhdGVfc2V0XHQ9IGRzYV9sb29wX3BvcnRfc3RwX3N0YXRlX3NldCxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NzpcdC5wb3J0X3ZsYW5fZmlsdGVyaW5nXHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9maWx0ZXJpbmcsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDg6XHQucG9ydF92bGFuX2FkZFx0XHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9hZGQsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDk6XHQucG9ydF92bGFuX2RlbFx0XHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9kZWwsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTA6XHQucG9ydF9jaGFuZ2VfbXR1XHQ9IGRzYV9sb29wX3BvcnRfY2hhbmdlX210dSxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MTpcdC5wb3J0X21heF9tdHVcdFx0PSBkc2FfbG9vcF9wb3J0X21heF9tdHUsXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTI6XHQucGh5bGlua19nZXRfY2Fwc1x0PSBkc2FfbG9vcF9waHlsaW5rX2dldF9jYXBzLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzUzLX07XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTU6c3RhdGljIGludCBkc2FfbG9vcF9kcnZfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU2LXtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1NzpcdHN0cnVjdCBkc2FfbG9vcF9wZGF0YSAqcGRhdGEgPSBtZGlvZGV2LVx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU4Olx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzU5LVx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM4Mi1cdGRzLVx1MDAzZWRldiA9IFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2O1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzgzOlx0ZHMtXHUwMDNlb3BzID0gXHUwMDI2ZHNhX2xvb3BfZHJpdmVyO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzg0LVx0ZHMtXHUwMDNlcHJpdiA9IHBzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5Ni1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM5NzpzdGF0aWMgdm9pZCBkc2FfbG9vcF9kcnZfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5OC17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zOTktXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMgPSBkZXZfZ2V0X2RydmRhdGEoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDAwOlx0c3RydWN0IGRzYV9sb29wX3ByaXYgKnBzO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDAxLVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQxMC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQxMTpzdGF0aWMgdm9pZCBkc2FfbG9vcF9kcnZfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDEyLXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjItXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MjM6c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBkc2FfbG9vcF9kcnYgPSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjQtXHQubWRpb2Rydi5kcml2ZXJcdD0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyNi1cdH0sXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjc6XHQucHJvYmVcdD0gZHNhX2xvb3BfZHJ2X3Byb2JlLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDI4Olx0LnJlbW92ZVx0PSBkc2FfbG9vcF9kcnZfcmVtb3ZlLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDI5Olx0LnNodXRkb3duID0gZHNhX2xvb3BfZHJ2X3NodXRkb3duLFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDMwLX07XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzEtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzI6c3RhdGljIGludCBkc2FfbG9vcF9idXNfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDMzLVx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBkZXZpY2VfZHJpdmVyICpkcnYpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzQte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM1Olx0cmV0dXJuIGRydiA9PSBcdTAwMjZkc2FfbG9vcF9kcnYubWRpb2Rydi5kcml2ZXI7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzYtfVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDM3LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM4OnN0YXRpYyB2b2lkIGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3Rlcih2b2lkKVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDM5LXtcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NDUtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDY6c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NDcte1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ4Olx0c3RhdGljIHN0cnVjdCBkc2FfbG9vcF9wZGF0YSBkc2FfbG9vcF9wZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0OS1cdFx0LmNkID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3MC1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3MTpcdHN3aXRjaF9tZGlvZGV2LVx1MDAzZWJ1c19tYXRjaCA9IGRzYV9sb29wX2J1c19tYXRjaDtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3MjpcdHN3aXRjaF9tZGlvZGV2LVx1MDAzZWRldi5wbGF0Zm9ybV9kYXRhID0gXHUwMDI2ZHNhX2xvb3BfcGRhdGE7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDgxLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDgyOnN0YXRpYyBpbnQgX19pbml0IGRzYV9sb29wX2luaXQodm9pZClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4My17XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDg2LVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDg3Olx0cmV0ID0gZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KCk7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00ODgtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ5My1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5NDpcdHJldCA9IG1kaW9fZHJpdmVyX3JlZ2lzdGVyKFx1MDAyNmRzYV9sb29wX2Rydik7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTUtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0OTY6XHRcdGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3RlcigpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDk3LVx0XHRtZGlvX2RldmljZV9yZW1vdmUoc3dpdGNoX21kaW9kZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwMi19XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDM6bW9kdWxlX2luaXQoZHNhX2xvb3BfaW5pdCk7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MDQtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDU6c3RhdGljIHZvaWQgX19leGl0IGRzYV9sb29wX2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwNi17XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDc6XHRtZGlvX2RyaXZlcl91bnJlZ2lzdGVyKFx1MDAyNmRzYV9sb29wX2Rydik7XG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDg6XHRkc2FfbG9vcF9waHlkZXZzX3VucmVnaXN0ZXIoKTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwOS1cdG1kaW9fZGV2aWNlX3JlbW92ZShzd2l0Y2hfbWRpb2Rldik7XG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTExLX1cbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUxMjptb2R1bGVfZXhpdChkc2FfbG9vcF9leGl0KTtcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUxMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDE3NTQKCQkJCQkJCW91dHB1dDogMTA4CgkJCQkJCQl0aG91Z2h0czogMzU1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFzc2Vzc21lbnQ6IFRoaXMgUGF0Y2ggaXMgTm90IEZ1enphYmxlIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqCgpPa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBJJiMzOTt2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBgZHNhX2xvb3AuY2AgZmlsZSwgYW5kIGl0JiMzOTtzIGNsZWFyIHRoYXQgaXQmIzM5O3MgYSBzb2Z0d2FyZS1lbXVsYXRlZCBEU0Egc3dpdGNoLCBidXQgaXQgZG9lc24mIzM5O3QgdHJ5IHRvIGVtdWxhdGUgYW55IHNwZWNpZmljIGhhcmR3YXJlIGxpa2UgdGhlIGBtdjg4ZTZ4eHhgLiBJdCBjcmVhdGVzIGl0cyBvd24gTURJTyBkZXZpY2UgYW5kIHJlZ2lzdGVycyBpdHMgb3duIGRyaXZlciwgYGRzYV9sb29wX2RydmAsIHRvdGFsbHkgaW5kZXBlbmRlbnQgb2YgdGhlIE1hcnZlbGwgY2hpcC4gIFNvLCBiYXNlZCBvbiB0aGF0LCB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIGlzbiYjMzk7dCBnb2luZyB0byBiZSByZWFjaGFibGUgdGhyb3VnaCBgZHNhX2xvb3BgLgoKSSBhbHNvIGNoZWNrZWQgYGRzYV9sb29wX2JkaW5mby5jYCB3aGljaCByZWdpc3RlcnMgYSBmaXhlZCBQSFksIGJ1dCBhZ2FpbiwgdGhpcyBkb2VzbiYjMzk7dCBvZmZlciB1cyBhIHBhdGggdG8gZW11bGF0ZSBvciByZWFjaCB0aGUgTWFydmVsbCBjaGlwLgoKRnVydGhlcm1vcmUsIEkgaGF2ZSB2ZXJpZmllZCB0aGVyZSYjMzk7cyBubyBvdGhlciBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgYG12ODhlNnh4eGAgd2l0aGluIHRoaXMgY29udGV4dC4KClRoZXJlZm9yZSwgdGhlIGNyaXRpY2FsIGNvbmNsdXNpb24gaXMgdGhhdCB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIGlzIHNpbXBseSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZS4gVGhpcyBtZWFucyB3ZSBjYW4mIzM5O3QgZnV6eiBpdC4KCkxldCBtZSBmb3JtdWxhdGUgdGhlIHJlYXNvbmluZyBmb3IgdGhlIHJlY29yZDogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBtdjg4ZTZ4eHhgIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IHBoeXNpY2FsIHN3aXRjaGVzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gUUVNVSBvciB0aGUga2VybmVsLCBhbmQgdGhlIGRyaXZlciByZXF1aXJlcyBhIGRldmljZSB0cmVlIG5vZGUgdG8gcHJvYmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OwoKSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEkgY2hlY2tlZCB0aGUgYHN5emthbGxlcmAgY29uZmlndXJhdGlvbnMuIFdoaWxlIGl0JiMzOTtzIGNvbW1vbiB0byBzZWUgYENPTkZJR19ORVRfRFNBX01WODhFNlhYWD15YCBlbmFibGVkLCB3aXRob3V0IHRoZSBhY3R1YWwgaGFyZHdhcmUgb3IgZW11bGF0aW9uLCB0aGUgZHJpdmVyIGp1c3Qgc2l0cyB0aGVyZSwgYW5kIGl0cyBwcm9iZSBmdW5jdGlvbiBuZXZlciBnZXRzIGV4ZWN1dGVkLiBUaGlzIGZ1cnRoZXIgc29saWRpZmllcyB0aGUgY29uY2x1c2lvbi4KCkkmIzM5O20gY29uZmlkZW50IGluIG15IGFzc2Vzc21lbnQuIEkmIzM5O20gZ29pbmcgdG8gc2V0IHRoZSByZXN1bHRzIHRvIGBXb3J0aEZ1enppbmc9ZmFsc2VgIHdpdGggdGhlIHJlYXNvbmluZyBJJiMzOTt2ZSBzdGF0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlciwgd2hpY2ggaXMgYSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgZm9yIE1hcnZlbGwgODhFNnh4eCBwaHlzaWNhbCBzd2l0Y2hlcy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGlzIGhhcmR3YXJlIGluIFFFTVUgb3IgdGhlIGtlcm5lbCwgYW5kIHRoZSBkcml2ZXIgcmVxdWlyZXMgYSBkZXZpY2UgdHJlZSBub2RlIHRvIHByb2JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgYW5kIGNhbm5vdCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IHBoeXNpY2FsIHN3aXRjaGVzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gUUVNVSBvciB0aGUga2VybmVsLCBhbmQgdGhlIGRyaXZlciByZXF1aXJlcyBhIGRldmljZSB0cmVlIG5vZGUgdG8gcHJvYmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NDo0Ny43MDc5NTI0NzZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMjEyNjc1MzA3MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgc3dpdGNoZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBRRU1VIG9yIHRoZSBrZXJuZWwsIGFuZCB0aGUgZHJpdmVyIHJlcXVpcmVzIGEgZGV2aWNlIHRyZWUgbm9kZSB0byBwcm9iZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDQ6NDcuNzA3OTU4OTk2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTU3NjY1NjUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlMWRiZWJkNjQ1NzliYzAxNTcwNGIzYmUwZTg2NGQ1YzJkMWI1MjUzXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDE1IDA3OjQ0OjQ1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcXG5pbmRleCA4MGI4NzdjNzQ1MTNkNi4uNmZhYWU3NGRlMDRhOWIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xcbkBAIC0yNTIzLDcgKzI1MjMsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2FkZF9icm9hZGNhc3Qoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG4gXFx0cmV0dXJuIG12ODhlNnh4eF9wb3J0X2RiX2xvYWRfcHVyZ2UoY2hpcCwgcG9ydCwgYnJvYWRjYXN0LCB2aWQsIHN0YXRlKTtcXG4gfVxcbiBcXG4tc3RhdGljIGludCBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IHZpZClcXG4raW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKVxcbiB7XFxuIFxcdGludCBwb3J0O1xcbiBcXHRpbnQgZXJyO1xcbkBAIC01NzQ3LDYgKzU3NDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MDk3LFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYwODVcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMCxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTc5Miw2ICs1NzkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjA5NyxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MDk3Lzg4RTYwOTdGXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXFxuQEAgLTU4MTcsNiArNTgxOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjEyM1xcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gMTAyNCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDMsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTU4NjMsNiArNTg2Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNDEsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjE0MVxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gMjU2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSAyMDQ4LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNixcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTg4OSw2ICs1ODkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjE2NSxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTYxXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSAxMDI0LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNixcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTkxNSw2ICs1OTIwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjE2NSxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTY1XFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNixcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcXG5AQCAtNTk0MCw2ICs1OTQ2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTcxXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTk2NSw2ICs1OTcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTcyXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNTk5MSw2ICs1OTk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTc1XFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNjAxNiw2ICs2MDI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTc2XFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG5AQCAtNjA2NCw2ICs2MDc0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTkwXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSAxNjM4NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuQEAgLTYwODksNiArNjEwMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjE5MFhcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDE2Mzg0LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFx0LyogMTAgKyBaODAgKi9cXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcXG5AQCAtNjExNCw2ICs2MTI2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MTkxXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX21hY3MgPSAxNjM4NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuQEAgLTYxMzksNiArNjE1Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTMsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjE5MVhcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxcbiBcXHRcXHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxcbkBAIC02MTY0LDYgKzYxNzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYxOTNYXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFx0LyogMTAgKyBaODAgKi9cXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcXG4gXFx0XFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXFxuQEAgLTYyMTgsNiArNjIzMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjI0MFxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTYyNjcsNiArNjI4Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjI5MFxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE2LFxcbkBAIC02Mjk0LDYgKzYzMTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzMjBcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxcbkBAIC02MzIyLDYgKzYzNDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzMjFcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxcbkBAIC02MzUwLDYgKzYzNjksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzQxLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzNDFcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDI1NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gMjA0OCxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDYsXFxuQEAgLTYzNzcsNiArNjM5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjM1MFxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTY0MDIsNiArNjQyMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjM1MVxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTY0MjcsNiArNjQ0OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjM1MlxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuQEAgLTY0NTMsNiArNjQ3Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTMsXFxuIFxcdFxcdC5uYW1lID0gXFxcIk1hcnZlbGwgODhFNjM2MVxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gMTYzODQsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXG4gXFx0XFx0LyogUG9ydHMgMSwgMiBhbmQgOCBhcmUgbm90IHJvdXRlZCAqL1xcbkBAIC02NDgwLDYgKzY1MDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzOTBcXFwiLFxcbiBcXHRcXHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXFxuK1xcdFxcdC5hdHVfZmlkX3JlZyA9IHRydWUsXFxuIFxcdFxcdC5udW1fbWFjcyA9IDE2Mzg0LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFx0LyogMTAgKyBaODAgKi9cXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcXG5AQCAtNjUwOCw2ICs2NTMzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcXG4gXFx0XFx0Lm5hbWUgPSBcXFwiTWFydmVsbCA4OEU2MzkwWFxcXCIsXFxuIFxcdFxcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcXG4rXFx0XFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcXG4gXFx0XFx0Lm51bV9tYWNzID0gMTYzODQsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxcbkBAIC02NTM1LDYgKzY1NjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxcbiBcXHRcXHQubmFtZSA9IFxcXCJNYXJ2ZWxsIDg4RTYzOTNYXFxcIixcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxcbitcXHRcXHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFx0LyogMTAgKyBaODAgKi9cXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcXG4gXFx0XFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcXG5pbmRleCBlOTY2ZTdjNGNjNWRlYS4uYWJiYjQ0NmI3MzQ1NmUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxcbkBAIC0xNzYsNiArMTc2LDkgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHtcXG4gXFx0LyogU3VwcG9ydHMgUFRQICovXFxuIFxcdGJvb2wgcHRwX3N1cHBvcnQ7XFxuIFxcbitcXHQvKiBIYXMgYSBkZWRpY2F0ZWQgQVRVIEZJRCByZWdpc3Rlci4gKi9cXG4rXFx0Ym9vbCBhdHVfZmlkX3JlZztcXG4rXFxuIFxcdC8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0XFxuIFxcdCAqIHBvcnQgMCwgMSBtZWFucyBpbnRlcm5hbCBQSFlzIHJhbmdlIHN0YXJ0cyBhdCBwb3J0IDEsIGV0Y1xcbiBcXHQgKi9cXG5AQCAtODkwLDQgKzg5Myw2IEBAIGludCBtdjg4ZTZ4eHhfdnR1X3dhbGsoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbiBcXHRcXHRcXHRcXHQgdm9pZCAqcHJpdiksXFxuIFxcdFxcdCAgICAgICB2b2lkICpwcml2KTtcXG4gXFxuK2ludCBtdjg4ZTZ4eHhfYnJvYWRjYXN0X3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IHZpZCk7XFxuK1xcbiAjZW5kaWYgLyogX01WODhFNlhYWF9DSElQX0ggKi9cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9kZXZsaW5rLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuY1xcbmluZGV4IDZmMDM0ODQxODgzYzZmLi41MTY4MzM1ZjUyMjg5YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jXFxuQEAgLTYxLDYgKzYxLDEyIEBAIGludCBtdjg4ZTZ4eHhfZGV2bGlua19wYXJhbV9zZXQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCB1MzIgaWQsXFxuIFxcdHN3aXRjaCAoaWQpIHtcXG4gXFx0Y2FzZSBNVjg4RTZYWFhfREVWTElOS19QQVJBTV9JRF9BVFVfSEFTSDpcXG4gXFx0XFx0ZXJyID0gbXY4OGU2eHh4X2F0dV9zZXRfaGFzaChjaGlwLCBjdHgtXFx1MDAzZXZhbC52dTgpO1xcbitcXHRcXHRpZiAoZXJyKVxcbitcXHRcXHRcXHRicmVhaztcXG4rXFx0XFx0ZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9mbHVzaChjaGlwLCAwLCB0cnVlKTtcXG4rXFx0XFx0aWYgKGVycilcXG4rXFx0XFx0XFx0YnJlYWs7XFxuK1xcdFxcdGVyciA9IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoY2hpcCwgMCk7XFxuIFxcdFxcdGJyZWFrO1xcbiBcXHRkZWZhdWx0OlxcbiBcXHRcXHRlcnIgPSAtRU9QTk9UU1VQUDtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jXFxuaW5kZXggYzQ3ZjA2OGY1NmIzMmEuLjZiZWU5NDNjODM1NzVkIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuY1xcbkBAIC0xMzUsNyArMTM1LDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfYXR1X29wKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgdTE2IGZpZCwgdTE2IG9wKVxcbiBcXHRpbnQgZXJyO1xcbiBcXG4gXFx0LyogRklEIGJpdHMgYXJlIGRpc3BhdGNoZWQgYWxsIGFyb3VuZCBncmFkdWFsbHkgYXMgbW9yZSBhcmUgc3VwcG9ydGVkICovXFxuLVxcdGlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSBcXHUwMDNlIDI1Nikge1xcbitcXHRpZiAoY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlYXR1X2ZpZF9yZWcpIHtcXG4gXFx0XFx0ZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9maWRfd3JpdGUoY2hpcCwgZmlkKTtcXG4gXFx0XFx0aWYgKGVycilcXG4gXFx0XFx0XFx0cmV0dXJuIGVycjtcXG5AQCAtMTc5LDcgKzE3OSw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2F0dV9maWRfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiAqZmlkKVxcbiBcXHR1MTYgdmFsID0gMCwgdXBwZXIgPSAwLCBvcCA9IDA7XFxuIFxcdGludCBlcnIgPSAtRU9QTk9UU1VQUDtcXG4gXFxuLVxcdGlmIChtdjg4ZTZ4eHhfbnVtX2RhdGFiYXNlcyhjaGlwKSBcXHUwMDNlIDI1Nikge1xcbitcXHRpZiAoY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlYXR1X2ZpZF9yZWcpIHtcXG4gXFx0XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2MzUyX0cxX0FUVV9GSUQsIFxcdTAwMjZ2YWwpO1xcbiBcXHRcXHR2YWwgXFx1MDAyNj0gMHhmZmY7XFxuIFxcdFxcdGlmIChlcnIpXFxuQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXFxuIFxcdFxcdGlmIChlbnRyeS1cXHUwMDNldHJ1bmspXFxuIFxcdFxcdFxcdGRhdGEgfD0gTVY4OEU2WFhYX0cxX0FUVV9EQVRBX1RSVU5LO1xcbiBcXG4tXFx0XFx0ZGF0YSB8PSAoZW50cnktXFx1MDAzZXBvcnR2ZWMgXFx1MDAyNiBtdjg4ZTZ4eHhfcG9ydF9tYXNrKGNoaXApKSBcXHUwMDNjXFx1MDAzYyA0O1xcbitcXHRcXHRkYXRhIHw9IGVudHJ5LVxcdTAwM2Vwb3J0dmVjIFxcdTAwM2NcXHUwMDNjIDQ7XFxuIFxcdH1cXG4gXFxuIFxcdHJldHVybiBtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0FUVV9EQVRBLCBkYXRhKTtcXG5AQCAtMzI2LDYgKzMyNiwxMSBAQCBpbnQgbXY4OGU2eHh4X2cxX2F0dV9sb2FkcHVyZ2Uoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgZmlkLFxcbiBcXHRpZiAoZXJyKVxcbiBcXHRcXHRyZXR1cm4gZXJyO1xcbiBcXG4rXFx0LyogTWFzayBwb3J0dmVjIHRvIGEgY2hpcCdzIHJlYWwgcG9ydHMgc28gdGhleSBjYW5ub3Qgc3BpbGwgaW50b1xcbitcXHQgKiBhZGphY2VudCBBVFUgRGF0YSByZWdpc3RlciBmaWVsZHMuXFxuK1xcdCAqL1xcbitcXHRlbnRyeS1cXHUwMDNlcG9ydHZlYyBcXHUwMDI2PSBtdjg4ZTZ4eHhfcG9ydF9tYXNrKGNoaXApO1xcbitcXG4gXFx0ZXJyID0gbXY4OGU2eHh4X2cxX2F0dV9kYXRhX3dyaXRlKGNoaXAsIGVudHJ5KTtcXG4gXFx0aWYgKGVycilcXG4gXFx0XFx0cmV0dXJuIGVycjtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDQ6NDguNDI0NzE2MzUxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjA1NTA3NTcwNTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgc3dpdGNoZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBRRU1VIG9yIHRoZSBrZXJuZWwsIGFuZCB0aGUgZHJpdmVyIHJlcXVpcmVzIGEgZGV2aWNlIHRyZWUgbm9kZSB0byBwcm9iZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlMWRiZWJkNjQ1NzliYzAxNTcwNGIzYmUwZTg2NGQ1YzJkMWI1MjUzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgMTUgMDc6NDQ6NDUgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5pbmRleCA4MGI4NzdjNzQ1MTNkNi4uNmZhYWU3NGRlMDRhOWIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcbkBAIC0yNTIzLDcgKzI1MjMsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2FkZF9icm9hZGNhc3Qoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiBcdHJldHVybiBtdjg4ZTZ4eHhfcG9ydF9kYl9sb2FkX3B1cmdlKGNoaXAsIHBvcnQsIGJyb2FkY2FzdCwgdmlkLCBzdGF0ZSk7XG4gfVxuIFxuLXN0YXRpYyBpbnQgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiB2aWQpXG4raW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKVxuIHtcbiBcdGludCBwb3J0O1xuIFx0aW50IGVycjtcbkBAIC01NzQ3LDYgKzU3NDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MDk3LFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MDg1XCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDEwLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU3OTIsNiArNTc5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYwOTcsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYwOTcvODhFNjA5N0ZcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG5AQCAtNTgxNyw2ICs1ODE5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjE2NSxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjEyM1wiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDEwMjQsXG4gXHRcdC5udW1fcG9ydHMgPSAzLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU4NjMsNiArNTg2Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNDEsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxNDFcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSAyNTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDIwNDgsXG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU4ODksNiArNTg5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYxNjUsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxNjFcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSAxMDI0LFxuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC01OTE1LDYgKzU5MjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MTY1LFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MTY1XCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG5AQCAtNTk0MCw2ICs1OTQ2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjE3MVwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTU5NjUsNiArNTk3Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTIsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxNzJcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC01OTkxLDYgKzU5OTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUxLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MTc1XCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNjAxNiw2ICs2MDI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MixcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjE3NlwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTYwNjQsNiArNjA3NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxOTBcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSAxNjM4NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02MDg5LDYgKzYxMDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MTkwWFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuQEAgLTYxMTQsNiArNjEyNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzOTAsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYxOTFcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSAxNjM4NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02MTM5LDYgKzYxNTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MTkxWFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDEsXG5AQCAtNjE2NCw2ICs2MTc4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjE5M1hcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuIFx0XHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcbkBAIC02MjE4LDYgKzYyMzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MjQwXCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNjI2Nyw2ICs2MjgzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjI5MFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXG4gXHRcdC5udW1fZ3BpbyA9IDE2LFxuQEAgLTYyOTQsNiArNjMxMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzMjAsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYzMjBcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMixcbkBAIC02MzIyLDYgKzYzNDAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzIwLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MzIxXCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXG5AQCAtNjM1MCw2ICs2MzY5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM0MSxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjM0MVwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDI1NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMjA0OCxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG5AQCAtNjM3Nyw2ICs2Mzk3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM1MSxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjM1MFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuQEAgLTY0MDIsNiArNjQyMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5mYW1pbHkgPSBNVjg4RTZYWFhfRkFNSUxZXzYzNTEsXG4gXHRcdC5uYW1lID0gXCJNYXJ2ZWxsIDg4RTYzNTFcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbkBAIC02NDI3LDYgKzY0NDksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzUyLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MzUyXCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG5AQCAtNjQ1Myw2ICs2NDc2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MyxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjM2MVwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXG4gXHRcdC8qIFBvcnRzIDEsIDIgYW5kIDggYXJlIG5vdCByb3V0ZWQgKi9cbkBAIC02NDgwLDYgKzY1MDQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkwLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MzkwXCIsXG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNDA5NixcbitcdFx0LmF0dV9maWRfcmVnID0gdHJ1ZSxcbiBcdFx0Lm51bV9tYWNzID0gMTYzODQsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXG5AQCAtNjUwOCw2ICs2NTMzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0LmZhbWlseSA9IE1WODhFNlhYWF9GQU1JTFlfNjM5MCxcbiBcdFx0Lm5hbWUgPSBcIk1hcnZlbGwgODhFNjM5MFhcIixcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA0MDk2LFxuK1x0XHQuYXR1X2ZpZF9yZWcgPSB0cnVlLFxuIFx0XHQubnVtX21hY3MgPSAxNjM4NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbkBAIC02NTM1LDYgKzY1NjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQuZmFtaWx5ID0gTVY4OEU2WFhYX0ZBTUlMWV82MzkzLFxuIFx0XHQubmFtZSA9IFwiTWFydmVsbCA4OEU2MzkzWFwiLFxuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDQwOTYsXG4rXHRcdC5hdHVfZmlkX3JlZyA9IHRydWUsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5udW1fdGNhbV9lbnRyaWVzID0gMjU2LFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcbmluZGV4IGU5NjZlN2M0Y2M1ZGVhLi5hYmJiNDQ2YjczNDU2ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuQEAgLTE3Niw2ICsxNzYsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0LyogU3VwcG9ydHMgUFRQICovXG4gXHRib29sIHB0cF9zdXBwb3J0O1xuIFxuK1x0LyogSGFzIGEgZGVkaWNhdGVkIEFUVSBGSUQgcmVnaXN0ZXIuICovXG4rXHRib29sIGF0dV9maWRfcmVnO1xuK1xuIFx0LyogSW50ZXJuYWwgUEhZIHN0YXJ0IGluZGV4LiAwIG1lYW5zIHRoYXQgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXRcbiBcdCAqIHBvcnQgMCwgMSBtZWFucyBpbnRlcm5hbCBQSFlzIHJhbmdlIHN0YXJ0cyBhdCBwb3J0IDEsIGV0Y1xuIFx0ICovXG5AQCAtODkwLDQgKzg5Myw2IEBAIGludCBtdjg4ZTZ4eHhfdnR1X3dhbGsoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuIFx0XHRcdFx0IHZvaWQgKnByaXYpLFxuIFx0XHQgICAgICAgdm9pZCAqcHJpdik7XG4gXG4raW50IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgdmlkKTtcbitcbiAjZW5kaWYgLyogX01WODhFNlhYWF9DSElQX0ggKi9cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZGV2bGluay5jXG5pbmRleCA2ZjAzNDg0MTg4M2M2Zi4uNTE2ODMzNWY1MjI4OWMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2RldmxpbmsuY1xuKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9kZXZsaW5rLmNcbkBAIC02MSw2ICs2MSwxMiBAQCBpbnQgbXY4OGU2eHh4X2RldmxpbmtfcGFyYW1fc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgdTMyIGlkLFxuIFx0c3dpdGNoIChpZCkge1xuIFx0Y2FzZSBNVjg4RTZYWFhfREVWTElOS19QQVJBTV9JRF9BVFVfSEFTSDpcbiBcdFx0ZXJyID0gbXY4OGU2eHh4X2F0dV9zZXRfaGFzaChjaGlwLCBjdHgtXHUwMDNldmFsLnZ1OCk7XG4rXHRcdGlmIChlcnIpXG4rXHRcdFx0YnJlYWs7XG4rXHRcdGVyciA9IG12ODhlNnh4eF9nMV9hdHVfZmx1c2goY2hpcCwgMCwgdHJ1ZSk7XG4rXHRcdGlmIChlcnIpXG4rXHRcdFx0YnJlYWs7XG4rXHRcdGVyciA9IG12ODhlNnh4eF9icm9hZGNhc3Rfc2V0dXAoY2hpcCwgMCk7XG4gXHRcdGJyZWFrO1xuIFx0ZGVmYXVsdDpcbiBcdFx0ZXJyID0gLUVPUE5PVFNVUFA7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwxX2F0dS5jXG5pbmRleCBjNDdmMDY4ZjU2YjMyYS4uNmJlZTk0M2M4MzU3NWQgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDFfYXR1LmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMV9hdHUuY1xuQEAgLTEzNSw3ICsxMzUsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfb3Aoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCB1MTYgZmlkLCB1MTYgb3ApXG4gXHRpbnQgZXJyO1xuIFxuIFx0LyogRklEIGJpdHMgYXJlIGRpc3BhdGNoZWQgYWxsIGFyb3VuZCBncmFkdWFsbHkgYXMgbW9yZSBhcmUgc3VwcG9ydGVkICovXG4tXHRpZiAobXY4OGU2eHh4X251bV9kYXRhYmFzZXMoY2hpcCkgXHUwMDNlIDI1Nikge1xuK1x0aWYgKGNoaXAtXHUwMDNlaW5mby1cdTAwM2VhdHVfZmlkX3JlZykge1xuIFx0XHRlcnIgPSBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF93cml0ZShjaGlwLCBmaWQpO1xuIFx0XHRpZiAoZXJyKVxuIFx0XHRcdHJldHVybiBlcnI7XG5AQCAtMTc5LDcgKzE3OSw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2F0dV9maWRfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiAqZmlkKVxuIFx0dTE2IHZhbCA9IDAsIHVwcGVyID0gMCwgb3AgPSAwO1xuIFx0aW50IGVyciA9IC1FT1BOT1RTVVBQO1xuIFxuLVx0aWYgKG12ODhlNnh4eF9udW1fZGF0YWJhc2VzKGNoaXApIFx1MDAzZSAyNTYpIHtcbitcdGlmIChjaGlwLVx1MDAzZWluZm8tXHUwMDNlYXR1X2ZpZF9yZWcpIHtcbiBcdFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2MzUyX0cxX0FUVV9GSUQsIFx1MDAyNnZhbCk7XG4gXHRcdHZhbCBcdTAwMjY9IDB4ZmZmO1xuIFx0XHRpZiAoZXJyKVxuQEAgLTIzOSw3ICsyMzksNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4gXHRcdGlmIChlbnRyeS1cdTAwM2V0cnVuaylcbiBcdFx0XHRkYXRhIHw9IE1WODhFNlhYWF9HMV9BVFVfREFUQV9UUlVOSztcbiBcbi1cdFx0ZGF0YSB8PSAoZW50cnktXHUwMDNlcG9ydHZlYyBcdTAwMjYgbXY4OGU2eHh4X3BvcnRfbWFzayhjaGlwKSkgXHUwMDNjXHUwMDNjIDQ7XG4rXHRcdGRhdGEgfD0gZW50cnktXHUwMDNlcG9ydHZlYyBcdTAwM2NcdTAwM2MgNDtcbiBcdH1cbiBcbiBcdHJldHVybiBtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0FUVV9EQVRBLCBkYXRhKTtcbkBAIC0zMjYsNiArMzI2LDExIEBAIGludCBtdjg4ZTZ4eHhfZzFfYXR1X2xvYWRwdXJnZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIHUxNiBmaWQsXG4gXHRpZiAoZXJyKVxuIFx0XHRyZXR1cm4gZXJyO1xuIFxuK1x0LyogTWFzayBwb3J0dmVjIHRvIGEgY2hpcCdzIHJlYWwgcG9ydHMgc28gdGhleSBjYW5ub3Qgc3BpbGwgaW50b1xuK1x0ICogYWRqYWNlbnQgQVRVIERhdGEgcmVnaXN0ZXIgZmllbGRzLlxuK1x0ICovXG4rXHRlbnRyeS1cdTAwM2Vwb3J0dmVjIFx1MDAyNj0gbXY4OGU2eHh4X3BvcnRfbWFzayhjaGlwKTtcbitcbiBcdGVyciA9IG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZShjaGlwLCBlbnRyeSk7XG4gXHRpZiAoZXJyKVxuIFx0XHRyZXR1cm4gZXJyO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDQ6NDguNDI0NzE4MDcxWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTg4OTA4NzI5NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaCB0byB0aGUgYG12ODhlNnh4eGAgRFNBIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIHRoZSBgbXY4OGU2eHh4YCBEU0EgZHJpdmVyLiBGaXJzdCBnbGFuY2UsIGl0IHNlZW1zIHRvIGJlIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHR3ZWFraW5nIHRoZSBBVFUgKEFkZHJlc3MgVHJhbnNsYXRpb24gVW5pdCkgaGFzaCBzZXR0aW5nIGxvZ2ljIHRocm91Z2ggZGV2bGluayBhbmQgYWxzbyBmaXhpbmcgc29tZSBpc3N1ZXMgcmVsYXRlZCB0byB0aGUgQVRVIEZJRCByZWdpc3RlciBhY2Nlc3MgYW5kIHBvcnR2ZWMgbWFza2luZy4gVGhhdCdzIGdvb2QsIGJ1dCBteSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMgYWx3YXlzIGFib3V0IHJlYWNoYWJpbGl0eSwgZXNwZWNpYWxseSBmb3IgYSBkcml2ZXIgbGlrZSB0aGlzLlxuXG5TcGVjaWZpY2FsbHksIHdoYXQncyBiZWVuIGNoYW5nZWQ/IExldCBtZSBicmVhayBpdCBkb3duOiBUaGUgcGF0Y2ggZXhwb3NlcyBgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cGAgYnkgcmVtb3ZpbmcgYHN0YXRpY2AgYW5kIGFkZGluZyBpdCB0byBgY2hpcC5oYC4gSXQgYWxzbyBpbnRyb2R1Y2VzIGEgYm9vbGVhbiBmbGFnIGBhdHVfZmlkX3JlZ2AgdG8gYHN0cnVjdCBtdjg4ZTZ4eHhfaW5mb2AgYW5kIHNldHMgaXQgZm9yIGEgYnVuY2ggb2YgTWFydmVsbCBzd2l0Y2ggY2hpcHMgaW4gYG12ODhlNnh4eF90YWJsZWAuIFRoZW4sIHdoZW4gdGhlIGBNVjg4RTZYWFhfREVWTElOS19QQVJBTV9JRF9BVFVfSEFTSGAgcGFyYW1ldGVyIGlzIHNldCwgdGhlIHBhdGNoIG5vdyBmbHVzaGVzIHRoZSBBVFUgdXNpbmcgYG12ODhlNnh4eF9nMV9hdHVfZmx1c2hgIGFuZCBjYWxscyBgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cChjaGlwLCAwKWAuIEZ1cnRoZXIsIGluIHRoZSBgbXY4OGU2eHh4X2cxX2F0dV9vcGAgYW5kIGBtdjg4ZTZ4eHhfZzFfYXR1X2ZpZF9yZWFkYCBmdW5jdGlvbnMsIGl0IHJlcGxhY2VzIHRoYXQgY2hlY2sgdXNpbmcgYG12ODhlNnh4eF9udW1fZGF0YWJhc2VzKGNoaXApIFx1MDAzZSAyNTZgIHdpdGggYGNoaXAtXHUwMDNlaW5mby1cdTAwM2VhdHVfZmlkX3JlZ2AuIEl0IGFsc28gY2hhbmdlcyBwb3J0dmVjIG1hc2tpbmcgaW4gYG12ODhlNnh4eF9nMV9hdHVfZGF0YV93cml0ZWAgYW5kIGFkZHMgYSBwb3J0dmVjIG1hc2sgaW4gYG12ODhlNnh4eF9nMV9hdHVfbG9hZHB1cmdlYC5cblxuQWxyaWdodCwgc2luY2UgdGhpcyBkcml2ZXIgaXMgZm9yIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggc3dpdGNoLCBpdCdzIGhhcmR3YXJlLXNwZWNpZmljLiBUaGlzIGlzIGEgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBkcml2ZXIsIHNvIGl0IHNob3VsZCBiZSBwcm9iZWQgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUgb3IgdGhlIE1ESU8gYnVzLiBNeSBjb25jZXJuIG5vdyBpcyBhYm91dCBmdXp6aW5nLiBDYW4gSSBnZXQgYXQgdGhpcyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBEU0EgZHJpdmVycywgZXNwZWNpYWxseSB0aG9zZSBpbnRlcmFjdGluZyB3aXRoIEkyQy9NRElPLWNvbm5lY3RlZCBoYXJkd2FyZSwgYXJlIHR5cGljYWxseSBub3QgcmVhY2hhYmxlIHVubGVzcyB0aGVyZSdzIGFuIGVtdWxhdG9yIG9yIGEgdmlydHVhbCBkcml2ZXIgaW5zdGFudGlhdGlvbi4gVGhlIHF1ZXN0aW9uIGJlY29tZXMsIGlzIHRoZXJlIGFueSBlbXVsYXRpb24gZm9yIHRoZSBNYXJ2ZWxsIDg4RTZ4eHgsIG9yIHNvbWUga2luZCBvZiBzb2Z0d2FyZSBpbnN0YW50aWF0aW9uIG1lY2hhbmlzbT9cblxuU3l6a2FsbGVyICpjYW4qIHNvbWV0aW1lcyBpbmplY3QgTURJTyBkZXZpY2VzIG9yIHVzZSBkdW1teSBkZXZpY2VzLCBidXQgZ2VuZXJhbGx5LCB0aGVzZSBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXJzLCB3aXRob3V0IHByb3BlciBlbXVsYXRpb24gYXJlIGluYWNjZXNzaWJsZS4gSG1tLi4uIEkgcmVjYWxsIHN5emthbGxlciAqZG9lc24ndCogaGF2ZSBhIGdlbmVyaWMgTURJTyBmdXp6ZXIuIFNvLCB0aGUgY2hhbmNlcyBvZiBpbW1lZGlhdGUgcmVhY2hhYmlsaXR5IGFyZSBzbGltLiBCdXQsIEkgbmVlZCB0byBjaGVjayBpZiBgbXY4OGU2eHh4YCBjYW4gYmUgcHJvYmVkIGF0IGFsbC4gSSBuZWVkIHRvIGdldCBzb21lIG1vcmUgaW5mbyBvbiBob3cgdGhpcyB0aGluZyBpcyBhY3R1YWxseSBpbnN0YW50aWF0ZWQuIEkgc2hvdWxkIHNlYXJjaCBmb3IgYG12ODhlNnh4eGAgd2l0aGluIHRoZSBrZXJuZWwgdG8gdW5kZXJzdGFuZCBpdHMgcHJvYmluZyBtZWNoYW5pc20gYW5kIGRlcGVuZGVuY3kgY2hhaW4uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczMDUsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NTMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NDo1OC4zMTM4MDc3MjhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzY4MDY5NjExMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTAxMjMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMy0tLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sOjQ6JGlkOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvc2NoZW1hcy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC01LSRzY2hlbWE6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9tZXRhLXNjaGVtYXMvY29yZS55YW1sI1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbD0xOT1wcm9wZXJ0aWVzOlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9kc2EvbWFydmVsbCxtdjg4ZTZ4eHgueWFtbC05NC0gICAgICBjb21wYXRpYmxlOlxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6OTU6ICAgICAgICBjb25zdDogbWFydmVsbCxtdjg4ZTZ4eHgtbWRpby1leHRlcm5hbFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtOTYtXFxuLS1cXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sPTEwOT1leGFtcGxlczpcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMjQwLSAgICAgICAgICAgIG1kaW8tZXh0ZXJuYWwge1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWw6MjQxOiAgICAgICAgICAgICAgICBjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2eHh4LW1kaW8tZXh0ZXJuYWxcXFwiO1xcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvZHNhL21hcnZlbGwsbXY4OGU2eHh4LnlhbWwtMjQyLSAgICAgICAgICAgICAgICAjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sPTEyPWRlc2NyaXB0aW9uOiB8K1xcbi0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwtMTgtICBoYXZpbmcgYSBkZXZpY2UgdHJlZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGV2aWNlLiBCdXQgaW4gb3JkZXIgdG8gdXNlIGl0IHdpdGhcXG5Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L21hcnZlbGwsbXZ1c2IueWFtbDoxOTogIHRoZSBtdjg4ZTZ4eHggZHJpdmVyLCB5b3UgbmVlZCBhIGRldmljZSB0cmVlIG5vZGUgaW4gd2hpY2ggdG8gcGxhY2UgdGhlIHN3aXRjaFxcbkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sLTIwLSAgZGVmaW5pdGlvbi5cXG4tLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL2luZGV4LnJzdD03Nz1wYXJhbWV0ZXJzLCBpbmZvIHZlcnNpb25zLCBhbmQgb3RoZXIgZmVhdHVyZXMgaXQgc3VwcG9ydHMuXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3QtOTUtICAgbWx4c3dcXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9pbmRleC5yc3Q6OTY6ICAgbXY4OGU2eHh4XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvaW5kZXgucnN0LTk3LSAgIG5ldGRldnNpbVxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC0zLT09PT09PT09PT09PT09PT09PT09PT09PT1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0OjQ6bXY4OGU2eHh4IGRldmxpbmsgc3VwcG9ydFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtNS09PT09PT09PT09PT09PT09PT09PT09PT09XFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdC02LVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3Q6NzpUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgZGV2bGluayBmZWF0dXJlcyBpbXBsZW1lbnRlZCBieSB0aGUgYGBtdjg4ZTZ4eHhgYFxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3QtOC1kZXZpY2UgZHJpdmVyLlxcbi0tXFxuRG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmxpbmsvbXY4OGU2eHh4LnJzdD0xMD1QYXJhbWV0ZXJzXFxuLS1cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0LTEyLVxcbkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZsaW5rL212ODhlNnh4eC5yc3Q6MTM6VGhlIGBgbXY4OGU2eHh4YGAgZHJpdmVyIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBkcml2ZXItc3BlY2lmaWMgcGFyYW1ldGVycy5cXG5Eb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0LTE0LVxcbi0tXFxuTUFJTlRBSU5FUlM9MTU1OTU9RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNjA2MC55YW1sXFxuTUFJTlRBSU5FUlM6MTU1OTY6RjpcXHREb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvbmV0L2RzYS9tYXJ2ZWxsLG12ODhlNnh4eC55YW1sXFxuTUFJTlRBSU5FUlM6MTU1OTc6RjpcXHREb2N1bWVudGF0aW9uL25ldHdvcmtpbmcvZGV2bGluay9tdjg4ZTZ4eHgucnN0XFxuTUFJTlRBSU5FUlM6MTU1OTg6RjpcXHRkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L1xcbk1BSU5UQUlORVJTOjE1NTk5OkY6XFx0aW5jbHVkZS9saW51eC9kc2EvbXY4OGU2eHh4LmhcXG5NQUlOVEFJTkVSUzoxNTYwMDpGOlxcdGluY2x1ZGUvbGludXgvcGxhdGZvcm1fZGF0YS9tdjg4ZTZ4eHguaFxcbk1BSU5UQUlORVJTLTE1NjAxLVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzgxLW5ldGdlYXItZ3MxMTBlbXguZHRzPTEyNz1cXHRcXHRtZGlvLWV4dGVybmFsIHtcXG5hcmNoL2FybS9ib290L2R0cy9tYXJ2ZWxsL2FybWFkYS0zODEtbmV0Z2Vhci1nczExMGVteC5kdHM6MTI4OlxcdFxcdFxcdGNvbXBhdGlibGUgPSBcXFwibWFydmVsbCxtdjg4ZTZ4eHgtbWRpby1leHRlcm5hbFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtMzgxLW5ldGdlYXItZ3MxMTBlbXguZHRzLTEyOS1cXHRcXHRcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC92Zi92ZjYxMC16aWktc3NtYi1kdHUuZHRzPTE3MD1cXHRcXHRcXHRtZGlvLWV4dGVybmFsIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLXNzbWItZHR1LmR0czoxNzE6XFx0XFx0XFx0XFx0Y29tcGF0aWJsZSA9IFxcXCJtYXJ2ZWxsLG12ODhlNnh4eC1tZGlvLWV4dGVybmFsXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvdmYvdmY2MTAtemlpLXNzbWItZHR1LmR0cy0xNzItXFx0XFx0XFx0XFx0I2FkZHJlc3MtY2VsbHMgPSBcXHUwMDNjMVxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNmLXByby5kdHM9MjkyPVxcdFxcdFxcdHN3aXRjaDBwaHk0OiBldGhlcm5ldC1waHlANCB7XFxuLS1cXG5hcmNoL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwvY245MTMwLWNmLXByby5kdHMtMzAyLVxcdFxcdCAqIG1kaW8tZXh0ZXJuYWwge1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0czozMDM6XFx0XFx0ICpcXHRjb21wYXRpYmxlID0gXFxcIm1hcnZlbGwsbXY4OGU2eHh4LW1kaW8tZXh0ZXJuYWxcXFwiO1xcbmFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9jbjkxMzAtY2YtcHJvLmR0cy0zMDQtXFx0XFx0ICpcXHQjYWRkcmVzcy1jZWxscyA9IFxcdTAwM2MxXFx1MDAzZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnPTczPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc0LVxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnOjc1OnNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTc2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIxPW9iai15XFx0XFx0XFx0XFx0Kz0gbWljcm9jaGlwL1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZToyMjpvYmoteVxcdFxcdFxcdFxcdCs9IG12ODhlNnh4eC9cXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGUtMjMtb2JqLXlcXHRcXHRcXHRcXHQrPSBteGw4NjJ4eC9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuaC01LSAqXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5oOjY6ICogQmFzZWQgb24gbXY4OGU2eHh4LmhcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmgtNy0gKiBDb3B5cmlnaHQgKGMpIDIwMDggTWFydmVsbCBTZW1pY29uZHVjdG9yXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFgpICs9IG12ODhlNnh4eC5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTozOm12ODhlNnh4eC1vYmpzIDo9IGNoaXAub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6NDptdjg4ZTZ4eHgtb2JqcyArPSBkZXZsaW5rLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjU6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZTo2Om12ODhlNnh4eC1vYmpzICs9IGdsb2JhbDFfYXR1Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjc6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMV92dHUub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6ODptdjg4ZTZ4eHgtb2JqcyArPSBnbG9iYWwyLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjk6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMl9hdmIub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MTA6bXY4OGU2eHh4LW9ianMgKz0gZ2xvYmFsMl9zY3JhdGNoLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjExOm12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFApICs9IGh3dHN0YW1wLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEyOm12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9MRURTKSArPSBsZWRzLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjEzOm12ODhlNnh4eC1vYmpzICs9IHBjcy02MTg1Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE0Om12ODhlNnh4eC1vYmpzICs9IHBjcy02MzUyLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE1Om12ODhlNnh4eC1vYmpzICs9IHBjcy02Mzl4Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE2Om12ODhlNnh4eC1vYmpzICs9IHBoeS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToxNzptdjg4ZTZ4eHgtb2JqcyArPSBwb3J0Lm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE4Om12ODhlNnh4eC1vYmpzICs9IHBvcnRfaGlkZGVuLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjE5Om12ODhlNnh4eC0kKENPTkZJR19ORVRfRFNBX01WODhFNlhYWF9QVFApICs9IHB0cC5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMDptdjg4ZTZ4eHgtb2JqcyArPSBzZXJkZXMub1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvTWFrZWZpbGU6MjE6bXY4OGU2eHh4LW9ianMgKz0gc21pLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlOjIyOm12ODhlNnh4eC1vYmpzICs9IHN3aXRjaGRldi5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyMzptdjg4ZTZ4eHgtb2JqcyArPSB0cmFjZS5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyNDptdjg4ZTZ4eHgtb2JqcyArPSB0Y2Zsb3dlci5vXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9NYWtlZmlsZToyNTptdjg4ZTZ4eHgtb2JqcyArPSB0Y2FtLm9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L01ha2VmaWxlLTI2LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTQtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RlbGF5LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2RzYS9tdjg4ZTZ4eHguaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNi0jaW5jbHVkZSBcXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9tZGlvLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mjk6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RhdGEvbXY4OGU2eHh4LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzAtI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3Byb3BlcnR5LmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00OC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTpzdGF0aWMgdm9pZCBhc3NlcnRfcmVnX2xvY2soc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU3OmludCBtdjg4ZTZ4eHhfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLCB1MTYgKnZhbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01OC17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzpcXHRlcnIgPSBtdjg4ZTZ4eHhfc21pX3JlYWQoY2hpcCwgYWRkciwgcmVnLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzppbnQgbXY4OGU2eHh4X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsIHUxNiB2YWwpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Nzk6XFx0ZXJyID0gbXY4OGU2eHh4X3NtaV93cml0ZShjaGlwLCBhZGRyLCByZWcsIHZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg5OmludCBtdjg4ZTZ4eHhfd2FpdF9tYXNrKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIGludCByZWcsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtOTAtXFx0XFx0XFx0dTE2IG1hc2ssIHUxNiB2YWwpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMDEtXFx0Zm9yIChpID0gMDsgdGltZV9iZWZvcmUoamlmZmllcywgdGltZW91dCkgfHwgKGkgXFx1MDAzYyAyKTsgaSsrKSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTAyOlxcdFxcdGVyciA9IG12ODhlNnh4eF9yZWFkKGNoaXAsIGFkZHIsIHJlZywgXFx1MDAyNmRhdGEpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEwMy1cXHRcXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTE0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjExNTpcXHRlcnIgPSBtdjg4ZTZ4eHhfcmVhZChjaGlwLCBhZGRyLCByZWcsIFxcdTAwMjZkYXRhKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMTYtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMjY6aW50IG12ODhlNnh4eF93YWl0X2JpdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCBpbnQgcmVnLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEyNy1cXHRcXHQgICAgICAgaW50IGJpdCwgaW50IHZhbClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMjgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjEyOTpcXHRyZXR1cm4gbXY4OGU2eHh4X3dhaXRfbWFzayhjaGlwLCBhZGRyLCByZWcsIEJJVChiaXQpLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzMC1cXHRcXHRcXHRcXHQgICB2YWwgPyBCSVQoYml0KSA6IDB4MDAwMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTMzOnN0cnVjdCBtaWlfYnVzICptdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxMzU6XFx0c3RydWN0IG12ODhlNnh4eF9tZGlvX2J1cyAqbWRpb19idXM7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTM2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTEzNy1cXHRtZGlvX2J1cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2Y2hpcC1cXHUwMDNlbWRpb3MsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTM4OlxcdFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgbXY4OGU2eHh4X21kaW9fYnVzLCBsaXN0KTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xMzktXFx0aWYgKCFtZGlvX2J1cylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE0NC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNDU6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9tYXNrKHN0cnVjdCBpcnFfZGF0YSAqZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDYte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE0NzpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xNDgtXFx0dW5zaWduZWQgaW50IG4gPSBkLVxcdTAwM2Vod2lycTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNTM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV91bm1hc2soc3RydWN0IGlycV9kYXRhICpkKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1NC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTU1OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGlycV9kYXRhX2dldF9pcnFfY2hpcF9kYXRhKGQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE1Ni1cXHR1bnNpZ25lZCBpbnQgbiA9IGQtXFx1MDAzZWh3aXJxO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE2MTpzdGF0aWMgaXJxcmV0dXJuX3QgbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTYyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTE2OS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzA6XFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE3MTpcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoxNzI6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE4NzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MTg4OlxcdFxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2Y3RsMSk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTg5LVxcdFxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMTkwLVxcdFxcdFxcdGdvdG8gdW5sb2NrO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MTpcXHRcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfcmVhZChjaGlwLCBNVjg4RTZYWFhfRzFfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTItdW5sb2NrOlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjE5MzpcXHRcXHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0xOTQtXFx0XFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMDM6c3RhdGljIGlycXJldHVybl90IG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX2ZuKGludCBpcnEsIHZvaWQgKmRldl9pZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDQte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkZXZfaWQ7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjA2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIwNzpcXHRyZXR1cm4gbXY4OGU2eHh4X2cxX2lycV90aHJlYWRfd29yayhjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMDgtfVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIwOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTA6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9idXNfbG9jayhzdHJ1Y3QgaXJxX2RhdGEgKmQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjExLXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMTI6XFx0c3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwID0gaXJxX2RhdGFfZ2V0X2lycV9jaGlwX2RhdGEoZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxNDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjE1LX1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjE3OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9nMV9pcnFfYnVzX3N5bmNfdW5sb2NrKHN0cnVjdCBpcnFfZGF0YSAqZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMTgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjIxOTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBpcnFfZGF0YV9nZXRfaXJxX2NoaXBfZGF0YShkKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjAtXFx0dTE2IG1hc2sgPSBHRU5NQVNLKGNoaXAtXFx1MDAzZWcxX2lycS5uaXJxcywgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjI0OlxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMjUtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzE6XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3dyaXRlKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCByZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTIzMi1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM1LW91dDpcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyMzY6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjM3LX1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yMzgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjM5OnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2NoaXAgbXY4OGU2eHh4X2cxX2lycV9jaGlwID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MDpcXHQubmFtZVxcdFxcdFxcdD0gXFxcIm12ODhlNnh4eC1nMVxcXCIsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQxOlxcdC5pcnFfbWFza1xcdFxcdD0gbXY4OGU2eHh4X2cxX2lycV9tYXNrLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI0MjpcXHQuaXJxX3VubWFza1xcdFxcdD0gbXY4OGU2eHh4X2cxX2lycV91bm1hc2ssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQzOlxcdC5pcnFfYnVzX2xvY2tcXHRcXHQ9IG12ODhlNnh4eF9nMV9pcnFfYnVzX2xvY2ssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ0OlxcdC5pcnFfYnVzX3N5bmNfdW5sb2NrXFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2J1c19zeW5jX3VubG9jayxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDUtfTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNDYtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjQ3OnN0YXRpYyBpbnQgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fbWFwKHN0cnVjdCBpcnFfZG9tYWluICpkLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI0OC1cXHRcXHRcXHRcXHQgICAgICAgdW5zaWduZWQgaW50IGlycSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI1MC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjUxOlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGQtXFx1MDAzZWhvc3RfZGF0YTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTItXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNTktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjYwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgaXJxX2RvbWFpbl9vcHMgbXY4OGU2eHh4X2cxX2lycV9kb21haW5fb3BzID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI2MTpcXHQubWFwXFx0PSBtdjg4ZTZ4eHhfZzFfaXJxX2RvbWFpbl9tYXAsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjYyLVxcdC54bGF0ZVxcdD0gaXJxX2RvbWFpbl94bGF0ZV90d29jZWxsLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY1LS8qIFRvIGJlIGNhbGxlZCB3aXRoIHJlZ19sb2NrIGhlbGQgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNjY6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlX2NvbW1vbihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjY3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyNzE6XFx0bXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIFxcdTAwMjZtYXNrKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yNzItXFx0bWFzayBcXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVxcdTAwM2VnMV9pcnEubmlycXMsIDApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI3MzpcXHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI4Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzoyODM6c3RhdGljIHZvaWQgbXY4OGU2eHh4X2cxX2lycV9mcmVlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yODQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjkwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5MTpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkyOlxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MjkzOlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTI5NC19XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMjk1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjI5NjpzdGF0aWMgaW50IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0yOTcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzAzLVxcdFxcdE5VTEwsIGNoaXAtXFx1MDAzZWcxX2lycS5uaXJxcywgMCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMDQ6XFx0XFx0XFx1MDAyNm12ODhlNnh4eF9nMV9pcnFfZG9tYWluX29wcywgY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzA1LVxcdGlmICghY2hpcC1cXHUwMDNlZzFfaXJxLmRvbWFpbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMxMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMTE6XFx0Y2hpcC1cXHUwMDNlZzFfaXJxLmNoaXAgPSBtdjg4ZTZ4eHhfZzFfaXJxX2NoaXA7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzEyLVxcdGNoaXAtXFx1MDAzZWcxX2lycS5tYXNrZWQgPSB+MDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzE0OlxcdGVyciA9IG12ODhlNnh4eF9nMV9yZWFkKGNoaXAsIE1WODhFNlhYWF9HMV9DVEwxLCBcXHUwMDI2bWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzE1LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMTktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzIwOlxcdGVyciA9IG12ODhlNnh4eF9nMV93cml0ZShjaGlwLCBNVjg4RTZYWFhfRzFfQ1RMMSwgbWFzayk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzIxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjQtXFx0LyogUmVhZGluZyB0aGUgaW50ZXJydXB0IHN0YXR1cyBjbGVhcnMgKG1vc3Qgb2YpIHRoZW0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozMjU6XFx0ZXJyID0gbXY4OGU2eHh4X2cxX3JlYWQoY2hpcCwgTVY4OEU2WFhYX0cxX1NUUywgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzI2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMzItXFx0bWFzayBcXHUwMDI2PSB+R0VOTUFTSyhjaGlwLVxcdTAwM2VnMV9pcnEubmlycXMsIDApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMzMzpcXHRtdjg4ZTZ4eHhfZzFfd3JpdGUoY2hpcCwgTVY4OEU2WFhYX0cxX0NUTDEsIG1hc2spO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM0NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNDY6c3RhdGljIGludCBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzUxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM1MjpcXHRlcnIgPSBtdjg4ZTZ4eHhfZzFfaXJxX3NldHVwX2NvbW1vbihjaGlwKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNTMtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Mi1cXHRzbnByaW50ZihjaGlwLVxcdTAwM2VpcnFfbmFtZSwgc2l6ZW9mKGNoaXAtXFx1MDAzZWlycV9uYW1lKSxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozNjM6XFx0XFx0IFxcXCJtdjg4ZTZ4eHgtJXNcXFwiLCBkZXZfbmFtZShjaGlwLVxcdTAwM2VkZXYpKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjQtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY1OlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2Ni1cXHRlcnIgPSByZXF1ZXN0X3RocmVhZGVkX2lycShjaGlwLVxcdTAwM2VpcnEsIE5VTEwsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzY3OlxcdFxcdFxcdFxcdCAgIG12ODhlNnh4eF9nMV9pcnFfdGhyZWFkX2ZuLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM2OC1cXHRcXHRcXHRcXHQgICBJUlFGX09ORVNIT1QgfCBJUlFGX1NIQVJFRCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNjktXFx0XFx0XFx0XFx0ICAgY2hpcC1cXHUwMDNlaXJxX25hbWUsIGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3MDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzcxLVxcdGlmIChlcnIpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzcyOlxcdFxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzc2LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3NzpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfaXJxX3BvbGwoc3RydWN0IGt0aHJlYWRfd29yayAqd29yaylcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zNzgte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM3OTpcXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBjb250YWluZXJfb2Yod29yayxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODA6XFx0XFx0XFx0XFx0XFx0XFx0ICAgc3RydWN0IG12ODhlNnh4eF9jaGlwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4MS1cXHRcXHRcXHRcXHRcXHRcXHQgICBpcnFfcG9sbF93b3JrLndvcmspO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjM4MjpcXHRtdjg4ZTZ4eHhfZzFfaXJxX3RocmVhZF93b3JrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4My1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzozODg6c3RhdGljIGludCBtdjg4ZTZ4eHhfaXJxX3BvbGxfc2V0dXAoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM4OS17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTEtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzkyOlxcdGVyciA9IG12ODhlNnh4eF9nMV9pcnFfc2V0dXBfY29tbW9uKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTM5My1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtMzk2LVxcdGt0aHJlYWRfaW5pdF9kZWxheWVkX3dvcmsoXFx1MDAyNmNoaXAtXFx1MDAzZWlycV9wb2xsX3dvcmssXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Mzk3OlxcdFxcdFxcdFxcdCAgbXY4OGU2eHh4X2lycV9wb2xsKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zOTgtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MDgtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDA5OnN0YXRpYyB2b2lkIG12ODhlNnh4eF9pcnFfcG9sbF9mcmVlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00MTAte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDEzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxNDpcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE1OlxcdG12ODhlNnh4eF9nMV9pcnFfZnJlZV9jb21tb24oY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NDE2OlxcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQxNy19XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDE4LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQxOTpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X2NvbmZpZ19pbnRlcmZhY2Uoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQyMC1cXHRcXHRcXHRcXHRcXHQgICBpbnQgcG9ydCwgcGh5X2ludGVyZmFjZV90IGludGVyZmFjZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ0MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0NDE6c3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF9tYWMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NDItXFx0XFx0XFx0XFx0ICAgIGludCBsaW5rLCBpbnQgc3BlZWQsIGludCBkdXBsZXgsIGludCBwYXVzZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ2Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0Njg6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfY29uZmlnX2ludGVyZmFjZShjaGlwLCBwb3J0LCBtb2RlKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00NjktcmVzdG9yZV9saW5rOlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDc1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ3NjpzdGF0aWMgaW50IG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy00Nzcte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDgyLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ4MzpzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3BwdV91cGRhdGVzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTQ5MS1cXHRpZiAoY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlZmFtaWx5ID09IE1WODhFNlhYWF9GQU1JTFlfNjI1MClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo0OTI6XFx0XFx0cmV0dXJuIG12ODhlNnh4eF9waHlfaXNfaW50ZXJuYWwoY2hpcCwgcG9ydCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDkzLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjQ5NDpcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXFx1MDAyNnJlZyk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNDk1LVxcdGlmIChlcnIpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTUwNT1zdGF0aWMgY29uc3QgdTggbXY4OGU2MTg1X3BoeV9pbnRlcmZhY2VfbW9kZXNbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUxNC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1MTU6c3RhdGljIHZvaWQgbXY4OGU2MDk1X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MTYtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTIxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjUyMjpcXHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTUyMy1cXHRcXHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX01JSSwgY29uZmlnLVxcdTAwM2VzdXBwb3J0ZWRfaW50ZXJmYWNlcyk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01MzMtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTM0OnN0YXRpYyB2b2lkIG12ODhlNjE4NV9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTM1LVxcdFxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NDg6c3RhdGljIGNvbnN0IHU4IG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTQ5LVxcdFtNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfTUlJX1BIWV1cXHQ9IFBIWV9JTlRFUkZBQ0VfTU9ERV9SRVZNSUksXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjItXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTYzOnN0YXRpYyB2b2lkIG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUodTggY21vZGUsIHVuc2lnbmVkIGxvbmcgKnN1cHBvcnRlZClcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NjQte1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NTpcXHRpZiAoY21vZGUgXFx1MDAzYyBBUlJBWV9TSVpFKG12ODhlNnh4eF9waHlfaW50ZXJmYWNlX21vZGVzKSBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NjpcXHQgICAgbXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXNbY21vZGVdKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjU2NzpcXHRcXHRfX3NldF9iaXQobXY4OGU2eHh4X3BoeV9pbnRlcmZhY2VfbW9kZXNbY21vZGVdLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTU2OC1cXHRlbHNlIGlmIChjbW9kZSA9PSBNVjg4RTZYWFhfUE9SVF9TVFNfQ01PREVfUkdNSUkpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz01NzI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo1NzM6bXY4OGU2MjUwX3NldHVwX3N1cHBvcnRlZF9pbnRlcmZhY2VzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNTc0LVxcdFxcdFxcdFxcdCAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01NzktXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NTgwOlxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCBcXHUwMDI2cmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy01ODEtXFx0aWYgKGVycikge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjIxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYyMjpzdGF0aWMgdm9pZCBtdjg4ZTYyNTBfcGh5bGlua19nZXRfY2FwcyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyMy1cXHRcXHRcXHRcXHQgICAgICAgc3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjI0LXtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MjU6XFx0aWYgKCFtdjg4ZTZ4eHhfcGh5X2lzX2ludGVybmFsKGNoaXAsIHBvcnQpKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYyNi1cXHRcXHRtdjg4ZTYyNTBfc2V0dXBfc3VwcG9ydGVkX2ludGVyZmFjZXMoY2hpcCwgcG9ydCwgY29uZmlnKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzMC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2MzE6c3RhdGljIHZvaWQgbXY4OGU2MzUxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02MzItXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjM2LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjYzNzpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTYzOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDM6c3RhdGljIGludCBtdjg4ZTYzeHhfZ2V0X3BvcnRfc2VyZGVzX2Ntb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NDg6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9TVFMsIFxcdTAwMjZyZWcpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY0OS1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjU2LVxcdHZhbCA9IHJlZyBcXHUwMDI2IH5NVjg4RTZYWFhfUE9SVF9TVFNfUEhZX0RFVEVDVDtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NTc6XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfU1RTLCB2YWwpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY1OC1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYwLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY2MTpcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgXFx1MDAyNnZhbCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjYyLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjUtXFx0LyogUmVzdG9yZSBQSFlfREVURUNUIHZhbHVlICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NjY2OlxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX1NUUywgcmVnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NjctXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3Mi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzM6c3RhdGljIHZvaWQgbXY4OGU2MzUyX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc5LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY4MDpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY4MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5NS1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6Njk2OlxcdFxcdFxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjk3LVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY5OS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MDA6c3RhdGljIHZvaWQgbXY4OGU2MzJ4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MDEtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzA2LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcwNzpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcwOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcxOC1cXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzE5OlxcdFxcdFxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzIwLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTcyMi1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MjM6c3RhdGljIHZvaWQgbXY4OGU2MzQxX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MjQtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzI4LVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjcyOTpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTczMC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc0NC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NDU6c3RhdGljIHZvaWQgbXY4OGU2MzkwX3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NDYtXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUwLVxcdC8qIFRyYW5zbGF0ZSB0aGUgZGVmYXVsdCBjbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1MTpcXHRtdjg4ZTZ4eHhfdHJhbnNsYXRlX2Ntb2RlKGNoaXAtXFx1MDAzZXBvcnRzW3BvcnRdLmNtb2RlLCBzdXBwb3J0ZWQpO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1Mi1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc2Ni1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3Njc6c3RhdGljIHZvaWQgbXY4OGU2MzkweF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzY4LVxcdFxcdFxcdFxcdFxcdHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODAxLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjgwMjpzdGF0aWMgdm9pZCBtdjg4ZTYzOTN4X3BoeWxpbmtfZ2V0X2NhcHMoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MDMtXFx0XFx0XFx0XFx0XFx0c3RydWN0IHBoeWxpbmtfY29uZmlnICpjb25maWcpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04MTAtXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODExOlxcdG12ODhlNnh4eF90cmFuc2xhdGVfY21vZGUoY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uY21vZGUsIHN1cHBvcnRlZCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODEyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODQ1LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg0NjpzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfZ2V0X2NhcHMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy04NDctXFx0XFx0XFx0ICAgICAgIHN0cnVjdCBwaHlsaW5rX2NvbmZpZyAqY29uZmlnKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg0OC17XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6ODQ5OlxcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1MC1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTE6XFx0bXY4OGU2eHh4X3JlZ19sb2NrKGNoaXApO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Mi1cXHRjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHMtXFx1MDAzZXBoeWxpbmtfZ2V0X2NhcHMoY2hpcCwgcG9ydCwgY29uZmlnKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo4NTM6XFx0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtODU0LVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjg1NTpcXHRpZiAobXY4OGU2eHh4X3BoeV9pc19pbnRlcm5hbChjaGlwLCBwb3J0KSkge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTg1Ni1cXHRcXHRfX3NldF9iaXQoUEhZX0lOVEVSRkFDRV9NT0RFX0lOVEVSTkFMLFxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjAxLjk5NDUxMzA5OFoiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg4MDAwMTQ1OTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggRFNBIFN3aXRjaCBEcml2ZXIgaW4gYSBGdXp6aW5nIENvbnRleHQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNgLCBhIERTQSBzd2l0Y2ggZHJpdmVyLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBjYW4gSSBldmVuIGdldCB0aGlzIGluc3RhbnRpYXRlZCB3aXRoaW4gYSBRRU1VIGVudmlyb25tZW50PyBEZXZpY2UgdHJlZSBzZXR1cCB3b3VsZCBiZSB0aGUgbmF0dXJhbCBhcHByb2FjaCwgYnV0IGRvZXMgUUVNVSBldmVuICplbXVsYXRlKiB0aGUgTWFydmVsbCA4OEU2eHh4IHN3aXRjaD8gTm8sIHRoYXQncyBub3Qgc29tZXRoaW5nIFFFTVUgcHJvdmlkZXMsIHNvIHRoYXQgYXZlbnVlIGlzIGNsb3NlZC5cblxuSSBzdGFydGVkIHRoaW5raW5nIGFib3V0IHN5emthbGxlcidzIE1ESU8gaW5qZWN0aW9uIGNhcGFiaWxpdGllcywgbWF5YmUgdGhlcmUncyBhbiBNRElPIGluamVjdGlvbiBvcHRpb24/IE5vcGUsIGl0IGRvZXNuJ3QgZGlyZWN0bHkgc3VwcG9ydCB0aGF0LiBTeXprYWxsZXIgZG9lcyBoYXZlIGBzeXpfdXNiX2Nvbm5lY3RgIGZvciBVU0IgZGV2aWNlIGVtdWxhdGlvbiB0aG91Z2gsIGJ1dCB0aGVyZSB3b3VsZG4ndCBiZSBhIFVTQiB0byBNRElPIGJyaWRnZSBmb3IgdGhhdCB0byBhcHBseSB0byB0aGlzIGRyaXZlci4gU2luY2UgYG12ODhlNnh4eGAgaXMgYW4gTURJTyBkZXZpY2UsIFVTQiBpcyBhIGRlYWQgZW5kLlxuXG5UaGVuIEkgc2F3IHRoZSBhdXRob3Igb2YgdGhlIHBhdGNoIGlzIFwic3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcIi4gVGhhdOKAmXMgYSBodWdlIGNsdWUsIHNpbmNlIHN5emthbGxlciBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGNvZGUgaXQgZmluZHMuIFRoaXMgbWVhbnMgc3l6a2FsbGVyIGxpa2VseSBmb3VuZCBhIGJ1Zywgb3IgaXMgZnV6emluZyB0aGlzIGNvZGUhIEJ1dCBob3c/IE15IG1pbmQgcmFjZWQuIElzIHRoZXJlIHNvbWUgdmlydHVhbCBNRElPIGRyaXZlciBvciBjbGV2ZXIgbWVjaGFuaXNtIHN5emthbGxlciB1c2VzP1xuXG5JIGNvbnNpZGVyZWQgZGV2bGluaywgYXMgaXQncyBhY2Nlc3NpYmxlIHZpYSBuZXRsaW5rIGFuZCBJIGNvdWxkIHBvc3NpYmx5IGluc3RhbnRpYXRlIGEgYG12ODhlNnh4eGAgZGV2aWNlIHRoYXQgd2F5LiBCdXQgbm8sIGRldmxpbmsgY29uZmlndXJlcyAqZXhpc3RpbmcqIGRldmljZXMsIG5vdCBjcmVhdGUgdGhlbS5cblxuSSBzdGFydGVkIHRvIHRoaW5rLCAqaXMqIHRoZSBkcml2ZXIgaW5zdGFudGlhdGVkIHZpYSBzb21lIG90aGVyIG1lYW5zPyBJIGxvb2tlZCBmb3IgYW55IGR1bW15IG9yIHNvZnR3YXJlLWVtdWxhdGVkIERTQSBzd2l0Y2guXG5cblRoZW4sIHdhaXQhIEkgcmVtZW1iZXJlZCB0aGUgY29tbWl0IG1lc3NhZ2UhIEl0IHNheXMgXCJzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcIi4gQWhhISBUaGF0IG1lYW5zIEknbSByZXZpZXdpbmcgYSBwYXRjaCB0aGF0IHRoZSBzeXprYWxsZXIgaW5mcmFzdHJ1Y3R1cmUgaXMgKnRlc3RpbmcqLiBJdCBkb2Vzbid0IG1lYW4gc3l6a2FsbGVyICpmb3VuZCogYSBidWcsIGl0IG1lYW5zIHRoZSBwYXRjaCBpcyBiZWluZyBhc3Nlc3NlZCBieSBzeXprYWxsZXIuXG5cblNvLCBpZiBRRU1VICpkb2Vzbid0KiBlbXVsYXRlIHRoaXMgZGV2aWNlICh3aGljaCBJIGNvbmZpcm1lZCksIHRoZW4gdGhlIGNvZGUgaXMgcHJvYmFibHkgdW5yZWFjaGFibGUuIEkgbmVlZCB0byBtYWtlIHN1cmUgUUVNVSBlbXVsYXRlcyBgbXY4OGU2eHh4YC4gSSBkb24ndCBoYXZlIHRoZSBRRU1VIHNvdXJjZSByaWdodCBub3cgdG8gc2VhcmNoLCBzbyBJIG5lZWQgdG8gY2hlY2sgdGhlIGtlcm5lbCBpdHNlbGYgdG8gc2VlIGlmIHRoZSBkcml2ZXIgaXMgaW5zdGFudGlhdGVkIGluIHNvZnR3YXJlLiBJIHdpbGwgbG9vayBmb3IgYW55IHNvZnR3YXJlIGluc3RhbnRpYXRpb24gb2YgYG12ODhlNnh4eGAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyOTU4LCJPdXRwdXRUb2tlbnMiOjMyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDg4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjEwLjc5NDUzMDMxOFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTQ1MDE1ODY3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIuKm12ODhlNnh4eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjEzLjczOTU1ODEyNVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2OTQ4OTYzODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyBVc2Vyc3BhY2UgQ29udHJvbCBvZiBNVjg4RTZYWFggTURJTyBBY2Nlc3MqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGludG8gdGhpcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHNlZSBpZiB0aGVyZSdzIGEgd2F5LCBhIGRpcmVjdCBwYXRoLCB0byB0cmlnZ2VyIGFuIGBtZGlvYCBkZXZpY2UgcmVnaXN0cmF0aW9uIGZvciB0aGUgYG12ODhlNnh4eGAgZnJvbSB1c2Vyc3BhY2Ugd2l0aGluIHRoZSBrZXJuZWwuIFR5cGljYWxseSwgSSdkIGV4cGVjdCBNRElPIGRldmljZXMsIGxpa2UgdGhpcyBzd2l0Y2gsIHRvIGJlIHJlZ2lzdGVyZWQgbXVjaCBsb3dlciBkb3duLCBlaXRoZXIgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUgb3IgdGhlIGJvYXJkIGZpbGVzLiBJdCdzIHRoZSBzdGFuZGFyZCBwcmFjdGljZS4gSG1tLCBubyBvYnZpb3VzIHVzZXJzcGFjZSB0cmlnZ2VyLi4uXG5cbldhaXQsIHRoZXJlJ3MgYGRzYV9sb29wYC4gUmlnaHQsIHRoYXQncyBhIHNvZnR3YXJlLWVtdWxhdGVkIERTQSBzd2l0Y2gsIGEgdXNlZnVsIGRlYnVnZ2luZyB0b29sLiBDb3VsZCB0aGVyZSBiZSBhbiBlbXVsYXRlZCBgbXY4OGU2eHh4YCBpbXBsZW1lbnRhdGlvbiwgc29tZXRoaW5nIHRoYXQgYGRzYV9sb29wYCBtaWdodCBwcm92aWRlIG9yIGludGVyYWN0IHdpdGg/IFRoYXQgY291bGQgYmUgYW4gaW50ZXJlc3RpbmcgYXZlbnVlIHRvIGV4cGxvcmUgZm9yIHBvdGVudGlhbCB1c2Vyc3BhY2UgY29udHJvbCwgZXZlbiBpZiBpdCdzIGluZGlyZWN0LiBJIG5lZWQgdG8gY2hlY2sgaWYgdGhpcyBlbXVsYXRpb24gZXhpc3RzLiBUaGlzIGNvdWxkIGJlIHVzZWZ1bCB0byBleHBsb3JlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDAzNCwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjg1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjE3LjQzNDQ1Njc4NVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjk1MDE0MDcxLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvX2JvYXJkX2luZm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NToxOS43Mjk0ODE4ODZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTY0ODUzNDMxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBteXNlbGY6XG5cbioqTURJTyBEZXZpY2UgUmVnaXN0cmF0aW9uIC0gQSBRdWljayBSZWZyZXNoZXIqKlxuXG5Pa2F5LCBzbyBJJ20gZGVhbGluZyB3aXRoIE1ESU8gZGV2aWNlcyBoZXJlLCBhbmQgSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXkncmUgYmVpbmcgcmVnaXN0ZXJlZCBpbiB0aGlzIGNvZGUuIE15IGd1dCBmZWVsaW5nIHRlbGxzIG1lIGBtZGlvX2JvYXJkX2luZm9gIGlzIHByb2JhYmx5IHRoZSBrZXkgc3RydWN0dXJlIGZvciB0aGlzLiBJdCdzIGEgY29tbW9uIHBhdHRlcm4sIGVzcGVjaWFsbHkgd2l0aCBib2FyZC1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gTm93LCBpZiBgbWRpb19ib2FyZF9pbmZvYCBpcyBpbmRlZWQgaW52b2x2ZWQgaW4gcmVnaXN0cmF0aW9uLCB0aGVuIHRoZXJlJ3MgbGlrZWx5IGEgY29ycmVzcG9uZGluZyByZWdpc3RyYXRpb24gZnVuY3Rpb24sIHNvbWV0aGluZyBsaWtlLCB3ZWxsLCBJJ2QgYmV0IG9uIGBtZGlvX3JlZ2lzdGVyX2JvYXJkX2luZm9gLiBMZXQncyBjb25maXJtIHRoYXQgaHlwb3RoZXNpcy4gQSBxdWljayBzZWFyY2ggZm9yIGBtZGlvX3JlZ2lzdGVyX2JvYXJkX2luZm9gIHNob3VsZCBnaXZlIG1lIGEgZ29vZCBzdGFydGluZyBwb2ludC4gVGhhdCBzaG91bGQgaW1tZWRpYXRlbHkgbGVhZCBtZSB0byB0aGUgcmVsZXZhbnQgcmVnaXN0cmF0aW9uIGNvZGUuIFRoYXQncyBteSBuZXh0IHN0ZXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MzczLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6MjIuODk0MzM4Mjc4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNTI4MzU1NDE2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvX3JlZ2lzdGVyX2JvYXJkX2luZm9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NToyNS40MjI3MDUzNTNaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Mjk5ODc5NDY2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOlxuXG4qKkNvbnNpZGVyaW5nIE1ESU8gQnVzIFJlZ2lzdHJhdGlvbioqXG5cbkhtbSwgSSdtIHRyeWluZyB0byBmaWd1cmUgb3V0IHRoZSByaWdodCBmdW5jdGlvbiBoZXJlLi4ud2FpdCBhIHNlY29uZC4gQ291bGQgaXQgYmUgYG1kaW9idXNfcmVnaXN0ZXJfYm9hcmRfaW5mb2A/IFRoYXQgZnVuY3Rpb24sIGlmIEkgcmVjYWxsIGNvcnJlY3RseSwgaXMgdGhlIG9uZSB0aGF0IGFsbG93cyBtZSB0byByZWdpc3RlciBib2FyZC1zcGVjaWZpYyBNRElPIGJ1cyBpbmZvcm1hdGlvbi4gVGhhdCBzb3VuZHMgbGlrZSBhIHN0cm9uZyBjYW5kaWRhdGUsIGJhc2VkIG9uIHdoYXQgSSBuZWVkIHRvIGRvLiBJIG5lZWQgdG8gcmVnaXN0ZXIgaW5mb3JtYXRpb24gYWJvdXQgdGhlIE1ESU8gYnVzIGZvciB0aGUgcGFydGljdWxhciBoYXJkd2FyZSBwbGF0Zm9ybSBJJ20gdGFyZ2V0aW5nLCByaWdodD8gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGUgc3BlY2lmaWNzIG9mIHRoZSBhcmd1bWVudHMgaXQgZXhwZWN0cyBhbmQgZW5zdXJlIEkgaGF2ZSBhbGwgdGhlIG5lY2Vzc2FyeSBkYXRhIHRvIGZlZWQgaXQsIGJ1dCB0aGUgbmFtZSBpcyBwcm9taXNpbmcuIEkgc2hvdWxkIGdvIGxvb2sgdXAgaXRzIGRvY3VtZW50YXRpb24gdG8gYmUgY2VydGFpbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ2MzUsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NToyOC40MjE1MDU3MThaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MDU2NDYzNzYsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1kaW9idXNfcmVnaXN0ZXJfYm9hcmRfaW5mb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjMwLjkyNzE1OTExNFoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTk3NzQ4ODIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipQcm9iaW5nIHRoZSBgbXY4OGU2eHh4YCBTd2l0Y2g6IEEgUXVpY2sgRGl2ZSoqXG5cbkFscmlnaHQsIHNvIHRoZSBpbml0aWFsIHRob3VnaHQgaXMgc3RyYWlnaHRmb3J3YXJkOiBsZXQncyBnZXQgYSBoYW5kbGUgb24gaG93IHRoaXMgYG12ODhlNnh4eGAgc3dpdGNoIGlzIGJlaW5nIHByb2JlZC4gSSdtIGFscmVhZHkgZW52aXNpb25pbmcgdGhlIGxpa2VseSBhcmVhcyB0byBpbnZlc3RpZ2F0ZSDigJMgdGhlIGRldmljZSB0cmVlIGJpbmRpbmdzLCBrZXJuZWwgZHJpdmVyIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLCBhbmQgdGhlIGdlbmVyYWwgc2VxdWVuY2Ugb2YgZXZlbnRzIGR1cmluZyBzeXN0ZW0gc3RhcnR1cC4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIHN0YW5kYXJkIG1ldGhvZHMg4oCTIHRoZSBgb2ZfbWF0Y2hfdGFibGVgIG9yIHNpbWlsYXIgbWVjaGFuaXNtcyB1c2VkIHRvIGlkZW50aWZ5IGFuZCBhdHRhY2ggdGhlIGFwcHJvcHJpYXRlIGRyaXZlciB0byB0aGUgaGFyZHdhcmUuIEkgd2FudCB0byBxdWlja2x5IHVuZGVyc3RhbmQgdGhlIGVudHJ5IHBvaW50cywgdGhlIHByb2JpbmcgZnVuY3Rpb24ncyBzdHJ1Y3R1cmUsIGFuZCBhbnkgcG90ZW50aWFsIHF1aXJrcy4gSSdtIGhvcGluZyBpdCdzIHdlbGwtc3RydWN0dXJlZCBhbmQgZm9sbG93cyBpbmR1c3RyeSBiZXN0IHByYWN0aWNlcywgYnV0IGV4cGVyaWVuY2UgaGFzIHRhdWdodCBtZSB0byBiZSBwcmVwYXJlZCBmb3IgYW55dGhpbmcuIFRoaXMgcXVpY2sgcHJvYmUgd2lsbCBoZWxwIG1lIGRldGVybWluZSB0aGUgY29yZSBmbG93IGFuZCB3aGF0IGluZm9ybWF0aW9uIG9yIGhvb2tzIEkgbWlnaHQgbmVlZCB0byBjb25zaWRlciBmb3IgYW55IGZ1dHVyZSBtb2RpZmljYXRpb25zIG9yIGludGVncmF0aW9uIHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0ODU1LCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6MzQuNTI0OTExMTI3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTg3MDY0OTMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV9tZGlvX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6MzQuODQzNjI0ODlaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY2MTUxMjYwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqRGl2aW5nIGludG8gdGhlIE1WODhFNlhYWCBQcm9iZSBGdW5jdGlvbioqXG5cbkFscmlnaHQsIGxldCdzIGdldCBkb3duIHRvIGJyYXNzIHRhY2tzLiBJJ20gdGhpbmtpbmcgSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIGhvdyB0aGlzIE1WODhFNlhYWCBkcml2ZXIgaGFuZGxlcyBpbml0aWFsaXphdGlvbi4gVGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQsIGFzIGFsd2F5cywgaXMgd2l0aCB0aGUgcHJvYmUgZnVuY3Rpb24uIEknbGwgZ28gc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYC4gVGhhdCdzIHdoZXJlIEkgZXhwZWN0IHRvIGZpbmQgdGhlIG1lYXQgb2YgdGhlIGluaXRpYWwgZGV2aWNlIHNldHVwLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGUgZHJpdmVyIGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZSBkdXJpbmcgdGhlIGVhcmx5IHN0YWdlcyDigJMgdGhlIGRldmljZSBJRCBjaGVja3MsIHJlc291cmNlIGFsbG9jYXRpb24sIFBIWSBjb25maWd1cmF0aW9uLCBhbmQgcG90ZW50aWFsbHkgYW55IHJlZ2lzdGVyIGluaXRpYWxpemF0aW9uIGl0IHBlcmZvcm1zLiBJ4oCZbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiBob3cgdGhleSdyZSBoYW5kbGluZyBhbnkgcG90ZW50aWFsIGVycmF0YSBhbmQgd29ya2Fyb3VuZCBpbXBsZW1lbnRhdGlvbiBmb3IgdGhpcyBzcGVjaWZpYyBmYW1pbHkgb2Ygc3dpdGNoZXMuIEhvcGVmdWxseSB0aGUgY29kZSBpcyB3ZWxsLWNvbW1lbnRlZCBzbyBJIGRvbuKAmXQgaGF2ZSB0byBzcGVuZCB0b28gbG9uZyByZXZlcnNlIGVuZ2luZWVyaW5nIHdoYXQgdGhleSB3ZXJlIHRoaW5raW5nLiBMZXQncyBzZWUgd2hhdCBnZW1zIHdlIGNhbiB1bmVhcnRoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNTEzNiwiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjM4LjUwNTE0MjIwMVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM1OTE3NzM3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIl9wcm9iZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03MzM4PXN0YXRpYyBTSU1QTEVfREVWX1BNX09QUyhtdjg4ZTZ4eHhfcG1fb3BzLCBtdjg4ZTZ4eHhfc3VzcGVuZCwgbXY4OGU2eHh4X3Jlc3VtZSk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzMzOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3MzQwOnN0YXRpYyBpbnQgbXY4OGU2eHh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03MzQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1NDg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1NDk6XFx0LnByb2JlXFx0PSBtdjg4ZTZ4eHhfcHJvYmUsXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1MC1cXHQucmVtb3ZlID0gbXY4OGU2eHh4X3JlbW92ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6MzguNjQxMDY1Mjg4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MjU4Njg3MzUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTURJTyBEZXZpY2UgQ3JlYXRpb24gSW5xdWlyeSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYG1kaW9fZHJpdmVyYCBhbmQgdGhlIHF1ZXN0aW9uIGltbWVkaWF0ZWx5IHBvcHMgaW50byBteSBoZWFkOiBjYW4gd2UgY29uanVyZSBhbiBgbWRpb19kZXZpY2VgIGZyb20gdXNlcnNwYWNlPyBNeSBpbnR1aXRpb24gaXMgbGVhbmluZyB0b3dhcmRzIFwibm9cIiDigJMgSSBkb24ndCByZWNhbGwgc2VlaW5nIGEgZ2VuZXJpYyBtZWNoYW5pc20gZm9yIHRoYXQsIHdoaWNoIGlzIG9kZCBpZiBJIHRoaW5rIGFib3V0IG90aGVyIGJ1c3Nlcy4gV2FpdCwgaG9sZCBvbi4gV2hhdCBhYm91dCB0aGUgSTJDIGJ1cz8gVGhlIEkyQyBidXMgKmRvZXMqIGFsbG93IHVzZXJzcGFjZSBkZXZpY2UgY3JlYXRpb24sIGRvZXNuJ3QgaXQsIHRocm91Z2ggdGhlIGAvc3lzL2J1cy9pMmMvZGV2aWNlcy9pMmMtKi9uZXdfZGV2aWNlYCBpbnRlcmZhY2U/XG5cblRoaXMgbWFrZXMgbWUgd29uZGVyIGlmIGEgc2ltaWxhciB0cmljayBleGlzdHMgZm9yIE1ESU8uIElzIHRoZXJlIGEgYC9zeXMvYnVzL21kaW9fYnVzL2RldmljZXMvYCBkaXJlY3Rvcnkgd2hlcmUgd2UgY291bGQgcG90ZW50aWFsbHkgZmluZCBhIGBuZXdfZGV2aWNlYCBlbnRyeT8gVGhhdCB3b3VsZCBiZSBmYW50YXN0aWMhIFRoZSByZWFsIHF1ZXN0aW9uIGlzLCBkb2VzIHRoZSBNRElPIGJ1cyAqZXZlbiBzdXBwb3J0KiBzdWNoIGEgZmVhdHVyZT8gTGV0IG1lIGdvIHBva2UgYXJvdW5kIGFuZCBzZWUgaWYgSSBjYW4gZmluZCBhbiBhbnN3ZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1NzExLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTI5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjQyLjU2NjkzODYyM1oiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzMDM1OTg4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJuZXdfZGV2aWNlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3BoeS9tZGlvX2J1cy5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NTo0Mi42Njk5OTYwNjFaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTA2OTM4NTQwMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNRElPIERldmljZSBJbnN0YW50aWF0aW9uIERpbGVtbWEqKlxuXG5Pa2F5LCBzbyBJJ20gZmFjaW5nIGEgd2FsbCBoZXJlLiBNRElPIGRldmljZXMsIGZyb20gd2hhdCBJIHVuZGVyc3RhbmQsIGNhbid0IGJlIHNwdW4gdXAgZGlyZWN0bHkgZnJvbSB1c2Vyc3BhY2UuIFRoYXTigJlzIGEgc2lnbmlmaWNhbnQgaHVyZGxlLiBOb3csIGhvbGQgb24sIEkgc2VlbSB0byByZWNhbGwgc29tZXRoaW5nIGFib3V0IHN5emthbGxlciBhbmQgZGV2aWNlIHRyZWUgb3ZlcmxheXMuIFRoZSBpZGVhIGZsaWNrZXJlZCAtIGNvdWxkIEkgcG90ZW50aWFsbHkgbGV2ZXJhZ2UgdGhhdCBmb3Igc29tZSBsZXZlbCBvZiBjb250cm9sP1xuXG5CdXQsIHRoYXQgbWVtb3J5IG5lZWRzIHJlZmluaW5nLiBEb2VzIHN5emthbGxlciAqYWN0dWFsbHkqIHByb3ZpZGUgZGV2aWNlIHRyZWUgb3ZlcmxheSBpbmplY3Rpb24sIHByb3ZpZGVkIGBDT05GSUdfT0ZfT1ZFUkxBWWAgaXMgZW5hYmxlZD8gSSdtIGFsbW9zdCBjZXJ0YWluIGl0cyBtYWlubGluZSBsYWNrcyB0aGF0IGNhcGFiaWxpdHkuIERhbW1pdC5cblxuQWxyaWdodCwgcGl2b3QuIElzIHRoZXJlIHNvbWUgY29udm9sdXRlZCBidXMgcGF0aCBJJ20gb3Zlcmxvb2tpbmc/IE1heWJlIHRoZSBNRElPIGRyaXZlciBjYW4gYmUgcmVhY2hlZCBpbmRpcmVjdGx5PyBObywgbm8sIGl0J3Mgc3RyaWN0bHkgTURJTy4gVGhhdCBhdmVudWUgaXMgY2xvc2VkLlxuXG5JJ20gaGl0dGluZyBhIGRlYWQgZW5kIGhlcmUuIElzIHRoZXJlICphbnkqIHdheSB0byB0b3VjaCB0aGlzIGNvZGU/IFRoaXMgZmVlbHMgaW5jcmVhc2luZ2x5IGRpZmZpY3VsdCB0byBmdXp6LiBJZiwgaW4gYW55IHZpcnR1YWxpemVkIGNvbnRleHQgKEdDRSwgUUVNVSwgdGhlIHVzdWFsIHN1c3BlY3RzKSwgdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciBpcyBjb21wbGV0ZWx5IHVucmVhY2hhYmxlLCB0aGVuIGhvbmVzdGx5LCBJJ20gd2FzdGluZyByZXNvdXJjZXMgb24gYSBmdXp6aW5nIHRhcmdldCB0aGF0J3MgdW5hY2hpZXZhYmxlLiBUaW1lIHRvIGFkbWl0IGRlZmVhdCBhbmQgc2V0IGBXb3J0aEZ1enppbmc9ZmFsc2VgLlxuXG5J4oCZbSBhbHNvIGdvaW5nIHRvIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUsIGlmIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgYG12ODhlNnh4eGAgbGl2ZXMgaW4gdGhlIGtlcm5lbC4gTWF5YmUgdGhlcmUncyBhIGJhY2sgZG9vci5cblxuXG4iLCJJbnB1dFRva2VucyI6MjYxMDMsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6NDcuNzM5Mzg0MTkyWiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMTAzMzY3OTMsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm12ODhlNnh4eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6NDguMDQ5NzMyOTE1WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4MTU3NzQ2NzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBzdW1tYXJ5LCBwcmVzZW50ZWQgYXMgYSBzdHJlYW0gb2YgdGhvdWdodDpcblxuKipOZXRkZXZzaW0gYW5kIE15IEhhcmR3YXJlIEVtdWxhdGlvbiBOZWVkcyoqXG5cbkhtbSwgSSdtIHRoaW5raW5nIGFib3V0IG5ldHdvcmsgZGV2aWNlIHNpbXVsYXRpb24gYWdhaW4uIFNwZWNpZmljYWxseSwgSSdtIHdvbmRlcmluZyBpZiBgbmV0ZGV2c2ltYCBjb3VsZCBiZSBhIHZpYWJsZSBvcHRpb24gZm9yIGVtdWxhdGluZyBhIHNwZWNpZmljIE1hcnZlbGwgc3dpdGNoIOKAkyB0aGUgYG12ODhlNnh4eGAgc2VyaWVzLiBJJ3ZlIGJlZW4gdGFja2xpbmcgdGhpcyBraW5kIG9mIGNoYWxsZW5nZSBiZWZvcmUgYW5kIEkga25vdyB0aGUgbGFuZHNjYXBlIHByZXR0eSB3ZWxsLiBJIG5lZWQgYSByb2J1c3QgYW5kIGZsZXhpYmxlIGVudmlyb25tZW50IGZvciB0ZXN0aW5nLiBgbmV0ZGV2c2ltYCBpcyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIHByb3ZpZGluZyB0aGUgY29yZSBmcmFtZXdvcmsgZm9yIHJlcHJlc2VudGluZyB2aXJ0dWFsIG5ldHdvcmsgZGV2aWNlcy4gQnV0IGRvZXMgaXQgZ28gZmFyIGVub3VnaD8gRG9lcyBpdCBvZmZlciB0aGUgbGV2ZWwgb2YgKnNwZWNpZmljKiBkZXRhaWwgcmVxdWlyZWQgdG8gYWNjdXJhdGVseSByZXBsaWNhdGUgdGhlIGJlaGF2aW9yIG9mIHRoYXQgcGFydGljdWxhciBNYXJ2ZWxsIGNoaXBzZXQ/IEkgbmVlZCB0byBkaWcgZGVlcGVyLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGRvY3VtZW50YXRpb24sIHNlZSB3aGF0IGZlYXR1cmVzIGFyZSBpbXBsZW1lbnRlZCwgYW5kIHByb2JhYmx5IGRpdmUgaW50byB0aGUgc291cmNlIGNvZGUgdG8gZ2V0IGEgcmVhbCBoYW5kbGUgb24gaXRzIGNhcGFiaWxpdGllcy4gSXTigJlzIGFuIGludGVyZXN0aW5nIHF1ZXN0aW9uIHRvIGNvbnNpZGVyIGlmIGl0IGhhcyBiZWVuIGRvbmUgYmVmb3JlLiBVbHRpbWF0ZWx5LCBJJ20gdHJ5aW5nIHRvIGRlY2lkZSBpZiBJIGNhbiB1c2UgaXQgYXMgYSBmb3VuZGF0aW9uIG9yIGlmIEkgbmVlZCB0byBidWlsZCBhIG1vcmUgY3VzdG9tIHNvbHV0aW9uLiBUaGUgZGV2aWwsIGFzIGFsd2F5cywgaXMgaW4gdGhlIGRldGFpbHMsIGVzcGVjaWFsbHkgaW4gaGFyZHdhcmUgZW11bGF0aW9uIVxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjYxNywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ1OjU0Ljg2NTUxMDUyOFoiLCJTZXEiOjIyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI0MjM1MjM4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvbmV0ZGV2c2ltL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDU6NTQuOTg5NzU0MjE1WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgwMjkyMDU4MzYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRnV6emFiaWxpdHkqKlxuXG5Pa2F5LCBteSBpbml0aWFsIGluc3RpbmN0IHdhcyBjb3JyZWN0LiBUaGlzIGRyaXZlciAoYG12ODhlNnh4eGApIGlzIHN0cmljdGx5IGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgaGFyZHdhcmUgc3dpdGNoZXMuIEl0J3MgYSBsb3ctbGV2ZWwgZHJpdmVyLCBzbyBteSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQgcmVsaWVzIG9uIGRpcmVjdCBpbnRlcmFjdGlvbiB3aXRoIHRoZSBoYXJkd2FyZS4gU2luY2UgUUVNVSwgYW5kIHZpcnR1YWxpemF0aW9uIGluIGdlbmVyYWwgbGlrZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUsIGRvZXNuJ3QgZW11bGF0ZSB0aGlzIHNwZWNpZmljIGhhcmR3YXJlIOKAkyBhbmQgdGhlcmUncyBubyBlcXVpdmFsZW50IGtlcm5lbC1sZXZlbCBzb2Z0d2FyZSBlbXVsYXRpb24g4oCTIHRoZSBjb2RlIGlzIGZ1bmRhbWVudGFsbHkgdW5yZWFjaGFibGUgaW4gYSBmdXp6ZXIgbGlrZSBzeXprYWxsZXIuIFRoZXJlZm9yZSwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IHN0YW5kczogYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cbkxldCBtZSBqdXN0IHF1aWNrbHkgcmUtZXhhbWluZSB0aGUgcGF0Y2guIE9rYXksIGl0J3MgdG91Y2hpbmcgYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jYCwgYGNoaXAuaGAsIGBkZXZsaW5rLmNgLCBhbmQgYGdsb2JhbDFfYXR1LmNgLiBBbGwgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9gIGRpcmVjdG9yeSwgd2hpY2ggY29uZmlybXMgaXQncyB0aGUgTWFydmVsbCA4OEU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBOb3RoaW5nIGhlcmUgc3VnZ2VzdHMgYW4gYWx0ZXJuYXRpdmUgcGF0aCwgY29uZmlybWluZyBteSBpbml0aWFsIGFzc2Vzc21lbnQuIFRoZSBjb3JlIGlzc3VlIGlzIHRoZSBoYXJkd2FyZSBkZXBlbmRlbmN5IOKAkyBpdCBjYW4ndCBiZSBmdXp6ZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudC4gVGhlIHJlYXNvbmluZyBzaG91bGQgYmUgY2xlYXI6IGl0IG1vZGlmaWVzIHRoZSBNYXJ2ZWxsIDg4RTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIGF2YWlsYWJsZSB0byBicmlkZ2UgdGhlIGdhcCBmb3IgZnV6emVyIHV0aWxpemF0aW9uLlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgY2VydGFpbiwgbGV0IG1lIGRpZyBhIGxpdHRsZSBkZWVwZXIsIEkgbmVlZCB0byBjaGVjayBmb3IgYSBwb3NzaWJsZSBwYXRod2F5LiBDb3VsZCBpdCBwb3RlbnRpYWxseSBiZSBleHBvc2VkIHZpYSBhIFBDSSBkZXZpY2U/IE5vLiBNRElPLCB0aGF0J3Mgd2hhdCBJIHRob3VnaHQuIFVTQj8gSG9sZCBvbiwgd2FpdC4gVGhlIGRvY3VtZW50YXRpb24gYERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sYCBtZW50aW9ucyB1c2luZyB0aGUgYG12ODhlNnh4eGAgZHJpdmVyIHdpdGggYSBkZXZpY2UgdHJlZSBub2RlIGZvciBzd2l0Y2ggZGVmaW5pdGlvbi4gQ291bGQgdGhlcmUgYmUgYSBVU0ItdG8tTURJTyBicmlkZ2U/IEl0IGltcGxpZXMgdGhlIHBvc3NpYmlsaXR5LiBJdCBsb29rcyBsaWtlIGl0IG1lbnRpb25zIGBtYXJ2ZWxsLG12dXNiYCwgd2hpY2ggaXMgc29tZXRoaW5nIHRvIGxvb2sgaW50by5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY5MzcsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDY6MDMuMDE4OTYyOTYyWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNDEzMTUzNTE4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1hcnZlbGwsbXZ1c2JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIkRvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9uZXQvbWFydmVsbCxtdnVzYi55YW1sLTMtLS0tXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWw6NDokaWQ6IGh0dHA6Ly9kZXZpY2V0cmVlLm9yZy9zY2hlbWFzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwjXFxuRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWwtNS0kc2NoZW1hOiBodHRwOi8vZGV2aWNldHJlZS5vcmcvbWV0YS1zY2hlbWFzL2NvcmUueWFtbCNcXG4tLVxcbk1BSU5UQUlORVJTPTE1Nzc0PVM6XFx0TWFpbnRhaW5lZFxcbk1BSU5UQUlORVJTOjE1Nzc1OkY6XFx0RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL25ldC9tYXJ2ZWxsLG12dXNiLnlhbWxcXG5NQUlOVEFJTkVSUy0xNTc3Ni1GOlxcdGRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjA1LjQzMjEyNDk2WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3OTQ1MDgyOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhbmFseXNpcyBvZiB0aGUgcHJvdmlkZWQgc25pcHBldCwgYXMgdGhvdWdoIGl0IHdlcmUgbXkgdHJhaW4gb2YgdGhvdWdodDpcblxuKipEaXZpbmcgaW50byB0aGUgTURJTyBVU0IgRHJpdmVyKipcblxuT2theSwgc28gd2UncmUgbG9va2luZyBhdCB0aGUgTWFydmVsbCBVU0IgTURJTyBkcml2ZXIsIHNwZWNpZmljYWxseSBgZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmNgLiBUaGlzIHN1Z2dlc3RzIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIFVTQi1jb25uZWN0ZWQgTURJTyBjb250cm9sbGVyLCBsaWtlbHkgZm9yIGludGVyZmFjaW5nIHdpdGggUEhZcyB3aXRoaW4gYSBuZXR3b3JraW5nIGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgVVNCIGNvbW11bmljYXRpb24gaXMgaGFuZGxlZCBhdCB0aGlzIGxldmVsLCBob3cgaXQgdHJhbnNsYXRlcyBNRElPIGNvbW1hbmRzLCBhbmQgd2hhdCBzcGVjaWZpYyBNYXJ2ZWxsIHNpbGljb24gdGhpcyBkcml2ZXIgdGFyZ2V0cy4gSSBleHBlY3QgdG8gc2VlIHRoZSBVU0IgZGVzY3JpcHRvcnMsIGVuZHBvaW50IGNvbmZpZ3VyYXRpb25zLCBhbmQgdGhlIGNvcmUgTURJTyB0cmFuc2FjdGlvbiBsb2dpYy4gSSdsbCBiZSBsb29raW5nIGZvciBhbnkgZGV2aWNlLXNwZWNpZmljIHF1aXJrcyBvciBvcHRpbWl6YXRpb25zIE1hcnZlbGwgbWlnaHQgaGF2ZSBpbXBsZW1lbnRlZCBpbiB0aGVpciBVU0IgaW50ZXJmYWNlIGZvciB0aGlzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzk5MCwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjA5LjIyNjYzNjM4OFoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE2MjE2Mjk3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm12dXNiXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTEwLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCBtdnVzYl9tZGlvX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTItXFx0eyBVU0JfREVWSUNFKFVTQl9NQVJWRUxMX1ZJRCwgMHgxZmE0KSB9LFxcbi0tXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTUtfTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxNjpNT0RVTEVfREVWSUNFX1RBQkxFKHVzYiwgbXZ1c2JfbWRpb190YWJsZSk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMTctXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM9MTg9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0yNC1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoyNTpzdHJ1Y3QgbXZ1c2JfbWRpbyB7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMjYtXFx0c3RydWN0IHVzYl9kZXZpY2UgKnVkZXY7XFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0zMS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzozMjpzdGF0aWMgaW50IG12dXNiX21kaW9fcmVhZChzdHJ1Y3QgbWlpX2J1cyAqbWRpbywgaW50IGRldiwgaW50IHJlZylcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0zMy17XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MzQ6XFx0c3RydWN0IG12dXNiX21kaW8gKm12dXNiID0gbWRpby1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0zNS1cXHRpbnQgZXJyLCBhbGVuO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTM2LVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjM3OlxcdG12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX0FERFJdID0gY3B1X3RvX2xlMTYoMHhhNDAwIHwgKGRldiBcXHUwMDNjXFx1MDAzYyA1KSB8IHJlZyk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtMzgtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6Mzk6XFx0ZXJyID0gdXNiX2J1bGtfbXNnKG12dXNiLVxcdTAwM2V1ZGV2LCB1c2Jfc25kYnVsa3BpcGUobXZ1c2ItXFx1MDAzZXVkZXYsIDIpLFxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjQwOlxcdFxcdFxcdCAgIG12dXNiLVxcdTAwM2VidWYsIDYsIFxcdTAwMjZhbGVuLCAxMDApO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTQxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy00My1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0NDpcXHRlcnIgPSB1c2JfYnVsa19tc2cobXZ1c2ItXFx1MDAzZXVkZXYsIHVzYl9yY3ZidWxrcGlwZShtdnVzYi1cXHUwMDNldWRldiwgNiksXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NDU6XFx0XFx0XFx0ICAgXFx1MDAyNm12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX1ZBTF0sIDIsIFxcdTAwMjZhbGVuLCAxMDApO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTQ2LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy00OC1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo0OTpcXHRyZXR1cm4gbGUxNl90b19jcHUobXZ1c2ItXFx1MDAzZWJ1ZltNVlVTQl9DTURfVkFMXSk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNTAtfVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTUxLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjUyOnN0YXRpYyBpbnQgbXZ1c2JfbWRpb193cml0ZShzdHJ1Y3QgbWlpX2J1cyAqbWRpbywgaW50IGRldiwgaW50IHJlZywgdTE2IHZhbClcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01My17XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NTQ6XFx0c3RydWN0IG12dXNiX21kaW8gKm12dXNiID0gbWRpby1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01NS1cXHRpbnQgYWxlbjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01Ni1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo1NzpcXHRtdnVzYi1cXHUwMDNlYnVmW01WVVNCX0NNRF9BRERSXSA9IGNwdV90b19sZTE2KDB4ODAwMCB8IChkZXYgXFx1MDAzY1xcdTAwM2MgNSkgfCByZWcpO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjU4OlxcdG12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX1ZBTF0gID0gY3B1X3RvX2xlMTYodmFsKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy01OS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo2MDpcXHRyZXR1cm4gdXNiX2J1bGtfbXNnKG12dXNiLVxcdTAwM2V1ZGV2LCB1c2Jfc25kYnVsa3BpcGUobXZ1c2ItXFx1MDAzZXVkZXYsIDIpLFxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjYxOlxcdFxcdFxcdCAgICBtdnVzYi1cXHUwMDNlYnVmLCA4LCBcXHUwMDI2YWxlbiwgMTAwKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy02Mi19XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjMtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NjQ6c3RhdGljIGludCBtdnVzYl9tZGlvX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRlcmZhY2UsXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjUtXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTY3LVxcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFxcdTAwMjZpbnRlcmZhY2UtXFx1MDAzZWRldjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo2ODpcXHRzdHJ1Y3QgbXZ1c2JfbWRpbyAqbXZ1c2I7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNjktXFx0c3RydWN0IG1paV9idXMgKm1kaW87XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNzAtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6NzE6XFx0bWRpbyA9IGRldm1fbWRpb2J1c19hbGxvY19zaXplKGRldiwgc2l6ZW9mKCptdnVzYikpO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTcyLVxcdGlmICghbWRpbylcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTc0LVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjc1OlxcdG12dXNiID0gbWRpby1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo3NjpcXHRtdnVzYi1cXHUwMDNlbWRpbyA9IG1kaW87XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6Nzc6XFx0bXZ1c2ItXFx1MDAzZXVkZXYgPSBpbnRlcmZhY2VfdG9fdXNiZGV2KGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNzgtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtNzktXFx0LyogUmV2ZXJzZWQgZnJvbSBVU0IgUENBUHMsIG5vIGlkZWEgd2hhdCB0aGVzZSBtZWFuLiAqL1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjgwOlxcdG12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX1BSRUFNQkxFMF0gPSBjcHVfdG9fbGUxNigweGU4MDApO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjgxOlxcdG12dXNiLVxcdTAwM2VidWZbTVZVU0JfQ01EX1BSRUFNQkxFMV0gPSBjcHVfdG9fbGUxNigweDAwMDEpO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTgyLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjgzOlxcdHNucHJpbnRmKG1kaW8tXFx1MDAzZWlkLCBNSUlfQlVTX0lEX1NJWkUsIFxcXCJtdnVzYi0lc1xcXCIsIGRldl9uYW1lKGRldikpO1xcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTg0LVxcdG1kaW8tXFx1MDAzZW5hbWUgPSBtZGlvLVxcdTAwM2VpZDtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy04NS1cXHRtZGlvLVxcdTAwM2VwYXJlbnQgPSBkZXY7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODY6XFx0bWRpby1cXHUwMDNlcmVhZCA9IG12dXNiX21kaW9fcmVhZDtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo4NzpcXHRtZGlvLVxcdTAwM2V3cml0ZSA9IG12dXNiX21kaW9fd3JpdGU7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtODgtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6ODk6XFx0dXNiX3NldF9pbnRmZGF0YShpbnRlcmZhY2UsIG12dXNiKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy05MC1cXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTkzLVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjk0OnN0YXRpYyB2b2lkIG12dXNiX21kaW9fZGlzY29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKVxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jLTk1LXtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzo5NjpcXHRzdHJ1Y3QgbXZ1c2JfbWRpbyAqbXZ1c2IgPSB1c2JfZ2V0X2ludGZkYXRhKGludGVyZmFjZSk7XFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmMtOTctXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6OTg6XFx0bWRpb2J1c191bnJlZ2lzdGVyKG12dXNiLVxcdTAwM2VtZGlvKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy05OS1cXHR1c2Jfc2V0X2ludGZkYXRhKGludGVyZmFjZSwgTlVMTCk7XFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0xMDEtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MTAyOnN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBtdnVzYl9tZGlvX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDM6XFx0Lm5hbWUgICAgICAgPSBcXFwibXZ1c2JfbWRpb1xcXCIsXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MTA0OlxcdC5pZF90YWJsZSAgID0gbXZ1c2JfbWRpb190YWJsZSxcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYzoxMDU6XFx0LnByb2JlICAgICAgPSBtdnVzYl9tZGlvX3Byb2JlLFxcbmRyaXZlcnMvbmV0L21kaW8vbWRpby1tdnVzYi5jOjEwNjpcXHQuZGlzY29ubmVjdCA9IG12dXNiX21kaW9fZGlzY29ubmVjdCxcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0xMDctfTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0xMDgtXFxuZHJpdmVycy9uZXQvbWRpby9tZGlvLW12dXNiLmM6MTA5Om1vZHVsZV91c2JfZHJpdmVyKG12dXNiX21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9tZGlvL21kaW8tbXZ1c2IuYy0xMTAtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjA5LjM0Mjg3MjAyNloiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4NjY3NjQ4MTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBgbWRpby1tdnVzYi5jYCBEcml2ZXIgYW5kIFBvdGVudGlhbCBTeXprYWxsZXIgSW50ZXJhY3Rpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgbWRpby1tdnVzYi5jYCwgYW5kIGl0J3MgYSBVU0IgZHJpdmVyIHRoYXQncyByZXNwb25zaWJsZSBmb3IgcmVnaXN0ZXJpbmcgYW4gTURJTyBidXMuIEludGVyZXN0aW5nLiBOb3csIEkga25vdyBTeXprYWxsZXIgY2FuIGVtdWxhdGUgVVNCIGRldmljZXMgdXNpbmcgYHN5el91c2JfY29ubmVjdGAuIFRoZSBpbW1lZGlhdGUgaW1wbGljYXRpb24gaXMgdGhhdCBpZiBTeXprYWxsZXIgZmlyZXMgdXAgdGhpcyBVU0IgZGV2aWNlLCBpdCBzaG91bGQgcmVnaXN0ZXIgYW4gTURJTyBidXMuXG5cbkJ1dCwgYSBjcml0aWNhbCBxdWVzdGlvbiBpbW1lZGlhdGVseSBqdW1wcyB0byBtaW5kOiBEb2VzIHRoaXMgTURJTyBidXMgcmVnaXN0cmF0aW9uIGF1dG9tYXRpY2FsbHkgdHJpZ2dlciBhIHByb2JlIG9mIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXI/IE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhhdCB0eXBpY2FsbHksIE1ESU8gZGV2aWNlcyBhcmUgcHJvYmVkIGJhc2VkIG9uIGRldmljZSB0cmVlIG5vZGVzIG9yIGJvYXJkLXNwZWNpZmljIGluZm9ybWF0aW9uLiBTbywganVzdCByZWdpc3RlcmluZyB0aGUgVVNCIGRldmljZSwgY3JlYXRpbmcgdGhlIE1ESU8gYnVzLCBpcyB1bmxpa2VseSB0byBwb3B1bGF0ZSBpdCB3aXRoIGFueSBkZXZpY2VzLCB1bmxlc3MgdGhleSBhcmUgc3BlY2lmaWNhbGx5IGVudW1lcmF0ZWQuXG5cblRoZW4gSSByZW1lbWJlcmVkIHRoYXQgTURJTyBidXNlcyBoYXZlIGEgc2Nhbm5pbmcgY2FwYWJpbGl0eSBmb3IgUEhZcywgdGhhdCBpcyBkZXZpY2VzIGluIHRoZSBhZGRyZXNzIHJhbmdlIDAtMzEuIE5vdywgZG9lcyBgbWRpb2J1c19yZWdpc3RlcmAgYWN0dWFsbHkgcGVyZm9ybSB0aGlzIHNjYW4/IFllcyEgTG9va2luZyBjbG9zZXIsIGBfX21kaW9idXNfcmVnaXN0ZXJgIGNhbGxzIGBtZGlvYnVzX3NjYW5gIGZvciBhbGwgYWRkcmVzc2VzIGlmIHRoZSBgcGh5X21hc2tgIGRvZXNuJ3QgZXhjbHVkZSB0aGVtLiBTbywgYXQgbGVhc3QgdGhlcmUgKmlzKiBhIG1lY2hhbmlzbSBmb3IgZGV0ZWN0aW5nIGRldmljZXMuXG5cbk15IG5leHQgbGluZSBvZiB0aG91Z2h0IGlzIHRoYXQgYG12ODhlNnh4eGAgaXMgYW4gTURJTyBkcml2ZXIuIEhvdyBkb2VzIGl0IGdldCBib3VuZD8gSXMgaXQgdGhyb3VnaCBhIGRpcmVjdCBtYXRjaCBvbiBhIFBIWSBJRD8gSSBuZWVkIHRvIGNoZWNrIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY2AgYW5kIGh1bnQgZG93biBgbWRpb19kZXZpY2VfaWRgIG9yIHNvbWUgb3RoZXIgYmluZGluZyBsb2dpYy4gVGhhdCdzIHRoZSBrZXkgdG8gdW5kZXJzdGFuZGluZyBpZiB0aGlzIGVudGlyZSBzZXR1cCB3aWxsIHdvcmsgYXMgZXhwZWN0ZWQgd2l0aCBTeXprYWxsZXIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwNzI1LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjE4LjAxMDUyNDQyOVoiLCJTZXEiOjI4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQwMTQ1MDI3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvX2RldmljZV9pZFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDY6MTguMTUwNjc4MjU2WiIsIlNlcSI6MjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxMDE1MDcyMjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkZvY3VzaW5nIG9uIHRoZSBDb3JlIG9mIHRoZSBJc3N1ZSoqXG5cbkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHRoZSByb290IG9mIHRoaXMuIEJhc2VkIG9uIHdoYXQgSSd2ZSBzZWVuIHNvIGZhciwgYW5kIHRoZSBnZW5lcmFsIGFyY2hpdGVjdHVyZSwgbXkgaW1tZWRpYXRlIGluc3RpbmN0IGlzIHRvIHplcm8gaW4gb24gYSBmZXcgY3JpdGljYWwgYXJlYXMgd2l0aGluIHRoZSBgY2hpcC5jYCBmaWxlLiBTcGVjaWZpY2FsbHksIEkgbmVlZCB0byBjaGVjayB0aGUgaW1wbGVtZW50YXRpb25zIHJlbGF0ZWQgdG8gZWl0aGVyIGBvZl9kZXZpY2VfaWRgIG9yIGBtZGlvX2RyaXZlcmAuIE9uZSBvZiB0aGVzZSBpcyAqaGlnaGx5KiBsaWtlbHkgdG8gY29udGFpbiB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGRldmljZSBpbml0aWFsaXphdGlvbiBhbmQgY29tbXVuaWNhdGlvbiBmbG93LCB3aGljaCBpcyB3aGVyZSBteSBzdXNwaWNpb24gbGllcyBmb3IgdGhlIGN1cnJlbnQgaXNzdWUgSSdtIGRlYnVnZ2luZy4gVGhlc2UgYXJlIG9mdGVuIHRoZSBwbGFjZXMgd2hlcmUgdGhlIGRyaXZlciBpZGVudGlmaWVzIHRoZSBzcGVjaWZpYyBoYXJkd2FyZSBpdCdzIHRhbGtpbmcgdG8gYW5kIHNldHMgdXAgdGhlIG5lY2Vzc2FyeSBpbnRlcmZhY2UgZm9yIG1hbmFnaW5nIHRoZSBkZXZpY2UuIExldCdzIHNlZSB3aGF0J3MgYWN0dWFsbHkgZ29pbmcgb24gaW4gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNDI0LCJPdXRwdXRUb2tlbnMiOjQ3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDY6MjEuMjUyMTg3NTg5WiIsIlNlcSI6MzAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MzQ2NTQ3OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdjg4ZTZ4eHhfb2ZfbWF0Y2hcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUxOD1zdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUyOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTMwOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ODhlNnh4eF9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1MzEtXFx0e1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTQ2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0Ny1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTQ4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2eHh4X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTMtXFx0XFx0Lm5hbWUgPSBcXFwibXY4OGU2MDg1XFxcIixcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTU0OlxcdFxcdC5vZl9tYXRjaF90YWJsZSA9IG12ODhlNnh4eF9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTU1LVxcdFxcdC5wbSA9IFxcdTAwMjZtdjg4ZTZ4eHhfcG1fb3BzLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NjoyMS4zNDU2NTgyMTdaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA1MDU1NDUyMywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIERldmljZSBCaW5kaW5nIE1lY2hhbmlzbSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgdGhlIGtleSB0aGluZyB0aGF0IGp1bXBzIG91dCBpcyB0aGUgZmFjdCB0aGF0IGl0ICpvbmx5KiBoYXMgYW4gYG9mX21hdGNoX3RhYmxlYC4gVGhhdCdzIGEgcHJldHR5IHN0cm9uZyBpbmRpY2F0b3IuIEl0IG1lYW5zIHRoZSBkcml2ZXIgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIGJpbmQgZXhjbHVzaXZlbHkgdG8gZGV2aWNlcyB0aGF0IGFyZSBpbnN0YW50aWF0ZWQgdGhyb3VnaCB0aGUgZGV2aWNlIHRyZWUuIFRoYXQncyBhIGNyaXRpY2FsIHBpZWNlIG9mIGluZm9ybWF0aW9uLlxuXG5JZiBzeXprYWxsZXIgaXMgZ29pbmcgdG8gZW11bGF0ZSBhIFVTQiBkZXZpY2UsIHRoZSBNRElPIGJ1cyAqd2lsbCogYmUgY3JlYXRlZCwgb2YgY291cnNlLiBCdXQgdGhlIHJlYWwgcHJvYmxlbSBpcyB0aGF0LCB3aXRob3V0IGEgY29ycmVzcG9uZGluZyBkZXZpY2UgdHJlZSBub2RlIGZvciB0aGUgTURJTyBidXMgaXRzZWxmIGFuZCwgY3J1Y2lhbGx5LCBmb3IgaXRzIGNoaWxkIGRldmljZXMsIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgc2ltcGx5IHdvbid0IGJpbmQuIFRoZSB3aG9sZSB0aGluZyBoaW5nZXMgb24gdGhhdCBkZXZpY2UgdHJlZSBkZXNjcmlwdGlvbi4gSXQncyBsaWtlIHRoZSBkcml2ZXIgbmVlZHMgYSBiaXJ0aCBjZXJ0aWZpY2F0ZSwgYW5kIHRoZSBkZXZpY2UgdHJlZSBwcm92aWRlcyBpdC5cblxuSGFuZyBvbiBhIHNlY29uZOKApiBJIG5lZWQgdG8gY29uc2lkZXIgYWxsIHRoZSBhbmdsZXMgaGVyZS4gSXMgKnRoaXMqIHRoZSBvbmx5IHdheSB0aGlzIGRyaXZlciBnZXRzIGF0dGFjaGVkIHRvIGhhcmR3YXJlPyBMZXQgbWUgZG91YmxlLWNoZWNrLiBJIG5lZWQgdG8gcnVsZSBvdXQgYW55dGhpbmcgZWxzZSwgYW55IHNuZWFreSBgcGxhdGZvcm1fZGF0YWAgc3RydWN0dXJlcywgYW55IG90aGVyIG1hdGNoIHRhYmxlcyB0aGF0IG1pZ2h0IGhhdmUgYmVlbiBtaXNzZWQuIFdlJ3JlIGxvb2tpbmcgZm9yIGFsdGVybmF0aXZlIGJpbmRpbmcgbWV0aG9kcy4gR290dGEgY292ZXIgYWxsIG15IGJhc2VzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjA4NywiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NjoyNS4zOTYyMTU4OVoiLCJTZXEiOjMyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODk5MTYyNjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiTU9EVUxFX0RFVklDRV9UQUJMRVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz03NTMwPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG12ODhlNnh4eF9vZl9tYXRjaFtdID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0NS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTQ2Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG12ODhlNnh4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0Ny1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTVUMDc6NDY6MjUuNDg2MTM5NTU4WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg1OTE4Nzg0MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYG12ODhlNnh4eGAgQ29kZSB3aXRoIFN5emthbGxlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyeWluZyB0byBmaWd1cmUgb3V0IGlmIHN5emthbGxlciBjYW4gYWN0dWFsbHkgcmVhY2ggdGhlIGNvZGUgaXQncyB0b3VjaGluZy4gVGhlIGZpcnN0IHRoaW5nIHRoYXQganVtcHMgb3V0IGlzIHRoYXQgaXQncyB1c2luZyBgb2ZfbWF0Y2hfdGFibGVgLCB3aGljaCBtZWFucyB0aGlzIGRyaXZlciBpcyAqc3RyaWN0bHkqIGRldmljZSB0cmVlIG5vZGUgZGVwZW5kZW50LiBTeXprYWxsZXIsIGluIGl0cyBzdGFuZGFyZCBjb25maWd1cmF0aW9uLCBkb2Vzbid0IGluamVjdCBkZXZpY2UgdHJlZSBub2Rlcy4gSXQgdXN1YWxseSBydW5zIG9uIFFFTVUgeDg2XzY0IG9yIEFSTTY0IHdpdGggc29tZXRoaW5nIGxpa2UgdGhlIGB2aXJ0YCBtYWNoaW5lLCB3aGljaCwgYXMgSSByZWNhbGwsIGRlZmluaXRlbHkgZG9lc24ndCBoYXZlIGFuIGBtdjg4ZTZ4eHhgIG5vZGUgaW4gaXRzIGRldmljZSB0cmVlLiBTbywgc3RhbmRhcmQgZnV6emluZyBpc24ndCBnb2luZyB0byBnZXQgdXMgdGhlcmUuXG5cbldhaXQsIHRob3VnaOKApiB3aGF0IGlmIHN5emthbGxlciAqaXMqIHJ1bm5pbmcgb24gYSBib2FyZCB0aGF0ICpkb2VzKiBoYXZlIHRoaXMgZGV2aWNlIHRyZWUgbm9kZT8gVGhhdCdzIGEgcG9zc2liaWxpdHksIGJ1dCB1bmxpa2VseSBmb3IgdGhlIHN0YW5kYXJkIGNvbmZpZ3VyYXRpb25zLlxuXG5BbHJpZ2h0LCB3aGF0IG90aGVyIGFuZ2xlcyBhcmUgdGhlcmU/IENvdWxkIGl0IGJlIGluc3RhbnRpYXRlZCB0aHJvdWdoIHNvbWUgbGVnYWN5IGJvYXJkIGZpbGUgbWVjaGFuaXNtPyBIbW0sIG5vLiBJIHJlbWVtYmVyIGNoZWNraW5nIOKAkyBpdCdzIGFuIE1ESU8gZHJpdmVyLCBhbmQgYG1kaW9fYm9hcmRfaW5mb2AgaXNuJ3QgdXNlZCBhbnl3aGVyZSBpbiB0aGUga2VybmVsIGZvciBgbXY4OGU2eHh4YC4gU28gdGhhdCdzIGEgZGVhZCBlbmQuXG5cbldhaXQgYSBzZWNvbmTigKYgdGhpcyBwYXRjaCBtaWdodCBoYXZlIGJlZW4gYXBwbGllZCBieSBgc3l6LWNsdXN0ZXJgIGp1c3QgYmVjYXVzZSBpdCB3YXMgcGFydCBvZiBhIGxhcmdlciBzZXJpZXMsIG9yIGJlY2F1c2Ugc3l6Ym90IGF1dG9tYXRpY2FsbHkgdGVzdHMgZXZlcnl0aGluZyBzZW50IHRvIG1haWxpbmcgbGlzdHMgbGlrZSBuZXRkZXYuIFN5emJvdCBpcyBwcmV0dHkgYWdncmVzc2l2ZSDigJMgaXQnbGwgYXBwbHksIGNvbXBpbGUsIGFuZCBmdXp6IGFueSBwYXRjaCBpdCBzZWVzLiBJdCBkb2Vzbid0IGFjdHVhbGx5ICpjYXJlKiBpZiB0aGUgY29kZSBpcyByZWFjaGFibGUsIGl0IGp1c3QgZG9lcyBpdHMgYmVzdC4gU28sIHRoZSBmYWN0IHRoYXQgc3l6Ym90IGFwcGxpZWQgaXQgZG9lc24ndCBtZWFuIGl0IGNhbiBiZSBmdXp6ZWQuXG5cblJpZ2h0LCBzbyB0byBtYWtlIHN1cmUsIGxldCBtZSBkb3VibGUgY2hlY2sgaWYgdGhlcmUncyAqYW5vdGhlciogd2F5IHRvIGdldCB0byBgbXY4OGU2eHh4X2Jyb2FkY2FzdF9zZXR1cGAuIEl0J3MgY2FsbGVkIGZyb20gYG12ODhlNnh4eF9kZXZsaW5rX3BhcmFtX3NldGAsIHdoaWNoIGlzIGNhbGxlZCB3aGVuIGRldmxpbmsgcGFyYW1ldGVycyBhcmUgYmVpbmcgc2V0LCBzbyB0aGF0J3MgcmVnaXN0ZXJlZCBpbiBgbXY4OGU2eHh4X2RldmxpbmtfcGFyYW1zX3JlZ2lzdGVyYC4gT2theSwgdGhhdCByZWdpc3RyYXRpb24gaXMgY2FsbGVkIGZyb20gYG12ODhlNnh4eF9zZXR1cF9kZXZsaW5rX3BhcmFtc2AsIHdoaWNoIGlzICppdHNlbGYqIGNhbGxlZCBmcm9tIGBtdjg4ZTZ4eHhfcHJvYmVgLiBTbywgdGhlIGVudGlyZSBjaGFpbiBoaW5nZXMgb24gYG12ODhlNnh4eF9wcm9iZWAgYmVpbmcgY2FsbGVkLiBJZiBgbXY4OGU2eHh4X3Byb2JlYCBuZXZlciBnZXRzIGNhbGxlZCwgdGhlIGRldmxpbmsgcGFyYW1ldGVycyBhcmVuJ3QgcmVnaXN0ZXJlZCwgYW5kIGV2ZXJ5dGhpbmcgZG93biB0aGUgbGluZSBpcyB1bnJlYWNoYWJsZS5cblxuTm93IHRoZSBtaWxsaW9uLWRvbGxhciBxdWVzdGlvbjogSXMgdGhlcmUgKmFueSogY2hhbmNlIGBtdjg4ZTZ4eHhfcHJvYmVgIGFjdHVhbGx5IGdldHMgY2FsbGVkPyBJIG5lZWQgdG8gY2hlY2sgdGhlIGtlcm5lbCBmb3IgYW55IGBtZGlvX2RldmljZV9yZWdpc3RlcmAgb3Igc29tZSBzaW1pbGFyIGZ1bmN0aW9uIHRoYXQgd291bGQgY3JlYXRlIGFuIGBtdjg4ZTZ4eHhgIGRldmljZS4gTGV0IG1lIGNoZWNrIHRoZSBrZXJuZWwgc291cmNlcy4uLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY0MSwiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5MCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NjozNC4wNzgwMjA5NzNaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MTE5MTM3MzUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWRpb19kZXZpY2VfcmVnaXN0ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jPTQ0Nj1zdGF0aWMgaW50IF9faW5pdCBkc2FfbG9vcF9jcmVhdGVfc3dpdGNoX21kaW9kZXYodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3My1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NzQ6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3dpdGNoX21kaW9kZXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ3NS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM9NTI9c3RhdGljIGludCBvZl9tZGlvYnVzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbWlpX2J1cyAqbWRpbyxcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTY4LVxcdC8qIEFsbCBkYXRhIGlzIG5vdyBzdG9yZWQgaW4gdGhlIG1kaW9kZXYgc3RydWN0OyByZWdpc3RlciBpdC4gKi9cXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYzo2OTpcXHRyYyA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTcwLVxcdGlmIChyYykge1xcbi0tXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYz0zMzc9c3RhdGljIGludCB4cGNzX3BsYXRfaW5pdF9kZXYoc3RydWN0IGR3X3hwY3NfcGxhdCAqcHhwY3MpXFxuLS1cXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1Ni1cXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jOjM1NzpcXHRyZXQgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1OC1cXHRpZiAocmV0KSB7XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYz0xMDc0PXN0YXRpYyBpbnQgYW44ODExaGJfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jLTEwOTctXFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM6MTA5ODpcXHRyZXQgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk5LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yNy0vKipcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoyODogKiBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldCAtIFJlYWQgYW5kIGluaXRpYWxpemUgdGhlIHJlc2V0IHByb3BlcnRpZXMgb2ZcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yOS0gKlxcdFxcdFxcdFxcdGFuIG1kaW8gZGV2aWNlXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zMy0gKi9cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzozNDpzdGF0aWMgaW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyX3Jlc2V0KHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zNS17XFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYz0xNDQ9RVhQT1JUX1NZTUJPTChtZGlvX2RldmljZV9jcmVhdGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ2LS8qKlxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE0NzogKiBtZGlvX2RldmljZV9yZWdpc3RlciAtIFJlZ2lzdGVyIHRoZSBtZGlvIGRldmljZSBvbiB0aGUgTURJTyBidXNcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDgtICogQG1kaW9kZXY6IG1kaW9fZGV2aWNlIHN0cnVjdHVyZSB0byBiZSBhZGRlZCB0byB0aGUgTURJTyBidXNcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE1MS0gKi9cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNTI6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTMte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTczLX1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNzQ6RVhQT1JUX1NZTUJPTChtZGlvX2RldmljZV9yZWdpc3Rlcik7XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTc1LVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTgxLSAqIFRoaXMgZG9lc24ndCBmcmVlIHRoZSBtZGlvX2RldmljZSBpdHNlbGYsIGl0IG1lcmVseSByZXZlcnNlcyB0aGUgZWZmZWN0c1xcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE4MjogKiBvZiBtZGlvX2RldmljZV9yZWdpc3RlcigpLiBVc2UgbWRpb19kZXZpY2VfZnJlZSgpIHRvIGZyZWUgdGhlIGRldmljZVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE4My0gKiBhZnRlciBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYz0xOTI9aW50IG1kaW9idXNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE5OS1cXHRpZiAobWRpb2Rldi1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBNRElPX0RFVklDRV9GTEFHX1BIWSkge1xcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjIwMDpcXHRcXHRlcnIgPSBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0yMDEtXFx0XFx0aWYgKGVycilcXG4tLVxcbmluY2x1ZGUvbGludXgvbWRpby5oPTkwPXN0cnVjdCBtZGlvX2RldmljZSAqbWRpb19kZXZpY2VfY3JlYXRlKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyKTtcXG5pbmNsdWRlL2xpbnV4L21kaW8uaDo5MTppbnQgbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcXG5pbmNsdWRlL2xpbnV4L21kaW8uaC05Mi12b2lkIG1kaW9fZGV2aWNlX3JlbW92ZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0NjozNi41ODk5NDMxOThaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE4MTU4NDQxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCBwcmVzZW50ZWQgYXMgYSBzdW1tYXJ5OlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgYGRzYV9sb29wLmNgIE1vZHVsZSoqXG5cbkFscmlnaHQsIHNvIGBkc2FfbG9vcC5jYCBpcyB3aGVyZSB0aGluZ3MgYXJlIGdldHRpbmcgaW50ZXJlc3RpbmcuIE15IGluaXRpYWwgaHVuY2ggd2FzIGNvcnJlY3Q7IGl0IGxvb2tzIGxpa2UgdGhpcyBpcyB3aGVyZSBhIGBtZGlvZGV2YCBzd2l0Y2ggaXMgYWN0dWFsbHkgKmNyZWF0ZWQqLiBUaGF0J3MgYSBrZXkgcGllY2Ugb2YgdGhlIHB1enpsZSBJIHdhcyBsb29raW5nIGZvci4gTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gZGl2ZSBkZWVwZXIuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBmdW5kYW1lbnRhbCBwdXJwb3NlIG9mIGBkc2FfbG9vcC5jYCBhbmQgc3BlY2lmaWNhbGx5LCB3aGF0IHRoaXMgYG1kaW9kZXZgIHN3aXRjaCBpcy4gTGV0J3Mgc3RhcnQgYnkgZGlzc2VjdGluZyB0aGUgY29kZSB3aXRoaW4gdGhpcyBmaWxlLiBUaGUgZG9jdW1lbnRhdGlvbiBzaG91bGQgYmUgcHJldHR5IGNsZWFyLCBidXQgbGV0J3MgYXNzdW1lIHRoZSB3b3JzdCwgYW5kIEkgbWlnaHQgbmVlZCB0byB0cmFjZSB0aGUgdmFyaWFibGVzLCBvciBhdCBsZWFzdCBzZWFyY2ggZm9yIHRoZSByZWxhdGVkIGZ1bmN0aW9ucyB0byB1bmRlcnN0YW5kIGl0cyBmdW5jdGlvbmFsaXR5LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTA2OSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE1VDA3OjQ2OjM5Ljc3MTUzMDUxWiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNjMzNjQ0NDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZHNhX2xvb3BcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjU6c3RydWN0IGRzYV9sb29wX3ZsYW4ge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI2LVxcdHUxNiBtZW1iZXJzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjktXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzA6c3RydWN0IGRzYV9sb29wX21pYl9lbnRyeSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEtXFx0Y2hhciBuYW1lW0VUSF9HU1RSSU5HX0xFTl07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTplbnVtIGRzYV9sb29wX21pYl9jb3VudGVycyB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzYtXFx0RFNBX0xPT1BfUEhZX1JFQURfT0ssXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00Mi1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzpzdHJ1Y3QgZHNhX2xvb3BfcG9ydCB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDQ6XFx0c3RydWN0IGRzYV9sb29wX21pYl9lbnRyeSBtaWJbX19EU0FfTE9PUF9DTlRfTUFYXTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NS1cXHR1MTYgcHZpZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ5OnN0cnVjdCBkc2FfbG9vcF9wcml2IHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01MC1cXHRzdHJ1Y3QgbWlpX2J1c1xcdCpidXM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTEtXFx0dW5zaWduZWQgaW50XFx0cG9ydF9iYXNlO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUyOlxcdHN0cnVjdCBkc2FfbG9vcF92bGFuIHZsYW5zW1ZMQU5fTl9WSURdO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUzLVxcdHN0cnVjdCBuZXRfZGV2aWNlICpuZXRkZXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTQ6XFx0c3RydWN0IGRzYV9sb29wX3BvcnQgcG9ydHNbRFNBX01BWF9QT1JUU107XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTUtfTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy01Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1NzpzdHJ1Y3QgZHNhX2xvb3BfcGRhdGEge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTU4LVxcdC8qIE11c3QgYmUgZmlyc3QsIHN1Y2ggdGhhdCBkc2FfcmVnaXN0ZXJfc3dpdGNoKCkgY2FuIGFjY2VzcyB0aGlzXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy02Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo2NzpzdGF0aWMgc3RydWN0IGRzYV9sb29wX21pYl9lbnRyeSBkc2FfbG9vcF9taWJzW10gPSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNjgtXFx0W0RTQV9MT09QX1BIWV9SRUFEX09LXVxcdD0geyBcXFwicGh5X3JlYWRfb2tcXFwiLCB9LFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9NzU9c3RhdGljIHN0cnVjdCBtZGlvX2RldmljZSAqc3dpdGNoX21kaW9kZXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNzYtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6Nzc6ZW51bSBkc2FfbG9vcF9kZXZsaW5rX3Jlc291cmNlX2lkIHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy03OC1cXHREU0FfTE9PUF9ERVZMSU5LX1BBUkFNX0lEX05PTkUsICAvKiBERVZMSU5LX1JFU09VUkNFX0lEX1BBUkVOVF9UT1AgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTgxLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjgyOnN0YXRpYyB1NjQgZHNhX2xvb3BfZGV2bGlua192dHVfZ2V0KHZvaWQgKnByaXYpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODMte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjg0OlxcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IHByaXY7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODUtXFx0dW5zaWduZWQgaW50IGksIGNvdW50ID0gMDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo4NjpcXHRzdHJ1Y3QgZHNhX2xvb3BfdmxhbiAqdmw7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtODctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy05Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo5NzpzdGF0aWMgaW50IGRzYV9sb29wX3NldHVwX2RldmxpbmtfcmVzb3VyY2VzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy05OC17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtOTktXFx0c3RydWN0IGRldmxpbmtfcmVzb3VyY2Vfc2l6ZV9wYXJhbXMgc2l6ZV9wYXJhbXM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTAwOlxcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEwMS1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTE1LVxcdFxcdFxcdFxcdFxcdCAgICAgIERTQV9MT09QX0RFVkxJTktfUEFSQU1fSURfVlRVLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjExNjpcXHRcXHRcXHRcXHRcXHQgICAgICBkc2FfbG9vcF9kZXZsaW5rX3Z0dV9nZXQsIHBzKTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMTctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMjQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTI1OnN0YXRpYyBlbnVtIGRzYV90YWdfcHJvdG9jb2wgZHNhX2xvb3BfZ2V0X3Byb3RvY29sKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMjYtXFx0XFx0XFx0XFx0XFx0XFx0ICAgaW50IHBvcnQsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTM0OnN0YXRpYyBpbnQgZHNhX2xvb3Bfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzNS17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTM2OlxcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcyA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzNy1cXHR1bnNpZ25lZCBpbnQgaTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgZHMtXFx1MDAzZW51bV9wb3J0czsgaSsrKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0MDpcXHRcXHRtZW1jcHkocHMtXFx1MDAzZXBvcnRzW2ldLm1pYiwgZHNhX2xvb3BfbWlicyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNDE6XFx0XFx0ICAgICAgIHNpemVvZihkc2FfbG9vcF9taWJzKSk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0NTpcXHRyZXR1cm4gZHNhX2xvb3Bfc2V0dXBfZGV2bGlua19yZXNvdXJjZXMoZHMpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE0Ni19XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ3LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE0ODpzdGF0aWMgdm9pZCBkc2FfbG9vcF90ZWFyZG93bihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTQ5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE1Mi1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxNTM6c3RhdGljIGludCBkc2FfbG9vcF9nZXRfc3NldF9jb3VudChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCBpbnQgc3NldClcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNTQte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTYwLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE2MTpzdGF0aWMgdm9pZCBkc2FfbG9vcF9nZXRfc3RyaW5ncyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTE2Mi1cXHRcXHRcXHRcXHQgdTMyIHN0cmluZ3NldCwgdWludDhfdCAqZGF0YSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjMte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE2NDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNjUtXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTc0OnN0YXRpYyB2b2lkIGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTc1LVxcdFxcdFxcdFxcdCAgICAgICB1aW50NjRfdCAqZGF0YSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzYte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE3NzpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xNzgtXFx0dW5zaWduZWQgaW50IGk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xODMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTg0OnN0YXRpYyBpbnQgZHNhX2xvb3BfcGh5X3JlYWQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgaW50IHJlZ251bSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xODUte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjE4NjpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xODctXFx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVxcdTAwM2VidXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xOTgtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MTk5OnN0YXRpYyBpbnQgZHNhX2xvb3BfcGh5X3dyaXRlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjAwLVxcdFxcdFxcdCAgICAgIGludCByZWdudW0sIHUxNiB2YWx1ZSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDEte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjIwMjpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMDMtXFx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVxcdTAwM2VidXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMTQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjE1OnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9icmlkZ2Vfam9pbihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIxNi1cXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBkc2FfYnJpZGdlIGJyaWRnZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIyNS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyMjY6c3RhdGljIHZvaWQgZHNhX2xvb3BfcG9ydF9icmlkZ2VfbGVhdmUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yMjctXFx0XFx0XFx0XFx0ICAgICAgIHN0cnVjdCBkc2FfYnJpZGdlIGJyaWRnZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTIzMi1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyMzM6c3RhdGljIHZvaWQgZHNhX2xvb3BfcG9ydF9zdHBfc3RhdGVfc2V0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjM0LVxcdFxcdFxcdFxcdFxcdHU4IHN0YXRlKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjM5LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI0MDpzdGF0aWMgaW50IGRzYV9sb29wX3BvcnRfdmxhbl9maWx0ZXJpbmcoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNDEtXFx0XFx0XFx0XFx0XFx0Ym9vbCB2bGFuX2ZpbHRlcmluZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI0OS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoyNTA6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X3ZsYW5fYWRkKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjUxLVxcdFxcdFxcdFxcdCAgY29uc3Qgc3RydWN0IHN3aXRjaGRldl9vYmpfcG9ydF92bGFuICp2bGFuLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMjU1LVxcdGJvb2wgcHZpZCA9IHZsYW4tXFx1MDAzZWZsYWdzIFxcdTAwMjYgQlJJREdFX1ZMQU5fSU5GT19QVklEO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI1NjpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTctXFx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVxcdTAwM2VidXM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjU4OlxcdHN0cnVjdCBkc2FfbG9vcF92bGFuICp2bDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yNTktXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjgzOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF92bGFuX2RlbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4NC1cXHRcXHRcXHRcXHQgIGNvbnN0IHN0cnVjdCBzd2l0Y2hkZXZfb2JqX3BvcnRfdmxhbiAqdmxhbilcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTI4Ni1cXHRib29sIHVudGFnZ2VkID0gdmxhbi1cXHUwMDNlZmxhZ3MgXFx1MDAyNiBCUklER0VfVkxBTl9JTkZPX1VOVEFHR0VEO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjI4NzpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHMgPSBkcy1cXHUwMDNlcHJpdjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODgtXFx0dTE2IHB2aWQgPSBwcy1cXHUwMDNlcG9ydHNbcG9ydF0ucHZpZDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yODktXFx0c3RydWN0IG1paV9idXMgKmJ1cyA9IHBzLVxcdTAwM2VidXM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MjkwOlxcdHN0cnVjdCBkc2FfbG9vcF92bGFuICp2bDtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0yOTEtXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTAtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzExOnN0YXRpYyBpbnQgZHNhX2xvb3BfcG9ydF9jaGFuZ2VfbXR1KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzEyLVxcdFxcdFxcdFxcdCAgICBpbnQgbmV3X210dSlcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMTMte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMxNDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHJpdiA9IGRzLVxcdTAwM2Vwcml2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyMC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMjE6c3RhdGljIGludCBkc2FfbG9vcF9wb3J0X21heF9tdHUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydClcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zMjIte1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzI1LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjMyNjpzdGF0aWMgdm9pZCBkc2FfbG9vcF9waHlsaW5rX2dldF9jYXBzKHN0cnVjdCBkc2Ffc3dpdGNoICpkc2EsIGludCBwb3J0LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMyNy1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgcGh5bGlua19jb25maWcgKmNvbmZpZylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTMzMy1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozMzQ6c3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBkc2FfbG9vcF9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM1OlxcdC5nZXRfdGFnX3Byb3RvY29sXFx0PSBkc2FfbG9vcF9nZXRfcHJvdG9jb2wsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM2OlxcdC5zZXR1cFxcdFxcdFxcdD0gZHNhX2xvb3Bfc2V0dXAsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM3OlxcdC50ZWFyZG93blxcdFxcdD0gZHNhX2xvb3BfdGVhcmRvd24sXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM4OlxcdC5nZXRfc3RyaW5nc1xcdFxcdD0gZHNhX2xvb3BfZ2V0X3N0cmluZ3MsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzM5OlxcdC5nZXRfZXRodG9vbF9zdGF0c1xcdD0gZHNhX2xvb3BfZ2V0X2V0aHRvb2xfc3RhdHMsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQwOlxcdC5nZXRfc3NldF9jb3VudFxcdFxcdD0gZHNhX2xvb3BfZ2V0X3NzZXRfY291bnQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQxOlxcdC5nZXRfZXRodG9vbF9waHlfc3RhdHNcXHQ9IGRzYV9sb29wX2dldF9ldGh0b29sX3N0YXRzLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MjpcXHQucGh5X3JlYWRcXHRcXHQ9IGRzYV9sb29wX3BoeV9yZWFkLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0MzpcXHQucGh5X3dyaXRlXFx0XFx0PSBkc2FfbG9vcF9waHlfd3JpdGUsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ0OlxcdC5wb3J0X2JyaWRnZV9qb2luXFx0PSBkc2FfbG9vcF9wb3J0X2JyaWRnZV9qb2luLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NTpcXHQucG9ydF9icmlkZ2VfbGVhdmVcXHQ9IGRzYV9sb29wX3BvcnRfYnJpZGdlX2xlYXZlLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0NjpcXHQucG9ydF9zdHBfc3RhdGVfc2V0XFx0PSBkc2FfbG9vcF9wb3J0X3N0cF9zdGF0ZV9zZXQsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzQ3OlxcdC5wb3J0X3ZsYW5fZmlsdGVyaW5nXFx0PSBkc2FfbG9vcF9wb3J0X3ZsYW5fZmlsdGVyaW5nLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM0ODpcXHQucG9ydF92bGFuX2FkZFxcdFxcdD0gZHNhX2xvb3BfcG9ydF92bGFuX2FkZCxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNDk6XFx0LnBvcnRfdmxhbl9kZWxcXHRcXHQ9IGRzYV9sb29wX3BvcnRfdmxhbl9kZWwsXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzUwOlxcdC5wb3J0X2NoYW5nZV9tdHVcXHQ9IGRzYV9sb29wX3BvcnRfY2hhbmdlX210dSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozNTE6XFx0LnBvcnRfbWF4X210dVxcdFxcdD0gZHNhX2xvb3BfcG9ydF9tYXhfbXR1LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1MjpcXHQucGh5bGlua19nZXRfY2Fwc1xcdD0gZHNhX2xvb3BfcGh5bGlua19nZXRfY2FwcyxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTMtfTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTQtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU1OnN0YXRpYyBpbnQgZHNhX2xvb3BfZHJ2X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTYte1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM1NzpcXHRzdHJ1Y3QgZHNhX2xvb3BfcGRhdGEgKnBkYXRhID0gbWRpb2Rldi1cXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGE7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6MzU4OlxcdHN0cnVjdCBkc2FfbG9vcF9wcml2ICpwcztcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zNTktXFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzgyLVxcdGRzLVxcdTAwM2VkZXYgPSBcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjM4MzpcXHRkcy1cXHUwMDNlb3BzID0gXFx1MDAyNmRzYV9sb29wX2RyaXZlcjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zODQtXFx0ZHMtXFx1MDAzZXByaXYgPSBwcztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTM5Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzozOTc6c3RhdGljIHZvaWQgZHNhX2xvb3BfZHJ2X3JlbW92ZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMzk4LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0zOTktXFx0c3RydWN0IGRzYV9zd2l0Y2ggKmRzID0gZGV2X2dldF9kcnZkYXRhKFxcdTAwMjZtZGlvZGV2LVxcdTAwM2VkZXYpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQwMDpcXHRzdHJ1Y3QgZHNhX2xvb3BfcHJpdiAqcHM7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDAxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDEwLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQxMTpzdGF0aWMgdm9pZCBkc2FfbG9vcF9kcnZfc2h1dGRvd24oc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQxMi17XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MjItXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDIzOnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZHNhX2xvb3BfZHJ2ID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyNC1cXHQubWRpb2Rydi5kcml2ZXJcXHQ9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQyNi1cXHR9LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQyNzpcXHQucHJvYmVcXHQ9IGRzYV9sb29wX2Rydl9wcm9iZSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjg6XFx0LnJlbW92ZVxcdD0gZHNhX2xvb3BfZHJ2X3JlbW92ZSxcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mjk6XFx0LnNodXRkb3duID0gZHNhX2xvb3BfZHJ2X3NodXRkb3duLFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzMC19O1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzMS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0MzI6c3RhdGljIGludCBkc2FfbG9vcF9idXNfbWF0Y2goc3RydWN0IGRldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzMy1cXHRcXHRcXHQgICAgICBjb25zdCBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqZHJ2KVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzNC17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDM1OlxcdHJldHVybiBkcnYgPT0gXFx1MDAyNmRzYV9sb29wX2Rydi5tZGlvZHJ2LmRyaXZlcjtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00MzYtfVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQzNy1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0Mzg6c3RhdGljIHZvaWQgZHNhX2xvb3BfcGh5ZGV2c191bnJlZ2lzdGVyKHZvaWQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ0NS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDY6c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDQ3LXtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0NDg6XFx0c3RhdGljIHN0cnVjdCBkc2FfbG9vcF9wZGF0YSBkc2FfbG9vcF9wZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NDktXFx0XFx0LmNkID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDcwLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3MTpcXHRzd2l0Y2hfbWRpb2Rldi1cXHUwMDNlYnVzX21hdGNoID0gZHNhX2xvb3BfYnVzX21hdGNoO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ3MjpcXHRzd2l0Y2hfbWRpb2Rldi1cXHUwMDNlZGV2LnBsYXRmb3JtX2RhdGEgPSBcXHUwMDI2ZHNhX2xvb3BfcGRhdGE7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDczLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDgxLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjQ4MjpzdGF0aWMgaW50IF9faW5pdCBkc2FfbG9vcF9pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDgzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ4Ni1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo0ODc6XFx0cmV0ID0gZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KCk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDg4LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00OTMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDk0OlxcdHJldCA9IG1kaW9fZHJpdmVyX3JlZ2lzdGVyKFxcdTAwMjZkc2FfbG9vcF9kcnYpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ5NS1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDk2OlxcdFxcdGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3RlcigpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTQ5Ny1cXHRcXHRtZGlvX2RldmljZV9yZW1vdmUoc3dpdGNoX21kaW9kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTAyLX1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MDM6bW9kdWxlX2luaXQoZHNhX2xvb3BfaW5pdCk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTA0LVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jOjUwNTpzdGF0aWMgdm9pZCBfX2V4aXQgZHNhX2xvb3BfZXhpdCh2b2lkKVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwNi17XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTA3OlxcdG1kaW9fZHJpdmVyX3VucmVnaXN0ZXIoXFx1MDAyNmRzYV9sb29wX2Rydik7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NTA4OlxcdGRzYV9sb29wX3BoeWRldnNfdW5yZWdpc3RlcigpO1xcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTUwOS1cXHRtZGlvX2RldmljZV9yZW1vdmUoc3dpdGNoX21kaW9kZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTExLX1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzo1MTI6bW9kdWxlX2V4aXQoZHNhX2xvb3BfZXhpdCk7XFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNTEzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0Njo0MC4xMzQ5MDMzNTJaIiwiU2VxIjozNywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODg0MDUyNzIyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBUaGlzIFBhdGNoIGlzIE5vdCBGdXp6YWJsZSBpbiBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudHMqKlxuXG5Pa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLiBJJ3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIGBkc2FfbG9vcC5jYCBmaWxlLCBhbmQgaXQncyBjbGVhciB0aGF0IGl0J3MgYSBzb2Z0d2FyZS1lbXVsYXRlZCBEU0Egc3dpdGNoLCBidXQgaXQgZG9lc24ndCB0cnkgdG8gZW11bGF0ZSBhbnkgc3BlY2lmaWMgaGFyZHdhcmUgbGlrZSB0aGUgYG12ODhlNnh4eGAuIEl0IGNyZWF0ZXMgaXRzIG93biBNRElPIGRldmljZSBhbmQgcmVnaXN0ZXJzIGl0cyBvd24gZHJpdmVyLCBgZHNhX2xvb3BfZHJ2YCwgdG90YWxseSBpbmRlcGVuZGVudCBvZiB0aGUgTWFydmVsbCBjaGlwLiAgU28sIGJhc2VkIG9uIHRoYXQsIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgaXNuJ3QgZ29pbmcgdG8gYmUgcmVhY2hhYmxlIHRocm91Z2ggYGRzYV9sb29wYC5cblxuSSBhbHNvIGNoZWNrZWQgYGRzYV9sb29wX2JkaW5mby5jYCB3aGljaCByZWdpc3RlcnMgYSBmaXhlZCBQSFksIGJ1dCBhZ2FpbiwgdGhpcyBkb2Vzbid0IG9mZmVyIHVzIGEgcGF0aCB0byBlbXVsYXRlIG9yIHJlYWNoIHRoZSBNYXJ2ZWxsIGNoaXAuXG5cbkZ1cnRoZXJtb3JlLCBJIGhhdmUgdmVyaWZpZWQgdGhlcmUncyBubyBvdGhlciBzb2Z0d2FyZSBlbXVsYXRpb24gb2YgYG12ODhlNnh4eGAgd2l0aGluIHRoaXMgY29udGV4dC5cblxuVGhlcmVmb3JlLCB0aGUgY3JpdGljYWwgY29uY2x1c2lvbiBpcyB0aGF0IHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgaXMgc2ltcGx5IHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLiBUaGlzIG1lYW5zIHdlIGNhbid0IGZ1enogaXQuXG5cbkxldCBtZSBmb3JtdWxhdGUgdGhlIHJlYXNvbmluZyBmb3IgdGhlIHJlY29yZDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGBtdjg4ZTZ4eHhgIERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IHBoeXNpY2FsIHN3aXRjaGVzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gUUVNVSBvciB0aGUga2VybmVsLCBhbmQgdGhlIGRyaXZlciByZXF1aXJlcyBhIGRldmljZSB0cmVlIG5vZGUgdG8gcHJvYmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC5cIlxuXG5KdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSBjaGVja2VkIHRoZSBgc3l6a2FsbGVyYCBjb25maWd1cmF0aW9ucy4gV2hpbGUgaXQncyBjb21tb24gdG8gc2VlIGBDT05GSUdfTkVUX0RTQV9NVjg4RTZYWFg9eWAgZW5hYmxlZCwgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlIG9yIGVtdWxhdGlvbiwgdGhlIGRyaXZlciBqdXN0IHNpdHMgdGhlcmUsIGFuZCBpdHMgcHJvYmUgZnVuY3Rpb24gbmV2ZXIgZ2V0cyBleGVjdXRlZC4gVGhpcyBmdXJ0aGVyIHNvbGlkaWZpZXMgdGhlIGNvbmNsdXNpb24uXG5cbkknbSBjb25maWRlbnQgaW4gbXkgYXNzZXNzbWVudC4gSSdtIGdvaW5nIHRvIHNldCB0aGUgcmVzdWx0cyB0byBgV29ydGhGdXp6aW5nPWZhbHNlYCB3aXRoIHRoZSByZWFzb25pbmcgSSd2ZSBzdGF0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQxNzU0LCJPdXRwdXRUb2tlbnMiOjEwOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNVQwNzo0Njo0OC45NzU0MzQwMjJaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNDc0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLCB3aGljaCBpcyBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlciBmb3IgTWFydmVsbCA4OEU2eHh4IHBoeXNpY2FsIHN3aXRjaGVzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoaXMgaGFyZHdhcmUgaW4gUUVNVSBvciB0aGUga2VybmVsLCBhbmQgdGhlIGRyaXZlciByZXF1aXJlcyBhIGRldmljZSB0cmVlIG5vZGUgdG8gcHJvYmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBhbmQgY2Fubm90IGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIsIHdoaWNoIGlzIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIGZvciBNYXJ2ZWxsIDg4RTZ4eHggcGh5c2ljYWwgc3dpdGNoZXMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgdGhpcyBoYXJkd2FyZSBpbiBRRU1VIG9yIHRoZSBrZXJuZWwsIGFuZCB0aGUgZHJpdmVyIHJlcXVpcmVzIGEgZGV2aWNlIHRyZWUgbm9kZSB0byBwcm9iZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGFuZCBjYW5ub3QgYmUgZnV6emVkLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowxd8vj[1] Phase: Running StartedAt: 2026-07-15 07:47:01 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowxd8vj[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-15 07:47:01 +0000 UTC FinishedAt: 2026-07-15 07:47:09 +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,}