Name: series-workflowzgg5k Phase: Failed StartedAt: 2026-08-11 11:59:23 +0000 UTC FinishedAt: 2026-08-11 12:01:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzgg5k[0] Phase: Succeeded StartedAt: 2026-08-11 11:59:23 +0000 UTC FinishedAt: 2026-08-11 12:01:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzgg5k[0].run-triage Phase: Succeeded StartedAt: 2026-08-11 11:59:23 +0000 UTC FinishedAt: 2026-08-11 12:01:21 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcHJpbWFyaWx5IGFkZHMgODAyLjFRYXYgQ0JTIG9mZmxvYWRpbmcgc3VwcG9ydCB0byB0aGUgTWFydmVsbCBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgZHJpdmVyIGNhbm5vdCBiZSBleGVyY2lzZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlIGNoYW5nZXMgaW4gbmV0L2RzYS90YWdfZHNhLmMgYXJlIHNwZWNpZmljIHRvIHRoZSBEU0EgdGFnIHByb3RvY29sIHVzZWQgZXhjbHVzaXZlbHkgYnkgdGhpcyBkcml2ZXIuIFRoZSBtb2RpZmljYXRpb24gaW4gbmV0L3NjaGVkL3NjaF9jYnMuYyBpcyBhIHRyaXZpYWwgY2hhbmdlIHRvIHBhc3MgZXh0YWNrIGRvd24gdG8gdGhlIGRyaXZlciBhbmQgdXNlIE5MX1NFVF9FUlJfTVNHX1dFQUssIHdoaWNoIGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyByZXF1aXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1MjJiNGY0NjliOGZmNTNkMTQxNmZhNGRhOTc5ZTNmNDE1Zjg1MDc5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MzYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuaW5kZXggODBiODc3Yzc0NTEzZC4uYTU2N2VlOWI2Y2UwZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuQEAgLTMyLDYgJiM0MzszMiw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZ3Bpby9jb25zdW1lci5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGh5bGluay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L2RzYS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY25ldC9wa3Rfc2NoZWQuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFwmIzM0O2NoaXAuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2RldmxpbmsuaFwmIzM0O1xuQEAgLTM5OTAsNiAmIzQzOzM5OTEsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4gXG4gXHRjaGlwLVx1MDAzZWRzID0gZHM7XG4gXHRkcy1cdTAwM2V1c2VyX21paV9idXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbiYjNDM7XHRkcy1cdTAwM2VudW1fdHhfcXVldWVzID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW51bV90eF9xdWV1ZXM7XG4gXG4gXHQvKiBTaW5jZSB2aXJ0dWFsIGJyaWRnZXMgYXJlIG1hcHBlZCBpbiB0aGUgUFZULCB0aGUgbnVtYmVyIHdlIHN1cHBvcnRcbiBcdCAqIGRlcGVuZHMgb24gdGhlIHBoeXNpY2FsIHN3aXRjaCB0b3BvbG9neS4gV2UgbmVlZCB0byBsZXQgRFNBIGZpZ3VyZVxuQEAgLTUwMjMsNiAmIzQzOzUwMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MjQwX29wcyA9IHtcbiBcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsXG4gXHQucG9ydF9zZXRfanVtYm9fc2l6ZSA9IG12ODhlNjE2NV9wb3J0X3NldF9qdW1ib19zaXplLFxuIFx0LnBvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcgPSBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyxcbiYjNDM7XHQucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzUyX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSxcbiBcdC5wb3J0X3BhdXNlX2xpbWl0ID0gbXY4OGU2MDk3X3BvcnRfcGF1c2VfbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcbiBcdC5wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUsXG5AQCAtNTMwNiw2ICYjNDM7NTMwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNDFfb3BzID0ge1xuIFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuJiM0MztcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxuIFx0LnBvcnRfcGF1c2VfbGltaXQgPSBtdjg4ZTYwOTdfcG9ydF9wYXVzZV9saW1pdCxcbiBcdC5wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcbkBAIC01NDY0LDYgJiM0Mzs1NDY4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1Ml9vcHMgPSB7XG4gXHQucG9ydF9zZXRfZXRoZXJfdHlwZSA9IG12ODhlNjM1MV9wb3J0X3NldF9ldGhlcl90eXBlLFxuIFx0LnBvcnRfc2V0X2p1bWJvX3NpemUgPSBtdjg4ZTYxNjVfcG9ydF9zZXRfanVtYm9fc2l6ZSxcbiBcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXG4mIzQzO1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU1MzMsNiAmIzQzOzU1MzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkwX29wcyA9IHtcbiBcdC5wb3J0X2dldF9jbW9kZSA9IG12ODhlNjM1Ml9wb3J0X2dldF9jbW9kZSxcbiBcdC5wb3J0X3NldF9jbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9jbW9kZSxcbiBcdC5wb3J0X3NldHVwX21lc3NhZ2VfcG9ydCA9IG12ODhlNnh4eF9zZXR1cF9tZXNzYWdlX3BvcnQsXG4mIzQzO1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQuc3RhdHNfc25hcHNob3QgPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc25hcHNob3QsXG4gXHQuc3RhdHNfc2V0X2hpc3RvZ3JhbSA9IG12ODhlNjM5MF9nMV9zdGF0c19zZXRfaGlzdG9ncmFtLFxuIFx0LnN0YXRzX2dldF9zc2V0X2NvdW50ID0gbXY4OGU2MzIwX3N0YXRzX2dldF9zc2V0X2NvdW50LFxuQEAgLTU1OTcsNiAmIzQzOzU2MDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkweF9vcHMgPSB7XG4gXHQucG9ydF9nZXRfY21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9nZXRfY21vZGUsXG4gXHQucG9ydF9zZXRfY21vZGUgPSBtdjg4ZTYzOTB4X3BvcnRfc2V0X2Ntb2RlLFxuIFx0LnBvcnRfc2V0dXBfbWVzc2FnZV9wb3J0ID0gbXY4OGU2eHh4X3NldHVwX21lc3NhZ2VfcG9ydCxcbiYjNDM7XHQucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSxcbiBcdC5zdGF0c19zbmFwc2hvdCA9IG12ODhlNjM5MF9nMV9zdGF0c19zbmFwc2hvdCxcbiBcdC5zdGF0c19zZXRfaGlzdG9ncmFtID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NldF9oaXN0b2dyYW0sXG4gXHQuc3RhdHNfZ2V0X3NzZXRfY291bnQgPSBtdjg4ZTYzMjBfc3RhdHNfZ2V0X3NzZXRfY291bnQsXG5AQCAtNTY1Myw2ICYjNDM7NTY2MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTN4X29wcyA9IHtcbiBcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzkzeF9wb3J0X3NldF9ldGhlcl90eXBlLFxuIFx0LnBvcnRfc2V0X2p1bWJvX3NpemUgPSBtdjg4ZTYxNjVfcG9ydF9zZXRfanVtYm9fc2l6ZSxcbiBcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXG4mIzQzO1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjM5MF9wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU2OTUsNiAmIzQzOzU3MDMsMjcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM5M3hfb3BzID0ge1xuIFx0LnRjYW1fb3BzID0gXHUwMDI2bXY4OGU2MzkzX3RjYW1fb3BzLFxuIH07XG4gXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvIG12ODhlNjM1Ml9xYXZfaW5mbyA9IHtcbiYjNDM7XHQucmF0ZV91bml0ID0gMzIsXG4mIzQzO1x0LnJhdGVfbWFzayA9IEdFTk1BU0soMTQsIDApLFxuJiM0MztcdC5oaWxpbWl0X21hc2sgPSBHRU5NQVNLKDE0LCAwKSxcbiYjNDM7XHQucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksXG4mIzQzO307XG4mIzQzO1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzNDFfcWF2X2luZm8gPSB7XG4mIzQzO1x0LnJhdGVfdW5pdCA9IDY0LFxuJiM0MztcdC5yYXRlX21hc2sgPSBHRU5NQVNLKDE1LCAwKSxcbiYjNDM7XHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksXG4mIzQzO1x0LnF1ZXVlX21hc2sgPSBHRU5NQVNLKDMsIDApLFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gbXY4OGU2MzkwX3Fhdl9pbmZvID0ge1xuJiM0MztcdC5yYXRlX3VuaXQgPSA2NCxcbiYjNDM7XHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNSwgMCksXG4mIzQzO1x0LmhpbGltaXRfbWFzayA9IEdFTk1BU0soMTMsIDApLFxuJiM0MztcdC5xdWV1ZV9tYXNrID0gR0VOTUFTSyg3LCAwKSxcbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFtNVjg4RTYwMjBdID0ge1xuIFx0XHQucHJvZF9udW0gPSBNVjg4RTZYWFhfUE9SVF9TV0lUQ0hfSURfUFJPRF82MDIwLFxuQEAgLTU3MDYsNiAmIzQzOzU3MzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQgKi9cbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgyKSB8IEJJVCgzKSB8IEJJVCg0KSxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDgsXG5AQCAtNTcyOCw2ICYjNDM7NTc1OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNjQsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MDgsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwMCxcbkBAIC01NzUwLDYgJiM0Mzs1NzgxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDEwLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTc3NCw2ICYjNDM7NTgwNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC01Nzk1LDYgJiM0Mzs1ODI4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTgyMCw2ICYjNDM7NTg1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDEwMjQsXG4gXHRcdC5udW1fcG9ydHMgPSAzLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTg0NSw2ICYjNDM7NTg4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA4LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAwLFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTU4NjcsNiAmIzQzOzU5MDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0Lm51bV9ncGlvID0gMTEsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01ODkyLDYgJiM0Mzs1OTI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gMTAyNCxcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTE4LDYgJiM0Mzs1OTU2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTQzLDYgJiM0Mzs1OTgyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTY5LDYgJiM0Mzs2MDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTk5NCw2ICYjNDM7NjAzNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNjAyMCw2ICYjNDM7NjA2Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuIFx0XHQubnVtX2dwaW8gPSAxNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYwNDUsNiAmIzQzOzYwODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTAsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbiBcdFx0LnBoeV9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjA2OCw2ICYjNDM7NjExMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjA5Myw2ICYjNDM7NjEzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjExNyw2ICYjNDM7NjE2Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjE0Miw2ICYjNDM7NjE4OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MTY4LDYgJiM0Mzs2MjE2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG4gXHRcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDEsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTYxOTgsNiAmIzQzOzYyNDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMixcbiBcdFx0LmludmFsaWRfcG9ydF9tYXNrID0gQklUKDIpIHwgQklUKDMpIHwgQklUKDQpLFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MDgsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwMCxcbkBAIC02MjIyLDYgJiM0Mzs2MjcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNjIzNyw2ICYjNDM7NjI4OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5tdWx0aV9jaGlwID0gdHJ1ZSxcbiBcdFx0LmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCxcbiBcdFx0LnB0cF9zdXBwb3J0ID0gdHJ1ZSxcbiYjNDM7XHRcdC5xYXYgPSBcdTAwMjZtdjg4ZTYzNTJfcWF2X2luZm8sXG4gXHRcdC5vcHMgPSBcdTAwMjZtdjg4ZTYyNDBfb3BzLFxuIFx0fSxcbiBcbkBAIC02MjQ3LDYgJiM0Mzs2Mjk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA2NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwOCxcbiBcdFx0LnBoeV9iYXNlX2FkZHIgPSAweDAwLFxuQEAgLTYyNzEsNiAmIzQzOzYzMjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTYyOTksNiAmIzQzOzYzNTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAzLFxuIFx0XHQubnVtX2dwaW8gPSAxNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYzMjcsNiAmIzQzOzYzODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAzLFxuIFx0XHQubnVtX2dwaW8gPSAxNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYzNTQsNiAmIzQzOzY0MTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9ncGlvID0gMTEsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02MzY5LDYgJiM0Mzs2NDI2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfU1VQUE9SVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuJiM0MztcdFx0LnFhdiA9IFx1MDAyNm12ODhlNjM0MV9xYXZfaW5mbyxcbiBcdFx0Lm9wcyA9IFx1MDAyNm12ODhlNjM0MV9vcHMsXG4gXHR9LFxuIFxuQEAgLTYzODAsNiAmIzQzOzY0MzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTY0MDUsNiAmIzQzOzY0NjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTY0MzEsNiAmIzQzOzY0OTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0Lm51bV9ncGlvID0gMTUsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02NDQ2LDYgJiM0Mzs2NTA3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfU1VQUE9SVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuJiM0MztcdFx0LnFhdiA9IFx1MDAyNm12ODhlNjM1Ml9xYXZfaW5mbyxcbiBcdFx0Lm9wcyA9IFx1MDAyNm12ODhlNjM1Ml9vcHMsXG4gXHR9LFxuIFx0W01WODhFNjM2MV0gPSB7XG5AQCAtNjQ1OSw2ICYjNDM7NjUyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgxKSB8IEJJVCgyKSB8IEJJVCg4KSxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMyxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjQ4NSw2ICYjNDM7NjU0OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXG4gXHRcdC5udW1fZ3BpbyA9IDE2LFxuIFx0XHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjUwMSw2ICYjNDM7NjU2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5tdWx0aV9jaGlwID0gdHJ1ZSxcbiBcdFx0LmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1VORE9DVU1FTlRFRCxcbiBcdFx0LnB0cF9zdXBwb3J0ID0gdHJ1ZSxcbiYjNDM7XHRcdC5xYXYgPSBcdTAwMjZtdjg4ZTYzOTBfcWF2X2luZm8sXG4gXHRcdC5vcHMgPSBcdTAwMjZtdjg4ZTYzOTBfb3BzLFxuIFx0fSxcbiBcdFtNVjg4RTYzOTBYXSA9IHtcbkBAIC02NTEyLDYgJiM0Mzs2NTc3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgJiM0MzsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXG4gXHRcdC5udW1fZ3BpbyA9IDE2LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02NTI3LDYgJiM0Mzs2NTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuJiM0MztcdFx0LnFhdiA9IFx1MDAyNm12ODhlNjM5MF9xYXZfaW5mbyxcbiBcdFx0Lm9wcyA9IFx1MDAyNm12ODhlNjM5MHhfb3BzLFxuIFx0fSxcbiBcbkBAIC02NTM4LDYgJiM0Mzs2NjA1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgJiM0MzsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5udW1fdGNhbV9lbnRyaWVzID0gMjU2LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG5AQCAtNjU1NCw2ICYjNDM7NjYyMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5wdnQgPSB0cnVlLFxuIFx0XHQubXVsdGlfY2hpcCA9IHRydWUsXG4gXHRcdC5wdHBfc3VwcG9ydCA9IHRydWUsXG4mIzQzO1x0XHQucWF2ID0gXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxuIFx0XHQub3BzID0gXHUwMDI2bXY4OGU2MzkzeF9vcHMsXG4gXHR9LFxuIH07XG5AQCAtNzE3NSw2ICYjNDM7NzI0NCwxMTIgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfY3Jvc3NjaGlwX2xhZ19sZWF2ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBzd19pbmRleCxcbiBcdHJldHVybiBlcnJfc3luYyA/IDogZXJyX3B2dDtcbiB9XG4gXG4mIzQzO3N0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwX3RjX2NicyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuJiM0MztcdFx0XHRcdCAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQgKmNicylcbiYjNDM7e1xuJiM0MztcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyAqYXZiX29wcztcbiYjNDM7XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkcy1cdTAwM2Vwcml2O1xuJiM0MztcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gKnFhdjtcbiYjNDM7XHRjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyAqb3BzO1xuJiM0MztcdGludCBoaWxpbWl0X3JlZztcbiYjNDM7XHRpbnQgcmF0ZV9yZWc7XG4mIzQzO1x0dTggcXVldWVfYml0O1xuJiM0MztcdHUzMiByYXRlID0gMDtcbiYjNDM7XHR1MTYgaGlsaW1pdDtcbiYjNDM7XHRpbnQgZXJyO1xuJiM0MztcbiYjNDM7XHRvcHMgPSBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzO1xuJiM0MztcdGF2Yl9vcHMgPSBvcHMtXHUwMDNlYXZiX29wcztcbiYjNDM7XHRxYXYgPSBjaGlwLVx1MDAzZWluZm8tXHUwMDNlcWF2O1xuJiM0MztcbiYjNDM7XHRpZiAoIXFhdiB8fCAhYXZiX29wcyB8fCAhYXZiX29wcy1cdTAwM2Vwb3J0X3Fhdl93cml0ZSB8fFxuJiM0MztcdCAgICAhb3BzLVx1MDAzZXBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSlcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XG4mIzQzO1x0aWYgKCFkc2FfaXNfdXNlcl9wb3J0KGRzLCBwb3J0KSlcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XG4mIzQzO1x0aWYgKCEocWF2LVx1MDAzZXF1ZXVlX21hc2sgXHUwMDI2IEJJVChjYnMtXHUwMDNlcXVldWUpKSkge1xuJiM0MztcdFx0TkxfU0VUX0VSUl9NU0dfTU9EKGNicy1cdTAwM2VleHRhY2ssIFwmIzM0O0NCUyBub3Qgc3VwcG9ydGVkIG9uIHF1ZXVlXCYjMzQ7KTtcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHF1ZXVlX2JpdCA9IEJJVChjYnMtXHUwMDNlcXVldWUpO1xuJiM0MztcdHJhdGVfcmVnID0gTVY4OEU2WFhYX1BPUlRfUUFWX0NGR19SQVRFKGNicy1cdTAwM2VxdWV1ZSk7XG4mIzQzO1x0aGlsaW1pdF9yZWcgPSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQoY2JzLVx1MDAzZXF1ZXVlKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGNicy1cdTAwM2VlbmFibGUpIHtcbiYjNDM7XHRcdGlmIChjYnMtXHUwMDNlaGljcmVkaXQgXHUwMDNjPSAwIHx8XG4mIzQzO1x0XHQgICAgY2JzLVx1MDAzZWhpY3JlZGl0IFx1MDAzZSBxYXYtXHUwMDNlaGlsaW1pdF9tYXNrKSB7XG4mIzQzO1x0XHRcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXHUwMDNlZXh0YWNrLFxuJiM0MztcdFx0XHRcdFx0ICAgXCYjMzQ7aGljcmVkaXQgb3V0IG9mIHJhbmdlXCYjMzQ7KTtcbiYjNDM7XHRcdFx0cmV0dXJuIC1FUkFOR0U7XG4mIzQzO1x0XHR9XG4mIzQzO1xuJiM0MztcdFx0cmF0ZSA9IERJVl9ST1VORF9VUChjYnMtXHUwMDNlaWRsZXNsb3BlLCBxYXYtXHUwMDNlcmF0ZV91bml0KTtcbiYjNDM7XHRcdGlmIChyYXRlIFx1MDAzZSBxYXYtXHUwMDNlcmF0ZV9tYXNrKSB7XG4mIzQzO1x0XHRcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXHUwMDNlZXh0YWNrLFxuJiM0MztcdFx0XHRcdFx0ICAgXCYjMzQ7aWRsZXNsb3BlIG91dCBvZiByYW5nZVwmIzM0Oyk7XG4mIzQzO1x0XHRcdHJldHVybiAtRVJBTkdFO1xuJiM0MztcdFx0fVxuJiM0MztcdFx0LyogYXZvaWQgdXNpbmcgemVybyByYXRlICovXG4mIzQzO1x0XHRyYXRlID0gbWF4X3QodTE2LCByYXRlLCAxKTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbiYjNDM7XG4mIzQzO1x0aWYgKCFjYnMtXHUwMDNlZW5hYmxlKSB7XG4mIzQzO1x0XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIDApO1xuJiM0MztcdFx0aWYgKGVycilcbiYjNDM7XHRcdFx0Z290byB1bmxvY2s7XG4mIzQzO1xuJiM0MztcdFx0aWYgKCEoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jYnNfYWN0aXZlX3F1ZXVlcyBcdTAwMjYgfnF1ZXVlX2JpdCkpIHtcbiYjNDM7XHRcdFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShjaGlwLCBwb3J0LCAwKTtcbiYjNDM7XHRcdFx0aWYgKGVycilcbiYjNDM7XHRcdFx0XHRnb3RvIHVubG9jaztcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgXHUwMDI2PSB+cXVldWVfYml0O1xuJiM0MztcdFx0Z290byB1bmxvY2s7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRoaWxpbWl0ID0gY2JzLVx1MDAzZWhpY3JlZGl0IFx1MDAyNiBxYXYtXHUwMDNlaGlsaW1pdF9tYXNrO1xuJiM0MztcdGVyciA9IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCBoaWxpbWl0X3JlZywgaGlsaW1pdCk7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdGdvdG8gdW5sb2NrO1xuJiM0MztcbiYjNDM7XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIHJhdGUpO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRnb3RvIHVubG9jaztcbiYjNDM7XG4mIzQzO1x0aWYgKCFjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNic19hY3RpdmVfcXVldWVzKSB7XG4mIzQzO1x0XHR1OCBzY2hlZF9tb2RlID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW51bV90eF9xdWV1ZXMgLSAxO1xuJiM0MztcbiYjNDM7XHRcdGVyciA9IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCxcbiYjNDM7XHRcdFx0XHRcdFx0XHQgc2NoZWRfbW9kZSk7XG4mIzQzO1x0XHRpZiAoZXJyKSB7XG4mIzQzO1x0XHRcdG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCByYXRlX3JlZywgMCk7XG4mIzQzO1x0XHRcdGdvdG8gdW5sb2NrO1xuJiM0MztcdFx0fVxuJiM0MztcdH1cbiYjNDM7XHRjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNic19hY3RpdmVfcXVldWVzIHw9IHF1ZXVlX2JpdDtcbiYjNDM7XG4mIzQzO3VubG9jazpcbiYjNDM7XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGVycjtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF90YyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuJiM0MztcdFx0XHRcdCAgIGVudW0gdGNfc2V0dXBfdHlwZSB0eXBlLCB2b2lkICp0eXBlX2RhdGEpXG4mIzQzO3tcbiYjNDM7XHRzd2l0Y2ggKHR5cGUpIHtcbiYjNDM7XHRjYXNlIFRDX1NFVFVQX1FESVNDX0NCUzpcbiYjNDM7XHRcdHJldHVybiBtdjg4ZTZ4eHhfc2V0dXBfdGNfY2JzKGRzLCBwb3J0LCB0eXBlX2RhdGEpO1xuJiM0MztcdGRlZmF1bHQ6XG4mIzQzO1x0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIG12ODhlNnh4eF9waHlsaW5rX21hY19vcHMgPSB7XG4gXHQubWFjX3NlbGVjdF9wY3NcdFx0PSBtdjg4ZTZ4eHhfbWFjX3NlbGVjdF9wY3MsXG4gXHQubWFjX3ByZXBhcmVcdFx0PSBtdjg4ZTZ4eHhfbWFjX3ByZXBhcmUsXG5AQCAtNzIzNCw2ICYjNDM7NzQwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgbXY4OGU2eHh4X3N3aXRjaF9vcHMgPSB7XG4gXHQucG9ydF9od3RzdGFtcF9nZXRcdD0gbXY4OGU2eHh4X3BvcnRfaHd0c3RhbXBfZ2V0LFxuIFx0LnBvcnRfdHh0c3RhbXBcdFx0PSBtdjg4ZTZ4eHhfcG9ydF90eHRzdGFtcCxcbiBcdC5wb3J0X3J4dHN0YW1wXHRcdD0gbXY4OGU2eHh4X3BvcnRfcnh0c3RhbXAsXG4mIzQzO1x0LnBvcnRfc2V0dXBfdGNcdFx0PSBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF90YyxcbiBcdC5jbHNfZmxvd2VyX2FkZFx0XHQ9IG12ODhlNnh4eF9jbHNfZmxvd2VyX2FkZCxcbiBcdC5jbHNfZmxvd2VyX2RlbCAgICAgICAgID0gbXY4OGU2eHh4X2Nsc19mbG93ZXJfZGVsLFxuIFx0LmdldF90c19pbmZvXHRcdD0gbXY4OGU2eHh4X2dldF90c19pbmZvLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcbmluZGV4IGU5NjZlN2M0Y2M1ZGUuLmQ0MmQ4MzllNjM2YmMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcbkBAIC0xMjUsNiAmIzQzOzEyNSw3IEBAIGVudW0gbXY4OGU2eHh4X2Vkc2Ffc3VwcG9ydCB7XG4gfTtcbiBcbiBzdHJ1Y3QgbXY4OGU2eHh4X29wcztcbiYjNDM7c3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbztcbiBcbiBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0ZW51bSBtdjg4ZTZ4eHhfZmFtaWx5IGZhbWlseTtcbkBAIC0xMzYsNiAmIzQzOzEzNyw3IEBAIHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyB7XG4gXHR1bnNpZ25lZCBpbnQgbnVtX2ludGVybmFsX3BoeXM7XG4gXHR1bnNpZ25lZCBpbnQgbnVtX2dwaW87XG4gXHR1bnNpZ25lZCBpbnQgbnVtX3RjYW1fZW50cmllcztcbiYjNDM7XHR1bnNpZ25lZCBpbnQgbnVtX3R4X3F1ZXVlcztcbiBcdHVuc2lnbmVkIGludCBtYXhfdmlkO1xuIFx0dW5zaWduZWQgaW50IG1heF9zaWQ7XG4gXHR1bnNpZ25lZCBpbnQgcG9ydF9iYXNlX2FkZHI7XG5AQCAtMTc2LDYgJiM0MzsxNzgsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0LyogU3VwcG9ydHMgUFRQICovXG4gXHRib29sIHB0cF9zdXBwb3J0O1xuIFxuJiM0MztcdC8qIDgwMi4xUWF2IGNyZWRpdCBiYXNlZCBzaGFwaW5nICovXG4mIzQzO1x0Y29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyAqcWF2O1xuJiM0MztcbiBcdC8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0XG4gXHQgKiBwb3J0IDAsIDEgbWVhbnMgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXQgcG9ydCAxLCBldGNcbiBcdCAqL1xuQEAgLTMwNCw2ICYjNDM7MzA5LDkgQEAgc3RydWN0IG12ODhlNnh4eF9wb3J0IHtcbiBcbiBcdC8qIE1hY0F1dGggQnlwYXNzIGNvbnRyb2wgZmxhZyAqL1xuIFx0Ym9vbCBtYWI7XG4mIzQzO1xuJiM0MztcdC8qIFF1ZXVlcyB3aXRoIENCUyBjdXJyZW50bHkgZW5hYmxlZC4gKi9cbiYjNDM7XHR1OCBjYnNfYWN0aXZlX3F1ZXVlcztcbiB9O1xuIFxuIGVudW0gbXY4OGU2eHh4X3JlZ2lvbl9pZCB7XG5AQCAtNjA2LDYgJiM0Mzs2MTQsOCBAQCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyB7XG4gXHRcdFx0XHQgICBzaXplX3Qgc2l6ZSk7XG4gXG4gXHRpbnQgKCpwb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbiYjNDM7XHRpbnQgKCpwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4mIzQzO1x0XHRcdFx0XHR1OCBtb2RlKTtcbiBcdGludCAoKnBvcnRfcGF1c2VfbGltaXQpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIHU4IGluLFxuIFx0XHRcdFx0dTggb3V0KTtcbiBcdGludCAoKnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG5AQCAtNzYzLDYgJiM0Mzs3NzMsMTAgQEAgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIHtcbiBcdGludCAoKnRhaV9yZWFkKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCB1MTYgKmRhdGEsXG4gXHRcdFx0aW50IGxlbik7XG4gXHRpbnQgKCp0YWlfd3JpdGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIHUxNiBkYXRhKTtcbiYjNDM7XG4mIzQzO1x0LyogQWNjZXNzIHBvcnQtc2NvcGVkIDgwMi4xUWF2IHJlZ2lzdGVycyAqL1xuJiM0MztcdGludCAoKnBvcnRfcWF2X3dyaXRlKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcbiYjNDM7XHRcdFx0ICAgICAgdTE2IGRhdGEpO1xuIH07XG4gXG4gc3RydWN0IG12ODhlNnh4eF9wdHBfb3BzIHtcbkBAIC03OTgsNiAmIzQzOzgxMiwxMyBAQCBzdHJ1Y3QgbXY4OGU2eHh4X3RjYW1fb3BzIHtcbiBcdGludCAoKmZsdXNoX3RjYW0pKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7XG4gfTtcbiBcbiYjNDM7c3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyB7XG4mIzQzO1x0dTE2IHJhdGVfdW5pdDsgLyogaW4ga2JwcyAqL1xuJiM0MztcdHUxNiByYXRlX21hc2s7IC8qIFFQcmkgUmF0ZSB2YWxpZCBiaXRzIG1hc2sgKi9cbiYjNDM7XHR1MTYgaGlsaW1pdF9tYXNrOyAvKiBRUHJpIEhpTGltaXQgYml0cyBtYXNrKi9cbiYjNDM7XHR1OCBxdWV1ZV9tYXNrOyAvKiBzdXBwb3J0ZWQgcXVldWVzIGJpdG1hc2sgKi9cbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIGlubGluZSBib29sIG12ODhlNnh4eF9oYXNfc3R1KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbiB7XG4gXHRyZXR1cm4gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW1heF9zaWQgXHUwMDNlIDAgXHUwMDI2XHUwMDI2XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaFxuaW5kZXggZmY1YWRmN2M5YmMzYS4uZGY1MmZmM2FkYzg4YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaFxuQEAgLTE4Niw2ICYjNDM7MTg2LDkgQEBcbiAjZGVmaW5lIE1WODhFNjM1Ml9HMl9BVkJfQ01EX0JMT0NLX01BU0tcdFx0MHgwMGUwXG4gI2RlZmluZSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9BRERSX01BU0tcdFx0MHgwMDFmXG4gXG4mIzQzOyNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfUUFWX0NGR19SQVRFKHF1ZXVlKVx0KCgocXVldWUpIFx1MDAyNiAweDcpIFx1MDAzY1x1MDAzYyAxKVxuJiM0MzsjZGVmaW5lIE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfSElMSU1JVChxdWV1ZSlcdCgoKChxdWV1ZSkgXHUwMDI2IDB4NykgXHUwMDNjXHUwMDNjIDEpICYjNDM7IDEpXG4mIzQzO1xuIC8qIE9mZnNldCAweDE3OiBBVkIgRGF0YSBSZWdpc3RlciAqL1xuICNkZWZpbmUgTVY4OEU2MzUyX0cyX0FWQl9EQVRBXHRcdDB4MTdcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmNcbmluZGV4IDY1Nzc4M2UwNDNmZjEuLjZiNTRlMjc1ZDIxYWIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuY1xuQEAgLTExMCw2ICYjNDM7MTEwLDE1IEBAIHN0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3B0cF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4gXHRyZXR1cm4gbXY4OGU2eHh4X2cyX2F2Yl93cml0ZShjaGlwLCB3cml0ZW9wLCBkYXRhKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4mIzQzO1x0XHRcdFx0XHQgICBpbnQgcG9ydCwgaW50IGFkZHIsIHUxNiBkYXRhKVxuJiM0Mzt7XG4mIzQzO1x0dTE2IHdyaXRlb3AgPSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9PUF9XUklURSB8IChwb3J0IFx1MDAzY1x1MDAzYyA4KSB8XG4mIzQzO1x0XHQgICAgICAoTVY4OEU2MzUyX0cyX0FWQl9DTURfQkxPQ0tfUUFWIFx1MDAzY1x1MDAzYyA1KSB8IGFkZHI7XG4mIzQzO1xuJiM0MztcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLFxuIFx0XHRcdFx0ICAgICB1MTYgKmRhdGEsIGludCBsZW4pXG4ge1xuQEAgLTE0OSw2ICYjNDM7MTU4LDcgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjM1Ml9hdmJfb3BzID0ge1xuIFx0LnB0cF93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3dyaXRlLFxuIFx0LnRhaV9yZWFkXHRcdD0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfcmVhZCxcbiBcdC50YWlfd3JpdGVcdFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3RhaV93cml0ZSxcbiYjNDM7XHQucG9ydF9xYXZfd3JpdGVcdFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3BvcnRfcWF2X3dyaXRlLFxuIH07XG4gXG4gc3RhdGljIGludCBtdjg4ZTYxNjVfZzJfYXZiX3RhaV9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsXG5AQCAtMTc0LDYgJiM0MzsxODQsNyBAQCBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgbXY4OGU2MTY1X2F2Yl9vcHMgPSB7XG4gXHQucHRwX3dyaXRlXHRcdD0gbXY4OGU2MzUyX2cyX2F2Yl9wdHBfd3JpdGUsXG4gXHQudGFpX3JlYWRcdFx0PSBtdjg4ZTYxNjVfZzJfYXZiX3RhaV9yZWFkLFxuIFx0LnRhaV93cml0ZVx0XHQ9IG12ODhlNjE2NV9nMl9hdmJfdGFpX3dyaXRlLFxuJiM0MztcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbiBcbiBzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG5AQCAtMTk3LDYgJiM0MzsyMDgsMTUgQEAgc3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcHRwX3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbiBcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xuIH1cbiBcbiYjNDM7c3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcWF2X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbiYjNDM7XHRcdFx0XHRcdCAgIGludCBwb3J0LCBpbnQgYWRkciwgdTE2IGRhdGEpXG4mIzQzO3tcbiYjNDM7XHR1MTYgd3JpdGVvcCA9IE1WODhFNjM5MF9HMl9BVkJfQ01EX09QX1dSSVRFIHwgKHBvcnQgXHUwMDNjXHUwMDNjIDgpIHxcbiYjNDM7XHRcdCAgICAgIChNVjg4RTYzNTJfRzJfQVZCX0NNRF9CTE9DS19RQVYgXHUwMDNjXHUwMDNjIDUpIHwgYWRkcjtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3B0cF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsXG4gXHRcdFx0XHQgICAgIHUxNiAqZGF0YSwgaW50IGxlbilcbiB7XG5AQCAtMjM2LDQgJiM0MzsyNTYsNSBAQCBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgbXY4OGU2MzkwX2F2Yl9vcHMgPSB7XG4gXHQucHRwX3dyaXRlXHRcdD0gbXY4OGU2MzkwX2cyX2F2Yl9wdHBfd3JpdGUsXG4gXHQudGFpX3JlYWRcdFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV9yZWFkLFxuIFx0LnRhaV93cml0ZVx0XHQ9IG12ODhlNjM5MF9nMl9hdmJfdGFpX3dyaXRlLFxuJiM0MztcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXG5pbmRleCBlYTFmYWI3MTk2OGEwLi43NThiOGQ0MWY0ODUzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXG5AQCAtMTMyMyw2ICYjNDM7MTMyMyw1MSBAQCBpbnQgbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbiBcdFx0XHRcdCAgICAweDAwMDEpO1xuIH1cbiBcbiYjNDM7aW50IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiYjNDM7XHRcdFx0XHQgICAgICAgdTggbW9kZSlcbiYjNDM7e1xuJiM0MztcdHUxNiByZWc7XG4mIzQzO1x0aW50IGVycjtcbiYjNDM7XG4mIzQzO1x0aWYgKG1vZGUgXHUwMDNlIDMpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XG4mIzQzO1x0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyLFxuJiM0MztcdFx0XHRcdCAgXHUwMDI2cmVnKTtcbiYjNDM7XHRpZiAoZXJyKVxuJiM0MztcdFx0cmV0dXJuIGVycjtcbiYjNDM7XG4mIzQzO1x0cmVnIFx1MDAyNj0gfk1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfTUFTSztcbiYjNDM7XHRyZWcgfD0gbW9kZSBcdTAwM2NcdTAwM2MgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9TSElGVDtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsXG4mIzQzO1x0XHRcdFx0ICAgIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDIsIHJlZyk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4mIzQzO1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpXG4mIzQzO3tcbiYjNDM7XHR1MTYgcmVnO1xuJiM0MztcdGludCBlcnI7XG4mIzQzO1xuJiM0MztcdGlmIChtb2RlIFx1MDAzZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSylcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcbiYjNDM7XHRyZWcgPSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfVVBEQVRFIHxcbiYjNDM7XHQgICAgICAoTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFIFx1MDAzY1x1MDAzY1xuJiM0MztcdCAgICAgICBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfUFRSX1NISUZUKSB8XG4mIzQzO1x0ICAgICAgKG1vZGUgXHUwMDI2IE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRV9NQVNLKTtcbiYjNDM7XG4mIzQzO1x0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMLFxuJiM0MztcdFx0XHRcdCAgIHJlZyk7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdHJldHVybiBlcnI7XG4mIzQzO1xuJiM0MztcdHJldHVybiBtdjg4ZTZ4eHhfcG9ydF93YWl0X2JpdChjaGlwLCBwb3J0LCBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVEwsXG4mIzQzO1x0XHRcdFx0ICAgICAgIF9fYmZfc2hmKE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9VUERBVEUpXG4mIzQzO1x0XHRcdFx0ICAgICAgICwgMCk7XG4mIzQzO31cbiYjNDM7XG4gLyogT2Zmc2V0IDB4MEI6IFBvcnQgQXNzb2NpYXRpb24gVmVjdG9yICovXG4gXG4gaW50IG12ODhlNnh4eF9wb3J0X3NldF9hc3NvY192ZWN0b3Ioc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbkBAIC0xNzI3LDMgJiM0MzsxNzcyLDIxIEBAIGludCBtdjg4ZTYzOTN4X3BvcnRfc2V0X3BvbGljeShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuIFxuIFx0cmV0dXJuIG12ODhlNjM5M3hfcG9ydF9wb2xpY3lfd3JpdGUoY2hpcCwgcG9ydCwgcHRyLCByZWcpO1xuIH1cbiYjNDM7XG4mIzQzO2ludCBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsXG4mIzQzO1x0XHRcdCAgICAgdTE2IGRhdGEpXG4mIzQzO3tcbiYjNDM7XHRpZiAoIWNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHMtXHUwMDNlYXZiX29wcy1cdTAwM2Vwb3J0X3Fhdl93cml0ZSlcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHMtXHUwMDNlYXZiX29wcy1cdTAwM2Vwb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCBhZGRyLCBkYXRhKTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7aW50IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiYjNDM7XHRcdFx0XHQgICAgICAgdTggbW9kZSlcbiYjNDM7e1xuJiM0MztcdGlmICghY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2Vwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUpXG4mIzQzO1x0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4mIzQzO1xuJiM0MztcdHJldHVybiBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShjaGlwLCBwb3J0LCBtb2RlKTtcbiYjNDM7fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmhcbmluZGV4IDViNmNkZTlmNzQwNmYuLmEzODBmMzU2ZWI4M2QgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmhcbkBAIC0yNDEsNiAmIzQzOzI0MSwxOCBAQFxuIFxuIC8qIE9mZnNldCAweDBBOiBFZ3Jlc3MgUmF0ZSBDb250cm9sIDIgKi9cbiAjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJcdFx0MHgwYVxuJiM0MzsjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfTUFTS1x0MHgzMDAwXG4mIzQzOyNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9TSElGVFx0MTJcbiYjNDM7XG4mIzQzOy8qIE9mZnNldCAweDFDOiBQb3J0IFF1ZXVlIENvbnRyb2wgKi9cbiYjNDM7I2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExcdFx0XHQweDFjXG4mIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURVx0XHRcdDB4ODAwMFxuJiM0MzsjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfTUFTS1x0XHQweDdmMDBcbiYjNDM7I2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfUFRSX1NISUZUXHRcdDhcbiYjNDM7I2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfREFUQV9NQVNLXHRcdDB4MDBmZlxuJiM0MzsjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRVx0XHQweDAwXG4mIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFX01BU0tcdFx0MHgwN1xuJiM0MztcbiBcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cbiAjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0FTU09DX1ZFQ1RPUlx0XHRcdDB4MGJcbkBAIC01NjEsNiAmIzQzOzU3MywxMCBAQCBpbnQgbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiBcdFx0XHRcdCAgc2l6ZV90IHNpemUpO1xuIGludCBtdjg4ZTYwOTVfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbiBpbnQgbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG4mIzQzO2ludCBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4mIzQzO1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpO1xuJiM0MztpbnQgbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuJiM0MztcdFx0XHRcdCAgICAgICB1OCBtb2RlKTtcbiBpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2Fzc29jX3ZlY3RvcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuIFx0XHRcdFx0ICAgIHUxNiBwYXYpO1xuIGludCBtdjg4ZTYwOTdfcG9ydF9wYXVzZV9saW1pdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCB1OCBpbixcbkBAIC02MDUsNSAmIzQzOzYyMSw5IEBAIGludCBtdjg4ZTZ4eHhfcG9ydF9oaWRkZW5fcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBibG9jaywgaW50IHBvcnQsXG4gXHRcdFx0ICAgICAgIGludCByZWcsIHUxNiAqdmFsKTtcbiBcbiBpbnQgbXY4OGU2eHh4X3BvcnRfZW5hYmxlX3RjYW0oc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG4mIzQzO2ludCBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsXG4mIzQzO1x0XHRcdCAgICAgdTE2IGRhdGEpO1xuJiM0MztpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuJiM0MztcdFx0XHRcdCAgICAgICB1OCBtb2RlKTtcbiBcbiAjZW5kaWYgLyogX01WODhFNlhYWF9QT1JUX0ggKi9cbmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9wa3Rfc2NoZWQuaCBiL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oXG5pbmRleCAxOGE0MTljZDlkOTQ5Li5kMzVjODcwMDRjMjc5IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oXG5AQCAtMTUwLDYgJiM0MzsxNTAsNyBAQCBzdHJ1Y3QgdGNfY2JzX3FvcHRfb2ZmbG9hZCB7XG4gXHRzMzIgbG9jcmVkaXQ7XG4gXHRzMzIgaWRsZXNsb3BlO1xuIFx0czMyIHNlbmRzbG9wZTtcbiYjNDM7XHRzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2s7XG4gfTtcbiBcbiBzdHJ1Y3QgdGNfZXRmX3FvcHRfb2ZmbG9hZCB7XG5kaWZmIC0tZ2l0IGEvbmV0L2RzYS90YWdfZHNhLmMgYi9uZXQvZHNhL3RhZ19kc2EuY1xuaW5kZXggZDVmZmVlMzVmYmI1My4uMmJiNzFjZDM0M2U3OSAxMDA2NDRcbi0tLSBhL25ldC9kc2EvdGFnX2RzYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvZHNhL3RhZ19kc2EuY1xuQEAgLTE3OSw4ICYjNDM7MTc5LDE3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZHNhX3htaXRfbGwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHRkc2FfaGVhZGVyWzJdIFx1MDAyNj0gfjB4MTA7XG4gXHRcdH1cbiBcdH0gZWxzZSB7XG4mIzQzO1x0XHR1MTYgcXVldWUgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKSBcdTAwMjYgMHg3O1xuIFx0XHR1MTYgdmlkO1xuIFxuJiM0MztcdFx0LyogVGhlIFBSSSBmaWVsZCBpcyAzIGJpdHMuIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiB0aGVcbiYjNDM7XHRcdCAqIDIgaGlnaGVzdCBiaXRzIHNwZWNpZnkgdGhlIGVncmVzcyBxdWV1ZSBpbiBGcm9tX0NQVSBEU0FcbiYjNDM7XHRcdCAqIHRhZ2dlZCBmcmFtZXMuIE9uIGRldmljZXMgd2l0aCA4IHF1ZXVlcyBpdCYjMzk7cyBwb3NzaWJsZSB0b1xuJiM0MztcdFx0ICogc2VuZCB0byB0aGUgOCBxdWV1ZXMsIHdoaWNoIG1lYW5zIHRoZSAzIGJpdHMgYXJlIHVzZWQuXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdGlmIChkcC1cdTAwM2Vkcy1cdTAwM2VudW1fdHhfcXVldWVzID09IDQpXG4mIzQzO1x0XHRcdHF1ZXVlIFx1MDAzY1x1MDAzYz0gMTtcbiYjNDM7XG4gXHRcdHZpZCA9IGJyX2RldiA/IE1WODhFNlhYWF9WSURfQlJJREdFRCA6IE1WODhFNlhYWF9WSURfU1RBTkRBTE9ORTtcbiBcbiBcdFx0c2tiX3B1c2goc2tiLCBEU0FfSExFTiAmIzQzOyBleHRyYSk7XG5AQCAtMTkxLDcgJiM0MzsyMDAsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmRzYV94bWl0X2xsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXG4gXHRcdGRzYV9oZWFkZXJbMF0gPSAoY21kIFx1MDAzY1x1MDAzYyA2KSB8IHRhZ19kZXY7XG4gXHRcdGRzYV9oZWFkZXJbMV0gPSB0YWdfcG9ydCBcdTAwM2NcdTAwM2MgMztcbi1cdFx0ZHNhX2hlYWRlclsyXSA9IHZpZCBcdTAwM2VcdTAwM2UgODtcbiYjNDM7XHRcdGRzYV9oZWFkZXJbMl0gPSAocXVldWUgXHUwMDNjXHUwMDNjIDUpIHwgdmlkIFx1MDAzZVx1MDAzZSA4O1xuIFx0XHRkc2FfaGVhZGVyWzNdID0gdmlkIFx1MDAyNiAweGZmO1xuIFx0fVxuIFxuZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2JzLmMgYi9uZXQvc2NoZWQvc2NoX2Nicy5jXG5pbmRleCAxYzkzNDY5YzU2ZTNkLi44N2MyZWRhMTA4YzhjIDEwMDY0NFxuLS0tIGEvbmV0L3NjaGVkL3NjaF9jYnMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3NjaGVkL3NjaF9jYnMuY1xuQEAgLTMwNywxMCAmIzQzOzMwNywxMiBAQCBzdGF0aWMgaW50IGNic19lbmFibGVfb2ZmbG9hZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgY2JzX3NjaGVkX2RhdGEgKnEsXG4gXHRjYnMubG9jcmVkaXQgPSBvcHQtXHUwMDNlbG9jcmVkaXQ7XG4gXHRjYnMuaWRsZXNsb3BlID0gb3B0LVx1MDAzZWlkbGVzbG9wZTtcbiBcdGNicy5zZW5kc2xvcGUgPSBvcHQtXHUwMDNlc2VuZHNsb3BlO1xuJiM0MztcdGNicy5leHRhY2sgPSBleHRhY2s7XG4gXG4gXHRlcnIgPSBvcHMtXHUwMDNlbmRvX3NldHVwX3RjKGRldiwgVENfU0VUVVBfUURJU0NfQ0JTLCBcdTAwMjZjYnMpO1xuIFx0aWYgKGVyciBcdTAwM2MgMCkge1xuLVx0XHROTF9TRVRfRVJSX01TRyhleHRhY2ssIFwmIzM0O1NwZWNpZmllZCBkZXZpY2UgZmFpbGVkIHRvIHNldHVwIGNicyBoYXJkd2FyZSBvZmZsb2FkXCYjMzQ7KTtcbiYjNDM7XHRcdE5MX1NFVF9FUlJfTVNHX1dFQUsoZXh0YWNrLFxuJiM0MztcdFx0XHRcdCAgICBcJiMzNDtTcGVjaWZpZWQgZGV2aWNlIGZhaWxlZCB0byBzZXR1cCBjYnMgaGFyZHdhcmUgb2ZmbG9hZFwmIzM0Oyk7XG4gXHRcdHJldHVybiBlcnI7XG4gXHR9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHByaW1hcmlseSBhZGRzIDgwMi4xUWF2IENCUyBvZmZsb2FkaW5nIHN1cHBvcnQgdG8gdGhlIE1hcnZlbGwgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGRyaXZlciBjYW5ub3QgYmUgZXhlcmNpc2VkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoZSBjaGFuZ2VzIGluIG5ldC9kc2EvdGFnX2RzYS5jIGFyZSBzcGVjaWZpYyB0byB0aGUgRFNBIHRhZyBwcm90b2NvbCB1c2VkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgZHJpdmVyLiBUaGUgbW9kaWZpY2F0aW9uIGluIG5ldC9zY2hlZC9zY2hfY2JzLmMgaXMgYSB0cml2aWFsIGNoYW5nZSB0byBwYXNzIGV4dGFjayBkb3duIHRvIHRoZSBkcml2ZXIgYW5kIHVzZSBOTF9TRVRfRVJSX01TR19XRUFLLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgcmVxdWlyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNTIyYjRmNDY5YjhmZjUzZDE0MTZmYTRkYTk3OWUzZjQxNWY4NTA3OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDExIDEyOjAwOjM2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwppbmRleCA4MGI4NzdjNzQ1MTNkLi5hNTY3ZWU5YjZjZTBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwpAQCAtMzIsNiAmIzQzOzMyLDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9ncGlvL2NvbnN1bWVyLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcGh5bGluay5oJmd0OwogI2luY2x1ZGUgJmx0O25ldC9kc2EuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bmV0L3BrdF9zY2hlZC5oJmd0OwogCiAjaW5jbHVkZSAmIzM0O2NoaXAuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2RldmxpbmsuaCYjMzQ7CkBAIC0zOTkwLDYgJiM0MzszOTkxLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKQogCiAJY2hpcC0mZ3Q7ZHMgPSBkczsKIAlkcy0mZ3Q7dXNlcl9taWlfYnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7CiYjNDM7CWRzLSZndDtudW1fdHhfcXVldWVzID0gY2hpcC0mZ3Q7aW5mby0mZ3Q7bnVtX3R4X3F1ZXVlczsKIAogCS8qIFNpbmNlIHZpcnR1YWwgYnJpZGdlcyBhcmUgbWFwcGVkIGluIHRoZSBQVlQsIHRoZSBudW1iZXIgd2Ugc3VwcG9ydAogCSAqIGRlcGVuZHMgb24gdGhlIHBoeXNpY2FsIHN3aXRjaCB0b3BvbG9neS4gV2UgbmVlZCB0byBsZXQgRFNBIGZpZ3VyZQpAQCAtNTAyMyw2ICYjNDM7NTAyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYyNDBfb3BzID0gewogCS5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsCiAJLnBvcnRfc2V0X2p1bWJvX3NpemUgPSBtdjg4ZTYxNjVfcG9ydF9zZXRfanVtYm9fc2l6ZSwKIAkucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLAomIzQzOwkucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzUyX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSwKIAkucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LAogCS5wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0LAogCS5wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUsCkBAIC01MzA2LDYgJiM0Mzs1MzA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM0MV9vcHMgPSB7CiAJLnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSwKIAkucG9ydF9zZXRfanVtYm9fc2l6ZSA9IG12ODhlNjE2NV9wb3J0X3NldF9qdW1ib19zaXplLAogCS5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsCiYjNDM7CS5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLAogCS5wb3J0X3BhdXNlX2xpbWl0ID0gbXY4OGU2MDk3X3BvcnRfcGF1c2VfbGltaXQsCiAJLnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsCiAJLnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSwKQEAgLTU0NjQsNiAmIzQzOzU0NjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzUyX29wcyA9IHsKIAkucG9ydF9zZXRfZXRoZXJfdHlwZSA9IG12ODhlNjM1MV9wb3J0X3NldF9ldGhlcl90eXBlLAogCS5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsCiAJLnBvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcgPSBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZywKJiM0MzsJLnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsCiAJLnBvcnRfcGF1c2VfbGltaXQgPSBtdjg4ZTYwOTdfcG9ydF9wYXVzZV9saW1pdCwKIAkucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCwKIAkucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLApAQCAtNTUzMyw2ICYjNDM7NTUzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTBfb3BzID0gewogCS5wb3J0X2dldF9jbW9kZSA9IG12ODhlNjM1Ml9wb3J0X2dldF9jbW9kZSwKIAkucG9ydF9zZXRfY21vZGUgPSBtdjg4ZTYzOTBfcG9ydF9zZXRfY21vZGUsCiAJLnBvcnRfc2V0dXBfbWVzc2FnZV9wb3J0ID0gbXY4OGU2eHh4X3NldHVwX21lc3NhZ2VfcG9ydCwKJiM0MzsJLnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsCiAJLnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LAogCS5zdGF0c19zZXRfaGlzdG9ncmFtID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NldF9oaXN0b2dyYW0sCiAJLnN0YXRzX2dldF9zc2V0X2NvdW50ID0gbXY4OGU2MzIwX3N0YXRzX2dldF9zc2V0X2NvdW50LApAQCAtNTU5Nyw2ICYjNDM7NTYwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTB4X29wcyA9IHsKIAkucG9ydF9nZXRfY21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9nZXRfY21vZGUsCiAJLnBvcnRfc2V0X2Ntb2RlID0gbXY4OGU2MzkweF9wb3J0X3NldF9jbW9kZSwKIAkucG9ydF9zZXR1cF9tZXNzYWdlX3BvcnQgPSBtdjg4ZTZ4eHhfc2V0dXBfbWVzc2FnZV9wb3J0LAomIzQzOwkucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSwKIAkuc3RhdHNfc25hcHNob3QgPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc25hcHNob3QsCiAJLnN0YXRzX3NldF9oaXN0b2dyYW0gPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc2V0X2hpc3RvZ3JhbSwKIAkuc3RhdHNfZ2V0X3NzZXRfY291bnQgPSBtdjg4ZTYzMjBfc3RhdHNfZ2V0X3NzZXRfY291bnQsCkBAIC01NjUzLDYgJiM0Mzs1NjYwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM5M3hfb3BzID0gewogCS5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzkzeF9wb3J0X3NldF9ldGhlcl90eXBlLAogCS5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsCiAJLnBvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcgPSBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZywKJiM0MzsJLnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsCiAJLnBvcnRfcGF1c2VfbGltaXQgPSBtdjg4ZTYzOTBfcG9ydF9wYXVzZV9saW1pdCwKIAkucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCwKIAkucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLApAQCAtNTY5NSw2ICYjNDM7NTcwMywyNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkzeF9vcHMgPSB7CiAJLnRjYW1fb3BzID0gJmFtcDttdjg4ZTYzOTNfdGNhbV9vcHMsCiB9OwogCiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gbXY4OGU2MzUyX3Fhdl9pbmZvID0gewomIzQzOwkucmF0ZV91bml0ID0gMzIsCiYjNDM7CS5yYXRlX21hc2sgPSBHRU5NQVNLKDE0LCAwKSwKJiM0MzsJLmhpbGltaXRfbWFzayA9IEdFTk1BU0soMTQsIDApLAomIzQzOwkucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksCiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzNDFfcWF2X2luZm8gPSB7CiYjNDM7CS5yYXRlX3VuaXQgPSA2NCwKJiM0MzsJLnJhdGVfbWFzayA9IEdFTk1BU0soMTUsIDApLAomIzQzOwkuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksCiYjNDM7CS5xdWV1ZV9tYXNrID0gR0VOTUFTSygzLCAwKSwKJiM0Mzt9OwomIzQzOwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvIG12ODhlNjM5MF9xYXZfaW5mbyA9IHsKJiM0MzsJLnJhdGVfdW5pdCA9IDY0LAomIzQzOwkucmF0ZV9tYXNrID0gR0VOTUFTSygxNSwgMCksCiYjNDM7CS5oaWxpbWl0X21hc2sgPSBHRU5NQVNLKDEzLCAwKSwKJiM0MzsJLnF1ZXVlX21hc2sgPSBHRU5NQVNLKDcsIDApLAomIzQzO307CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCVtNVjg4RTYwMjBdID0gewogCQkucHJvZF9udW0gPSBNVjg4RTZYWFhfUE9SVF9TV0lUQ0hfSURfUFJPRF82MDIwLApAQCAtNTcwNiw2ICYjNDM7NTczNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCSAqLwogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gMiwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLmludmFsaWRfcG9ydF9tYXNrID0gQklUKDIpIHwgQklUKDMpIHwgQklUKDQpLAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4OCwKQEAgLTU3MjgsNiAmIzQzOzU3NTgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX2RhdGFiYXNlcyA9IDY0LAogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDA4LAogCQkucGh5X2Jhc2VfYWRkciA9IDB4MDAsCkBAIC01NzUwLDYgJiM0Mzs1NzgxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDEwLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01Nzc0LDYgJiM0Mzs1ODA2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDExLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSAwLAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCiAJCS5waHlfYmFzZV9hZGRyID0gMHgwLApAQCAtNTc5NSw2ICYjNDM7NTgyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSAxMSwKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOCwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNTgyMCw2ICYjNDM7NTg1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fbWFjcyA9IDEwMjQsCiAJCS5udW1fcG9ydHMgPSAzLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01ODQ1LDYgJiM0Mzs1ODgwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDgsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDAsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAweDAsCkBAIC01ODY3LDYgJiM0Mzs1OTAzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDYsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiAJCS5udW1fZ3BpbyA9IDExLAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01ODkyLDYgJiM0Mzs1OTI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gMTAyNCwKIAkJLm51bV9wb3J0cyA9IDYsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTU5MTgsNiAmIzQzOzU5NTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNiwKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gMCwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNTk0Myw2ICYjNDM7NTk4Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01OTY5LDYgJiM0Mzs2MDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiAJCS5udW1fZ3BpbyA9IDE1LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01OTk0LDYgJiM0Mzs2MDM1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTYwMjAsNiAmIzQzOzYwNjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKIAkJLm51bV9ncGlvID0gMTUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTYwNDUsNiAmIzQzOzYwODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gMTAsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDAsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAweDAsCkBAIC02MDY4LDYgJiM0Mzs2MTEyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDgsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNjA5Myw2ICYjNDM7NjEzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCiAJCS5udW1fZ3BpbyA9IDE2LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA4LAogCQkubWF4X3ZpZCA9IDgxOTEsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MCwKQEAgLTYxMTcsNiAmIzQzOzYxNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX21hY3MgPSAxNjM4NCwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gOCwKIAkJLm1heF92aWQgPSA4MTkxLAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDAsCkBAIC02MTQyLDYgJiM0Mzs2MTg5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOCwKIAkJLmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gOCwKIAkJLm1heF92aWQgPSA4MTkxLAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDAsCkBAIC02MTY4LDYgJiM0Mzs2MjE2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOCwKIAkJLm51bV90Y2FtX2VudHJpZXMgPSAyNTYsCiAJCS5pbnRlcm5hbF9waHlzX29mZnNldCA9IDEsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDgsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNjE5OCw2ICYjNDM7NjI0Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSAyLAogCQkuaW52YWxpZF9wb3J0X21hc2sgPSBCSVQoMikgfCBCSVQoMykgfCBCSVQoNCksCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwOCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAweDAwLApAQCAtNjIyMiw2ICYjNDM7NjI3Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAogCQkubnVtX2dwaW8gPSAxNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjIzNyw2ICYjNDM7NjI4OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM1Ml9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MjQwX29wcywKIAl9LAogCkBAIC02MjQ3LDYgJiM0Mzs2Mjk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9kYXRhYmFzZXMgPSA2NCwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwOCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAweDAwLApAQCAtNjI3MSw2ICYjNDM7NjMyNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCiAJCS5udW1fZ3BpbyA9IDE2LAogCQkubnVtX3RjYW1fZW50cmllcyA9IDI1NiwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gOCwKIAkJLm1heF92aWQgPSA4MTkxLAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDAsCkBAIC02Mjk5LDYgJiM0Mzs2MzUzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gMiwKIAkJLmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMywKIAkJLm51bV9ncGlvID0gMTUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTYzMjcsNiAmIzQzOzYzODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX2ludGVybmFsX3BoeXMgPSAyLAogCQkuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAzLAogCQkubnVtX2dwaW8gPSAxNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjM1NCw2ICYjNDM7NjQxMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiAJCS5udW1fcG9ydHMgPSA2LAogCQkubnVtX2dwaW8gPSAxMSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjM2OSw2ICYjNDM7NjQyNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM0MV9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MzQxX29wcywKIAl9LAogCkBAIC02MzgwLDYgJiM0Mzs2NDM4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTY0MDUsNiAmIzQzOzY0NjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjQzMSw2ICYjNDM7NjQ5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAogCQkubnVtX2dwaW8gPSAxNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjQ0Niw2ICYjNDM7NjUwNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM1Ml9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MzUyX29wcywKIAl9LAogCVtNVjg4RTYzNjFdID0gewpAQCAtNjQ1OSw2ICYjNDM7NjUyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgxKSB8IEJJVCgyKSB8IEJJVCg4KSwKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKIAkJLmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMywKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gOCwKIAkJLm1heF92aWQgPSA4MTkxLAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDAsCkBAIC02NDg1LDYgJiM0Mzs2NTQ4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiAJCS5udW1fdGNhbV9lbnRyaWVzID0gMjU2LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA4LAogCQkubWF4X3ZpZCA9IDgxOTEsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MCwKQEAgLTY1MDEsNiAmIzQzOzY1NjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubXVsdGlfY2hpcCA9IHRydWUsCiAJCS5lZHNhX3N1cHBvcnQgPSBNVjg4RTZYWFhfRURTQV9VTkRPQ1VNRU5URUQsCiAJCS5wdHBfc3VwcG9ydCA9IHRydWUsCiYjNDM7CQkucWF2ID0gJmFtcDttdjg4ZTYzOTBfcWF2X2luZm8sCiAJCS5vcHMgPSAmYW1wO212ODhlNjM5MF9vcHMsCiAJfSwKIAlbTVY4OEU2MzkwWF0gPSB7CkBAIC02NTEyLDYgJiM0Mzs2NTc3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDgsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNjUyNyw2ICYjNDM7NjU5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1VORE9DVU1FTlRFRCwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM5MF9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MzkweF9vcHMsCiAJfSwKIApAQCAtNjUzOCw2ICYjNDM7NjYwNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDgsCiAJCS5udW1fdGNhbV9lbnRyaWVzID0gMjU2LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA4LAogCQkuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLAogCQkubWF4X3ZpZCA9IDgxOTEsCiAJCS5tYXhfc2lkID0gNjMsCkBAIC02NTU0LDYgJiM0Mzs2NjIyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLnB2dCA9IHRydWUsCiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM5MF9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MzkzeF9vcHMsCiAJfSwKIH07CkBAIC03MTc1LDYgJiM0Mzs3MjQ0LDExMiBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9jcm9zc2NoaXBfbGFnX2xlYXZlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHN3X2luZGV4LAogCXJldHVybiBlcnJfc3luYyA/IDogZXJyX3B2dDsKIH0KIAomIzQzO3N0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwX3RjX2NicyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAomIzQzOwkJCQkgIHN0cnVjdCB0Y19jYnNfcW9wdF9vZmZsb2FkICpjYnMpCiYjNDM7ewomIzQzOwljb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgKmF2Yl9vcHM7CiYjNDM7CXN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLSZndDtwcml2OwomIzQzOwljb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvICpxYXY7CiYjNDM7CWNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzICpvcHM7CiYjNDM7CWludCBoaWxpbWl0X3JlZzsKJiM0MzsJaW50IHJhdGVfcmVnOwomIzQzOwl1OCBxdWV1ZV9iaXQ7CiYjNDM7CXUzMiByYXRlID0gMDsKJiM0MzsJdTE2IGhpbGltaXQ7CiYjNDM7CWludCBlcnI7CiYjNDM7CiYjNDM7CW9wcyA9IGNoaXAtJmd0O2luZm8tJmd0O29wczsKJiM0MzsJYXZiX29wcyA9IG9wcy0mZ3Q7YXZiX29wczsKJiM0MzsJcWF2ID0gY2hpcC0mZ3Q7aW5mby0mZ3Q7cWF2OwomIzQzOwomIzQzOwlpZiAoIXFhdiB8fCAhYXZiX29wcyB8fCAhYXZiX29wcy0mZ3Q7cG9ydF9xYXZfd3JpdGUgfHwKJiM0MzsJICAgICFvcHMtJmd0O3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSkKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsKJiM0MzsJaWYgKCFkc2FfaXNfdXNlcl9wb3J0KGRzLCBwb3J0KSkKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsKJiM0MzsJaWYgKCEocWF2LSZndDtxdWV1ZV9tYXNrICZhbXA7IEJJVChjYnMtJmd0O3F1ZXVlKSkpIHsKJiM0MzsJCU5MX1NFVF9FUlJfTVNHX01PRChjYnMtJmd0O2V4dGFjaywgJiMzNDtDQlMgbm90IHN1cHBvcnRlZCBvbiBxdWV1ZSYjMzQ7KTsKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsJfQomIzQzOwomIzQzOwlxdWV1ZV9iaXQgPSBCSVQoY2JzLSZndDtxdWV1ZSk7CiYjNDM7CXJhdGVfcmVnID0gTVY4OEU2WFhYX1BPUlRfUUFWX0NGR19SQVRFKGNicy0mZ3Q7cXVldWUpOwomIzQzOwloaWxpbWl0X3JlZyA9IE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfSElMSU1JVChjYnMtJmd0O3F1ZXVlKTsKJiM0MzsKJiM0MzsJaWYgKGNicy0mZ3Q7ZW5hYmxlKSB7CiYjNDM7CQlpZiAoY2JzLSZndDtoaWNyZWRpdCAmbHQ7PSAwIHx8CiYjNDM7CQkgICAgY2JzLSZndDtoaWNyZWRpdCAmZ3Q7IHFhdi0mZ3Q7aGlsaW1pdF9tYXNrKSB7CiYjNDM7CQkJTkxfU0VUX0VSUl9NU0dfTU9EKGNicy0mZ3Q7ZXh0YWNrLAomIzQzOwkJCQkJICAgJiMzNDtoaWNyZWRpdCBvdXQgb2YgcmFuZ2UmIzM0Oyk7CiYjNDM7CQkJcmV0dXJuIC1FUkFOR0U7CiYjNDM7CQl9CiYjNDM7CiYjNDM7CQlyYXRlID0gRElWX1JPVU5EX1VQKGNicy0mZ3Q7aWRsZXNsb3BlLCBxYXYtJmd0O3JhdGVfdW5pdCk7CiYjNDM7CQlpZiAocmF0ZSAmZ3Q7IHFhdi0mZ3Q7cmF0ZV9tYXNrKSB7CiYjNDM7CQkJTkxfU0VUX0VSUl9NU0dfTU9EKGNicy0mZ3Q7ZXh0YWNrLAomIzQzOwkJCQkJICAgJiMzNDtpZGxlc2xvcGUgb3V0IG9mIHJhbmdlJiMzNDspOwomIzQzOwkJCXJldHVybiAtRVJBTkdFOwomIzQzOwkJfQomIzQzOwkJLyogYXZvaWQgdXNpbmcgemVybyByYXRlICovCiYjNDM7CQlyYXRlID0gbWF4X3QodTE2LCByYXRlLCAxKTsKJiM0MzsJfQomIzQzOwomIzQzOwltdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7CiYjNDM7CiYjNDM7CWlmICghY2JzLSZndDtlbmFibGUpIHsKJiM0MzsJCWVyciA9IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCByYXRlX3JlZywgMCk7CiYjNDM7CQlpZiAoZXJyKQomIzQzOwkJCWdvdG8gdW5sb2NrOwomIzQzOwomIzQzOwkJaWYgKCEoY2hpcC0mZ3Q7cG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgJmFtcDsgfnF1ZXVlX2JpdCkpIHsKJiM0MzsJCQllcnIgPSBtdjg4ZTZ4eHhfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKGNoaXAsIHBvcnQsIDApOwomIzQzOwkJCWlmIChlcnIpCiYjNDM7CQkJCWdvdG8gdW5sb2NrOwomIzQzOwkJfQomIzQzOwkJY2hpcC0mZ3Q7cG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgJmFtcDs9IH5xdWV1ZV9iaXQ7CiYjNDM7CQlnb3RvIHVubG9jazsKJiM0MzsJfQomIzQzOwomIzQzOwloaWxpbWl0ID0gY2JzLSZndDtoaWNyZWRpdCAmYW1wOyBxYXYtJmd0O2hpbGltaXRfbWFzazsKJiM0MzsJZXJyID0gbXY4OGU2eHh4X3BvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIGhpbGltaXRfcmVnLCBoaWxpbWl0KTsKJiM0MzsJaWYgKGVycikKJiM0MzsJCWdvdG8gdW5sb2NrOwomIzQzOwomIzQzOwllcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIHJhdGUpOwomIzQzOwlpZiAoZXJyKQomIzQzOwkJZ290byB1bmxvY2s7CiYjNDM7CiYjNDM7CWlmICghY2hpcC0mZ3Q7cG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMpIHsKJiM0MzsJCXU4IHNjaGVkX21vZGUgPSBjaGlwLSZndDtpbmZvLSZndDtudW1fdHhfcXVldWVzIC0gMTsKJiM0MzsKJiM0MzsJCWVyciA9IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCwKJiM0MzsJCQkJCQkJIHNjaGVkX21vZGUpOwomIzQzOwkJaWYgKGVycikgewomIzQzOwkJCW12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCByYXRlX3JlZywgMCk7CiYjNDM7CQkJZ290byB1bmxvY2s7CiYjNDM7CQl9CiYjNDM7CX0KJiM0MzsJY2hpcC0mZ3Q7cG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgfD0gcXVldWVfYml0OwomIzQzOwomIzQzO3VubG9jazoKJiM0MzsJbXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7CiYjNDM7CiYjNDM7CXJldHVybiBlcnI7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBpbnQgbXY4OGU2eHh4X3BvcnRfc2V0dXBfdGMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKJiM0MzsJCQkJICAgZW51bSB0Y19zZXR1cF90eXBlIHR5cGUsIHZvaWQgKnR5cGVfZGF0YSkKJiM0Mzt7CiYjNDM7CXN3aXRjaCAodHlwZSkgewomIzQzOwljYXNlIFRDX1NFVFVQX1FESVNDX0NCUzoKJiM0MzsJCXJldHVybiBtdjg4ZTZ4eHhfc2V0dXBfdGNfY2JzKGRzLCBwb3J0LCB0eXBlX2RhdGEpOwomIzQzOwlkZWZhdWx0OgomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwl9CiYjNDM7fQomIzQzOwogc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgbXY4OGU2eHh4X3BoeWxpbmtfbWFjX29wcyA9IHsKIAkubWFjX3NlbGVjdF9wY3MJCT0gbXY4OGU2eHh4X21hY19zZWxlY3RfcGNzLAogCS5tYWNfcHJlcGFyZQkJPSBtdjg4ZTZ4eHhfbWFjX3ByZXBhcmUsCkBAIC03MjM0LDYgJiM0Mzs3NDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBtdjg4ZTZ4eHhfc3dpdGNoX29wcyA9IHsKIAkucG9ydF9od3RzdGFtcF9nZXQJPSBtdjg4ZTZ4eHhfcG9ydF9od3RzdGFtcF9nZXQsCiAJLnBvcnRfdHh0c3RhbXAJCT0gbXY4OGU2eHh4X3BvcnRfdHh0c3RhbXAsCiAJLnBvcnRfcnh0c3RhbXAJCT0gbXY4OGU2eHh4X3BvcnRfcnh0c3RhbXAsCiYjNDM7CS5wb3J0X3NldHVwX3RjCQk9IG12ODhlNnh4eF9wb3J0X3NldHVwX3RjLAogCS5jbHNfZmxvd2VyX2FkZAkJPSBtdjg4ZTZ4eHhfY2xzX2Zsb3dlcl9hZGQsCiAJLmNsc19mbG93ZXJfZGVsICAgICAgICAgPSBtdjg4ZTZ4eHhfY2xzX2Zsb3dlcl9kZWwsCiAJLmdldF90c19pbmZvCQk9IG12ODhlNnh4eF9nZXRfdHNfaW5mbywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKaW5kZXggZTk2NmU3YzRjYzVkZS4uZDQyZDgzOWU2MzZiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKQEAgLTEyNSw2ICYjNDM7MTI1LDcgQEAgZW51bSBtdjg4ZTZ4eHhfZWRzYV9zdXBwb3J0IHsKIH07CiAKIHN0cnVjdCBtdjg4ZTZ4eHhfb3BzOwomIzQzO3N0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm87CiAKIHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyB7CiAJZW51bSBtdjg4ZTZ4eHhfZmFtaWx5IGZhbWlseTsKQEAgLTEzNiw2ICYjNDM7MTM3LDcgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHsKIAl1bnNpZ25lZCBpbnQgbnVtX2ludGVybmFsX3BoeXM7CiAJdW5zaWduZWQgaW50IG51bV9ncGlvOwogCXVuc2lnbmVkIGludCBudW1fdGNhbV9lbnRyaWVzOwomIzQzOwl1bnNpZ25lZCBpbnQgbnVtX3R4X3F1ZXVlczsKIAl1bnNpZ25lZCBpbnQgbWF4X3ZpZDsKIAl1bnNpZ25lZCBpbnQgbWF4X3NpZDsKIAl1bnNpZ25lZCBpbnQgcG9ydF9iYXNlX2FkZHI7CkBAIC0xNzYsNiAmIzQzOzE3OCw5IEBAIHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyB7CiAJLyogU3VwcG9ydHMgUFRQICovCiAJYm9vbCBwdHBfc3VwcG9ydDsKIAomIzQzOwkvKiA4MDIuMVFhdiBjcmVkaXQgYmFzZWQgc2hhcGluZyAqLwomIzQzOwljb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvICpxYXY7CiYjNDM7CiAJLyogSW50ZXJuYWwgUEhZIHN0YXJ0IGluZGV4LiAwIG1lYW5zIHRoYXQgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXQKIAkgKiBwb3J0IDAsIDEgbWVhbnMgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXQgcG9ydCAxLCBldGMKIAkgKi8KQEAgLTMwNCw2ICYjNDM7MzA5LDkgQEAgc3RydWN0IG12ODhlNnh4eF9wb3J0IHsKIAogCS8qIE1hY0F1dGggQnlwYXNzIGNvbnRyb2wgZmxhZyAqLwogCWJvb2wgbWFiOwomIzQzOwomIzQzOwkvKiBRdWV1ZXMgd2l0aCBDQlMgY3VycmVudGx5IGVuYWJsZWQuICovCiYjNDM7CXU4IGNic19hY3RpdmVfcXVldWVzOwogfTsKIAogZW51bSBtdjg4ZTZ4eHhfcmVnaW9uX2lkIHsKQEAgLTYwNiw2ICYjNDM7NjE0LDggQEAgc3RydWN0IG12ODhlNnh4eF9vcHMgewogCQkJCSAgIHNpemVfdCBzaXplKTsKIAogCWludCAoKnBvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpOwomIzQzOwlpbnQgKCpwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiYjNDM7CQkJCQl1OCBtb2RlKTsKIAlpbnQgKCpwb3J0X3BhdXNlX2xpbWl0KShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCB1OCBpbiwKIAkJCQl1OCBvdXQpOwogCWludCAoKnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7CkBAIC03NjMsNiAmIzQzOzc3MywxMCBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgewogCWludCAoKnRhaV9yZWFkKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCB1MTYgKmRhdGEsCiAJCQlpbnQgbGVuKTsKIAlpbnQgKCp0YWlfd3JpdGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIHUxNiBkYXRhKTsKJiM0MzsKJiM0MzsJLyogQWNjZXNzIHBvcnQtc2NvcGVkIDgwMi4xUWF2IHJlZ2lzdGVycyAqLwomIzQzOwlpbnQgKCpwb3J0X3Fhdl93cml0ZSkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsCiYjNDM7CQkJICAgICAgdTE2IGRhdGEpOwogfTsKIAogc3RydWN0IG12ODhlNnh4eF9wdHBfb3BzIHsKQEAgLTc5OCw2ICYjNDM7ODEyLDEzIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfdGNhbV9vcHMgewogCWludCAoKmZsdXNoX3RjYW0pKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7CiB9OwogCiYjNDM7c3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyB7CiYjNDM7CXUxNiByYXRlX3VuaXQ7IC8qIGluIGticHMgKi8KJiM0MzsJdTE2IHJhdGVfbWFzazsgLyogUVByaSBSYXRlIHZhbGlkIGJpdHMgbWFzayAqLwomIzQzOwl1MTYgaGlsaW1pdF9tYXNrOyAvKiBRUHJpIEhpTGltaXQgYml0cyBtYXNrKi8KJiM0MzsJdTggcXVldWVfbWFzazsgLyogc3VwcG9ydGVkIHF1ZXVlcyBiaXRtYXNrICovCiYjNDM7fTsKJiM0MzsKIHN0YXRpYyBpbmxpbmUgYm9vbCBtdjg4ZTZ4eHhfaGFzX3N0dShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApCiB7CiAJcmV0dXJuIGNoaXAtJmd0O2luZm8tJmd0O21heF9zaWQgJmd0OyAwICZhbXA7JmFtcDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmgKaW5kZXggZmY1YWRmN2M5YmMzYS4uZGY1MmZmM2FkYzg4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmgKQEAgLTE4Niw2ICYjNDM7MTg2LDkgQEAKICNkZWZpbmUgTVY4OEU2MzUyX0cyX0FWQl9DTURfQkxPQ0tfTUFTSwkJMHgwMGUwCiAjZGVmaW5lIE1WODhFNjM1Ml9HMl9BVkJfQ01EX0FERFJfTUFTSwkJMHgwMDFmCiAKJiM0MzsjZGVmaW5lIE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfUkFURShxdWV1ZSkJKCgocXVldWUpICZhbXA7IDB4NykgJmx0OyZsdDsgMSkKJiM0MzsjZGVmaW5lIE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfSElMSU1JVChxdWV1ZSkJKCgoKHF1ZXVlKSAmYW1wOyAweDcpICZsdDsmbHQ7IDEpICYjNDM7IDEpCiYjNDM7CiAvKiBPZmZzZXQgMHgxNzogQVZCIERhdGEgUmVnaXN0ZXIgKi8KICNkZWZpbmUgTVY4OEU2MzUyX0cyX0FWQl9EQVRBCQkweDE3CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuYwppbmRleCA2NTc3ODNlMDQzZmYxLi42YjU0ZTI3NWQyMWFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyX2F2Yi5jCkBAIC0xMTAsNiAmIzQzOzExMCwxNSBAQCBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9wdHBfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLAogCXJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpOwogfQogCiYjNDM7c3RhdGljIGludCBtdjg4ZTYzNTJfZzJfYXZiX3BvcnRfcWF2X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwKJiM0MzsJCQkJCSAgIGludCBwb3J0LCBpbnQgYWRkciwgdTE2IGRhdGEpCiYjNDM7ewomIzQzOwl1MTYgd3JpdGVvcCA9IE1WODhFNjM1Ml9HMl9BVkJfQ01EX09QX1dSSVRFIHwgKHBvcnQgJmx0OyZsdDsgOCkgfAomIzQzOwkJICAgICAgKE1WODhFNjM1Ml9HMl9BVkJfQ01EX0JMT0NLX1FBViAmbHQ7Jmx0OyA1KSB8IGFkZHI7CiYjNDM7CiYjNDM7CXJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpOwomIzQzO30KJiM0MzsKIHN0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLAogCQkJCSAgICAgdTE2ICpkYXRhLCBpbnQgbGVuKQogewpAQCAtMTQ5LDYgJiM0MzsxNTgsNyBAQCBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgbXY4OGU2MzUyX2F2Yl9vcHMgPSB7CiAJLnB0cF93cml0ZQkJPSBtdjg4ZTYzNTJfZzJfYXZiX3B0cF93cml0ZSwKIAkudGFpX3JlYWQJCT0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfcmVhZCwKIAkudGFpX3dyaXRlCQk9IG12ODhlNjM1Ml9nMl9hdmJfdGFpX3dyaXRlLAomIzQzOwkucG9ydF9xYXZfd3JpdGUJCT0gbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZSwKIH07CiAKIHN0YXRpYyBpbnQgbXY4OGU2MTY1X2cyX2F2Yl90YWlfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLApAQCAtMTc0LDYgJiM0MzsxODQsNyBAQCBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgbXY4OGU2MTY1X2F2Yl9vcHMgPSB7CiAJLnB0cF93cml0ZQkJPSBtdjg4ZTYzNTJfZzJfYXZiX3B0cF93cml0ZSwKIAkudGFpX3JlYWQJCT0gbXY4OGU2MTY1X2cyX2F2Yl90YWlfcmVhZCwKIAkudGFpX3dyaXRlCQk9IG12ODhlNjE2NV9nMl9hdmJfdGFpX3dyaXRlLAomIzQzOwkucG9ydF9xYXZfd3JpdGUJCT0gbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZSwKIH07CiAKIHN0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wb3J0X3B0cF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwKQEAgLTE5Nyw2ICYjNDM7MjA4LDE1IEBAIHN0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wb3J0X3B0cF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsCiAJcmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7CiB9CiAKJiM0MztzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLAomIzQzOwkJCQkJICAgaW50IHBvcnQsIGludCBhZGRyLCB1MTYgZGF0YSkKJiM0Mzt7CiYjNDM7CXUxNiB3cml0ZW9wID0gTVY4OEU2MzkwX0cyX0FWQl9DTURfT1BfV1JJVEUgfCAocG9ydCAmbHQ7Jmx0OyA4KSB8CiYjNDM7CQkgICAgICAoTVY4OEU2MzUyX0cyX0FWQl9DTURfQkxPQ0tfUUFWICZsdDsmbHQ7IDUpIHwgYWRkcjsKJiM0MzsKJiM0MzsJcmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3B0cF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsCiAJCQkJICAgICB1MTYgKmRhdGEsIGludCBsZW4pCiB7CkBAIC0yMzYsNCAmIzQzOzI1Niw1IEBAIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyBtdjg4ZTYzOTBfYXZiX29wcyA9IHsKIAkucHRwX3dyaXRlCQk9IG12ODhlNjM5MF9nMl9hdmJfcHRwX3dyaXRlLAogCS50YWlfcmVhZAkJPSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV9yZWFkLAogCS50YWlfd3JpdGUJCT0gbXY4OGU2MzkwX2cyX2F2Yl90YWlfd3JpdGUsCiYjNDM7CS5wb3J0X3Fhdl93cml0ZQkJPSBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcWF2X3dyaXRlLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMKaW5kZXggZWExZmFiNzE5NjhhMC4uNzU4YjhkNDFmNDg1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMKQEAgLTEzMjMsNiAmIzQzOzEzMjMsNTEgQEAgaW50IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpCiAJCQkJICAgIDB4MDAwMSk7CiB9CiAKJiM0MztpbnQgbXY4OGU2MzUyX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LAomIzQzOwkJCQkgICAgICAgdTggbW9kZSkKJiM0Mzt7CiYjNDM7CXUxNiByZWc7CiYjNDM7CWludCBlcnI7CiYjNDM7CiYjNDM7CWlmIChtb2RlICZndDsgMykKJiM0MzsJCXJldHVybiAtRUlOVkFMOwomIzQzOwomIzQzOwllcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDIsCiYjNDM7CQkJCSAgJmFtcDtyZWcpOwomIzQzOwlpZiAoZXJyKQomIzQzOwkJcmV0dXJuIGVycjsKJiM0MzsKJiM0MzsJcmVnICZhbXA7PSB+TVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9NQVNLOwomIzQzOwlyZWcgfD0gbW9kZSAmbHQ7Jmx0OyBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX1NISUZUOwomIzQzOwomIzQzOwlyZXR1cm4gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwKJiM0MzsJCQkJICAgIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDIsIHJlZyk7CiYjNDM7fQomIzQzOwomIzQzO2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiYjNDM7CQkJCSAgICAgICB1OCBtb2RlKQomIzQzO3sKJiM0MzsJdTE2IHJlZzsKJiM0MzsJaW50IGVycjsKJiM0MzsKJiM0MzsJaWYgKG1vZGUgJmd0OyBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSykKJiM0MzsJCXJldHVybiAtRUlOVkFMOwomIzQzOwomIzQzOwlyZWcgPSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfVVBEQVRFIHwKJiM0MzsJICAgICAgKE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRSAmbHQ7Jmx0OwomIzQzOwkgICAgICAgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1BUUl9TSElGVCkgfAomIzQzOwkgICAgICAobW9kZSAmYW1wOyBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSyk7CiYjNDM7CiYjNDM7CWVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTCwKJiM0MzsJCQkJICAgcmVnKTsKJiM0MzsJaWYgKGVycikKJiM0MzsJCXJldHVybiBlcnI7CiYjNDM7CiYjNDM7CXJldHVybiBtdjg4ZTZ4eHhfcG9ydF93YWl0X2JpdChjaGlwLCBwb3J0LCBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVEwsCiYjNDM7CQkJCSAgICAgICBfX2JmX3NoZihNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfVVBEQVRFKQomIzQzOwkJCQkgICAgICAgLCAwKTsKJiM0Mzt9CiYjNDM7CiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi8KIAogaW50IG12ODhlNnh4eF9wb3J0X3NldF9hc3NvY192ZWN0b3Ioc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKQEAgLTE3MjcsMyAmIzQzOzE3NzIsMjEgQEAgaW50IG12ODhlNjM5M3hfcG9ydF9zZXRfcG9saWN5KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiAKIAlyZXR1cm4gbXY4OGU2MzkzeF9wb3J0X3BvbGljeV93cml0ZShjaGlwLCBwb3J0LCBwdHIsIHJlZyk7CiB9CiYjNDM7CiYjNDM7aW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkciwKJiM0MzsJCQkgICAgIHUxNiBkYXRhKQomIzQzO3sKJiM0MzsJaWYgKCFjaGlwLSZndDtpbmZvLSZndDtvcHMtJmd0O2F2Yl9vcHMtJmd0O3BvcnRfcWF2X3dyaXRlKQomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwomIzQzOwlyZXR1cm4gY2hpcC0mZ3Q7aW5mby0mZ3Q7b3BzLSZndDthdmJfb3BzLSZndDtwb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCBhZGRyLCBkYXRhKTsKJiM0Mzt9CiYjNDM7CiYjNDM7aW50IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKJiM0MzsJCQkJICAgICAgIHU4IG1vZGUpCiYjNDM7ewomIzQzOwlpZiAoIWNoaXAtJmd0O2luZm8tJmd0O29wcy0mZ3Q7cG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKQomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwomIzQzOwlyZXR1cm4gY2hpcC0mZ3Q7aW5mby0mZ3Q7b3BzLSZndDtwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCwgbW9kZSk7CiYjNDM7fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaAppbmRleCA1YjZjZGU5Zjc0MDZmLi5hMzgwZjM1NmViODNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaApAQCAtMjQxLDYgJiM0MzsyNDEsMTggQEAKIAogLyogT2Zmc2V0IDB4MEE6IEVncmVzcyBSYXRlIENvbnRyb2wgMiAqLwogI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyCQkweDBhCiYjNDM7I2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX01BU0sJMHgzMDAwCiYjNDM7I2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX1NISUZUCTEyCiYjNDM7CiYjNDM7LyogT2Zmc2V0IDB4MUM6IFBvcnQgUXVldWUgQ29udHJvbCAqLwomIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMCQkJMHgxYwomIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURQkJCTB4ODAwMAomIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1BUUl9NQVNLCQkweDdmMDAKJiM0MzsjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfU0hJRlQJCTgKJiM0MzsjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9EQVRBX01BU0sJCTB4MDBmZgomIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFCQkweDAwCiYjNDM7I2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSwkJMHgwNwomIzQzOwogCiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi8KICNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfQVNTT0NfVkVDVE9SCQkJMHgwYgpAQCAtNTYxLDYgJiM0Mzs1NzMsMTAgQEAgaW50IG12ODhlNjE2NV9wb3J0X3NldF9qdW1ib19zaXplKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiAJCQkJICBzaXplX3Qgc2l6ZSk7CiBpbnQgbXY4OGU2MDk1X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7CiBpbnQgbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7CiYjNDM7aW50IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKJiM0MzsJCQkJICAgICAgIHU4IG1vZGUpOwomIzQzO2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiYjNDM7CQkJCSAgICAgICB1OCBtb2RlKTsKIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfYXNzb2NfdmVjdG9yKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiAJCQkJICAgIHUxNiBwYXYpOwogaW50IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIHU4IGluLApAQCAtNjA1LDUgJiM0Mzs2MjEsOSBAQCBpbnQgbXY4OGU2eHh4X3BvcnRfaGlkZGVuX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYmxvY2ssIGludCBwb3J0LAogCQkJICAgICAgIGludCByZWcsIHUxNiAqdmFsKTsKIAogaW50IG12ODhlNnh4eF9wb3J0X2VuYWJsZV90Y2FtKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpOwomIzQzO2ludCBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsCiYjNDM7CQkJICAgICB1MTYgZGF0YSk7CiYjNDM7aW50IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKJiM0MzsJCQkJICAgICAgIHU4IG1vZGUpOwogCiAjZW5kaWYgLyogX01WODhFNlhYWF9QT1JUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oIGIvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmgKaW5kZXggMThhNDE5Y2Q5ZDk0OS4uZDM1Yzg3MDA0YzI3OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmgKQEAgLTE1MCw2ICYjNDM7MTUwLDcgQEAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQgewogCXMzMiBsb2NyZWRpdDsKIAlzMzIgaWRsZXNsb3BlOwogCXMzMiBzZW5kc2xvcGU7CiYjNDM7CXN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjazsKIH07CiAKIHN0cnVjdCB0Y19ldGZfcW9wdF9vZmZsb2FkIHsKZGlmZiAtLWdpdCBhL25ldC9kc2EvdGFnX2RzYS5jIGIvbmV0L2RzYS90YWdfZHNhLmMKaW5kZXggZDVmZmVlMzVmYmI1My4uMmJiNzFjZDM0M2U3OSAxMDA2NDQKLS0tIGEvbmV0L2RzYS90YWdfZHNhLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2RzYS90YWdfZHNhLmMKQEAgLTE3OSw4ICYjNDM7MTc5LDE3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZHNhX3htaXRfbGwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCWRzYV9oZWFkZXJbMl0gJmFtcDs9IH4weDEwOwogCQl9CiAJfSBlbHNlIHsKJiM0MzsJCXUxNiBxdWV1ZSA9IHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpICZhbXA7IDB4NzsKIAkJdTE2IHZpZDsKIAomIzQzOwkJLyogVGhlIFBSSSBmaWVsZCBpcyAzIGJpdHMuIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiB0aGUKJiM0MzsJCSAqIDIgaGlnaGVzdCBiaXRzIHNwZWNpZnkgdGhlIGVncmVzcyBxdWV1ZSBpbiBGcm9tX0NQVSBEU0EKJiM0MzsJCSAqIHRhZ2dlZCBmcmFtZXMuIE9uIGRldmljZXMgd2l0aCA4IHF1ZXVlcyBpdCYjMzk7cyBwb3NzaWJsZSB0bwomIzQzOwkJICogc2VuZCB0byB0aGUgOCBxdWV1ZXMsIHdoaWNoIG1lYW5zIHRoZSAzIGJpdHMgYXJlIHVzZWQuCiYjNDM7CQkgKi8KJiM0MzsJCWlmIChkcC0mZ3Q7ZHMtJmd0O251bV90eF9xdWV1ZXMgPT0gNCkKJiM0MzsJCQlxdWV1ZSAmbHQ7Jmx0Oz0gMTsKJiM0MzsKIAkJdmlkID0gYnJfZGV2ID8gTVY4OEU2WFhYX1ZJRF9CUklER0VEIDogTVY4OEU2WFhYX1ZJRF9TVEFOREFMT05FOwogCiAJCXNrYl9wdXNoKHNrYiwgRFNBX0hMRU4gJiM0MzsgZXh0cmEpOwpAQCAtMTkxLDcgJiM0MzsyMDAsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmRzYV94bWl0X2xsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAkJZHNhX2hlYWRlclswXSA9IChjbWQgJmx0OyZsdDsgNikgfCB0YWdfZGV2OwogCQlkc2FfaGVhZGVyWzFdID0gdGFnX3BvcnQgJmx0OyZsdDsgMzsKLQkJZHNhX2hlYWRlclsyXSA9IHZpZCAmZ3Q7Jmd0OyA4OwomIzQzOwkJZHNhX2hlYWRlclsyXSA9IChxdWV1ZSAmbHQ7Jmx0OyA1KSB8IHZpZCAmZ3Q7Jmd0OyA4OwogCQlkc2FfaGVhZGVyWzNdID0gdmlkICZhbXA7IDB4ZmY7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2Nicy5jIGIvbmV0L3NjaGVkL3NjaF9jYnMuYwppbmRleCAxYzkzNDY5YzU2ZTNkLi44N2MyZWRhMTA4YzhjIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2Nicy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY2hlZC9zY2hfY2JzLmMKQEAgLTMwNywxMCAmIzQzOzMwNywxMiBAQCBzdGF0aWMgaW50IGNic19lbmFibGVfb2ZmbG9hZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgY2JzX3NjaGVkX2RhdGEgKnEsCiAJY2JzLmxvY3JlZGl0ID0gb3B0LSZndDtsb2NyZWRpdDsKIAljYnMuaWRsZXNsb3BlID0gb3B0LSZndDtpZGxlc2xvcGU7CiAJY2JzLnNlbmRzbG9wZSA9IG9wdC0mZ3Q7c2VuZHNsb3BlOwomIzQzOwljYnMuZXh0YWNrID0gZXh0YWNrOwogCiAJZXJyID0gb3BzLSZndDtuZG9fc2V0dXBfdGMoZGV2LCBUQ19TRVRVUF9RRElTQ19DQlMsICZhbXA7Y2JzKTsKIAlpZiAoZXJyICZsdDsgMCkgewotCQlOTF9TRVRfRVJSX01TRyhleHRhY2ssICYjMzQ7U3BlY2lmaWVkIGRldmljZSBmYWlsZWQgdG8gc2V0dXAgY2JzIGhhcmR3YXJlIG9mZmxvYWQmIzM0Oyk7CiYjNDM7CQlOTF9TRVRfRVJSX01TR19XRUFLKGV4dGFjaywKJiM0MzsJCQkJICAgICYjMzQ7U3BlY2lmaWVkIGRldmljZSBmYWlsZWQgdG8gc2V0dXAgY2JzIGhhcmR3YXJlIG9mZmxvYWQmIzM0Oyk7CiAJCXJldHVybiBlcnI7CiAJfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2NjQzCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIExpbnV4IEtlcm5lbCBQYXRjaCBmb3IgQ0JTIE9mZmxvYWRpbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEga2VybmVsIHBhdGNoIGhlcmUuIEl0JiMzOTtzIG1ha2luZyBmdW5jdGlvbmFsIGNoYW5nZXMsIHNwZWNpZmljYWxseSBhZGRpbmcgb2ZmbG9hZGluZyBzdXBwb3J0IGZvciA4MDIuMVFhdiBDcmVkaXQgQmFzZWQgU2hhcGVyIChDQlMpIHRvIHRoZSBNYXJ2ZWxsIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlci4gVGhlIGZpbGVzIG1vZGlmaWVkIGdpdmUgbWUgYSBjbGVhciBwaWN0dXJlOiBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9gIC0gYSBidW5jaCBvZiB0aGUgY29yZSBkcml2ZXIgZmlsZXMgdGhlcmUgLSB0aGVuLCBpbXBvcnRhbnRseSwgYGluY2x1ZGUvbmV0L3BrdF9zY2hlZC5oYCwgYW5kIGBuZXQvZHNhL3RhZ19kc2EuY2AgYW5kIGBuZXQvc2NoZWQvc2NoX2Nicy5jYC4gVGhpcyBpcyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLCBhcyBpdCBpcyBtb2RpZnlpbmcgdGhlIERTQSB0YWcgYW5kIENCUyBjb2RlIGZvciBGcm9tX0NQVSBmcmFtZXMuCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIEkgZXZlbiAqdGVzdCogdGhpcyBlZmZlY3RpdmVseT8gVGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBpcyBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLCBzbyB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIGhhcmR3YXJlIGRlcGVuZGVuY3kg4oCTIHRoZXNlIERTQSBkcml2ZXJzIGFyZSB1c3VhbGx5IGluIGVtYmVkZGVkIHN5c3RlbXMgd2l0aCBwaHlzaWNhbCBzd2l0Y2ggY2hpcHMuIEkgbmVlZCB0byBiZSBhYmxlIHRvIHJlcGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSB0aGF0IHRoZSBwYXRjaCBpbnRyb2R1Y2VzLCB3aGljaCBpcyBub3cgQ0JTIG9mZmxvYWRpbmcuCgpDYW4gSSBnZXQgdGhpcyBydW5uaW5nIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGUgTWFydmVsbCA4OEU2eHh4IGRpcmVjdGx5LiBIb3dldmVyLCB0aGUgcGF0Y2ggYWxzbyB0b3VjaGVzIHRoZSBjb3JlIG5ldHdvcmsgc2NoZWR1bGluZyAoYG5ldC9zY2hlZC9zY2hfY2JzLmNgKSBhbmQgdGhlIERTQSB0YWdnaW5nIChgbmV0L2RzYS90YWdfZHNhLmNgKSBsYXllcnMuIFRoZSBDQlMgcWRpc2MgaXRzZWxmIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLiBOb3csIGB0YWdfZHNhLmNgIGlzIHRoZSBEU0EgdGFnZ2luZyBwcm90b2NvbC4gSSBtYXkgYmUgYWJsZSB0byBpbnN0YW50aWF0ZSBhIGR1bW15IERTQSBzd2l0Y2gsIG9yIGV2ZW4gYSBzb2Z0d2FyZSBEU0Egc3dpdGNoIHRvIG1ha2UgdGhlIGNvZGUgcmVhY2hhYmxlLgoKQWgsIHdhaXQgYSBtaW51dGUsIHdhc24mIzM5O3QgdGhlcmUgc29tZXRoaW5nIGFib3V0IGBkc2FfbG9vcGA/IFRoYXQmIzM5O3MgcmlnaHQsIGBkc2FfbG9vcGAgaXMgYSBtb2NrIERTQSBkcml2ZXIsIHVzZWQgZm9yIHRlc3RpbmchIExldCBtZSBkb3VibGUgY2hlY2sgaWYgYGRzYV9sb29wYCB1c2VzIGB0YWdfZHNhLmNgLiBJZiBpdCBkb2VzLCBJIGNhbiBwcm9iYWJseSBnZXQgYSBnb29kIHRlc3QgZW52aXJvbm1lbnQgc2V0IHVwIHdpdGggdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3RhZ19kc2EmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc2NTQKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpczogKipEZWNvZGluZyB0aGUgYGRzYV9sb29wYCBUYWcgUHJvdG9jb2wqKgoKSSBuZWVkIHRvIHF1aWNrbHkgZmlndXJlIG91dCBob3cgdGhlIGBkc2FfbG9vcGAgdGFnIHByb3RvY29sIHdvcmtzLiBVbmRlcnN0YW5kaW5nIGl0cyBpbm5lciB3b3JraW5ncyBpcyBjcnVjaWFsIGZvciBbKippbnNlcnQgdXNlciYjMzk7cyBzcGVjaWZpYyBmaWVsZCBoZXJlKiogLSBlLmcuLCBvcHRpbWl6aW5nIHBlcmZvcm1hbmNlLCBkZWJ1Z2dpbmcgcmVsYXRlZCBzeXN0ZW1zLCBlbnN1cmluZyBjb21wYXRpYmlsaXR5XS4gU28sIEkmIzM5O2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGl0cyBzcGVjaWZpYyB0YWcgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIFdoZXJlIGRvIEkgZmluZCB0aGF0IGluZm9ybWF0aW9uPyBMZXQgbWUgbG9vayBhdCB0aGUgZG9jdW1lbnRhdGlvbiwgdGhlIGNvZGUgaXRzZWxmLCBvciByZWxhdGVkIHNwZWNpZmljYXRpb25zIHRvIGRldGVybWluZSBpdHMgZGVzaWduIGFuZCB1c2FnZS4gVGhpcyBpcyBzdGVwIG9uZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtEU0FfVEFHX1BST1RPJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9MTI1PXN0YXRpYyBlbnVtIGRzYV90YWdfcHJvdG9jb2wgZHNhX2xvb3BfZ2V0X3Byb3RvY29sKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzAtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMzE6XHRyZXR1cm4gRFNBX1RBR19QUk9UT19OT05FO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTMyLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzk1NQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDMxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERTQSBMb29wIGFuZCBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgZHNhX2xvb3BgIGFuZCB0aGUgdXNlIG9mIGBEU0FfVEFHX1BST1RPX05PTkVgLiBUaGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gSSByZWNhbGwgdGhlcmUmIzM5O3MgYSByZWxhdGVkIGBkc2FfbG9vcF9iZGluZm9gIHN0cnVjdCwgYnV0IHRoYXQmIzM5O3Mgbm90IHJlbGV2YW50IGhlcmU7IGBkc2FfbG9vcGAgaXRzZWxmIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEkgdGhlbiBsb29rZWQgb3ZlciBhdCBgbmV0L3NjaGVkL3NjaF9jYnMuY2AsIGJ1dCB0aGUgY2hhbmdlIHRoZXJlIHNlZW1zIGxpbWl0ZWQsIGp1c3QgcHJvcGFnYXRpbmcgdGhlIGBleHRhY2tgIGRvd24gdG8gdGhlIGRyaXZlci4KClRoZSBjb3JlIGxvZ2ljLCBhcyBJIHN1c3BlY3RlZCwgcmVzaWRlcyBpbiBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9gLCBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlci4gVGhlIHF1ZXN0aW9uIG5vdyBpczogY2FuIEkgdHJpZ2dlciB0aGlzIGNvZGUgcGF0aCB3aXRoaW4gUUVNVT8gQW5kIHRoZSBhbnN3ZXIsIGFzIEkga25vdyBpdCwgaXMgYSBjbGVhciBuby4gSXQgcmVsaWVzIG9uIHBoeXNpY2FsIGhhcmR3YXJlLCBzcGVjaWZpY2FsbHkgYW4gTURJTyBidXMgY29ubmVjdGVkIHRvIGEgc3BlY2lmaWMgc3dpdGNoIGNoaXAuIEl0JiMzOTtzIHRoYXQgZGlyZWN0IGhhcmR3YXJlIGludGVyYWN0aW9uIHRoYXQgbWFrZXMgaXQgcHJvYmxlbWF0aWMuCgpTbywgdGhlIG5leHQgcXVlc3Rpb24gaXMgY2FuIEkgZW11bGF0ZSB0aGUgTURJTyBidXMgYW5kIHN3aXRjaCBjaGlwPyAgTmF0aXZlbHksIHdpdGhvdXQgb3V0LW9mLXRyZWUgcGF0Y2hlcywgdGhlIGFuc3dlciBpcyBzdGlsbCBubyB3aXRoaW4gc3RhbmRhcmQgUUVNVS4gSG93ZXZlciwgY291bGQgc3l6a2FsbGVyIGJlIHVzZWQgdG8gZnV6eiBpdCBieSBtb2NraW5nIE1ESU8gZGV2aWNlcyBvciBieSBpbnN0YW50aWF0aW5nIGl0IHRocm91Z2ggYSBzb2Z0d2FyZSBpbnRlcmZhY2U/IEkgdGhvdWdodCBzeXprYWxsZXIgaGFkIHNvbWUgc3VwcG9ydCBmb3IgTURJTy9QSFkgZnV6emluZywgYnV0IG5vLCBub3QgcmVhbGx5LiBNRElPIGRldmljZXMgYXJlIHR5cGljYWxseSBwcm9iZWQgdmlhIHRoZSBkZXZpY2UgdHJlZSBvciBwbGF0Zm9ybSBkYXRhLCBhIG1ldGhvZCBvZiBoYXJkd2FyZSBhYnN0cmFjdGlvbiwgd2hpY2ggYWdhaW4gbWFrZXMgZW11bGF0aW9uIGRpZmZpY3VsdC4KCkkmIzM5O20gbm93IHJlY29uc2lkZXJpbmcgaWYgZnV6emluZyB0aGUgcGF0Y2ggaXMgZXZlbiB3b3J0aCB0aGUgZWZmb3J0LiBUaGUgY2hhbmdlcyBpbiBgbmV0L2RzYS90YWdfZHNhLmNgIGFyZSB3aXRoaW4gYGRzYV94bWl0X2xsYC4gIFRoZSBxdWVzdGlvbiBpczogaXMgYHRhZ19kc2EuY2AgdXNlZCBieSAqYW55KiBvdGhlciBkcml2ZXIgdGhhdCYjMzk7cyBlbXVsYXRhYmxlPyBUaGF0IGlzIHRoZSByZWFsIHRlc3Qgb2Ygd2hldGhlciB0aGlzIGVmZm9ydCBpcyB3b3J0aCBpdCBvciBub3QuIEkmIzM5O2xsIG5lZWQgdG8gcmVzZWFyY2ggdGhhdCBmdXJ0aGVyIHRvIGRldGVybWluZSB0aGUgcG90ZW50aWFsIHJlYWNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0RTQV9UQUdfUFJPVE9fRFNBJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zMjYzPXN0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwX3BvcnRfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNzEtXHQvKiBTZXR1cCBDUFUgcG9ydCBtb2RlIGRlcGVuZGluZyBvbiBpdHMgc3VwcG9ydGVkIHRhZyBmb3JtYXQgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMyNzI6XHRpZiAoY2hpcC1cdTAwM2V0YWdfcHJvdG9jb2wgPT0gRFNBX1RBR19QUk9UT19EU0EpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjczLVx0XHRyZXR1cm4gbXY4OGU2eHh4X3NldF9wb3J0X21vZGVfZHNhKGNoaXAsIHBvcnQpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTY3MjQ9c3RhdGljIGludCBtdjg4ZTZ4eHhfY2hhbmdlX3RhZ19wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc0My1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzQ0Olx0Y2FzZSBEU0FfVEFHX1BST1RPX0RTQTpcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3NDUtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc0ODk9c3RhdGljIGludCBtdjg4ZTZ4eHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTYtXHRlbHNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTU3Olx0XHRjaGlwLVx1MDAzZXRhZ19wcm90b2NvbCA9IERTQV9UQUdfUFJPVE9fRFNBO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1OC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIwMQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDExOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERTQSBUYWcgUHJvdG9jb2wgZm9yIFZpcnR1YWxpemF0aW9uKioKCk9rYXksIHNvIGl0IGxvb2tzIGxpa2UgdGhpcyBgRFNBX1RBR19QUk9UT19EU0FgIGlzIGV4Y2x1c2l2ZWx5IHRpZWQgdG8gdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciwgaW50ZXJlc3RpbmcuIE5vdyB0aGF0IEkgdGhpbmsgYWJvdXQgaXQsIGB0YWdfZHNhLmNgIGlzLCB3ZWxsLCBpdCYjMzk7cyB0aGUgRFNBIHRhZyBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbiBpdHNlbGYuIEdpdmVuIHRoYXQgYG12ODhlNnh4eGAgaXMgYSBoYXJkd2FyZSBkcml2ZXIsIGFuZCB0aGVyZWZvcmUgYSBwYWluIHRvIGVtdWxhdGUsIGFuZCBzaW5jZSB0aGUgbW9kaWZpY2F0aW9ucyBpbiBgdGFnX2RzYS5jYCBzZWVtIHRhaWxvci1tYWRlIGZvciBpdCAob3IgYXQgbGVhc3Qgc29sZWx5IHVzZWQgYnkgaXQgY3VycmVudGx5KSwgdGhlcmXigJlzIHJlYWxseSBubyBwcmFjdGljYWwgd2F5IHRvIHRvdWNoIHRoZSBjb3JlIG9mIHRoZXNlIGNoYW5nZXMgaW4gYW55IHZpcnR1YWxpemVkIHNldHVwLiBUaGUgd2hvbGUgdGhpbmcgaXMgaGFyZHdhcmUtc3BlY2lmaWMuIEkgZ3Vlc3MgaXTigJlzIHN0aWxsIHdvcnRoIGEgcXVpY2sgZG91YmxlLWNoZWNrLCB0aG91Z2gsIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoYXQgYHRhZ19kc2EuY2AgKmlzbiYjMzk7dCogc25lYWtpbmcgaW4gc29tZXdoZXJlIGVsc2UuIEFsd2F5cyBnb29kIHRvIHJ1bGUgb3V0IHRoZSB1bmV4cGVjdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtEU0FfVEFHX1BST1RPX0RTQSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zMjYzPXN0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwX3BvcnRfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNzEtXHQvKiBTZXR1cCBDUFUgcG9ydCBtb2RlIGRlcGVuZGluZyBvbiBpdHMgc3VwcG9ydGVkIHRhZyBmb3JtYXQgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMyNzI6XHRpZiAoY2hpcC1cdTAwM2V0YWdfcHJvdG9jb2wgPT0gRFNBX1RBR19QUk9UT19EU0EpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjczLVx0XHRyZXR1cm4gbXY4OGU2eHh4X3NldF9wb3J0X21vZGVfZHNhKGNoaXAsIHBvcnQpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTY3MjQ9c3RhdGljIGludCBtdjg4ZTZ4eHhfY2hhbmdlX3RhZ19wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc0My1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzQ0Olx0Y2FzZSBEU0FfVEFHX1BST1RPX0RTQTpcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3NDUtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc0ODk9c3RhdGljIGludCBtdjg4ZTZ4eHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTYtXHRlbHNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTU3Olx0XHRjaGlwLVx1MDAzZXRhZ19wcm90b2NvbCA9IERTQV9UQUdfUFJPVE9fRFNBO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1OC1cbi0tXG5pbmNsdWRlL25ldC9kc2EuaD0yNj1zdHJ1Y3QgdGNfYWN0aW9uO1xuLS1cbmluY2x1ZGUvbmV0L2RzYS5oLTMwLSNkZWZpbmUgRFNBX1RBR19QUk9UT19CUkNNX1BSRVBFTkRfVkFMVUVcdDJcbmluY2x1ZGUvbmV0L2RzYS5oOjMxOiNkZWZpbmUgRFNBX1RBR19QUk9UT19EU0FfVkFMVUVcdFx0XHQzXG5pbmNsdWRlL25ldC9kc2EuaC0zMi0jZGVmaW5lIERTQV9UQUdfUFJPVE9fRURTQV9WQUxVRVx0XHQ0XG4tLVxuaW5jbHVkZS9uZXQvZHNhLmg9NjQ9ZW51bSBkc2FfdGFnX3Byb3RvY29sIHtcbi0tXG5pbmNsdWRlL25ldC9kc2EuaC02OS1cdERTQV9UQUdfUFJPVE9fQlJDTV9QUkVQRU5EXHQ9IERTQV9UQUdfUFJPVE9fQlJDTV9QUkVQRU5EX1ZBTFVFLFxuaW5jbHVkZS9uZXQvZHNhLmg6NzA6XHREU0FfVEFHX1BST1RPX0RTQVx0XHQ9IERTQV9UQUdfUFJPVE9fRFNBX1ZBTFVFLFxuaW5jbHVkZS9uZXQvZHNhLmgtNzEtXHREU0FfVEFHX1BST1RPX0VEU0FcdFx0PSBEU0FfVEFHX1BST1RPX0VEU0FfVkFMVUUsXG4tLVxubmV0L2RzYS90YWdfZHNhLmM9MzYwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX2RldmljZV9vcHMgZHNhX25ldGRldl9vcHMgPSB7XG5uZXQvZHNhL3RhZ19kc2EuYy0zNjEtXHQubmFtZVx0ICA9IERTQV9OQU1FLFxubmV0L2RzYS90YWdfZHNhLmM6MzYyOlx0LnByb3RvXHQgID0gRFNBX1RBR19QUk9UT19EU0EsXG5uZXQvZHNhL3RhZ19kc2EuYy0zNjMtXHQueG1pdFx0ICA9IGRzYV94bWl0LFxuLS1cbm5ldC9kc2EvdGFnX2RzYS5jPTM2OD1EU0FfVEFHX0RSSVZFUihkc2FfbmV0ZGV2X29wcyk7XG5uZXQvZHNhL3RhZ19kc2EuYzozNjk6TU9EVUxFX0FMSUFTX0RTQV9UQUdfRFJJVkVSKERTQV9UQUdfUFJPVE9fRFNBLCBEU0FfTkFNRSk7XG5uZXQvZHNhL3RhZ19kc2EuYy0zNzAtI2VuZGlmXHQvKiBDT05GSUdfTkVUX0RTQV9UQUdfRFNBICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNDc4CgkJCQkJCQlvdXRwdXQ6IDE1MwoJCQkJCQkJdGhvdWdodHM6IDM4NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFdvcnRoaW5lc3MqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBEU0FfVEFHX1BST1RPX0RTQWAgaXMgb25seSB1c2VkIHdpdGhpbiB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCBhbmQgdGhhdCYjMzk7cyBhIGtleSBvYnNlcnZhdGlvbi4gVGhlbiBJIHNlZSB0aGUgY2hhbmdlIGluIGBuZXQvc2NoZWQvc2NoX2Nicy5jYC4gSG1tLCBzZWVtcyBxdWl0ZSBzbWFsbCwganVzdCBwYXNzaW5nIGBleHRhY2tgIGFuZCBzd2l0Y2hpbmcgdG8gYE5MX1NFVF9FUlJfTVNHX1dFQUtgLiBUaGVyZSBpc24mIzM5O3QgYW55IG5ldyBsb2dpYyBoZXJlIHRoYXQgc2NyZWFtcyBvdXQgZm9yIGZ1enppbmcgYXR0ZW50aW9uLgoKTm93LCBsZXQmIzM5O3Mgem9vbSBvdXQuIFRoZSBidWxrIG9mIHRoZSBwYXRjaCBsb29rcyB0byBiZSBjb250YWluZWQgd2l0aGluIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2AgYW5kIGBuZXQvZHNhL3RhZ19kc2EuY2AuIFRoZXNlIGFyZSwgYXMgZmFyIGFzIEkgY2FuIHRlbGwsIGRlYWxpbmcgd2l0aCBoYXJkd2FyZSwgc3BlY2lmaWNhbGx5IE1hcnZlbGwgc3dpdGNoIGhhcmR3YXJlLiBUaGF0JiMzOTtzIGEgaHVnZSBjbHVlIHJpZ2h0IHRoZXJlLiBHaXZlbiB0aGF0IEkmIzM5O20gd29ya2luZyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IC0gc29tZXRoaW5nIGxpa2UgUUVNVSAtIHRoaXMgaGFyZHdhcmUgaXMgaW5hY2Nlc3NpYmxlLiBUaGUgcGF0Y2ggY2FuJiMzOTt0IGJlIHJlYWNoZWQuCgpTbywgdGFraW5nIGFsbCB0aGlzIGludG8gYWNjb3VudCwgSSYjMzk7bSBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXRjaCBpc24mIzM5O3Qgc29tZXRoaW5nIEkgbmVlZCB0byBpbnZlc3QgdGltZSBpbiBmdXp6aW5nLiBJdCYjMzk7cyBzaW1wbHkgbm90IHJlbGV2YW50IHdpdGhpbiB0aGUgY29uc3RyYWludHMgb2YgbXkgY3VycmVudCBzZXR1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBwcmltYXJpbHkgYWRkcyA4MDIuMVFhdiBDQlMgb2ZmbG9hZGluZyBzdXBwb3J0IHRvIHRoZSBNYXJ2ZWxsIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBkcml2ZXIgY2Fubm90IGJlIGV4ZXJjaXNlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGUgY2hhbmdlcyBpbiBuZXQvZHNhL3RhZ19kc2EuYyBhcmUgc3BlY2lmaWMgdG8gdGhlIERTQSB0YWcgcHJvdG9jb2wgdXNlZCBleGNsdXNpdmVseSBieSB0aGlzIGRyaXZlci4gVGhlIG1vZGlmaWNhdGlvbiBpbiBuZXQvc2NoZWQvc2NoX2Nicy5jIGlzIGEgdHJpdmlhbCBjaGFuZ2UgdG8gcGFzcyBleHRhY2sgZG93biB0byB0aGUgZHJpdmVyIGFuZCB1c2UgTkxfU0VUX0VSUl9NU0dfV0VBSywgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGxvZ2ljIHJlcXVpcmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcHJpbWFyaWx5IGFkZHMgODAyLjFRYXYgQ0JTIG9mZmxvYWRpbmcgc3VwcG9ydCB0byB0aGUgTWFydmVsbCBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgZHJpdmVyIGNhbm5vdCBiZSBleGVyY2lzZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlIGNoYW5nZXMgaW4gbmV0L2RzYS90YWdfZHNhLmMgYXJlIHNwZWNpZmljIHRvIHRoZSBEU0EgdGFnIHByb3RvY29sIHVzZWQgZXhjbHVzaXZlbHkgYnkgdGhpcyBkcml2ZXIuIFRoZSBtb2RpZmljYXRpb24gaW4gbmV0L3NjaGVkL3NjaF9jYnMuYyBpcyBhIHRyaXZpYWwgY2hhbmdlIHRvIHBhc3MgZXh0YWNrIGRvd24gdG8gdGhlIGRyaXZlciBhbmQgdXNlIE5MX1NFVF9FUlJfTVNHX1dFQUssIHdoaWNoIGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyByZXF1aXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDozNy4wMzQ4ODI5MDVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzk1ODcyODE3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHByaW1hcmlseSBhZGRzIDgwMi4xUWF2IENCUyBvZmZsb2FkaW5nIHN1cHBvcnQgdG8gdGhlIE1hcnZlbGwgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGRyaXZlciBjYW5ub3QgYmUgZXhlcmNpc2VkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoZSBjaGFuZ2VzIGluIG5ldC9kc2EvdGFnX2RzYS5jIGFyZSBzcGVjaWZpYyB0byB0aGUgRFNBIHRhZyBwcm90b2NvbCB1c2VkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgZHJpdmVyLiBUaGUgbW9kaWZpY2F0aW9uIGluIG5ldC9zY2hlZC9zY2hfY2JzLmMgaXMgYSB0cml2aWFsIGNoYW5nZSB0byBwYXNzIGV4dGFjayBkb3duIHRvIHRoZSBkcml2ZXIgYW5kIHVzZSBOTF9TRVRfRVJSX01TR19XRUFLLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgcmVxdWlyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDozNy4wMzQ4ODk4NzVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNDY0MjY3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDUyMmI0ZjQ2OWI4ZmY1M2QxNDE2ZmE0ZGE5NzllM2Y0MTVmODUwNzlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MzYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xcbmluZGV4IDgwYjg3N2M3NDUxM2QuLmE1NjdlZTliNmNlMGQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xcbkBAIC0zMiw2ICszMiw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9ncGlvL2NvbnN1bWVyLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHlsaW5rLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvZHNhLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NuZXQvcGt0X3NjaGVkLmhcXHUwMDNlXFxuIFxcbiAjaW5jbHVkZSBcXFwiY2hpcC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiZGV2bGluay5oXFxcIlxcbkBAIC0zOTkwLDYgKzM5OTEsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuIFxcbiBcXHRjaGlwLVxcdTAwM2VkcyA9IGRzO1xcbiBcXHRkcy1cXHUwMDNldXNlcl9taWlfYnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XFxuK1xcdGRzLVxcdTAwM2VudW1fdHhfcXVldWVzID0gY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlbnVtX3R4X3F1ZXVlcztcXG4gXFxuIFxcdC8qIFNpbmNlIHZpcnR1YWwgYnJpZGdlcyBhcmUgbWFwcGVkIGluIHRoZSBQVlQsIHRoZSBudW1iZXIgd2Ugc3VwcG9ydFxcbiBcXHQgKiBkZXBlbmRzIG9uIHRoZSBwaHlzaWNhbCBzd2l0Y2ggdG9wb2xvZ3kuIFdlIG5lZWQgdG8gbGV0IERTQSBmaWd1cmVcXG5AQCAtNTAyMyw2ICs1MDI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjI0MF9vcHMgPSB7XFxuIFxcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsXFxuIFxcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXFxuIFxcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXFxuK1xcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxcbiBcXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxcbiBcXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcXG4gXFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcXG5AQCAtNTMwNiw2ICs1MzA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM0MV9vcHMgPSB7XFxuIFxcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsXFxuIFxcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXFxuIFxcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXFxuK1xcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxcbiBcXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxcbiBcXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcXG4gXFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcXG5AQCAtNTQ2NCw2ICs1NDY4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1Ml9vcHMgPSB7XFxuIFxcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsXFxuIFxcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXFxuIFxcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXFxuK1xcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxcbiBcXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxcbiBcXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcXG4gXFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcXG5AQCAtNTUzMyw2ICs1NTM4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM5MF9vcHMgPSB7XFxuIFxcdC5wb3J0X2dldF9jbW9kZSA9IG12ODhlNjM1Ml9wb3J0X2dldF9jbW9kZSxcXG4gXFx0LnBvcnRfc2V0X2Ntb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X2Ntb2RlLFxcbiBcXHQucG9ydF9zZXR1cF9tZXNzYWdlX3BvcnQgPSBtdjg4ZTZ4eHhfc2V0dXBfbWVzc2FnZV9wb3J0LFxcbitcXHQucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSxcXG4gXFx0LnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LFxcbiBcXHQuc3RhdHNfc2V0X2hpc3RvZ3JhbSA9IG12ODhlNjM5MF9nMV9zdGF0c19zZXRfaGlzdG9ncmFtLFxcbiBcXHQuc3RhdHNfZ2V0X3NzZXRfY291bnQgPSBtdjg4ZTYzMjBfc3RhdHNfZ2V0X3NzZXRfY291bnQsXFxuQEAgLTU1OTcsNiArNTYwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTB4X29wcyA9IHtcXG4gXFx0LnBvcnRfZ2V0X2Ntb2RlID0gbXY4OGU2MzUyX3BvcnRfZ2V0X2Ntb2RlLFxcbiBcXHQucG9ydF9zZXRfY21vZGUgPSBtdjg4ZTYzOTB4X3BvcnRfc2V0X2Ntb2RlLFxcbiBcXHQucG9ydF9zZXR1cF9tZXNzYWdlX3BvcnQgPSBtdjg4ZTZ4eHhfc2V0dXBfbWVzc2FnZV9wb3J0LFxcbitcXHQucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSxcXG4gXFx0LnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LFxcbiBcXHQuc3RhdHNfc2V0X2hpc3RvZ3JhbSA9IG12ODhlNjM5MF9nMV9zdGF0c19zZXRfaGlzdG9ncmFtLFxcbiBcXHQuc3RhdHNfZ2V0X3NzZXRfY291bnQgPSBtdjg4ZTYzMjBfc3RhdHNfZ2V0X3NzZXRfY291bnQsXFxuQEAgLTU2NTMsNiArNTY2MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTN4X29wcyA9IHtcXG4gXFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzOTN4X3BvcnRfc2V0X2V0aGVyX3R5cGUsXFxuIFxcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXFxuIFxcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXFxuK1xcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxcbiBcXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjM5MF9wb3J0X3BhdXNlX2xpbWl0LFxcbiBcXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcXG4gXFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcXG5AQCAtNTY5NSw2ICs1NzAzLDI3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTN4X29wcyA9IHtcXG4gXFx0LnRjYW1fb3BzID0gXFx1MDAyNm12ODhlNjM5M190Y2FtX29wcyxcXG4gfTtcXG4gXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvIG12ODhlNjM1Ml9xYXZfaW5mbyA9IHtcXG4rXFx0LnJhdGVfdW5pdCA9IDMyLFxcbitcXHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNCwgMCksXFxuK1xcdC5oaWxpbWl0X21hc2sgPSBHRU5NQVNLKDE0LCAwKSxcXG4rXFx0LnF1ZXVlX21hc2sgPSBHRU5NQVNLKDMsIDApLFxcbit9O1xcbitcXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gbXY4OGU2MzQxX3Fhdl9pbmZvID0ge1xcbitcXHQucmF0ZV91bml0ID0gNjQsXFxuK1xcdC5yYXRlX21hc2sgPSBHRU5NQVNLKDE1LCAwKSxcXG4rXFx0LmhpbGltaXRfbWFzayA9IEdFTk1BU0soMTMsIDApLFxcbitcXHQucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksXFxuK307XFxuK1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzOTBfcWF2X2luZm8gPSB7XFxuK1xcdC5yYXRlX3VuaXQgPSA2NCxcXG4rXFx0LnJhdGVfbWFzayA9IEdFTk1BU0soMTUsIDApLFxcbitcXHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksXFxuK1xcdC5xdWV1ZV9tYXNrID0gR0VOTUFTSyg3LCAwKSxcXG4rfTtcXG4rXFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFtNVjg4RTYwMjBdID0ge1xcbiBcXHRcXHQucHJvZF9udW0gPSBNVjg4RTZYWFhfUE9SVF9TV0lUQ0hfSURfUFJPRF82MDIwLFxcbkBAIC01NzA2LDYgKzU3MzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQgKi9cXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0LmludmFsaWRfcG9ydF9tYXNrID0gQklUKDIpIHwgQklUKDMpIHwgQklUKDQpLFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4OCxcXG5AQCAtNTcyOCw2ICs1NzU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA2NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDA4LFxcbiBcXHRcXHQucGh5X2Jhc2VfYWRkciA9IDB4MDAsXFxuQEAgLTU3NTAsNiArNTc4MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMCxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU3NzQsNiArNTgwNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuIFxcdFxcdC5waHlfYmFzZV9hZGRyID0gMHgwLFxcbkBAIC01Nzk1LDYgKzU4MjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC01ODIwLDYgKzU4NTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX21hY3MgPSAxMDI0LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU4NDUsNiArNTg4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA4LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAwLFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG4gXFx0XFx0LnBoeV9iYXNlX2FkZHIgPSAweDAsXFxuQEAgLTU4NjcsNiArNTkwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSA2LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxMSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU4OTIsNiArNTkyOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDEwMjQsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA2LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNTkxOCw2ICs1OTU2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDYsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC01OTQzLDYgKzU5ODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU5NjksNiArNjAwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU5OTQsNiArNjAzNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNjAyMCw2ICs2MDYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNjA0NSw2ICs2MDg4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDEwLFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAwLFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG4gXFx0XFx0LnBoeV9iYXNlX2FkZHIgPSAweDAsXFxuQEAgLTYwNjgsNiArNjExMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxNixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjA5Myw2ICs2MTM4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE2LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDgsXFxuIFxcdFxcdC5tYXhfdmlkID0gODE5MSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxcbkBAIC02MTE3LDYgKzYxNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX21hY3MgPSAxNjM4NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gOCxcXG4gXFx0XFx0Lm1heF92aWQgPSA4MTkxLFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXFxuQEAgLTYxNDIsNiArNjE4OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxcbiBcXHRcXHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDgsXFxuIFxcdFxcdC5tYXhfdmlkID0gODE5MSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxcbkBAIC02MTY4LDYgKzYyMTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxcbiBcXHRcXHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcXG4gXFx0XFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjE5OCw2ICs2MjQ3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXFxuIFxcdFxcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgyKSB8IEJJVCgzKSB8IEJJVCg0KSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MDgsXFxuIFxcdFxcdC5waHlfYmFzZV9hZGRyID0gMHgwMCxcXG5AQCAtNjIyMiw2ICs2MjcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNjIzNyw2ICs2Mjg4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxcbiBcXHRcXHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfU1VQUE9SVEVELFxcbiBcXHRcXHQucHRwX3N1cHBvcnQgPSB0cnVlLFxcbitcXHRcXHQucWF2ID0gXFx1MDAyNm12ODhlNjM1Ml9xYXZfaW5mbyxcXG4gXFx0XFx0Lm9wcyA9IFxcdTAwMjZtdjg4ZTYyNDBfb3BzLFxcbiBcXHR9LFxcbiBcXG5AQCAtNjI0Nyw2ICs2Mjk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA2NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDA4LFxcbiBcXHRcXHQucGh5X2Jhc2VfYWRkciA9IDB4MDAsXFxuQEAgLTYyNzEsNiArNjMyNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE2LFxcbiBcXHRcXHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjI5OSw2ICs2MzUzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMixcXG4gXFx0XFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMyxcXG4gXFx0XFx0Lm51bV9ncGlvID0gMTUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC02MzI3LDYgKzYzODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxcbiBcXHRcXHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAzLFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTYzNTQsNiArNjQxMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA2LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxMSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTYzNjksNiArNjQyNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5tdWx0aV9jaGlwID0gdHJ1ZSxcXG4gXFx0XFx0LmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCxcXG4gXFx0XFx0LnB0cF9zdXBwb3J0ID0gdHJ1ZSxcXG4rXFx0XFx0LnFhdiA9IFxcdTAwMjZtdjg4ZTYzNDFfcWF2X2luZm8sXFxuIFxcdFxcdC5vcHMgPSBcXHUwMDI2bXY4OGU2MzQxX29wcyxcXG4gXFx0fSxcXG4gXFxuQEAgLTYzODAsNiArNjQzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNjQwNSw2ICs2NDY0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC02NDMxLDYgKzY0OTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4gXFx0XFx0Lm51bV9ncGlvID0gMTUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC02NDQ2LDYgKzY1MDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubXVsdGlfY2hpcCA9IHRydWUsXFxuIFxcdFxcdC5lZHNhX3N1cHBvcnQgPSBNVjg4RTZYWFhfRURTQV9TVVBQT1JURUQsXFxuIFxcdFxcdC5wdHBfc3VwcG9ydCA9IHRydWUsXFxuK1xcdFxcdC5xYXYgPSBcXHUwMDI2bXY4OGU2MzUyX3Fhdl9pbmZvLFxcbiBcXHRcXHQub3BzID0gXFx1MDAyNm12ODhlNjM1Ml9vcHMsXFxuIFxcdH0sXFxuIFxcdFtNVjg4RTYzNjFdID0ge1xcbkBAIC02NDU5LDYgKzY1MjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuaW52YWxpZF9wb3J0X21hc2sgPSBCSVQoMSkgfCBCSVQoMikgfCBCSVQoOCksXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuIFxcdFxcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDMsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gOCxcXG4gXFx0XFx0Lm1heF92aWQgPSA4MTkxLFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXFxuQEAgLTY0ODUsNiArNjU0OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE2LFxcbiBcXHRcXHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjUwMSw2ICs2NTY1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxcbiBcXHRcXHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxcbiBcXHRcXHQucHRwX3N1cHBvcnQgPSB0cnVlLFxcbitcXHRcXHQucWF2ID0gXFx1MDAyNm12ODhlNjM5MF9xYXZfaW5mbyxcXG4gXFx0XFx0Lm9wcyA9IFxcdTAwMjZtdjg4ZTYzOTBfb3BzLFxcbiBcXHR9LFxcbiBcXHRbTVY4OEU2MzkwWF0gPSB7XFxuQEAgLTY1MTIsNiArNjU3Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxNixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjUyNyw2ICs2NTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxcbiBcXHRcXHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxcbiBcXHRcXHQucHRwX3N1cHBvcnQgPSB0cnVlLFxcbitcXHRcXHQucWF2ID0gXFx1MDAyNm12ODhlNjM5MF9xYXZfaW5mbyxcXG4gXFx0XFx0Lm9wcyA9IFxcdTAwMjZtdjg4ZTYzOTB4X29wcyxcXG4gXFx0fSxcXG4gXFxuQEAgLTY1MzgsNiArNjYwNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxcbiBcXHRcXHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuQEAgLTY1NTQsNiArNjYyMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5wdnQgPSB0cnVlLFxcbiBcXHRcXHQubXVsdGlfY2hpcCA9IHRydWUsXFxuIFxcdFxcdC5wdHBfc3VwcG9ydCA9IHRydWUsXFxuK1xcdFxcdC5xYXYgPSBcXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxcbiBcXHRcXHQub3BzID0gXFx1MDAyNm12ODhlNjM5M3hfb3BzLFxcbiBcXHR9LFxcbiB9O1xcbkBAIC03MTc1LDYgKzcyNDQsMTEyIEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2Nyb3NzY2hpcF9sYWdfbGVhdmUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgc3dfaW5kZXgsXFxuIFxcdHJldHVybiBlcnJfc3luYyA/IDogZXJyX3B2dDtcXG4gfVxcbiBcXG4rc3RhdGljIGludCBtdjg4ZTZ4eHhfc2V0dXBfdGNfY2JzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuK1xcdFxcdFxcdFxcdCAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQgKmNicylcXG4re1xcbitcXHRjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgKmF2Yl9vcHM7XFxuK1xcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLVxcdTAwM2Vwcml2O1xcbitcXHRjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvICpxYXY7XFxuK1xcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzICpvcHM7XFxuK1xcdGludCBoaWxpbWl0X3JlZztcXG4rXFx0aW50IHJhdGVfcmVnO1xcbitcXHR1OCBxdWV1ZV9iaXQ7XFxuK1xcdHUzMiByYXRlID0gMDtcXG4rXFx0dTE2IGhpbGltaXQ7XFxuK1xcdGludCBlcnI7XFxuK1xcbitcXHRvcHMgPSBjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHM7XFxuK1xcdGF2Yl9vcHMgPSBvcHMtXFx1MDAzZWF2Yl9vcHM7XFxuK1xcdHFhdiA9IGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZXFhdjtcXG4rXFxuK1xcdGlmICghcWF2IHx8ICFhdmJfb3BzIHx8ICFhdmJfb3BzLVxcdTAwM2Vwb3J0X3Fhdl93cml0ZSB8fFxcbitcXHQgICAgIW9wcy1cXHUwMDNlcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRpZiAoIWRzYV9pc191c2VyX3BvcnQoZHMsIHBvcnQpKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRpZiAoIShxYXYtXFx1MDAzZXF1ZXVlX21hc2sgXFx1MDAyNiBCSVQoY2JzLVxcdTAwM2VxdWV1ZSkpKSB7XFxuK1xcdFxcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXFx1MDAzZWV4dGFjaywgXFxcIkNCUyBub3Qgc3VwcG9ydGVkIG9uIHF1ZXVlXFxcIik7XFxuK1xcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFx0fVxcbitcXG4rXFx0cXVldWVfYml0ID0gQklUKGNicy1cXHUwMDNlcXVldWUpO1xcbitcXHRyYXRlX3JlZyA9IE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfUkFURShjYnMtXFx1MDAzZXF1ZXVlKTtcXG4rXFx0aGlsaW1pdF9yZWcgPSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQoY2JzLVxcdTAwM2VxdWV1ZSk7XFxuK1xcbitcXHRpZiAoY2JzLVxcdTAwM2VlbmFibGUpIHtcXG4rXFx0XFx0aWYgKGNicy1cXHUwMDNlaGljcmVkaXQgXFx1MDAzYz0gMCB8fFxcbitcXHRcXHQgICAgY2JzLVxcdTAwM2VoaWNyZWRpdCBcXHUwMDNlIHFhdi1cXHUwMDNlaGlsaW1pdF9tYXNrKSB7XFxuK1xcdFxcdFxcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXFx1MDAzZWV4dGFjayxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgXFxcImhpY3JlZGl0IG91dCBvZiByYW5nZVxcXCIpO1xcbitcXHRcXHRcXHRyZXR1cm4gLUVSQU5HRTtcXG4rXFx0XFx0fVxcbitcXG4rXFx0XFx0cmF0ZSA9IERJVl9ST1VORF9VUChjYnMtXFx1MDAzZWlkbGVzbG9wZSwgcWF2LVxcdTAwM2VyYXRlX3VuaXQpO1xcbitcXHRcXHRpZiAocmF0ZSBcXHUwMDNlIHFhdi1cXHUwMDNlcmF0ZV9tYXNrKSB7XFxuK1xcdFxcdFxcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXFx1MDAzZWV4dGFjayxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgXFxcImlkbGVzbG9wZSBvdXQgb2YgcmFuZ2VcXFwiKTtcXG4rXFx0XFx0XFx0cmV0dXJuIC1FUkFOR0U7XFxuK1xcdFxcdH1cXG4rXFx0XFx0LyogYXZvaWQgdXNpbmcgemVybyByYXRlICovXFxuK1xcdFxcdHJhdGUgPSBtYXhfdCh1MTYsIHJhdGUsIDEpO1xcbitcXHR9XFxuK1xcbitcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuK1xcbitcXHRpZiAoIWNicy1cXHUwMDNlZW5hYmxlKSB7XFxuK1xcdFxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCByYXRlX3JlZywgMCk7XFxuK1xcdFxcdGlmIChlcnIpXFxuK1xcdFxcdFxcdGdvdG8gdW5sb2NrO1xcbitcXG4rXFx0XFx0aWYgKCEoY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgXFx1MDAyNiB+cXVldWVfYml0KSkge1xcbitcXHRcXHRcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKGNoaXAsIHBvcnQsIDApO1xcbitcXHRcXHRcXHRpZiAoZXJyKVxcbitcXHRcXHRcXHRcXHRnb3RvIHVubG9jaztcXG4rXFx0XFx0fVxcbitcXHRcXHRjaGlwLVxcdTAwM2Vwb3J0c1twb3J0XS5jYnNfYWN0aXZlX3F1ZXVlcyBcXHUwMDI2PSB+cXVldWVfYml0O1xcbitcXHRcXHRnb3RvIHVubG9jaztcXG4rXFx0fVxcbitcXG4rXFx0aGlsaW1pdCA9IGNicy1cXHUwMDNlaGljcmVkaXQgXFx1MDAyNiBxYXYtXFx1MDAzZWhpbGltaXRfbWFzaztcXG4rXFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIGhpbGltaXRfcmVnLCBoaWxpbWl0KTtcXG4rXFx0aWYgKGVycilcXG4rXFx0XFx0Z290byB1bmxvY2s7XFxuK1xcbitcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIHJhdGUpO1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRnb3RvIHVubG9jaztcXG4rXFxuK1xcdGlmICghY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMpIHtcXG4rXFx0XFx0dTggc2NoZWRfbW9kZSA9IGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW51bV90eF9xdWV1ZXMgLSAxO1xcbitcXG4rXFx0XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShjaGlwLCBwb3J0LFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgc2NoZWRfbW9kZSk7XFxuK1xcdFxcdGlmIChlcnIpIHtcXG4rXFx0XFx0XFx0bXY4OGU2eHh4X3BvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIHJhdGVfcmVnLCAwKTtcXG4rXFx0XFx0XFx0Z290byB1bmxvY2s7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXHRjaGlwLVxcdTAwM2Vwb3J0c1twb3J0XS5jYnNfYWN0aXZlX3F1ZXVlcyB8PSBxdWV1ZV9iaXQ7XFxuK1xcbit1bmxvY2s6XFxuK1xcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbitcXG4rXFx0cmV0dXJuIGVycjtcXG4rfVxcbitcXG4rc3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF90YyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbitcXHRcXHRcXHRcXHQgICBlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhKVxcbit7XFxuK1xcdHN3aXRjaCAodHlwZSkge1xcbitcXHRjYXNlIFRDX1NFVFVQX1FESVNDX0NCUzpcXG4rXFx0XFx0cmV0dXJuIG12ODhlNnh4eF9zZXR1cF90Y19jYnMoZHMsIHBvcnQsIHR5cGVfZGF0YSk7XFxuK1xcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFx0fVxcbit9XFxuK1xcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfbWFjX29wcyBtdjg4ZTZ4eHhfcGh5bGlua19tYWNfb3BzID0ge1xcbiBcXHQubWFjX3NlbGVjdF9wY3NcXHRcXHQ9IG12ODhlNnh4eF9tYWNfc2VsZWN0X3BjcyxcXG4gXFx0Lm1hY19wcmVwYXJlXFx0XFx0PSBtdjg4ZTZ4eHhfbWFjX3ByZXBhcmUsXFxuQEAgLTcyMzQsNiArNzQwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgbXY4OGU2eHh4X3N3aXRjaF9vcHMgPSB7XFxuIFxcdC5wb3J0X2h3dHN0YW1wX2dldFxcdD0gbXY4OGU2eHh4X3BvcnRfaHd0c3RhbXBfZ2V0LFxcbiBcXHQucG9ydF90eHRzdGFtcFxcdFxcdD0gbXY4OGU2eHh4X3BvcnRfdHh0c3RhbXAsXFxuIFxcdC5wb3J0X3J4dHN0YW1wXFx0XFx0PSBtdjg4ZTZ4eHhfcG9ydF9yeHRzdGFtcCxcXG4rXFx0LnBvcnRfc2V0dXBfdGNcXHRcXHQ9IG12ODhlNnh4eF9wb3J0X3NldHVwX3RjLFxcbiBcXHQuY2xzX2Zsb3dlcl9hZGRcXHRcXHQ9IG12ODhlNnh4eF9jbHNfZmxvd2VyX2FkZCxcXG4gXFx0LmNsc19mbG93ZXJfZGVsICAgICAgICAgPSBtdjg4ZTZ4eHhfY2xzX2Zsb3dlcl9kZWwsXFxuIFxcdC5nZXRfdHNfaW5mb1xcdFxcdD0gbXY4OGU2eHh4X2dldF90c19pbmZvLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXFxuaW5kZXggZTk2NmU3YzRjYzVkZS4uZDQyZDgzOWU2MzZiYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXFxuQEAgLTEyNSw2ICsxMjUsNyBAQCBlbnVtIG12ODhlNnh4eF9lZHNhX3N1cHBvcnQge1xcbiB9O1xcbiBcXG4gc3RydWN0IG12ODhlNnh4eF9vcHM7XFxuK3N0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm87XFxuIFxcbiBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xcbiBcXHRlbnVtIG12ODhlNnh4eF9mYW1pbHkgZmFtaWx5O1xcbkBAIC0xMzYsNiArMTM3LDcgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHtcXG4gXFx0dW5zaWduZWQgaW50IG51bV9pbnRlcm5hbF9waHlzO1xcbiBcXHR1bnNpZ25lZCBpbnQgbnVtX2dwaW87XFxuIFxcdHVuc2lnbmVkIGludCBudW1fdGNhbV9lbnRyaWVzO1xcbitcXHR1bnNpZ25lZCBpbnQgbnVtX3R4X3F1ZXVlcztcXG4gXFx0dW5zaWduZWQgaW50IG1heF92aWQ7XFxuIFxcdHVuc2lnbmVkIGludCBtYXhfc2lkO1xcbiBcXHR1bnNpZ25lZCBpbnQgcG9ydF9iYXNlX2FkZHI7XFxuQEAgLTE3Niw2ICsxNzgsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xcbiBcXHQvKiBTdXBwb3J0cyBQVFAgKi9cXG4gXFx0Ym9vbCBwdHBfc3VwcG9ydDtcXG4gXFxuK1xcdC8qIDgwMi4xUWF2IGNyZWRpdCBiYXNlZCBzaGFwaW5nICovXFxuK1xcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gKnFhdjtcXG4rXFxuIFxcdC8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0XFxuIFxcdCAqIHBvcnQgMCwgMSBtZWFucyBpbnRlcm5hbCBQSFlzIHJhbmdlIHN0YXJ0cyBhdCBwb3J0IDEsIGV0Y1xcbiBcXHQgKi9cXG5AQCAtMzA0LDYgKzMwOSw5IEBAIHN0cnVjdCBtdjg4ZTZ4eHhfcG9ydCB7XFxuIFxcbiBcXHQvKiBNYWNBdXRoIEJ5cGFzcyBjb250cm9sIGZsYWcgKi9cXG4gXFx0Ym9vbCBtYWI7XFxuK1xcbitcXHQvKiBRdWV1ZXMgd2l0aCBDQlMgY3VycmVudGx5IGVuYWJsZWQuICovXFxuK1xcdHU4IGNic19hY3RpdmVfcXVldWVzO1xcbiB9O1xcbiBcXG4gZW51bSBtdjg4ZTZ4eHhfcmVnaW9uX2lkIHtcXG5AQCAtNjA2LDYgKzYxNCw4IEBAIHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIHtcXG4gXFx0XFx0XFx0XFx0ICAgc2l6ZV90IHNpemUpO1xcbiBcXG4gXFx0aW50ICgqcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZykoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XFxuK1xcdGludCAoKnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG4rXFx0XFx0XFx0XFx0XFx0dTggbW9kZSk7XFxuIFxcdGludCAoKnBvcnRfcGF1c2VfbGltaXQpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIHU4IGluLFxcbiBcXHRcXHRcXHRcXHR1OCBvdXQpO1xcbiBcXHRpbnQgKCpwb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpO1xcbkBAIC03NjMsNiArNzczLDEwIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyB7XFxuIFxcdGludCAoKnRhaV9yZWFkKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCB1MTYgKmRhdGEsXFxuIFxcdFxcdFxcdGludCBsZW4pO1xcbiBcXHRpbnQgKCp0YWlfd3JpdGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIHUxNiBkYXRhKTtcXG4rXFxuK1xcdC8qIEFjY2VzcyBwb3J0LXNjb3BlZCA4MDIuMVFhdiByZWdpc3RlcnMgKi9cXG4rXFx0aW50ICgqcG9ydF9xYXZfd3JpdGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIGludCBhZGRyLFxcbitcXHRcXHRcXHQgICAgICB1MTYgZGF0YSk7XFxuIH07XFxuIFxcbiBzdHJ1Y3QgbXY4OGU2eHh4X3B0cF9vcHMge1xcbkBAIC03OTgsNiArODEyLDEzIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfdGNhbV9vcHMge1xcbiBcXHRpbnQgKCpmbHVzaF90Y2FtKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApO1xcbiB9O1xcbiBcXG4rc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyB7XFxuK1xcdHUxNiByYXRlX3VuaXQ7IC8qIGluIGticHMgKi9cXG4rXFx0dTE2IHJhdGVfbWFzazsgLyogUVByaSBSYXRlIHZhbGlkIGJpdHMgbWFzayAqL1xcbitcXHR1MTYgaGlsaW1pdF9tYXNrOyAvKiBRUHJpIEhpTGltaXQgYml0cyBtYXNrKi9cXG4rXFx0dTggcXVldWVfbWFzazsgLyogc3VwcG9ydGVkIHF1ZXVlcyBiaXRtYXNrICovXFxuK307XFxuK1xcbiBzdGF0aWMgaW5saW5lIGJvb2wgbXY4OGU2eHh4X2hhc19zdHUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbiB7XFxuIFxcdHJldHVybiBjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VtYXhfc2lkIFxcdTAwM2UgMCBcXHUwMDI2XFx1MDAyNlxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oXFxuaW5kZXggZmY1YWRmN2M5YmMzYS4uZGY1MmZmM2FkYzg4YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oXFxuQEAgLTE4Niw2ICsxODYsOSBAQFxcbiAjZGVmaW5lIE1WODhFNjM1Ml9HMl9BVkJfQ01EX0JMT0NLX01BU0tcXHRcXHQweDAwZTBcXG4gI2RlZmluZSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9BRERSX01BU0tcXHRcXHQweDAwMWZcXG4gXFxuKyNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfUUFWX0NGR19SQVRFKHF1ZXVlKVxcdCgoKHF1ZXVlKSBcXHUwMDI2IDB4NykgXFx1MDAzY1xcdTAwM2MgMSlcXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQocXVldWUpXFx0KCgoKHF1ZXVlKSBcXHUwMDI2IDB4NykgXFx1MDAzY1xcdTAwM2MgMSkgKyAxKVxcbitcXG4gLyogT2Zmc2V0IDB4MTc6IEFWQiBEYXRhIFJlZ2lzdGVyICovXFxuICNkZWZpbmUgTVY4OEU2MzUyX0cyX0FWQl9EQVRBXFx0XFx0MHgxN1xcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyX2F2Yi5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyX2F2Yi5jXFxuaW5kZXggNjU3NzgzZTA0M2ZmMS4uNmI1NGUyNzVkMjFhYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmNcXG5AQCAtMTEwLDYgKzExMCwxNSBAQCBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9wdHBfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbiBcXHRyZXR1cm4gbXY4OGU2eHh4X2cyX2F2Yl93cml0ZShjaGlwLCB3cml0ZW9wLCBkYXRhKTtcXG4gfVxcbiBcXG4rc3RhdGljIGludCBtdjg4ZTYzNTJfZzJfYXZiX3BvcnRfcWF2X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgaW50IHBvcnQsIGludCBhZGRyLCB1MTYgZGF0YSlcXG4re1xcbitcXHR1MTYgd3JpdGVvcCA9IE1WODhFNjM1Ml9HMl9BVkJfQ01EX09QX1dSSVRFIHwgKHBvcnQgXFx1MDAzY1xcdTAwM2MgOCkgfFxcbitcXHRcXHQgICAgICAoTVY4OEU2MzUyX0cyX0FWQl9DTURfQkxPQ0tfUUFWIFxcdTAwM2NcXHUwMDNjIDUpIHwgYWRkcjtcXG4rXFxuK1xcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xcbit9XFxuK1xcbiBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkcixcXG4gXFx0XFx0XFx0XFx0ICAgICB1MTYgKmRhdGEsIGludCBsZW4pXFxuIHtcXG5AQCAtMTQ5LDYgKzE1OCw3IEBAIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyBtdjg4ZTYzNTJfYXZiX29wcyA9IHtcXG4gXFx0LnB0cF93cml0ZVxcdFxcdD0gbXY4OGU2MzUyX2cyX2F2Yl9wdHBfd3JpdGUsXFxuIFxcdC50YWlfcmVhZFxcdFxcdD0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfcmVhZCxcXG4gXFx0LnRhaV93cml0ZVxcdFxcdD0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfd3JpdGUsXFxuK1xcdC5wb3J0X3Fhdl93cml0ZVxcdFxcdD0gbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZSxcXG4gfTtcXG4gXFxuIHN0YXRpYyBpbnQgbXY4OGU2MTY1X2cyX2F2Yl90YWlfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLFxcbkBAIC0xNzQsNiArMTg0LDcgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjE2NV9hdmJfb3BzID0ge1xcbiBcXHQucHRwX3dyaXRlXFx0XFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3B0cF93cml0ZSxcXG4gXFx0LnRhaV9yZWFkXFx0XFx0PSBtdjg4ZTYxNjVfZzJfYXZiX3RhaV9yZWFkLFxcbiBcXHQudGFpX3dyaXRlXFx0XFx0PSBtdjg4ZTYxNjVfZzJfYXZiX3RhaV93cml0ZSxcXG4rXFx0LnBvcnRfcWF2X3dyaXRlXFx0XFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3BvcnRfcWF2X3dyaXRlLFxcbiB9O1xcbiBcXG4gc3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcHRwX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbkBAIC0xOTcsNiArMjA4LDE1IEBAIHN0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wb3J0X3B0cF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXFxuIFxcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xcbiB9XFxuIFxcbitzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbitcXHRcXHRcXHRcXHRcXHQgICBpbnQgcG9ydCwgaW50IGFkZHIsIHUxNiBkYXRhKVxcbit7XFxuK1xcdHUxNiB3cml0ZW9wID0gTVY4OEU2MzkwX0cyX0FWQl9DTURfT1BfV1JJVEUgfCAocG9ydCBcXHUwMDNjXFx1MDAzYyA4KSB8XFxuK1xcdFxcdCAgICAgIChNVjg4RTYzNTJfRzJfQVZCX0NNRF9CTE9DS19RQVYgXFx1MDAzY1xcdTAwM2MgNSkgfCBhZGRyO1xcbitcXG4rXFx0cmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLFxcbiBcXHRcXHRcXHRcXHQgICAgIHUxNiAqZGF0YSwgaW50IGxlbilcXG4ge1xcbkBAIC0yMzYsNCArMjU2LDUgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjM5MF9hdmJfb3BzID0ge1xcbiBcXHQucHRwX3dyaXRlXFx0XFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3B0cF93cml0ZSxcXG4gXFx0LnRhaV9yZWFkXFx0XFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV9yZWFkLFxcbiBcXHQudGFpX3dyaXRlXFx0XFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV93cml0ZSxcXG4rXFx0LnBvcnRfcWF2X3dyaXRlXFx0XFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcWF2X3dyaXRlLFxcbiB9O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXFxuaW5kZXggZWExZmFiNzE5NjhhMC4uNzU4YjhkNDFmNDg1MyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXFxuQEAgLTEzMjMsNiArMTMyMyw1MSBAQCBpbnQgbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG4gXFx0XFx0XFx0XFx0ICAgIDB4MDAwMSk7XFxuIH1cXG4gXFxuK2ludCBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuK1xcdFxcdFxcdFxcdCAgICAgICB1OCBtb2RlKVxcbit7XFxuK1xcdHUxNiByZWc7XFxuK1xcdGludCBlcnI7XFxuK1xcbitcXHRpZiAobW9kZSBcXHUwMDNlIDMpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyLFxcbitcXHRcXHRcXHRcXHQgIFxcdTAwMjZyZWcpO1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRyZXR1cm4gZXJyO1xcbitcXG4rXFx0cmVnIFxcdTAwMjY9IH5NVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX01BU0s7XFxuK1xcdHJlZyB8PSBtb2RlIFxcdTAwM2NcXHUwMDNjIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfU0hJRlQ7XFxuK1xcbitcXHRyZXR1cm4gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCxcXG4rXFx0XFx0XFx0XFx0ICAgIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDIsIHJlZyk7XFxuK31cXG4rXFxuK2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuK1xcdFxcdFxcdFxcdCAgICAgICB1OCBtb2RlKVxcbit7XFxuK1xcdHUxNiByZWc7XFxuK1xcdGludCBlcnI7XFxuK1xcbitcXHRpZiAobW9kZSBcXHUwMDNlIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRV9NQVNLKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFxuK1xcdHJlZyA9IE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9VUERBVEUgfFxcbitcXHQgICAgICAoTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFIFxcdTAwM2NcXHUwMDNjXFxuK1xcdCAgICAgICBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfUFRSX1NISUZUKSB8XFxuK1xcdCAgICAgIChtb2RlIFxcdTAwMjYgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFX01BU0spO1xcbitcXG4rXFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMLFxcbitcXHRcXHRcXHRcXHQgICByZWcpO1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRyZXR1cm4gZXJyO1xcbitcXG4rXFx0cmV0dXJuIG12ODhlNnh4eF9wb3J0X3dhaXRfYml0KGNoaXAsIHBvcnQsIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTCxcXG4rXFx0XFx0XFx0XFx0ICAgICAgIF9fYmZfc2hmKE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9VUERBVEUpXFxuK1xcdFxcdFxcdFxcdCAgICAgICAsIDApO1xcbit9XFxuK1xcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cXG4gXFxuIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfYXNzb2NfdmVjdG9yKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuQEAgLTE3MjcsMyArMTc3MiwyMSBAQCBpbnQgbXY4OGU2MzkzeF9wb3J0X3NldF9wb2xpY3koc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG4gXFxuIFxcdHJldHVybiBtdjg4ZTYzOTN4X3BvcnRfcG9saWN5X3dyaXRlKGNoaXAsIHBvcnQsIHB0ciwgcmVnKTtcXG4gfVxcbitcXG4raW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcXG4rXFx0XFx0XFx0ICAgICB1MTYgZGF0YSlcXG4re1xcbitcXHRpZiAoIWNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlYXZiX29wcy1cXHUwMDNlcG9ydF9xYXZfd3JpdGUpXFxuK1xcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFxuK1xcdHJldHVybiBjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHMtXFx1MDAzZWF2Yl9vcHMtXFx1MDAzZXBvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIGFkZHIsIGRhdGEpO1xcbit9XFxuK1xcbitpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbitcXHRcXHRcXHRcXHQgICAgICAgdTggbW9kZSlcXG4re1xcbitcXHRpZiAoIWNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRyZXR1cm4gY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlb3BzLVxcdTAwM2Vwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCwgbW9kZSk7XFxuK31cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaFxcbmluZGV4IDViNmNkZTlmNzQwNmYuLmEzODBmMzU2ZWI4M2QgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmhcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaFxcbkBAIC0yNDEsNiArMjQxLDE4IEBAXFxuIFxcbiAvKiBPZmZzZXQgMHgwQTogRWdyZXNzIFJhdGUgQ29udHJvbCAyICovXFxuICNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMlxcdFxcdDB4MGFcXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX01BU0tcXHQweDMwMDBcXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX1NISUZUXFx0MTJcXG4rXFxuKy8qIE9mZnNldCAweDFDOiBQb3J0IFF1ZXVlIENvbnRyb2wgKi9cXG4rI2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExcXHRcXHRcXHQweDFjXFxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURVxcdFxcdFxcdDB4ODAwMFxcbisjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfTUFTS1xcdFxcdDB4N2YwMFxcbisjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfU0hJRlRcXHRcXHQ4XFxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX0RBVEFfTUFTS1xcdFxcdDB4MDBmZlxcbisjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRVxcdFxcdDB4MDBcXG4rI2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTS1xcdFxcdDB4MDdcXG4rXFxuIFxcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cXG4gI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9BU1NPQ19WRUNUT1JcXHRcXHRcXHQweDBiXFxuQEAgLTU2MSw2ICs1NzMsMTAgQEAgaW50IG12ODhlNjE2NV9wb3J0X3NldF9qdW1ib19zaXplKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuIFxcdFxcdFxcdFxcdCAgc2l6ZV90IHNpemUpO1xcbiBpbnQgbXY4OGU2MDk1X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XFxuIGludCBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcXG4raW50IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG4rXFx0XFx0XFx0XFx0ICAgICAgIHU4IG1vZGUpO1xcbitpbnQgbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbitcXHRcXHRcXHRcXHQgICAgICAgdTggbW9kZSk7XFxuIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfYXNzb2NfdmVjdG9yKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuIFxcdFxcdFxcdFxcdCAgICB1MTYgcGF2KTtcXG4gaW50IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIHU4IGluLFxcbkBAIC02MDUsNSArNjIxLDkgQEAgaW50IG12ODhlNnh4eF9wb3J0X2hpZGRlbl9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGJsb2NrLCBpbnQgcG9ydCxcXG4gXFx0XFx0XFx0ICAgICAgIGludCByZWcsIHUxNiAqdmFsKTtcXG4gXFxuIGludCBtdjg4ZTZ4eHhfcG9ydF9lbmFibGVfdGNhbShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcXG4raW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcXG4rXFx0XFx0XFx0ICAgICB1MTYgZGF0YSk7XFxuK2ludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuK1xcdFxcdFxcdFxcdCAgICAgICB1OCBtb2RlKTtcXG4gXFxuICNlbmRpZiAvKiBfTVY4OEU2WFhYX1BPUlRfSCAqL1xcbmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9wa3Rfc2NoZWQuaCBiL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oXFxuaW5kZXggMThhNDE5Y2Q5ZDk0OS4uZDM1Yzg3MDA0YzI3OSAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL25ldC9wa3Rfc2NoZWQuaFxcbisrKyBiL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oXFxuQEAgLTE1MCw2ICsxNTAsNyBAQCBzdHJ1Y3QgdGNfY2JzX3FvcHRfb2ZmbG9hZCB7XFxuIFxcdHMzMiBsb2NyZWRpdDtcXG4gXFx0czMyIGlkbGVzbG9wZTtcXG4gXFx0czMyIHNlbmRzbG9wZTtcXG4rXFx0c3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrO1xcbiB9O1xcbiBcXG4gc3RydWN0IHRjX2V0Zl9xb3B0X29mZmxvYWQge1xcbmRpZmYgLS1naXQgYS9uZXQvZHNhL3RhZ19kc2EuYyBiL25ldC9kc2EvdGFnX2RzYS5jXFxuaW5kZXggZDVmZmVlMzVmYmI1My4uMmJiNzFjZDM0M2U3OSAxMDA2NDRcXG4tLS0gYS9uZXQvZHNhL3RhZ19kc2EuY1xcbisrKyBiL25ldC9kc2EvdGFnX2RzYS5jXFxuQEAgLTE3OSw4ICsxNzksMTcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpkc2FfeG1pdF9sbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHRcXHRkc2FfaGVhZGVyWzJdIFxcdTAwMjY9IH4weDEwO1xcbiBcXHRcXHR9XFxuIFxcdH0gZWxzZSB7XFxuK1xcdFxcdHUxNiBxdWV1ZSA9IHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpIFxcdTAwMjYgMHg3O1xcbiBcXHRcXHR1MTYgdmlkO1xcbiBcXG4rXFx0XFx0LyogVGhlIFBSSSBmaWVsZCBpcyAzIGJpdHMuIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiB0aGVcXG4rXFx0XFx0ICogMiBoaWdoZXN0IGJpdHMgc3BlY2lmeSB0aGUgZWdyZXNzIHF1ZXVlIGluIEZyb21fQ1BVIERTQVxcbitcXHRcXHQgKiB0YWdnZWQgZnJhbWVzLiBPbiBkZXZpY2VzIHdpdGggOCBxdWV1ZXMgaXQncyBwb3NzaWJsZSB0b1xcbitcXHRcXHQgKiBzZW5kIHRvIHRoZSA4IHF1ZXVlcywgd2hpY2ggbWVhbnMgdGhlIDMgYml0cyBhcmUgdXNlZC5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdGlmIChkcC1cXHUwMDNlZHMtXFx1MDAzZW51bV90eF9xdWV1ZXMgPT0gNClcXG4rXFx0XFx0XFx0cXVldWUgXFx1MDAzY1xcdTAwM2M9IDE7XFxuK1xcbiBcXHRcXHR2aWQgPSBicl9kZXYgPyBNVjg4RTZYWFhfVklEX0JSSURHRUQgOiBNVjg4RTZYWFhfVklEX1NUQU5EQUxPTkU7XFxuIFxcbiBcXHRcXHRza2JfcHVzaChza2IsIERTQV9ITEVOICsgZXh0cmEpO1xcbkBAIC0xOTEsNyArMjAwLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpkc2FfeG1pdF9sbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXG4gXFx0XFx0ZHNhX2hlYWRlclswXSA9IChjbWQgXFx1MDAzY1xcdTAwM2MgNikgfCB0YWdfZGV2O1xcbiBcXHRcXHRkc2FfaGVhZGVyWzFdID0gdGFnX3BvcnQgXFx1MDAzY1xcdTAwM2MgMztcXG4tXFx0XFx0ZHNhX2hlYWRlclsyXSA9IHZpZCBcXHUwMDNlXFx1MDAzZSA4O1xcbitcXHRcXHRkc2FfaGVhZGVyWzJdID0gKHF1ZXVlIFxcdTAwM2NcXHUwMDNjIDUpIHwgdmlkIFxcdTAwM2VcXHUwMDNlIDg7XFxuIFxcdFxcdGRzYV9oZWFkZXJbM10gPSB2aWQgXFx1MDAyNiAweGZmO1xcbiBcXHR9XFxuIFxcbmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2Nicy5jIGIvbmV0L3NjaGVkL3NjaF9jYnMuY1xcbmluZGV4IDFjOTM0NjljNTZlM2QuLjg3YzJlZGExMDhjOGMgMTAwNjQ0XFxuLS0tIGEvbmV0L3NjaGVkL3NjaF9jYnMuY1xcbisrKyBiL25ldC9zY2hlZC9zY2hfY2JzLmNcXG5AQCAtMzA3LDEwICszMDcsMTIgQEAgc3RhdGljIGludCBjYnNfZW5hYmxlX29mZmxvYWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGNic19zY2hlZF9kYXRhICpxLFxcbiBcXHRjYnMubG9jcmVkaXQgPSBvcHQtXFx1MDAzZWxvY3JlZGl0O1xcbiBcXHRjYnMuaWRsZXNsb3BlID0gb3B0LVxcdTAwM2VpZGxlc2xvcGU7XFxuIFxcdGNicy5zZW5kc2xvcGUgPSBvcHQtXFx1MDAzZXNlbmRzbG9wZTtcXG4rXFx0Y2JzLmV4dGFjayA9IGV4dGFjaztcXG4gXFxuIFxcdGVyciA9IG9wcy1cXHUwMDNlbmRvX3NldHVwX3RjKGRldiwgVENfU0VUVVBfUURJU0NfQ0JTLCBcXHUwMDI2Y2JzKTtcXG4gXFx0aWYgKGVyciBcXHUwMDNjIDApIHtcXG4tXFx0XFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLCBcXFwiU3BlY2lmaWVkIGRldmljZSBmYWlsZWQgdG8gc2V0dXAgY2JzIGhhcmR3YXJlIG9mZmxvYWRcXFwiKTtcXG4rXFx0XFx0TkxfU0VUX0VSUl9NU0dfV0VBSyhleHRhY2ssXFxuK1xcdFxcdFxcdFxcdCAgICBcXFwiU3BlY2lmaWVkIGRldmljZSBmYWlsZWQgdG8gc2V0dXAgY2JzIGhhcmR3YXJlIG9mZmxvYWRcXFwiKTtcXG4gXFx0XFx0cmV0dXJuIGVycjtcXG4gXFx0fVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6MzcuNTQwMjM3NzYxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzM0NTMzNTc3ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHByaW1hcmlseSBhZGRzIDgwMi4xUWF2IENCUyBvZmZsb2FkaW5nIHN1cHBvcnQgdG8gdGhlIE1hcnZlbGwgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGRyaXZlciBjYW5ub3QgYmUgZXhlcmNpc2VkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoZSBjaGFuZ2VzIGluIG5ldC9kc2EvdGFnX2RzYS5jIGFyZSBzcGVjaWZpYyB0byB0aGUgRFNBIHRhZyBwcm90b2NvbCB1c2VkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgZHJpdmVyLiBUaGUgbW9kaWZpY2F0aW9uIGluIG5ldC9zY2hlZC9zY2hfY2JzLmMgaXMgYSB0cml2aWFsIGNoYW5nZSB0byBwYXNzIGV4dGFjayBkb3duIHRvIHRoZSBkcml2ZXIgYW5kIHVzZSBOTF9TRVRfRVJSX01TR19XRUFLLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgcmVxdWlyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1MjJiNGY0NjliOGZmNTNkMTQxNmZhNGRhOTc5ZTNmNDE1Zjg1MDc5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MzYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5pbmRleCA4MGI4NzdjNzQ1MTNkLi5hNTY3ZWU5YjZjZTBkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5AQCAtMzIsNiArMzIsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2dwaW8vY29uc3VtZXIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeWxpbmsuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC9kc2EuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY25ldC9wa3Rfc2NoZWQuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFwiY2hpcC5oXCJcbiAjaW5jbHVkZSBcImRldmxpbmsuaFwiXG5AQCAtMzk5MCw2ICszOTkxLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFxuIFx0Y2hpcC1cdTAwM2VkcyA9IGRzO1xuIFx0ZHMtXHUwMDNldXNlcl9taWlfYnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XG4rXHRkcy1cdTAwM2VudW1fdHhfcXVldWVzID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW51bV90eF9xdWV1ZXM7XG4gXG4gXHQvKiBTaW5jZSB2aXJ0dWFsIGJyaWRnZXMgYXJlIG1hcHBlZCBpbiB0aGUgUFZULCB0aGUgbnVtYmVyIHdlIHN1cHBvcnRcbiBcdCAqIGRlcGVuZHMgb24gdGhlIHBoeXNpY2FsIHN3aXRjaCB0b3BvbG9neS4gV2UgbmVlZCB0byBsZXQgRFNBIGZpZ3VyZVxuQEAgLTUwMjMsNiArNTAyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYyNDBfb3BzID0ge1xuIFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuK1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTUzMDYsNiArNTMwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNDFfb3BzID0ge1xuIFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuK1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU0NjQsNiArNTQ2OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNTJfb3BzID0ge1xuIFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuK1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU1MzMsNiArNTUzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTBfb3BzID0ge1xuIFx0LnBvcnRfZ2V0X2Ntb2RlID0gbXY4OGU2MzUyX3BvcnRfZ2V0X2Ntb2RlLFxuIFx0LnBvcnRfc2V0X2Ntb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X2Ntb2RlLFxuIFx0LnBvcnRfc2V0dXBfbWVzc2FnZV9wb3J0ID0gbXY4OGU2eHh4X3NldHVwX21lc3NhZ2VfcG9ydCxcbitcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxuIFx0LnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LFxuIFx0LnN0YXRzX3NldF9oaXN0b2dyYW0gPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc2V0X2hpc3RvZ3JhbSxcbiBcdC5zdGF0c19nZXRfc3NldF9jb3VudCA9IG12ODhlNjMyMF9zdGF0c19nZXRfc3NldF9jb3VudCxcbkBAIC01NTk3LDYgKzU2MDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkweF9vcHMgPSB7XG4gXHQucG9ydF9nZXRfY21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9nZXRfY21vZGUsXG4gXHQucG9ydF9zZXRfY21vZGUgPSBtdjg4ZTYzOTB4X3BvcnRfc2V0X2Ntb2RlLFxuIFx0LnBvcnRfc2V0dXBfbWVzc2FnZV9wb3J0ID0gbXY4OGU2eHh4X3NldHVwX21lc3NhZ2VfcG9ydCxcbitcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxuIFx0LnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LFxuIFx0LnN0YXRzX3NldF9oaXN0b2dyYW0gPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc2V0X2hpc3RvZ3JhbSxcbiBcdC5zdGF0c19nZXRfc3NldF9jb3VudCA9IG12ODhlNjMyMF9zdGF0c19nZXRfc3NldF9jb3VudCxcbkBAIC01NjUzLDYgKzU2NjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkzeF9vcHMgPSB7XG4gXHQucG9ydF9zZXRfZXRoZXJfdHlwZSA9IG12ODhlNjM5M3hfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuK1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjM5MF9wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU2OTUsNiArNTcwMywyNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkzeF9vcHMgPSB7XG4gXHQudGNhbV9vcHMgPSBcdTAwMjZtdjg4ZTYzOTNfdGNhbV9vcHMsXG4gfTtcbiBcbitzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzNTJfcWF2X2luZm8gPSB7XG4rXHQucmF0ZV91bml0ID0gMzIsXG4rXHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNCwgMCksXG4rXHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxNCwgMCksXG4rXHQucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksXG4rfTtcbitcbitzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzNDFfcWF2X2luZm8gPSB7XG4rXHQucmF0ZV91bml0ID0gNjQsXG4rXHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNSwgMCksXG4rXHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksXG4rXHQucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksXG4rfTtcbitcbitzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzOTBfcWF2X2luZm8gPSB7XG4rXHQucmF0ZV91bml0ID0gNjQsXG4rXHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNSwgMCksXG4rXHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksXG4rXHQucXVldWVfbWFzayA9IEdFTk1BU0soNywgMCksXG4rfTtcbitcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0W01WODhFNjAyMF0gPSB7XG4gXHRcdC5wcm9kX251bSA9IE1WODhFNlhYWF9QT1JUX1NXSVRDSF9JRF9QUk9EXzYwMjAsXG5AQCAtNTcwNiw2ICs1NzM1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0ICovXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgyKSB8IEJJVCgzKSB8IEJJVCg0KSxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDgsXG5AQCAtNTcyOCw2ICs1NzU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA2NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDA4LFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MDAsXG5AQCAtNTc1MCw2ICs1NzgxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDEwLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01Nzc0LDYgKzU4MDYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC01Nzk1LDYgKzU4MjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTU4MjAsNiArNTg1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDEwMjQsXG4gXHRcdC5udW1fcG9ydHMgPSAzLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01ODQ1LDYgKzU4ODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gOCxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTU4NjcsNiArNTkwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuIFx0XHQubnVtX2dwaW8gPSAxMSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTg5Miw2ICs1OTI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gMTAyNCxcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTU5MTgsNiArNTk1Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAwLFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTQzLDYgKzU5ODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTk2OSw2ICs2MDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTk0LDYgKzYwMzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNjAyMCw2ICs2MDYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02MDQ1LDYgKzYwODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTAsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MDY4LDYgKzYxMTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MDkzLDYgKzYxMzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MTE3LDYgKzYxNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSAxNjM4NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MTQyLDYgKzYxODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTYxNjgsNiArNjIxNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5udW1fdGNhbV9lbnRyaWVzID0gMjU2LFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTYxOTgsNiArNjI0Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuIFx0XHQuaW52YWxpZF9wb3J0X21hc2sgPSBCSVQoMikgfCBCSVQoMykgfCBCSVQoNCksXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDA4LFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MDAsXG5AQCAtNjIyMiw2ICs2MjcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02MjM3LDYgKzYyODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubXVsdGlfY2hpcCA9IHRydWUsXG4gXHRcdC5lZHNhX3N1cHBvcnQgPSBNVjg4RTZYWFhfRURTQV9TVVBQT1JURUQsXG4gXHRcdC5wdHBfc3VwcG9ydCA9IHRydWUsXG4rXHRcdC5xYXYgPSBcdTAwMjZtdjg4ZTYzNTJfcWF2X2luZm8sXG4gXHRcdC5vcHMgPSBcdTAwMjZtdjg4ZTYyNDBfb3BzLFxuIFx0fSxcbiBcbkBAIC02MjQ3LDYgKzYyOTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDY0LFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MDgsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwMCxcbkBAIC02MjcxLDYgKzYzMjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjI5OSw2ICs2MzUzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMixcbiBcdFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMyxcbiBcdFx0Lm51bV9ncGlvID0gMTUsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYzMjcsNiArNjM4Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXG4gXHRcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDMsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02MzU0LDYgKzY0MTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9ncGlvID0gMTEsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYzNjksNiArNjQyNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5tdWx0aV9jaGlwID0gdHJ1ZSxcbiBcdFx0LmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCxcbiBcdFx0LnB0cF9zdXBwb3J0ID0gdHJ1ZSxcbitcdFx0LnFhdiA9IFx1MDAyNm12ODhlNjM0MV9xYXZfaW5mbyxcbiBcdFx0Lm9wcyA9IFx1MDAyNm12ODhlNjM0MV9vcHMsXG4gXHR9LFxuIFxuQEAgLTYzODAsNiArNjQzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02NDA1LDYgKzY0NjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNjQzMSw2ICs2NDkxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02NDQ2LDYgKzY1MDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubXVsdGlfY2hpcCA9IHRydWUsXG4gXHRcdC5lZHNhX3N1cHBvcnQgPSBNVjg4RTZYWFhfRURTQV9TVVBQT1JURUQsXG4gXHRcdC5wdHBfc3VwcG9ydCA9IHRydWUsXG4rXHRcdC5xYXYgPSBcdTAwMjZtdjg4ZTYzNTJfcWF2X2luZm8sXG4gXHRcdC5vcHMgPSBcdTAwMjZtdjg4ZTYzNTJfb3BzLFxuIFx0fSxcbiBcdFtNVjg4RTYzNjFdID0ge1xuQEAgLTY0NTksNiArNjUyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgxKSB8IEJJVCgyKSB8IEJJVCg4KSxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMyxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02NDg1LDYgKzY1NDgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjUwMSw2ICs2NTY1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuK1x0XHQucWF2ID0gXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxuIFx0XHQub3BzID0gXHUwMDI2bXY4OGU2MzkwX29wcyxcbiBcdH0sXG4gXHRbTVY4OEU2MzkwWF0gPSB7XG5AQCAtNjUxMiw2ICs2NTc3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbiBcdFx0Lm51bV9ncGlvID0gMTYsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjUyNyw2ICs2NTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuK1x0XHQucWF2ID0gXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxuIFx0XHQub3BzID0gXHUwMDI2bXY4OGU2MzkweF9vcHMsXG4gXHR9LFxuIFxuQEAgLTY1MzgsNiArNjYwNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5udW1fdGNhbV9lbnRyaWVzID0gMjU2LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDEsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbkBAIC02NTU0LDYgKzY2MjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQucHZ0ID0gdHJ1ZSxcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuK1x0XHQucWF2ID0gXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxuIFx0XHQub3BzID0gXHUwMDI2bXY4OGU2MzkzeF9vcHMsXG4gXHR9LFxuIH07XG5AQCAtNzE3NSw2ICs3MjQ0LDExMiBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9jcm9zc2NoaXBfbGFnX2xlYXZlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHN3X2luZGV4LFxuIFx0cmV0dXJuIGVycl9zeW5jID8gOiBlcnJfcHZ0O1xuIH1cbiBcbitzdGF0aWMgaW50IG12ODhlNnh4eF9zZXR1cF90Y19jYnMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbitcdFx0XHRcdCAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQgKmNicylcbit7XG4rXHRjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgKmF2Yl9vcHM7XG4rXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkcy1cdTAwM2Vwcml2O1xuK1x0Y29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyAqcWF2O1xuK1x0Y29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgKm9wcztcbitcdGludCBoaWxpbWl0X3JlZztcbitcdGludCByYXRlX3JlZztcbitcdHU4IHF1ZXVlX2JpdDtcbitcdHUzMiByYXRlID0gMDtcbitcdHUxNiBoaWxpbWl0O1xuK1x0aW50IGVycjtcbitcbitcdG9wcyA9IGNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHM7XG4rXHRhdmJfb3BzID0gb3BzLVx1MDAzZWF2Yl9vcHM7XG4rXHRxYXYgPSBjaGlwLVx1MDAzZWluZm8tXHUwMDNlcWF2O1xuK1xuK1x0aWYgKCFxYXYgfHwgIWF2Yl9vcHMgfHwgIWF2Yl9vcHMtXHUwMDNlcG9ydF9xYXZfd3JpdGUgfHxcbitcdCAgICAhb3BzLVx1MDAzZXBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0aWYgKCFkc2FfaXNfdXNlcl9wb3J0KGRzLCBwb3J0KSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0aWYgKCEocWF2LVx1MDAzZXF1ZXVlX21hc2sgXHUwMDI2IEJJVChjYnMtXHUwMDNlcXVldWUpKSkge1xuK1x0XHROTF9TRVRfRVJSX01TR19NT0QoY2JzLVx1MDAzZWV4dGFjaywgXCJDQlMgbm90IHN1cHBvcnRlZCBvbiBxdWV1ZVwiKTtcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1x0fVxuK1xuK1x0cXVldWVfYml0ID0gQklUKGNicy1cdTAwM2VxdWV1ZSk7XG4rXHRyYXRlX3JlZyA9IE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfUkFURShjYnMtXHUwMDNlcXVldWUpO1xuK1x0aGlsaW1pdF9yZWcgPSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQoY2JzLVx1MDAzZXF1ZXVlKTtcbitcbitcdGlmIChjYnMtXHUwMDNlZW5hYmxlKSB7XG4rXHRcdGlmIChjYnMtXHUwMDNlaGljcmVkaXQgXHUwMDNjPSAwIHx8XG4rXHRcdCAgICBjYnMtXHUwMDNlaGljcmVkaXQgXHUwMDNlIHFhdi1cdTAwM2VoaWxpbWl0X21hc2spIHtcbitcdFx0XHROTF9TRVRfRVJSX01TR19NT0QoY2JzLVx1MDAzZWV4dGFjayxcbitcdFx0XHRcdFx0ICAgXCJoaWNyZWRpdCBvdXQgb2YgcmFuZ2VcIik7XG4rXHRcdFx0cmV0dXJuIC1FUkFOR0U7XG4rXHRcdH1cbitcbitcdFx0cmF0ZSA9IERJVl9ST1VORF9VUChjYnMtXHUwMDNlaWRsZXNsb3BlLCBxYXYtXHUwMDNlcmF0ZV91bml0KTtcbitcdFx0aWYgKHJhdGUgXHUwMDNlIHFhdi1cdTAwM2VyYXRlX21hc2spIHtcbitcdFx0XHROTF9TRVRfRVJSX01TR19NT0QoY2JzLVx1MDAzZWV4dGFjayxcbitcdFx0XHRcdFx0ICAgXCJpZGxlc2xvcGUgb3V0IG9mIHJhbmdlXCIpO1xuK1x0XHRcdHJldHVybiAtRVJBTkdFO1xuK1x0XHR9XG4rXHRcdC8qIGF2b2lkIHVzaW5nIHplcm8gcmF0ZSAqL1xuK1x0XHRyYXRlID0gbWF4X3QodTE2LCByYXRlLCAxKTtcbitcdH1cbitcbitcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbitcbitcdGlmICghY2JzLVx1MDAzZWVuYWJsZSkge1xuK1x0XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIDApO1xuK1x0XHRpZiAoZXJyKVxuK1x0XHRcdGdvdG8gdW5sb2NrO1xuK1xuK1x0XHRpZiAoIShjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNic19hY3RpdmVfcXVldWVzIFx1MDAyNiB+cXVldWVfYml0KSkge1xuK1x0XHRcdGVyciA9IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCwgMCk7XG4rXHRcdFx0aWYgKGVycilcbitcdFx0XHRcdGdvdG8gdW5sb2NrO1xuK1x0XHR9XG4rXHRcdGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgXHUwMDI2PSB+cXVldWVfYml0O1xuK1x0XHRnb3RvIHVubG9jaztcbitcdH1cbitcbitcdGhpbGltaXQgPSBjYnMtXHUwMDNlaGljcmVkaXQgXHUwMDI2IHFhdi1cdTAwM2VoaWxpbWl0X21hc2s7XG4rXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgaGlsaW1pdF9yZWcsIGhpbGltaXQpO1xuK1x0aWYgKGVycilcbitcdFx0Z290byB1bmxvY2s7XG4rXG4rXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIHJhdGUpO1xuK1x0aWYgKGVycilcbitcdFx0Z290byB1bmxvY2s7XG4rXG4rXHRpZiAoIWNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMpIHtcbitcdFx0dTggc2NoZWRfbW9kZSA9IGNoaXAtXHUwMDNlaW5mby1cdTAwM2VudW1fdHhfcXVldWVzIC0gMTtcbitcbitcdFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShjaGlwLCBwb3J0LFxuK1x0XHRcdFx0XHRcdFx0IHNjaGVkX21vZGUpO1xuK1x0XHRpZiAoZXJyKSB7XG4rXHRcdFx0bXY4OGU2eHh4X3BvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIHJhdGVfcmVnLCAwKTtcbitcdFx0XHRnb3RvIHVubG9jaztcbitcdFx0fVxuK1x0fVxuK1x0Y2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jYnNfYWN0aXZlX3F1ZXVlcyB8PSBxdWV1ZV9iaXQ7XG4rXG4rdW5sb2NrOlxuK1x0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG4rXG4rXHRyZXR1cm4gZXJyO1xuK31cbitcbitzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3NldHVwX3RjKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4rXHRcdFx0XHQgICBlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhKVxuK3tcbitcdHN3aXRjaCAodHlwZSkge1xuK1x0Y2FzZSBUQ19TRVRVUF9RRElTQ19DQlM6XG4rXHRcdHJldHVybiBtdjg4ZTZ4eHhfc2V0dXBfdGNfY2JzKGRzLCBwb3J0LCB0eXBlX2RhdGEpO1xuK1x0ZGVmYXVsdDpcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1x0fVxuK31cbitcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfbWFjX29wcyBtdjg4ZTZ4eHhfcGh5bGlua19tYWNfb3BzID0ge1xuIFx0Lm1hY19zZWxlY3RfcGNzXHRcdD0gbXY4OGU2eHh4X21hY19zZWxlY3RfcGNzLFxuIFx0Lm1hY19wcmVwYXJlXHRcdD0gbXY4OGU2eHh4X21hY19wcmVwYXJlLFxuQEAgLTcyMzQsNiArNzQwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgbXY4OGU2eHh4X3N3aXRjaF9vcHMgPSB7XG4gXHQucG9ydF9od3RzdGFtcF9nZXRcdD0gbXY4OGU2eHh4X3BvcnRfaHd0c3RhbXBfZ2V0LFxuIFx0LnBvcnRfdHh0c3RhbXBcdFx0PSBtdjg4ZTZ4eHhfcG9ydF90eHRzdGFtcCxcbiBcdC5wb3J0X3J4dHN0YW1wXHRcdD0gbXY4OGU2eHh4X3BvcnRfcnh0c3RhbXAsXG4rXHQucG9ydF9zZXR1cF90Y1x0XHQ9IG12ODhlNnh4eF9wb3J0X3NldHVwX3RjLFxuIFx0LmNsc19mbG93ZXJfYWRkXHRcdD0gbXY4OGU2eHh4X2Nsc19mbG93ZXJfYWRkLFxuIFx0LmNsc19mbG93ZXJfZGVsICAgICAgICAgPSBtdjg4ZTZ4eHhfY2xzX2Zsb3dlcl9kZWwsXG4gXHQuZ2V0X3RzX2luZm9cdFx0PSBtdjg4ZTZ4eHhfZ2V0X3RzX2luZm8sXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuaW5kZXggZTk2NmU3YzRjYzVkZS4uZDQyZDgzOWU2MzZiYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuQEAgLTEyNSw2ICsxMjUsNyBAQCBlbnVtIG12ODhlNnh4eF9lZHNhX3N1cHBvcnQge1xuIH07XG4gXG4gc3RydWN0IG12ODhlNnh4eF9vcHM7XG4rc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbztcbiBcbiBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0ZW51bSBtdjg4ZTZ4eHhfZmFtaWx5IGZhbWlseTtcbkBAIC0xMzYsNiArMTM3LDcgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHtcbiBcdHVuc2lnbmVkIGludCBudW1faW50ZXJuYWxfcGh5cztcbiBcdHVuc2lnbmVkIGludCBudW1fZ3BpbztcbiBcdHVuc2lnbmVkIGludCBudW1fdGNhbV9lbnRyaWVzO1xuK1x0dW5zaWduZWQgaW50IG51bV90eF9xdWV1ZXM7XG4gXHR1bnNpZ25lZCBpbnQgbWF4X3ZpZDtcbiBcdHVuc2lnbmVkIGludCBtYXhfc2lkO1xuIFx0dW5zaWduZWQgaW50IHBvcnRfYmFzZV9hZGRyO1xuQEAgLTE3Niw2ICsxNzgsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0LyogU3VwcG9ydHMgUFRQICovXG4gXHRib29sIHB0cF9zdXBwb3J0O1xuIFxuK1x0LyogODAyLjFRYXYgY3JlZGl0IGJhc2VkIHNoYXBpbmcgKi9cbitcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gKnFhdjtcbitcbiBcdC8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0XG4gXHQgKiBwb3J0IDAsIDEgbWVhbnMgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXQgcG9ydCAxLCBldGNcbiBcdCAqL1xuQEAgLTMwNCw2ICszMDksOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X3BvcnQge1xuIFxuIFx0LyogTWFjQXV0aCBCeXBhc3MgY29udHJvbCBmbGFnICovXG4gXHRib29sIG1hYjtcbitcbitcdC8qIFF1ZXVlcyB3aXRoIENCUyBjdXJyZW50bHkgZW5hYmxlZC4gKi9cbitcdHU4IGNic19hY3RpdmVfcXVldWVzO1xuIH07XG4gXG4gZW51bSBtdjg4ZTZ4eHhfcmVnaW9uX2lkIHtcbkBAIC02MDYsNiArNjE0LDggQEAgc3RydWN0IG12ODhlNnh4eF9vcHMge1xuIFx0XHRcdFx0ICAgc2l6ZV90IHNpemUpO1xuIFxuIFx0aW50ICgqcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZykoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG4rXHRpbnQgKCpwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4rXHRcdFx0XHRcdHU4IG1vZGUpO1xuIFx0aW50ICgqcG9ydF9wYXVzZV9saW1pdCkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgdTggaW4sXG4gXHRcdFx0XHR1OCBvdXQpO1xuIFx0aW50ICgqcG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0KShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbkBAIC03NjMsNiArNzczLDEwIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyB7XG4gXHRpbnQgKCp0YWlfcmVhZCkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgdTE2ICpkYXRhLFxuIFx0XHRcdGludCBsZW4pO1xuIFx0aW50ICgqdGFpX3dyaXRlKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCB1MTYgZGF0YSk7XG4rXG4rXHQvKiBBY2Nlc3MgcG9ydC1zY29wZWQgODAyLjFRYXYgcmVnaXN0ZXJzICovXG4rXHRpbnQgKCpwb3J0X3Fhdl93cml0ZSkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsXG4rXHRcdFx0ICAgICAgdTE2IGRhdGEpO1xuIH07XG4gXG4gc3RydWN0IG12ODhlNnh4eF9wdHBfb3BzIHtcbkBAIC03OTgsNiArODEyLDEzIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfdGNhbV9vcHMge1xuIFx0aW50ICgqZmx1c2hfdGNhbSkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcbiB9O1xuIFxuK3N0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8ge1xuK1x0dTE2IHJhdGVfdW5pdDsgLyogaW4ga2JwcyAqL1xuK1x0dTE2IHJhdGVfbWFzazsgLyogUVByaSBSYXRlIHZhbGlkIGJpdHMgbWFzayAqL1xuK1x0dTE2IGhpbGltaXRfbWFzazsgLyogUVByaSBIaUxpbWl0IGJpdHMgbWFzayovXG4rXHR1OCBxdWV1ZV9tYXNrOyAvKiBzdXBwb3J0ZWQgcXVldWVzIGJpdG1hc2sgKi9cbit9O1xuK1xuIHN0YXRpYyBpbmxpbmUgYm9vbCBtdjg4ZTZ4eHhfaGFzX3N0dShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG4ge1xuIFx0cmV0dXJuIGNoaXAtXHUwMDNlaW5mby1cdTAwM2VtYXhfc2lkIFx1MDAzZSAwIFx1MDAyNlx1MDAyNlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmhcbmluZGV4IGZmNWFkZjdjOWJjM2EuLmRmNTJmZjNhZGM4OGMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaFxuKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmhcbkBAIC0xODYsNiArMTg2LDkgQEBcbiAjZGVmaW5lIE1WODhFNjM1Ml9HMl9BVkJfQ01EX0JMT0NLX01BU0tcdFx0MHgwMGUwXG4gI2RlZmluZSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9BRERSX01BU0tcdFx0MHgwMDFmXG4gXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX1JBVEUocXVldWUpXHQoKChxdWV1ZSkgXHUwMDI2IDB4NykgXHUwMDNjXHUwMDNjIDEpXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQocXVldWUpXHQoKCgocXVldWUpIFx1MDAyNiAweDcpIFx1MDAzY1x1MDAzYyAxKSArIDEpXG4rXG4gLyogT2Zmc2V0IDB4MTc6IEFWQiBEYXRhIFJlZ2lzdGVyICovXG4gI2RlZmluZSBNVjg4RTYzNTJfRzJfQVZCX0RBVEFcdFx0MHgxN1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuY1xuaW5kZXggNjU3NzgzZTA0M2ZmMS4uNmI1NGUyNzVkMjFhYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuY1xuKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyX2F2Yi5jXG5AQCAtMTEwLDYgKzExMCwxNSBAQCBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9wdHBfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuIFx0cmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7XG4gfVxuIFxuK3N0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4rXHRcdFx0XHRcdCAgIGludCBwb3J0LCBpbnQgYWRkciwgdTE2IGRhdGEpXG4re1xuK1x0dTE2IHdyaXRlb3AgPSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9PUF9XUklURSB8IChwb3J0IFx1MDAzY1x1MDAzYyA4KSB8XG4rXHRcdCAgICAgIChNVjg4RTYzNTJfRzJfQVZCX0NNRF9CTE9DS19RQVYgXHUwMDNjXHUwMDNjIDUpIHwgYWRkcjtcbitcbitcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xuK31cbitcbiBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkcixcbiBcdFx0XHRcdCAgICAgdTE2ICpkYXRhLCBpbnQgbGVuKVxuIHtcbkBAIC0xNDksNiArMTU4LDcgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjM1Ml9hdmJfb3BzID0ge1xuIFx0LnB0cF93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3dyaXRlLFxuIFx0LnRhaV9yZWFkXHRcdD0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfcmVhZCxcbiBcdC50YWlfd3JpdGVcdFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3RhaV93cml0ZSxcbitcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbiBcbiBzdGF0aWMgaW50IG12ODhlNjE2NV9nMl9hdmJfdGFpX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkcixcbkBAIC0xNzQsNiArMTg0LDcgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjE2NV9hdmJfb3BzID0ge1xuIFx0LnB0cF93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3dyaXRlLFxuIFx0LnRhaV9yZWFkXHRcdD0gbXY4OGU2MTY1X2cyX2F2Yl90YWlfcmVhZCxcbiBcdC50YWlfd3JpdGVcdFx0PSBtdjg4ZTYxNjVfZzJfYXZiX3RhaV93cml0ZSxcbitcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbiBcbiBzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG5AQCAtMTk3LDYgKzIwOCwxNSBAQCBzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9wdHBfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuIFx0cmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7XG4gfVxuIFxuK3N0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4rXHRcdFx0XHRcdCAgIGludCBwb3J0LCBpbnQgYWRkciwgdTE2IGRhdGEpXG4re1xuK1x0dTE2IHdyaXRlb3AgPSBNVjg4RTYzOTBfRzJfQVZCX0NNRF9PUF9XUklURSB8IChwb3J0IFx1MDAzY1x1MDAzYyA4KSB8XG4rXHRcdCAgICAgIChNVjg4RTYzNTJfRzJfQVZCX0NNRF9CTE9DS19RQVYgXHUwMDNjXHUwMDNjIDUpIHwgYWRkcjtcbitcbitcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xuK31cbitcbiBzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcHRwX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkcixcbiBcdFx0XHRcdCAgICAgdTE2ICpkYXRhLCBpbnQgbGVuKVxuIHtcbkBAIC0yMzYsNCArMjU2LDUgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjM5MF9hdmJfb3BzID0ge1xuIFx0LnB0cF93cml0ZVx0XHQ9IG12ODhlNjM5MF9nMl9hdmJfcHRwX3dyaXRlLFxuIFx0LnRhaV9yZWFkXHRcdD0gbXY4OGU2MzkwX2cyX2F2Yl90YWlfcmVhZCxcbiBcdC50YWlfd3JpdGVcdFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV93cml0ZSxcbitcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXG5pbmRleCBlYTFmYWI3MTk2OGEwLi43NThiOGQ0MWY0ODUzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXG5AQCAtMTMyMyw2ICsxMzIzLDUxIEBAIGludCBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuIFx0XHRcdFx0ICAgIDB4MDAwMSk7XG4gfVxuIFxuK2ludCBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4rXHRcdFx0XHQgICAgICAgdTggbW9kZSlcbit7XG4rXHR1MTYgcmVnO1xuK1x0aW50IGVycjtcbitcbitcdGlmIChtb2RlIFx1MDAzZSAzKVxuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbitcbitcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMixcbitcdFx0XHRcdCAgXHUwMDI2cmVnKTtcbitcdGlmIChlcnIpXG4rXHRcdHJldHVybiBlcnI7XG4rXG4rXHRyZWcgXHUwMDI2PSB+TVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9NQVNLO1xuK1x0cmVnIHw9IG1vZGUgXHUwMDNjXHUwMDNjIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfU0hJRlQ7XG4rXG4rXHRyZXR1cm4gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCxcbitcdFx0XHRcdCAgICBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyLCByZWcpO1xuK31cbitcbitpbnQgbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuK1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpXG4re1xuK1x0dTE2IHJlZztcbitcdGludCBlcnI7XG4rXG4rXHRpZiAobW9kZSBcdTAwM2UgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFX01BU0spXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1xuK1x0cmVnID0gTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURSB8XG4rXHQgICAgICAoTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFIFx1MDAzY1x1MDAzY1xuK1x0ICAgICAgIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfU0hJRlQpIHxcbitcdCAgICAgIChtb2RlIFx1MDAyNiBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSyk7XG4rXG4rXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF93cml0ZShjaGlwLCBwb3J0LCBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVEwsXG4rXHRcdFx0XHQgICByZWcpO1xuK1x0aWYgKGVycilcbitcdFx0cmV0dXJuIGVycjtcbitcbitcdHJldHVybiBtdjg4ZTZ4eHhfcG9ydF93YWl0X2JpdChjaGlwLCBwb3J0LCBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVEwsXG4rXHRcdFx0XHQgICAgICAgX19iZl9zaGYoTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURSlcbitcdFx0XHRcdCAgICAgICAsIDApO1xuK31cbitcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cbiBcbiBpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2Fzc29jX3ZlY3RvcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuQEAgLTE3MjcsMyArMTc3MiwyMSBAQCBpbnQgbXY4OGU2MzkzeF9wb3J0X3NldF9wb2xpY3koc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiBcbiBcdHJldHVybiBtdjg4ZTYzOTN4X3BvcnRfcG9saWN5X3dyaXRlKGNoaXAsIHBvcnQsIHB0ciwgcmVnKTtcbiB9XG4rXG4raW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcbitcdFx0XHQgICAgIHUxNiBkYXRhKVxuK3tcbitcdGlmICghY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VhdmJfb3BzLVx1MDAzZXBvcnRfcWF2X3dyaXRlKVxuK1x0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4rXG4rXHRyZXR1cm4gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VhdmJfb3BzLVx1MDAzZXBvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIGFkZHIsIGRhdGEpO1xuK31cbitcbitpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuK1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpXG4re1xuK1x0aWYgKCFjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0cmV0dXJuIGNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHMtXHUwMDNlcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKGNoaXAsIHBvcnQsIG1vZGUpO1xuK31cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oXG5pbmRleCA1YjZjZGU5Zjc0MDZmLi5hMzgwZjM1NmViODNkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmhcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oXG5AQCAtMjQxLDYgKzI0MSwxOCBAQFxuIFxuIC8qIE9mZnNldCAweDBBOiBFZ3Jlc3MgUmF0ZSBDb250cm9sIDIgKi9cbiAjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJcdFx0MHgwYVxuKyNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9NQVNLXHQweDMwMDBcbisjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfU0hJRlRcdDEyXG4rXG4rLyogT2Zmc2V0IDB4MUM6IFBvcnQgUXVldWUgQ29udHJvbCAqL1xuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMXHRcdFx0MHgxY1xuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURVx0XHRcdDB4ODAwMFxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1BUUl9NQVNLXHRcdDB4N2YwMFxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1BUUl9TSElGVFx0XHQ4XG4rI2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfREFUQV9NQVNLXHRcdDB4MDBmZlxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFXHRcdDB4MDBcbisjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRV9NQVNLXHRcdDB4MDdcbitcbiBcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cbiAjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0FTU09DX1ZFQ1RPUlx0XHRcdDB4MGJcbkBAIC01NjEsNiArNTczLDEwIEBAIGludCBtdjg4ZTYxNjVfcG9ydF9zZXRfanVtYm9fc2l6ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuIFx0XHRcdFx0ICBzaXplX3Qgc2l6ZSk7XG4gaW50IG12ODhlNjA5NV9wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpO1xuIGludCBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbitpbnQgbXY4OGU2MzUyX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuK1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpO1xuK2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4rXHRcdFx0XHQgICAgICAgdTggbW9kZSk7XG4gaW50IG12ODhlNnh4eF9wb3J0X3NldF9hc3NvY192ZWN0b3Ioc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiBcdFx0XHRcdCAgICB1MTYgcGF2KTtcbiBpbnQgbXY4OGU2MDk3X3BvcnRfcGF1c2VfbGltaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgdTggaW4sXG5AQCAtNjA1LDUgKzYyMSw5IEBAIGludCBtdjg4ZTZ4eHhfcG9ydF9oaWRkZW5fcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBibG9jaywgaW50IHBvcnQsXG4gXHRcdFx0ICAgICAgIGludCByZWcsIHUxNiAqdmFsKTtcbiBcbiBpbnQgbXY4OGU2eHh4X3BvcnRfZW5hYmxlX3RjYW0oc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG4raW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcbitcdFx0XHQgICAgIHUxNiBkYXRhKTtcbitpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuK1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpO1xuIFxuICNlbmRpZiAvKiBfTVY4OEU2WFhYX1BPUlRfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oIGIvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmhcbmluZGV4IDE4YTQxOWNkOWQ5NDkuLmQzNWM4NzAwNGMyNzkgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9wa3Rfc2NoZWQuaFxuKysrIGIvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmhcbkBAIC0xNTAsNiArMTUwLDcgQEAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQge1xuIFx0czMyIGxvY3JlZGl0O1xuIFx0czMyIGlkbGVzbG9wZTtcbiBcdHMzMiBzZW5kc2xvcGU7XG4rXHRzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2s7XG4gfTtcbiBcbiBzdHJ1Y3QgdGNfZXRmX3FvcHRfb2ZmbG9hZCB7XG5kaWZmIC0tZ2l0IGEvbmV0L2RzYS90YWdfZHNhLmMgYi9uZXQvZHNhL3RhZ19kc2EuY1xuaW5kZXggZDVmZmVlMzVmYmI1My4uMmJiNzFjZDM0M2U3OSAxMDA2NDRcbi0tLSBhL25ldC9kc2EvdGFnX2RzYS5jXG4rKysgYi9uZXQvZHNhL3RhZ19kc2EuY1xuQEAgLTE3OSw4ICsxNzksMTcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpkc2FfeG1pdF9sbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdGRzYV9oZWFkZXJbMl0gXHUwMDI2PSB+MHgxMDtcbiBcdFx0fVxuIFx0fSBlbHNlIHtcbitcdFx0dTE2IHF1ZXVlID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYikgXHUwMDI2IDB4NztcbiBcdFx0dTE2IHZpZDtcbiBcbitcdFx0LyogVGhlIFBSSSBmaWVsZCBpcyAzIGJpdHMuIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiB0aGVcbitcdFx0ICogMiBoaWdoZXN0IGJpdHMgc3BlY2lmeSB0aGUgZWdyZXNzIHF1ZXVlIGluIEZyb21fQ1BVIERTQVxuK1x0XHQgKiB0YWdnZWQgZnJhbWVzLiBPbiBkZXZpY2VzIHdpdGggOCBxdWV1ZXMgaXQncyBwb3NzaWJsZSB0b1xuK1x0XHQgKiBzZW5kIHRvIHRoZSA4IHF1ZXVlcywgd2hpY2ggbWVhbnMgdGhlIDMgYml0cyBhcmUgdXNlZC5cbitcdFx0ICovXG4rXHRcdGlmIChkcC1cdTAwM2Vkcy1cdTAwM2VudW1fdHhfcXVldWVzID09IDQpXG4rXHRcdFx0cXVldWUgXHUwMDNjXHUwMDNjPSAxO1xuK1xuIFx0XHR2aWQgPSBicl9kZXYgPyBNVjg4RTZYWFhfVklEX0JSSURHRUQgOiBNVjg4RTZYWFhfVklEX1NUQU5EQUxPTkU7XG4gXG4gXHRcdHNrYl9wdXNoKHNrYiwgRFNBX0hMRU4gKyBleHRyYSk7XG5AQCAtMTkxLDcgKzIwMCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZHNhX3htaXRfbGwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcbiBcdFx0ZHNhX2hlYWRlclswXSA9IChjbWQgXHUwMDNjXHUwMDNjIDYpIHwgdGFnX2RldjtcbiBcdFx0ZHNhX2hlYWRlclsxXSA9IHRhZ19wb3J0IFx1MDAzY1x1MDAzYyAzO1xuLVx0XHRkc2FfaGVhZGVyWzJdID0gdmlkIFx1MDAzZVx1MDAzZSA4O1xuK1x0XHRkc2FfaGVhZGVyWzJdID0gKHF1ZXVlIFx1MDAzY1x1MDAzYyA1KSB8IHZpZCBcdTAwM2VcdTAwM2UgODtcbiBcdFx0ZHNhX2hlYWRlclszXSA9IHZpZCBcdTAwMjYgMHhmZjtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2Nicy5jIGIvbmV0L3NjaGVkL3NjaF9jYnMuY1xuaW5kZXggMWM5MzQ2OWM1NmUzZC4uODdjMmVkYTEwOGM4YyAxMDA2NDRcbi0tLSBhL25ldC9zY2hlZC9zY2hfY2JzLmNcbisrKyBiL25ldC9zY2hlZC9zY2hfY2JzLmNcbkBAIC0zMDcsMTAgKzMwNywxMiBAQCBzdGF0aWMgaW50IGNic19lbmFibGVfb2ZmbG9hZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgY2JzX3NjaGVkX2RhdGEgKnEsXG4gXHRjYnMubG9jcmVkaXQgPSBvcHQtXHUwMDNlbG9jcmVkaXQ7XG4gXHRjYnMuaWRsZXNsb3BlID0gb3B0LVx1MDAzZWlkbGVzbG9wZTtcbiBcdGNicy5zZW5kc2xvcGUgPSBvcHQtXHUwMDNlc2VuZHNsb3BlO1xuK1x0Y2JzLmV4dGFjayA9IGV4dGFjaztcbiBcbiBcdGVyciA9IG9wcy1cdTAwM2VuZG9fc2V0dXBfdGMoZGV2LCBUQ19TRVRVUF9RRElTQ19DQlMsIFx1MDAyNmNicyk7XG4gXHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4tXHRcdE5MX1NFVF9FUlJfTVNHKGV4dGFjaywgXCJTcGVjaWZpZWQgZGV2aWNlIGZhaWxlZCB0byBzZXR1cCBjYnMgaGFyZHdhcmUgb2ZmbG9hZFwiKTtcbitcdFx0TkxfU0VUX0VSUl9NU0dfV0VBSyhleHRhY2ssXG4rXHRcdFx0XHQgICAgXCJTcGVjaWZpZWQgZGV2aWNlIGZhaWxlZCB0byBzZXR1cCBjYnMgaGFyZHdhcmUgb2ZmbG9hZFwiKTtcbiBcdFx0cmV0dXJuIGVycjtcbiBcdH1cbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjM3LjU0MDIzOTExMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0OTE4NTM3MzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTGludXggS2VybmVsIFBhdGNoIGZvciBDQlMgT2ZmbG9hZGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEga2VybmVsIHBhdGNoIGhlcmUuIEl0J3MgbWFraW5nIGZ1bmN0aW9uYWwgY2hhbmdlcywgc3BlY2lmaWNhbGx5IGFkZGluZyBvZmZsb2FkaW5nIHN1cHBvcnQgZm9yIDgwMi4xUWF2IENyZWRpdCBCYXNlZCBTaGFwZXIgKENCUykgdG8gdGhlIE1hcnZlbGwgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBUaGUgZmlsZXMgbW9kaWZpZWQgZ2l2ZSBtZSBhIGNsZWFyIHBpY3R1cmU6IGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2AgLSBhIGJ1bmNoIG9mIHRoZSBjb3JlIGRyaXZlciBmaWxlcyB0aGVyZSAtIHRoZW4sIGltcG9ydGFudGx5LCBgaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmhgLCBhbmQgYG5ldC9kc2EvdGFnX2RzYS5jYCBhbmQgYG5ldC9zY2hlZC9zY2hfY2JzLmNgLiBUaGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIGFzIGl0IGlzIG1vZGlmeWluZyB0aGUgRFNBIHRhZyBhbmQgQ0JTIGNvZGUgZm9yIEZyb21fQ1BVIGZyYW1lcy5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKnRlc3QqIHRoaXMgZWZmZWN0aXZlbHk/IFRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgaXMgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcywgc28gd2UncmUgdGFsa2luZyBhYm91dCBhIGhhcmR3YXJlIGRlcGVuZGVuY3kg4oCTIHRoZXNlIERTQSBkcml2ZXJzIGFyZSB1c3VhbGx5IGluIGVtYmVkZGVkIHN5c3RlbXMgd2l0aCBwaHlzaWNhbCBzd2l0Y2ggY2hpcHMuIEkgbmVlZCB0byBiZSBhYmxlIHRvIHJlcGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSB0aGF0IHRoZSBwYXRjaCBpbnRyb2R1Y2VzLCB3aGljaCBpcyBub3cgQ0JTIG9mZmxvYWRpbmcuXG5cbkNhbiBJIGdldCB0aGlzIHJ1bm5pbmcgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhlIE1hcnZlbGwgODhFNnh4eCBkaXJlY3RseS4gSG93ZXZlciwgdGhlIHBhdGNoIGFsc28gdG91Y2hlcyB0aGUgY29yZSBuZXR3b3JrIHNjaGVkdWxpbmcgKGBuZXQvc2NoZWQvc2NoX2Nicy5jYCkgYW5kIHRoZSBEU0EgdGFnZ2luZyAoYG5ldC9kc2EvdGFnX2RzYS5jYCkgbGF5ZXJzLiBUaGUgQ0JTIHFkaXNjIGl0c2VsZiBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gTm93LCBgdGFnX2RzYS5jYCBpcyB0aGUgRFNBIHRhZ2dpbmcgcHJvdG9jb2wuIEkgbWF5IGJlIGFibGUgdG8gaW5zdGFudGlhdGUgYSBkdW1teSBEU0Egc3dpdGNoLCBvciBldmVuIGEgc29mdHdhcmUgRFNBIHN3aXRjaCB0byBtYWtlIHRoZSBjb2RlIHJlYWNoYWJsZS5cblxuQWgsIHdhaXQgYSBtaW51dGUsIHdhc24ndCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgYGRzYV9sb29wYD8gVGhhdCdzIHJpZ2h0LCBgZHNhX2xvb3BgIGlzIGEgbW9jayBEU0EgZHJpdmVyLCB1c2VkIGZvciB0ZXN0aW5nISBMZXQgbWUgZG91YmxlIGNoZWNrIGlmIGBkc2FfbG9vcGAgdXNlcyBgdGFnX2RzYS5jYC4gSWYgaXQgZG9lcywgSSBjYW4gcHJvYmFibHkgZ2V0IGEgZ29vZCB0ZXN0IGVudmlyb25tZW50IHNldCB1cCB3aXRoIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2NjQzLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTEzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6NDYuMDMyMDk1NjY0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NzY2Mjg1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0YWdfZHNhXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDo0Ni4wNzg4NjkwOTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDk1MjM1NTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuIE15IGZpcnN0IHRob3VnaHQgaXM6ICoqRGVjb2RpbmcgdGhlIGBkc2FfbG9vcGAgVGFnIFByb3RvY29sKipcblxuSSBuZWVkIHRvIHF1aWNrbHkgZmlndXJlIG91dCBob3cgdGhlIGBkc2FfbG9vcGAgdGFnIHByb3RvY29sIHdvcmtzLiBVbmRlcnN0YW5kaW5nIGl0cyBpbm5lciB3b3JraW5ncyBpcyBjcnVjaWFsIGZvciBbKippbnNlcnQgdXNlcidzIHNwZWNpZmljIGZpZWxkIGhlcmUqKiAtIGUuZy4sIG9wdGltaXppbmcgcGVyZm9ybWFuY2UsIGRlYnVnZ2luZyByZWxhdGVkIHN5c3RlbXMsIGVuc3VyaW5nIGNvbXBhdGliaWxpdHldLiBTbywgSSdsbCBzdGFydCBieSBjaGVja2luZyBpdHMgc3BlY2lmaWMgdGFnIHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBXaGVyZSBkbyBJIGZpbmQgdGhhdCBpbmZvcm1hdGlvbj8gTGV0IG1lIGxvb2sgYXQgdGhlIGRvY3VtZW50YXRpb24sIHRoZSBjb2RlIGl0c2VsZiwgb3IgcmVsYXRlZCBzcGVjaWZpY2F0aW9ucyB0byBkZXRlcm1pbmUgaXRzIGRlc2lnbiBhbmQgdXNhZ2UuIFRoaXMgaXMgc3RlcCBvbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3NjU0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6NDkuMTc0MTA2NjAyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzMDQ5MDk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkRTQV9UQUdfUFJPVE9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9MTI1PXN0YXRpYyBlbnVtIGRzYV90YWdfcHJvdG9jb2wgZHNhX2xvb3BfZ2V0X3Byb3RvY29sKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzMC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMzE6XFx0cmV0dXJuIERTQV9UQUdfUFJPVE9fTk9ORTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzItfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDo0OS4yMjcxNjIzNjZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NzQ1ODE0NzIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRFNBIExvb3AgYW5kIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgZHNhX2xvb3BgIGFuZCB0aGUgdXNlIG9mIGBEU0FfVEFHX1BST1RPX05PTkVgLiBUaGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIHJlY2FsbCB0aGVyZSdzIGEgcmVsYXRlZCBgZHNhX2xvb3BfYmRpbmZvYCBzdHJ1Y3QsIGJ1dCB0aGF0J3Mgbm90IHJlbGV2YW50IGhlcmU7IGBkc2FfbG9vcGAgaXRzZWxmIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEkgdGhlbiBsb29rZWQgb3ZlciBhdCBgbmV0L3NjaGVkL3NjaF9jYnMuY2AsIGJ1dCB0aGUgY2hhbmdlIHRoZXJlIHNlZW1zIGxpbWl0ZWQsIGp1c3QgcHJvcGFnYXRpbmcgdGhlIGBleHRhY2tgIGRvd24gdG8gdGhlIGRyaXZlci5cblxuVGhlIGNvcmUgbG9naWMsIGFzIEkgc3VzcGVjdGVkLCByZXNpZGVzIGluIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2AsIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLiBUaGUgcXVlc3Rpb24gbm93IGlzOiBjYW4gSSB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIHdpdGhpbiBRRU1VPyBBbmQgdGhlIGFuc3dlciwgYXMgSSBrbm93IGl0LCBpcyBhIGNsZWFyIG5vLiBJdCByZWxpZXMgb24gcGh5c2ljYWwgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBhbiBNRElPIGJ1cyBjb25uZWN0ZWQgdG8gYSBzcGVjaWZpYyBzd2l0Y2ggY2hpcC4gSXQncyB0aGF0IGRpcmVjdCBoYXJkd2FyZSBpbnRlcmFjdGlvbiB0aGF0IG1ha2VzIGl0IHByb2JsZW1hdGljLlxuXG5TbywgdGhlIG5leHQgcXVlc3Rpb24gaXMgY2FuIEkgZW11bGF0ZSB0aGUgTURJTyBidXMgYW5kIHN3aXRjaCBjaGlwPyAgTmF0aXZlbHksIHdpdGhvdXQgb3V0LW9mLXRyZWUgcGF0Y2hlcywgdGhlIGFuc3dlciBpcyBzdGlsbCBubyB3aXRoaW4gc3RhbmRhcmQgUUVNVS4gSG93ZXZlciwgY291bGQgc3l6a2FsbGVyIGJlIHVzZWQgdG8gZnV6eiBpdCBieSBtb2NraW5nIE1ESU8gZGV2aWNlcyBvciBieSBpbnN0YW50aWF0aW5nIGl0IHRocm91Z2ggYSBzb2Z0d2FyZSBpbnRlcmZhY2U/IEkgdGhvdWdodCBzeXprYWxsZXIgaGFkIHNvbWUgc3VwcG9ydCBmb3IgTURJTy9QSFkgZnV6emluZywgYnV0IG5vLCBub3QgcmVhbGx5LiBNRElPIGRldmljZXMgYXJlIHR5cGljYWxseSBwcm9iZWQgdmlhIHRoZSBkZXZpY2UgdHJlZSBvciBwbGF0Zm9ybSBkYXRhLCBhIG1ldGhvZCBvZiBoYXJkd2FyZSBhYnN0cmFjdGlvbiwgd2hpY2ggYWdhaW4gbWFrZXMgZW11bGF0aW9uIGRpZmZpY3VsdC5cblxuSSdtIG5vdyByZWNvbnNpZGVyaW5nIGlmIGZ1enppbmcgdGhlIHBhdGNoIGlzIGV2ZW4gd29ydGggdGhlIGVmZm9ydC4gVGhlIGNoYW5nZXMgaW4gYG5ldC9kc2EvdGFnX2RzYS5jYCBhcmUgd2l0aGluIGBkc2FfeG1pdF9sbGAuICBUaGUgcXVlc3Rpb24gaXM6IGlzIGB0YWdfZHNhLmNgIHVzZWQgYnkgKmFueSogb3RoZXIgZHJpdmVyIHRoYXQncyBlbXVsYXRhYmxlPyBUaGF0IGlzIHRoZSByZWFsIHRlc3Qgb2Ygd2hldGhlciB0aGlzIGVmZm9ydCBpcyB3b3J0aCBpdCBvciBub3QuIEknbGwgbmVlZCB0byByZXNlYXJjaCB0aGF0IGZ1cnRoZXIgdG8gZGV0ZXJtaW5lIHRoZSBwb3RlbnRpYWwgcmVhY2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3OTU1LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjU2Ljk3Mjk3OTgwN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTIxNjI3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEU0FfVEFHX1BST1RPX0RTQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTMyNjM9c3RhdGljIGludCBtdjg4ZTZ4eHhfc2V0dXBfcG9ydF9tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjcxLVxcdC8qIFNldHVwIENQVSBwb3J0IG1vZGUgZGVwZW5kaW5nIG9uIGl0cyBzdXBwb3J0ZWQgdGFnIGZvcm1hdCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMyNzI6XFx0aWYgKGNoaXAtXFx1MDAzZXRhZ19wcm90b2NvbCA9PSBEU0FfVEFHX1BST1RPX0RTQSlcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjczLVxcdFxcdHJldHVybiBtdjg4ZTZ4eHhfc2V0X3BvcnRfbW9kZV9kc2EoY2hpcCwgcG9ydCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz02NzI0PXN0YXRpYyBpbnQgbXY4OGU2eHh4X2NoYW5nZV90YWdfcHJvdG9jb2woc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc0My1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzQ0OlxcdGNhc2UgRFNBX1RBR19QUk9UT19EU0E6XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc0NS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc0ODk9c3RhdGljIGludCBtdjg4ZTZ4eHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1Ni1cXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzU1NzpcXHRcXHRjaGlwLVxcdTAwM2V0YWdfcHJvdG9jb2wgPSBEU0FfVEFHX1BST1RPX0RTQTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTU4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDo1Ny4wMjgyMDQ1MTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjAzOTAwMDUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRFNBIFRhZyBQcm90b2NvbCBmb3IgVmlydHVhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBpdCBsb29rcyBsaWtlIHRoaXMgYERTQV9UQUdfUFJPVE9fRFNBYCBpcyBleGNsdXNpdmVseSB0aWVkIHRvIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIGludGVyZXN0aW5nLiBOb3cgdGhhdCBJIHRoaW5rIGFib3V0IGl0LCBgdGFnX2RzYS5jYCBpcywgd2VsbCwgaXQncyB0aGUgRFNBIHRhZyBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbiBpdHNlbGYuIEdpdmVuIHRoYXQgYG12ODhlNnh4eGAgaXMgYSBoYXJkd2FyZSBkcml2ZXIsIGFuZCB0aGVyZWZvcmUgYSBwYWluIHRvIGVtdWxhdGUsIGFuZCBzaW5jZSB0aGUgbW9kaWZpY2F0aW9ucyBpbiBgdGFnX2RzYS5jYCBzZWVtIHRhaWxvci1tYWRlIGZvciBpdCAob3IgYXQgbGVhc3Qgc29sZWx5IHVzZWQgYnkgaXQgY3VycmVudGx5KSwgdGhlcmXigJlzIHJlYWxseSBubyBwcmFjdGljYWwgd2F5IHRvIHRvdWNoIHRoZSBjb3JlIG9mIHRoZXNlIGNoYW5nZXMgaW4gYW55IHZpcnR1YWxpemVkIHNldHVwLiBUaGUgd2hvbGUgdGhpbmcgaXMgaGFyZHdhcmUtc3BlY2lmaWMuIEkgZ3Vlc3MgaXTigJlzIHN0aWxsIHdvcnRoIGEgcXVpY2sgZG91YmxlLWNoZWNrLCB0aG91Z2gsIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoYXQgYHRhZ19kc2EuY2AgKmlzbid0KiBzbmVha2luZyBpbiBzb21ld2hlcmUgZWxzZS4gQWx3YXlzIGdvb2QgdG8gcnVsZSBvdXQgdGhlIHVuZXhwZWN0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MjAxLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjAxLjYzMjEwNjU4NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc2MjA1NDk3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEU0FfVEFHX1BST1RPX0RTQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzI2Mz1zdGF0aWMgaW50IG12ODhlNnh4eF9zZXR1cF9wb3J0X21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNzEtXFx0LyogU2V0dXAgQ1BVIHBvcnQgbW9kZSBkZXBlbmRpbmcgb24gaXRzIHN1cHBvcnRlZCB0YWcgZm9ybWF0ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzI3MjpcXHRpZiAoY2hpcC1cXHUwMDNldGFnX3Byb3RvY29sID09IERTQV9UQUdfUFJPVE9fRFNBKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNzMtXFx0XFx0cmV0dXJuIG12ODhlNnh4eF9zZXRfcG9ydF9tb2RlX2RzYShjaGlwLCBwb3J0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTY3MjQ9c3RhdGljIGludCBtdjg4ZTZ4eHhfY2hhbmdlX3RhZ19wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQzLVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY3NDQ6XFx0Y2FzZSBEU0FfVEFHX1BST1RPX0RTQTpcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQ1LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzQ4OT1zdGF0aWMgaW50IG12ODhlNnh4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTU2LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTU3OlxcdFxcdGNoaXAtXFx1MDAzZXRhZ19wcm90b2NvbCA9IERTQV9UQUdfUFJPVE9fRFNBO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTgtXFxuLS1cXG5pbmNsdWRlL25ldC9kc2EuaD0yNj1zdHJ1Y3QgdGNfYWN0aW9uO1xcbi0tXFxuaW5jbHVkZS9uZXQvZHNhLmgtMzAtI2RlZmluZSBEU0FfVEFHX1BST1RPX0JSQ01fUFJFUEVORF9WQUxVRVxcdDJcXG5pbmNsdWRlL25ldC9kc2EuaDozMTojZGVmaW5lIERTQV9UQUdfUFJPVE9fRFNBX1ZBTFVFXFx0XFx0XFx0M1xcbmluY2x1ZGUvbmV0L2RzYS5oLTMyLSNkZWZpbmUgRFNBX1RBR19QUk9UT19FRFNBX1ZBTFVFXFx0XFx0NFxcbi0tXFxuaW5jbHVkZS9uZXQvZHNhLmg9NjQ9ZW51bSBkc2FfdGFnX3Byb3RvY29sIHtcXG4tLVxcbmluY2x1ZGUvbmV0L2RzYS5oLTY5LVxcdERTQV9UQUdfUFJPVE9fQlJDTV9QUkVQRU5EXFx0PSBEU0FfVEFHX1BST1RPX0JSQ01fUFJFUEVORF9WQUxVRSxcXG5pbmNsdWRlL25ldC9kc2EuaDo3MDpcXHREU0FfVEFHX1BST1RPX0RTQVxcdFxcdD0gRFNBX1RBR19QUk9UT19EU0FfVkFMVUUsXFxuaW5jbHVkZS9uZXQvZHNhLmgtNzEtXFx0RFNBX1RBR19QUk9UT19FRFNBXFx0XFx0PSBEU0FfVEFHX1BST1RPX0VEU0FfVkFMVUUsXFxuLS1cXG5uZXQvZHNhL3RhZ19kc2EuYz0zNjA9c3RhdGljIGNvbnN0IHN0cnVjdCBkc2FfZGV2aWNlX29wcyBkc2FfbmV0ZGV2X29wcyA9IHtcXG5uZXQvZHNhL3RhZ19kc2EuYy0zNjEtXFx0Lm5hbWVcXHQgID0gRFNBX05BTUUsXFxubmV0L2RzYS90YWdfZHNhLmM6MzYyOlxcdC5wcm90b1xcdCAgPSBEU0FfVEFHX1BST1RPX0RTQSxcXG5uZXQvZHNhL3RhZ19kc2EuYy0zNjMtXFx0LnhtaXRcXHQgID0gZHNhX3htaXQsXFxuLS1cXG5uZXQvZHNhL3RhZ19kc2EuYz0zNjg9RFNBX1RBR19EUklWRVIoZHNhX25ldGRldl9vcHMpO1xcbm5ldC9kc2EvdGFnX2RzYS5jOjM2OTpNT0RVTEVfQUxJQVNfRFNBX1RBR19EUklWRVIoRFNBX1RBR19QUk9UT19EU0EsIERTQV9OQU1FKTtcXG5uZXQvZHNhL3RhZ19kc2EuYy0zNzAtI2VuZGlmXFx0LyogQ09ORklHX05FVF9EU0FfVEFHX0RTQSAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTowMy4zOTQxNjgyODhaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzU5OTM5MzE1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBEU0FfVEFHX1BST1RPX0RTQWAgaXMgb25seSB1c2VkIHdpdGhpbiB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCBhbmQgdGhhdCdzIGEga2V5IG9ic2VydmF0aW9uLiBUaGVuIEkgc2VlIHRoZSBjaGFuZ2UgaW4gYG5ldC9zY2hlZC9zY2hfY2JzLmNgLiBIbW0sIHNlZW1zIHF1aXRlIHNtYWxsLCBqdXN0IHBhc3NpbmcgYGV4dGFja2AgYW5kIHN3aXRjaGluZyB0byBgTkxfU0VUX0VSUl9NU0dfV0VBS2AuIFRoZXJlIGlzbid0IGFueSBuZXcgbG9naWMgaGVyZSB0aGF0IHNjcmVhbXMgb3V0IGZvciBmdXp6aW5nIGF0dGVudGlvbi5cblxuTm93LCBsZXQncyB6b29tIG91dC4gVGhlIGJ1bGsgb2YgdGhlIHBhdGNoIGxvb2tzIHRvIGJlIGNvbnRhaW5lZCB3aXRoaW4gYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvYCBhbmQgYG5ldC9kc2EvdGFnX2RzYS5jYC4gVGhlc2UgYXJlLCBhcyBmYXIgYXMgSSBjYW4gdGVsbCwgZGVhbGluZyB3aXRoIGhhcmR3YXJlLCBzcGVjaWZpY2FsbHkgTWFydmVsbCBzd2l0Y2ggaGFyZHdhcmUuIFRoYXQncyBhIGh1Z2UgY2x1ZSByaWdodCB0aGVyZS4gR2l2ZW4gdGhhdCBJJ20gd29ya2luZyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IC0gc29tZXRoaW5nIGxpa2UgUUVNVSAtIHRoaXMgaGFyZHdhcmUgaXMgaW5hY2Nlc3NpYmxlLiBUaGUgcGF0Y2ggY2FuJ3QgYmUgcmVhY2hlZC5cblxuU28sIHRha2luZyBhbGwgdGhpcyBpbnRvIGFjY291bnQsIEknbSBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXRjaCBpc24ndCBzb21ldGhpbmcgSSBuZWVkIHRvIGludmVzdCB0aW1lIGluIGZ1enppbmcuIEl0J3Mgc2ltcGx5IG5vdCByZWxldmFudCB3aXRoaW4gdGhlIGNvbnN0cmFpbnRzIG9mIG15IGN1cnJlbnQgc2V0dXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNDc4LCJPdXRwdXRUb2tlbnMiOjE1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMToxMC45OTM1NjM5MzVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTk3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwcmltYXJpbHkgYWRkcyA4MDIuMVFhdiBDQlMgb2ZmbG9hZGluZyBzdXBwb3J0IHRvIHRoZSBNYXJ2ZWxsIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBkcml2ZXIgY2Fubm90IGJlIGV4ZXJjaXNlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGUgY2hhbmdlcyBpbiBuZXQvZHNhL3RhZ19kc2EuYyBhcmUgc3BlY2lmaWMgdG8gdGhlIERTQSB0YWcgcHJvdG9jb2wgdXNlZCBleGNsdXNpdmVseSBieSB0aGlzIGRyaXZlci4gVGhlIG1vZGlmaWNhdGlvbiBpbiBuZXQvc2NoZWQvc2NoX2Nicy5jIGlzIGEgdHJpdmlhbCBjaGFuZ2UgdG8gcGFzcyBleHRhY2sgZG93biB0byB0aGUgZHJpdmVyIGFuZCB1c2UgTkxfU0VUX0VSUl9NU0dfV0VBSywgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGxvZ2ljIHJlcXVpcmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcHJpbWFyaWx5IGFkZHMgODAyLjFRYXYgQ0JTIG9mZmxvYWRpbmcgc3VwcG9ydCB0byB0aGUgTWFydmVsbCBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgZHJpdmVyIGNhbm5vdCBiZSBleGVyY2lzZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlIGNoYW5nZXMgaW4gbmV0L2RzYS90YWdfZHNhLmMgYXJlIHNwZWNpZmljIHRvIHRoZSBEU0EgdGFnIHByb3RvY29sIHVzZWQgZXhjbHVzaXZlbHkgYnkgdGhpcyBkcml2ZXIuIFRoZSBtb2RpZmljYXRpb24gaW4gbmV0L3NjaGVkL3NjaF9jYnMuYyBpcyBhIHRyaXZpYWwgY2hhbmdlIHRvIHBhc3MgZXh0YWNrIGRvd24gdG8gdGhlIGRyaXZlciBhbmQgdXNlIE5MX1NFVF9FUlJfTVNHX1dFQUssIHdoaWNoIGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyByZXF1aXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjEwLjk5MzU5Nzk5NVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowzgg5k[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-11 11:59:23 +0000 UTC FinishedAt: 2026-08-11 12:01:11 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcHJpbWFyaWx5IGFkZHMgODAyLjFRYXYgQ0JTIG9mZmxvYWRpbmcgc3VwcG9ydCB0byB0aGUgTWFydmVsbCBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgZHJpdmVyIGNhbm5vdCBiZSBleGVyY2lzZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlIGNoYW5nZXMgaW4gbmV0L2RzYS90YWdfZHNhLmMgYXJlIHNwZWNpZmljIHRvIHRoZSBEU0EgdGFnIHByb3RvY29sIHVzZWQgZXhjbHVzaXZlbHkgYnkgdGhpcyBkcml2ZXIuIFRoZSBtb2RpZmljYXRpb24gaW4gbmV0L3NjaGVkL3NjaF9jYnMuYyBpcyBhIHRyaXZpYWwgY2hhbmdlIHRvIHBhc3MgZXh0YWNrIGRvd24gdG8gdGhlIGRyaXZlciBhbmQgdXNlIE5MX1NFVF9FUlJfTVNHX1dFQUssIHdoaWNoIGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyByZXF1aXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA1MjJiNGY0NjliOGZmNTNkMTQxNmZhNGRhOTc5ZTNmNDE1Zjg1MDc5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MzYgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuaW5kZXggODBiODc3Yzc0NTEzZC4uYTU2N2VlOWI2Y2UwZCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xuQEAgLTMyLDYgJiM0MzszMiw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZ3Bpby9jb25zdW1lci5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGh5bGluay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L2RzYS5oXHUwMDNlXG4mIzQzOyNpbmNsdWRlIFx1MDAzY25ldC9wa3Rfc2NoZWQuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFwmIzM0O2NoaXAuaFwmIzM0O1xuICNpbmNsdWRlIFwmIzM0O2RldmxpbmsuaFwmIzM0O1xuQEAgLTM5OTAsNiAmIzQzOzM5OTEsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4gXG4gXHRjaGlwLVx1MDAzZWRzID0gZHM7XG4gXHRkcy1cdTAwM2V1c2VyX21paV9idXMgPSBtdjg4ZTZ4eHhfZGVmYXVsdF9tZGlvX2J1cyhjaGlwKTtcbiYjNDM7XHRkcy1cdTAwM2VudW1fdHhfcXVldWVzID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW51bV90eF9xdWV1ZXM7XG4gXG4gXHQvKiBTaW5jZSB2aXJ0dWFsIGJyaWRnZXMgYXJlIG1hcHBlZCBpbiB0aGUgUFZULCB0aGUgbnVtYmVyIHdlIHN1cHBvcnRcbiBcdCAqIGRlcGVuZHMgb24gdGhlIHBoeXNpY2FsIHN3aXRjaCB0b3BvbG9neS4gV2UgbmVlZCB0byBsZXQgRFNBIGZpZ3VyZVxuQEAgLTUwMjMsNiAmIzQzOzUwMjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MjQwX29wcyA9IHtcbiBcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsXG4gXHQucG9ydF9zZXRfanVtYm9fc2l6ZSA9IG12ODhlNjE2NV9wb3J0X3NldF9qdW1ib19zaXplLFxuIFx0LnBvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcgPSBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyxcbiYjNDM7XHQucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzUyX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSxcbiBcdC5wb3J0X3BhdXNlX2xpbWl0ID0gbXY4OGU2MDk3X3BvcnRfcGF1c2VfbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcbiBcdC5wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUsXG5AQCAtNTMwNiw2ICYjNDM7NTMwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNDFfb3BzID0ge1xuIFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuJiM0MztcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxuIFx0LnBvcnRfcGF1c2VfbGltaXQgPSBtdjg4ZTYwOTdfcG9ydF9wYXVzZV9saW1pdCxcbiBcdC5wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcbkBAIC01NDY0LDYgJiM0Mzs1NDY4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1Ml9vcHMgPSB7XG4gXHQucG9ydF9zZXRfZXRoZXJfdHlwZSA9IG12ODhlNjM1MV9wb3J0X3NldF9ldGhlcl90eXBlLFxuIFx0LnBvcnRfc2V0X2p1bWJvX3NpemUgPSBtdjg4ZTYxNjVfcG9ydF9zZXRfanVtYm9fc2l6ZSxcbiBcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXG4mIzQzO1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU1MzMsNiAmIzQzOzU1MzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkwX29wcyA9IHtcbiBcdC5wb3J0X2dldF9jbW9kZSA9IG12ODhlNjM1Ml9wb3J0X2dldF9jbW9kZSxcbiBcdC5wb3J0X3NldF9jbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9jbW9kZSxcbiBcdC5wb3J0X3NldHVwX21lc3NhZ2VfcG9ydCA9IG12ODhlNnh4eF9zZXR1cF9tZXNzYWdlX3BvcnQsXG4mIzQzO1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQuc3RhdHNfc25hcHNob3QgPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc25hcHNob3QsXG4gXHQuc3RhdHNfc2V0X2hpc3RvZ3JhbSA9IG12ODhlNjM5MF9nMV9zdGF0c19zZXRfaGlzdG9ncmFtLFxuIFx0LnN0YXRzX2dldF9zc2V0X2NvdW50ID0gbXY4OGU2MzIwX3N0YXRzX2dldF9zc2V0X2NvdW50LFxuQEAgLTU1OTcsNiAmIzQzOzU2MDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkweF9vcHMgPSB7XG4gXHQucG9ydF9nZXRfY21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9nZXRfY21vZGUsXG4gXHQucG9ydF9zZXRfY21vZGUgPSBtdjg4ZTYzOTB4X3BvcnRfc2V0X2Ntb2RlLFxuIFx0LnBvcnRfc2V0dXBfbWVzc2FnZV9wb3J0ID0gbXY4OGU2eHh4X3NldHVwX21lc3NhZ2VfcG9ydCxcbiYjNDM7XHQucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSxcbiBcdC5zdGF0c19zbmFwc2hvdCA9IG12ODhlNjM5MF9nMV9zdGF0c19zbmFwc2hvdCxcbiBcdC5zdGF0c19zZXRfaGlzdG9ncmFtID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NldF9oaXN0b2dyYW0sXG4gXHQuc3RhdHNfZ2V0X3NzZXRfY291bnQgPSBtdjg4ZTYzMjBfc3RhdHNfZ2V0X3NzZXRfY291bnQsXG5AQCAtNTY1Myw2ICYjNDM7NTY2MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTN4X29wcyA9IHtcbiBcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzkzeF9wb3J0X3NldF9ldGhlcl90eXBlLFxuIFx0LnBvcnRfc2V0X2p1bWJvX3NpemUgPSBtdjg4ZTYxNjVfcG9ydF9zZXRfanVtYm9fc2l6ZSxcbiBcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXG4mIzQzO1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjM5MF9wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU2OTUsNiAmIzQzOzU3MDMsMjcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM5M3hfb3BzID0ge1xuIFx0LnRjYW1fb3BzID0gXHUwMDI2bXY4OGU2MzkzX3RjYW1fb3BzLFxuIH07XG4gXG4mIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvIG12ODhlNjM1Ml9xYXZfaW5mbyA9IHtcbiYjNDM7XHQucmF0ZV91bml0ID0gMzIsXG4mIzQzO1x0LnJhdGVfbWFzayA9IEdFTk1BU0soMTQsIDApLFxuJiM0MztcdC5oaWxpbWl0X21hc2sgPSBHRU5NQVNLKDE0LCAwKSxcbiYjNDM7XHQucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksXG4mIzQzO307XG4mIzQzO1xuJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzNDFfcWF2X2luZm8gPSB7XG4mIzQzO1x0LnJhdGVfdW5pdCA9IDY0LFxuJiM0MztcdC5yYXRlX21hc2sgPSBHRU5NQVNLKDE1LCAwKSxcbiYjNDM7XHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksXG4mIzQzO1x0LnF1ZXVlX21hc2sgPSBHRU5NQVNLKDMsIDApLFxuJiM0Mzt9O1xuJiM0MztcbiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gbXY4OGU2MzkwX3Fhdl9pbmZvID0ge1xuJiM0MztcdC5yYXRlX3VuaXQgPSA2NCxcbiYjNDM7XHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNSwgMCksXG4mIzQzO1x0LmhpbGltaXRfbWFzayA9IEdFTk1BU0soMTMsIDApLFxuJiM0MztcdC5xdWV1ZV9tYXNrID0gR0VOTUFTSyg3LCAwKSxcbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFtNVjg4RTYwMjBdID0ge1xuIFx0XHQucHJvZF9udW0gPSBNVjg4RTZYWFhfUE9SVF9TV0lUQ0hfSURfUFJPRF82MDIwLFxuQEAgLTU3MDYsNiAmIzQzOzU3MzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQgKi9cbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgyKSB8IEJJVCgzKSB8IEJJVCg0KSxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDgsXG5AQCAtNTcyOCw2ICYjNDM7NTc1OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fZGF0YWJhc2VzID0gNjQsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MDgsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwMCxcbkBAIC01NzUwLDYgJiM0Mzs1NzgxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDEwLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTc3NCw2ICYjNDM7NTgwNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC01Nzk1LDYgJiM0Mzs1ODI4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTgyMCw2ICYjNDM7NTg1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDEwMjQsXG4gXHRcdC5udW1fcG9ydHMgPSAzLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTg0NSw2ICYjNDM7NTg4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA4LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAwLFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTU4NjcsNiAmIzQzOzU5MDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0Lm51bV9ncGlvID0gMTEsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01ODkyLDYgJiM0Mzs1OTI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gMTAyNCxcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTE4LDYgJiM0Mzs1OTU2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTQzLDYgJiM0Mzs1OTgyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTY5LDYgJiM0Mzs2MDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTk5NCw2ICYjNDM7NjAzNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNjAyMCw2ICYjNDM7NjA2Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuIFx0XHQubnVtX2dwaW8gPSAxNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYwNDUsNiAmIzQzOzYwODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTAsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbiBcdFx0LnBoeV9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjA2OCw2ICYjNDM7NjExMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjA5Myw2ICYjNDM7NjEzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjExNyw2ICYjNDM7NjE2Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDE2Mzg0LFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCAmIzQzOyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjE0Miw2ICYjNDM7NjE4OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICYjNDM7IFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MTY4LDYgJiM0Mzs2MjE2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOCxcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG4gXHRcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDEsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTYxOTgsNiAmIzQzOzYyNDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMixcbiBcdFx0LmludmFsaWRfcG9ydF9tYXNrID0gQklUKDIpIHwgQklUKDMpIHwgQklUKDQpLFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MDgsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwMCxcbkBAIC02MjIyLDYgJiM0Mzs2MjcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNjIzNyw2ICYjNDM7NjI4OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5tdWx0aV9jaGlwID0gdHJ1ZSxcbiBcdFx0LmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCxcbiBcdFx0LnB0cF9zdXBwb3J0ID0gdHJ1ZSxcbiYjNDM7XHRcdC5xYXYgPSBcdTAwMjZtdjg4ZTYzNTJfcWF2X2luZm8sXG4gXHRcdC5vcHMgPSBcdTAwMjZtdjg4ZTYyNDBfb3BzLFxuIFx0fSxcbiBcbkBAIC02MjQ3LDYgJiM0Mzs2Mjk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA2NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwOCxcbiBcdFx0LnBoeV9iYXNlX2FkZHIgPSAweDAwLFxuQEAgLTYyNzEsNiAmIzQzOzYzMjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTYyOTksNiAmIzQzOzYzNTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAzLFxuIFx0XHQubnVtX2dwaW8gPSAxNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYzMjcsNiAmIzQzOzYzODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAzLFxuIFx0XHQubnVtX2dwaW8gPSAxNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYzNTQsNiAmIzQzOzY0MTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9ncGlvID0gMTEsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02MzY5LDYgJiM0Mzs2NDI2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfU1VQUE9SVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuJiM0MztcdFx0LnFhdiA9IFx1MDAyNm12ODhlNjM0MV9xYXZfaW5mbyxcbiBcdFx0Lm9wcyA9IFx1MDAyNm12ODhlNjM0MV9vcHMsXG4gXHR9LFxuIFxuQEAgLTYzODAsNiAmIzQzOzY0MzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTY0MDUsNiAmIzQzOzY0NjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTY0MzEsNiAmIzQzOzY0OTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0Lm51bV9ncGlvID0gMTUsXG4mIzQzO1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02NDQ2LDYgJiM0Mzs2NTA3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfU1VQUE9SVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuJiM0MztcdFx0LnFhdiA9IFx1MDAyNm12ODhlNjM1Ml9xYXZfaW5mbyxcbiBcdFx0Lm9wcyA9IFx1MDAyNm12ODhlNjM1Ml9vcHMsXG4gXHR9LFxuIFx0W01WODhFNjM2MV0gPSB7XG5AQCAtNjQ1OSw2ICYjNDM7NjUyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgxKSB8IEJJVCgyKSB8IEJJVCg4KSxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMyxcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjQ4NSw2ICYjNDM7NjU0OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXG4gXHRcdC5udW1fZ3BpbyA9IDE2LFxuIFx0XHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcbiYjNDM7XHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjUwMSw2ICYjNDM7NjU2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5tdWx0aV9jaGlwID0gdHJ1ZSxcbiBcdFx0LmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1VORE9DVU1FTlRFRCxcbiBcdFx0LnB0cF9zdXBwb3J0ID0gdHJ1ZSxcbiYjNDM7XHRcdC5xYXYgPSBcdTAwMjZtdjg4ZTYzOTBfcWF2X2luZm8sXG4gXHRcdC5vcHMgPSBcdTAwMjZtdjg4ZTYzOTBfb3BzLFxuIFx0fSxcbiBcdFtNVjg4RTYzOTBYXSA9IHtcbkBAIC02NTEyLDYgJiM0Mzs2NTc3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgJiM0MzsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXG4gXHRcdC5udW1fZ3BpbyA9IDE2LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02NTI3LDYgJiM0Mzs2NTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuJiM0MztcdFx0LnFhdiA9IFx1MDAyNm12ODhlNjM5MF9xYXZfaW5mbyxcbiBcdFx0Lm9wcyA9IFx1MDAyNm12ODhlNjM5MHhfb3BzLFxuIFx0fSxcbiBcbkBAIC02NTM4LDYgJiM0Mzs2NjA1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgJiM0MzsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5udW1fdGNhbV9lbnRyaWVzID0gMjU2LFxuJiM0MztcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG5AQCAtNjU1NCw2ICYjNDM7NjYyMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5wdnQgPSB0cnVlLFxuIFx0XHQubXVsdGlfY2hpcCA9IHRydWUsXG4gXHRcdC5wdHBfc3VwcG9ydCA9IHRydWUsXG4mIzQzO1x0XHQucWF2ID0gXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxuIFx0XHQub3BzID0gXHUwMDI2bXY4OGU2MzkzeF9vcHMsXG4gXHR9LFxuIH07XG5AQCAtNzE3NSw2ICYjNDM7NzI0NCwxMTIgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfY3Jvc3NjaGlwX2xhZ19sZWF2ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBzd19pbmRleCxcbiBcdHJldHVybiBlcnJfc3luYyA/IDogZXJyX3B2dDtcbiB9XG4gXG4mIzQzO3N0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwX3RjX2NicyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuJiM0MztcdFx0XHRcdCAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQgKmNicylcbiYjNDM7e1xuJiM0MztcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyAqYXZiX29wcztcbiYjNDM7XHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkcy1cdTAwM2Vwcml2O1xuJiM0MztcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gKnFhdjtcbiYjNDM7XHRjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyAqb3BzO1xuJiM0MztcdGludCBoaWxpbWl0X3JlZztcbiYjNDM7XHRpbnQgcmF0ZV9yZWc7XG4mIzQzO1x0dTggcXVldWVfYml0O1xuJiM0MztcdHUzMiByYXRlID0gMDtcbiYjNDM7XHR1MTYgaGlsaW1pdDtcbiYjNDM7XHRpbnQgZXJyO1xuJiM0MztcbiYjNDM7XHRvcHMgPSBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzO1xuJiM0MztcdGF2Yl9vcHMgPSBvcHMtXHUwMDNlYXZiX29wcztcbiYjNDM7XHRxYXYgPSBjaGlwLVx1MDAzZWluZm8tXHUwMDNlcWF2O1xuJiM0MztcbiYjNDM7XHRpZiAoIXFhdiB8fCAhYXZiX29wcyB8fCAhYXZiX29wcy1cdTAwM2Vwb3J0X3Fhdl93cml0ZSB8fFxuJiM0MztcdCAgICAhb3BzLVx1MDAzZXBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSlcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XG4mIzQzO1x0aWYgKCFkc2FfaXNfdXNlcl9wb3J0KGRzLCBwb3J0KSlcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XG4mIzQzO1x0aWYgKCEocWF2LVx1MDAzZXF1ZXVlX21hc2sgXHUwMDI2IEJJVChjYnMtXHUwMDNlcXVldWUpKSkge1xuJiM0MztcdFx0TkxfU0VUX0VSUl9NU0dfTU9EKGNicy1cdTAwM2VleHRhY2ssIFwmIzM0O0NCUyBub3Qgc3VwcG9ydGVkIG9uIHF1ZXVlXCYjMzQ7KTtcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdHF1ZXVlX2JpdCA9IEJJVChjYnMtXHUwMDNlcXVldWUpO1xuJiM0MztcdHJhdGVfcmVnID0gTVY4OEU2WFhYX1BPUlRfUUFWX0NGR19SQVRFKGNicy1cdTAwM2VxdWV1ZSk7XG4mIzQzO1x0aGlsaW1pdF9yZWcgPSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQoY2JzLVx1MDAzZXF1ZXVlKTtcbiYjNDM7XG4mIzQzO1x0aWYgKGNicy1cdTAwM2VlbmFibGUpIHtcbiYjNDM7XHRcdGlmIChjYnMtXHUwMDNlaGljcmVkaXQgXHUwMDNjPSAwIHx8XG4mIzQzO1x0XHQgICAgY2JzLVx1MDAzZWhpY3JlZGl0IFx1MDAzZSBxYXYtXHUwMDNlaGlsaW1pdF9tYXNrKSB7XG4mIzQzO1x0XHRcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXHUwMDNlZXh0YWNrLFxuJiM0MztcdFx0XHRcdFx0ICAgXCYjMzQ7aGljcmVkaXQgb3V0IG9mIHJhbmdlXCYjMzQ7KTtcbiYjNDM7XHRcdFx0cmV0dXJuIC1FUkFOR0U7XG4mIzQzO1x0XHR9XG4mIzQzO1xuJiM0MztcdFx0cmF0ZSA9IERJVl9ST1VORF9VUChjYnMtXHUwMDNlaWRsZXNsb3BlLCBxYXYtXHUwMDNlcmF0ZV91bml0KTtcbiYjNDM7XHRcdGlmIChyYXRlIFx1MDAzZSBxYXYtXHUwMDNlcmF0ZV9tYXNrKSB7XG4mIzQzO1x0XHRcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXHUwMDNlZXh0YWNrLFxuJiM0MztcdFx0XHRcdFx0ICAgXCYjMzQ7aWRsZXNsb3BlIG91dCBvZiByYW5nZVwmIzM0Oyk7XG4mIzQzO1x0XHRcdHJldHVybiAtRVJBTkdFO1xuJiM0MztcdFx0fVxuJiM0MztcdFx0LyogYXZvaWQgdXNpbmcgemVybyByYXRlICovXG4mIzQzO1x0XHRyYXRlID0gbWF4X3QodTE2LCByYXRlLCAxKTtcbiYjNDM7XHR9XG4mIzQzO1xuJiM0MztcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbiYjNDM7XG4mIzQzO1x0aWYgKCFjYnMtXHUwMDNlZW5hYmxlKSB7XG4mIzQzO1x0XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIDApO1xuJiM0MztcdFx0aWYgKGVycilcbiYjNDM7XHRcdFx0Z290byB1bmxvY2s7XG4mIzQzO1xuJiM0MztcdFx0aWYgKCEoY2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jYnNfYWN0aXZlX3F1ZXVlcyBcdTAwMjYgfnF1ZXVlX2JpdCkpIHtcbiYjNDM7XHRcdFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShjaGlwLCBwb3J0LCAwKTtcbiYjNDM7XHRcdFx0aWYgKGVycilcbiYjNDM7XHRcdFx0XHRnb3RvIHVubG9jaztcbiYjNDM7XHRcdH1cbiYjNDM7XHRcdGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgXHUwMDI2PSB+cXVldWVfYml0O1xuJiM0MztcdFx0Z290byB1bmxvY2s7XG4mIzQzO1x0fVxuJiM0MztcbiYjNDM7XHRoaWxpbWl0ID0gY2JzLVx1MDAzZWhpY3JlZGl0IFx1MDAyNiBxYXYtXHUwMDNlaGlsaW1pdF9tYXNrO1xuJiM0MztcdGVyciA9IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCBoaWxpbWl0X3JlZywgaGlsaW1pdCk7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdGdvdG8gdW5sb2NrO1xuJiM0MztcbiYjNDM7XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIHJhdGUpO1xuJiM0MztcdGlmIChlcnIpXG4mIzQzO1x0XHRnb3RvIHVubG9jaztcbiYjNDM7XG4mIzQzO1x0aWYgKCFjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNic19hY3RpdmVfcXVldWVzKSB7XG4mIzQzO1x0XHR1OCBzY2hlZF9tb2RlID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW51bV90eF9xdWV1ZXMgLSAxO1xuJiM0MztcbiYjNDM7XHRcdGVyciA9IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCxcbiYjNDM7XHRcdFx0XHRcdFx0XHQgc2NoZWRfbW9kZSk7XG4mIzQzO1x0XHRpZiAoZXJyKSB7XG4mIzQzO1x0XHRcdG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCByYXRlX3JlZywgMCk7XG4mIzQzO1x0XHRcdGdvdG8gdW5sb2NrO1xuJiM0MztcdFx0fVxuJiM0MztcdH1cbiYjNDM7XHRjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNic19hY3RpdmVfcXVldWVzIHw9IHF1ZXVlX2JpdDtcbiYjNDM7XG4mIzQzO3VubG9jazpcbiYjNDM7XHRtdjg4ZTZ4eHhfcmVnX3VubG9jayhjaGlwKTtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGVycjtcbiYjNDM7fVxuJiM0MztcbiYjNDM7c3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF90YyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxuJiM0MztcdFx0XHRcdCAgIGVudW0gdGNfc2V0dXBfdHlwZSB0eXBlLCB2b2lkICp0eXBlX2RhdGEpXG4mIzQzO3tcbiYjNDM7XHRzd2l0Y2ggKHR5cGUpIHtcbiYjNDM7XHRjYXNlIFRDX1NFVFVQX1FESVNDX0NCUzpcbiYjNDM7XHRcdHJldHVybiBtdjg4ZTZ4eHhfc2V0dXBfdGNfY2JzKGRzLCBwb3J0LCB0eXBlX2RhdGEpO1xuJiM0MztcdGRlZmF1bHQ6XG4mIzQzO1x0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4mIzQzO1x0fVxuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGh5bGlua19tYWNfb3BzIG12ODhlNnh4eF9waHlsaW5rX21hY19vcHMgPSB7XG4gXHQubWFjX3NlbGVjdF9wY3NcdFx0PSBtdjg4ZTZ4eHhfbWFjX3NlbGVjdF9wY3MsXG4gXHQubWFjX3ByZXBhcmVcdFx0PSBtdjg4ZTZ4eHhfbWFjX3ByZXBhcmUsXG5AQCAtNzIzNCw2ICYjNDM7NzQwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgbXY4OGU2eHh4X3N3aXRjaF9vcHMgPSB7XG4gXHQucG9ydF9od3RzdGFtcF9nZXRcdD0gbXY4OGU2eHh4X3BvcnRfaHd0c3RhbXBfZ2V0LFxuIFx0LnBvcnRfdHh0c3RhbXBcdFx0PSBtdjg4ZTZ4eHhfcG9ydF90eHRzdGFtcCxcbiBcdC5wb3J0X3J4dHN0YW1wXHRcdD0gbXY4OGU2eHh4X3BvcnRfcnh0c3RhbXAsXG4mIzQzO1x0LnBvcnRfc2V0dXBfdGNcdFx0PSBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF90YyxcbiBcdC5jbHNfZmxvd2VyX2FkZFx0XHQ9IG12ODhlNnh4eF9jbHNfZmxvd2VyX2FkZCxcbiBcdC5jbHNfZmxvd2VyX2RlbCAgICAgICAgID0gbXY4OGU2eHh4X2Nsc19mbG93ZXJfZGVsLFxuIFx0LmdldF90c19pbmZvXHRcdD0gbXY4OGU2eHh4X2dldF90c19pbmZvLFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcbmluZGV4IGU5NjZlN2M0Y2M1ZGUuLmQ0MmQ4MzllNjM2YmMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmhcbkBAIC0xMjUsNiAmIzQzOzEyNSw3IEBAIGVudW0gbXY4OGU2eHh4X2Vkc2Ffc3VwcG9ydCB7XG4gfTtcbiBcbiBzdHJ1Y3QgbXY4OGU2eHh4X29wcztcbiYjNDM7c3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbztcbiBcbiBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0ZW51bSBtdjg4ZTZ4eHhfZmFtaWx5IGZhbWlseTtcbkBAIC0xMzYsNiAmIzQzOzEzNyw3IEBAIHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyB7XG4gXHR1bnNpZ25lZCBpbnQgbnVtX2ludGVybmFsX3BoeXM7XG4gXHR1bnNpZ25lZCBpbnQgbnVtX2dwaW87XG4gXHR1bnNpZ25lZCBpbnQgbnVtX3RjYW1fZW50cmllcztcbiYjNDM7XHR1bnNpZ25lZCBpbnQgbnVtX3R4X3F1ZXVlcztcbiBcdHVuc2lnbmVkIGludCBtYXhfdmlkO1xuIFx0dW5zaWduZWQgaW50IG1heF9zaWQ7XG4gXHR1bnNpZ25lZCBpbnQgcG9ydF9iYXNlX2FkZHI7XG5AQCAtMTc2LDYgJiM0MzsxNzgsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0LyogU3VwcG9ydHMgUFRQICovXG4gXHRib29sIHB0cF9zdXBwb3J0O1xuIFxuJiM0MztcdC8qIDgwMi4xUWF2IGNyZWRpdCBiYXNlZCBzaGFwaW5nICovXG4mIzQzO1x0Y29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyAqcWF2O1xuJiM0MztcbiBcdC8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0XG4gXHQgKiBwb3J0IDAsIDEgbWVhbnMgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXQgcG9ydCAxLCBldGNcbiBcdCAqL1xuQEAgLTMwNCw2ICYjNDM7MzA5LDkgQEAgc3RydWN0IG12ODhlNnh4eF9wb3J0IHtcbiBcbiBcdC8qIE1hY0F1dGggQnlwYXNzIGNvbnRyb2wgZmxhZyAqL1xuIFx0Ym9vbCBtYWI7XG4mIzQzO1xuJiM0MztcdC8qIFF1ZXVlcyB3aXRoIENCUyBjdXJyZW50bHkgZW5hYmxlZC4gKi9cbiYjNDM7XHR1OCBjYnNfYWN0aXZlX3F1ZXVlcztcbiB9O1xuIFxuIGVudW0gbXY4OGU2eHh4X3JlZ2lvbl9pZCB7XG5AQCAtNjA2LDYgJiM0Mzs2MTQsOCBAQCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyB7XG4gXHRcdFx0XHQgICBzaXplX3Qgc2l6ZSk7XG4gXG4gXHRpbnQgKCpwb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbiYjNDM7XHRpbnQgKCpwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4mIzQzO1x0XHRcdFx0XHR1OCBtb2RlKTtcbiBcdGludCAoKnBvcnRfcGF1c2VfbGltaXQpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIHU4IGluLFxuIFx0XHRcdFx0dTggb3V0KTtcbiBcdGludCAoKnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG5AQCAtNzYzLDYgJiM0Mzs3NzMsMTAgQEAgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIHtcbiBcdGludCAoKnRhaV9yZWFkKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCB1MTYgKmRhdGEsXG4gXHRcdFx0aW50IGxlbik7XG4gXHRpbnQgKCp0YWlfd3JpdGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIHUxNiBkYXRhKTtcbiYjNDM7XG4mIzQzO1x0LyogQWNjZXNzIHBvcnQtc2NvcGVkIDgwMi4xUWF2IHJlZ2lzdGVycyAqL1xuJiM0MztcdGludCAoKnBvcnRfcWF2X3dyaXRlKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcbiYjNDM7XHRcdFx0ICAgICAgdTE2IGRhdGEpO1xuIH07XG4gXG4gc3RydWN0IG12ODhlNnh4eF9wdHBfb3BzIHtcbkBAIC03OTgsNiAmIzQzOzgxMiwxMyBAQCBzdHJ1Y3QgbXY4OGU2eHh4X3RjYW1fb3BzIHtcbiBcdGludCAoKmZsdXNoX3RjYW0pKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7XG4gfTtcbiBcbiYjNDM7c3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyB7XG4mIzQzO1x0dTE2IHJhdGVfdW5pdDsgLyogaW4ga2JwcyAqL1xuJiM0MztcdHUxNiByYXRlX21hc2s7IC8qIFFQcmkgUmF0ZSB2YWxpZCBiaXRzIG1hc2sgKi9cbiYjNDM7XHR1MTYgaGlsaW1pdF9tYXNrOyAvKiBRUHJpIEhpTGltaXQgYml0cyBtYXNrKi9cbiYjNDM7XHR1OCBxdWV1ZV9tYXNrOyAvKiBzdXBwb3J0ZWQgcXVldWVzIGJpdG1hc2sgKi9cbiYjNDM7fTtcbiYjNDM7XG4gc3RhdGljIGlubGluZSBib29sIG12ODhlNnh4eF9oYXNfc3R1KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcClcbiB7XG4gXHRyZXR1cm4gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW1heF9zaWQgXHUwMDNlIDAgXHUwMDI2XHUwMDI2XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaFxuaW5kZXggZmY1YWRmN2M5YmMzYS4uZGY1MmZmM2FkYzg4YyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaFxuQEAgLTE4Niw2ICYjNDM7MTg2LDkgQEBcbiAjZGVmaW5lIE1WODhFNjM1Ml9HMl9BVkJfQ01EX0JMT0NLX01BU0tcdFx0MHgwMGUwXG4gI2RlZmluZSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9BRERSX01BU0tcdFx0MHgwMDFmXG4gXG4mIzQzOyNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfUUFWX0NGR19SQVRFKHF1ZXVlKVx0KCgocXVldWUpIFx1MDAyNiAweDcpIFx1MDAzY1x1MDAzYyAxKVxuJiM0MzsjZGVmaW5lIE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfSElMSU1JVChxdWV1ZSlcdCgoKChxdWV1ZSkgXHUwMDI2IDB4NykgXHUwMDNjXHUwMDNjIDEpICYjNDM7IDEpXG4mIzQzO1xuIC8qIE9mZnNldCAweDE3OiBBVkIgRGF0YSBSZWdpc3RlciAqL1xuICNkZWZpbmUgTVY4OEU2MzUyX0cyX0FWQl9EQVRBXHRcdDB4MTdcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmNcbmluZGV4IDY1Nzc4M2UwNDNmZjEuLjZiNTRlMjc1ZDIxYWIgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuY1xuQEAgLTExMCw2ICYjNDM7MTEwLDE1IEBAIHN0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3B0cF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4gXHRyZXR1cm4gbXY4OGU2eHh4X2cyX2F2Yl93cml0ZShjaGlwLCB3cml0ZW9wLCBkYXRhKTtcbiB9XG4gXG4mIzQzO3N0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4mIzQzO1x0XHRcdFx0XHQgICBpbnQgcG9ydCwgaW50IGFkZHIsIHUxNiBkYXRhKVxuJiM0Mzt7XG4mIzQzO1x0dTE2IHdyaXRlb3AgPSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9PUF9XUklURSB8IChwb3J0IFx1MDAzY1x1MDAzYyA4KSB8XG4mIzQzO1x0XHQgICAgICAoTVY4OEU2MzUyX0cyX0FWQl9DTURfQkxPQ0tfUUFWIFx1MDAzY1x1MDAzYyA1KSB8IGFkZHI7XG4mIzQzO1xuJiM0MztcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xuJiM0Mzt9XG4mIzQzO1xuIHN0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLFxuIFx0XHRcdFx0ICAgICB1MTYgKmRhdGEsIGludCBsZW4pXG4ge1xuQEAgLTE0OSw2ICYjNDM7MTU4LDcgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjM1Ml9hdmJfb3BzID0ge1xuIFx0LnB0cF93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3dyaXRlLFxuIFx0LnRhaV9yZWFkXHRcdD0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfcmVhZCxcbiBcdC50YWlfd3JpdGVcdFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3RhaV93cml0ZSxcbiYjNDM7XHQucG9ydF9xYXZfd3JpdGVcdFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3BvcnRfcWF2X3dyaXRlLFxuIH07XG4gXG4gc3RhdGljIGludCBtdjg4ZTYxNjVfZzJfYXZiX3RhaV9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsXG5AQCAtMTc0LDYgJiM0MzsxODQsNyBAQCBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgbXY4OGU2MTY1X2F2Yl9vcHMgPSB7XG4gXHQucHRwX3dyaXRlXHRcdD0gbXY4OGU2MzUyX2cyX2F2Yl9wdHBfd3JpdGUsXG4gXHQudGFpX3JlYWRcdFx0PSBtdjg4ZTYxNjVfZzJfYXZiX3RhaV9yZWFkLFxuIFx0LnRhaV93cml0ZVx0XHQ9IG12ODhlNjE2NV9nMl9hdmJfdGFpX3dyaXRlLFxuJiM0MztcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbiBcbiBzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG5AQCAtMTk3LDYgJiM0MzsyMDgsMTUgQEAgc3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcHRwX3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbiBcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xuIH1cbiBcbiYjNDM7c3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcWF2X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcbiYjNDM7XHRcdFx0XHRcdCAgIGludCBwb3J0LCBpbnQgYWRkciwgdTE2IGRhdGEpXG4mIzQzO3tcbiYjNDM7XHR1MTYgd3JpdGVvcCA9IE1WODhFNjM5MF9HMl9BVkJfQ01EX09QX1dSSVRFIHwgKHBvcnQgXHUwMDNjXHUwMDNjIDgpIHxcbiYjNDM7XHRcdCAgICAgIChNVjg4RTYzNTJfRzJfQVZCX0NNRF9CTE9DS19RQVYgXHUwMDNjXHUwMDNjIDUpIHwgYWRkcjtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3B0cF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsXG4gXHRcdFx0XHQgICAgIHUxNiAqZGF0YSwgaW50IGxlbilcbiB7XG5AQCAtMjM2LDQgJiM0MzsyNTYsNSBAQCBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgbXY4OGU2MzkwX2F2Yl9vcHMgPSB7XG4gXHQucHRwX3dyaXRlXHRcdD0gbXY4OGU2MzkwX2cyX2F2Yl9wdHBfd3JpdGUsXG4gXHQudGFpX3JlYWRcdFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV9yZWFkLFxuIFx0LnRhaV93cml0ZVx0XHQ9IG12ODhlNjM5MF9nMl9hdmJfdGFpX3dyaXRlLFxuJiM0MztcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXG5pbmRleCBlYTFmYWI3MTk2OGEwLi43NThiOGQ0MWY0ODUzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXG5AQCAtMTMyMyw2ICYjNDM7MTMyMyw1MSBAQCBpbnQgbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcbiBcdFx0XHRcdCAgICAweDAwMDEpO1xuIH1cbiBcbiYjNDM7aW50IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiYjNDM7XHRcdFx0XHQgICAgICAgdTggbW9kZSlcbiYjNDM7e1xuJiM0MztcdHUxNiByZWc7XG4mIzQzO1x0aW50IGVycjtcbiYjNDM7XG4mIzQzO1x0aWYgKG1vZGUgXHUwMDNlIDMpXG4mIzQzO1x0XHRyZXR1cm4gLUVJTlZBTDtcbiYjNDM7XG4mIzQzO1x0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyLFxuJiM0MztcdFx0XHRcdCAgXHUwMDI2cmVnKTtcbiYjNDM7XHRpZiAoZXJyKVxuJiM0MztcdFx0cmV0dXJuIGVycjtcbiYjNDM7XG4mIzQzO1x0cmVnIFx1MDAyNj0gfk1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfTUFTSztcbiYjNDM7XHRyZWcgfD0gbW9kZSBcdTAwM2NcdTAwM2MgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9TSElGVDtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsXG4mIzQzO1x0XHRcdFx0ICAgIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDIsIHJlZyk7XG4mIzQzO31cbiYjNDM7XG4mIzQzO2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4mIzQzO1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpXG4mIzQzO3tcbiYjNDM7XHR1MTYgcmVnO1xuJiM0MztcdGludCBlcnI7XG4mIzQzO1xuJiM0MztcdGlmIChtb2RlIFx1MDAzZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSylcbiYjNDM7XHRcdHJldHVybiAtRUlOVkFMO1xuJiM0MztcbiYjNDM7XHRyZWcgPSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfVVBEQVRFIHxcbiYjNDM7XHQgICAgICAoTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFIFx1MDAzY1x1MDAzY1xuJiM0MztcdCAgICAgICBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfUFRSX1NISUZUKSB8XG4mIzQzO1x0ICAgICAgKG1vZGUgXHUwMDI2IE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRV9NQVNLKTtcbiYjNDM7XG4mIzQzO1x0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMLFxuJiM0MztcdFx0XHRcdCAgIHJlZyk7XG4mIzQzO1x0aWYgKGVycilcbiYjNDM7XHRcdHJldHVybiBlcnI7XG4mIzQzO1xuJiM0MztcdHJldHVybiBtdjg4ZTZ4eHhfcG9ydF93YWl0X2JpdChjaGlwLCBwb3J0LCBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVEwsXG4mIzQzO1x0XHRcdFx0ICAgICAgIF9fYmZfc2hmKE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9VUERBVEUpXG4mIzQzO1x0XHRcdFx0ICAgICAgICwgMCk7XG4mIzQzO31cbiYjNDM7XG4gLyogT2Zmc2V0IDB4MEI6IFBvcnQgQXNzb2NpYXRpb24gVmVjdG9yICovXG4gXG4gaW50IG12ODhlNnh4eF9wb3J0X3NldF9hc3NvY192ZWN0b3Ioc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbkBAIC0xNzI3LDMgJiM0MzsxNzcyLDIxIEBAIGludCBtdjg4ZTYzOTN4X3BvcnRfc2V0X3BvbGljeShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuIFxuIFx0cmV0dXJuIG12ODhlNjM5M3hfcG9ydF9wb2xpY3lfd3JpdGUoY2hpcCwgcG9ydCwgcHRyLCByZWcpO1xuIH1cbiYjNDM7XG4mIzQzO2ludCBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsXG4mIzQzO1x0XHRcdCAgICAgdTE2IGRhdGEpXG4mIzQzO3tcbiYjNDM7XHRpZiAoIWNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHMtXHUwMDNlYXZiX29wcy1cdTAwM2Vwb3J0X3Fhdl93cml0ZSlcbiYjNDM7XHRcdHJldHVybiAtRU9QTk9UU1VQUDtcbiYjNDM7XG4mIzQzO1x0cmV0dXJuIGNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHMtXHUwMDNlYXZiX29wcy1cdTAwM2Vwb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCBhZGRyLCBkYXRhKTtcbiYjNDM7fVxuJiM0MztcbiYjNDM7aW50IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiYjNDM7XHRcdFx0XHQgICAgICAgdTggbW9kZSlcbiYjNDM7e1xuJiM0MztcdGlmICghY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2Vwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUpXG4mIzQzO1x0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4mIzQzO1xuJiM0MztcdHJldHVybiBjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShjaGlwLCBwb3J0LCBtb2RlKTtcbiYjNDM7fVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmhcbmluZGV4IDViNmNkZTlmNzQwNmYuLmEzODBmMzU2ZWI4M2QgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmhcbkBAIC0yNDEsNiAmIzQzOzI0MSwxOCBAQFxuIFxuIC8qIE9mZnNldCAweDBBOiBFZ3Jlc3MgUmF0ZSBDb250cm9sIDIgKi9cbiAjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJcdFx0MHgwYVxuJiM0MzsjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfTUFTS1x0MHgzMDAwXG4mIzQzOyNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9TSElGVFx0MTJcbiYjNDM7XG4mIzQzOy8qIE9mZnNldCAweDFDOiBQb3J0IFF1ZXVlIENvbnRyb2wgKi9cbiYjNDM7I2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExcdFx0XHQweDFjXG4mIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURVx0XHRcdDB4ODAwMFxuJiM0MzsjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfTUFTS1x0XHQweDdmMDBcbiYjNDM7I2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfUFRSX1NISUZUXHRcdDhcbiYjNDM7I2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfREFUQV9NQVNLXHRcdDB4MDBmZlxuJiM0MzsjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRVx0XHQweDAwXG4mIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFX01BU0tcdFx0MHgwN1xuJiM0MztcbiBcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cbiAjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0FTU09DX1ZFQ1RPUlx0XHRcdDB4MGJcbkBAIC01NjEsNiAmIzQzOzU3MywxMCBAQCBpbnQgbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiBcdFx0XHRcdCAgc2l6ZV90IHNpemUpO1xuIGludCBtdjg4ZTYwOTVfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbiBpbnQgbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG4mIzQzO2ludCBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4mIzQzO1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpO1xuJiM0MztpbnQgbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuJiM0MztcdFx0XHRcdCAgICAgICB1OCBtb2RlKTtcbiBpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2Fzc29jX3ZlY3RvcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuIFx0XHRcdFx0ICAgIHUxNiBwYXYpO1xuIGludCBtdjg4ZTYwOTdfcG9ydF9wYXVzZV9saW1pdChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCB1OCBpbixcbkBAIC02MDUsNSAmIzQzOzYyMSw5IEBAIGludCBtdjg4ZTZ4eHhfcG9ydF9oaWRkZW5fcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBibG9jaywgaW50IHBvcnQsXG4gXHRcdFx0ICAgICAgIGludCByZWcsIHUxNiAqdmFsKTtcbiBcbiBpbnQgbXY4OGU2eHh4X3BvcnRfZW5hYmxlX3RjYW0oc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG4mIzQzO2ludCBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsXG4mIzQzO1x0XHRcdCAgICAgdTE2IGRhdGEpO1xuJiM0MztpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuJiM0MztcdFx0XHRcdCAgICAgICB1OCBtb2RlKTtcbiBcbiAjZW5kaWYgLyogX01WODhFNlhYWF9QT1JUX0ggKi9cbmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9wa3Rfc2NoZWQuaCBiL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oXG5pbmRleCAxOGE0MTljZDlkOTQ5Li5kMzVjODcwMDRjMjc5IDEwMDY0NFxuLS0tIGEvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oXG5AQCAtMTUwLDYgJiM0MzsxNTAsNyBAQCBzdHJ1Y3QgdGNfY2JzX3FvcHRfb2ZmbG9hZCB7XG4gXHRzMzIgbG9jcmVkaXQ7XG4gXHRzMzIgaWRsZXNsb3BlO1xuIFx0czMyIHNlbmRzbG9wZTtcbiYjNDM7XHRzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2s7XG4gfTtcbiBcbiBzdHJ1Y3QgdGNfZXRmX3FvcHRfb2ZmbG9hZCB7XG5kaWZmIC0tZ2l0IGEvbmV0L2RzYS90YWdfZHNhLmMgYi9uZXQvZHNhL3RhZ19kc2EuY1xuaW5kZXggZDVmZmVlMzVmYmI1My4uMmJiNzFjZDM0M2U3OSAxMDA2NDRcbi0tLSBhL25ldC9kc2EvdGFnX2RzYS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvZHNhL3RhZ19kc2EuY1xuQEAgLTE3OSw4ICYjNDM7MTc5LDE3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZHNhX3htaXRfbGwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdFx0XHRkc2FfaGVhZGVyWzJdIFx1MDAyNj0gfjB4MTA7XG4gXHRcdH1cbiBcdH0gZWxzZSB7XG4mIzQzO1x0XHR1MTYgcXVldWUgPSBza2JfZ2V0X3F1ZXVlX21hcHBpbmcoc2tiKSBcdTAwMjYgMHg3O1xuIFx0XHR1MTYgdmlkO1xuIFxuJiM0MztcdFx0LyogVGhlIFBSSSBmaWVsZCBpcyAzIGJpdHMuIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiB0aGVcbiYjNDM7XHRcdCAqIDIgaGlnaGVzdCBiaXRzIHNwZWNpZnkgdGhlIGVncmVzcyBxdWV1ZSBpbiBGcm9tX0NQVSBEU0FcbiYjNDM7XHRcdCAqIHRhZ2dlZCBmcmFtZXMuIE9uIGRldmljZXMgd2l0aCA4IHF1ZXVlcyBpdCYjMzk7cyBwb3NzaWJsZSB0b1xuJiM0MztcdFx0ICogc2VuZCB0byB0aGUgOCBxdWV1ZXMsIHdoaWNoIG1lYW5zIHRoZSAzIGJpdHMgYXJlIHVzZWQuXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdGlmIChkcC1cdTAwM2Vkcy1cdTAwM2VudW1fdHhfcXVldWVzID09IDQpXG4mIzQzO1x0XHRcdHF1ZXVlIFx1MDAzY1x1MDAzYz0gMTtcbiYjNDM7XG4gXHRcdHZpZCA9IGJyX2RldiA/IE1WODhFNlhYWF9WSURfQlJJREdFRCA6IE1WODhFNlhYWF9WSURfU1RBTkRBTE9ORTtcbiBcbiBcdFx0c2tiX3B1c2goc2tiLCBEU0FfSExFTiAmIzQzOyBleHRyYSk7XG5AQCAtMTkxLDcgJiM0MzsyMDAsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmRzYV94bWl0X2xsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4gXG4gXHRcdGRzYV9oZWFkZXJbMF0gPSAoY21kIFx1MDAzY1x1MDAzYyA2KSB8IHRhZ19kZXY7XG4gXHRcdGRzYV9oZWFkZXJbMV0gPSB0YWdfcG9ydCBcdTAwM2NcdTAwM2MgMztcbi1cdFx0ZHNhX2hlYWRlclsyXSA9IHZpZCBcdTAwM2VcdTAwM2UgODtcbiYjNDM7XHRcdGRzYV9oZWFkZXJbMl0gPSAocXVldWUgXHUwMDNjXHUwMDNjIDUpIHwgdmlkIFx1MDAzZVx1MDAzZSA4O1xuIFx0XHRkc2FfaGVhZGVyWzNdID0gdmlkIFx1MDAyNiAweGZmO1xuIFx0fVxuIFxuZGlmZiAtLWdpdCBhL25ldC9zY2hlZC9zY2hfY2JzLmMgYi9uZXQvc2NoZWQvc2NoX2Nicy5jXG5pbmRleCAxYzkzNDY5YzU2ZTNkLi44N2MyZWRhMTA4YzhjIDEwMDY0NFxuLS0tIGEvbmV0L3NjaGVkL3NjaF9jYnMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3NjaGVkL3NjaF9jYnMuY1xuQEAgLTMwNywxMCAmIzQzOzMwNywxMiBAQCBzdGF0aWMgaW50IGNic19lbmFibGVfb2ZmbG9hZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgY2JzX3NjaGVkX2RhdGEgKnEsXG4gXHRjYnMubG9jcmVkaXQgPSBvcHQtXHUwMDNlbG9jcmVkaXQ7XG4gXHRjYnMuaWRsZXNsb3BlID0gb3B0LVx1MDAzZWlkbGVzbG9wZTtcbiBcdGNicy5zZW5kc2xvcGUgPSBvcHQtXHUwMDNlc2VuZHNsb3BlO1xuJiM0MztcdGNicy5leHRhY2sgPSBleHRhY2s7XG4gXG4gXHRlcnIgPSBvcHMtXHUwMDNlbmRvX3NldHVwX3RjKGRldiwgVENfU0VUVVBfUURJU0NfQ0JTLCBcdTAwMjZjYnMpO1xuIFx0aWYgKGVyciBcdTAwM2MgMCkge1xuLVx0XHROTF9TRVRfRVJSX01TRyhleHRhY2ssIFwmIzM0O1NwZWNpZmllZCBkZXZpY2UgZmFpbGVkIHRvIHNldHVwIGNicyBoYXJkd2FyZSBvZmZsb2FkXCYjMzQ7KTtcbiYjNDM7XHRcdE5MX1NFVF9FUlJfTVNHX1dFQUsoZXh0YWNrLFxuJiM0MztcdFx0XHRcdCAgICBcJiMzNDtTcGVjaWZpZWQgZGV2aWNlIGZhaWxlZCB0byBzZXR1cCBjYnMgaGFyZHdhcmUgb2ZmbG9hZFwmIzM0Oyk7XG4gXHRcdHJldHVybiBlcnI7XG4gXHR9XG4gXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIHByaW1hcmlseSBhZGRzIDgwMi4xUWF2IENCUyBvZmZsb2FkaW5nIHN1cHBvcnQgdG8gdGhlIE1hcnZlbGwgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGRyaXZlciBjYW5ub3QgYmUgZXhlcmNpc2VkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoZSBjaGFuZ2VzIGluIG5ldC9kc2EvdGFnX2RzYS5jIGFyZSBzcGVjaWZpYyB0byB0aGUgRFNBIHRhZyBwcm90b2NvbCB1c2VkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgZHJpdmVyLiBUaGUgbW9kaWZpY2F0aW9uIGluIG5ldC9zY2hlZC9zY2hfY2JzLmMgaXMgYSB0cml2aWFsIGNoYW5nZSB0byBwYXNzIGV4dGFjayBkb3duIHRvIHRoZSBkcml2ZXIgYW5kIHVzZSBOTF9TRVRfRVJSX01TR19XRUFLLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgcmVxdWlyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgNTIyYjRmNDY5YjhmZjUzZDE0MTZmYTRkYTk3OWUzZjQxNWY4NTA3OQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBUdWUgQXVnIDExIDEyOjAwOjM2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwppbmRleCA4MGI4NzdjNzQ1MTNkLi5hNTY3ZWU5YjZjZTBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwpAQCAtMzIsNiAmIzQzOzMyLDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9ncGlvL2NvbnN1bWVyLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcGh5bGluay5oJmd0OwogI2luY2x1ZGUgJmx0O25ldC9kc2EuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bmV0L3BrdF9zY2hlZC5oJmd0OwogCiAjaW5jbHVkZSAmIzM0O2NoaXAuaCYjMzQ7CiAjaW5jbHVkZSAmIzM0O2RldmxpbmsuaCYjMzQ7CkBAIC0zOTkwLDYgJiM0MzszOTkxLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKQogCiAJY2hpcC0mZ3Q7ZHMgPSBkczsKIAlkcy0mZ3Q7dXNlcl9taWlfYnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7CiYjNDM7CWRzLSZndDtudW1fdHhfcXVldWVzID0gY2hpcC0mZ3Q7aW5mby0mZ3Q7bnVtX3R4X3F1ZXVlczsKIAogCS8qIFNpbmNlIHZpcnR1YWwgYnJpZGdlcyBhcmUgbWFwcGVkIGluIHRoZSBQVlQsIHRoZSBudW1iZXIgd2Ugc3VwcG9ydAogCSAqIGRlcGVuZHMgb24gdGhlIHBoeXNpY2FsIHN3aXRjaCB0b3BvbG9neS4gV2UgbmVlZCB0byBsZXQgRFNBIGZpZ3VyZQpAQCAtNTAyMyw2ICYjNDM7NTAyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYyNDBfb3BzID0gewogCS5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsCiAJLnBvcnRfc2V0X2p1bWJvX3NpemUgPSBtdjg4ZTYxNjVfcG9ydF9zZXRfanVtYm9fc2l6ZSwKIAkucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLAomIzQzOwkucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzUyX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSwKIAkucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LAogCS5wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0LAogCS5wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUsCkBAIC01MzA2LDYgJiM0Mzs1MzA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM0MV9vcHMgPSB7CiAJLnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSwKIAkucG9ydF9zZXRfanVtYm9fc2l6ZSA9IG12ODhlNjE2NV9wb3J0X3NldF9qdW1ib19zaXplLAogCS5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsCiYjNDM7CS5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLAogCS5wb3J0X3BhdXNlX2xpbWl0ID0gbXY4OGU2MDk3X3BvcnRfcGF1c2VfbGltaXQsCiAJLnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsCiAJLnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSwKQEAgLTU0NjQsNiAmIzQzOzU0NjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzUyX29wcyA9IHsKIAkucG9ydF9zZXRfZXRoZXJfdHlwZSA9IG12ODhlNjM1MV9wb3J0X3NldF9ldGhlcl90eXBlLAogCS5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsCiAJLnBvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcgPSBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZywKJiM0MzsJLnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsCiAJLnBvcnRfcGF1c2VfbGltaXQgPSBtdjg4ZTYwOTdfcG9ydF9wYXVzZV9saW1pdCwKIAkucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCwKIAkucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLApAQCAtNTUzMyw2ICYjNDM7NTUzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTBfb3BzID0gewogCS5wb3J0X2dldF9jbW9kZSA9IG12ODhlNjM1Ml9wb3J0X2dldF9jbW9kZSwKIAkucG9ydF9zZXRfY21vZGUgPSBtdjg4ZTYzOTBfcG9ydF9zZXRfY21vZGUsCiAJLnBvcnRfc2V0dXBfbWVzc2FnZV9wb3J0ID0gbXY4OGU2eHh4X3NldHVwX21lc3NhZ2VfcG9ydCwKJiM0MzsJLnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsCiAJLnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LAogCS5zdGF0c19zZXRfaGlzdG9ncmFtID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NldF9oaXN0b2dyYW0sCiAJLnN0YXRzX2dldF9zc2V0X2NvdW50ID0gbXY4OGU2MzIwX3N0YXRzX2dldF9zc2V0X2NvdW50LApAQCAtNTU5Nyw2ICYjNDM7NTYwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTB4X29wcyA9IHsKIAkucG9ydF9nZXRfY21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9nZXRfY21vZGUsCiAJLnBvcnRfc2V0X2Ntb2RlID0gbXY4OGU2MzkweF9wb3J0X3NldF9jbW9kZSwKIAkucG9ydF9zZXR1cF9tZXNzYWdlX3BvcnQgPSBtdjg4ZTZ4eHhfc2V0dXBfbWVzc2FnZV9wb3J0LAomIzQzOwkucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSwKIAkuc3RhdHNfc25hcHNob3QgPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc25hcHNob3QsCiAJLnN0YXRzX3NldF9oaXN0b2dyYW0gPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc2V0X2hpc3RvZ3JhbSwKIAkuc3RhdHNfZ2V0X3NzZXRfY291bnQgPSBtdjg4ZTYzMjBfc3RhdHNfZ2V0X3NzZXRfY291bnQsCkBAIC01NjUzLDYgJiM0Mzs1NjYwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM5M3hfb3BzID0gewogCS5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzkzeF9wb3J0X3NldF9ldGhlcl90eXBlLAogCS5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsCiAJLnBvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcgPSBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZywKJiM0MzsJLnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsCiAJLnBvcnRfcGF1c2VfbGltaXQgPSBtdjg4ZTYzOTBfcG9ydF9wYXVzZV9saW1pdCwKIAkucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCwKIAkucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLApAQCAtNTY5NSw2ICYjNDM7NTcwMywyNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkzeF9vcHMgPSB7CiAJLnRjYW1fb3BzID0gJmFtcDttdjg4ZTYzOTNfdGNhbV9vcHMsCiB9OwogCiYjNDM7c3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gbXY4OGU2MzUyX3Fhdl9pbmZvID0gewomIzQzOwkucmF0ZV91bml0ID0gMzIsCiYjNDM7CS5yYXRlX21hc2sgPSBHRU5NQVNLKDE0LCAwKSwKJiM0MzsJLmhpbGltaXRfbWFzayA9IEdFTk1BU0soMTQsIDApLAomIzQzOwkucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksCiYjNDM7fTsKJiM0MzsKJiM0MztzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzNDFfcWF2X2luZm8gPSB7CiYjNDM7CS5yYXRlX3VuaXQgPSA2NCwKJiM0MzsJLnJhdGVfbWFzayA9IEdFTk1BU0soMTUsIDApLAomIzQzOwkuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksCiYjNDM7CS5xdWV1ZV9tYXNrID0gR0VOTUFTSygzLCAwKSwKJiM0Mzt9OwomIzQzOwomIzQzO3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvIG12ODhlNjM5MF9xYXZfaW5mbyA9IHsKJiM0MzsJLnJhdGVfdW5pdCA9IDY0LAomIzQzOwkucmF0ZV9tYXNrID0gR0VOTUFTSygxNSwgMCksCiYjNDM7CS5oaWxpbWl0X21hc2sgPSBHRU5NQVNLKDEzLCAwKSwKJiM0MzsJLnF1ZXVlX21hc2sgPSBHRU5NQVNLKDcsIDApLAomIzQzO307CiYjNDM7CiBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCVtNVjg4RTYwMjBdID0gewogCQkucHJvZF9udW0gPSBNVjg4RTZYWFhfUE9SVF9TV0lUQ0hfSURfUFJPRF82MDIwLApAQCAtNTcwNiw2ICYjNDM7NTczNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCSAqLwogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gMiwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLmludmFsaWRfcG9ydF9tYXNrID0gQklUKDIpIHwgQklUKDMpIHwgQklUKDQpLAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4OCwKQEAgLTU3MjgsNiAmIzQzOzU3NTgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX2RhdGFiYXNlcyA9IDY0LAogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDA4LAogCQkucGh5X2Jhc2VfYWRkciA9IDB4MDAsCkBAIC01NzUwLDYgJiM0Mzs1NzgxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDEwLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01Nzc0LDYgJiM0Mzs1ODA2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDExLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSAwLAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCiAJCS5waHlfYmFzZV9hZGRyID0gMHgwLApAQCAtNTc5NSw2ICYjNDM7NTgyOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSAxMSwKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOCwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNTgyMCw2ICYjNDM7NTg1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fbWFjcyA9IDEwMjQsCiAJCS5udW1fcG9ydHMgPSAzLAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01ODQ1LDYgJiM0Mzs1ODgwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDgsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDAsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAweDAsCkBAIC01ODY3LDYgJiM0Mzs1OTAzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDYsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiAJCS5udW1fZ3BpbyA9IDExLAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01ODkyLDYgJiM0Mzs1OTI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gMTAyNCwKIAkJLm51bV9wb3J0cyA9IDYsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTU5MTgsNiAmIzQzOzU5NTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNiwKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gMCwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNTk0Myw2ICYjNDM7NTk4Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fbWFjcyA9IDgxOTIsCiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01OTY5LDYgJiM0Mzs2MDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiAJCS5udW1fZ3BpbyA9IDE1LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA0LAogCQkubWF4X3ZpZCA9IDQwOTUsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsCkBAIC01OTk0LDYgJiM0Mzs2MDM1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTYwMjAsNiAmIzQzOzYwNjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKIAkJLm51bV9ncGlvID0gMTUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTYwNDUsNiAmIzQzOzYwODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gMTAsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDAsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAweDAsCkBAIC02MDY4LDYgJiM0Mzs2MTEyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDgsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNjA5Myw2ICYjNDM7NjEzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCiAJCS5udW1fZ3BpbyA9IDE2LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA4LAogCQkubWF4X3ZpZCA9IDgxOTEsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MCwKQEAgLTYxMTcsNiAmIzQzOzYxNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX21hY3MgPSAxNjM4NCwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gOCwKIAkJLm1heF92aWQgPSA4MTkxLAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDAsCkBAIC02MTQyLDYgJiM0Mzs2MTg5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOCwKIAkJLmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gOCwKIAkJLm1heF92aWQgPSA4MTkxLAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDAsCkBAIC02MTY4LDYgJiM0Mzs2MjE2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOCwKIAkJLm51bV90Y2FtX2VudHJpZXMgPSAyNTYsCiAJCS5pbnRlcm5hbF9waHlzX29mZnNldCA9IDEsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDgsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNjE5OCw2ICYjNDM7NjI0Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSAyLAogCQkuaW52YWxpZF9wb3J0X21hc2sgPSBCSVQoMikgfCBCSVQoMykgfCBCSVQoNCksCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwOCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAweDAwLApAQCAtNjIyMiw2ICYjNDM7NjI3Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAogCQkubnVtX2dwaW8gPSAxNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjIzNyw2ICYjNDM7NjI4OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM1Ml9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MjQwX29wcywKIAl9LAogCkBAIC02MjQ3LDYgJiM0Mzs2Mjk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9kYXRhYmFzZXMgPSA2NCwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwOCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAweDAwLApAQCAtNjI3MSw2ICYjNDM7NjMyNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDksCiAJCS5udW1fZ3BpbyA9IDE2LAogCQkubnVtX3RjYW1fZW50cmllcyA9IDI1NiwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gOCwKIAkJLm1heF92aWQgPSA4MTkxLAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDAsCkBAIC02Mjk5LDYgJiM0Mzs2MzUzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gMiwKIAkJLmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMywKIAkJLm51bV9ncGlvID0gMTUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTYzMjcsNiAmIzQzOzYzODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX2ludGVybmFsX3BoeXMgPSAyLAogCQkuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAzLAogCQkubnVtX2dwaW8gPSAxNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjM1NCw2ICYjNDM7NjQxMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiAJCS5udW1fcG9ydHMgPSA2LAogCQkubnVtX2dwaW8gPSAxMSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjM2OSw2ICYjNDM7NjQyNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM0MV9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MzQxX29wcywKIAl9LAogCkBAIC02MzgwLDYgJiM0Mzs2NDM4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9tYWNzID0gODE5MiwKIAkJLm51bV9wb3J0cyA9IDcsCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDUsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDQsCiAJCS5tYXhfdmlkID0gNDA5NSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgxMCwKQEAgLTY0MDUsNiAmIzQzOzY0NjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubnVtX21hY3MgPSA4MTkyLAogCQkubnVtX3BvcnRzID0gNywKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjQzMSw2ICYjNDM7NjQ5MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSA3LAogCQkubnVtX2ludGVybmFsX3BoeXMgPSA1LAogCQkubnVtX2dwaW8gPSAxNSwKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gNCwKIAkJLm1heF92aWQgPSA0MDk1LAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDEwLApAQCAtNjQ0Niw2ICYjNDM7NjUwNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM1Ml9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MzUyX29wcywKIAl9LAogCVtNVjg4RTYzNjFdID0gewpAQCAtNjQ1OSw2ICYjNDM7NjUyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgxKSB8IEJJVCgyKSB8IEJJVCg4KSwKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gNSwKIAkJLmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMywKJiM0MzsJCS5udW1fdHhfcXVldWVzID0gOCwKIAkJLm1heF92aWQgPSA4MTkxLAogCQkubWF4X3NpZCA9IDYzLAogCQkucG9ydF9iYXNlX2FkZHIgPSAweDAsCkBAIC02NDg1LDYgJiM0Mzs2NTQ4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiAJCS5udW1fdGNhbV9lbnRyaWVzID0gMjU2LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA4LAogCQkubWF4X3ZpZCA9IDgxOTEsCiAJCS5tYXhfc2lkID0gNjMsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MCwKQEAgLTY1MDEsNiAmIzQzOzY1NjUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubXVsdGlfY2hpcCA9IHRydWUsCiAJCS5lZHNhX3N1cHBvcnQgPSBNVjg4RTZYWFhfRURTQV9VTkRPQ1VNRU5URUQsCiAJCS5wdHBfc3VwcG9ydCA9IHRydWUsCiYjNDM7CQkucWF2ID0gJmFtcDttdjg4ZTYzOTBfcWF2X2luZm8sCiAJCS5vcHMgPSAmYW1wO212ODhlNjM5MF9vcHMsCiAJfSwKIAlbTVY4OEU2MzkwWF0gPSB7CkBAIC02NTEyLDYgJiM0Mzs2NTc3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAmIzQzOyBaODAgKi8KIAkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiYjNDM7CQkubnVtX3R4X3F1ZXVlcyA9IDgsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLm1heF9zaWQgPSA2MywKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNjUyNyw2ICYjNDM7NjU5Myw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1VORE9DVU1FTlRFRCwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM5MF9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MzkweF9vcHMsCiAJfSwKIApAQCAtNjUzOCw2ICYjNDM7NjYwNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgJiM0MzsgWjgwICovCiAJCS5udW1faW50ZXJuYWxfcGh5cyA9IDgsCiAJCS5udW1fdGNhbV9lbnRyaWVzID0gMjU2LAomIzQzOwkJLm51bV90eF9xdWV1ZXMgPSA4LAogCQkuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLAogCQkubWF4X3ZpZCA9IDgxOTEsCiAJCS5tYXhfc2lkID0gNjMsCkBAIC02NTU0LDYgJiM0Mzs2NjIyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLnB2dCA9IHRydWUsCiAJCS5tdWx0aV9jaGlwID0gdHJ1ZSwKIAkJLnB0cF9zdXBwb3J0ID0gdHJ1ZSwKJiM0MzsJCS5xYXYgPSAmYW1wO212ODhlNjM5MF9xYXZfaW5mbywKIAkJLm9wcyA9ICZhbXA7bXY4OGU2MzkzeF9vcHMsCiAJfSwKIH07CkBAIC03MTc1LDYgJiM0Mzs3MjQ0LDExMiBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9jcm9zc2NoaXBfbGFnX2xlYXZlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHN3X2luZGV4LAogCXJldHVybiBlcnJfc3luYyA/IDogZXJyX3B2dDsKIH0KIAomIzQzO3N0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwX3RjX2NicyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAomIzQzOwkJCQkgIHN0cnVjdCB0Y19jYnNfcW9wdF9vZmZsb2FkICpjYnMpCiYjNDM7ewomIzQzOwljb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgKmF2Yl9vcHM7CiYjNDM7CXN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLSZndDtwcml2OwomIzQzOwljb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvICpxYXY7CiYjNDM7CWNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzICpvcHM7CiYjNDM7CWludCBoaWxpbWl0X3JlZzsKJiM0MzsJaW50IHJhdGVfcmVnOwomIzQzOwl1OCBxdWV1ZV9iaXQ7CiYjNDM7CXUzMiByYXRlID0gMDsKJiM0MzsJdTE2IGhpbGltaXQ7CiYjNDM7CWludCBlcnI7CiYjNDM7CiYjNDM7CW9wcyA9IGNoaXAtJmd0O2luZm8tJmd0O29wczsKJiM0MzsJYXZiX29wcyA9IG9wcy0mZ3Q7YXZiX29wczsKJiM0MzsJcWF2ID0gY2hpcC0mZ3Q7aW5mby0mZ3Q7cWF2OwomIzQzOwomIzQzOwlpZiAoIXFhdiB8fCAhYXZiX29wcyB8fCAhYXZiX29wcy0mZ3Q7cG9ydF9xYXZfd3JpdGUgfHwKJiM0MzsJICAgICFvcHMtJmd0O3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSkKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsKJiM0MzsJaWYgKCFkc2FfaXNfdXNlcl9wb3J0KGRzLCBwb3J0KSkKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsKJiM0MzsJaWYgKCEocWF2LSZndDtxdWV1ZV9tYXNrICZhbXA7IEJJVChjYnMtJmd0O3F1ZXVlKSkpIHsKJiM0MzsJCU5MX1NFVF9FUlJfTVNHX01PRChjYnMtJmd0O2V4dGFjaywgJiMzNDtDQlMgbm90IHN1cHBvcnRlZCBvbiBxdWV1ZSYjMzQ7KTsKJiM0MzsJCXJldHVybiAtRU9QTk9UU1VQUDsKJiM0MzsJfQomIzQzOwomIzQzOwlxdWV1ZV9iaXQgPSBCSVQoY2JzLSZndDtxdWV1ZSk7CiYjNDM7CXJhdGVfcmVnID0gTVY4OEU2WFhYX1BPUlRfUUFWX0NGR19SQVRFKGNicy0mZ3Q7cXVldWUpOwomIzQzOwloaWxpbWl0X3JlZyA9IE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfSElMSU1JVChjYnMtJmd0O3F1ZXVlKTsKJiM0MzsKJiM0MzsJaWYgKGNicy0mZ3Q7ZW5hYmxlKSB7CiYjNDM7CQlpZiAoY2JzLSZndDtoaWNyZWRpdCAmbHQ7PSAwIHx8CiYjNDM7CQkgICAgY2JzLSZndDtoaWNyZWRpdCAmZ3Q7IHFhdi0mZ3Q7aGlsaW1pdF9tYXNrKSB7CiYjNDM7CQkJTkxfU0VUX0VSUl9NU0dfTU9EKGNicy0mZ3Q7ZXh0YWNrLAomIzQzOwkJCQkJICAgJiMzNDtoaWNyZWRpdCBvdXQgb2YgcmFuZ2UmIzM0Oyk7CiYjNDM7CQkJcmV0dXJuIC1FUkFOR0U7CiYjNDM7CQl9CiYjNDM7CiYjNDM7CQlyYXRlID0gRElWX1JPVU5EX1VQKGNicy0mZ3Q7aWRsZXNsb3BlLCBxYXYtJmd0O3JhdGVfdW5pdCk7CiYjNDM7CQlpZiAocmF0ZSAmZ3Q7IHFhdi0mZ3Q7cmF0ZV9tYXNrKSB7CiYjNDM7CQkJTkxfU0VUX0VSUl9NU0dfTU9EKGNicy0mZ3Q7ZXh0YWNrLAomIzQzOwkJCQkJICAgJiMzNDtpZGxlc2xvcGUgb3V0IG9mIHJhbmdlJiMzNDspOwomIzQzOwkJCXJldHVybiAtRVJBTkdFOwomIzQzOwkJfQomIzQzOwkJLyogYXZvaWQgdXNpbmcgemVybyByYXRlICovCiYjNDM7CQlyYXRlID0gbWF4X3QodTE2LCByYXRlLCAxKTsKJiM0MzsJfQomIzQzOwomIzQzOwltdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7CiYjNDM7CiYjNDM7CWlmICghY2JzLSZndDtlbmFibGUpIHsKJiM0MzsJCWVyciA9IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCByYXRlX3JlZywgMCk7CiYjNDM7CQlpZiAoZXJyKQomIzQzOwkJCWdvdG8gdW5sb2NrOwomIzQzOwomIzQzOwkJaWYgKCEoY2hpcC0mZ3Q7cG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgJmFtcDsgfnF1ZXVlX2JpdCkpIHsKJiM0MzsJCQllcnIgPSBtdjg4ZTZ4eHhfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKGNoaXAsIHBvcnQsIDApOwomIzQzOwkJCWlmIChlcnIpCiYjNDM7CQkJCWdvdG8gdW5sb2NrOwomIzQzOwkJfQomIzQzOwkJY2hpcC0mZ3Q7cG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgJmFtcDs9IH5xdWV1ZV9iaXQ7CiYjNDM7CQlnb3RvIHVubG9jazsKJiM0MzsJfQomIzQzOwomIzQzOwloaWxpbWl0ID0gY2JzLSZndDtoaWNyZWRpdCAmYW1wOyBxYXYtJmd0O2hpbGltaXRfbWFzazsKJiM0MzsJZXJyID0gbXY4OGU2eHh4X3BvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIGhpbGltaXRfcmVnLCBoaWxpbWl0KTsKJiM0MzsJaWYgKGVycikKJiM0MzsJCWdvdG8gdW5sb2NrOwomIzQzOwomIzQzOwllcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIHJhdGUpOwomIzQzOwlpZiAoZXJyKQomIzQzOwkJZ290byB1bmxvY2s7CiYjNDM7CiYjNDM7CWlmICghY2hpcC0mZ3Q7cG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMpIHsKJiM0MzsJCXU4IHNjaGVkX21vZGUgPSBjaGlwLSZndDtpbmZvLSZndDtudW1fdHhfcXVldWVzIC0gMTsKJiM0MzsKJiM0MzsJCWVyciA9IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCwKJiM0MzsJCQkJCQkJIHNjaGVkX21vZGUpOwomIzQzOwkJaWYgKGVycikgewomIzQzOwkJCW12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCByYXRlX3JlZywgMCk7CiYjNDM7CQkJZ290byB1bmxvY2s7CiYjNDM7CQl9CiYjNDM7CX0KJiM0MzsJY2hpcC0mZ3Q7cG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgfD0gcXVldWVfYml0OwomIzQzOwomIzQzO3VubG9jazoKJiM0MzsJbXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7CiYjNDM7CiYjNDM7CXJldHVybiBlcnI7CiYjNDM7fQomIzQzOwomIzQzO3N0YXRpYyBpbnQgbXY4OGU2eHh4X3BvcnRfc2V0dXBfdGMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKJiM0MzsJCQkJICAgZW51bSB0Y19zZXR1cF90eXBlIHR5cGUsIHZvaWQgKnR5cGVfZGF0YSkKJiM0Mzt7CiYjNDM7CXN3aXRjaCAodHlwZSkgewomIzQzOwljYXNlIFRDX1NFVFVQX1FESVNDX0NCUzoKJiM0MzsJCXJldHVybiBtdjg4ZTZ4eHhfc2V0dXBfdGNfY2JzKGRzLCBwb3J0LCB0eXBlX2RhdGEpOwomIzQzOwlkZWZhdWx0OgomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwl9CiYjNDM7fQomIzQzOwogc3RhdGljIGNvbnN0IHN0cnVjdCBwaHlsaW5rX21hY19vcHMgbXY4OGU2eHh4X3BoeWxpbmtfbWFjX29wcyA9IHsKIAkubWFjX3NlbGVjdF9wY3MJCT0gbXY4OGU2eHh4X21hY19zZWxlY3RfcGNzLAogCS5tYWNfcHJlcGFyZQkJPSBtdjg4ZTZ4eHhfbWFjX3ByZXBhcmUsCkBAIC03MjM0LDYgJiM0Mzs3NDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBtdjg4ZTZ4eHhfc3dpdGNoX29wcyA9IHsKIAkucG9ydF9od3RzdGFtcF9nZXQJPSBtdjg4ZTZ4eHhfcG9ydF9od3RzdGFtcF9nZXQsCiAJLnBvcnRfdHh0c3RhbXAJCT0gbXY4OGU2eHh4X3BvcnRfdHh0c3RhbXAsCiAJLnBvcnRfcnh0c3RhbXAJCT0gbXY4OGU2eHh4X3BvcnRfcnh0c3RhbXAsCiYjNDM7CS5wb3J0X3NldHVwX3RjCQk9IG12ODhlNnh4eF9wb3J0X3NldHVwX3RjLAogCS5jbHNfZmxvd2VyX2FkZAkJPSBtdjg4ZTZ4eHhfY2xzX2Zsb3dlcl9hZGQsCiAJLmNsc19mbG93ZXJfZGVsICAgICAgICAgPSBtdjg4ZTZ4eHhfY2xzX2Zsb3dlcl9kZWwsCiAJLmdldF90c19pbmZvCQk9IG12ODhlNnh4eF9nZXRfdHNfaW5mbywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKaW5kZXggZTk2NmU3YzRjYzVkZS4uZDQyZDgzOWU2MzZiYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmgKQEAgLTEyNSw2ICYjNDM7MTI1LDcgQEAgZW51bSBtdjg4ZTZ4eHhfZWRzYV9zdXBwb3J0IHsKIH07CiAKIHN0cnVjdCBtdjg4ZTZ4eHhfb3BzOwomIzQzO3N0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm87CiAKIHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyB7CiAJZW51bSBtdjg4ZTZ4eHhfZmFtaWx5IGZhbWlseTsKQEAgLTEzNiw2ICYjNDM7MTM3LDcgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHsKIAl1bnNpZ25lZCBpbnQgbnVtX2ludGVybmFsX3BoeXM7CiAJdW5zaWduZWQgaW50IG51bV9ncGlvOwogCXVuc2lnbmVkIGludCBudW1fdGNhbV9lbnRyaWVzOwomIzQzOwl1bnNpZ25lZCBpbnQgbnVtX3R4X3F1ZXVlczsKIAl1bnNpZ25lZCBpbnQgbWF4X3ZpZDsKIAl1bnNpZ25lZCBpbnQgbWF4X3NpZDsKIAl1bnNpZ25lZCBpbnQgcG9ydF9iYXNlX2FkZHI7CkBAIC0xNzYsNiAmIzQzOzE3OCw5IEBAIHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyB7CiAJLyogU3VwcG9ydHMgUFRQICovCiAJYm9vbCBwdHBfc3VwcG9ydDsKIAomIzQzOwkvKiA4MDIuMVFhdiBjcmVkaXQgYmFzZWQgc2hhcGluZyAqLwomIzQzOwljb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvICpxYXY7CiYjNDM7CiAJLyogSW50ZXJuYWwgUEhZIHN0YXJ0IGluZGV4LiAwIG1lYW5zIHRoYXQgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXQKIAkgKiBwb3J0IDAsIDEgbWVhbnMgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXQgcG9ydCAxLCBldGMKIAkgKi8KQEAgLTMwNCw2ICYjNDM7MzA5LDkgQEAgc3RydWN0IG12ODhlNnh4eF9wb3J0IHsKIAogCS8qIE1hY0F1dGggQnlwYXNzIGNvbnRyb2wgZmxhZyAqLwogCWJvb2wgbWFiOwomIzQzOwomIzQzOwkvKiBRdWV1ZXMgd2l0aCBDQlMgY3VycmVudGx5IGVuYWJsZWQuICovCiYjNDM7CXU4IGNic19hY3RpdmVfcXVldWVzOwogfTsKIAogZW51bSBtdjg4ZTZ4eHhfcmVnaW9uX2lkIHsKQEAgLTYwNiw2ICYjNDM7NjE0LDggQEAgc3RydWN0IG12ODhlNnh4eF9vcHMgewogCQkJCSAgIHNpemVfdCBzaXplKTsKIAogCWludCAoKnBvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpOwomIzQzOwlpbnQgKCpwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiYjNDM7CQkJCQl1OCBtb2RlKTsKIAlpbnQgKCpwb3J0X3BhdXNlX2xpbWl0KShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCB1OCBpbiwKIAkJCQl1OCBvdXQpOwogCWludCAoKnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7CkBAIC03NjMsNiAmIzQzOzc3MywxMCBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgewogCWludCAoKnRhaV9yZWFkKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCB1MTYgKmRhdGEsCiAJCQlpbnQgbGVuKTsKIAlpbnQgKCp0YWlfd3JpdGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIHUxNiBkYXRhKTsKJiM0MzsKJiM0MzsJLyogQWNjZXNzIHBvcnQtc2NvcGVkIDgwMi4xUWF2IHJlZ2lzdGVycyAqLwomIzQzOwlpbnQgKCpwb3J0X3Fhdl93cml0ZSkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsCiYjNDM7CQkJICAgICAgdTE2IGRhdGEpOwogfTsKIAogc3RydWN0IG12ODhlNnh4eF9wdHBfb3BzIHsKQEAgLTc5OCw2ICYjNDM7ODEyLDEzIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfdGNhbV9vcHMgewogCWludCAoKmZsdXNoX3RjYW0pKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCk7CiB9OwogCiYjNDM7c3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyB7CiYjNDM7CXUxNiByYXRlX3VuaXQ7IC8qIGluIGticHMgKi8KJiM0MzsJdTE2IHJhdGVfbWFzazsgLyogUVByaSBSYXRlIHZhbGlkIGJpdHMgbWFzayAqLwomIzQzOwl1MTYgaGlsaW1pdF9tYXNrOyAvKiBRUHJpIEhpTGltaXQgYml0cyBtYXNrKi8KJiM0MzsJdTggcXVldWVfbWFzazsgLyogc3VwcG9ydGVkIHF1ZXVlcyBiaXRtYXNrICovCiYjNDM7fTsKJiM0MzsKIHN0YXRpYyBpbmxpbmUgYm9vbCBtdjg4ZTZ4eHhfaGFzX3N0dShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApCiB7CiAJcmV0dXJuIGNoaXAtJmd0O2luZm8tJmd0O21heF9zaWQgJmd0OyAwICZhbXA7JmFtcDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmgKaW5kZXggZmY1YWRmN2M5YmMzYS4uZGY1MmZmM2FkYzg4YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmgKQEAgLTE4Niw2ICYjNDM7MTg2LDkgQEAKICNkZWZpbmUgTVY4OEU2MzUyX0cyX0FWQl9DTURfQkxPQ0tfTUFTSwkJMHgwMGUwCiAjZGVmaW5lIE1WODhFNjM1Ml9HMl9BVkJfQ01EX0FERFJfTUFTSwkJMHgwMDFmCiAKJiM0MzsjZGVmaW5lIE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfUkFURShxdWV1ZSkJKCgocXVldWUpICZhbXA7IDB4NykgJmx0OyZsdDsgMSkKJiM0MzsjZGVmaW5lIE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfSElMSU1JVChxdWV1ZSkJKCgoKHF1ZXVlKSAmYW1wOyAweDcpICZsdDsmbHQ7IDEpICYjNDM7IDEpCiYjNDM7CiAvKiBPZmZzZXQgMHgxNzogQVZCIERhdGEgUmVnaXN0ZXIgKi8KICNkZWZpbmUgTVY4OEU2MzUyX0cyX0FWQl9EQVRBCQkweDE3CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuYwppbmRleCA2NTc3ODNlMDQzZmYxLi42YjU0ZTI3NWQyMWFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyX2F2Yi5jCkBAIC0xMTAsNiAmIzQzOzExMCwxNSBAQCBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9wdHBfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLAogCXJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpOwogfQogCiYjNDM7c3RhdGljIGludCBtdjg4ZTYzNTJfZzJfYXZiX3BvcnRfcWF2X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwKJiM0MzsJCQkJCSAgIGludCBwb3J0LCBpbnQgYWRkciwgdTE2IGRhdGEpCiYjNDM7ewomIzQzOwl1MTYgd3JpdGVvcCA9IE1WODhFNjM1Ml9HMl9BVkJfQ01EX09QX1dSSVRFIHwgKHBvcnQgJmx0OyZsdDsgOCkgfAomIzQzOwkJICAgICAgKE1WODhFNjM1Ml9HMl9BVkJfQ01EX0JMT0NLX1FBViAmbHQ7Jmx0OyA1KSB8IGFkZHI7CiYjNDM7CiYjNDM7CXJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpOwomIzQzO30KJiM0MzsKIHN0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLAogCQkJCSAgICAgdTE2ICpkYXRhLCBpbnQgbGVuKQogewpAQCAtMTQ5LDYgJiM0MzsxNTgsNyBAQCBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgbXY4OGU2MzUyX2F2Yl9vcHMgPSB7CiAJLnB0cF93cml0ZQkJPSBtdjg4ZTYzNTJfZzJfYXZiX3B0cF93cml0ZSwKIAkudGFpX3JlYWQJCT0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfcmVhZCwKIAkudGFpX3dyaXRlCQk9IG12ODhlNjM1Ml9nMl9hdmJfdGFpX3dyaXRlLAomIzQzOwkucG9ydF9xYXZfd3JpdGUJCT0gbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZSwKIH07CiAKIHN0YXRpYyBpbnQgbXY4OGU2MTY1X2cyX2F2Yl90YWlfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLApAQCAtMTc0LDYgJiM0MzsxODQsNyBAQCBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgbXY4OGU2MTY1X2F2Yl9vcHMgPSB7CiAJLnB0cF93cml0ZQkJPSBtdjg4ZTYzNTJfZzJfYXZiX3B0cF93cml0ZSwKIAkudGFpX3JlYWQJCT0gbXY4OGU2MTY1X2cyX2F2Yl90YWlfcmVhZCwKIAkudGFpX3dyaXRlCQk9IG12ODhlNjE2NV9nMl9hdmJfdGFpX3dyaXRlLAomIzQzOwkucG9ydF9xYXZfd3JpdGUJCT0gbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZSwKIH07CiAKIHN0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wb3J0X3B0cF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwKQEAgLTE5Nyw2ICYjNDM7MjA4LDE1IEBAIHN0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wb3J0X3B0cF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsCiAJcmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7CiB9CiAKJiM0MztzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLAomIzQzOwkJCQkJICAgaW50IHBvcnQsIGludCBhZGRyLCB1MTYgZGF0YSkKJiM0Mzt7CiYjNDM7CXUxNiB3cml0ZW9wID0gTVY4OEU2MzkwX0cyX0FWQl9DTURfT1BfV1JJVEUgfCAocG9ydCAmbHQ7Jmx0OyA4KSB8CiYjNDM7CQkgICAgICAoTVY4OEU2MzUyX0cyX0FWQl9DTURfQkxPQ0tfUUFWICZsdDsmbHQ7IDUpIHwgYWRkcjsKJiM0MzsKJiM0MzsJcmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3B0cF9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsCiAJCQkJICAgICB1MTYgKmRhdGEsIGludCBsZW4pCiB7CkBAIC0yMzYsNCAmIzQzOzI1Niw1IEBAIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyBtdjg4ZTYzOTBfYXZiX29wcyA9IHsKIAkucHRwX3dyaXRlCQk9IG12ODhlNjM5MF9nMl9hdmJfcHRwX3dyaXRlLAogCS50YWlfcmVhZAkJPSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV9yZWFkLAogCS50YWlfd3JpdGUJCT0gbXY4OGU2MzkwX2cyX2F2Yl90YWlfd3JpdGUsCiYjNDM7CS5wb3J0X3Fhdl93cml0ZQkJPSBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcWF2X3dyaXRlLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMKaW5kZXggZWExZmFiNzE5NjhhMC4uNzU4YjhkNDFmNDg1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMKQEAgLTEzMjMsNiAmIzQzOzEzMjMsNTEgQEAgaW50IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpCiAJCQkJICAgIDB4MDAwMSk7CiB9CiAKJiM0MztpbnQgbXY4OGU2MzUyX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LAomIzQzOwkJCQkgICAgICAgdTggbW9kZSkKJiM0Mzt7CiYjNDM7CXUxNiByZWc7CiYjNDM7CWludCBlcnI7CiYjNDM7CiYjNDM7CWlmIChtb2RlICZndDsgMykKJiM0MzsJCXJldHVybiAtRUlOVkFMOwomIzQzOwomIzQzOwllcnIgPSBtdjg4ZTZ4eHhfcG9ydF9yZWFkKGNoaXAsIHBvcnQsIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDIsCiYjNDM7CQkJCSAgJmFtcDtyZWcpOwomIzQzOwlpZiAoZXJyKQomIzQzOwkJcmV0dXJuIGVycjsKJiM0MzsKJiM0MzsJcmVnICZhbXA7PSB+TVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9NQVNLOwomIzQzOwlyZWcgfD0gbW9kZSAmbHQ7Jmx0OyBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX1NISUZUOwomIzQzOwomIzQzOwlyZXR1cm4gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwKJiM0MzsJCQkJICAgIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDIsIHJlZyk7CiYjNDM7fQomIzQzOwomIzQzO2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiYjNDM7CQkJCSAgICAgICB1OCBtb2RlKQomIzQzO3sKJiM0MzsJdTE2IHJlZzsKJiM0MzsJaW50IGVycjsKJiM0MzsKJiM0MzsJaWYgKG1vZGUgJmd0OyBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSykKJiM0MzsJCXJldHVybiAtRUlOVkFMOwomIzQzOwomIzQzOwlyZWcgPSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfVVBEQVRFIHwKJiM0MzsJICAgICAgKE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRSAmbHQ7Jmx0OwomIzQzOwkgICAgICAgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1BUUl9TSElGVCkgfAomIzQzOwkgICAgICAobW9kZSAmYW1wOyBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSyk7CiYjNDM7CiYjNDM7CWVyciA9IG12ODhlNnh4eF9wb3J0X3dyaXRlKGNoaXAsIHBvcnQsIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTCwKJiM0MzsJCQkJICAgcmVnKTsKJiM0MzsJaWYgKGVycikKJiM0MzsJCXJldHVybiBlcnI7CiYjNDM7CiYjNDM7CXJldHVybiBtdjg4ZTZ4eHhfcG9ydF93YWl0X2JpdChjaGlwLCBwb3J0LCBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVEwsCiYjNDM7CQkJCSAgICAgICBfX2JmX3NoZihNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfVVBEQVRFKQomIzQzOwkJCQkgICAgICAgLCAwKTsKJiM0Mzt9CiYjNDM7CiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi8KIAogaW50IG12ODhlNnh4eF9wb3J0X3NldF9hc3NvY192ZWN0b3Ioc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKQEAgLTE3MjcsMyAmIzQzOzE3NzIsMjEgQEAgaW50IG12ODhlNjM5M3hfcG9ydF9zZXRfcG9saWN5KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiAKIAlyZXR1cm4gbXY4OGU2MzkzeF9wb3J0X3BvbGljeV93cml0ZShjaGlwLCBwb3J0LCBwdHIsIHJlZyk7CiB9CiYjNDM7CiYjNDM7aW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkciwKJiM0MzsJCQkgICAgIHUxNiBkYXRhKQomIzQzO3sKJiM0MzsJaWYgKCFjaGlwLSZndDtpbmZvLSZndDtvcHMtJmd0O2F2Yl9vcHMtJmd0O3BvcnRfcWF2X3dyaXRlKQomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwomIzQzOwlyZXR1cm4gY2hpcC0mZ3Q7aW5mby0mZ3Q7b3BzLSZndDthdmJfb3BzLSZndDtwb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCBhZGRyLCBkYXRhKTsKJiM0Mzt9CiYjNDM7CiYjNDM7aW50IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKJiM0MzsJCQkJICAgICAgIHU4IG1vZGUpCiYjNDM7ewomIzQzOwlpZiAoIWNoaXAtJmd0O2luZm8tJmd0O29wcy0mZ3Q7cG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKQomIzQzOwkJcmV0dXJuIC1FT1BOT1RTVVBQOwomIzQzOwomIzQzOwlyZXR1cm4gY2hpcC0mZ3Q7aW5mby0mZ3Q7b3BzLSZndDtwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCwgbW9kZSk7CiYjNDM7fQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaAppbmRleCA1YjZjZGU5Zjc0MDZmLi5hMzgwZjM1NmViODNkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaApAQCAtMjQxLDYgJiM0MzsyNDEsMTggQEAKIAogLyogT2Zmc2V0IDB4MEE6IEVncmVzcyBSYXRlIENvbnRyb2wgMiAqLwogI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyCQkweDBhCiYjNDM7I2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX01BU0sJMHgzMDAwCiYjNDM7I2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX1NISUZUCTEyCiYjNDM7CiYjNDM7LyogT2Zmc2V0IDB4MUM6IFBvcnQgUXVldWUgQ29udHJvbCAqLwomIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMCQkJMHgxYwomIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURQkJCTB4ODAwMAomIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1BUUl9NQVNLCQkweDdmMDAKJiM0MzsjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfU0hJRlQJCTgKJiM0MzsjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9EQVRBX01BU0sJCTB4MDBmZgomIzQzOyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFCQkweDAwCiYjNDM7I2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSwkJMHgwNwomIzQzOwogCiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi8KICNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfQVNTT0NfVkVDVE9SCQkJMHgwYgpAQCAtNTYxLDYgJiM0Mzs1NzMsMTAgQEAgaW50IG12ODhlNjE2NV9wb3J0X3NldF9qdW1ib19zaXplKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiAJCQkJICBzaXplX3Qgc2l6ZSk7CiBpbnQgbXY4OGU2MDk1X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7CiBpbnQgbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7CiYjNDM7aW50IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKJiM0MzsJCQkJICAgICAgIHU4IG1vZGUpOwomIzQzO2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiYjNDM7CQkJCSAgICAgICB1OCBtb2RlKTsKIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfYXNzb2NfdmVjdG9yKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiAJCQkJICAgIHUxNiBwYXYpOwogaW50IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIHU4IGluLApAQCAtNjA1LDUgJiM0Mzs2MjEsOSBAQCBpbnQgbXY4OGU2eHh4X3BvcnRfaGlkZGVuX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYmxvY2ssIGludCBwb3J0LAogCQkJICAgICAgIGludCByZWcsIHUxNiAqdmFsKTsKIAogaW50IG12ODhlNnh4eF9wb3J0X2VuYWJsZV90Y2FtKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpOwomIzQzO2ludCBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsCiYjNDM7CQkJICAgICB1MTYgZGF0YSk7CiYjNDM7aW50IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwKJiM0MzsJCQkJICAgICAgIHU4IG1vZGUpOwogCiAjZW5kaWYgLyogX01WODhFNlhYWF9QT1JUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oIGIvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmgKaW5kZXggMThhNDE5Y2Q5ZDk0OS4uZDM1Yzg3MDA0YzI3OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmgKJiM0MzsmIzQzOyYjNDM7IGIvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmgKQEAgLTE1MCw2ICYjNDM7MTUwLDcgQEAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQgewogCXMzMiBsb2NyZWRpdDsKIAlzMzIgaWRsZXNsb3BlOwogCXMzMiBzZW5kc2xvcGU7CiYjNDM7CXN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjazsKIH07CiAKIHN0cnVjdCB0Y19ldGZfcW9wdF9vZmZsb2FkIHsKZGlmZiAtLWdpdCBhL25ldC9kc2EvdGFnX2RzYS5jIGIvbmV0L2RzYS90YWdfZHNhLmMKaW5kZXggZDVmZmVlMzVmYmI1My4uMmJiNzFjZDM0M2U3OSAxMDA2NDQKLS0tIGEvbmV0L2RzYS90YWdfZHNhLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L2RzYS90YWdfZHNhLmMKQEAgLTE3OSw4ICYjNDM7MTc5LDE3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZHNhX3htaXRfbGwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJCWRzYV9oZWFkZXJbMl0gJmFtcDs9IH4weDEwOwogCQl9CiAJfSBlbHNlIHsKJiM0MzsJCXUxNiBxdWV1ZSA9IHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpICZhbXA7IDB4NzsKIAkJdTE2IHZpZDsKIAomIzQzOwkJLyogVGhlIFBSSSBmaWVsZCBpcyAzIGJpdHMuIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiB0aGUKJiM0MzsJCSAqIDIgaGlnaGVzdCBiaXRzIHNwZWNpZnkgdGhlIGVncmVzcyBxdWV1ZSBpbiBGcm9tX0NQVSBEU0EKJiM0MzsJCSAqIHRhZ2dlZCBmcmFtZXMuIE9uIGRldmljZXMgd2l0aCA4IHF1ZXVlcyBpdCYjMzk7cyBwb3NzaWJsZSB0bwomIzQzOwkJICogc2VuZCB0byB0aGUgOCBxdWV1ZXMsIHdoaWNoIG1lYW5zIHRoZSAzIGJpdHMgYXJlIHVzZWQuCiYjNDM7CQkgKi8KJiM0MzsJCWlmIChkcC0mZ3Q7ZHMtJmd0O251bV90eF9xdWV1ZXMgPT0gNCkKJiM0MzsJCQlxdWV1ZSAmbHQ7Jmx0Oz0gMTsKJiM0MzsKIAkJdmlkID0gYnJfZGV2ID8gTVY4OEU2WFhYX1ZJRF9CUklER0VEIDogTVY4OEU2WFhYX1ZJRF9TVEFOREFMT05FOwogCiAJCXNrYl9wdXNoKHNrYiwgRFNBX0hMRU4gJiM0MzsgZXh0cmEpOwpAQCAtMTkxLDcgJiM0MzsyMDAsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmRzYV94bWl0X2xsKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAKIAkJZHNhX2hlYWRlclswXSA9IChjbWQgJmx0OyZsdDsgNikgfCB0YWdfZGV2OwogCQlkc2FfaGVhZGVyWzFdID0gdGFnX3BvcnQgJmx0OyZsdDsgMzsKLQkJZHNhX2hlYWRlclsyXSA9IHZpZCAmZ3Q7Jmd0OyA4OwomIzQzOwkJZHNhX2hlYWRlclsyXSA9IChxdWV1ZSAmbHQ7Jmx0OyA1KSB8IHZpZCAmZ3Q7Jmd0OyA4OwogCQlkc2FfaGVhZGVyWzNdID0gdmlkICZhbXA7IDB4ZmY7CiAJfQogCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2Nicy5jIGIvbmV0L3NjaGVkL3NjaF9jYnMuYwppbmRleCAxYzkzNDY5YzU2ZTNkLi44N2MyZWRhMTA4YzhjIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvc2NoX2Nicy5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY2hlZC9zY2hfY2JzLmMKQEAgLTMwNywxMCAmIzQzOzMwNywxMiBAQCBzdGF0aWMgaW50IGNic19lbmFibGVfb2ZmbG9hZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgY2JzX3NjaGVkX2RhdGEgKnEsCiAJY2JzLmxvY3JlZGl0ID0gb3B0LSZndDtsb2NyZWRpdDsKIAljYnMuaWRsZXNsb3BlID0gb3B0LSZndDtpZGxlc2xvcGU7CiAJY2JzLnNlbmRzbG9wZSA9IG9wdC0mZ3Q7c2VuZHNsb3BlOwomIzQzOwljYnMuZXh0YWNrID0gZXh0YWNrOwogCiAJZXJyID0gb3BzLSZndDtuZG9fc2V0dXBfdGMoZGV2LCBUQ19TRVRVUF9RRElTQ19DQlMsICZhbXA7Y2JzKTsKIAlpZiAoZXJyICZsdDsgMCkgewotCQlOTF9TRVRfRVJSX01TRyhleHRhY2ssICYjMzQ7U3BlY2lmaWVkIGRldmljZSBmYWlsZWQgdG8gc2V0dXAgY2JzIGhhcmR3YXJlIG9mZmxvYWQmIzM0Oyk7CiYjNDM7CQlOTF9TRVRfRVJSX01TR19XRUFLKGV4dGFjaywKJiM0MzsJCQkJICAgICYjMzQ7U3BlY2lmaWVkIGRldmljZSBmYWlsZWQgdG8gc2V0dXAgY2JzIGhhcmR3YXJlIG9mZmxvYWQmIzM0Oyk7CiAJCXJldHVybiBlcnI7CiAJfQogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE2NjQzCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNTEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIExpbnV4IEtlcm5lbCBQYXRjaCBmb3IgQ0JTIE9mZmxvYWRpbmcqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEga2VybmVsIHBhdGNoIGhlcmUuIEl0JiMzOTtzIG1ha2luZyBmdW5jdGlvbmFsIGNoYW5nZXMsIHNwZWNpZmljYWxseSBhZGRpbmcgb2ZmbG9hZGluZyBzdXBwb3J0IGZvciA4MDIuMVFhdiBDcmVkaXQgQmFzZWQgU2hhcGVyIChDQlMpIHRvIHRoZSBNYXJ2ZWxsIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlci4gVGhlIGZpbGVzIG1vZGlmaWVkIGdpdmUgbWUgYSBjbGVhciBwaWN0dXJlOiBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9gIC0gYSBidW5jaCBvZiB0aGUgY29yZSBkcml2ZXIgZmlsZXMgdGhlcmUgLSB0aGVuLCBpbXBvcnRhbnRseSwgYGluY2x1ZGUvbmV0L3BrdF9zY2hlZC5oYCwgYW5kIGBuZXQvZHNhL3RhZ19kc2EuY2AgYW5kIGBuZXQvc2NoZWQvc2NoX2Nicy5jYC4gVGhpcyBpcyB3aGVyZSBpdCBnZXRzIGludGVyZXN0aW5nLCBhcyBpdCBpcyBtb2RpZnlpbmcgdGhlIERTQSB0YWcgYW5kIENCUyBjb2RlIGZvciBGcm9tX0NQVSBmcmFtZXMuCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgY2FuIEkgZXZlbiAqdGVzdCogdGhpcyBlZmZlY3RpdmVseT8gVGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciBpcyBmb3IgTWFydmVsbCA4OEU2eHh4IEV0aGVybmV0IHN3aXRjaGVzLCBzbyB3ZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIGhhcmR3YXJlIGRlcGVuZGVuY3kg4oCTIHRoZXNlIERTQSBkcml2ZXJzIGFyZSB1c3VhbGx5IGluIGVtYmVkZGVkIHN5c3RlbXMgd2l0aCBwaHlzaWNhbCBzd2l0Y2ggY2hpcHMuIEkgbmVlZCB0byBiZSBhYmxlIHRvIHJlcGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSB0aGF0IHRoZSBwYXRjaCBpbnRyb2R1Y2VzLCB3aGljaCBpcyBub3cgQ0JTIG9mZmxvYWRpbmcuCgpDYW4gSSBnZXQgdGhpcyBydW5uaW5nIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGUgTWFydmVsbCA4OEU2eHh4IGRpcmVjdGx5LiBIb3dldmVyLCB0aGUgcGF0Y2ggYWxzbyB0b3VjaGVzIHRoZSBjb3JlIG5ldHdvcmsgc2NoZWR1bGluZyAoYG5ldC9zY2hlZC9zY2hfY2JzLmNgKSBhbmQgdGhlIERTQSB0YWdnaW5nIChgbmV0L2RzYS90YWdfZHNhLmNgKSBsYXllcnMuIFRoZSBDQlMgcWRpc2MgaXRzZWxmIGlzIGRlZmluaXRlbHkgcmVhY2hhYmxlLiBOb3csIGB0YWdfZHNhLmNgIGlzIHRoZSBEU0EgdGFnZ2luZyBwcm90b2NvbC4gSSBtYXkgYmUgYWJsZSB0byBpbnN0YW50aWF0ZSBhIGR1bW15IERTQSBzd2l0Y2gsIG9yIGV2ZW4gYSBzb2Z0d2FyZSBEU0Egc3dpdGNoIHRvIG1ha2UgdGhlIGNvZGUgcmVhY2hhYmxlLgoKQWgsIHdhaXQgYSBtaW51dGUsIHdhc24mIzM5O3QgdGhlcmUgc29tZXRoaW5nIGFib3V0IGBkc2FfbG9vcGA/IFRoYXQmIzM5O3MgcmlnaHQsIGBkc2FfbG9vcGAgaXMgYSBtb2NrIERTQSBkcml2ZXIsIHVzZWQgZm9yIHRlc3RpbmchIExldCBtZSBkb3VibGUgY2hlY2sgaWYgYGRzYV9sb29wYCB1c2VzIGB0YWdfZHNhLmNgLiBJZiBpdCBkb2VzLCBJIGNhbiBwcm9iYWJseSBnZXQgYSBnb29kIHRlc3QgZW52aXJvbm1lbnQgc2V0IHVwIHdpdGggdGhhdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3RhZ19kc2EmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTc2NTQKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4gTXkgZmlyc3QgdGhvdWdodCBpczogKipEZWNvZGluZyB0aGUgYGRzYV9sb29wYCBUYWcgUHJvdG9jb2wqKgoKSSBuZWVkIHRvIHF1aWNrbHkgZmlndXJlIG91dCBob3cgdGhlIGBkc2FfbG9vcGAgdGFnIHByb3RvY29sIHdvcmtzLiBVbmRlcnN0YW5kaW5nIGl0cyBpbm5lciB3b3JraW5ncyBpcyBjcnVjaWFsIGZvciBbKippbnNlcnQgdXNlciYjMzk7cyBzcGVjaWZpYyBmaWVsZCBoZXJlKiogLSBlLmcuLCBvcHRpbWl6aW5nIHBlcmZvcm1hbmNlLCBkZWJ1Z2dpbmcgcmVsYXRlZCBzeXN0ZW1zLCBlbnN1cmluZyBjb21wYXRpYmlsaXR5XS4gU28sIEkmIzM5O2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGl0cyBzcGVjaWZpYyB0YWcgcHJvdG9jb2wgaW1wbGVtZW50YXRpb24uIFdoZXJlIGRvIEkgZmluZCB0aGF0IGluZm9ybWF0aW9uPyBMZXQgbWUgbG9vayBhdCB0aGUgZG9jdW1lbnRhdGlvbiwgdGhlIGNvZGUgaXRzZWxmLCBvciByZWxhdGVkIHNwZWNpZmljYXRpb25zIHRvIGRldGVybWluZSBpdHMgZGVzaWduIGFuZCB1c2FnZS4gVGhpcyBpcyBzdGVwIG9uZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtEU0FfVEFHX1BST1RPJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9MTI1PXN0YXRpYyBlbnVtIGRzYV90YWdfcHJvdG9jb2wgZHNhX2xvb3BfZ2V0X3Byb3RvY29sKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcbi0tXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzAtXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMzE6XHRyZXR1cm4gRFNBX1RBR19QUk9UT19OT05FO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtMTMyLX1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxNzk1NQoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDMxMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERTQSBMb29wIGFuZCBGdXp6aW5nIFBvdGVudGlhbCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgZHNhX2xvb3BgIGFuZCB0aGUgdXNlIG9mIGBEU0FfVEFHX1BST1RPX05PTkVgLiBUaGF0JiMzOTtzIHRoZSBzdGFydGluZyBwb2ludC4gSSByZWNhbGwgdGhlcmUmIzM5O3MgYSByZWxhdGVkIGBkc2FfbG9vcF9iZGluZm9gIHN0cnVjdCwgYnV0IHRoYXQmIzM5O3Mgbm90IHJlbGV2YW50IGhlcmU7IGBkc2FfbG9vcGAgaXRzZWxmIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEkgdGhlbiBsb29rZWQgb3ZlciBhdCBgbmV0L3NjaGVkL3NjaF9jYnMuY2AsIGJ1dCB0aGUgY2hhbmdlIHRoZXJlIHNlZW1zIGxpbWl0ZWQsIGp1c3QgcHJvcGFnYXRpbmcgdGhlIGBleHRhY2tgIGRvd24gdG8gdGhlIGRyaXZlci4KClRoZSBjb3JlIGxvZ2ljLCBhcyBJIHN1c3BlY3RlZCwgcmVzaWRlcyBpbiBgZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9gLCBhIGhhcmR3YXJlLXNwZWNpZmljIGRyaXZlci4gVGhlIHF1ZXN0aW9uIG5vdyBpczogY2FuIEkgdHJpZ2dlciB0aGlzIGNvZGUgcGF0aCB3aXRoaW4gUUVNVT8gQW5kIHRoZSBhbnN3ZXIsIGFzIEkga25vdyBpdCwgaXMgYSBjbGVhciBuby4gSXQgcmVsaWVzIG9uIHBoeXNpY2FsIGhhcmR3YXJlLCBzcGVjaWZpY2FsbHkgYW4gTURJTyBidXMgY29ubmVjdGVkIHRvIGEgc3BlY2lmaWMgc3dpdGNoIGNoaXAuIEl0JiMzOTtzIHRoYXQgZGlyZWN0IGhhcmR3YXJlIGludGVyYWN0aW9uIHRoYXQgbWFrZXMgaXQgcHJvYmxlbWF0aWMuCgpTbywgdGhlIG5leHQgcXVlc3Rpb24gaXMgY2FuIEkgZW11bGF0ZSB0aGUgTURJTyBidXMgYW5kIHN3aXRjaCBjaGlwPyAgTmF0aXZlbHksIHdpdGhvdXQgb3V0LW9mLXRyZWUgcGF0Y2hlcywgdGhlIGFuc3dlciBpcyBzdGlsbCBubyB3aXRoaW4gc3RhbmRhcmQgUUVNVS4gSG93ZXZlciwgY291bGQgc3l6a2FsbGVyIGJlIHVzZWQgdG8gZnV6eiBpdCBieSBtb2NraW5nIE1ESU8gZGV2aWNlcyBvciBieSBpbnN0YW50aWF0aW5nIGl0IHRocm91Z2ggYSBzb2Z0d2FyZSBpbnRlcmZhY2U/IEkgdGhvdWdodCBzeXprYWxsZXIgaGFkIHNvbWUgc3VwcG9ydCBmb3IgTURJTy9QSFkgZnV6emluZywgYnV0IG5vLCBub3QgcmVhbGx5LiBNRElPIGRldmljZXMgYXJlIHR5cGljYWxseSBwcm9iZWQgdmlhIHRoZSBkZXZpY2UgdHJlZSBvciBwbGF0Zm9ybSBkYXRhLCBhIG1ldGhvZCBvZiBoYXJkd2FyZSBhYnN0cmFjdGlvbiwgd2hpY2ggYWdhaW4gbWFrZXMgZW11bGF0aW9uIGRpZmZpY3VsdC4KCkkmIzM5O20gbm93IHJlY29uc2lkZXJpbmcgaWYgZnV6emluZyB0aGUgcGF0Y2ggaXMgZXZlbiB3b3J0aCB0aGUgZWZmb3J0LiBUaGUgY2hhbmdlcyBpbiBgbmV0L2RzYS90YWdfZHNhLmNgIGFyZSB3aXRoaW4gYGRzYV94bWl0X2xsYC4gIFRoZSBxdWVzdGlvbiBpczogaXMgYHRhZ19kc2EuY2AgdXNlZCBieSAqYW55KiBvdGhlciBkcml2ZXIgdGhhdCYjMzk7cyBlbXVsYXRhYmxlPyBUaGF0IGlzIHRoZSByZWFsIHRlc3Qgb2Ygd2hldGhlciB0aGlzIGVmZm9ydCBpcyB3b3J0aCBpdCBvciBub3QuIEkmIzM5O2xsIG5lZWQgdG8gcmVzZWFyY2ggdGhhdCBmdXJ0aGVyIHRvIGRldGVybWluZSB0aGUgcG90ZW50aWFsIHJlYWNoLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0RTQV9UQUdfUFJPVE9fRFNBJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zMjYzPXN0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwX3BvcnRfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNzEtXHQvKiBTZXR1cCBDUFUgcG9ydCBtb2RlIGRlcGVuZGluZyBvbiBpdHMgc3VwcG9ydGVkIHRhZyBmb3JtYXQgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMyNzI6XHRpZiAoY2hpcC1cdTAwM2V0YWdfcHJvdG9jb2wgPT0gRFNBX1RBR19QUk9UT19EU0EpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjczLVx0XHRyZXR1cm4gbXY4OGU2eHh4X3NldF9wb3J0X21vZGVfZHNhKGNoaXAsIHBvcnQpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTY3MjQ9c3RhdGljIGludCBtdjg4ZTZ4eHhfY2hhbmdlX3RhZ19wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc0My1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzQ0Olx0Y2FzZSBEU0FfVEFHX1BST1RPX0RTQTpcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3NDUtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc0ODk9c3RhdGljIGludCBtdjg4ZTZ4eHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTYtXHRlbHNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTU3Olx0XHRjaGlwLVx1MDAzZXRhZ19wcm90b2NvbCA9IERTQV9UQUdfUFJPVE9fRFNBO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1OC1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTIwMQoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDExOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERTQSBUYWcgUHJvdG9jb2wgZm9yIFZpcnR1YWxpemF0aW9uKioKCk9rYXksIHNvIGl0IGxvb2tzIGxpa2UgdGhpcyBgRFNBX1RBR19QUk9UT19EU0FgIGlzIGV4Y2x1c2l2ZWx5IHRpZWQgdG8gdGhlIGBtdjg4ZTZ4eHhgIGRyaXZlciwgaW50ZXJlc3RpbmcuIE5vdyB0aGF0IEkgdGhpbmsgYWJvdXQgaXQsIGB0YWdfZHNhLmNgIGlzLCB3ZWxsLCBpdCYjMzk7cyB0aGUgRFNBIHRhZyBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbiBpdHNlbGYuIEdpdmVuIHRoYXQgYG12ODhlNnh4eGAgaXMgYSBoYXJkd2FyZSBkcml2ZXIsIGFuZCB0aGVyZWZvcmUgYSBwYWluIHRvIGVtdWxhdGUsIGFuZCBzaW5jZSB0aGUgbW9kaWZpY2F0aW9ucyBpbiBgdGFnX2RzYS5jYCBzZWVtIHRhaWxvci1tYWRlIGZvciBpdCAob3IgYXQgbGVhc3Qgc29sZWx5IHVzZWQgYnkgaXQgY3VycmVudGx5KSwgdGhlcmXigJlzIHJlYWxseSBubyBwcmFjdGljYWwgd2F5IHRvIHRvdWNoIHRoZSBjb3JlIG9mIHRoZXNlIGNoYW5nZXMgaW4gYW55IHZpcnR1YWxpemVkIHNldHVwLiBUaGUgd2hvbGUgdGhpbmcgaXMgaGFyZHdhcmUtc3BlY2lmaWMuIEkgZ3Vlc3MgaXTigJlzIHN0aWxsIHdvcnRoIGEgcXVpY2sgZG91YmxlLWNoZWNrLCB0aG91Z2gsIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoYXQgYHRhZ19kc2EuY2AgKmlzbiYjMzk7dCogc25lYWtpbmcgaW4gc29tZXdoZXJlIGVsc2UuIEFsd2F5cyBnb29kIHRvIHJ1bGUgb3V0IHRoZSB1bmV4cGVjdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8xMSAxMjowMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtEU0FfVEFHX1BST1RPX0RTQSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz0zMjYzPXN0YXRpYyBpbnQgbXY4OGU2eHh4X3NldHVwX3BvcnRfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNzEtXHQvKiBTZXR1cCBDUFUgcG9ydCBtb2RlIGRlcGVuZGluZyBvbiBpdHMgc3VwcG9ydGVkIHRhZyBmb3JtYXQgKi9cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMyNzI6XHRpZiAoY2hpcC1cdTAwM2V0YWdfcHJvdG9jb2wgPT0gRFNBX1RBR19QUk9UT19EU0EpXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjczLVx0XHRyZXR1cm4gbXY4OGU2eHh4X3NldF9wb3J0X21vZGVfZHNhKGNoaXAsIHBvcnQpO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTY3MjQ9c3RhdGljIGludCBtdjg4ZTZ4eHhfY2hhbmdlX3RhZ19wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc0My1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzQ0Olx0Y2FzZSBEU0FfVEFHX1BST1RPX0RTQTpcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTY3NDUtXHRcdGJyZWFrO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc0ODk9c3RhdGljIGludCBtdjg4ZTZ4eHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTYtXHRlbHNlXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTU3Olx0XHRjaGlwLVx1MDAzZXRhZ19wcm90b2NvbCA9IERTQV9UQUdfUFJPVE9fRFNBO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1OC1cbi0tXG5pbmNsdWRlL25ldC9kc2EuaD0yNj1zdHJ1Y3QgdGNfYWN0aW9uO1xuLS1cbmluY2x1ZGUvbmV0L2RzYS5oLTMwLSNkZWZpbmUgRFNBX1RBR19QUk9UT19CUkNNX1BSRVBFTkRfVkFMVUVcdDJcbmluY2x1ZGUvbmV0L2RzYS5oOjMxOiNkZWZpbmUgRFNBX1RBR19QUk9UT19EU0FfVkFMVUVcdFx0XHQzXG5pbmNsdWRlL25ldC9kc2EuaC0zMi0jZGVmaW5lIERTQV9UQUdfUFJPVE9fRURTQV9WQUxVRVx0XHQ0XG4tLVxuaW5jbHVkZS9uZXQvZHNhLmg9NjQ9ZW51bSBkc2FfdGFnX3Byb3RvY29sIHtcbi0tXG5pbmNsdWRlL25ldC9kc2EuaC02OS1cdERTQV9UQUdfUFJPVE9fQlJDTV9QUkVQRU5EXHQ9IERTQV9UQUdfUFJPVE9fQlJDTV9QUkVQRU5EX1ZBTFVFLFxuaW5jbHVkZS9uZXQvZHNhLmg6NzA6XHREU0FfVEFHX1BST1RPX0RTQVx0XHQ9IERTQV9UQUdfUFJPVE9fRFNBX1ZBTFVFLFxuaW5jbHVkZS9uZXQvZHNhLmgtNzEtXHREU0FfVEFHX1BST1RPX0VEU0FcdFx0PSBEU0FfVEFHX1BST1RPX0VEU0FfVkFMVUUsXG4tLVxubmV0L2RzYS90YWdfZHNhLmM9MzYwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX2RldmljZV9vcHMgZHNhX25ldGRldl9vcHMgPSB7XG5uZXQvZHNhL3RhZ19kc2EuYy0zNjEtXHQubmFtZVx0ICA9IERTQV9OQU1FLFxubmV0L2RzYS90YWdfZHNhLmM6MzYyOlx0LnByb3RvXHQgID0gRFNBX1RBR19QUk9UT19EU0EsXG5uZXQvZHNhL3RhZ19kc2EuYy0zNjMtXHQueG1pdFx0ICA9IGRzYV94bWl0LFxuLS1cbm5ldC9kc2EvdGFnX2RzYS5jPTM2OD1EU0FfVEFHX0RSSVZFUihkc2FfbmV0ZGV2X29wcyk7XG5uZXQvZHNhL3RhZ19kc2EuYzozNjk6TU9EVUxFX0FMSUFTX0RTQV9UQUdfRFJJVkVSKERTQV9UQUdfUFJPVE9fRFNBLCBEU0FfTkFNRSk7XG5uZXQvZHNhL3RhZ19kc2EuYy0zNzAtI2VuZGlmXHQvKiBDT05GSUdfTkVUX0RTQV9UQUdfRFNBICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNDc4CgkJCQkJCQlvdXRwdXQ6IDE1MwoJCQkJCQkJdGhvdWdodHM6IDM4NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCYjMzk7cyBGdXp6aW5nIFdvcnRoaW5lc3MqKgoKT2theSwgc28gSSYjMzk7dmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBEU0FfVEFHX1BST1RPX0RTQWAgaXMgb25seSB1c2VkIHdpdGhpbiB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCBhbmQgdGhhdCYjMzk7cyBhIGtleSBvYnNlcnZhdGlvbi4gVGhlbiBJIHNlZSB0aGUgY2hhbmdlIGluIGBuZXQvc2NoZWQvc2NoX2Nicy5jYC4gSG1tLCBzZWVtcyBxdWl0ZSBzbWFsbCwganVzdCBwYXNzaW5nIGBleHRhY2tgIGFuZCBzd2l0Y2hpbmcgdG8gYE5MX1NFVF9FUlJfTVNHX1dFQUtgLiBUaGVyZSBpc24mIzM5O3QgYW55IG5ldyBsb2dpYyBoZXJlIHRoYXQgc2NyZWFtcyBvdXQgZm9yIGZ1enppbmcgYXR0ZW50aW9uLgoKTm93LCBsZXQmIzM5O3Mgem9vbSBvdXQuIFRoZSBidWxrIG9mIHRoZSBwYXRjaCBsb29rcyB0byBiZSBjb250YWluZWQgd2l0aGluIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2AgYW5kIGBuZXQvZHNhL3RhZ19kc2EuY2AuIFRoZXNlIGFyZSwgYXMgZmFyIGFzIEkgY2FuIHRlbGwsIGRlYWxpbmcgd2l0aCBoYXJkd2FyZSwgc3BlY2lmaWNhbGx5IE1hcnZlbGwgc3dpdGNoIGhhcmR3YXJlLiBUaGF0JiMzOTtzIGEgaHVnZSBjbHVlIHJpZ2h0IHRoZXJlLiBHaXZlbiB0aGF0IEkmIzM5O20gd29ya2luZyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IC0gc29tZXRoaW5nIGxpa2UgUUVNVSAtIHRoaXMgaGFyZHdhcmUgaXMgaW5hY2Nlc3NpYmxlLiBUaGUgcGF0Y2ggY2FuJiMzOTt0IGJlIHJlYWNoZWQuCgpTbywgdGFraW5nIGFsbCB0aGlzIGludG8gYWNjb3VudCwgSSYjMzk7bSBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXRjaCBpc24mIzM5O3Qgc29tZXRoaW5nIEkgbmVlZCB0byBpbnZlc3QgdGltZSBpbiBmdXp6aW5nLiBJdCYjMzk7cyBzaW1wbHkgbm90IHJlbGV2YW50IHdpdGhpbiB0aGUgY29uc3RyYWludHMgb2YgbXkgY3VycmVudCBzZXR1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMTEgMTI6MDE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBwcmltYXJpbHkgYWRkcyA4MDIuMVFhdiBDQlMgb2ZmbG9hZGluZyBzdXBwb3J0IHRvIHRoZSBNYXJ2ZWxsIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBkcml2ZXIgY2Fubm90IGJlIGV4ZXJjaXNlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGUgY2hhbmdlcyBpbiBuZXQvZHNhL3RhZ19kc2EuYyBhcmUgc3BlY2lmaWMgdG8gdGhlIERTQSB0YWcgcHJvdG9jb2wgdXNlZCBleGNsdXNpdmVseSBieSB0aGlzIGRyaXZlci4gVGhlIG1vZGlmaWNhdGlvbiBpbiBuZXQvc2NoZWQvc2NoX2Nicy5jIGlzIGEgdHJpdmlhbCBjaGFuZ2UgdG8gcGFzcyBleHRhY2sgZG93biB0byB0aGUgZHJpdmVyIGFuZCB1c2UgTkxfU0VUX0VSUl9NU0dfV0VBSywgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGxvZ2ljIHJlcXVpcmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggcHJpbWFyaWx5IGFkZHMgODAyLjFRYXYgQ0JTIG9mZmxvYWRpbmcgc3VwcG9ydCB0byB0aGUgTWFydmVsbCBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgZHJpdmVyIGNhbm5vdCBiZSBleGVyY2lzZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlIGNoYW5nZXMgaW4gbmV0L2RzYS90YWdfZHNhLmMgYXJlIHNwZWNpZmljIHRvIHRoZSBEU0EgdGFnIHByb3RvY29sIHVzZWQgZXhjbHVzaXZlbHkgYnkgdGhpcyBkcml2ZXIuIFRoZSBtb2RpZmljYXRpb24gaW4gbmV0L3NjaGVkL3NjaF9jYnMuYyBpcyBhIHRyaXZpYWwgY2hhbmdlIHRvIHBhc3MgZXh0YWNrIGRvd24gdG8gdGhlIGRyaXZlciBhbmQgdXNlIE5MX1NFVF9FUlJfTVNHX1dFQUssIHdoaWNoIGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyByZXF1aXJpbmcgZnV6emluZy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzExIDEyOjAxPC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5JZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDozNy4wMzQ4ODI5MDVaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMzk1ODcyODE3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHByaW1hcmlseSBhZGRzIDgwMi4xUWF2IENCUyBvZmZsb2FkaW5nIHN1cHBvcnQgdG8gdGhlIE1hcnZlbGwgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGRyaXZlciBjYW5ub3QgYmUgZXhlcmNpc2VkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoZSBjaGFuZ2VzIGluIG5ldC9kc2EvdGFnX2RzYS5jIGFyZSBzcGVjaWZpYyB0byB0aGUgRFNBIHRhZyBwcm90b2NvbCB1c2VkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgZHJpdmVyLiBUaGUgbW9kaWZpY2F0aW9uIGluIG5ldC9zY2hlZC9zY2hfY2JzLmMgaXMgYSB0cml2aWFsIGNoYW5nZSB0byBwYXNzIGV4dGFjayBkb3duIHRvIHRoZSBkcml2ZXIgYW5kIHVzZSBOTF9TRVRfRVJSX01TR19XRUFLLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgcmVxdWlyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDozNy4wMzQ4ODk4NzVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwNDY0MjY3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDUyMmI0ZjQ2OWI4ZmY1M2QxNDE2ZmE0ZGE5NzllM2Y0MTVmODUwNzlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MzYgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xcbmluZGV4IDgwYjg3N2M3NDUxM2QuLmE1NjdlZTliNmNlMGQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuY1xcbkBAIC0zMiw2ICszMiw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9ncGlvL2NvbnN1bWVyLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHlsaW5rLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NuZXQvZHNhLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NuZXQvcGt0X3NjaGVkLmhcXHUwMDNlXFxuIFxcbiAjaW5jbHVkZSBcXFwiY2hpcC5oXFxcIlxcbiAjaW5jbHVkZSBcXFwiZGV2bGluay5oXFxcIlxcbkBAIC0zOTkwLDYgKzM5OTEsNyBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXFxuIFxcbiBcXHRjaGlwLVxcdTAwM2VkcyA9IGRzO1xcbiBcXHRkcy1cXHUwMDNldXNlcl9taWlfYnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XFxuK1xcdGRzLVxcdTAwM2VudW1fdHhfcXVldWVzID0gY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlbnVtX3R4X3F1ZXVlcztcXG4gXFxuIFxcdC8qIFNpbmNlIHZpcnR1YWwgYnJpZGdlcyBhcmUgbWFwcGVkIGluIHRoZSBQVlQsIHRoZSBudW1iZXIgd2Ugc3VwcG9ydFxcbiBcXHQgKiBkZXBlbmRzIG9uIHRoZSBwaHlzaWNhbCBzd2l0Y2ggdG9wb2xvZ3kuIFdlIG5lZWQgdG8gbGV0IERTQSBmaWd1cmVcXG5AQCAtNTAyMyw2ICs1MDI1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjI0MF9vcHMgPSB7XFxuIFxcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsXFxuIFxcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXFxuIFxcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXFxuK1xcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxcbiBcXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxcbiBcXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcXG4gXFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcXG5AQCAtNTMwNiw2ICs1MzA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM0MV9vcHMgPSB7XFxuIFxcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsXFxuIFxcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXFxuIFxcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXFxuK1xcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxcbiBcXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxcbiBcXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcXG4gXFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcXG5AQCAtNTQ2NCw2ICs1NDY4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM1Ml9vcHMgPSB7XFxuIFxcdC5wb3J0X3NldF9ldGhlcl90eXBlID0gbXY4OGU2MzUxX3BvcnRfc2V0X2V0aGVyX3R5cGUsXFxuIFxcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXFxuIFxcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXFxuK1xcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxcbiBcXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxcbiBcXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcXG4gXFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcXG5AQCAtNTUzMyw2ICs1NTM4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIG12ODhlNjM5MF9vcHMgPSB7XFxuIFxcdC5wb3J0X2dldF9jbW9kZSA9IG12ODhlNjM1Ml9wb3J0X2dldF9jbW9kZSxcXG4gXFx0LnBvcnRfc2V0X2Ntb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X2Ntb2RlLFxcbiBcXHQucG9ydF9zZXR1cF9tZXNzYWdlX3BvcnQgPSBtdjg4ZTZ4eHhfc2V0dXBfbWVzc2FnZV9wb3J0LFxcbitcXHQucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSxcXG4gXFx0LnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LFxcbiBcXHQuc3RhdHNfc2V0X2hpc3RvZ3JhbSA9IG12ODhlNjM5MF9nMV9zdGF0c19zZXRfaGlzdG9ncmFtLFxcbiBcXHQuc3RhdHNfZ2V0X3NzZXRfY291bnQgPSBtdjg4ZTYzMjBfc3RhdHNfZ2V0X3NzZXRfY291bnQsXFxuQEAgLTU1OTcsNiArNTYwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTB4X29wcyA9IHtcXG4gXFx0LnBvcnRfZ2V0X2Ntb2RlID0gbXY4OGU2MzUyX3BvcnRfZ2V0X2Ntb2RlLFxcbiBcXHQucG9ydF9zZXRfY21vZGUgPSBtdjg4ZTYzOTB4X3BvcnRfc2V0X2Ntb2RlLFxcbiBcXHQucG9ydF9zZXR1cF9tZXNzYWdlX3BvcnQgPSBtdjg4ZTZ4eHhfc2V0dXBfbWVzc2FnZV9wb3J0LFxcbitcXHQucG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSxcXG4gXFx0LnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LFxcbiBcXHQuc3RhdHNfc2V0X2hpc3RvZ3JhbSA9IG12ODhlNjM5MF9nMV9zdGF0c19zZXRfaGlzdG9ncmFtLFxcbiBcXHQuc3RhdHNfZ2V0X3NzZXRfY291bnQgPSBtdjg4ZTYzMjBfc3RhdHNfZ2V0X3NzZXRfY291bnQsXFxuQEAgLTU2NTMsNiArNTY2MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTN4X29wcyA9IHtcXG4gXFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzOTN4X3BvcnRfc2V0X2V0aGVyX3R5cGUsXFxuIFxcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXFxuIFxcdC5wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nID0gbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcsXFxuK1xcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxcbiBcXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjM5MF9wb3J0X3BhdXNlX2xpbWl0LFxcbiBcXHQucG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0ID0gbXY4OGU2eHh4X3BvcnRfZGlzYWJsZV9sZWFybl9saW1pdCxcXG4gXFx0LnBvcnRfZGlzYWJsZV9wcmlfb3ZlcnJpZGUgPSBtdjg4ZTZ4eHhfcG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSxcXG5AQCAtNTY5NSw2ICs1NzAzLDI3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTN4X29wcyA9IHtcXG4gXFx0LnRjYW1fb3BzID0gXFx1MDAyNm12ODhlNjM5M190Y2FtX29wcyxcXG4gfTtcXG4gXFxuK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvIG12ODhlNjM1Ml9xYXZfaW5mbyA9IHtcXG4rXFx0LnJhdGVfdW5pdCA9IDMyLFxcbitcXHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNCwgMCksXFxuK1xcdC5oaWxpbWl0X21hc2sgPSBHRU5NQVNLKDE0LCAwKSxcXG4rXFx0LnF1ZXVlX21hc2sgPSBHRU5NQVNLKDMsIDApLFxcbit9O1xcbitcXG4rc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gbXY4OGU2MzQxX3Fhdl9pbmZvID0ge1xcbitcXHQucmF0ZV91bml0ID0gNjQsXFxuK1xcdC5yYXRlX21hc2sgPSBHRU5NQVNLKDE1LCAwKSxcXG4rXFx0LmhpbGltaXRfbWFzayA9IEdFTk1BU0soMTMsIDApLFxcbitcXHQucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksXFxuK307XFxuK1xcbitzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzOTBfcWF2X2luZm8gPSB7XFxuK1xcdC5yYXRlX3VuaXQgPSA2NCxcXG4rXFx0LnJhdGVfbWFzayA9IEdFTk1BU0soMTUsIDApLFxcbitcXHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksXFxuK1xcdC5xdWV1ZV9tYXNrID0gR0VOTUFTSyg3LCAwKSxcXG4rfTtcXG4rXFxuIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFtNVjg4RTYwMjBdID0ge1xcbiBcXHRcXHQucHJvZF9udW0gPSBNVjg4RTZYWFhfUE9SVF9TV0lUQ0hfSURfUFJPRF82MDIwLFxcbkBAIC01NzA2LDYgKzU3MzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQgKi9cXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0LmludmFsaWRfcG9ydF9tYXNrID0gQklUKDIpIHwgQklUKDMpIHwgQklUKDQpLFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4OCxcXG5AQCAtNTcyOCw2ICs1NzU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA2NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDA4LFxcbiBcXHRcXHQucGh5X2Jhc2VfYWRkciA9IDB4MDAsXFxuQEAgLTU3NTAsNiArNTc4MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMCxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU3NzQsNiArNTgwNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuIFxcdFxcdC5waHlfYmFzZV9hZGRyID0gMHgwLFxcbkBAIC01Nzk1LDYgKzU4MjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMTEsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC01ODIwLDYgKzU4NTQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX21hY3MgPSAxMDI0LFxcbiBcXHRcXHQubnVtX3BvcnRzID0gMyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU4NDUsNiArNTg4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA4LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAwLFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG4gXFx0XFx0LnBoeV9iYXNlX2FkZHIgPSAweDAsXFxuQEAgLTU4NjcsNiArNTkwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSA2LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxMSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU4OTIsNiArNTkyOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDEwMjQsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA2LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNTkxOCw2ICs1OTU2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDYsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC01OTQzLDYgKzU5ODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX21hY3MgPSA4MTkyLFxcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU5NjksNiArNjAwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTU5OTQsNiArNjAzNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNjAyMCw2ICs2MDYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNjA0NSw2ICs2MDg4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDEwLFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAwLFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG4gXFx0XFx0LnBoeV9iYXNlX2FkZHIgPSAweDAsXFxuQEAgLTYwNjgsNiArNjExMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxNixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjA5Myw2ICs2MTM4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE2LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDgsXFxuIFxcdFxcdC5tYXhfdmlkID0gODE5MSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxcbkBAIC02MTE3LDYgKzYxNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX21hY3MgPSAxNjM4NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDExLFxcdC8qIDEwICsgWjgwICovXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gOCxcXG4gXFx0XFx0Lm1heF92aWQgPSA4MTkxLFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXFxuQEAgLTYxNDIsNiArNjE4OSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxcbiBcXHRcXHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDgsXFxuIFxcdFxcdC5tYXhfdmlkID0gODE5MSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxcbkBAIC02MTY4LDYgKzYyMTYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxcbiBcXHRcXHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcXG4gXFx0XFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjE5OCw2ICs2MjQ3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXFxuIFxcdFxcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgyKSB8IEJJVCgzKSB8IEJJVCg0KSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MDgsXFxuIFxcdFxcdC5waHlfYmFzZV9hZGRyID0gMHgwMCxcXG5AQCAtNjIyMiw2ICs2MjcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNjIzNyw2ICs2Mjg4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxcbiBcXHRcXHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfU1VQUE9SVEVELFxcbiBcXHRcXHQucHRwX3N1cHBvcnQgPSB0cnVlLFxcbitcXHRcXHQucWF2ID0gXFx1MDAyNm12ODhlNjM1Ml9xYXZfaW5mbyxcXG4gXFx0XFx0Lm9wcyA9IFxcdTAwMjZtdjg4ZTYyNDBfb3BzLFxcbiBcXHR9LFxcbiBcXG5AQCAtNjI0Nyw2ICs2Mjk5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9kYXRhYmFzZXMgPSA2NCxcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDA4LFxcbiBcXHRcXHQucGh5X2Jhc2VfYWRkciA9IDB4MDAsXFxuQEAgLTYyNzEsNiArNjMyNCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE2LFxcbiBcXHRcXHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjI5OSw2ICs2MzUzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMixcXG4gXFx0XFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMyxcXG4gXFx0XFx0Lm51bV9ncGlvID0gMTUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC02MzI3LDYgKzYzODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxcbiBcXHRcXHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAzLFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxNSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTYzNTQsNiArNjQxMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA2LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxMSxcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDQwOTUsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXFxuQEAgLTYzNjksNiArNjQyNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5tdWx0aV9jaGlwID0gdHJ1ZSxcXG4gXFx0XFx0LmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCxcXG4gXFx0XFx0LnB0cF9zdXBwb3J0ID0gdHJ1ZSxcXG4rXFx0XFx0LnFhdiA9IFxcdTAwMjZtdjg4ZTYzNDFfcWF2X2luZm8sXFxuIFxcdFxcdC5vcHMgPSBcXHUwMDI2bXY4OGU2MzQxX29wcyxcXG4gXFx0fSxcXG4gXFxuQEAgLTYzODAsNiArNjQzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fbWFjcyA9IDgxOTIsXFxuIFxcdFxcdC5udW1fcG9ydHMgPSA3LFxcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxcbitcXHRcXHQubnVtX3R4X3F1ZXVlcyA9IDQsXFxuIFxcdFxcdC5tYXhfdmlkID0gNDA5NSxcXG4gXFx0XFx0Lm1heF9zaWQgPSA2MyxcXG4gXFx0XFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcXG5AQCAtNjQwNSw2ICs2NDY0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm51bV9tYWNzID0gODE5MixcXG4gXFx0XFx0Lm51bV9wb3J0cyA9IDcsXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC02NDMxLDYgKzY0OTEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubnVtX3BvcnRzID0gNyxcXG4gXFx0XFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcXG4gXFx0XFx0Lm51bV9ncGlvID0gMTUsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gNCxcXG4gXFx0XFx0Lm1heF92aWQgPSA0MDk1LFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxcbkBAIC02NDQ2LDYgKzY1MDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQubXVsdGlfY2hpcCA9IHRydWUsXFxuIFxcdFxcdC5lZHNhX3N1cHBvcnQgPSBNVjg4RTZYWFhfRURTQV9TVVBQT1JURUQsXFxuIFxcdFxcdC5wdHBfc3VwcG9ydCA9IHRydWUsXFxuK1xcdFxcdC5xYXYgPSBcXHUwMDI2bXY4OGU2MzUyX3Fhdl9pbmZvLFxcbiBcXHRcXHQub3BzID0gXFx1MDAyNm12ODhlNjM1Ml9vcHMsXFxuIFxcdH0sXFxuIFxcdFtNVjg4RTYzNjFdID0ge1xcbkBAIC02NDU5LDYgKzY1MjEsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xcbiBcXHRcXHQuaW52YWxpZF9wb3J0X21hc2sgPSBCSVQoMSkgfCBCSVQoMikgfCBCSVQoOCksXFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXFxuIFxcdFxcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDMsXFxuK1xcdFxcdC5udW1fdHhfcXVldWVzID0gOCxcXG4gXFx0XFx0Lm1heF92aWQgPSA4MTkxLFxcbiBcXHRcXHQubWF4X3NpZCA9IDYzLFxcbiBcXHRcXHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXFxuQEAgLTY0ODUsNiArNjU0OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1faW50ZXJuYWxfcGh5cyA9IDksXFxuIFxcdFxcdC5udW1fZ3BpbyA9IDE2LFxcbiBcXHRcXHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjUwMSw2ICs2NTY1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxcbiBcXHRcXHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxcbiBcXHRcXHQucHRwX3N1cHBvcnQgPSB0cnVlLFxcbitcXHRcXHQucWF2ID0gXFx1MDAyNm12ODhlNjM5MF9xYXZfaW5mbyxcXG4gXFx0XFx0Lm9wcyA9IFxcdTAwMjZtdjg4ZTYzOTBfb3BzLFxcbiBcXHR9LFxcbiBcXHRbTVY4OEU2MzkwWF0gPSB7XFxuQEAgLTY1MTIsNiArNjU3Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxcbiBcXHRcXHQubnVtX2dwaW8gPSAxNixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuIFxcdFxcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcXG5AQCAtNjUyNyw2ICs2NTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcXG4gXFx0XFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxcbiBcXHRcXHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxcbiBcXHRcXHQucHRwX3N1cHBvcnQgPSB0cnVlLFxcbitcXHRcXHQucWF2ID0gXFx1MDAyNm12ODhlNjM5MF9xYXZfaW5mbyxcXG4gXFx0XFx0Lm9wcyA9IFxcdTAwMjZtdjg4ZTYzOTB4X29wcyxcXG4gXFx0fSxcXG4gXFxuQEAgLTY1MzgsNiArNjYwNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5udW1fcG9ydHMgPSAxMSxcXHQvKiAxMCArIFo4MCAqL1xcbiBcXHRcXHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxcbiBcXHRcXHQubnVtX3RjYW1fZW50cmllcyA9IDI1NixcXG4rXFx0XFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxcbiBcXHRcXHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxcbiBcXHRcXHQubWF4X3ZpZCA9IDgxOTEsXFxuIFxcdFxcdC5tYXhfc2lkID0gNjMsXFxuQEAgLTY1NTQsNiArNjYyMiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XFxuIFxcdFxcdC5wdnQgPSB0cnVlLFxcbiBcXHRcXHQubXVsdGlfY2hpcCA9IHRydWUsXFxuIFxcdFxcdC5wdHBfc3VwcG9ydCA9IHRydWUsXFxuK1xcdFxcdC5xYXYgPSBcXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxcbiBcXHRcXHQub3BzID0gXFx1MDAyNm12ODhlNjM5M3hfb3BzLFxcbiBcXHR9LFxcbiB9O1xcbkBAIC03MTc1LDYgKzcyNDQsMTEyIEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X2Nyb3NzY2hpcF9sYWdfbGVhdmUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgc3dfaW5kZXgsXFxuIFxcdHJldHVybiBlcnJfc3luYyA/IDogZXJyX3B2dDtcXG4gfVxcbiBcXG4rc3RhdGljIGludCBtdjg4ZTZ4eHhfc2V0dXBfdGNfY2JzKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXFxuK1xcdFxcdFxcdFxcdCAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQgKmNicylcXG4re1xcbitcXHRjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgKmF2Yl9vcHM7XFxuK1xcdHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCA9IGRzLVxcdTAwM2Vwcml2O1xcbitcXHRjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X3Fhdl9pbmZvICpxYXY7XFxuK1xcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfb3BzICpvcHM7XFxuK1xcdGludCBoaWxpbWl0X3JlZztcXG4rXFx0aW50IHJhdGVfcmVnO1xcbitcXHR1OCBxdWV1ZV9iaXQ7XFxuK1xcdHUzMiByYXRlID0gMDtcXG4rXFx0dTE2IGhpbGltaXQ7XFxuK1xcdGludCBlcnI7XFxuK1xcbitcXHRvcHMgPSBjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHM7XFxuK1xcdGF2Yl9vcHMgPSBvcHMtXFx1MDAzZWF2Yl9vcHM7XFxuK1xcdHFhdiA9IGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZXFhdjtcXG4rXFxuK1xcdGlmICghcWF2IHx8ICFhdmJfb3BzIHx8ICFhdmJfb3BzLVxcdTAwM2Vwb3J0X3Fhdl93cml0ZSB8fFxcbitcXHQgICAgIW9wcy1cXHUwMDNlcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRpZiAoIWRzYV9pc191c2VyX3BvcnQoZHMsIHBvcnQpKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRpZiAoIShxYXYtXFx1MDAzZXF1ZXVlX21hc2sgXFx1MDAyNiBCSVQoY2JzLVxcdTAwM2VxdWV1ZSkpKSB7XFxuK1xcdFxcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXFx1MDAzZWV4dGFjaywgXFxcIkNCUyBub3Qgc3VwcG9ydGVkIG9uIHF1ZXVlXFxcIik7XFxuK1xcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFx0fVxcbitcXG4rXFx0cXVldWVfYml0ID0gQklUKGNicy1cXHUwMDNlcXVldWUpO1xcbitcXHRyYXRlX3JlZyA9IE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfUkFURShjYnMtXFx1MDAzZXF1ZXVlKTtcXG4rXFx0aGlsaW1pdF9yZWcgPSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQoY2JzLVxcdTAwM2VxdWV1ZSk7XFxuK1xcbitcXHRpZiAoY2JzLVxcdTAwM2VlbmFibGUpIHtcXG4rXFx0XFx0aWYgKGNicy1cXHUwMDNlaGljcmVkaXQgXFx1MDAzYz0gMCB8fFxcbitcXHRcXHQgICAgY2JzLVxcdTAwM2VoaWNyZWRpdCBcXHUwMDNlIHFhdi1cXHUwMDNlaGlsaW1pdF9tYXNrKSB7XFxuK1xcdFxcdFxcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXFx1MDAzZWV4dGFjayxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgXFxcImhpY3JlZGl0IG91dCBvZiByYW5nZVxcXCIpO1xcbitcXHRcXHRcXHRyZXR1cm4gLUVSQU5HRTtcXG4rXFx0XFx0fVxcbitcXG4rXFx0XFx0cmF0ZSA9IERJVl9ST1VORF9VUChjYnMtXFx1MDAzZWlkbGVzbG9wZSwgcWF2LVxcdTAwM2VyYXRlX3VuaXQpO1xcbitcXHRcXHRpZiAocmF0ZSBcXHUwMDNlIHFhdi1cXHUwMDNlcmF0ZV9tYXNrKSB7XFxuK1xcdFxcdFxcdE5MX1NFVF9FUlJfTVNHX01PRChjYnMtXFx1MDAzZWV4dGFjayxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgXFxcImlkbGVzbG9wZSBvdXQgb2YgcmFuZ2VcXFwiKTtcXG4rXFx0XFx0XFx0cmV0dXJuIC1FUkFOR0U7XFxuK1xcdFxcdH1cXG4rXFx0XFx0LyogYXZvaWQgdXNpbmcgemVybyByYXRlICovXFxuK1xcdFxcdHJhdGUgPSBtYXhfdCh1MTYsIHJhdGUsIDEpO1xcbitcXHR9XFxuK1xcbitcXHRtdjg4ZTZ4eHhfcmVnX2xvY2soY2hpcCk7XFxuK1xcbitcXHRpZiAoIWNicy1cXHUwMDNlZW5hYmxlKSB7XFxuK1xcdFxcdGVyciA9IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShjaGlwLCBwb3J0LCByYXRlX3JlZywgMCk7XFxuK1xcdFxcdGlmIChlcnIpXFxuK1xcdFxcdFxcdGdvdG8gdW5sb2NrO1xcbitcXG4rXFx0XFx0aWYgKCEoY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgXFx1MDAyNiB+cXVldWVfYml0KSkge1xcbitcXHRcXHRcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKGNoaXAsIHBvcnQsIDApO1xcbitcXHRcXHRcXHRpZiAoZXJyKVxcbitcXHRcXHRcXHRcXHRnb3RvIHVubG9jaztcXG4rXFx0XFx0fVxcbitcXHRcXHRjaGlwLVxcdTAwM2Vwb3J0c1twb3J0XS5jYnNfYWN0aXZlX3F1ZXVlcyBcXHUwMDI2PSB+cXVldWVfYml0O1xcbitcXHRcXHRnb3RvIHVubG9jaztcXG4rXFx0fVxcbitcXG4rXFx0aGlsaW1pdCA9IGNicy1cXHUwMDNlaGljcmVkaXQgXFx1MDAyNiBxYXYtXFx1MDAzZWhpbGltaXRfbWFzaztcXG4rXFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIGhpbGltaXRfcmVnLCBoaWxpbWl0KTtcXG4rXFx0aWYgKGVycilcXG4rXFx0XFx0Z290byB1bmxvY2s7XFxuK1xcbitcXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIHJhdGUpO1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRnb3RvIHVubG9jaztcXG4rXFxuK1xcdGlmICghY2hpcC1cXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMpIHtcXG4rXFx0XFx0dTggc2NoZWRfbW9kZSA9IGNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW51bV90eF9xdWV1ZXMgLSAxO1xcbitcXG4rXFx0XFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShjaGlwLCBwb3J0LFxcbitcXHRcXHRcXHRcXHRcXHRcXHRcXHQgc2NoZWRfbW9kZSk7XFxuK1xcdFxcdGlmIChlcnIpIHtcXG4rXFx0XFx0XFx0bXY4OGU2eHh4X3BvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIHJhdGVfcmVnLCAwKTtcXG4rXFx0XFx0XFx0Z290byB1bmxvY2s7XFxuK1xcdFxcdH1cXG4rXFx0fVxcbitcXHRjaGlwLVxcdTAwM2Vwb3J0c1twb3J0XS5jYnNfYWN0aXZlX3F1ZXVlcyB8PSBxdWV1ZV9iaXQ7XFxuK1xcbit1bmxvY2s6XFxuK1xcdG12ODhlNnh4eF9yZWdfdW5sb2NrKGNoaXApO1xcbitcXG4rXFx0cmV0dXJuIGVycjtcXG4rfVxcbitcXG4rc3RhdGljIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXR1cF90YyhzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbitcXHRcXHRcXHRcXHQgICBlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhKVxcbit7XFxuK1xcdHN3aXRjaCAodHlwZSkge1xcbitcXHRjYXNlIFRDX1NFVFVQX1FESVNDX0NCUzpcXG4rXFx0XFx0cmV0dXJuIG12ODhlNnh4eF9zZXR1cF90Y19jYnMoZHMsIHBvcnQsIHR5cGVfZGF0YSk7XFxuK1xcdGRlZmF1bHQ6XFxuK1xcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFx0fVxcbit9XFxuK1xcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfbWFjX29wcyBtdjg4ZTZ4eHhfcGh5bGlua19tYWNfb3BzID0ge1xcbiBcXHQubWFjX3NlbGVjdF9wY3NcXHRcXHQ9IG12ODhlNnh4eF9tYWNfc2VsZWN0X3BjcyxcXG4gXFx0Lm1hY19wcmVwYXJlXFx0XFx0PSBtdjg4ZTZ4eHhfbWFjX3ByZXBhcmUsXFxuQEAgLTcyMzQsNiArNzQwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgbXY4OGU2eHh4X3N3aXRjaF9vcHMgPSB7XFxuIFxcdC5wb3J0X2h3dHN0YW1wX2dldFxcdD0gbXY4OGU2eHh4X3BvcnRfaHd0c3RhbXBfZ2V0LFxcbiBcXHQucG9ydF90eHRzdGFtcFxcdFxcdD0gbXY4OGU2eHh4X3BvcnRfdHh0c3RhbXAsXFxuIFxcdC5wb3J0X3J4dHN0YW1wXFx0XFx0PSBtdjg4ZTZ4eHhfcG9ydF9yeHRzdGFtcCxcXG4rXFx0LnBvcnRfc2V0dXBfdGNcXHRcXHQ9IG12ODhlNnh4eF9wb3J0X3NldHVwX3RjLFxcbiBcXHQuY2xzX2Zsb3dlcl9hZGRcXHRcXHQ9IG12ODhlNnh4eF9jbHNfZmxvd2VyX2FkZCxcXG4gXFx0LmNsc19mbG93ZXJfZGVsICAgICAgICAgPSBtdjg4ZTZ4eHhfY2xzX2Zsb3dlcl9kZWwsXFxuIFxcdC5nZXRfdHNfaW5mb1xcdFxcdD0gbXY4OGU2eHh4X2dldF90c19pbmZvLFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXFxuaW5kZXggZTk2NmU3YzRjYzVkZS4uZDQyZDgzOWU2MzZiYyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXFxuQEAgLTEyNSw2ICsxMjUsNyBAQCBlbnVtIG12ODhlNnh4eF9lZHNhX3N1cHBvcnQge1xcbiB9O1xcbiBcXG4gc3RydWN0IG12ODhlNnh4eF9vcHM7XFxuK3N0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm87XFxuIFxcbiBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xcbiBcXHRlbnVtIG12ODhlNnh4eF9mYW1pbHkgZmFtaWx5O1xcbkBAIC0xMzYsNiArMTM3LDcgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHtcXG4gXFx0dW5zaWduZWQgaW50IG51bV9pbnRlcm5hbF9waHlzO1xcbiBcXHR1bnNpZ25lZCBpbnQgbnVtX2dwaW87XFxuIFxcdHVuc2lnbmVkIGludCBudW1fdGNhbV9lbnRyaWVzO1xcbitcXHR1bnNpZ25lZCBpbnQgbnVtX3R4X3F1ZXVlcztcXG4gXFx0dW5zaWduZWQgaW50IG1heF92aWQ7XFxuIFxcdHVuc2lnbmVkIGludCBtYXhfc2lkO1xcbiBcXHR1bnNpZ25lZCBpbnQgcG9ydF9iYXNlX2FkZHI7XFxuQEAgLTE3Niw2ICsxNzgsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xcbiBcXHQvKiBTdXBwb3J0cyBQVFAgKi9cXG4gXFx0Ym9vbCBwdHBfc3VwcG9ydDtcXG4gXFxuK1xcdC8qIDgwMi4xUWF2IGNyZWRpdCBiYXNlZCBzaGFwaW5nICovXFxuK1xcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gKnFhdjtcXG4rXFxuIFxcdC8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0XFxuIFxcdCAqIHBvcnQgMCwgMSBtZWFucyBpbnRlcm5hbCBQSFlzIHJhbmdlIHN0YXJ0cyBhdCBwb3J0IDEsIGV0Y1xcbiBcXHQgKi9cXG5AQCAtMzA0LDYgKzMwOSw5IEBAIHN0cnVjdCBtdjg4ZTZ4eHhfcG9ydCB7XFxuIFxcbiBcXHQvKiBNYWNBdXRoIEJ5cGFzcyBjb250cm9sIGZsYWcgKi9cXG4gXFx0Ym9vbCBtYWI7XFxuK1xcbitcXHQvKiBRdWV1ZXMgd2l0aCBDQlMgY3VycmVudGx5IGVuYWJsZWQuICovXFxuK1xcdHU4IGNic19hY3RpdmVfcXVldWVzO1xcbiB9O1xcbiBcXG4gZW51bSBtdjg4ZTZ4eHhfcmVnaW9uX2lkIHtcXG5AQCAtNjA2LDYgKzYxNCw4IEBAIHN0cnVjdCBtdjg4ZTZ4eHhfb3BzIHtcXG4gXFx0XFx0XFx0XFx0ICAgc2l6ZV90IHNpemUpO1xcbiBcXG4gXFx0aW50ICgqcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZykoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XFxuK1xcdGludCAoKnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG4rXFx0XFx0XFx0XFx0XFx0dTggbW9kZSk7XFxuIFxcdGludCAoKnBvcnRfcGF1c2VfbGltaXQpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIHU4IGluLFxcbiBcXHRcXHRcXHRcXHR1OCBvdXQpO1xcbiBcXHRpbnQgKCpwb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpO1xcbkBAIC03NjMsNiArNzczLDEwIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyB7XFxuIFxcdGludCAoKnRhaV9yZWFkKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCB1MTYgKmRhdGEsXFxuIFxcdFxcdFxcdGludCBsZW4pO1xcbiBcXHRpbnQgKCp0YWlfd3JpdGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGFkZHIsIHUxNiBkYXRhKTtcXG4rXFxuK1xcdC8qIEFjY2VzcyBwb3J0LXNjb3BlZCA4MDIuMVFhdiByZWdpc3RlcnMgKi9cXG4rXFx0aW50ICgqcG9ydF9xYXZfd3JpdGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIGludCBhZGRyLFxcbitcXHRcXHRcXHQgICAgICB1MTYgZGF0YSk7XFxuIH07XFxuIFxcbiBzdHJ1Y3QgbXY4OGU2eHh4X3B0cF9vcHMge1xcbkBAIC03OTgsNiArODEyLDEzIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfdGNhbV9vcHMge1xcbiBcXHRpbnQgKCpmbHVzaF90Y2FtKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApO1xcbiB9O1xcbiBcXG4rc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyB7XFxuK1xcdHUxNiByYXRlX3VuaXQ7IC8qIGluIGticHMgKi9cXG4rXFx0dTE2IHJhdGVfbWFzazsgLyogUVByaSBSYXRlIHZhbGlkIGJpdHMgbWFzayAqL1xcbitcXHR1MTYgaGlsaW1pdF9tYXNrOyAvKiBRUHJpIEhpTGltaXQgYml0cyBtYXNrKi9cXG4rXFx0dTggcXVldWVfbWFzazsgLyogc3VwcG9ydGVkIHF1ZXVlcyBiaXRtYXNrICovXFxuK307XFxuK1xcbiBzdGF0aWMgaW5saW5lIGJvb2wgbXY4OGU2eHh4X2hhc19zdHUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKVxcbiB7XFxuIFxcdHJldHVybiBjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VtYXhfc2lkIFxcdTAwM2UgMCBcXHUwMDI2XFx1MDAyNlxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oXFxuaW5kZXggZmY1YWRmN2M5YmMzYS4uZGY1MmZmM2FkYzg4YyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oXFxuQEAgLTE4Niw2ICsxODYsOSBAQFxcbiAjZGVmaW5lIE1WODhFNjM1Ml9HMl9BVkJfQ01EX0JMT0NLX01BU0tcXHRcXHQweDAwZTBcXG4gI2RlZmluZSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9BRERSX01BU0tcXHRcXHQweDAwMWZcXG4gXFxuKyNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfUUFWX0NGR19SQVRFKHF1ZXVlKVxcdCgoKHF1ZXVlKSBcXHUwMDI2IDB4NykgXFx1MDAzY1xcdTAwM2MgMSlcXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQocXVldWUpXFx0KCgoKHF1ZXVlKSBcXHUwMDI2IDB4NykgXFx1MDAzY1xcdTAwM2MgMSkgKyAxKVxcbitcXG4gLyogT2Zmc2V0IDB4MTc6IEFWQiBEYXRhIFJlZ2lzdGVyICovXFxuICNkZWZpbmUgTVY4OEU2MzUyX0cyX0FWQl9EQVRBXFx0XFx0MHgxN1xcbiBcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyX2F2Yi5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyX2F2Yi5jXFxuaW5kZXggNjU3NzgzZTA0M2ZmMS4uNmI1NGUyNzVkMjFhYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDJfYXZiLmNcXG5AQCAtMTEwLDYgKzExMCwxNSBAQCBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9wdHBfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbiBcXHRyZXR1cm4gbXY4OGU2eHh4X2cyX2F2Yl93cml0ZShjaGlwLCB3cml0ZW9wLCBkYXRhKTtcXG4gfVxcbiBcXG4rc3RhdGljIGludCBtdjg4ZTYzNTJfZzJfYXZiX3BvcnRfcWF2X3dyaXRlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCxcXG4rXFx0XFx0XFx0XFx0XFx0ICAgaW50IHBvcnQsIGludCBhZGRyLCB1MTYgZGF0YSlcXG4re1xcbitcXHR1MTYgd3JpdGVvcCA9IE1WODhFNjM1Ml9HMl9BVkJfQ01EX09QX1dSSVRFIHwgKHBvcnQgXFx1MDAzY1xcdTAwM2MgOCkgfFxcbitcXHRcXHQgICAgICAoTVY4OEU2MzUyX0cyX0FWQl9DTURfQkxPQ0tfUUFWIFxcdTAwM2NcXHUwMDNjIDUpIHwgYWRkcjtcXG4rXFxuK1xcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xcbit9XFxuK1xcbiBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkcixcXG4gXFx0XFx0XFx0XFx0ICAgICB1MTYgKmRhdGEsIGludCBsZW4pXFxuIHtcXG5AQCAtMTQ5LDYgKzE1OCw3IEBAIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyBtdjg4ZTYzNTJfYXZiX29wcyA9IHtcXG4gXFx0LnB0cF93cml0ZVxcdFxcdD0gbXY4OGU2MzUyX2cyX2F2Yl9wdHBfd3JpdGUsXFxuIFxcdC50YWlfcmVhZFxcdFxcdD0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfcmVhZCxcXG4gXFx0LnRhaV93cml0ZVxcdFxcdD0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfd3JpdGUsXFxuK1xcdC5wb3J0X3Fhdl93cml0ZVxcdFxcdD0gbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZSxcXG4gfTtcXG4gXFxuIHN0YXRpYyBpbnQgbXY4OGU2MTY1X2cyX2F2Yl90YWlfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLFxcbkBAIC0xNzQsNiArMTg0LDcgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjE2NV9hdmJfb3BzID0ge1xcbiBcXHQucHRwX3dyaXRlXFx0XFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3B0cF93cml0ZSxcXG4gXFx0LnRhaV9yZWFkXFx0XFx0PSBtdjg4ZTYxNjVfZzJfYXZiX3RhaV9yZWFkLFxcbiBcXHQudGFpX3dyaXRlXFx0XFx0PSBtdjg4ZTYxNjVfZzJfYXZiX3RhaV93cml0ZSxcXG4rXFx0LnBvcnRfcWF2X3dyaXRlXFx0XFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3BvcnRfcWF2X3dyaXRlLFxcbiB9O1xcbiBcXG4gc3RhdGljIGludCBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcHRwX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbkBAIC0xOTcsNiArMjA4LDE1IEBAIHN0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wb3J0X3B0cF93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXFxuIFxcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xcbiB9XFxuIFxcbitzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9xYXZfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxcbitcXHRcXHRcXHRcXHRcXHQgICBpbnQgcG9ydCwgaW50IGFkZHIsIHUxNiBkYXRhKVxcbit7XFxuK1xcdHUxNiB3cml0ZW9wID0gTVY4OEU2MzkwX0cyX0FWQl9DTURfT1BfV1JJVEUgfCAocG9ydCBcXHUwMDNjXFx1MDAzYyA4KSB8XFxuK1xcdFxcdCAgICAgIChNVjg4RTYzNTJfRzJfQVZCX0NNRF9CTE9DS19RQVYgXFx1MDAzY1xcdTAwM2MgNSkgfCBhZGRyO1xcbitcXG4rXFx0cmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLFxcbiBcXHRcXHRcXHRcXHQgICAgIHUxNiAqZGF0YSwgaW50IGxlbilcXG4ge1xcbkBAIC0yMzYsNCArMjU2LDUgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjM5MF9hdmJfb3BzID0ge1xcbiBcXHQucHRwX3dyaXRlXFx0XFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3B0cF93cml0ZSxcXG4gXFx0LnRhaV9yZWFkXFx0XFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV9yZWFkLFxcbiBcXHQudGFpX3dyaXRlXFx0XFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV93cml0ZSxcXG4rXFx0LnBvcnRfcWF2X3dyaXRlXFx0XFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3BvcnRfcWF2X3dyaXRlLFxcbiB9O1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXFxuaW5kZXggZWExZmFiNzE5NjhhMC4uNzU4YjhkNDFmNDg1MyAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXFxuQEAgLTEzMjMsNiArMTMyMyw1MSBAQCBpbnQgbXY4OGU2MDk3X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG4gXFx0XFx0XFx0XFx0ICAgIDB4MDAwMSk7XFxuIH1cXG4gXFxuK2ludCBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuK1xcdFxcdFxcdFxcdCAgICAgICB1OCBtb2RlKVxcbit7XFxuK1xcdHUxNiByZWc7XFxuK1xcdGludCBlcnI7XFxuK1xcbitcXHRpZiAobW9kZSBcXHUwMDNlIDMpXFxuK1xcdFxcdHJldHVybiAtRUlOVkFMO1xcbitcXG4rXFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfcmVhZChjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyLFxcbitcXHRcXHRcXHRcXHQgIFxcdTAwMjZyZWcpO1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRyZXR1cm4gZXJyO1xcbitcXG4rXFx0cmVnIFxcdTAwMjY9IH5NVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX01BU0s7XFxuK1xcdHJlZyB8PSBtb2RlIFxcdTAwM2NcXHUwMDNjIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfU0hJRlQ7XFxuK1xcbitcXHRyZXR1cm4gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCxcXG4rXFx0XFx0XFx0XFx0ICAgIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDIsIHJlZyk7XFxuK31cXG4rXFxuK2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuK1xcdFxcdFxcdFxcdCAgICAgICB1OCBtb2RlKVxcbit7XFxuK1xcdHUxNiByZWc7XFxuK1xcdGludCBlcnI7XFxuK1xcbitcXHRpZiAobW9kZSBcXHUwMDNlIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRV9NQVNLKVxcbitcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4rXFxuK1xcdHJlZyA9IE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9VUERBVEUgfFxcbitcXHQgICAgICAoTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFIFxcdTAwM2NcXHUwMDNjXFxuK1xcdCAgICAgICBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfUFRSX1NISUZUKSB8XFxuK1xcdCAgICAgIChtb2RlIFxcdTAwMjYgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFX01BU0spO1xcbitcXG4rXFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCwgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMLFxcbitcXHRcXHRcXHRcXHQgICByZWcpO1xcbitcXHRpZiAoZXJyKVxcbitcXHRcXHRyZXR1cm4gZXJyO1xcbitcXG4rXFx0cmV0dXJuIG12ODhlNnh4eF9wb3J0X3dhaXRfYml0KGNoaXAsIHBvcnQsIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTCxcXG4rXFx0XFx0XFx0XFx0ICAgICAgIF9fYmZfc2hmKE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9VUERBVEUpXFxuK1xcdFxcdFxcdFxcdCAgICAgICAsIDApO1xcbit9XFxuK1xcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cXG4gXFxuIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfYXNzb2NfdmVjdG9yKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuQEAgLTE3MjcsMyArMTc3MiwyMSBAQCBpbnQgbXY4OGU2MzkzeF9wb3J0X3NldF9wb2xpY3koc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG4gXFxuIFxcdHJldHVybiBtdjg4ZTYzOTN4X3BvcnRfcG9saWN5X3dyaXRlKGNoaXAsIHBvcnQsIHB0ciwgcmVnKTtcXG4gfVxcbitcXG4raW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcXG4rXFx0XFx0XFx0ICAgICB1MTYgZGF0YSlcXG4re1xcbitcXHRpZiAoIWNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlYXZiX29wcy1cXHUwMDNlcG9ydF9xYXZfd3JpdGUpXFxuK1xcdFxcdHJldHVybiAtRU9QTk9UU1VQUDtcXG4rXFxuK1xcdHJldHVybiBjaGlwLVxcdTAwM2VpbmZvLVxcdTAwM2VvcHMtXFx1MDAzZWF2Yl9vcHMtXFx1MDAzZXBvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIGFkZHIsIGRhdGEpO1xcbit9XFxuK1xcbitpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbitcXHRcXHRcXHRcXHQgICAgICAgdTggbW9kZSlcXG4re1xcbitcXHRpZiAoIWNoaXAtXFx1MDAzZWluZm8tXFx1MDAzZW9wcy1cXHUwMDNlcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKVxcbitcXHRcXHRyZXR1cm4gLUVPUE5PVFNVUFA7XFxuK1xcbitcXHRyZXR1cm4gY2hpcC1cXHUwMDNlaW5mby1cXHUwMDNlb3BzLVxcdTAwM2Vwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCwgbW9kZSk7XFxuK31cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaFxcbmluZGV4IDViNmNkZTlmNzQwNmYuLmEzODBmMzU2ZWI4M2QgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmhcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaFxcbkBAIC0yNDEsNiArMjQxLDE4IEBAXFxuIFxcbiAvKiBPZmZzZXQgMHgwQTogRWdyZXNzIFJhdGUgQ29udHJvbCAyICovXFxuICNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMlxcdFxcdDB4MGFcXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX01BU0tcXHQweDMwMDBcXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyX1NDSEVEVUxFX1NISUZUXFx0MTJcXG4rXFxuKy8qIE9mZnNldCAweDFDOiBQb3J0IFF1ZXVlIENvbnRyb2wgKi9cXG4rI2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExcXHRcXHRcXHQweDFjXFxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURVxcdFxcdFxcdDB4ODAwMFxcbisjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfTUFTS1xcdFxcdDB4N2YwMFxcbisjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfU0hJRlRcXHRcXHQ4XFxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX0RBVEFfTUFTS1xcdFxcdDB4MDBmZlxcbisjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRVxcdFxcdDB4MDBcXG4rI2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTS1xcdFxcdDB4MDdcXG4rXFxuIFxcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cXG4gI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9BU1NPQ19WRUNUT1JcXHRcXHRcXHQweDBiXFxuQEAgLTU2MSw2ICs1NzMsMTAgQEAgaW50IG12ODhlNjE2NV9wb3J0X3NldF9qdW1ib19zaXplKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuIFxcdFxcdFxcdFxcdCAgc2l6ZV90IHNpemUpO1xcbiBpbnQgbXY4OGU2MDk1X3BvcnRfZWdyZXNzX3JhdGVfbGltaXRpbmcoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XFxuIGludCBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcXG4raW50IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcXG4rXFx0XFx0XFx0XFx0ICAgICAgIHU4IG1vZGUpO1xcbitpbnQgbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxcbitcXHRcXHRcXHRcXHQgICAgICAgdTggbW9kZSk7XFxuIGludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfYXNzb2NfdmVjdG9yKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuIFxcdFxcdFxcdFxcdCAgICB1MTYgcGF2KTtcXG4gaW50IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0KHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsIHU4IGluLFxcbkBAIC02MDUsNSArNjIxLDkgQEAgaW50IG12ODhlNnh4eF9wb3J0X2hpZGRlbl9yZWFkKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IGJsb2NrLCBpbnQgcG9ydCxcXG4gXFx0XFx0XFx0ICAgICAgIGludCByZWcsIHUxNiAqdmFsKTtcXG4gXFxuIGludCBtdjg4ZTZ4eHhfcG9ydF9lbmFibGVfdGNhbShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcXG4raW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcXG4rXFx0XFx0XFx0ICAgICB1MTYgZGF0YSk7XFxuK2ludCBtdjg4ZTZ4eHhfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXFxuK1xcdFxcdFxcdFxcdCAgICAgICB1OCBtb2RlKTtcXG4gXFxuICNlbmRpZiAvKiBfTVY4OEU2WFhYX1BPUlRfSCAqL1xcbmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9wa3Rfc2NoZWQuaCBiL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oXFxuaW5kZXggMThhNDE5Y2Q5ZDk0OS4uZDM1Yzg3MDA0YzI3OSAxMDA2NDRcXG4tLS0gYS9pbmNsdWRlL25ldC9wa3Rfc2NoZWQuaFxcbisrKyBiL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oXFxuQEAgLTE1MCw2ICsxNTAsNyBAQCBzdHJ1Y3QgdGNfY2JzX3FvcHRfb2ZmbG9hZCB7XFxuIFxcdHMzMiBsb2NyZWRpdDtcXG4gXFx0czMyIGlkbGVzbG9wZTtcXG4gXFx0czMyIHNlbmRzbG9wZTtcXG4rXFx0c3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNrO1xcbiB9O1xcbiBcXG4gc3RydWN0IHRjX2V0Zl9xb3B0X29mZmxvYWQge1xcbmRpZmYgLS1naXQgYS9uZXQvZHNhL3RhZ19kc2EuYyBiL25ldC9kc2EvdGFnX2RzYS5jXFxuaW5kZXggZDVmZmVlMzVmYmI1My4uMmJiNzFjZDM0M2U3OSAxMDA2NDRcXG4tLS0gYS9uZXQvZHNhL3RhZ19kc2EuY1xcbisrKyBiL25ldC9kc2EvdGFnX2RzYS5jXFxuQEAgLTE3OSw4ICsxNzksMTcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpkc2FfeG1pdF9sbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXHRcXHRcXHRkc2FfaGVhZGVyWzJdIFxcdTAwMjY9IH4weDEwO1xcbiBcXHRcXHR9XFxuIFxcdH0gZWxzZSB7XFxuK1xcdFxcdHUxNiBxdWV1ZSA9IHNrYl9nZXRfcXVldWVfbWFwcGluZyhza2IpIFxcdTAwMjYgMHg3O1xcbiBcXHRcXHR1MTYgdmlkO1xcbiBcXG4rXFx0XFx0LyogVGhlIFBSSSBmaWVsZCBpcyAzIGJpdHMuIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiB0aGVcXG4rXFx0XFx0ICogMiBoaWdoZXN0IGJpdHMgc3BlY2lmeSB0aGUgZWdyZXNzIHF1ZXVlIGluIEZyb21fQ1BVIERTQVxcbitcXHRcXHQgKiB0YWdnZWQgZnJhbWVzLiBPbiBkZXZpY2VzIHdpdGggOCBxdWV1ZXMgaXQncyBwb3NzaWJsZSB0b1xcbitcXHRcXHQgKiBzZW5kIHRvIHRoZSA4IHF1ZXVlcywgd2hpY2ggbWVhbnMgdGhlIDMgYml0cyBhcmUgdXNlZC5cXG4rXFx0XFx0ICovXFxuK1xcdFxcdGlmIChkcC1cXHUwMDNlZHMtXFx1MDAzZW51bV90eF9xdWV1ZXMgPT0gNClcXG4rXFx0XFx0XFx0cXVldWUgXFx1MDAzY1xcdTAwM2M9IDE7XFxuK1xcbiBcXHRcXHR2aWQgPSBicl9kZXYgPyBNVjg4RTZYWFhfVklEX0JSSURHRUQgOiBNVjg4RTZYWFhfVklEX1NUQU5EQUxPTkU7XFxuIFxcbiBcXHRcXHRza2JfcHVzaChza2IsIERTQV9ITEVOICsgZXh0cmEpO1xcbkBAIC0xOTEsNyArMjAwLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpkc2FfeG1pdF9sbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbiBcXG4gXFx0XFx0ZHNhX2hlYWRlclswXSA9IChjbWQgXFx1MDAzY1xcdTAwM2MgNikgfCB0YWdfZGV2O1xcbiBcXHRcXHRkc2FfaGVhZGVyWzFdID0gdGFnX3BvcnQgXFx1MDAzY1xcdTAwM2MgMztcXG4tXFx0XFx0ZHNhX2hlYWRlclsyXSA9IHZpZCBcXHUwMDNlXFx1MDAzZSA4O1xcbitcXHRcXHRkc2FfaGVhZGVyWzJdID0gKHF1ZXVlIFxcdTAwM2NcXHUwMDNjIDUpIHwgdmlkIFxcdTAwM2VcXHUwMDNlIDg7XFxuIFxcdFxcdGRzYV9oZWFkZXJbM10gPSB2aWQgXFx1MDAyNiAweGZmO1xcbiBcXHR9XFxuIFxcbmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2Nicy5jIGIvbmV0L3NjaGVkL3NjaF9jYnMuY1xcbmluZGV4IDFjOTM0NjljNTZlM2QuLjg3YzJlZGExMDhjOGMgMTAwNjQ0XFxuLS0tIGEvbmV0L3NjaGVkL3NjaF9jYnMuY1xcbisrKyBiL25ldC9zY2hlZC9zY2hfY2JzLmNcXG5AQCAtMzA3LDEwICszMDcsMTIgQEAgc3RhdGljIGludCBjYnNfZW5hYmxlX29mZmxvYWQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3RydWN0IGNic19zY2hlZF9kYXRhICpxLFxcbiBcXHRjYnMubG9jcmVkaXQgPSBvcHQtXFx1MDAzZWxvY3JlZGl0O1xcbiBcXHRjYnMuaWRsZXNsb3BlID0gb3B0LVxcdTAwM2VpZGxlc2xvcGU7XFxuIFxcdGNicy5zZW5kc2xvcGUgPSBvcHQtXFx1MDAzZXNlbmRzbG9wZTtcXG4rXFx0Y2JzLmV4dGFjayA9IGV4dGFjaztcXG4gXFxuIFxcdGVyciA9IG9wcy1cXHUwMDNlbmRvX3NldHVwX3RjKGRldiwgVENfU0VUVVBfUURJU0NfQ0JTLCBcXHUwMDI2Y2JzKTtcXG4gXFx0aWYgKGVyciBcXHUwMDNjIDApIHtcXG4tXFx0XFx0TkxfU0VUX0VSUl9NU0coZXh0YWNrLCBcXFwiU3BlY2lmaWVkIGRldmljZSBmYWlsZWQgdG8gc2V0dXAgY2JzIGhhcmR3YXJlIG9mZmxvYWRcXFwiKTtcXG4rXFx0XFx0TkxfU0VUX0VSUl9NU0dfV0VBSyhleHRhY2ssXFxuK1xcdFxcdFxcdFxcdCAgICBcXFwiU3BlY2lmaWVkIGRldmljZSBmYWlsZWQgdG8gc2V0dXAgY2JzIGhhcmR3YXJlIG9mZmxvYWRcXFwiKTtcXG4gXFx0XFx0cmV0dXJuIGVycjtcXG4gXFx0fVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6MzcuNTQwMjM3NzYxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MzM0NTMzNTc3ODQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIHByaW1hcmlseSBhZGRzIDgwMi4xUWF2IENCUyBvZmZsb2FkaW5nIHN1cHBvcnQgdG8gdGhlIE1hcnZlbGwgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBUaGlzIGhhcmR3YXJlIGRyaXZlciBjYW5ub3QgYmUgZXhlcmNpc2VkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUuIFRoZSBjaGFuZ2VzIGluIG5ldC9kc2EvdGFnX2RzYS5jIGFyZSBzcGVjaWZpYyB0byB0aGUgRFNBIHRhZyBwcm90b2NvbCB1c2VkIGV4Y2x1c2l2ZWx5IGJ5IHRoaXMgZHJpdmVyLiBUaGUgbW9kaWZpY2F0aW9uIGluIG5ldC9zY2hlZC9zY2hfY2JzLmMgaXMgYSB0cml2aWFsIGNoYW5nZSB0byBwYXNzIGV4dGFjayBkb3duIHRvIHRoZSBkcml2ZXIgYW5kIHVzZSBOTF9TRVRfRVJSX01TR19XRUFLLCB3aGljaCBkb2VzIG5vdCBpbnRyb2R1Y2UgbmV3IGZ1bmN0aW9uYWwgbG9naWMgcmVxdWlyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA1MjJiNGY0NjliOGZmNTNkMTQxNmZhNGRhOTc5ZTNmNDE1Zjg1MDc5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMTEgMTI6MDA6MzYgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5pbmRleCA4MGI4NzdjNzQ1MTNkLi5hNTY3ZWU5YjZjZTBkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jXG5AQCAtMzIsNiArMzIsNyBAQFxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2dwaW8vY29uc3VtZXIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3BoeWxpbmsuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY25ldC9kc2EuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY25ldC9wa3Rfc2NoZWQuaFx1MDAzZVxuIFxuICNpbmNsdWRlIFwiY2hpcC5oXCJcbiAjaW5jbHVkZSBcImRldmxpbmsuaFwiXG5AQCAtMzk5MCw2ICszOTkxLDcgQEAgc3RhdGljIGludCBtdjg4ZTZ4eHhfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFxuIFx0Y2hpcC1cdTAwM2VkcyA9IGRzO1xuIFx0ZHMtXHUwMDNldXNlcl9taWlfYnVzID0gbXY4OGU2eHh4X2RlZmF1bHRfbWRpb19idXMoY2hpcCk7XG4rXHRkcy1cdTAwM2VudW1fdHhfcXVldWVzID0gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW51bV90eF9xdWV1ZXM7XG4gXG4gXHQvKiBTaW5jZSB2aXJ0dWFsIGJyaWRnZXMgYXJlIG1hcHBlZCBpbiB0aGUgUFZULCB0aGUgbnVtYmVyIHdlIHN1cHBvcnRcbiBcdCAqIGRlcGVuZHMgb24gdGhlIHBoeXNpY2FsIHN3aXRjaCB0b3BvbG9neS4gV2UgbmVlZCB0byBsZXQgRFNBIGZpZ3VyZVxuQEAgLTUwMjMsNiArNTAyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYyNDBfb3BzID0ge1xuIFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuK1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTUzMDYsNiArNTMwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNDFfb3BzID0ge1xuIFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuK1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU0NjQsNiArNTQ2OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzNTJfb3BzID0ge1xuIFx0LnBvcnRfc2V0X2V0aGVyX3R5cGUgPSBtdjg4ZTYzNTFfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuK1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM1Ml9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjA5N19wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU1MzMsNiArNTUzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X29wcyBtdjg4ZTYzOTBfb3BzID0ge1xuIFx0LnBvcnRfZ2V0X2Ntb2RlID0gbXY4OGU2MzUyX3BvcnRfZ2V0X2Ntb2RlLFxuIFx0LnBvcnRfc2V0X2Ntb2RlID0gbXY4OGU2MzkwX3BvcnRfc2V0X2Ntb2RlLFxuIFx0LnBvcnRfc2V0dXBfbWVzc2FnZV9wb3J0ID0gbXY4OGU2eHh4X3NldHVwX21lc3NhZ2VfcG9ydCxcbitcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxuIFx0LnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LFxuIFx0LnN0YXRzX3NldF9oaXN0b2dyYW0gPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc2V0X2hpc3RvZ3JhbSxcbiBcdC5zdGF0c19nZXRfc3NldF9jb3VudCA9IG12ODhlNjMyMF9zdGF0c19nZXRfc3NldF9jb3VudCxcbkBAIC01NTk3LDYgKzU2MDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkweF9vcHMgPSB7XG4gXHQucG9ydF9nZXRfY21vZGUgPSBtdjg4ZTYzNTJfcG9ydF9nZXRfY21vZGUsXG4gXHQucG9ydF9zZXRfY21vZGUgPSBtdjg4ZTYzOTB4X3BvcnRfc2V0X2Ntb2RlLFxuIFx0LnBvcnRfc2V0dXBfbWVzc2FnZV9wb3J0ID0gbXY4OGU2eHh4X3NldHVwX21lc3NhZ2VfcG9ydCxcbitcdC5wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUgPSBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlLFxuIFx0LnN0YXRzX3NuYXBzaG90ID0gbXY4OGU2MzkwX2cxX3N0YXRzX3NuYXBzaG90LFxuIFx0LnN0YXRzX3NldF9oaXN0b2dyYW0gPSBtdjg4ZTYzOTBfZzFfc3RhdHNfc2V0X2hpc3RvZ3JhbSxcbiBcdC5zdGF0c19nZXRfc3NldF9jb3VudCA9IG12ODhlNjMyMF9zdGF0c19nZXRfc3NldF9jb3VudCxcbkBAIC01NjUzLDYgKzU2NjAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkzeF9vcHMgPSB7XG4gXHQucG9ydF9zZXRfZXRoZXJfdHlwZSA9IG12ODhlNjM5M3hfcG9ydF9zZXRfZXRoZXJfdHlwZSxcbiBcdC5wb3J0X3NldF9qdW1ib19zaXplID0gbXY4OGU2MTY1X3BvcnRfc2V0X2p1bWJvX3NpemUsXG4gXHQucG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyA9IG12ODhlNjA5N19wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nLFxuK1x0LnBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSA9IG12ODhlNjM5MF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUsXG4gXHQucG9ydF9wYXVzZV9saW1pdCA9IG12ODhlNjM5MF9wb3J0X3BhdXNlX2xpbWl0LFxuIFx0LnBvcnRfZGlzYWJsZV9sZWFybl9saW1pdCA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfbGVhcm5fbGltaXQsXG4gXHQucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rpc2FibGVfcHJpX292ZXJyaWRlLFxuQEAgLTU2OTUsNiArNTcwMywyNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MzkzeF9vcHMgPSB7XG4gXHQudGNhbV9vcHMgPSBcdTAwMjZtdjg4ZTYzOTNfdGNhbV9vcHMsXG4gfTtcbiBcbitzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzNTJfcWF2X2luZm8gPSB7XG4rXHQucmF0ZV91bml0ID0gMzIsXG4rXHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNCwgMCksXG4rXHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxNCwgMCksXG4rXHQucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksXG4rfTtcbitcbitzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzNDFfcWF2X2luZm8gPSB7XG4rXHQucmF0ZV91bml0ID0gNjQsXG4rXHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNSwgMCksXG4rXHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksXG4rXHQucXVldWVfbWFzayA9IEdFTk1BU0soMywgMCksXG4rfTtcbitcbitzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyBtdjg4ZTYzOTBfcWF2X2luZm8gPSB7XG4rXHQucmF0ZV91bml0ID0gNjQsXG4rXHQucmF0ZV9tYXNrID0gR0VOTUFTSygxNSwgMCksXG4rXHQuaGlsaW1pdF9tYXNrID0gR0VOTUFTSygxMywgMCksXG4rXHQucXVldWVfbWFzayA9IEdFTk1BU0soNywgMCksXG4rfTtcbitcbiBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0W01WODhFNjAyMF0gPSB7XG4gXHRcdC5wcm9kX251bSA9IE1WODhFNlhYWF9QT1JUX1NXSVRDSF9JRF9QUk9EXzYwMjAsXG5AQCAtNTcwNiw2ICs1NzM1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0ICovXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgyKSB8IEJJVCgzKSB8IEJJVCg0KSxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDgsXG5AQCAtNTcyOCw2ICs1NzU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9kYXRhYmFzZXMgPSA2NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDA4LFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MDAsXG5AQCAtNTc1MCw2ICs1NzgxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gODE5MixcbiBcdFx0Lm51bV9wb3J0cyA9IDEwLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01Nzc0LDYgKzU4MDYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC01Nzk1LDYgKzU4MjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTEsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTU4MjAsNiArNTg1NCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDEwMjQsXG4gXHRcdC5udW1fcG9ydHMgPSAzLFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01ODQ1LDYgKzU4ODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gOCxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMCxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTU4NjcsNiArNTkwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuIFx0XHQubnVtX2dwaW8gPSAxMSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTg5Miw2ICs1OTI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9tYWNzID0gMTAyNCxcbiBcdFx0Lm51bV9wb3J0cyA9IDYsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTU5MTgsNiArNTk1Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA2LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAwLFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTQzLDYgKzU5ODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNTk2OSw2ICs2MDA5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC01OTk0LDYgKzYwMzUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNjAyMCw2ICs2MDYyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02MDQ1LDYgKzYwODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gMTAsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDAsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MDY4LDYgKzYxMTIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MDkzLDYgKzYxMzgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MTE3LDYgKzYxNjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSAxNjM4NCxcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02MTQyLDYgKzYxODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX3BvcnRzID0gMTEsXHQvKiAxMCArIFo4MCAqL1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA4LFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTYxNjgsNiArNjIxNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5udW1fdGNhbV9lbnRyaWVzID0gMjU2LFxuIFx0XHQuaW50ZXJuYWxfcGh5c19vZmZzZXQgPSAxLFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgwLFxuQEAgLTYxOTgsNiArNjI0Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSAyLFxuIFx0XHQuaW52YWxpZF9wb3J0X21hc2sgPSBCSVQoMikgfCBCSVQoMykgfCBCSVQoNCksXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDA4LFxuIFx0XHQucGh5X2Jhc2VfYWRkciA9IDB4MDAsXG5AQCAtNjIyMiw2ICs2MjcyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02MjM3LDYgKzYyODgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubXVsdGlfY2hpcCA9IHRydWUsXG4gXHRcdC5lZHNhX3N1cHBvcnQgPSBNVjg4RTZYWFhfRURTQV9TVVBQT1JURUQsXG4gXHRcdC5wdHBfc3VwcG9ydCA9IHRydWUsXG4rXHRcdC5xYXYgPSBcdTAwMjZtdjg4ZTYzNTJfcWF2X2luZm8sXG4gXHRcdC5vcHMgPSBcdTAwMjZtdjg4ZTYyNDBfb3BzLFxuIFx0fSxcbiBcbkBAIC02MjQ3LDYgKzYyOTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2RhdGFiYXNlcyA9IDY0LFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MDgsXG4gXHRcdC5waHlfYmFzZV9hZGRyID0gMHgwMCxcbkBAIC02MjcxLDYgKzYzMjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjI5OSw2ICs2MzUzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gMixcbiBcdFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMyxcbiBcdFx0Lm51bV9ncGlvID0gMTUsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYzMjcsNiArNjM4Miw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDIsXG4gXHRcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDMsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02MzU0LDYgKzY0MTAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuIFx0XHQubnVtX3BvcnRzID0gNixcbiBcdFx0Lm51bV9ncGlvID0gMTEsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gNCxcbiBcdFx0Lm1heF92aWQgPSA0MDk1LFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDEwLFxuQEAgLTYzNjksNiArNjQyNiw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5tdWx0aV9jaGlwID0gdHJ1ZSxcbiBcdFx0LmVkc2Ffc3VwcG9ydCA9IE1WODhFNlhYWF9FRFNBX1NVUFBPUlRFRCxcbiBcdFx0LnB0cF9zdXBwb3J0ID0gdHJ1ZSxcbitcdFx0LnFhdiA9IFx1MDAyNm12ODhlNjM0MV9xYXZfaW5mbyxcbiBcdFx0Lm9wcyA9IFx1MDAyNm12ODhlNjM0MV9vcHMsXG4gXHR9LFxuIFxuQEAgLTYzODAsNiArNjQzOCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fbWFjcyA9IDgxOTIsXG4gXHRcdC5udW1fcG9ydHMgPSA3LFxuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02NDA1LDYgKzY0NjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX21hY3MgPSA4MTkyLFxuIFx0XHQubnVtX3BvcnRzID0gNyxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA0LFxuIFx0XHQubWF4X3ZpZCA9IDQwOTUsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MTAsXG5AQCAtNjQzMSw2ICs2NDkxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDcsXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDUsXG4gXHRcdC5udW1fZ3BpbyA9IDE1LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDQsXG4gXHRcdC5tYXhfdmlkID0gNDA5NSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbiBcdFx0LnBvcnRfYmFzZV9hZGRyID0gMHgxMCxcbkBAIC02NDQ2LDYgKzY1MDcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubXVsdGlfY2hpcCA9IHRydWUsXG4gXHRcdC5lZHNhX3N1cHBvcnQgPSBNVjg4RTZYWFhfRURTQV9TVVBQT1JURUQsXG4gXHRcdC5wdHBfc3VwcG9ydCA9IHRydWUsXG4rXHRcdC5xYXYgPSBcdTAwMjZtdjg4ZTYzNTJfcWF2X2luZm8sXG4gXHRcdC5vcHMgPSBcdTAwMjZtdjg4ZTYzNTJfb3BzLFxuIFx0fSxcbiBcdFtNVjg4RTYzNjFdID0ge1xuQEAgLTY0NTksNiArNjUyMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5pbnZhbGlkX3BvcnRfbWFzayA9IEJJVCgxKSB8IEJJVCgyKSB8IEJJVCg4KSxcbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gNSxcbiBcdFx0LmludGVybmFsX3BoeXNfb2Zmc2V0ID0gMyxcbitcdFx0Lm51bV90eF9xdWV1ZXMgPSA4LFxuIFx0XHQubWF4X3ZpZCA9IDgxOTEsXG4gXHRcdC5tYXhfc2lkID0gNjMsXG4gXHRcdC5wb3J0X2Jhc2VfYWRkciA9IDB4MCxcbkBAIC02NDg1LDYgKzY1NDgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQubnVtX2ludGVybmFsX3BoeXMgPSA5LFxuIFx0XHQubnVtX2dwaW8gPSAxNixcbiBcdFx0Lm51bV90Y2FtX2VudHJpZXMgPSAyNTYsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjUwMSw2ICs2NTY1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuK1x0XHQucWF2ID0gXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxuIFx0XHQub3BzID0gXHUwMDI2bXY4OGU2MzkwX29wcyxcbiBcdH0sXG4gXHRbTVY4OEU2MzkwWF0gPSB7XG5AQCAtNjUxMiw2ICs2NTc3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm51bV9wb3J0cyA9IDExLFx0LyogMTAgKyBaODAgKi9cbiBcdFx0Lm51bV9pbnRlcm5hbF9waHlzID0gOSxcbiBcdFx0Lm51bV9ncGlvID0gMTYsXG4rXHRcdC5udW1fdHhfcXVldWVzID0gOCxcbiBcdFx0Lm1heF92aWQgPSA4MTkxLFxuIFx0XHQubWF4X3NpZCA9IDYzLFxuIFx0XHQucG9ydF9iYXNlX2FkZHIgPSAweDAsXG5AQCAtNjUyNyw2ICs2NTkzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHtcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQuZWRzYV9zdXBwb3J0ID0gTVY4OEU2WFhYX0VEU0FfVU5ET0NVTUVOVEVELFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuK1x0XHQucWF2ID0gXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxuIFx0XHQub3BzID0gXHUwMDI2bXY4OGU2MzkweF9vcHMsXG4gXHR9LFxuIFxuQEAgLTY1MzgsNiArNjYwNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7XG4gXHRcdC5udW1fcG9ydHMgPSAxMSxcdC8qIDEwICsgWjgwICovXG4gXHRcdC5udW1faW50ZXJuYWxfcGh5cyA9IDgsXG4gXHRcdC5udW1fdGNhbV9lbnRyaWVzID0gMjU2LFxuK1x0XHQubnVtX3R4X3F1ZXVlcyA9IDgsXG4gXHRcdC5pbnRlcm5hbF9waHlzX29mZnNldCA9IDEsXG4gXHRcdC5tYXhfdmlkID0gODE5MSxcbiBcdFx0Lm1heF9zaWQgPSA2MyxcbkBAIC02NTU0LDYgKzY2MjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9pbmZvIG12ODhlNnh4eF90YWJsZVtdID0ge1xuIFx0XHQucHZ0ID0gdHJ1ZSxcbiBcdFx0Lm11bHRpX2NoaXAgPSB0cnVlLFxuIFx0XHQucHRwX3N1cHBvcnQgPSB0cnVlLFxuK1x0XHQucWF2ID0gXHUwMDI2bXY4OGU2MzkwX3Fhdl9pbmZvLFxuIFx0XHQub3BzID0gXHUwMDI2bXY4OGU2MzkzeF9vcHMsXG4gXHR9LFxuIH07XG5AQCAtNzE3NSw2ICs3MjQ0LDExMiBAQCBzdGF0aWMgaW50IG12ODhlNnh4eF9jcm9zc2NoaXBfbGFnX2xlYXZlKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHN3X2luZGV4LFxuIFx0cmV0dXJuIGVycl9zeW5jID8gOiBlcnJfcHZ0O1xuIH1cbiBcbitzdGF0aWMgaW50IG12ODhlNnh4eF9zZXR1cF90Y19jYnMoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbitcdFx0XHRcdCAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQgKmNicylcbit7XG4rXHRjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2F2Yl9vcHMgKmF2Yl9vcHM7XG4rXHRzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAgPSBkcy1cdTAwM2Vwcml2O1xuK1x0Y29uc3Qgc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbyAqcWF2O1xuK1x0Y29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgKm9wcztcbitcdGludCBoaWxpbWl0X3JlZztcbitcdGludCByYXRlX3JlZztcbitcdHU4IHF1ZXVlX2JpdDtcbitcdHUzMiByYXRlID0gMDtcbitcdHUxNiBoaWxpbWl0O1xuK1x0aW50IGVycjtcbitcbitcdG9wcyA9IGNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHM7XG4rXHRhdmJfb3BzID0gb3BzLVx1MDAzZWF2Yl9vcHM7XG4rXHRxYXYgPSBjaGlwLVx1MDAzZWluZm8tXHUwMDNlcWF2O1xuK1xuK1x0aWYgKCFxYXYgfHwgIWF2Yl9vcHMgfHwgIWF2Yl9vcHMtXHUwMDNlcG9ydF9xYXZfd3JpdGUgfHxcbitcdCAgICAhb3BzLVx1MDAzZXBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0aWYgKCFkc2FfaXNfdXNlcl9wb3J0KGRzLCBwb3J0KSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0aWYgKCEocWF2LVx1MDAzZXF1ZXVlX21hc2sgXHUwMDI2IEJJVChjYnMtXHUwMDNlcXVldWUpKSkge1xuK1x0XHROTF9TRVRfRVJSX01TR19NT0QoY2JzLVx1MDAzZWV4dGFjaywgXCJDQlMgbm90IHN1cHBvcnRlZCBvbiBxdWV1ZVwiKTtcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1x0fVxuK1xuK1x0cXVldWVfYml0ID0gQklUKGNicy1cdTAwM2VxdWV1ZSk7XG4rXHRyYXRlX3JlZyA9IE1WODhFNlhYWF9QT1JUX1FBVl9DRkdfUkFURShjYnMtXHUwMDNlcXVldWUpO1xuK1x0aGlsaW1pdF9yZWcgPSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQoY2JzLVx1MDAzZXF1ZXVlKTtcbitcbitcdGlmIChjYnMtXHUwMDNlZW5hYmxlKSB7XG4rXHRcdGlmIChjYnMtXHUwMDNlaGljcmVkaXQgXHUwMDNjPSAwIHx8XG4rXHRcdCAgICBjYnMtXHUwMDNlaGljcmVkaXQgXHUwMDNlIHFhdi1cdTAwM2VoaWxpbWl0X21hc2spIHtcbitcdFx0XHROTF9TRVRfRVJSX01TR19NT0QoY2JzLVx1MDAzZWV4dGFjayxcbitcdFx0XHRcdFx0ICAgXCJoaWNyZWRpdCBvdXQgb2YgcmFuZ2VcIik7XG4rXHRcdFx0cmV0dXJuIC1FUkFOR0U7XG4rXHRcdH1cbitcbitcdFx0cmF0ZSA9IERJVl9ST1VORF9VUChjYnMtXHUwMDNlaWRsZXNsb3BlLCBxYXYtXHUwMDNlcmF0ZV91bml0KTtcbitcdFx0aWYgKHJhdGUgXHUwMDNlIHFhdi1cdTAwM2VyYXRlX21hc2spIHtcbitcdFx0XHROTF9TRVRfRVJSX01TR19NT0QoY2JzLVx1MDAzZWV4dGFjayxcbitcdFx0XHRcdFx0ICAgXCJpZGxlc2xvcGUgb3V0IG9mIHJhbmdlXCIpO1xuK1x0XHRcdHJldHVybiAtRVJBTkdFO1xuK1x0XHR9XG4rXHRcdC8qIGF2b2lkIHVzaW5nIHplcm8gcmF0ZSAqL1xuK1x0XHRyYXRlID0gbWF4X3QodTE2LCByYXRlLCAxKTtcbitcdH1cbitcbitcdG12ODhlNnh4eF9yZWdfbG9jayhjaGlwKTtcbitcbitcdGlmICghY2JzLVx1MDAzZWVuYWJsZSkge1xuK1x0XHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIDApO1xuK1x0XHRpZiAoZXJyKVxuK1x0XHRcdGdvdG8gdW5sb2NrO1xuK1xuK1x0XHRpZiAoIShjaGlwLVx1MDAzZXBvcnRzW3BvcnRdLmNic19hY3RpdmVfcXVldWVzIFx1MDAyNiB+cXVldWVfYml0KSkge1xuK1x0XHRcdGVyciA9IG12ODhlNnh4eF9wb3J0X3NldF9zY2hlZHVsaW5nX21vZGUoY2hpcCwgcG9ydCwgMCk7XG4rXHRcdFx0aWYgKGVycilcbitcdFx0XHRcdGdvdG8gdW5sb2NrO1xuK1x0XHR9XG4rXHRcdGNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMgXHUwMDI2PSB+cXVldWVfYml0O1xuK1x0XHRnb3RvIHVubG9jaztcbitcdH1cbitcbitcdGhpbGltaXQgPSBjYnMtXHUwMDNlaGljcmVkaXQgXHUwMDI2IHFhdi1cdTAwM2VoaWxpbWl0X21hc2s7XG4rXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgaGlsaW1pdF9yZWcsIGhpbGltaXQpO1xuK1x0aWYgKGVycilcbitcdFx0Z290byB1bmxvY2s7XG4rXG4rXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF9xYXZfd3JpdGUoY2hpcCwgcG9ydCwgcmF0ZV9yZWcsIHJhdGUpO1xuK1x0aWYgKGVycilcbitcdFx0Z290byB1bmxvY2s7XG4rXG4rXHRpZiAoIWNoaXAtXHUwMDNlcG9ydHNbcG9ydF0uY2JzX2FjdGl2ZV9xdWV1ZXMpIHtcbitcdFx0dTggc2NoZWRfbW9kZSA9IGNoaXAtXHUwMDNlaW5mby1cdTAwM2VudW1fdHhfcXVldWVzIC0gMTtcbitcbitcdFx0ZXJyID0gbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShjaGlwLCBwb3J0LFxuK1x0XHRcdFx0XHRcdFx0IHNjaGVkX21vZGUpO1xuK1x0XHRpZiAoZXJyKSB7XG4rXHRcdFx0bXY4OGU2eHh4X3BvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIHJhdGVfcmVnLCAwKTtcbitcdFx0XHRnb3RvIHVubG9jaztcbitcdFx0fVxuK1x0fVxuK1x0Y2hpcC1cdTAwM2Vwb3J0c1twb3J0XS5jYnNfYWN0aXZlX3F1ZXVlcyB8PSBxdWV1ZV9iaXQ7XG4rXG4rdW5sb2NrOlxuK1x0bXY4OGU2eHh4X3JlZ191bmxvY2soY2hpcCk7XG4rXG4rXHRyZXR1cm4gZXJyO1xuK31cbitcbitzdGF0aWMgaW50IG12ODhlNnh4eF9wb3J0X3NldHVwX3RjKHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4rXHRcdFx0XHQgICBlbnVtIHRjX3NldHVwX3R5cGUgdHlwZSwgdm9pZCAqdHlwZV9kYXRhKVxuK3tcbitcdHN3aXRjaCAodHlwZSkge1xuK1x0Y2FzZSBUQ19TRVRVUF9RRElTQ19DQlM6XG4rXHRcdHJldHVybiBtdjg4ZTZ4eHhfc2V0dXBfdGNfY2JzKGRzLCBwb3J0LCB0eXBlX2RhdGEpO1xuK1x0ZGVmYXVsdDpcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1x0fVxuK31cbitcbiBzdGF0aWMgY29uc3Qgc3RydWN0IHBoeWxpbmtfbWFjX29wcyBtdjg4ZTZ4eHhfcGh5bGlua19tYWNfb3BzID0ge1xuIFx0Lm1hY19zZWxlY3RfcGNzXHRcdD0gbXY4OGU2eHh4X21hY19zZWxlY3RfcGNzLFxuIFx0Lm1hY19wcmVwYXJlXHRcdD0gbXY4OGU2eHh4X21hY19wcmVwYXJlLFxuQEAgLTcyMzQsNiArNzQwOSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZHNhX3N3aXRjaF9vcHMgbXY4OGU2eHh4X3N3aXRjaF9vcHMgPSB7XG4gXHQucG9ydF9od3RzdGFtcF9nZXRcdD0gbXY4OGU2eHh4X3BvcnRfaHd0c3RhbXBfZ2V0LFxuIFx0LnBvcnRfdHh0c3RhbXBcdFx0PSBtdjg4ZTZ4eHhfcG9ydF90eHRzdGFtcCxcbiBcdC5wb3J0X3J4dHN0YW1wXHRcdD0gbXY4OGU2eHh4X3BvcnRfcnh0c3RhbXAsXG4rXHQucG9ydF9zZXR1cF90Y1x0XHQ9IG12ODhlNnh4eF9wb3J0X3NldHVwX3RjLFxuIFx0LmNsc19mbG93ZXJfYWRkXHRcdD0gbXY4OGU2eHh4X2Nsc19mbG93ZXJfYWRkLFxuIFx0LmNsc19mbG93ZXJfZGVsICAgICAgICAgPSBtdjg4ZTZ4eHhfY2xzX2Zsb3dlcl9kZWwsXG4gXHQuZ2V0X3RzX2luZm9cdFx0PSBtdjg4ZTZ4eHhfZ2V0X3RzX2luZm8sXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmggYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuaW5kZXggZTk2NmU3YzRjYzVkZS4uZDQyZDgzOWU2MzZiYyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5oXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuaFxuQEAgLTEyNSw2ICsxMjUsNyBAQCBlbnVtIG12ODhlNnh4eF9lZHNhX3N1cHBvcnQge1xuIH07XG4gXG4gc3RydWN0IG12ODhlNnh4eF9vcHM7XG4rc3RydWN0IG12ODhlNnh4eF9xYXZfaW5mbztcbiBcbiBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0ZW51bSBtdjg4ZTZ4eHhfZmFtaWx5IGZhbWlseTtcbkBAIC0xMzYsNiArMTM3LDcgQEAgc3RydWN0IG12ODhlNnh4eF9pbmZvIHtcbiBcdHVuc2lnbmVkIGludCBudW1faW50ZXJuYWxfcGh5cztcbiBcdHVuc2lnbmVkIGludCBudW1fZ3BpbztcbiBcdHVuc2lnbmVkIGludCBudW1fdGNhbV9lbnRyaWVzO1xuK1x0dW5zaWduZWQgaW50IG51bV90eF9xdWV1ZXM7XG4gXHR1bnNpZ25lZCBpbnQgbWF4X3ZpZDtcbiBcdHVuc2lnbmVkIGludCBtYXhfc2lkO1xuIFx0dW5zaWduZWQgaW50IHBvcnRfYmFzZV9hZGRyO1xuQEAgLTE3Niw2ICsxNzgsOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8ge1xuIFx0LyogU3VwcG9ydHMgUFRQICovXG4gXHRib29sIHB0cF9zdXBwb3J0O1xuIFxuK1x0LyogODAyLjFRYXYgY3JlZGl0IGJhc2VkIHNoYXBpbmcgKi9cbitcdGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8gKnFhdjtcbitcbiBcdC8qIEludGVybmFsIFBIWSBzdGFydCBpbmRleC4gMCBtZWFucyB0aGF0IGludGVybmFsIFBIWXMgcmFuZ2Ugc3RhcnRzIGF0XG4gXHQgKiBwb3J0IDAsIDEgbWVhbnMgaW50ZXJuYWwgUEhZcyByYW5nZSBzdGFydHMgYXQgcG9ydCAxLCBldGNcbiBcdCAqL1xuQEAgLTMwNCw2ICszMDksOSBAQCBzdHJ1Y3QgbXY4OGU2eHh4X3BvcnQge1xuIFxuIFx0LyogTWFjQXV0aCBCeXBhc3MgY29udHJvbCBmbGFnICovXG4gXHRib29sIG1hYjtcbitcbitcdC8qIFF1ZXVlcyB3aXRoIENCUyBjdXJyZW50bHkgZW5hYmxlZC4gKi9cbitcdHU4IGNic19hY3RpdmVfcXVldWVzO1xuIH07XG4gXG4gZW51bSBtdjg4ZTZ4eHhfcmVnaW9uX2lkIHtcbkBAIC02MDYsNiArNjE0LDggQEAgc3RydWN0IG12ODhlNnh4eF9vcHMge1xuIFx0XHRcdFx0ICAgc2l6ZV90IHNpemUpO1xuIFxuIFx0aW50ICgqcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZykoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG4rXHRpbnQgKCpwb3J0X3NldF9zY2hlZHVsaW5nX21vZGUpKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4rXHRcdFx0XHRcdHU4IG1vZGUpO1xuIFx0aW50ICgqcG9ydF9wYXVzZV9saW1pdCkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgdTggaW4sXG4gXHRcdFx0XHR1OCBvdXQpO1xuIFx0aW50ICgqcG9ydF9kaXNhYmxlX2xlYXJuX2xpbWl0KShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbkBAIC03NjMsNiArNzczLDEwIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfYXZiX29wcyB7XG4gXHRpbnQgKCp0YWlfcmVhZCkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkciwgdTE2ICpkYXRhLFxuIFx0XHRcdGludCBsZW4pO1xuIFx0aW50ICgqdGFpX3dyaXRlKShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBhZGRyLCB1MTYgZGF0YSk7XG4rXG4rXHQvKiBBY2Nlc3MgcG9ydC1zY29wZWQgODAyLjFRYXYgcmVnaXN0ZXJzICovXG4rXHRpbnQgKCpwb3J0X3Fhdl93cml0ZSkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50IGFkZHIsXG4rXHRcdFx0ICAgICAgdTE2IGRhdGEpO1xuIH07XG4gXG4gc3RydWN0IG12ODhlNnh4eF9wdHBfb3BzIHtcbkBAIC03OTgsNiArODEyLDEzIEBAIHN0cnVjdCBtdjg4ZTZ4eHhfdGNhbV9vcHMge1xuIFx0aW50ICgqZmx1c2hfdGNhbSkoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwKTtcbiB9O1xuIFxuK3N0cnVjdCBtdjg4ZTZ4eHhfcWF2X2luZm8ge1xuK1x0dTE2IHJhdGVfdW5pdDsgLyogaW4ga2JwcyAqL1xuK1x0dTE2IHJhdGVfbWFzazsgLyogUVByaSBSYXRlIHZhbGlkIGJpdHMgbWFzayAqL1xuK1x0dTE2IGhpbGltaXRfbWFzazsgLyogUVByaSBIaUxpbWl0IGJpdHMgbWFzayovXG4rXHR1OCBxdWV1ZV9tYXNrOyAvKiBzdXBwb3J0ZWQgcXVldWVzIGJpdG1hc2sgKi9cbit9O1xuK1xuIHN0YXRpYyBpbmxpbmUgYm9vbCBtdjg4ZTZ4eHhfaGFzX3N0dShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApXG4ge1xuIFx0cmV0dXJuIGNoaXAtXHUwMDNlaW5mby1cdTAwM2VtYXhfc2lkIFx1MDAzZSAwIFx1MDAyNlx1MDAyNlxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMi5oIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmhcbmluZGV4IGZmNWFkZjdjOWJjM2EuLmRmNTJmZjNhZGM4OGMgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2dsb2JhbDIuaFxuKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyLmhcbkBAIC0xODYsNiArMTg2LDkgQEBcbiAjZGVmaW5lIE1WODhFNjM1Ml9HMl9BVkJfQ01EX0JMT0NLX01BU0tcdFx0MHgwMGUwXG4gI2RlZmluZSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9BRERSX01BU0tcdFx0MHgwMDFmXG4gXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX1JBVEUocXVldWUpXHQoKChxdWV1ZSkgXHUwMDI2IDB4NykgXHUwMDNjXHUwMDNjIDEpXG4rI2RlZmluZSBNVjg4RTZYWFhfUE9SVF9RQVZfQ0ZHX0hJTElNSVQocXVldWUpXHQoKCgocXVldWUpIFx1MDAyNiAweDcpIFx1MDAzY1x1MDAzYyAxKSArIDEpXG4rXG4gLyogT2Zmc2V0IDB4MTc6IEFWQiBEYXRhIFJlZ2lzdGVyICovXG4gI2RlZmluZSBNVjg4RTYzNTJfRzJfQVZCX0RBVEFcdFx0MHgxN1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuY1xuaW5kZXggNjU3NzgzZTA0M2ZmMS4uNmI1NGUyNzVkMjFhYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvZ2xvYmFsMl9hdmIuY1xuKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9nbG9iYWwyX2F2Yi5jXG5AQCAtMTEwLDYgKzExMCwxNSBAQCBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9wdHBfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuIFx0cmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7XG4gfVxuIFxuK3N0YXRpYyBpbnQgbXY4OGU2MzUyX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4rXHRcdFx0XHRcdCAgIGludCBwb3J0LCBpbnQgYWRkciwgdTE2IGRhdGEpXG4re1xuK1x0dTE2IHdyaXRlb3AgPSBNVjg4RTYzNTJfRzJfQVZCX0NNRF9PUF9XUklURSB8IChwb3J0IFx1MDAzY1x1MDAzYyA4KSB8XG4rXHRcdCAgICAgIChNVjg4RTYzNTJfRzJfQVZCX0NNRF9CTE9DS19RQVYgXHUwMDNjXHUwMDNjIDUpIHwgYWRkcjtcbitcbitcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xuK31cbitcbiBzdGF0aWMgaW50IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkcixcbiBcdFx0XHRcdCAgICAgdTE2ICpkYXRhLCBpbnQgbGVuKVxuIHtcbkBAIC0xNDksNiArMTU4LDcgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjM1Ml9hdmJfb3BzID0ge1xuIFx0LnB0cF93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3dyaXRlLFxuIFx0LnRhaV9yZWFkXHRcdD0gbXY4OGU2MzUyX2cyX2F2Yl90YWlfcmVhZCxcbiBcdC50YWlfd3JpdGVcdFx0PSBtdjg4ZTYzNTJfZzJfYXZiX3RhaV93cml0ZSxcbitcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbiBcbiBzdGF0aWMgaW50IG12ODhlNjE2NV9nMl9hdmJfdGFpX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkcixcbkBAIC0xNzQsNiArMTg0LDcgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjE2NV9hdmJfb3BzID0ge1xuIFx0LnB0cF93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcHRwX3dyaXRlLFxuIFx0LnRhaV9yZWFkXHRcdD0gbXY4OGU2MTY1X2cyX2F2Yl90YWlfcmVhZCxcbiBcdC50YWlfd3JpdGVcdFx0PSBtdjg4ZTYxNjVfZzJfYXZiX3RhaV93cml0ZSxcbitcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM1Ml9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbiBcbiBzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9wdHBfcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG5AQCAtMTk3LDYgKzIwOCwxNSBAQCBzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9wdHBfd3JpdGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLFxuIFx0cmV0dXJuIG12ODhlNnh4eF9nMl9hdmJfd3JpdGUoY2hpcCwgd3JpdGVvcCwgZGF0YSk7XG4gfVxuIFxuK3N0YXRpYyBpbnQgbXY4OGU2MzkwX2cyX2F2Yl9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsXG4rXHRcdFx0XHRcdCAgIGludCBwb3J0LCBpbnQgYWRkciwgdTE2IGRhdGEpXG4re1xuK1x0dTE2IHdyaXRlb3AgPSBNVjg4RTYzOTBfRzJfQVZCX0NNRF9PUF9XUklURSB8IChwb3J0IFx1MDAzY1x1MDAzYyA4KSB8XG4rXHRcdCAgICAgIChNVjg4RTYzNTJfRzJfQVZCX0NNRF9CTE9DS19RQVYgXHUwMDNjXHUwMDNjIDUpIHwgYWRkcjtcbitcbitcdHJldHVybiBtdjg4ZTZ4eHhfZzJfYXZiX3dyaXRlKGNoaXAsIHdyaXRlb3AsIGRhdGEpO1xuK31cbitcbiBzdGF0aWMgaW50IG12ODhlNjM5MF9nMl9hdmJfcHRwX3JlYWQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgYWRkcixcbiBcdFx0XHRcdCAgICAgdTE2ICpkYXRhLCBpbnQgbGVuKVxuIHtcbkBAIC0yMzYsNCArMjU2LDUgQEAgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9hdmJfb3BzIG12ODhlNjM5MF9hdmJfb3BzID0ge1xuIFx0LnB0cF93cml0ZVx0XHQ9IG12ODhlNjM5MF9nMl9hdmJfcHRwX3dyaXRlLFxuIFx0LnRhaV9yZWFkXHRcdD0gbXY4OGU2MzkwX2cyX2F2Yl90YWlfcmVhZCxcbiBcdC50YWlfd3JpdGVcdFx0PSBtdjg4ZTYzOTBfZzJfYXZiX3RhaV93cml0ZSxcbitcdC5wb3J0X3Fhdl93cml0ZVx0XHQ9IG12ODhlNjM5MF9nMl9hdmJfcG9ydF9xYXZfd3JpdGUsXG4gfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXG5pbmRleCBlYTFmYWI3MTk2OGEwLi43NThiOGQ0MWY0ODUzIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmNcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jXG5AQCAtMTMyMyw2ICsxMzIzLDUxIEBAIGludCBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KVxuIFx0XHRcdFx0ICAgIDB4MDAwMSk7XG4gfVxuIFxuK2ludCBtdjg4ZTYzNTJfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4rXHRcdFx0XHQgICAgICAgdTggbW9kZSlcbit7XG4rXHR1MTYgcmVnO1xuK1x0aW50IGVycjtcbitcbitcdGlmIChtb2RlIFx1MDAzZSAzKVxuK1x0XHRyZXR1cm4gLUVJTlZBTDtcbitcbitcdGVyciA9IG12ODhlNnh4eF9wb3J0X3JlYWQoY2hpcCwgcG9ydCwgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMixcbitcdFx0XHRcdCAgXHUwMDI2cmVnKTtcbitcdGlmIChlcnIpXG4rXHRcdHJldHVybiBlcnI7XG4rXG4rXHRyZWcgXHUwMDI2PSB+TVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9NQVNLO1xuK1x0cmVnIHw9IG1vZGUgXHUwMDNjXHUwMDNjIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfU0hJRlQ7XG4rXG4rXHRyZXR1cm4gbXY4OGU2eHh4X3BvcnRfd3JpdGUoY2hpcCwgcG9ydCxcbitcdFx0XHRcdCAgICBNVjg4RTZYWFhfUE9SVF9FR1JFU1NfUkFURV9DVEwyLCByZWcpO1xuK31cbitcbitpbnQgbXY4OGU2MzkwX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuK1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpXG4re1xuK1x0dTE2IHJlZztcbitcdGludCBlcnI7XG4rXG4rXHRpZiAobW9kZSBcdTAwM2UgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFX01BU0spXG4rXHRcdHJldHVybiAtRUlOVkFMO1xuK1xuK1x0cmVnID0gTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURSB8XG4rXHQgICAgICAoTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFIFx1MDAzY1x1MDAzY1xuK1x0ICAgICAgIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9QVFJfU0hJRlQpIHxcbitcdCAgICAgIChtb2RlIFx1MDAyNiBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfU0NIRURVTEVfTUFTSyk7XG4rXG4rXHRlcnIgPSBtdjg4ZTZ4eHhfcG9ydF93cml0ZShjaGlwLCBwb3J0LCBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVEwsXG4rXHRcdFx0XHQgICByZWcpO1xuK1x0aWYgKGVycilcbitcdFx0cmV0dXJuIGVycjtcbitcbitcdHJldHVybiBtdjg4ZTZ4eHhfcG9ydF93YWl0X2JpdChjaGlwLCBwb3J0LCBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVEwsXG4rXHRcdFx0XHQgICAgICAgX19iZl9zaGYoTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURSlcbitcdFx0XHRcdCAgICAgICAsIDApO1xuK31cbitcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cbiBcbiBpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X2Fzc29jX3ZlY3RvcihzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuQEAgLTE3MjcsMyArMTc3MiwyMSBAQCBpbnQgbXY4OGU2MzkzeF9wb3J0X3NldF9wb2xpY3koc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiBcbiBcdHJldHVybiBtdjg4ZTYzOTN4X3BvcnRfcG9saWN5X3dyaXRlKGNoaXAsIHBvcnQsIHB0ciwgcmVnKTtcbiB9XG4rXG4raW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcbitcdFx0XHQgICAgIHUxNiBkYXRhKVxuK3tcbitcdGlmICghY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VhdmJfb3BzLVx1MDAzZXBvcnRfcWF2X3dyaXRlKVxuK1x0XHRyZXR1cm4gLUVPUE5PVFNVUFA7XG4rXG4rXHRyZXR1cm4gY2hpcC1cdTAwM2VpbmZvLVx1MDAzZW9wcy1cdTAwM2VhdmJfb3BzLVx1MDAzZXBvcnRfcWF2X3dyaXRlKGNoaXAsIHBvcnQsIGFkZHIsIGRhdGEpO1xuK31cbitcbitpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuK1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpXG4re1xuK1x0aWYgKCFjaGlwLVx1MDAzZWluZm8tXHUwMDNlb3BzLVx1MDAzZXBvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZSlcbitcdFx0cmV0dXJuIC1FT1BOT1RTVVBQO1xuK1xuK1x0cmV0dXJuIGNoaXAtXHUwMDNlaW5mby1cdTAwM2VvcHMtXHUwMDNlcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKGNoaXAsIHBvcnQsIG1vZGUpO1xuK31cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oXG5pbmRleCA1YjZjZGU5Zjc0MDZmLi5hMzgwZjM1NmViODNkIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmhcbisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5oXG5AQCAtMjQxLDYgKzI0MSwxOCBAQFxuIFxuIC8qIE9mZnNldCAweDBBOiBFZ3Jlc3MgUmF0ZSBDb250cm9sIDIgKi9cbiAjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJcdFx0MHgwYVxuKyNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfRUdSRVNTX1JBVEVfQ1RMMl9TQ0hFRFVMRV9NQVNLXHQweDMwMDBcbisjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0VHUkVTU19SQVRFX0NUTDJfU0NIRURVTEVfU0hJRlRcdDEyXG4rXG4rLyogT2Zmc2V0IDB4MUM6IFBvcnQgUXVldWUgQ29udHJvbCAqL1xuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMXHRcdFx0MHgxY1xuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1VQREFURVx0XHRcdDB4ODAwMFxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1BUUl9NQVNLXHRcdDB4N2YwMFxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1BUUl9TSElGVFx0XHQ4XG4rI2RlZmluZSBNVjg4RTYzOTBfUE9SVF9RVUVVRV9DVExfREFUQV9NQVNLXHRcdDB4MDBmZlxuKyNkZWZpbmUgTVY4OEU2MzkwX1BPUlRfUVVFVUVfQ1RMX1NDSEVEVUxFXHRcdDB4MDBcbisjZGVmaW5lIE1WODhFNjM5MF9QT1JUX1FVRVVFX0NUTF9TQ0hFRFVMRV9NQVNLXHRcdDB4MDdcbitcbiBcbiAvKiBPZmZzZXQgMHgwQjogUG9ydCBBc3NvY2lhdGlvbiBWZWN0b3IgKi9cbiAjZGVmaW5lIE1WODhFNlhYWF9QT1JUX0FTU09DX1ZFQ1RPUlx0XHRcdDB4MGJcbkBAIC01NjEsNiArNTczLDEwIEBAIGludCBtdjg4ZTYxNjVfcG9ydF9zZXRfanVtYm9fc2l6ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuIFx0XHRcdFx0ICBzaXplX3Qgc2l6ZSk7XG4gaW50IG12ODhlNjA5NV9wb3J0X2VncmVzc19yYXRlX2xpbWl0aW5nKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpO1xuIGludCBtdjg4ZTYwOTdfcG9ydF9lZ3Jlc3NfcmF0ZV9saW1pdGluZyhzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0KTtcbitpbnQgbXY4OGU2MzUyX3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuK1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpO1xuK2ludCBtdjg4ZTYzOTBfcG9ydF9zZXRfc2NoZWR1bGluZ19tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsXG4rXHRcdFx0XHQgICAgICAgdTggbW9kZSk7XG4gaW50IG12ODhlNnh4eF9wb3J0X3NldF9hc3NvY192ZWN0b3Ioc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCxcbiBcdFx0XHRcdCAgICB1MTYgcGF2KTtcbiBpbnQgbXY4OGU2MDk3X3BvcnRfcGF1c2VfbGltaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgdTggaW4sXG5AQCAtNjA1LDUgKzYyMSw5IEBAIGludCBtdjg4ZTZ4eHhfcG9ydF9oaWRkZW5fcmVhZChzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBibG9jaywgaW50IHBvcnQsXG4gXHRcdFx0ICAgICAgIGludCByZWcsIHUxNiAqdmFsKTtcbiBcbiBpbnQgbXY4OGU2eHh4X3BvcnRfZW5hYmxlX3RjYW0oc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCk7XG4raW50IG12ODhlNnh4eF9wb3J0X3Fhdl93cml0ZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LCBpbnQgYWRkcixcbitcdFx0XHQgICAgIHUxNiBkYXRhKTtcbitpbnQgbXY4OGU2eHh4X3BvcnRfc2V0X3NjaGVkdWxpbmdfbW9kZShzdHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LFxuK1x0XHRcdFx0ICAgICAgIHU4IG1vZGUpO1xuIFxuICNlbmRpZiAvKiBfTVY4OEU2WFhYX1BPUlRfSCAqL1xuZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3BrdF9zY2hlZC5oIGIvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmhcbmluZGV4IDE4YTQxOWNkOWQ5NDkuLmQzNWM4NzAwNGMyNzkgMTAwNjQ0XG4tLS0gYS9pbmNsdWRlL25ldC9wa3Rfc2NoZWQuaFxuKysrIGIvaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmhcbkBAIC0xNTAsNiArMTUwLDcgQEAgc3RydWN0IHRjX2Nic19xb3B0X29mZmxvYWQge1xuIFx0czMyIGxvY3JlZGl0O1xuIFx0czMyIGlkbGVzbG9wZTtcbiBcdHMzMiBzZW5kc2xvcGU7XG4rXHRzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2s7XG4gfTtcbiBcbiBzdHJ1Y3QgdGNfZXRmX3FvcHRfb2ZmbG9hZCB7XG5kaWZmIC0tZ2l0IGEvbmV0L2RzYS90YWdfZHNhLmMgYi9uZXQvZHNhL3RhZ19kc2EuY1xuaW5kZXggZDVmZmVlMzVmYmI1My4uMmJiNzFjZDM0M2U3OSAxMDA2NDRcbi0tLSBhL25ldC9kc2EvdGFnX2RzYS5jXG4rKysgYi9uZXQvZHNhL3RhZ19kc2EuY1xuQEAgLTE3OSw4ICsxNzksMTcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpkc2FfeG1pdF9sbChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0XHRcdGRzYV9oZWFkZXJbMl0gXHUwMDI2PSB+MHgxMDtcbiBcdFx0fVxuIFx0fSBlbHNlIHtcbitcdFx0dTE2IHF1ZXVlID0gc2tiX2dldF9xdWV1ZV9tYXBwaW5nKHNrYikgXHUwMDI2IDB4NztcbiBcdFx0dTE2IHZpZDtcbiBcbitcdFx0LyogVGhlIFBSSSBmaWVsZCBpcyAzIGJpdHMuIEFjY29yZGluZyB0byB0aGUgZG9jdW1lbnRhdGlvbiB0aGVcbitcdFx0ICogMiBoaWdoZXN0IGJpdHMgc3BlY2lmeSB0aGUgZWdyZXNzIHF1ZXVlIGluIEZyb21fQ1BVIERTQVxuK1x0XHQgKiB0YWdnZWQgZnJhbWVzLiBPbiBkZXZpY2VzIHdpdGggOCBxdWV1ZXMgaXQncyBwb3NzaWJsZSB0b1xuK1x0XHQgKiBzZW5kIHRvIHRoZSA4IHF1ZXVlcywgd2hpY2ggbWVhbnMgdGhlIDMgYml0cyBhcmUgdXNlZC5cbitcdFx0ICovXG4rXHRcdGlmIChkcC1cdTAwM2Vkcy1cdTAwM2VudW1fdHhfcXVldWVzID09IDQpXG4rXHRcdFx0cXVldWUgXHUwMDNjXHUwMDNjPSAxO1xuK1xuIFx0XHR2aWQgPSBicl9kZXYgPyBNVjg4RTZYWFhfVklEX0JSSURHRUQgOiBNVjg4RTZYWFhfVklEX1NUQU5EQUxPTkU7XG4gXG4gXHRcdHNrYl9wdXNoKHNrYiwgRFNBX0hMRU4gKyBleHRyYSk7XG5AQCAtMTkxLDcgKzIwMCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqZHNhX3htaXRfbGwoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcbiBcdFx0ZHNhX2hlYWRlclswXSA9IChjbWQgXHUwMDNjXHUwMDNjIDYpIHwgdGFnX2RldjtcbiBcdFx0ZHNhX2hlYWRlclsxXSA9IHRhZ19wb3J0IFx1MDAzY1x1MDAzYyAzO1xuLVx0XHRkc2FfaGVhZGVyWzJdID0gdmlkIFx1MDAzZVx1MDAzZSA4O1xuK1x0XHRkc2FfaGVhZGVyWzJdID0gKHF1ZXVlIFx1MDAzY1x1MDAzYyA1KSB8IHZpZCBcdTAwM2VcdTAwM2UgODtcbiBcdFx0ZHNhX2hlYWRlclszXSA9IHZpZCBcdTAwMjYgMHhmZjtcbiBcdH1cbiBcbmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX2Nicy5jIGIvbmV0L3NjaGVkL3NjaF9jYnMuY1xuaW5kZXggMWM5MzQ2OWM1NmUzZC4uODdjMmVkYTEwOGM4YyAxMDA2NDRcbi0tLSBhL25ldC9zY2hlZC9zY2hfY2JzLmNcbisrKyBiL25ldC9zY2hlZC9zY2hfY2JzLmNcbkBAIC0zMDcsMTAgKzMwNywxMiBAQCBzdGF0aWMgaW50IGNic19lbmFibGVfb2ZmbG9hZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3QgY2JzX3NjaGVkX2RhdGEgKnEsXG4gXHRjYnMubG9jcmVkaXQgPSBvcHQtXHUwMDNlbG9jcmVkaXQ7XG4gXHRjYnMuaWRsZXNsb3BlID0gb3B0LVx1MDAzZWlkbGVzbG9wZTtcbiBcdGNicy5zZW5kc2xvcGUgPSBvcHQtXHUwMDNlc2VuZHNsb3BlO1xuK1x0Y2JzLmV4dGFjayA9IGV4dGFjaztcbiBcbiBcdGVyciA9IG9wcy1cdTAwM2VuZG9fc2V0dXBfdGMoZGV2LCBUQ19TRVRVUF9RRElTQ19DQlMsIFx1MDAyNmNicyk7XG4gXHRpZiAoZXJyIFx1MDAzYyAwKSB7XG4tXHRcdE5MX1NFVF9FUlJfTVNHKGV4dGFjaywgXCJTcGVjaWZpZWQgZGV2aWNlIGZhaWxlZCB0byBzZXR1cCBjYnMgaGFyZHdhcmUgb2ZmbG9hZFwiKTtcbitcdFx0TkxfU0VUX0VSUl9NU0dfV0VBSyhleHRhY2ssXG4rXHRcdFx0XHQgICAgXCJTcGVjaWZpZWQgZGV2aWNlIGZhaWxlZCB0byBzZXR1cCBjYnMgaGFyZHdhcmUgb2ZmbG9hZFwiKTtcbiBcdFx0cmV0dXJuIGVycjtcbiBcdH1cbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjM3LjU0MDIzOTExMVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg0OTE4NTM3MzMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgTGludXggS2VybmVsIFBhdGNoIGZvciBDQlMgT2ZmbG9hZGluZyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IGEga2VybmVsIHBhdGNoIGhlcmUuIEl0J3MgbWFraW5nIGZ1bmN0aW9uYWwgY2hhbmdlcywgc3BlY2lmaWNhbGx5IGFkZGluZyBvZmZsb2FkaW5nIHN1cHBvcnQgZm9yIDgwMi4xUWF2IENyZWRpdCBCYXNlZCBTaGFwZXIgKENCUykgdG8gdGhlIE1hcnZlbGwgbXY4OGU2eHh4IERTQSBzd2l0Y2ggZHJpdmVyLiBUaGUgZmlsZXMgbW9kaWZpZWQgZ2l2ZSBtZSBhIGNsZWFyIHBpY3R1cmU6IGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2AgLSBhIGJ1bmNoIG9mIHRoZSBjb3JlIGRyaXZlciBmaWxlcyB0aGVyZSAtIHRoZW4sIGltcG9ydGFudGx5LCBgaW5jbHVkZS9uZXQvcGt0X3NjaGVkLmhgLCBhbmQgYG5ldC9kc2EvdGFnX2RzYS5jYCBhbmQgYG5ldC9zY2hlZC9zY2hfY2JzLmNgLiBUaGlzIGlzIHdoZXJlIGl0IGdldHMgaW50ZXJlc3RpbmcsIGFzIGl0IGlzIG1vZGlmeWluZyB0aGUgRFNBIHRhZyBhbmQgQ0JTIGNvZGUgZm9yIEZyb21fQ1BVIGZyYW1lcy5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGNhbiBJIGV2ZW4gKnRlc3QqIHRoaXMgZWZmZWN0aXZlbHk/IFRoZSBgbXY4OGU2eHh4YCBkcml2ZXIgaXMgZm9yIE1hcnZlbGwgODhFNnh4eCBFdGhlcm5ldCBzd2l0Y2hlcywgc28gd2UncmUgdGFsa2luZyBhYm91dCBhIGhhcmR3YXJlIGRlcGVuZGVuY3kg4oCTIHRoZXNlIERTQSBkcml2ZXJzIGFyZSB1c3VhbGx5IGluIGVtYmVkZGVkIHN5c3RlbXMgd2l0aCBwaHlzaWNhbCBzd2l0Y2ggY2hpcHMuIEkgbmVlZCB0byBiZSBhYmxlIHRvIHJlcGxpY2F0ZSB0aGUgZnVuY3Rpb25hbGl0eSB0aGF0IHRoZSBwYXRjaCBpbnRyb2R1Y2VzLCB3aGljaCBpcyBub3cgQ0JTIG9mZmxvYWRpbmcuXG5cbkNhbiBJIGdldCB0aGlzIHJ1bm5pbmcgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudD8gUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhlIE1hcnZlbGwgODhFNnh4eCBkaXJlY3RseS4gSG93ZXZlciwgdGhlIHBhdGNoIGFsc28gdG91Y2hlcyB0aGUgY29yZSBuZXR3b3JrIHNjaGVkdWxpbmcgKGBuZXQvc2NoZWQvc2NoX2Nicy5jYCkgYW5kIHRoZSBEU0EgdGFnZ2luZyAoYG5ldC9kc2EvdGFnX2RzYS5jYCkgbGF5ZXJzLiBUaGUgQ0JTIHFkaXNjIGl0c2VsZiBpcyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gTm93LCBgdGFnX2RzYS5jYCBpcyB0aGUgRFNBIHRhZ2dpbmcgcHJvdG9jb2wuIEkgbWF5IGJlIGFibGUgdG8gaW5zdGFudGlhdGUgYSBkdW1teSBEU0Egc3dpdGNoLCBvciBldmVuIGEgc29mdHdhcmUgRFNBIHN3aXRjaCB0byBtYWtlIHRoZSBjb2RlIHJlYWNoYWJsZS5cblxuQWgsIHdhaXQgYSBtaW51dGUsIHdhc24ndCB0aGVyZSBzb21ldGhpbmcgYWJvdXQgYGRzYV9sb29wYD8gVGhhdCdzIHJpZ2h0LCBgZHNhX2xvb3BgIGlzIGEgbW9jayBEU0EgZHJpdmVyLCB1c2VkIGZvciB0ZXN0aW5nISBMZXQgbWUgZG91YmxlIGNoZWNrIGlmIGBkc2FfbG9vcGAgdXNlcyBgdGFnX2RzYS5jYC4gSWYgaXQgZG9lcywgSSBjYW4gcHJvYmFibHkgZ2V0IGEgZ29vZCB0ZXN0IGVudmlyb25tZW50IHNldCB1cCB3aXRoIHRoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE2NjQzLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTEzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6NDYuMDMyMDk1NjY0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2NzY2Mjg1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0YWdfZHNhXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDo0Ni4wNzg4NjkwOTlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDk1MjM1NTIzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUuIE15IGZpcnN0IHRob3VnaHQgaXM6ICoqRGVjb2RpbmcgdGhlIGBkc2FfbG9vcGAgVGFnIFByb3RvY29sKipcblxuSSBuZWVkIHRvIHF1aWNrbHkgZmlndXJlIG91dCBob3cgdGhlIGBkc2FfbG9vcGAgdGFnIHByb3RvY29sIHdvcmtzLiBVbmRlcnN0YW5kaW5nIGl0cyBpbm5lciB3b3JraW5ncyBpcyBjcnVjaWFsIGZvciBbKippbnNlcnQgdXNlcidzIHNwZWNpZmljIGZpZWxkIGhlcmUqKiAtIGUuZy4sIG9wdGltaXppbmcgcGVyZm9ybWFuY2UsIGRlYnVnZ2luZyByZWxhdGVkIHN5c3RlbXMsIGVuc3VyaW5nIGNvbXBhdGliaWxpdHldLiBTbywgSSdsbCBzdGFydCBieSBjaGVja2luZyBpdHMgc3BlY2lmaWMgdGFnIHByb3RvY29sIGltcGxlbWVudGF0aW9uLiBXaGVyZSBkbyBJIGZpbmQgdGhhdCBpbmZvcm1hdGlvbj8gTGV0IG1lIGxvb2sgYXQgdGhlIGRvY3VtZW50YXRpb24sIHRoZSBjb2RlIGl0c2VsZiwgb3IgcmVsYXRlZCBzcGVjaWZpY2F0aW9ucyB0byBkZXRlcm1pbmUgaXRzIGRlc2lnbiBhbmQgdXNhZ2UuIFRoaXMgaXMgc3RlcCBvbmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3NjU0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMTFUMTI6MDA6NDkuMTc0MTA2NjAyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUzMDQ5MDk0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkRTQV9UQUdfUFJPVE9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM9MTI1PXN0YXRpYyBlbnVtIGRzYV90YWdfcHJvdG9jb2wgZHNhX2xvb3BfZ2V0X3Byb3RvY29sKHN0cnVjdCBkc2Ffc3dpdGNoICpkcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9kc2FfbG9vcC5jLTEzMC1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYzoxMzE6XFx0cmV0dXJuIERTQV9UQUdfUFJPVE9fTk9ORTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy0xMzItfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDo0OS4yMjcxNjIzNjZaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NzQ1ODE0NzIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRFNBIExvb3AgYW5kIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBgZHNhX2xvb3BgIGFuZCB0aGUgdXNlIG9mIGBEU0FfVEFHX1BST1RPX05PTkVgLiBUaGF0J3MgdGhlIHN0YXJ0aW5nIHBvaW50LiBJIHJlY2FsbCB0aGVyZSdzIGEgcmVsYXRlZCBgZHNhX2xvb3BfYmRpbmZvYCBzdHJ1Y3QsIGJ1dCB0aGF0J3Mgbm90IHJlbGV2YW50IGhlcmU7IGBkc2FfbG9vcGAgaXRzZWxmIGlzIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIEkgdGhlbiBsb29rZWQgb3ZlciBhdCBgbmV0L3NjaGVkL3NjaF9jYnMuY2AsIGJ1dCB0aGUgY2hhbmdlIHRoZXJlIHNlZW1zIGxpbWl0ZWQsIGp1c3QgcHJvcGFnYXRpbmcgdGhlIGBleHRhY2tgIGRvd24gdG8gdGhlIGRyaXZlci5cblxuVGhlIGNvcmUgbG9naWMsIGFzIEkgc3VzcGVjdGVkLCByZXNpZGVzIGluIGBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2AsIGEgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyLiBUaGUgcXVlc3Rpb24gbm93IGlzOiBjYW4gSSB0cmlnZ2VyIHRoaXMgY29kZSBwYXRoIHdpdGhpbiBRRU1VPyBBbmQgdGhlIGFuc3dlciwgYXMgSSBrbm93IGl0LCBpcyBhIGNsZWFyIG5vLiBJdCByZWxpZXMgb24gcGh5c2ljYWwgaGFyZHdhcmUsIHNwZWNpZmljYWxseSBhbiBNRElPIGJ1cyBjb25uZWN0ZWQgdG8gYSBzcGVjaWZpYyBzd2l0Y2ggY2hpcC4gSXQncyB0aGF0IGRpcmVjdCBoYXJkd2FyZSBpbnRlcmFjdGlvbiB0aGF0IG1ha2VzIGl0IHByb2JsZW1hdGljLlxuXG5TbywgdGhlIG5leHQgcXVlc3Rpb24gaXMgY2FuIEkgZW11bGF0ZSB0aGUgTURJTyBidXMgYW5kIHN3aXRjaCBjaGlwPyAgTmF0aXZlbHksIHdpdGhvdXQgb3V0LW9mLXRyZWUgcGF0Y2hlcywgdGhlIGFuc3dlciBpcyBzdGlsbCBubyB3aXRoaW4gc3RhbmRhcmQgUUVNVS4gSG93ZXZlciwgY291bGQgc3l6a2FsbGVyIGJlIHVzZWQgdG8gZnV6eiBpdCBieSBtb2NraW5nIE1ESU8gZGV2aWNlcyBvciBieSBpbnN0YW50aWF0aW5nIGl0IHRocm91Z2ggYSBzb2Z0d2FyZSBpbnRlcmZhY2U/IEkgdGhvdWdodCBzeXprYWxsZXIgaGFkIHNvbWUgc3VwcG9ydCBmb3IgTURJTy9QSFkgZnV6emluZywgYnV0IG5vLCBub3QgcmVhbGx5LiBNRElPIGRldmljZXMgYXJlIHR5cGljYWxseSBwcm9iZWQgdmlhIHRoZSBkZXZpY2UgdHJlZSBvciBwbGF0Zm9ybSBkYXRhLCBhIG1ldGhvZCBvZiBoYXJkd2FyZSBhYnN0cmFjdGlvbiwgd2hpY2ggYWdhaW4gbWFrZXMgZW11bGF0aW9uIGRpZmZpY3VsdC5cblxuSSdtIG5vdyByZWNvbnNpZGVyaW5nIGlmIGZ1enppbmcgdGhlIHBhdGNoIGlzIGV2ZW4gd29ydGggdGhlIGVmZm9ydC4gVGhlIGNoYW5nZXMgaW4gYG5ldC9kc2EvdGFnX2RzYS5jYCBhcmUgd2l0aGluIGBkc2FfeG1pdF9sbGAuICBUaGUgcXVlc3Rpb24gaXM6IGlzIGB0YWdfZHNhLmNgIHVzZWQgYnkgKmFueSogb3RoZXIgZHJpdmVyIHRoYXQncyBlbXVsYXRhYmxlPyBUaGF0IGlzIHRoZSByZWFsIHRlc3Qgb2Ygd2hldGhlciB0aGlzIGVmZm9ydCBpcyB3b3J0aCBpdCBvciBub3QuIEknbGwgbmVlZCB0byByZXNlYXJjaCB0aGF0IGZ1cnRoZXIgdG8gZGV0ZXJtaW5lIHRoZSBwb3RlbnRpYWwgcmVhY2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE3OTU1LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzExLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAwOjU2Ljk3Mjk3OTgwN1oiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTIxNjI3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEU0FfVEFHX1BST1RPX0RTQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTMyNjM9c3RhdGljIGludCBtdjg4ZTZ4eHhfc2V0dXBfcG9ydF9tb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjcxLVxcdC8qIFNldHVwIENQVSBwb3J0IG1vZGUgZGVwZW5kaW5nIG9uIGl0cyBzdXBwb3J0ZWQgdGFnIGZvcm1hdCAqL1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjMyNzI6XFx0aWYgKGNoaXAtXFx1MDAzZXRhZ19wcm90b2NvbCA9PSBEU0FfVEFHX1BST1RPX0RTQSlcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy0zMjczLVxcdFxcdHJldHVybiBtdjg4ZTZ4eHhfc2V0X3BvcnRfbW9kZV9kc2EoY2hpcCwgcG9ydCk7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYz02NzI0PXN0YXRpYyBpbnQgbXY4OGU2eHh4X2NoYW5nZV90YWdfcHJvdG9jb2woc3RydWN0IGRzYV9zd2l0Y2ggKmRzLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc0My1cXHRcXHRicmVhaztcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo2NzQ0OlxcdGNhc2UgRFNBX1RBR19QUk9UT19EU0E6XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNjc0NS1cXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc0ODk9c3RhdGljIGludCBtdjg4ZTZ4eHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU1Ni1cXHRlbHNlXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6NzU1NzpcXHRcXHRjaGlwLVxcdTAwM2V0YWdfcHJvdG9jb2wgPSBEU0FfVEFHX1BST1RPX0RTQTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTU4LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMDo1Ny4wMjgyMDQ1MTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NjAzOTAwMDUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgRFNBIFRhZyBQcm90b2NvbCBmb3IgVmlydHVhbGl6YXRpb24qKlxuXG5Pa2F5LCBzbyBpdCBsb29rcyBsaWtlIHRoaXMgYERTQV9UQUdfUFJPVE9fRFNBYCBpcyBleGNsdXNpdmVseSB0aWVkIHRvIHRoZSBgbXY4OGU2eHh4YCBkcml2ZXIsIGludGVyZXN0aW5nLiBOb3cgdGhhdCBJIHRoaW5rIGFib3V0IGl0LCBgdGFnX2RzYS5jYCBpcywgd2VsbCwgaXQncyB0aGUgRFNBIHRhZyBwcm90b2NvbCBpbXBsZW1lbnRhdGlvbiBpdHNlbGYuIEdpdmVuIHRoYXQgYG12ODhlNnh4eGAgaXMgYSBoYXJkd2FyZSBkcml2ZXIsIGFuZCB0aGVyZWZvcmUgYSBwYWluIHRvIGVtdWxhdGUsIGFuZCBzaW5jZSB0aGUgbW9kaWZpY2F0aW9ucyBpbiBgdGFnX2RzYS5jYCBzZWVtIHRhaWxvci1tYWRlIGZvciBpdCAob3IgYXQgbGVhc3Qgc29sZWx5IHVzZWQgYnkgaXQgY3VycmVudGx5KSwgdGhlcmXigJlzIHJlYWxseSBubyBwcmFjdGljYWwgd2F5IHRvIHRvdWNoIHRoZSBjb3JlIG9mIHRoZXNlIGNoYW5nZXMgaW4gYW55IHZpcnR1YWxpemVkIHNldHVwLiBUaGUgd2hvbGUgdGhpbmcgaXMgaGFyZHdhcmUtc3BlY2lmaWMuIEkgZ3Vlc3MgaXTigJlzIHN0aWxsIHdvcnRoIGEgcXVpY2sgZG91YmxlLWNoZWNrLCB0aG91Z2gsIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlIHRoYXQgYHRhZ19kc2EuY2AgKmlzbid0KiBzbmVha2luZyBpbiBzb21ld2hlcmUgZWxzZS4gQWx3YXlzIGdvb2QgdG8gcnVsZSBvdXQgdGhlIHVuZXhwZWN0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5MjAxLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjAxLjYzMjEwNjU4NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTc2MjA1NDk3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJEU0FfVEFHX1BST1RPX0RTQVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9MzI2Mz1zdGF0aWMgaW50IG12ODhlNnh4eF9zZXR1cF9wb3J0X21vZGUoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNzEtXFx0LyogU2V0dXAgQ1BVIHBvcnQgbW9kZSBkZXBlbmRpbmcgb24gaXRzIHN1cHBvcnRlZCB0YWcgZm9ybWF0ICovXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM6MzI3MjpcXHRpZiAoY2hpcC1cXHUwMDNldGFnX3Byb3RvY29sID09IERTQV9UQUdfUFJPVE9fRFNBKVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTMyNzMtXFx0XFx0cmV0dXJuIG12ODhlNnh4eF9zZXRfcG9ydF9tb2RlX2RzYShjaGlwLCBwb3J0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTY3MjQ9c3RhdGljIGludCBtdjg4ZTZ4eHhfY2hhbmdlX3RhZ19wcm90b2NvbChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQzLVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjY3NDQ6XFx0Y2FzZSBEU0FfVEFHX1BST1RPX0RTQTpcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy02NzQ1LVxcdFxcdGJyZWFrO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzQ4OT1zdGF0aWMgaW50IG12ODhlNnh4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTU2LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTU3OlxcdFxcdGNoaXAtXFx1MDAzZXRhZ19wcm90b2NvbCA9IERTQV9UQUdfUFJPVE9fRFNBO1xcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jLTc1NTgtXFxuLS1cXG5pbmNsdWRlL25ldC9kc2EuaD0yNj1zdHJ1Y3QgdGNfYWN0aW9uO1xcbi0tXFxuaW5jbHVkZS9uZXQvZHNhLmgtMzAtI2RlZmluZSBEU0FfVEFHX1BST1RPX0JSQ01fUFJFUEVORF9WQUxVRVxcdDJcXG5pbmNsdWRlL25ldC9kc2EuaDozMTojZGVmaW5lIERTQV9UQUdfUFJPVE9fRFNBX1ZBTFVFXFx0XFx0XFx0M1xcbmluY2x1ZGUvbmV0L2RzYS5oLTMyLSNkZWZpbmUgRFNBX1RBR19QUk9UT19FRFNBX1ZBTFVFXFx0XFx0NFxcbi0tXFxuaW5jbHVkZS9uZXQvZHNhLmg9NjQ9ZW51bSBkc2FfdGFnX3Byb3RvY29sIHtcXG4tLVxcbmluY2x1ZGUvbmV0L2RzYS5oLTY5LVxcdERTQV9UQUdfUFJPVE9fQlJDTV9QUkVQRU5EXFx0PSBEU0FfVEFHX1BST1RPX0JSQ01fUFJFUEVORF9WQUxVRSxcXG5pbmNsdWRlL25ldC9kc2EuaDo3MDpcXHREU0FfVEFHX1BST1RPX0RTQVxcdFxcdD0gRFNBX1RBR19QUk9UT19EU0FfVkFMVUUsXFxuaW5jbHVkZS9uZXQvZHNhLmgtNzEtXFx0RFNBX1RBR19QUk9UT19FRFNBXFx0XFx0PSBEU0FfVEFHX1BST1RPX0VEU0FfVkFMVUUsXFxuLS1cXG5uZXQvZHNhL3RhZ19kc2EuYz0zNjA9c3RhdGljIGNvbnN0IHN0cnVjdCBkc2FfZGV2aWNlX29wcyBkc2FfbmV0ZGV2X29wcyA9IHtcXG5uZXQvZHNhL3RhZ19kc2EuYy0zNjEtXFx0Lm5hbWVcXHQgID0gRFNBX05BTUUsXFxubmV0L2RzYS90YWdfZHNhLmM6MzYyOlxcdC5wcm90b1xcdCAgPSBEU0FfVEFHX1BST1RPX0RTQSxcXG5uZXQvZHNhL3RhZ19kc2EuYy0zNjMtXFx0LnhtaXRcXHQgID0gZHNhX3htaXQsXFxuLS1cXG5uZXQvZHNhL3RhZ19kc2EuYz0zNjg9RFNBX1RBR19EUklWRVIoZHNhX25ldGRldl9vcHMpO1xcbm5ldC9kc2EvdGFnX2RzYS5jOjM2OTpNT0RVTEVfQUxJQVNfRFNBX1RBR19EUklWRVIoRFNBX1RBR19QUk9UT19EU0EsIERTQV9OQU1FKTtcXG5uZXQvZHNhL3RhZ19kc2EuYy0zNzAtI2VuZGlmXFx0LyogQ09ORklHX05FVF9EU0FfVEFHX0RTQSAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMTowMy4zOTQxNjgyODhaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NzU5OTM5MzE1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQYXRjaCdzIEZ1enppbmcgV29ydGhpbmVzcyoqXG5cbk9rYXksIHNvIEkndmUgbG9va2VkIGF0IHRoaXMgcGF0Y2guIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBEU0FfVEFHX1BST1RPX0RTQWAgaXMgb25seSB1c2VkIHdpdGhpbiB0aGUgYG12ODhlNnh4eGAgZHJpdmVyLCBhbmQgdGhhdCdzIGEga2V5IG9ic2VydmF0aW9uLiBUaGVuIEkgc2VlIHRoZSBjaGFuZ2UgaW4gYG5ldC9zY2hlZC9zY2hfY2JzLmNgLiBIbW0sIHNlZW1zIHF1aXRlIHNtYWxsLCBqdXN0IHBhc3NpbmcgYGV4dGFja2AgYW5kIHN3aXRjaGluZyB0byBgTkxfU0VUX0VSUl9NU0dfV0VBS2AuIFRoZXJlIGlzbid0IGFueSBuZXcgbG9naWMgaGVyZSB0aGF0IHNjcmVhbXMgb3V0IGZvciBmdXp6aW5nIGF0dGVudGlvbi5cblxuTm93LCBsZXQncyB6b29tIG91dC4gVGhlIGJ1bGsgb2YgdGhlIHBhdGNoIGxvb2tzIHRvIGJlIGNvbnRhaW5lZCB3aXRoaW4gYGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvYCBhbmQgYG5ldC9kc2EvdGFnX2RzYS5jYC4gVGhlc2UgYXJlLCBhcyBmYXIgYXMgSSBjYW4gdGVsbCwgZGVhbGluZyB3aXRoIGhhcmR3YXJlLCBzcGVjaWZpY2FsbHkgTWFydmVsbCBzd2l0Y2ggaGFyZHdhcmUuIFRoYXQncyBhIGh1Z2UgY2x1ZSByaWdodCB0aGVyZS4gR2l2ZW4gdGhhdCBJJ20gd29ya2luZyBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50IC0gc29tZXRoaW5nIGxpa2UgUUVNVSAtIHRoaXMgaGFyZHdhcmUgaXMgaW5hY2Nlc3NpYmxlLiBUaGUgcGF0Y2ggY2FuJ3QgYmUgcmVhY2hlZC5cblxuU28sIHRha2luZyBhbGwgdGhpcyBpbnRvIGFjY291bnQsIEknbSBjb25jbHVkaW5nIHRoYXQgdGhpcyBwYXRjaCBpc24ndCBzb21ldGhpbmcgSSBuZWVkIHRvIGludmVzdCB0aW1lIGluIGZ1enppbmcuIEl0J3Mgc2ltcGx5IG5vdCByZWxldmFudCB3aXRoaW4gdGhlIGNvbnN0cmFpbnRzIG9mIG15IGN1cnJlbnQgc2V0dXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwNDc4LCJPdXRwdXRUb2tlbnMiOjE1MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM4NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0xMVQxMjowMToxMC45OTM1NjM5MzVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTk3MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBwcmltYXJpbHkgYWRkcyA4MDIuMVFhdiBDQlMgb2ZmbG9hZGluZyBzdXBwb3J0IHRvIHRoZSBNYXJ2ZWxsIG12ODhlNnh4eCBEU0Egc3dpdGNoIGRyaXZlci4gVGhpcyBoYXJkd2FyZSBkcml2ZXIgY2Fubm90IGJlIGV4ZXJjaXNlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VLiBUaGUgY2hhbmdlcyBpbiBuZXQvZHNhL3RhZ19kc2EuYyBhcmUgc3BlY2lmaWMgdG8gdGhlIERTQSB0YWcgcHJvdG9jb2wgdXNlZCBleGNsdXNpdmVseSBieSB0aGlzIGRyaXZlci4gVGhlIG1vZGlmaWNhdGlvbiBpbiBuZXQvc2NoZWQvc2NoX2Nicy5jIGlzIGEgdHJpdmlhbCBjaGFuZ2UgdG8gcGFzcyBleHRhY2sgZG93biB0byB0aGUgZHJpdmVyIGFuZCB1c2UgTkxfU0VUX0VSUl9NU0dfV0VBSywgd2hpY2ggZG9lcyBub3QgaW50cm9kdWNlIG5ldyBmdW5jdGlvbmFsIGxvZ2ljIHJlcXVpcmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggcHJpbWFyaWx5IGFkZHMgODAyLjFRYXYgQ0JTIG9mZmxvYWRpbmcgc3VwcG9ydCB0byB0aGUgTWFydmVsbCBtdjg4ZTZ4eHggRFNBIHN3aXRjaCBkcml2ZXIuIFRoaXMgaGFyZHdhcmUgZHJpdmVyIGNhbm5vdCBiZSBleGVyY2lzZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVS4gVGhlIGNoYW5nZXMgaW4gbmV0L2RzYS90YWdfZHNhLmMgYXJlIHNwZWNpZmljIHRvIHRoZSBEU0EgdGFnIHByb3RvY29sIHVzZWQgZXhjbHVzaXZlbHkgYnkgdGhpcyBkcml2ZXIuIFRoZSBtb2RpZmljYXRpb24gaW4gbmV0L3NjaGVkL3NjaF9jYnMuYyBpcyBhIHRyaXZpYWwgY2hhbmdlIHRvIHBhc3MgZXh0YWNrIGRvd24gdG8gdGhlIGRyaXZlciBhbmQgdXNlIE5MX1NFVF9FUlJfTVNHX1dFQUssIHdoaWNoIGRvZXMgbm90IGludHJvZHVjZSBuZXcgZnVuY3Rpb25hbCBsb2dpYyByZXF1aXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTExVDEyOjAxOjEwLjk5MzU5Nzk5NVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjgyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowzgg5k[1] Phase: Running StartedAt: 2026-08-11 12:01:21 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzgg5k[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-11 12:01:21 +0000 UTC FinishedAt: 2026-08-11 12:01:27 +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,}