Name: series-workflowdc9vl Phase: Failed StartedAt: 2026-08-01 03:53:33 +0000 UTC FinishedAt: 2026-08-01 04:13:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdc9vl[0] Phase: Succeeded StartedAt: 2026-08-01 03:53:33 +0000 UTC FinishedAt: 2026-08-01 04:13:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdc9vl[0].run-triage Phase: Succeeded StartedAt: 2026-08-01 03:53:33 +0000 UTC FinishedAt: 2026-08-01 04:13:33 +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+CgkJCTx0ZD4yMDI2LzA4LzAxIDA0OjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNDoxMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQxMmU5ZmY5NmNmNTJhMzAwN2Y0NjJkNmM4NmQzODMxMzZkZTU2OTBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDA0OjEzOjAxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jXG5pbmRleCAyZDU1Y2RjNGQxNjVkLi5hZTkxYjU3Yzg0MjJmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuY1xuQEAgLTg3Myw2ICYjNDM7ODczLDIyIEBAIHN0YXRpYyBpbnQgYXRoMTFrX21hY19zZXRfa2lja291dChzdHJ1Y3QgYXRoMTFrX3ZpZiAqYXJ2aWYpXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGE7XG4mIzQzO1xuJiM0MztcdGlmICghc3RhKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRhcnN0YSA9IGF0aDExa19zdGFfdG9fYXJzdGEoc3RhKTtcbiYjNDM7XG4mIzQzO1x0a2ZyZWUoYXJzdGEtXHUwMDNldHhfc3RhdHMpO1xuJiM0MztcdGFyc3RhLVx1MDAzZXR4X3N0YXRzID0gTlVMTDtcbiYjNDM7XG4mIzQzO1x0a2ZyZWUoYXJzdGEtXHUwMDNlcnhfc3RhdHMpO1xuJiM0MztcdGFyc3RhLVx1MDAzZXJ4X3N0YXRzID0gTlVMTDtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIGF0aDExa19tYWNfcGVlcl9jbGVhbnVwX2FsbChzdHJ1Y3QgYXRoMTFrICphcilcbiB7XG4gXHRzdHJ1Y3QgYXRoMTFrX3BlZXIgKnBlZXIsICp0bXA7XG5AQCAtODg1LDYgJiM0Mzs5MDEsNyBAQCB2b2lkIGF0aDExa19tYWNfcGVlcl9jbGVhbnVwX2FsbChzdHJ1Y3QgYXRoMTFrICphcilcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwZWVyLCB0bXAsIFx1MDAyNmFiLVx1MDAzZXBlZXJzLCBsaXN0KSB7XG4gXHRcdGF0aDExa19wZWVyX3J4X3RpZF9jbGVhbnVwKGFyLCBwZWVyKTtcbiBcdFx0YXRoMTFrX3BlZXJfcmhhc2hfZGVsZXRlKGFiLCBwZWVyKTtcbiYjNDM7XHRcdGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHBlZXItXHUwMDNlc3RhKTtcbiBcdFx0bGlzdF9kZWwoXHUwMDI2cGVlci1cdTAwM2VsaXN0KTtcbiBcdFx0a2ZyZWUocGVlcik7XG4gXHR9XG5AQCAtOTg5Miw3ICYjNDM7OTkwOSw2IEBAIHN0YXRpYyBpbnQgYXRoMTFrX21hY19zdGF0aW9uX3JlbW92ZShzdHJ1Y3QgYXRoMTFrICphcixcbiB7XG4gXHRzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiID0gYXItXHUwMDNlYWI7XG4gXHRzdHJ1Y3QgYXRoMTFrX3ZpZiAqYXJ2aWYgPSBhdGgxMWtfdmlmX3RvX2FydmlmKHZpZik7XG4tXHRzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGEgPSBhdGgxMWtfc3RhX3RvX2Fyc3RhKHN0YSk7XG4gXHRpbnQgcmV0O1xuIFxuIFx0aWYgKGFiLVx1MDAzZWh3X3BhcmFtcy52ZGV2X3N0YXJ0X2RlbGF5IFx1MDAyNlx1MDAyNlxuQEAgLTk5MTYsMTIgJiM0Mzs5OTMyLDcgQEAgc3RhdGljIGludCBhdGgxMWtfbWFjX3N0YXRpb25fcmVtb3ZlKHN0cnVjdCBhdGgxMWsgKmFyLFxuIFx0XHRcdCAgIHN0YS1cdTAwM2VhZGRyLCBhcnZpZi1cdTAwM2V2ZGV2X2lkKTtcbiBcbiBcdGF0aDExa19tYWNfZGVjX251bV9zdGF0aW9ucyhhcnZpZiwgc3RhKTtcbi1cbi1cdGtmcmVlKGFyc3RhLVx1MDAzZXR4X3N0YXRzKTtcbi1cdGFyc3RhLVx1MDAzZXR4X3N0YXRzID0gTlVMTDtcbi1cbi1cdGtmcmVlKGFyc3RhLVx1MDAzZXJ4X3N0YXRzKTtcbi1cdGFyc3RhLVx1MDAzZXJ4X3N0YXRzID0gTlVMTDtcbiYjNDM7XHRhdGgxMWtfbWFjX3N0YXRpb25fY2xlYW51cChzdGEpO1xuIFxuIFx0cmV0dXJuIHJldDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDQ6MTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQxMmU5ZmY5NmNmNTJhMzAwN2Y0NjJkNmM4NmQzODMxMzZkZTU2OTAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAxIDA0OjEzOjAxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmMKaW5kZXggMmQ1NWNkYzRkMTY1ZC4uYWU5MWI1N2M4NDIyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jCkBAIC04NzMsNiAmIzQzOzg3MywyMiBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc2V0X2tpY2tvdXQoc3RydWN0IGF0aDExa192aWYgKmFydmlmKQogCXJldHVybiAwOwogfQogCiYjNDM7c3RhdGljIHZvaWQgYXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBhdGgxMWtfc3RhICphcnN0YTsKJiM0MzsKJiM0MzsJaWYgKCFzdGEpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiYjNDM7CWFyc3RhID0gYXRoMTFrX3N0YV90b19hcnN0YShzdGEpOwomIzQzOwomIzQzOwlrZnJlZShhcnN0YS0mZ3Q7dHhfc3RhdHMpOwomIzQzOwlhcnN0YS0mZ3Q7dHhfc3RhdHMgPSBOVUxMOwomIzQzOwomIzQzOwlrZnJlZShhcnN0YS0mZ3Q7cnhfc3RhdHMpOwomIzQzOwlhcnN0YS0mZ3Q7cnhfc3RhdHMgPSBOVUxMOwomIzQzO30KJiM0MzsKIHZvaWQgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsKHN0cnVjdCBhdGgxMWsgKmFyKQogewogCXN0cnVjdCBhdGgxMWtfcGVlciAqcGVlciwgKnRtcDsKQEAgLTg4NSw2ICYjNDM7OTAxLDcgQEAgdm9pZCBhdGgxMWtfbWFjX3BlZXJfY2xlYW51cF9hbGwoc3RydWN0IGF0aDExayAqYXIpCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBlZXIsIHRtcCwgJmFtcDthYi0mZ3Q7cGVlcnMsIGxpc3QpIHsKIAkJYXRoMTFrX3BlZXJfcnhfdGlkX2NsZWFudXAoYXIsIHBlZXIpOwogCQlhdGgxMWtfcGVlcl9yaGFzaF9kZWxldGUoYWIsIHBlZXIpOwomIzQzOwkJYXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAocGVlci0mZ3Q7c3RhKTsKIAkJbGlzdF9kZWwoJmFtcDtwZWVyLSZndDtsaXN0KTsKIAkJa2ZyZWUocGVlcik7CiAJfQpAQCAtOTg5Miw3ICYjNDM7OTkwOSw2IEBAIHN0YXRpYyBpbnQgYXRoMTFrX21hY19zdGF0aW9uX3JlbW92ZShzdHJ1Y3QgYXRoMTFrICphciwKIHsKIAlzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiID0gYXItJmd0O2FiOwogCXN0cnVjdCBhdGgxMWtfdmlmICphcnZpZiA9IGF0aDExa192aWZfdG9fYXJ2aWYodmlmKTsKLQlzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGEgPSBhdGgxMWtfc3RhX3RvX2Fyc3RhKHN0YSk7CiAJaW50IHJldDsKIAogCWlmIChhYi0mZ3Q7aHdfcGFyYW1zLnZkZXZfc3RhcnRfZGVsYXkgJmFtcDsmYW1wOwpAQCAtOTkxNiwxMiAmIzQzOzk5MzIsNyBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmUoc3RydWN0IGF0aDExayAqYXIsCiAJCQkgICBzdGEtJmd0O2FkZHIsIGFydmlmLSZndDt2ZGV2X2lkKTsKIAogCWF0aDExa19tYWNfZGVjX251bV9zdGF0aW9ucyhhcnZpZiwgc3RhKTsKLQotCWtmcmVlKGFyc3RhLSZndDt0eF9zdGF0cyk7Ci0JYXJzdGEtJmd0O3R4X3N0YXRzID0gTlVMTDsKLQotCWtmcmVlKGFyc3RhLSZndDtyeF9zdGF0cyk7Ci0JYXJzdGEtJmd0O3J4X3N0YXRzID0gTlVMTDsKJiM0MzsJYXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAoc3RhKTsKIAogCXJldHVybiByZXQ7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA0OjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MzcKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyNzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBhdGgxMWsgUGF0Y2ggZm9yIFRlc3RpbmcqKgoKT2theSwgc28gdGhlcmUmIzM5O3MgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuY2AuIEkgc2VlIGl0IGFkZHMgYGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwYCwgd2hpY2gsIGZyb20gdGhlIG5hbWUsIHNvdW5kcyBsaWtlIGl0JiMzOTtzIHJlc3BvbnNpYmxlIGZvciBmcmVlaW5nIHVwIGB0eF9zdGF0c2AgYW5kIGByeF9zdGF0c2AgZnJvbSBgYXJzdGFgLiBUaGlzIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGBhdGgxMWtfbWFjX3BlZXJfY2xlYW51cF9hbGxgIGFuZCBgYXRoMTFrX21hY19zdGF0aW9uX3JlbW92ZWAuIEl0IHNlZW1zIGxpa2Ugd2UmIzM5O3JlIGZpeGluZyBhIG1lbW9yeSBsZWFrIG9yIGEgcmVsYXRlZCBpc3N1ZSB3aXRoaW4gdGhlIGF0aDExayBkcml2ZXIuCgpSaWdodCwgYXRoMTFrIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggd2lyZWxlc3MgZGV2aWNlcy4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGZvciBtZSBub3cgaXM6IGhvdyBjYW4gSSB0ZXN0IHRoaXMgcGF0Y2ggZWZmZWN0aXZlbHk/IENhbiBJIHJlcHJvZHVjZSB0aGlzIGluIFFFTVU/IEkga25vdyBhdGgxMWsgc3VwcG9ydHMgYm90aCBQQ0kgYW5kIEFIQjsgaXQmIzM5O3MgYSByZWFsIGhhcmR3YXJlIGRyaXZlciBmb3Igc3BlY2lmaWMgV2ktRmkgY2FyZHMsIGFuZCB0aGF0IHRyaWdnZXJzIGEgdGhvdWdodC4gRG9lcyBRRU1VIGV2ZW4gZW11bGF0ZSBhdGgxMWs/IEkgZG9uJiMzOTt0IHRoaW5rIHNvLiBObywgUUVNVSB3b3VsZG4mIzM5O3QgZW11bGF0ZSB0aGUgc3BlY2lmaWMgaGFyZHdhcmUuIEFuZCB3aGF0IGFib3V0IG1hYzgwMjExX2h3c2ltPyBObywgdGhhdCYjMzk7cyBhIHNlcGFyYXRlIGRyaXZlciBhbmQgd2hpbGUgZ3JlYXQgZm9yIHRlc3RpbmcgdGhlIDgwMi4xMSBzdGFjayBpbiBnZW5lcmFsLCBpdCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBhdGgxMWsgaGFyZHdhcmUgc3BlY2lmaWNhbGx5LgoKU28sIHJlYWxpc3RpY2FsbHksIHRoaXMgaXMgZ29pbmcgdG8gcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZS4gSSYjMzk7bGwgbmVlZCBhIHJlYWwgYXRoMTFrLWJhc2VkIFdpLUZpIGNhcmQgdG8gdGhvcm91Z2hseSB0ZXN0IHRoaXMgcGF0Y2guIEp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJiMzOTttIGdvaW5nIHRvIGRvIGEgcXVpY2sgc2VhcmNoIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZSB0byBjb25maXJtIHRoZXJlIGlzbiYjMzk7dCBzb21lIG9ic2N1cmUgZW11bGF0aW9uIHBhdGggSSYjMzk7bSBtaXNzaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA0OjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDExayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyNjY4MyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTI9Y29uZmlnIEFUSDExS1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoxMTpcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZCBhdGgxMWsuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MTM9Y29uZmlnIEFUSDExS19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoxNDpcdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTUtXHRkZXBlbmRzIG9uIEFUSDExS1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0yMD1jb25maWcgQVRIMTFLX1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIxOlx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBhdGgxMWsgUENJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0yMi1cdGRlcGVuZHMgb24gQVRIMTFLIFx1MDAyNlx1MDAyNiBQQ0lcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MzA9Y29uZmlnIEFUSDExS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMxOlx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMyLVx0ZGVwZW5kcyBvbiBBVEgxMUtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9Mzg9Y29uZmlnIEFUSDExS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzk6XHRib29sIFwmIzM0O1FDQSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDAtXHRkZXBlbmRzIG9uIEFUSDExSyBcdTAwMjZcdTAwMjYgREVCVUdfRlMgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00MS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0MjpcdCAgRW5hYmxlIGF0aDExayBkZWJ1Z2ZzIHN1cHBvcnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9NDY9Y29uZmlnIEFUSDExS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDc6XHRib29sIFwmIzM0O2F0aDExayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00OC1cdGRlcGVuZHMgb24gQVRIMTFLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDktXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTA6XHQgIFNlbGVjdCB0aGlzIHRvIHVzZSBhdGgxMWsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz01Mj1jb25maWcgQVRIMTFLX1NQRUNUUkFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTM6XHRib29sIFwmIzM0O1FDQSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTQtXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU2LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjU3Olx0ICBFbmFibGUgYXRoMTFrIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz02MT1jb25maWcgQVRIMTFLX0NGUlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYyOlx0Ym9vbCBcJiMzNDthdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2Ugc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTYzLVx0ZGVwZW5kcyBvbiBBVEgxMUtfREVCVUdGU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02NS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2NjpcdCAgRW5hYmxlIGF0aDExayBjaGFubmVsIGZyZXF1ZW5jeSByZXNwb25zZSBkdW1wIHN1cHBvcnQuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjctXHQgIFRoaXMgb3B0aW9uIGV4cG9zZXMgZGVidWdmcyBub2RlcyB0aGF0IHdpbGwgYWxsb3cgdGhlIHVzZXJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDExSykgJiM0Mzs9IGF0aDExay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjM6YXRoMTFrLXkgJiM0Mzs9IGNvcmUubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS00LVx0ICAgIGhhbC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MjQ6YXRoMTFrLSQoQ09ORklHX0FUSDExS19ERUJVR0ZTKSAmIzQzOz0gZGVidWdmcy5vIGRlYnVnZnNfaHR0X3N0YXRzLm8gZGVidWdmc19zdGEub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNTphdGgxMWstJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgJiM0Mzs9IHRlc3Rtb2RlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MjY6YXRoMTFrLSQoQ09ORklHX0FUSDExS19UUkFDSU5HKSAmIzQzOz0gdHJhY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNzphdGgxMWstJChDT05GSUdfVEhFUk1BTCkgJiM0Mzs9IHRoZXJtYWwub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyODphdGgxMWstJChDT05GSUdfQVRIMTFLX1NQRUNUUkFMKSAmIzQzOz0gc3BlY3RyYWwub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyOTphdGgxMWstJChDT05GSUdfUE0pICYjNDM7PSB3b3cub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMDphdGgxMWstJChDT05GSUdfREVWX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMTphdGgxMWstJChDT05GSUdfQVRIMTFLX0NGUikgJiM0Mzs9IGNmci5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMzpvYmotJChDT05GSUdfQVRIMTFLX0FIQikgJiM0Mzs9IGF0aDExa19haGIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNDphdGgxMWtfYWhiLXkgJiM0Mzs9IGFoYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfQVRIMTFLX1BDSSkgJiM0Mzs9IGF0aDExa19wY2kub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNzphdGgxMWtfcGNpLXkgJiM0Mzs9IG1oaS5vIHBjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI0OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGF0aDExa19haGJfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjUtXHQvKiBUT0RPOiBTaG91bGQgd2UgY2hhbmdlIHRoZSBjb21wYXRpYmxlIHN0cmluZyB0byBzb21ldGhpbmcgc2ltaWxhclxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0aDExa19haGJfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE0ND1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE0NTphdGgxMWtfYWhiX2dldF9tc2lfaXJxX3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdW5zaWduZWQgaW50IHZlY3RvcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTQ2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE1MD1zdGF0aWMgaW5saW5lIHUzMlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNTE6YXRoMTFrX2FoYl9nZXRfd2luZG93X3N0YXJ0X3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE2Nj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjc6YXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTY4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE3MS1cdC8qIFdDTjY3NTAgdXNlcyBzdGF0aWMgd2luZG93IGJhc2VkIHJlZ2lzdGVyIGFjY2VzcyovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE3MjpcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE3ODpzdGF0aWMgdTMyIGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xODMtXHQvKiBXQ042NzUwIHVzZXMgc3RhdGljIHdpbmRvdyBiYXNlZCByZWdpc3RlciBhY2Nlc3MgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTg0Olx0d2luZG93X3N0YXJ0ID0gYXRoMTFrX2FoYl9nZXRfd2luZG93X3N0YXJ0X3djbjY3NTAoYWIsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE4NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTkxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX3BjaV9vcHMgYXRoMTFrX2FoYl9wY2lfb3BzX3djbjY3NTAgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5Mi1cdC53YWtldXAgPSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTMtXHQucmVsZWFzZSA9IE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5NDpcdC5nZXRfbXNpX2lycSA9IGF0aDExa19haGJfZ2V0X21zaV9pcnFfd2NuNjc1MCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk1Olx0LndpbmRvd193cml0ZTMyID0gYXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTY6XHQud2luZG93X3JlYWQzMiA9IGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTctfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTk6c3RhdGljIGlubGluZSB1MzIgYXRoMTFrX2FoYl9yZWFkMzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjAwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjA0OnN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMWtfYWhiX3dyaXRlMzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldCwgdTMyIHZhbHVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMDk6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9raWxsX3Rhc2tsZXRzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMTMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIxNDpcdFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXHUwMDI2YWItXHUwMDNlY2UuY2VfcGlwZVtpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMTY6XHRcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMTctXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIyMzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9ncnBfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMjQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzE6c3RhdGljIHZvaWQgX19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM1LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIzNjpcdFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIzODpcdFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjQ4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoc3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjQ5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjU2OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc2V0Yml0MzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTggYml0LCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjA6XHR2YWwgPSBhdGgxMWtfYWhiX3JlYWQzMihhYiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjYxOlx0YXRoMTFrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCB8IEJJVChiaXQpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjYyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jbGVhcmJpdDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjY1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjY4Olx0dmFsID0gYXRoMTFrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2OTpcdGF0aDExa19haGJfd3JpdGUzMihhYiwgb2Zmc2V0LCB2YWwgXHUwMDI2IH5CSVQoYml0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3MC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjcyOnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODMtXHRpZiAoY2VfYXR0ci1cdTAwM2VzcmNfbmVudHJpZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI4NDpcdFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQsIGllMV9yZWdfYWRkcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg2LVx0aWYgKGNlX2F0dHItXHUwMDNlZGVzdF9uZW50cmllcykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODc6XHRcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODg6XHRcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkICYjNDM7IENFX0hPU1RfSUVfM19TSElGVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg5LVx0XHRcdFx0ICAgIGllM19yZWdfYWRkcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yOTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjk0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwNC1cdGlmIChjZV9hdHRyLVx1MDAzZXNyY19uZW50cmllcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA1Olx0XHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwNy1cdGlmIChjZV9hdHRyLVx1MDAzZWRlc3RfbmVudHJpZXMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA4Olx0XHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMDk6XHRcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQgJiM0MzsgQ0VfSE9TVF9JRV8zX1NISUZULFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTAtXHRcdFx0XHQgICAgICBpZTNfcmVnX2FkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMTQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zeW5jX2NlX2lycXMoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzE1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMxOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzIwOlx0XHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzIxLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMjg6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzM0Olx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMzNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzQzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxc19lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzQ0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0Ny1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzQ4Olx0XHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzQ5LVx0XHRcdGNvbnRpbnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNTA6XHRcdGF0aDExa19haGJfY2VfaXJxX2VuYWJsZShhYiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM1MS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM1NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTgtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1OTpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2MC1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzYxOlx0XHRhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzYyLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjU6c3RhdGljIGludCBhdGgxMWtfYWhiX3N0YXJ0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2NzpcdGF0aDExa19haGJfY2VfaXJxc19lbmFibGUoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjg6XHRhdGgxMWtfY2VfcnhfcG9zdF9idWYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNjktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM3MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzc4Olx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4My1cdFx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODQ6XHRcdGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4NS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzg4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5MDpcdF9fYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTE6XHRhdGgxMWtfYWhiX3N5bmNfZXh0X2lycXMoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NDpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3N0b3Aoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk2LVx0aWYgKCF0ZXN0X2JpdChBVEgxMUtfRkxBR19DUkFTSF9GTFVTSCwgXHUwMDI2YWItXHUwMDNlZGV2X2ZsYWdzKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk3Olx0XHRhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5ODpcdGF0aDExa19haGJfc3luY19jZV9pcnFzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk5Olx0YXRoMTFrX2FoYl9raWxsX3Rhc2tsZXRzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDAwLVx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2YWItXHUwMDNlcnhfcmVwbGVuaXNoX3JldHJ5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDAxOlx0YXRoMTFrX2NlX2NsZWFudXBfcGlwZXMoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQwNDpzdGF0aWMgaW50IGF0aDExa19haGJfcG93ZXJfdXAoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDA1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDA2Olx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwNy1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MTAtXHRpZiAocmV0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MTE6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBib290IHRoZSByZW1vdGUgcHJvY2Vzc29yIFE2XFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDEyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MTY6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9wb3dlcl9kb3duKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIGJvb2wgaXNfc3VzcGVuZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDE3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDE4Olx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQyMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfaW5pdF9xbWlfY2VfY29uZmlnKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQyNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQyNTpcdHN0cnVjdCBhdGgxMWtfcW1pX2NlX2NmZyAqY2ZnID0gXHUwMDI2YWItXHUwMDNlcW1pLmNlX2NmZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDI2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MzQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDM1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzOC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Mzk6XHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NDk6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU0LVx0aWYgKGFiLVx1MDAzZWh3X3BhcmFtcy5oeWJyaWRfYnVzX3R5cGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1NTpcdFx0cmV0dXJuIGF0aDExa19wY2ljX2ZyZWVfaXJxKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1ODpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ1OS1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY0Olx0YXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ2NzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX3Rhc2tsZXQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Njgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Njk6XHRzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKmNlX3BpcGUgPSBmcm9tX3Rhc2tsZXQoY2VfcGlwZSwgdCwgaW50cl90cSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDcxOlx0YXRoMTFrX2NlX3Blcl9lbmdpbmVfc2VydmljZShjZV9waXBlLVx1MDAzZWFiLCBjZV9waXBlLVx1MDAzZXBpcGVfbnVtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NzM6XHRhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoY2VfcGlwZS1cdTAwM2VhYiwgY2VfcGlwZS1cdTAwM2VwaXBlX251bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3NC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMWtfYWhiX2NlX2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc4Olx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gYXJnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ4MzpcdGF0aDExa19haGJfY2VfaXJxX2Rpc2FibGUoY2VfcGlwZS1cdTAwM2VhYiwgY2VfcGlwZS1cdTAwM2VwaXBlX251bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ4NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ4OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDkwOnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9leHRfZ3JwX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5MjpcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBjb250YWluZXJfb2YobmFwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDkzOlx0XHRcdFx0XHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5NC1cdFx0XHRcdFx0XHRuYXBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDk1Olx0c3RydWN0IGF0aDExa19iYXNlICphYiA9IGlycV9ncnAtXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5Ni1cdGludCB3b3JrX2RvbmU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDk4Olx0d29ya19kb25lID0gYXRoMTFrX2RwX3NlcnZpY2Vfc3JuZyhhYiwgaXJxX2dycCwgYnVkZ2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDk5LVx0aWYgKHdvcmtfZG9uZSBcdTAwM2MgYnVkZ2V0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwMC1cdFx0bmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHdvcmtfZG9uZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUwMTpcdFx0YXRoMTFrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTAyLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MTA6c3RhdGljIGlycXJldHVybl90IGF0aDExa19haGJfZXh0X2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTExLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTEyOlx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IGFyZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTEzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MTc6XHRhdGgxMWtfYWhiX2V4dF9ncnBfZGlzYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTE4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MjQ6c3RhdGljIGludCBhdGgxMWtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUyNjpcdHN0cnVjdCBhdGgxMWtfaHdfcGFyYW1zICpodyA9IFx1MDAyNmFiLVx1MDAzZWh3X3BhcmFtcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTI3LVx0aW50IGksIGo7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MzEtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTMyOlx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzMy1cdFx0dTMyIG51bV9pcnEgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQyLVx0XHRuZXRpZl9uYXBpX2FkZChpcnFfZ3JwLVx1MDAzZW5hcGlfbmRldiwgXHUwMDI2aXJxX2dycC1cdTAwM2VuYXBpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1NDM6XHRcdFx0ICAgICAgIGF0aDExa19haGJfZXh0X2dycF9uYXBpX3BvbGwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NjgtXHRcdFx0XHRcdFx0cnhkbWEyaG9zdF9kZXN0aW5hdGlvbl9yaW5nX21hYzEgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1Njk6XHRcdFx0XHRcdFx0YXRoMTFrX2h3X2dldF9tYWNfZnJvbV9wZGV2X2lkKGh3LCBqKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTcwLVx0XHRcdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTc0LVx0XHRcdFx0XHRcdGhvc3QycnhkbWFfaG9zdF9idWZfcmluZ19tYWMxIC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTc1Olx0XHRcdFx0XHRcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU3Ni1cdFx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU4MC1cdFx0XHRcdFx0XHRwcGR1X2VuZF9pbnRlcnJ1cHRzX21hYzEgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1ODE6XHRcdFx0XHRcdFx0YXRoMTFrX2h3X2dldF9tYWNfZnJvbV9wZGV2X2lkKGh3LCBqKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTgyLVx0XHRcdFx0XHRpcnFfZ3JwLVx1MDAzZWlycXNbbnVtX2lycSYjNDM7JiM0MztdID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTgzLVx0XHRcdFx0XHRcdHJ4ZG1hMmhvc3RfbW9uaXRvcl9zdGF0dXNfcmluZ19tYWMxIC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTg0Olx0XHRcdFx0XHRcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU4NS1cdFx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU5Ni1cdFx0XHRpcnFfc2V0X3N0YXR1c19mbGFncyhpcnEsIElSUV9OT0FVVE9FTiB8IElSUV9ESVNBQkxFX1VOTEFaWSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU5NzpcdFx0XHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aDExa19haGJfZXh0X2ludGVycnVwdF9oYW5kbGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTgtXHRcdFx0XHRcdCAgSVJRRl9UUklHR0VSX1JJU0lORyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwMC1cdFx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYwMTpcdFx0XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCByZXF1ZXN0X2lycSBmb3IgJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwMi1cdFx0XHRcdFx0ICAgaXJxKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjEwOnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9jb25maWdfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTUtXHRpZiAoYWItXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjE2Olx0XHRyZXR1cm4gYXRoMTFrX3BjaWNfY29uZmlnX2lycShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjIwOlx0XHRzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKmNlX3BpcGUgPSBcdTAwMjZhYi1cdTAwM2VjZS5jZV9waXBlW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyMjpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyMy1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjI3Olx0XHR0YXNrbGV0X3NldHVwKFx1MDAyNmNlX3BpcGUtXHUwMDNlaW50cl90cSwgYXRoMTFrX2FoYl9jZV90YXNrbGV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjI4LVx0XHRpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShhYi1cdTAwM2VwZGV2LCBpcnFfbmFtZVtpcnFfaWR4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyOTpcdFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMWtfYWhiX2NlX2ludGVycnVwdF9oYW5kbGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MzAtXHRcdFx0XHQgIElSUUZfVFJJR0dFUl9SSVNJTkcsIGlycV9uYW1lW2lycV9pZHhdLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjM4LVx0LyogQ29uZmlndXJlIGV4dGVybmFsIGludGVycnVwdHMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjM5Olx0cmV0ID0gYXRoMTFrX2FoYl9jb25maWdfZXh0X2lycShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjQ0OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9tYXBfc2VydmljZV90b19waXBlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBzZXJ2aWNlX2lkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDUtXHRcdFx0XHRcdCAgdTggKnVsX3BpcGUsIHU4ICpkbF9waXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2ODc6c3RhdGljIGludCBhdGgxMWtfYWhiX2hpZl9zdXNwZW5kKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY4OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY4OTpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02OTAtXHR1MzIgd2FrZV9pcnE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MDAtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcwMTpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGVuYWJsZSB3YWtldXAgaXJxIDolZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzAyLVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzEyLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MTM6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBzZW5kIHNtcDJwIHBvd2VyIHNhdmUgZW50ZXIgY21kIDolZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE0LVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MTc6XHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXCYjMzQ7ZGV2aWNlIHN1c3BlbmRlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzIyOnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfcmVzdW1lKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcyNDpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjUtXHR1MzIgd2FrZV9pcnE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzUtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjczNjpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGRpc2FibGUgd2FrZXVwIGlycTogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTczNy1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc0OS1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzUwOlx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBzbXAycCBwb3dlciBzYXZlIGVudGVyIGNtZCA6JWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1MS1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1NS1cdGlmIChyZXQgPT0gMCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NTY6XHRcdGF0aDExa193YXJuKGFiLCBcJiMzNDt0aW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3Igd293IHdha2V1cCBjb21wbGV0aW9uXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzU3LVx0XHRyZXR1cm4gLUVUSU1FRE9VVDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzYwOlx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19BSEIsIFwmIzM0O2RldmljZSByZXN1bWVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzYxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NjU6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaGlmX29wcyBhdGgxMWtfYWhiX2hpZl9vcHNfaXBxODA3NCA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY2Olx0LnN0YXJ0ID0gYXRoMTFrX2FoYl9zdGFydCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY3Olx0LnN0b3AgPSBhdGgxMWtfYWhiX3N0b3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2ODpcdC5yZWFkMzIgPSBhdGgxMWtfYWhiX3JlYWQzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY5Olx0LndyaXRlMzIgPSBhdGgxMWtfYWhiX3dyaXRlMzIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc3MC1cdC5yZWFkID0gTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzcxOlx0LmlycV9lbmFibGUgPSBhdGgxMWtfYWhiX2V4dF9pcnFfZW5hYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzI6XHQuaXJxX2Rpc2FibGUgPSBhdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzczOlx0Lm1hcF9zZXJ2aWNlX3RvX3BpcGUgPSBhdGgxMWtfYWhiX21hcF9zZXJ2aWNlX3RvX3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NDpcdC5wb3dlcl9kb3duID0gYXRoMTFrX2FoYl9wb3dlcl9kb3duLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzU6XHQucG93ZXJfdXAgPSBhdGgxMWtfYWhiX3Bvd2VyX3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzYtfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaGlmX29wcyBhdGgxMWtfYWhiX2hpZl9vcHNfd2NuNjc1MCA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzc5Olx0LnN0YXJ0ID0gYXRoMTFrX3BjaWNfc3RhcnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MDpcdC5zdG9wID0gYXRoMTFrX3BjaWNfc3RvcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzgxOlx0LnJlYWQzMiA9IGF0aDExa19wY2ljX3JlYWQzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzgyOlx0LndyaXRlMzIgPSBhdGgxMWtfcGNpY193cml0ZTMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODMtXHQucmVhZCA9IE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4NDpcdC5pcnFfZW5hYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9lbmFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4NTpcdC5pcnFfZGlzYWJsZSA9IGF0aDExa19wY2ljX2V4dF9pcnFfZGlzYWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg2Olx0LmdldF9tc2lfYWRkcmVzcyA9ICBhdGgxMWtfcGNpY19nZXRfbXNpX2FkZHJlc3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4NzpcdC5nZXRfdXNlcl9tc2lfdmVjdG9yID0gYXRoMTFrX3BjaWNfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4ODpcdC5tYXBfc2VydmljZV90b19waXBlID0gYXRoMTFrX3BjaWNfbWFwX3NlcnZpY2VfdG9fcGlwZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg5Olx0LnBvd2VyX2Rvd24gPSBhdGgxMWtfYWhiX3Bvd2VyX2Rvd24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MDpcdC5wb3dlcl91cCA9IGF0aDExa19haGJfcG93ZXJfdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MTpcdC5zdXNwZW5kID0gYXRoMTFrX2FoYl9oaWZfc3VzcGVuZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkyOlx0LnJlc3VtZSA9IGF0aDExa19haGJfaGlmX3Jlc3VtZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkzOlx0LmNlX2lycV9lbmFibGUgPSBhdGgxMWtfcGNpX2VuYWJsZV9jZV9pcnFzX2V4Y2VwdF93YWtlX2lycSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzk0Olx0LmNlX2lycV9kaXNhYmxlID0gYXRoMTFrX3BjaV9kaXNhYmxlX2NlX2lycXNfZXhjZXB0X3dha2VfaXJxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTUtfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTc6c3RhdGljIGludCBhdGgxMWtfY29yZV9nZXRfcnByb2Moc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzk5Olx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwMC1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IGFiLVx1MDAzZWRldjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwNC1cdGlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihkZXYtXHUwMDNlb2Zfbm9kZSwgXCYjMzQ7cWNvbSxycHJvY1wmIzM0OywgXHUwMDI2cnByb2NfcGhhbmRsZSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6ODA1Olx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IHE2X3Jwcm9jIGhhbmRsZVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwNi1cdFx0cmV0dXJuIC1FTk9FTlQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgxNzpzdGF0aWMgaW50IGF0aDExa19haGJfc2V0dXBfbXNpX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4Mjc6XHRyZXQgPSBhdGgxMWtfcGNpY19pbml0X21zaV9jb25maWcoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MjgtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyOTpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGluaXQgbXNpIGNvbmZpZzogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgzMC1cdFx0cmV0dXJuIHJldDtcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNDoxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODIxMAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDY1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIFRlc3RhYmlsaXR5IG9mIHRoZSBhdGgxMWsgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBuZWVkIHRvIGRldGVybWluZSBpZiBpdCYjMzk7cyAmIzM0O1dvcnRoRnV6emluZy4mIzM0OyBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGUgYXRoMTFrIGRyaXZlciwgYmVpbmcgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIHByb2JhYmx5IHJlcXVpcmVzICphY3R1YWwqIGhhcmR3YXJlIG9yIGEgZGVjZW50IGVtdWxhdGlvbi4gSSBxdWlja2x5IGRpc21pc3MgdGhlIGlkZWEgb2YgYG1hYzgwMjExX2h3c2ltYCBiZWNhdXNlLCBmcm9tIHdoYXQgSSB1bmRlcnN0YW5kLCB0aGF0JiMzOTtzIGp1c3QgYSBzb2Z0d2FyZSBzaW11bGF0b3IgZm9yIG1hYzgwMjExLCBub3Qgc3BlY2lmaWNhbGx5IGZvciBhdGgxMWsuIENhbiBJIGdldCBhd2F5IHdpdGggcnVubmluZyB0aGlzIGluIFFFTVU/IE5vLCBkZWZpbml0ZWx5IG5vdC4gUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBzcGVjaWZpYyBhdGgxMWsgaGFyZHdhcmUuCgpUaGUgaW5zdHJ1Y3Rpb25zIGFyZSB2ZXJ5IGNsZWFyOiBpZiB0aGUgY29kZSByZWxpZXMgb24gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMsIG9yIGludm9sdmVzIGNvZGUgcGF0aHMgaW5hY2Nlc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgdGhlbiBpdCYjMzk7cyBhIG5vLWdvIGZvciBmdXp6aW5nLiBBdGgxMWsgaXMsIHVuZG91YnRlZGx5LCBhIHZlbmRvci1zcGVjaWZpYyBXaS1GaSBkcml2ZXIuIEl0JiMzOTtzIGRlc2lnbmVkIHRvIHVzZSBwaHlzaWNhbCBQQ0llIG9yIEFIQiBoYXJkd2FyZS4gU28sIGNhbiBpdCBiZSBmdXp6LXRlc3RlZCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudD8KCkFscmlnaHQsIGxldCYjMzk7cyBleHBsb3JlIGlmIHRoZXJlJiMzOTtzIGFueSBjbGV2ZXIgdHJpY2tlcnkgb3IgbW9jayBpbXBsZW1lbnRhdGlvbnMuIEkmIzM5O2xsIHNjYW4gdGhyb3VnaCBgaHcvYCBhbmQgYGRyaXZlcnMvYCB0byBzZWUgaWYgdGhlcmUmIzM5O3MgYSBzb2Z0d2FyZSBlbXVsYXRpb24gY29tcG9uZW50LiBXYWl0LCBJIHNlZSBtZW50aW9uIG9mIGBzeXpib3RgIHRlc3RpbmcgYXRoMTFrLiAqRGlkKiBzeXpib3QgYWN0dWFsbHkgZmluZCBzb21ldGhpbmcgc3BlY2lmaWMgdG8gdGhpcyBkcml2ZXI/IFRoZSBjb21taXQgbWVzc2FnZSBzZWVtcyBnZW5lcmljLCBhbmQgaXQmIzM5O3MgcHJvYmFibHkgcnVubmluZyBgbWFjODAyMTFfaHdzaW1gLCBub3QgZGlyZWN0IGF0aDExayB0ZXN0cy4gSXQgbWlnaHQgYmUgYSBidWcgcmVwb3J0ZWQgYnkgYSBodW1hbiwgYW5kIGl04oCZcyBqdXN0IGJlaW5nIHRlc3RlZCBoZXJlLgoKVGhlIGluc3RydWN0aW9ucyAqZXhwbGljaXRseSogZXhjbHVkZSBjb2RlIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRoYXQgaW5jbHVkZXMgYXRoMTFrISBUaGUgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGJlY2F1c2UgdGhhdCYjMzk7cyBob3cgaXQmIzM5O3MgZGVzaWduZWQuIEl0JiMzOTtzIGEgV2ktRmkgZHJpdmVyIHRoYXQgcmVnaXN0ZXJzIHdpdGggbWFjODAyMTEsIGJ1dCBpdHMgcHJvYmUgZnVuY3Rpb25zLCBgYXRoMTFrX3BjaV9wcm9iZWAgb3IgYGF0aDExa19haGJfcHJvYmVgLCBhcmUgb25seSBldmVyIGNhbGxlZCBpZiB0aGUgaGFyZHdhcmUgaXMgcHJlc2VudCwgZWl0aGVyIFBDSSBvciBBSEIuIElmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgZGV0ZWN0ZWQsIHRoZSBkcml2ZXIgaXMgbmV2ZXIgaW5pdGlhbGl6ZWQuIFRodXMsIEkmIzM5O20gcHJldHR5IHN1cmUgdGhlcmUmIzM5O3Mgbm8gd2F5IHRvIHJlYWNoIGBhdGgxMWtfbWFjX3N0YXRpb25fcmVtb3ZlYCBvciBgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsYCB3aXRob3V0IGl0LiBCYXNlZCBvbiB0aGUgcmVxdWlyZW1lbnRzLCBJIHdvdWxkIHJhdGUgdGhpcyBhcyAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA0OjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDExa19wY2lfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTk0MD1zdGF0aWMgaW50IGF0aDExa19wY2lfc2V0X2lycV9hZmZpbml0eV9oaW50KHN0cnVjdCBhdGgxMWtfcGNpICphYl9wY2ksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy05NDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjk0OTpzdGF0aWMgaW50IGF0aDExa19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTk1MC1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz0xMjk2PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBhdGgxMWtfcGNpX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEyOTgtXHQuaWRfdGFibGUgPSBhdGgxMWtfcGNpX2lkX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzoxMjk5Olx0LnByb2JlID0gYXRoMTFrX3BjaV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTMwMC1cdC5yZW1vdmUgPSBhdGgxMWtfcGNpX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNDoxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTc5NgoJCQkJCQkJb3V0cHV0OiAxMDAKCQkJCQkJCXRob3VnaHRzOiAyMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBEZWNpc2lvbiBmb3IgdGhlIGF0aDExayBQQ0kgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kLCB5ZXAsIGl0JiMzOTtzIGRlZmluaXRlbHkgcGFydCBvZiB0aGUgUENJIGRyaXZlci4gVGhlIHF1ZXN0aW9uIGlzOiBjYW4gSSBhY3R1YWxseSByZWFjaCBpdCBkdXJpbmcgZnV6emluZz8gQW5kIHRoZSBhbnN3ZXIsIGFmdGVyIGEgYml0IG9mIGNvbnNpZGVyYXRpb24sIGlzIG5vLiBUaGVyZSYjMzk7cyBubyBzdGFuZGFyZCBRRU1VIGVtdWxhdGlvbiB0aGF0IHN1cHBvcnRzIGF0aDExaywgd2hpY2ggbWVhbnMgYW55IG9mIG15IG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHRoYXQgZW52aXJvbm1lbnQuCgpJIGhhZCB0byBkb3VibGUtY2hlY2ssIHRob3VnaC4gTWF5YmUgdGhlcmUgd2FzIHNvbWUgY2xldmVyIHNvZnR3YXJlIHNpbXVsYXRvciBJIHdhcyBtaXNzaW5nLiBCdXQsIG5vLiBtYWM4MDIxMV9od3NpbSwgd2hpbGUgaW50ZXJlc3RpbmcsIGlzIGEgKnNvZnR3YXJlKiBzaW11bGF0b3Igb2YgdGhlICpoYXJkd2FyZSogaXRzZWxmLiBJdCBkb2VzbiYjMzk7dCBhY3R1YWxseSBpbnRlcmFjdCB3aXRoIG9yIHVzZSB0aGUgYXRoMTFrIGRyaXZlci4gVGhhdCBkcml2ZXIgaXMgKnNwZWNpZmljYWxseSogZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIGFuZCByZWxpZXMgb24gdGhhdCBwaHlzaWNhbCBQQ0kvQUhCIGhhcmR3YXJlLiBCZWNhdXNlIFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGF0IGhhcmR3YXJlLCB0aGUgZHJpdmVyIHdvbiYjMzk7dCBwcm9iZSwgYW5kIG5vbmUgb2YgaXRzIGZ1bmN0aW9ucyB3aWxsIGJlIHJlYWNoYWJsZS4gSXQmIzM5O3MgdmVuZG9yLXNwZWNpZmljLCBwbGFpbiBhbmQgc2ltcGxlLiBUaGVyZWZvcmUsIGZ1enppbmcgdGhpcyBwYXJ0aWN1bGFyIGNvZGUgd291bGQgYmUgYSB3YXN0ZSBvZiByZXNvdXJjZXMuCgpTbywgSSYjMzk7bSBnb2luZyB0byByZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlLiBJJiMzOTtsbCB1c2UgdGhlIHNldC1yZXN1bHRzIHRvb2wgdG8gZG9jdW1lbnQgdGhpcyBkZWNpc2lvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNDoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrLCBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggV2ktRmkgY2FyZHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIFBDSSBvciBBSEIgaGFyZHdhcmUgdG8gcHJvYmUgYW5kIGluaXRpYWxpemUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MDIuMDUyMjQ1MDExWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAyNzI3OTgxODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MDIuMDUyMjUwOTUxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDIyNDk0OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkMTJlOWZmOTZjZjUyYTMwMDdmNDYyZDZjODZkMzgzMTM2ZGU1NjkwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDQ6MTM6MDEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmNcXG5pbmRleCAyZDU1Y2RjNGQxNjVkLi5hZTkxYjU3Yzg0MjJmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jXFxuQEAgLTg3Myw2ICs4NzMsMjIgQEAgc3RhdGljIGludCBhdGgxMWtfbWFjX3NldF9raWNrb3V0KHN0cnVjdCBhdGgxMWtfdmlmICphcnZpZilcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkIGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuK3tcXG4rXFx0c3RydWN0IGF0aDExa19zdGEgKmFyc3RhO1xcbitcXG4rXFx0aWYgKCFzdGEpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdGFyc3RhID0gYXRoMTFrX3N0YV90b19hcnN0YShzdGEpO1xcbitcXG4rXFx0a2ZyZWUoYXJzdGEtXFx1MDAzZXR4X3N0YXRzKTtcXG4rXFx0YXJzdGEtXFx1MDAzZXR4X3N0YXRzID0gTlVMTDtcXG4rXFxuK1xcdGtmcmVlKGFyc3RhLVxcdTAwM2VyeF9zdGF0cyk7XFxuK1xcdGFyc3RhLVxcdTAwM2VyeF9zdGF0cyA9IE5VTEw7XFxuK31cXG4rXFxuIHZvaWQgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsKHN0cnVjdCBhdGgxMWsgKmFyKVxcbiB7XFxuIFxcdHN0cnVjdCBhdGgxMWtfcGVlciAqcGVlciwgKnRtcDtcXG5AQCAtODg1LDYgKzkwMSw3IEBAIHZvaWQgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsKHN0cnVjdCBhdGgxMWsgKmFyKVxcbiBcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGVlciwgdG1wLCBcXHUwMDI2YWItXFx1MDAzZXBlZXJzLCBsaXN0KSB7XFxuIFxcdFxcdGF0aDExa19wZWVyX3J4X3RpZF9jbGVhbnVwKGFyLCBwZWVyKTtcXG4gXFx0XFx0YXRoMTFrX3BlZXJfcmhhc2hfZGVsZXRlKGFiLCBwZWVyKTtcXG4rXFx0XFx0YXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAocGVlci1cXHUwMDNlc3RhKTtcXG4gXFx0XFx0bGlzdF9kZWwoXFx1MDAyNnBlZXItXFx1MDAzZWxpc3QpO1xcbiBcXHRcXHRrZnJlZShwZWVyKTtcXG4gXFx0fVxcbkBAIC05ODkyLDcgKzk5MDksNiBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmUoc3RydWN0IGF0aDExayAqYXIsXFxuIHtcXG4gXFx0c3RydWN0IGF0aDExa19iYXNlICphYiA9IGFyLVxcdTAwM2VhYjtcXG4gXFx0c3RydWN0IGF0aDExa192aWYgKmFydmlmID0gYXRoMTFrX3ZpZl90b19hcnZpZih2aWYpO1xcbi1cXHRzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGEgPSBhdGgxMWtfc3RhX3RvX2Fyc3RhKHN0YSk7XFxuIFxcdGludCByZXQ7XFxuIFxcbiBcXHRpZiAoYWItXFx1MDAzZWh3X3BhcmFtcy52ZGV2X3N0YXJ0X2RlbGF5IFxcdTAwMjZcXHUwMDI2XFxuQEAgLTk5MTYsMTIgKzk5MzIsNyBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmUoc3RydWN0IGF0aDExayAqYXIsXFxuIFxcdFxcdFxcdCAgIHN0YS1cXHUwMDNlYWRkciwgYXJ2aWYtXFx1MDAzZXZkZXZfaWQpO1xcbiBcXG4gXFx0YXRoMTFrX21hY19kZWNfbnVtX3N0YXRpb25zKGFydmlmLCBzdGEpO1xcbi1cXG4tXFx0a2ZyZWUoYXJzdGEtXFx1MDAzZXR4X3N0YXRzKTtcXG4tXFx0YXJzdGEtXFx1MDAzZXR4X3N0YXRzID0gTlVMTDtcXG4tXFxuLVxcdGtmcmVlKGFyc3RhLVxcdTAwM2VyeF9zdGF0cyk7XFxuLVxcdGFyc3RhLVxcdTAwM2VyeF9zdGF0cyA9IE5VTEw7XFxuK1xcdGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHN0YSk7XFxuIFxcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA0OjEzOjAyLjM1NTA2MTY4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE5OTY5OTc2Mzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhdGgxMWssIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBXaS1GaSBjYXJkcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgUENJIG9yIEFIQiBoYXJkd2FyZSB0byBwcm9iZSBhbmQgaW5pdGlhbGl6ZSwgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQxMmU5ZmY5NmNmNTJhMzAwN2Y0NjJkNmM4NmQzODMxMzZkZTU2OTBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDA0OjEzOjAxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmNcbmluZGV4IDJkNTVjZGM0ZDE2NWQuLmFlOTFiNTdjODQyMmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jXG5AQCAtODczLDYgKzg3MywyMiBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc2V0X2tpY2tvdXQoc3RydWN0IGF0aDExa192aWYgKmFydmlmKVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4re1xuK1x0c3RydWN0IGF0aDExa19zdGEgKmFyc3RhO1xuK1xuK1x0aWYgKCFzdGEpXG4rXHRcdHJldHVybjtcbitcbitcdGFyc3RhID0gYXRoMTFrX3N0YV90b19hcnN0YShzdGEpO1xuK1xuK1x0a2ZyZWUoYXJzdGEtXHUwMDNldHhfc3RhdHMpO1xuK1x0YXJzdGEtXHUwMDNldHhfc3RhdHMgPSBOVUxMO1xuK1xuK1x0a2ZyZWUoYXJzdGEtXHUwMDNlcnhfc3RhdHMpO1xuK1x0YXJzdGEtXHUwMDNlcnhfc3RhdHMgPSBOVUxMO1xuK31cbitcbiB2b2lkIGF0aDExa19tYWNfcGVlcl9jbGVhbnVwX2FsbChzdHJ1Y3QgYXRoMTFrICphcilcbiB7XG4gXHRzdHJ1Y3QgYXRoMTFrX3BlZXIgKnBlZXIsICp0bXA7XG5AQCAtODg1LDYgKzkwMSw3IEBAIHZvaWQgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsKHN0cnVjdCBhdGgxMWsgKmFyKVxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBlZXIsIHRtcCwgXHUwMDI2YWItXHUwMDNlcGVlcnMsIGxpc3QpIHtcbiBcdFx0YXRoMTFrX3BlZXJfcnhfdGlkX2NsZWFudXAoYXIsIHBlZXIpO1xuIFx0XHRhdGgxMWtfcGVlcl9yaGFzaF9kZWxldGUoYWIsIHBlZXIpO1xuK1x0XHRhdGgxMWtfbWFjX3N0YXRpb25fY2xlYW51cChwZWVyLVx1MDAzZXN0YSk7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNnBlZXItXHUwMDNlbGlzdCk7XG4gXHRcdGtmcmVlKHBlZXIpO1xuIFx0fVxuQEAgLTk4OTIsNyArOTkwOSw2IEBAIHN0YXRpYyBpbnQgYXRoMTFrX21hY19zdGF0aW9uX3JlbW92ZShzdHJ1Y3QgYXRoMTFrICphcixcbiB7XG4gXHRzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiID0gYXItXHUwMDNlYWI7XG4gXHRzdHJ1Y3QgYXRoMTFrX3ZpZiAqYXJ2aWYgPSBhdGgxMWtfdmlmX3RvX2FydmlmKHZpZik7XG4tXHRzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGEgPSBhdGgxMWtfc3RhX3RvX2Fyc3RhKHN0YSk7XG4gXHRpbnQgcmV0O1xuIFxuIFx0aWYgKGFiLVx1MDAzZWh3X3BhcmFtcy52ZGV2X3N0YXJ0X2RlbGF5IFx1MDAyNlx1MDAyNlxuQEAgLTk5MTYsMTIgKzk5MzIsNyBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmUoc3RydWN0IGF0aDExayAqYXIsXG4gXHRcdFx0ICAgc3RhLVx1MDAzZWFkZHIsIGFydmlmLVx1MDAzZXZkZXZfaWQpO1xuIFxuIFx0YXRoMTFrX21hY19kZWNfbnVtX3N0YXRpb25zKGFydmlmLCBzdGEpO1xuLVxuLVx0a2ZyZWUoYXJzdGEtXHUwMDNldHhfc3RhdHMpO1xuLVx0YXJzdGEtXHUwMDNldHhfc3RhdHMgPSBOVUxMO1xuLVxuLVx0a2ZyZWUoYXJzdGEtXHUwMDNlcnhfc3RhdHMpO1xuLVx0YXJzdGEtXHUwMDNlcnhfc3RhdHMgPSBOVUxMO1xuK1x0YXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAoc3RhKTtcbiBcbiBcdHJldHVybiByZXQ7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MDIuMzU1MDYyNjY2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQyMDE2MDc5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGF0aDExayBQYXRjaCBmb3IgVGVzdGluZyoqXG5cbk9rYXksIHNvIHRoZXJlJ3MgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuY2AuIEkgc2VlIGl0IGFkZHMgYGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwYCwgd2hpY2gsIGZyb20gdGhlIG5hbWUsIHNvdW5kcyBsaWtlIGl0J3MgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcgdXAgYHR4X3N0YXRzYCBhbmQgYHJ4X3N0YXRzYCBmcm9tIGBhcnN0YWAuIFRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGZyb20gYGF0aDExa19tYWNfcGVlcl9jbGVhbnVwX2FsbGAgYW5kIGBhdGgxMWtfbWFjX3N0YXRpb25fcmVtb3ZlYC4gSXQgc2VlbXMgbGlrZSB3ZSdyZSBmaXhpbmcgYSBtZW1vcnkgbGVhayBvciBhIHJlbGF0ZWQgaXNzdWUgd2l0aGluIHRoZSBhdGgxMWsgZHJpdmVyLlxuXG5SaWdodCwgYXRoMTFrIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggd2lyZWxlc3MgZGV2aWNlcy4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGZvciBtZSBub3cgaXM6IGhvdyBjYW4gSSB0ZXN0IHRoaXMgcGF0Y2ggZWZmZWN0aXZlbHk/IENhbiBJIHJlcHJvZHVjZSB0aGlzIGluIFFFTVU/IEkga25vdyBhdGgxMWsgc3VwcG9ydHMgYm90aCBQQ0kgYW5kIEFIQjsgaXQncyBhIHJlYWwgaGFyZHdhcmUgZHJpdmVyIGZvciBzcGVjaWZpYyBXaS1GaSBjYXJkcywgYW5kIHRoYXQgdHJpZ2dlcnMgYSB0aG91Z2h0LiBEb2VzIFFFTVUgZXZlbiBlbXVsYXRlIGF0aDExaz8gSSBkb24ndCB0aGluayBzby4gTm8sIFFFTVUgd291bGRuJ3QgZW11bGF0ZSB0aGUgc3BlY2lmaWMgaGFyZHdhcmUuIEFuZCB3aGF0IGFib3V0IG1hYzgwMjExX2h3c2ltPyBObywgdGhhdCdzIGEgc2VwYXJhdGUgZHJpdmVyIGFuZCB3aGlsZSBncmVhdCBmb3IgdGVzdGluZyB0aGUgODAyLjExIHN0YWNrIGluIGdlbmVyYWwsIGl0IGRvZXNuJ3QgZW11bGF0ZSB0aGUgYXRoMTFrIGhhcmR3YXJlIHNwZWNpZmljYWxseS5cblxuU28sIHJlYWxpc3RpY2FsbHksIHRoaXMgaXMgZ29pbmcgdG8gcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZS4gSSdsbCBuZWVkIGEgcmVhbCBhdGgxMWstYmFzZWQgV2ktRmkgY2FyZCB0byB0aG9yb3VnaGx5IHRlc3QgdGhpcyBwYXRjaC4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbSBnb2luZyB0byBkbyBhIHF1aWNrIHNlYXJjaCB3aXRoaW4gdGhlIGtlcm5lbCBzb3VyY2UgdG8gY29uZmlybSB0aGVyZSBpc24ndCBzb21lIG9ic2N1cmUgZW11bGF0aW9uIHBhdGggSSdtIG1pc3NpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MzcsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNDoxMzowNy43NzUyMjU1NTFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMwNTA4OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTFrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjY2ODMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0yPWNvbmZpZyBBVEgxMUtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTE6XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoMTFrLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MTM9Y29uZmlnIEFUSDExS19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTQ6XFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xNS1cXHRkZXBlbmRzIG9uIEFUSDExS1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTIwPWNvbmZpZyBBVEgxMUtfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIxOlxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDExayBQQ0kgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjItXFx0ZGVwZW5kcyBvbiBBVEgxMUsgXFx1MDAyNlxcdTAwMjYgUENJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MzA9Y29uZmlnIEFUSDExS19ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzozMTpcXHRib29sIFxcXCJRQ0EgYXRoMTFrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzItXFx0ZGVwZW5kcyBvbiBBVEgxMUtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0zOD1jb25maWcgQVRIMTFLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzk6XFx0Ym9vbCBcXFwiUUNBIGF0aDExayBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQwLVxcdGRlcGVuZHMgb24gQVRIMTFLIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDEtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0MjpcXHQgIEVuYWJsZSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTQ2PWNvbmZpZyBBVEgxMUtfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0NzpcXHRib29sIFxcXCJhdGgxMWsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00OC1cXHRkZXBlbmRzIG9uIEFUSDExSyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ5LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTA6XFx0ICBTZWxlY3QgdGhpcyB0byB1c2UgYXRoMTFrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz01Mj1jb25maWcgQVRIMTFLX1NQRUNUUkFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUzOlxcdGJvb2wgXFxcIlFDQSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01NC1cXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTYtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NzpcXHQgIEVuYWJsZSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTYxPWNvbmZpZyBBVEgxMUtfQ0ZSXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYyOlxcdGJvb2wgXFxcImF0aDExayBjaGFubmVsIGZyZXF1ZW5jeSByZXNwb25zZSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02My1cXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2NjpcXHQgIEVuYWJsZSBhdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2UgZHVtcCBzdXBwb3J0LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02Ny1cXHQgIFRoaXMgb3B0aW9uIGV4cG9zZXMgZGVidWdmcyBub2RlcyB0aGF0IHdpbGwgYWxsb3cgdGhlIHVzZXJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDExSykgKz0gYXRoMTFrLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjM6YXRoMTFrLXkgKz0gY29yZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTQtXFx0ICAgIGhhbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNDphdGgxMWstJChDT05GSUdfQVRIMTFLX0RFQlVHRlMpICs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI1OmF0aDExay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNjphdGgxMWstJChDT05GSUdfQVRIMTFLX1RSQUNJTkcpICs9IHRyYWNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI3OmF0aDExay0kKENPTkZJR19USEVSTUFMKSArPSB0aGVybWFsLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI4OmF0aDExay0kKENPTkZJR19BVEgxMUtfU1BFQ1RSQUwpICs9IHNwZWN0cmFsLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI5OmF0aDExay0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMwOmF0aDExay0kKENPTkZJR19ERVZfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMxOmF0aDExay0kKENPTkZJR19BVEgxMUtfQ0ZSKSArPSBjZnIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMzpvYmotJChDT05GSUdfQVRIMTFLX0FIQikgKz0gYXRoMTFrX2FoYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNDphdGgxMWtfYWhiLXkgKz0gYWhiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0FUSDExS19QQ0kpICs9IGF0aDExa19wY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mzc6YXRoMTFrX3BjaS15ICs9IG1oaS5vIHBjaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhdGgxMWtfYWhiX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNS1cXHQvKiBUT0RPOiBTaG91bGQgd2UgY2hhbmdlIHRoZSBjb21wYXRpYmxlIHN0cmluZyB0byBzb21ldGhpbmcgc2ltaWxhclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0aDExa19haGJfb2ZfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE0ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNDU6YXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHVuc2lnbmVkIGludCB2ZWN0b3IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTA9c3RhdGljIGlubGluZSB1MzJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE1MTphdGgxMWtfYWhiX2dldF93aW5kb3dfc3RhcnRfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTY2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjc6YXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE3MS1cXHQvKiBXQ042NzUwIHVzZXMgc3RhdGljIHdpbmRvdyBiYXNlZCByZWdpc3RlciBhY2Nlc3MqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTcyOlxcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzg6c3RhdGljIHUzMiBhdGgxMWtfYWhiX3dpbmRvd19yZWFkMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTgzLVxcdC8qIFdDTjY3NTAgdXNlcyBzdGF0aWMgd2luZG93IGJhc2VkIHJlZ2lzdGVyIGFjY2VzcyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTg0OlxcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTE6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfcGNpX29wcyBhdGgxMWtfYWhiX3BjaV9vcHNfd2NuNjc1MCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5Mi1cXHQud2FrZXVwID0gTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5My1cXHQucmVsZWFzZSA9IE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTQ6XFx0LmdldF9tc2lfaXJxID0gYXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk1OlxcdC53aW5kb3dfd3JpdGUzMiA9IGF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5NjpcXHQud2luZG93X3JlYWQzMiA9IGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTk3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTk6c3RhdGljIGlubGluZSB1MzIgYXRoMTFrX2FoYl9yZWFkMzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwNDpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTFrX2FoYl93cml0ZTMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwOTpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2tpbGxfdGFza2xldHMoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMy1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMTQ6XFx0XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjE2OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxNy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzE6c3RhdGljIHZvaWQgX19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM1LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzY6XFx0XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzg6XFx0XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI0ODpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9ncnBfZW5hYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNTY6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zZXRiaXQzMihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1OCBiaXQsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjA6XFx0dmFsID0gYXRoMTFrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjE6XFx0YXRoMTFrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCB8IEJJVChiaXQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jbGVhcmJpdDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2ODpcXHR2YWwgPSBhdGgxMWtfYWhiX3JlYWQzMihhYiwgb2Zmc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2OTpcXHRhdGgxMWtfYWhiX3dyaXRlMzIoYWIsIG9mZnNldCwgdmFsIFxcdTAwMjYgfkJJVChiaXQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3MC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNzI6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4My1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlc3JjX25lbnRyaWVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjg0OlxcdFxcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg2LVxcdGlmIChjZV9hdHRyLVxcdTAwM2VkZXN0X25lbnRyaWVzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODc6XFx0XFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQsIGllMl9yZWdfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODg6XFx0XFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQgKyBDRV9IT1NUX0lFXzNfU0hJRlQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODktXFx0XFx0XFx0XFx0ICAgIGllM19yZWdfYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwNC1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlc3JjX25lbnRyaWVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA1OlxcdFxcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQsIGllMV9yZWdfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDctXFx0aWYgKGNlX2F0dHItXFx1MDAzZWRlc3RfbmVudHJpZXMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwODpcXHRcXHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA5OlxcdFxcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQgKyBDRV9IT1NUX0lFXzNfU0hJRlQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTAtXFx0XFx0XFx0XFx0ICAgICAgaWUzX3JlZ19hZGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzE0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTktXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzIwOlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyMS1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzI4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19leHRfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzMzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMzQ6XFx0XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM0MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycXNfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDctXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzQ4OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0OS1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1MDpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoYWIsIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzUxLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTgtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU5OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2MC1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2MTpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2NTpzdGF0aWMgaW50IGF0aDExa19haGJfc3RhcnQoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjc6XFx0YXRoMTFrX2FoYl9jZV9pcnFzX2VuYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjg6XFx0YXRoMTFrX2NlX3J4X3Bvc3RfYnVmKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzczOnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2lycV9lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3Ny1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzc4OlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODMtXFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzg0OlxcdFxcdGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODUtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODg6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTA6XFx0X19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTE6XFx0YXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk2LVxcdGlmICghdGVzdF9iaXQoQVRIMTFLX0ZMQUdfQ1JBU0hfRkxVU0gsIFxcdTAwMjZhYi1cXHUwMDNlZGV2X2ZsYWdzKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NzpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTg6XFx0YXRoMTFrX2FoYl9zeW5jX2NlX2lycXMoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk5OlxcdGF0aDExa19haGJfa2lsbF90YXNrbGV0cyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDAtXFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNmFiLVxcdTAwM2VyeF9yZXBsZW5pc2hfcmV0cnkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDAxOlxcdGF0aDExa19jZV9jbGVhbnVwX3BpcGVzKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwMi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MDQ6c3RhdGljIGludCBhdGgxMWtfYWhiX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDA2OlxcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDA3LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxMC1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDExOlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gYm9vdCB0aGUgcmVtb3RlIHByb2Nlc3NvciBRNlxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxNjpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3Bvd2VyX2Rvd24oc3RydWN0IGF0aDExa19iYXNlICphYiwgYm9vbCBpc19zdXNwZW5kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDE3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxODpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfaW5pdF9xbWlfY2VfY29uZmlnKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MjQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDI1OlxcdHN0cnVjdCBhdGgxMWtfcW1pX2NlX2NmZyAqY2ZnID0gXFx1MDAyNmFiLVxcdTAwM2VxbWkuY2VfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDI2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MzQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzOC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDM5OlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NDk6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU0LVxcdGlmIChhYi1cXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1NTpcXHRcXHRyZXR1cm4gYXRoMTFrX3BjaWNfZnJlZV9pcnEoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU3LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1ODpcXHRcXHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTktXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ2NDpcXHRhdGgxMWtfYWhiX2ZyZWVfZXh0X2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY3OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Njgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY5OlxcdHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqY2VfcGlwZSA9IGZyb21fdGFza2xldChjZV9waXBlLCB0LCBpbnRyX3RxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3MTpcXHRhdGgxMWtfY2VfcGVyX2VuZ2luZV9zZXJ2aWNlKGNlX3BpcGUtXFx1MDAzZWFiLCBjZV9waXBlLVxcdTAwM2VwaXBlX251bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NzM6XFx0YXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKGNlX3BpcGUtXFx1MDAzZWFiLCBjZV9waXBlLVxcdTAwM2VwaXBlX251bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMWtfYWhiX2NlX2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Nzg6XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0ODM6XFx0YXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShjZV9waXBlLVxcdTAwM2VhYiwgY2VfcGlwZS1cXHUwMDNlcGlwZV9udW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDg0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTA6c3RhdGljIGludCBhdGgxMWtfYWhiX2V4dF9ncnBfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTI6XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IGNvbnRhaW5lcl9vZihuYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDkzOlxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTQtXFx0XFx0XFx0XFx0XFx0XFx0bmFwaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTU6XFx0c3RydWN0IGF0aDExa19iYXNlICphYiA9IGlycV9ncnAtXFx1MDAzZWFiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDk2LVxcdGludCB3b3JrX2RvbmU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTg6XFx0d29ya19kb25lID0gYXRoMTFrX2RwX3NlcnZpY2Vfc3JuZyhhYiwgaXJxX2dycCwgYnVkZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5OS1cXHRpZiAod29ya19kb25lIFxcdTAwM2MgYnVkZ2V0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MDAtXFx0XFx0bmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHdvcmtfZG9uZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MDE6XFx0XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwMi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMDpzdGF0aWMgaXJxcmV0dXJuX3QgYXRoMTFrX2FoYl9leHRfaW50ZXJydXB0X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTExLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMjpcXHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MTc6XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUyNDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MjY6XFx0c3RydWN0IGF0aDExa19od19wYXJhbXMgKmh3ID0gXFx1MDAyNmFiLVxcdTAwM2Vod19wYXJhbXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MjctXFx0aW50IGksIGo7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzMS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTMyOlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTMzLVxcdFxcdHUzMiBudW1faXJxID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQyLVxcdFxcdG5ldGlmX25hcGlfYWRkKGlycV9ncnAtXFx1MDAzZW5hcGlfbmRldiwgXFx1MDAyNmlycV9ncnAtXFx1MDAzZW5hcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1NDM6XFx0XFx0XFx0ICAgICAgIGF0aDExa19haGJfZXh0X2dycF9uYXBpX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NjgtXFx0XFx0XFx0XFx0XFx0XFx0cnhkbWEyaG9zdF9kZXN0aW5hdGlvbl9yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTY5OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzAtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzQtXFx0XFx0XFx0XFx0XFx0XFx0aG9zdDJyeGRtYV9ob3N0X2J1Zl9yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTc1OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzYtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODAtXFx0XFx0XFx0XFx0XFx0XFx0cHBkdV9lbmRfaW50ZXJydXB0c19tYWMxIC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU4MTpcXHRcXHRcXHRcXHRcXHRcXHRhdGgxMWtfaHdfZ2V0X21hY19mcm9tX3BkZXZfaWQoaHcsIGopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTgyLVxcdFxcdFxcdFxcdFxcdGlycV9ncnAtXFx1MDAzZWlycXNbbnVtX2lycSsrXSA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODMtXFx0XFx0XFx0XFx0XFx0XFx0cnhkbWEyaG9zdF9tb25pdG9yX3N0YXR1c19yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTg0OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODUtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTYtXFx0XFx0XFx0aXJxX3NldF9zdGF0dXNfZmxhZ3MoaXJxLCBJUlFfTk9BVVRPRU4gfCBJUlFfRElTQUJMRV9VTkxBWlkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTk3OlxcdFxcdFxcdHJldCA9IHJlcXVlc3RfaXJxKGlycSwgYXRoMTFrX2FoYl9leHRfaW50ZXJydXB0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTgtXFx0XFx0XFx0XFx0XFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDAtXFx0XFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjAxOlxcdFxcdFxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgcmVxdWVzdF9pcnEgZm9yICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjAyLVxcdFxcdFxcdFxcdFxcdCAgIGlycSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxMDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjE1LVxcdGlmIChhYi1cXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxNjpcXHRcXHRyZXR1cm4gYXRoMTFrX3BjaWNfY29uZmlnX2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2MjA6XFx0XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjIyOlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyMy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjI3OlxcdFxcdHRhc2tsZXRfc2V0dXAoXFx1MDAyNmNlX3BpcGUtXFx1MDAzZWludHJfdHEsIGF0aDExa19haGJfY2VfdGFza2xldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjgtXFx0XFx0aXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUoYWItXFx1MDAzZXBkZXYsIGlycV9uYW1lW2lycV9pZHhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyOTpcXHRcXHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aDExa19haGJfY2VfaW50ZXJydXB0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MzAtXFx0XFx0XFx0XFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLCBpcnFfbmFtZVtpcnFfaWR4XSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjM4LVxcdC8qIENvbmZpZ3VyZSBleHRlcm5hbCBpbnRlcnJ1cHRzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2Mzk6XFx0cmV0ID0gYXRoMTFrX2FoYl9jb25maWdfZXh0X2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY0NDpzdGF0aWMgaW50IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgc2VydmljZV9pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0NS1cXHRcXHRcXHRcXHRcXHQgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Njg3OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfc3VzcGVuZChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY4OTpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY5MC1cXHR1MzIgd2FrZV9pcnE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcwMC1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MDE6XFx0XFx0YXRoMTFrX2VycihhYiwgXFxcImZhaWxlZCB0byBlbmFibGUgd2FrZXVwIGlycSA6JWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MDItXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzEyLVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcxMzpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIHNlbmQgc21wMnAgcG93ZXIgc2F2ZSBlbnRlciBjbWQgOiVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE0LVxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcxNzpcXHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXFxcImRldmljZSBzdXNwZW5kZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjI6c3RhdGljIGludCBhdGgxMWtfYWhiX2hpZl9yZXN1bWUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjQ6XFx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjUtXFx0dTMyIHdha2VfaXJxO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzUtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzM2OlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gZGlzYWJsZSB3YWtldXAgaXJxOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTczNy1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDktXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzUwOlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gc2VuZCBzbXAycCBwb3dlciBzYXZlIGVudGVyIGNtZCA6JWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTEtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzU1LVxcdGlmIChyZXQgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzU2OlxcdFxcdGF0aDExa193YXJuKGFiLCBcXFwidGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHdvdyB3YWtldXAgY29tcGxldGlvblxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTctXFx0XFx0cmV0dXJuIC1FVElNRURPVVQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MDpcXHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXFxcImRldmljZSByZXN1bWVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX2hpZl9vcHMgYXRoMTFrX2FoYl9oaWZfb3BzX2lwcTgwNzQgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NjY6XFx0LnN0YXJ0ID0gYXRoMTFrX2FoYl9zdGFydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2NzpcXHQuc3RvcCA9IGF0aDExa19haGJfc3RvcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2ODpcXHQucmVhZDMyID0gYXRoMTFrX2FoYl9yZWFkMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Njk6XFx0LndyaXRlMzIgPSBhdGgxMWtfYWhiX3dyaXRlMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzAtXFx0LnJlYWQgPSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzcxOlxcdC5pcnFfZW5hYmxlID0gYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MjpcXHQuaXJxX2Rpc2FibGUgPSBhdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MzpcXHQubWFwX3NlcnZpY2VfdG9fcGlwZSA9IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NDpcXHQucG93ZXJfZG93biA9IGF0aDExa19haGJfcG93ZXJfZG93bixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NTpcXHQucG93ZXJfdXAgPSBhdGgxMWtfYWhiX3Bvd2VyX3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc2LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaGlmX29wcyBhdGgxMWtfYWhiX2hpZl9vcHNfd2NuNjc1MCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcXHQuc3RhcnQgPSBhdGgxMWtfcGNpY19zdGFydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MDpcXHQuc3RvcCA9IGF0aDExa19wY2ljX3N0b3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODE6XFx0LnJlYWQzMiA9IGF0aDExa19wY2ljX3JlYWQzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MjpcXHQud3JpdGUzMiA9IGF0aDExa19wY2ljX3dyaXRlMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODMtXFx0LnJlYWQgPSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg0OlxcdC5pcnFfZW5hYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9lbmFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODU6XFx0LmlycV9kaXNhYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9kaXNhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg2OlxcdC5nZXRfbXNpX2FkZHJlc3MgPSAgYXRoMTFrX3BjaWNfZ2V0X21zaV9hZGRyZXNzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg3OlxcdC5nZXRfdXNlcl9tc2lfdmVjdG9yID0gYXRoMTFrX3BjaWNfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODg6XFx0Lm1hcF9zZXJ2aWNlX3RvX3BpcGUgPSBhdGgxMWtfcGNpY19tYXBfc2VydmljZV90b19waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg5OlxcdC5wb3dlcl9kb3duID0gYXRoMTFrX2FoYl9wb3dlcl9kb3duLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkwOlxcdC5wb3dlcl91cCA9IGF0aDExa19haGJfcG93ZXJfdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTE6XFx0LnN1c3BlbmQgPSBhdGgxMWtfYWhiX2hpZl9zdXNwZW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkyOlxcdC5yZXN1bWUgPSBhdGgxMWtfYWhiX2hpZl9yZXN1bWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTM6XFx0LmNlX2lycV9lbmFibGUgPSBhdGgxMWtfcGNpX2VuYWJsZV9jZV9pcnFzX2V4Y2VwdF93YWtlX2lycSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NDpcXHQuY2VfaXJxX2Rpc2FibGUgPSBhdGgxMWtfcGNpX2Rpc2FibGVfY2VfaXJxc19leGNlcHRfd2FrZV9pcnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTUtfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NzpzdGF0aWMgaW50IGF0aDExa19jb3JlX2dldF9ycHJvYyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5OTpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwMC1cXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhYi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDQtXFx0aWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRldi1cXHUwMDNlb2Zfbm9kZSwgXFxcInFjb20scnByb2NcXFwiLCBcXHUwMDI2cnByb2NfcGhhbmRsZSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgwNTpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGdldCBxNl9ycHJvYyBoYW5kbGVcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODA2LVxcdFxcdHJldHVybiAtRU5PRU5UO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4MTc6c3RhdGljIGludCBhdGgxMWtfYWhiX3NldHVwX21zaV9yZXNvdXJjZXMoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgxOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgyNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyNzpcXHRyZXQgPSBhdGgxMWtfcGNpY19pbml0X21zaV9jb25maWcoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODI4LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyOTpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGluaXQgbXNpIGNvbmZpZzogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MzAtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNDoxMzowNy44MjgyODQ0MzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4OTkwNDk5OTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgVGVzdGFiaWxpdHkgb2YgdGhlIGF0aDExayBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBuZWVkIHRvIGRldGVybWluZSBpZiBpdCdzIFwiV29ydGhGdXp6aW5nLlwiIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoZSBhdGgxMWsgZHJpdmVyLCBiZWluZyBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgcHJvYmFibHkgcmVxdWlyZXMgKmFjdHVhbCogaGFyZHdhcmUgb3IgYSBkZWNlbnQgZW11bGF0aW9uLiBJIHF1aWNrbHkgZGlzbWlzcyB0aGUgaWRlYSBvZiBgbWFjODAyMTFfaHdzaW1gIGJlY2F1c2UsIGZyb20gd2hhdCBJIHVuZGVyc3RhbmQsIHRoYXQncyBqdXN0IGEgc29mdHdhcmUgc2ltdWxhdG9yIGZvciBtYWM4MDIxMSwgbm90IHNwZWNpZmljYWxseSBmb3IgYXRoMTFrLiBDYW4gSSBnZXQgYXdheSB3aXRoIHJ1bm5pbmcgdGhpcyBpbiBRRU1VPyBObywgZGVmaW5pdGVseSBub3QuIFFFTVUgZG9lc24ndCBlbXVsYXRlIHRoZSBzcGVjaWZpYyBhdGgxMWsgaGFyZHdhcmUuXG5cblRoZSBpbnN0cnVjdGlvbnMgYXJlIHZlcnkgY2xlYXI6IGlmIHRoZSBjb2RlIHJlbGllcyBvbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycywgb3IgaW52b2x2ZXMgY29kZSBwYXRocyBpbmFjY2Vzc2libGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB0aGVuIGl0J3MgYSBuby1nbyBmb3IgZnV6emluZy4gQXRoMTFrIGlzLCB1bmRvdWJ0ZWRseSwgYSB2ZW5kb3Itc3BlY2lmaWMgV2ktRmkgZHJpdmVyLiBJdCdzIGRlc2lnbmVkIHRvIHVzZSBwaHlzaWNhbCBQQ0llIG9yIEFIQiBoYXJkd2FyZS4gU28sIGNhbiBpdCBiZSBmdXp6LXRlc3RlZCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudD9cblxuQWxyaWdodCwgbGV0J3MgZXhwbG9yZSBpZiB0aGVyZSdzIGFueSBjbGV2ZXIgdHJpY2tlcnkgb3IgbW9jayBpbXBsZW1lbnRhdGlvbnMuIEknbGwgc2NhbiB0aHJvdWdoIGBody9gIGFuZCBgZHJpdmVycy9gIHRvIHNlZSBpZiB0aGVyZSdzIGEgc29mdHdhcmUgZW11bGF0aW9uIGNvbXBvbmVudC4gV2FpdCwgSSBzZWUgbWVudGlvbiBvZiBgc3l6Ym90YCB0ZXN0aW5nIGF0aDExay4gKkRpZCogc3l6Ym90IGFjdHVhbGx5IGZpbmQgc29tZXRoaW5nIHNwZWNpZmljIHRvIHRoaXMgZHJpdmVyPyBUaGUgY29tbWl0IG1lc3NhZ2Ugc2VlbXMgZ2VuZXJpYywgYW5kIGl0J3MgcHJvYmFibHkgcnVubmluZyBgbWFjODAyMTFfaHdzaW1gLCBub3QgZGlyZWN0IGF0aDExayB0ZXN0cy4gSXQgbWlnaHQgYmUgYSBidWcgcmVwb3J0ZWQgYnkgYSBodW1hbiwgYW5kIGl04oCZcyBqdXN0IGJlaW5nIHRlc3RlZCBoZXJlLlxuXG5UaGUgaW5zdHJ1Y3Rpb25zICpleHBsaWNpdGx5KiBleGNsdWRlIGNvZGUgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLCBhbmQgdGhhdCBpbmNsdWRlcyBhdGgxMWshIFRoZSBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgYmVjYXVzZSB0aGF0J3MgaG93IGl0J3MgZGVzaWduZWQuIEl0J3MgYSBXaS1GaSBkcml2ZXIgdGhhdCByZWdpc3RlcnMgd2l0aCBtYWM4MDIxMSwgYnV0IGl0cyBwcm9iZSBmdW5jdGlvbnMsIGBhdGgxMWtfcGNpX3Byb2JlYCBvciBgYXRoMTFrX2FoYl9wcm9iZWAsIGFyZSBvbmx5IGV2ZXIgY2FsbGVkIGlmIHRoZSBoYXJkd2FyZSBpcyBwcmVzZW50LCBlaXRoZXIgUENJIG9yIEFIQi4gSWYgdGhlIGhhcmR3YXJlIGlzbid0IGRldGVjdGVkLCB0aGUgZHJpdmVyIGlzIG5ldmVyIGluaXRpYWxpemVkLiBUaHVzLCBJJ20gcHJldHR5IHN1cmUgdGhlcmUncyBubyB3YXkgdG8gcmVhY2ggYGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmVgIG9yIGBhdGgxMWtfbWFjX3BlZXJfY2xlYW51cF9hbGxgIHdpdGhvdXQgaXQuIEJhc2VkIG9uIHRoZSByZXF1aXJlbWVudHMsIEkgd291bGQgcmF0ZSB0aGlzIGFzIFwiV29ydGhGdXp6aW5nPWZhbHNlXCIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4MjEwLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA0OjEzOjE2LjgxODc4NzY2OFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjUyNjYyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMWtfcGNpX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM9OTQwPXN0YXRpYyBpbnQgYXRoMTFrX3BjaV9zZXRfaXJxX2FmZmluaXR5X2hpbnQoc3RydWN0IGF0aDExa19wY2kgKmFiX3BjaSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtOTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM6OTQ5OnN0YXRpYyBpbnQgYXRoMTFrX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTk1MC1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTEyOTY9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGF0aDExa19wY2lfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMjk4LVxcdC5pZF90YWJsZSA9IGF0aDExa19wY2lfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzoxMjk5OlxcdC5wcm9iZSA9IGF0aDExa19wY2lfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMzAwLVxcdC5yZW1vdmUgPSBhdGgxMWtfcGNpX3JlbW92ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MTYuODY1MzE3OTc3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQ1OTY5NTA5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIERlY2lzaW9uIGZvciB0aGUgYXRoMTFrIFBDSSBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kLCB5ZXAsIGl0J3MgZGVmaW5pdGVseSBwYXJ0IG9mIHRoZSBQQ0kgZHJpdmVyLiBUaGUgcXVlc3Rpb24gaXM6IGNhbiBJIGFjdHVhbGx5IHJlYWNoIGl0IGR1cmluZyBmdXp6aW5nPyBBbmQgdGhlIGFuc3dlciwgYWZ0ZXIgYSBiaXQgb2YgY29uc2lkZXJhdGlvbiwgaXMgbm8uIFRoZXJlJ3Mgbm8gc3RhbmRhcmQgUUVNVSBlbXVsYXRpb24gdGhhdCBzdXBwb3J0cyBhdGgxMWssIHdoaWNoIG1lYW5zIGFueSBvZiBteSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB0aGF0IGVudmlyb25tZW50LlxuXG5JIGhhZCB0byBkb3VibGUtY2hlY2ssIHRob3VnaC4gTWF5YmUgdGhlcmUgd2FzIHNvbWUgY2xldmVyIHNvZnR3YXJlIHNpbXVsYXRvciBJIHdhcyBtaXNzaW5nLiBCdXQsIG5vLiBtYWM4MDIxMV9od3NpbSwgd2hpbGUgaW50ZXJlc3RpbmcsIGlzIGEgKnNvZnR3YXJlKiBzaW11bGF0b3Igb2YgdGhlICpoYXJkd2FyZSogaXRzZWxmLiBJdCBkb2Vzbid0IGFjdHVhbGx5IGludGVyYWN0IHdpdGggb3IgdXNlIHRoZSBhdGgxMWsgZHJpdmVyLiBUaGF0IGRyaXZlciBpcyAqc3BlY2lmaWNhbGx5KiBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgYW5kIHJlbGllcyBvbiB0aGF0IHBoeXNpY2FsIFBDSS9BSEIgaGFyZHdhcmUuIEJlY2F1c2UgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhhdCBoYXJkd2FyZSwgdGhlIGRyaXZlciB3b24ndCBwcm9iZSwgYW5kIG5vbmUgb2YgaXRzIGZ1bmN0aW9ucyB3aWxsIGJlIHJlYWNoYWJsZS4gSXQncyB2ZW5kb3Itc3BlY2lmaWMsIHBsYWluIGFuZCBzaW1wbGUuIFRoZXJlZm9yZSwgZnV6emluZyB0aGlzIHBhcnRpY3VsYXIgY29kZSB3b3VsZCBiZSBhIHdhc3RlIG9mIHJlc291cmNlcy5cblxuU28sIEknbSBnb2luZyB0byByZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlLiBJJ2xsIHVzZSB0aGUgc2V0LXJlc3VsdHMgdG9vbCB0byBkb2N1bWVudCB0aGlzIGRlY2lzaW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTc5NiwiT3V0cHV0VG9rZW5zIjoxMDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MjIuMzI1MDE1MjcyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhdGgxMWssIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBXaS1GaSBjYXJkcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgUENJIG9yIEFIQiBoYXJkd2FyZSB0byBwcm9iZSBhbmQgaW5pdGlhbGl6ZSwgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdc9vl[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-01 03:53:33 +0000 UTC FinishedAt: 2026-08-01 04:13:23 +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+CgkJCTx0ZD4yMDI2LzA4LzAxIDA0OjEzPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNDoxMzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGQxMmU5ZmY5NmNmNTJhMzAwN2Y0NjJkNmM4NmQzODMxMzZkZTU2OTBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDA0OjEzOjAxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jXG5pbmRleCAyZDU1Y2RjNGQxNjVkLi5hZTkxYjU3Yzg0MjJmIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuY1xuQEAgLTg3Myw2ICYjNDM7ODczLDIyIEBAIHN0YXRpYyBpbnQgYXRoMTFrX21hY19zZXRfa2lja291dChzdHJ1Y3QgYXRoMTFrX3ZpZiAqYXJ2aWYpXG4gXHRyZXR1cm4gMDtcbiB9XG4gXG4mIzQzO3N0YXRpYyB2b2lkIGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4mIzQzO3tcbiYjNDM7XHRzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGE7XG4mIzQzO1xuJiM0MztcdGlmICghc3RhKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRhcnN0YSA9IGF0aDExa19zdGFfdG9fYXJzdGEoc3RhKTtcbiYjNDM7XG4mIzQzO1x0a2ZyZWUoYXJzdGEtXHUwMDNldHhfc3RhdHMpO1xuJiM0MztcdGFyc3RhLVx1MDAzZXR4X3N0YXRzID0gTlVMTDtcbiYjNDM7XG4mIzQzO1x0a2ZyZWUoYXJzdGEtXHUwMDNlcnhfc3RhdHMpO1xuJiM0MztcdGFyc3RhLVx1MDAzZXJ4X3N0YXRzID0gTlVMTDtcbiYjNDM7fVxuJiM0MztcbiB2b2lkIGF0aDExa19tYWNfcGVlcl9jbGVhbnVwX2FsbChzdHJ1Y3QgYXRoMTFrICphcilcbiB7XG4gXHRzdHJ1Y3QgYXRoMTFrX3BlZXIgKnBlZXIsICp0bXA7XG5AQCAtODg1LDYgJiM0Mzs5MDEsNyBAQCB2b2lkIGF0aDExa19tYWNfcGVlcl9jbGVhbnVwX2FsbChzdHJ1Y3QgYXRoMTFrICphcilcbiBcdGxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShwZWVyLCB0bXAsIFx1MDAyNmFiLVx1MDAzZXBlZXJzLCBsaXN0KSB7XG4gXHRcdGF0aDExa19wZWVyX3J4X3RpZF9jbGVhbnVwKGFyLCBwZWVyKTtcbiBcdFx0YXRoMTFrX3BlZXJfcmhhc2hfZGVsZXRlKGFiLCBwZWVyKTtcbiYjNDM7XHRcdGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHBlZXItXHUwMDNlc3RhKTtcbiBcdFx0bGlzdF9kZWwoXHUwMDI2cGVlci1cdTAwM2VsaXN0KTtcbiBcdFx0a2ZyZWUocGVlcik7XG4gXHR9XG5AQCAtOTg5Miw3ICYjNDM7OTkwOSw2IEBAIHN0YXRpYyBpbnQgYXRoMTFrX21hY19zdGF0aW9uX3JlbW92ZShzdHJ1Y3QgYXRoMTFrICphcixcbiB7XG4gXHRzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiID0gYXItXHUwMDNlYWI7XG4gXHRzdHJ1Y3QgYXRoMTFrX3ZpZiAqYXJ2aWYgPSBhdGgxMWtfdmlmX3RvX2FydmlmKHZpZik7XG4tXHRzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGEgPSBhdGgxMWtfc3RhX3RvX2Fyc3RhKHN0YSk7XG4gXHRpbnQgcmV0O1xuIFxuIFx0aWYgKGFiLVx1MDAzZWh3X3BhcmFtcy52ZGV2X3N0YXJ0X2RlbGF5IFx1MDAyNlx1MDAyNlxuQEAgLTk5MTYsMTIgJiM0Mzs5OTMyLDcgQEAgc3RhdGljIGludCBhdGgxMWtfbWFjX3N0YXRpb25fcmVtb3ZlKHN0cnVjdCBhdGgxMWsgKmFyLFxuIFx0XHRcdCAgIHN0YS1cdTAwM2VhZGRyLCBhcnZpZi1cdTAwM2V2ZGV2X2lkKTtcbiBcbiBcdGF0aDExa19tYWNfZGVjX251bV9zdGF0aW9ucyhhcnZpZiwgc3RhKTtcbi1cbi1cdGtmcmVlKGFyc3RhLVx1MDAzZXR4X3N0YXRzKTtcbi1cdGFyc3RhLVx1MDAzZXR4X3N0YXRzID0gTlVMTDtcbi1cbi1cdGtmcmVlKGFyc3RhLVx1MDAzZXJ4X3N0YXRzKTtcbi1cdGFyc3RhLVx1MDAzZXJ4X3N0YXRzID0gTlVMTDtcbiYjNDM7XHRhdGgxMWtfbWFjX3N0YXRpb25fY2xlYW51cChzdGEpO1xuIFxuIFx0cmV0dXJuIHJldDtcbiB9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDEgMDQ6MTM8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGQxMmU5ZmY5NmNmNTJhMzAwN2Y0NjJkNmM4NmQzODMxMzZkZTU2OTAKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEF1ZyAxIDA0OjEzOjAxIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmMKaW5kZXggMmQ1NWNkYzRkMTY1ZC4uYWU5MWI1N2M4NDIyZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jCkBAIC04NzMsNiAmIzQzOzg3MywyMiBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc2V0X2tpY2tvdXQoc3RydWN0IGF0aDExa192aWYgKmFydmlmKQogCXJldHVybiAwOwogfQogCiYjNDM7c3RhdGljIHZvaWQgYXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAoc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSkKJiM0Mzt7CiYjNDM7CXN0cnVjdCBhdGgxMWtfc3RhICphcnN0YTsKJiM0MzsKJiM0MzsJaWYgKCFzdGEpCiYjNDM7CQlyZXR1cm47CiYjNDM7CiYjNDM7CWFyc3RhID0gYXRoMTFrX3N0YV90b19hcnN0YShzdGEpOwomIzQzOwomIzQzOwlrZnJlZShhcnN0YS0mZ3Q7dHhfc3RhdHMpOwomIzQzOwlhcnN0YS0mZ3Q7dHhfc3RhdHMgPSBOVUxMOwomIzQzOwomIzQzOwlrZnJlZShhcnN0YS0mZ3Q7cnhfc3RhdHMpOwomIzQzOwlhcnN0YS0mZ3Q7cnhfc3RhdHMgPSBOVUxMOwomIzQzO30KJiM0MzsKIHZvaWQgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsKHN0cnVjdCBhdGgxMWsgKmFyKQogewogCXN0cnVjdCBhdGgxMWtfcGVlciAqcGVlciwgKnRtcDsKQEAgLTg4NSw2ICYjNDM7OTAxLDcgQEAgdm9pZCBhdGgxMWtfbWFjX3BlZXJfY2xlYW51cF9hbGwoc3RydWN0IGF0aDExayAqYXIpCiAJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBlZXIsIHRtcCwgJmFtcDthYi0mZ3Q7cGVlcnMsIGxpc3QpIHsKIAkJYXRoMTFrX3BlZXJfcnhfdGlkX2NsZWFudXAoYXIsIHBlZXIpOwogCQlhdGgxMWtfcGVlcl9yaGFzaF9kZWxldGUoYWIsIHBlZXIpOwomIzQzOwkJYXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAocGVlci0mZ3Q7c3RhKTsKIAkJbGlzdF9kZWwoJmFtcDtwZWVyLSZndDtsaXN0KTsKIAkJa2ZyZWUocGVlcik7CiAJfQpAQCAtOTg5Miw3ICYjNDM7OTkwOSw2IEBAIHN0YXRpYyBpbnQgYXRoMTFrX21hY19zdGF0aW9uX3JlbW92ZShzdHJ1Y3QgYXRoMTFrICphciwKIHsKIAlzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiID0gYXItJmd0O2FiOwogCXN0cnVjdCBhdGgxMWtfdmlmICphcnZpZiA9IGF0aDExa192aWZfdG9fYXJ2aWYodmlmKTsKLQlzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGEgPSBhdGgxMWtfc3RhX3RvX2Fyc3RhKHN0YSk7CiAJaW50IHJldDsKIAogCWlmIChhYi0mZ3Q7aHdfcGFyYW1zLnZkZXZfc3RhcnRfZGVsYXkgJmFtcDsmYW1wOwpAQCAtOTkxNiwxMiAmIzQzOzk5MzIsNyBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmUoc3RydWN0IGF0aDExayAqYXIsCiAJCQkgICBzdGEtJmd0O2FkZHIsIGFydmlmLSZndDt2ZGV2X2lkKTsKIAogCWF0aDExa19tYWNfZGVjX251bV9zdGF0aW9ucyhhcnZpZiwgc3RhKTsKLQotCWtmcmVlKGFyc3RhLSZndDt0eF9zdGF0cyk7Ci0JYXJzdGEtJmd0O3R4X3N0YXRzID0gTlVMTDsKLQotCWtmcmVlKGFyc3RhLSZndDtyeF9zdGF0cyk7Ci0JYXJzdGEtJmd0O3J4X3N0YXRzID0gTlVMTDsKJiM0MzsJYXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAoc3RhKTsKIAogCXJldHVybiByZXQ7CiB9CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA0OjEzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MzcKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAyNzUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBhdGgxMWsgUGF0Y2ggZm9yIFRlc3RpbmcqKgoKT2theSwgc28gdGhlcmUmIzM5O3MgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuY2AuIEkgc2VlIGl0IGFkZHMgYGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwYCwgd2hpY2gsIGZyb20gdGhlIG5hbWUsIHNvdW5kcyBsaWtlIGl0JiMzOTtzIHJlc3BvbnNpYmxlIGZvciBmcmVlaW5nIHVwIGB0eF9zdGF0c2AgYW5kIGByeF9zdGF0c2AgZnJvbSBgYXJzdGFgLiBUaGlzIGZ1bmN0aW9uIGlzIGJlaW5nIGNhbGxlZCBmcm9tIGBhdGgxMWtfbWFjX3BlZXJfY2xlYW51cF9hbGxgIGFuZCBgYXRoMTFrX21hY19zdGF0aW9uX3JlbW92ZWAuIEl0IHNlZW1zIGxpa2Ugd2UmIzM5O3JlIGZpeGluZyBhIG1lbW9yeSBsZWFrIG9yIGEgcmVsYXRlZCBpc3N1ZSB3aXRoaW4gdGhlIGF0aDExayBkcml2ZXIuCgpSaWdodCwgYXRoMTFrIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggd2lyZWxlc3MgZGV2aWNlcy4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGZvciBtZSBub3cgaXM6IGhvdyBjYW4gSSB0ZXN0IHRoaXMgcGF0Y2ggZWZmZWN0aXZlbHk/IENhbiBJIHJlcHJvZHVjZSB0aGlzIGluIFFFTVU/IEkga25vdyBhdGgxMWsgc3VwcG9ydHMgYm90aCBQQ0kgYW5kIEFIQjsgaXQmIzM5O3MgYSByZWFsIGhhcmR3YXJlIGRyaXZlciBmb3Igc3BlY2lmaWMgV2ktRmkgY2FyZHMsIGFuZCB0aGF0IHRyaWdnZXJzIGEgdGhvdWdodC4gRG9lcyBRRU1VIGV2ZW4gZW11bGF0ZSBhdGgxMWs/IEkgZG9uJiMzOTt0IHRoaW5rIHNvLiBObywgUUVNVSB3b3VsZG4mIzM5O3QgZW11bGF0ZSB0aGUgc3BlY2lmaWMgaGFyZHdhcmUuIEFuZCB3aGF0IGFib3V0IG1hYzgwMjExX2h3c2ltPyBObywgdGhhdCYjMzk7cyBhIHNlcGFyYXRlIGRyaXZlciBhbmQgd2hpbGUgZ3JlYXQgZm9yIHRlc3RpbmcgdGhlIDgwMi4xMSBzdGFjayBpbiBnZW5lcmFsLCBpdCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBhdGgxMWsgaGFyZHdhcmUgc3BlY2lmaWNhbGx5LgoKU28sIHJlYWxpc3RpY2FsbHksIHRoaXMgaXMgZ29pbmcgdG8gcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZS4gSSYjMzk7bGwgbmVlZCBhIHJlYWwgYXRoMTFrLWJhc2VkIFdpLUZpIGNhcmQgdG8gdGhvcm91Z2hseSB0ZXN0IHRoaXMgcGF0Y2guIEp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBJJiMzOTttIGdvaW5nIHRvIGRvIGEgcXVpY2sgc2VhcmNoIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZSB0byBjb25maXJtIHRoZXJlIGlzbiYjMzk7dCBzb21lIG9ic2N1cmUgZW11bGF0aW9uIHBhdGggSSYjMzk7bSBtaXNzaW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA0OjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDExayYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyNjY4MyBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTI9Y29uZmlnIEFUSDExS1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoxMTpcdCAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQmIzM5O2xsIGJlIGNhbGxlZCBhdGgxMWsuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MTM9Y29uZmlnIEFUSDExS19BSEJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzoxNDpcdHRyaXN0YXRlIFwmIzM0O0F0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMTUtXHRkZXBlbmRzIG9uIEFUSDExS1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0yMD1jb25maWcgQVRIMTFLX1BDSVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIxOlx0dHJpc3RhdGUgXCYjMzQ7QXRoZXJvcyBhdGgxMWsgUENJIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0yMi1cdGRlcGVuZHMgb24gQVRIMTFLIFx1MDAyNlx1MDAyNiBQQ0lcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MzA9Y29uZmlnIEFUSDExS19ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjMxOlx0Ym9vbCBcJiMzNDtRQ0EgYXRoMTFrIGRlYnVnZ2luZ1wmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTMyLVx0ZGVwZW5kcyBvbiBBVEgxMUtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9Mzg9Y29uZmlnIEFUSDExS19ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzk6XHRib29sIFwmIzM0O1FDQSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDAtXHRkZXBlbmRzIG9uIEFUSDExSyBcdTAwMjZcdTAwMjYgREVCVUdfRlMgXHUwMDI2XHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00MS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0MjpcdCAgRW5hYmxlIGF0aDExayBkZWJ1Z2ZzIHN1cHBvcnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00My1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9NDY9Y29uZmlnIEFUSDExS19UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NDc6XHRib29sIFwmIzM0O2F0aDExayB0cmFjaW5nIHN1cHBvcnRcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00OC1cdGRlcGVuZHMgb24gQVRIMTFLIFx1MDAyNlx1MDAyNiBFVkVOVF9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDktXHRoZWxwXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTA6XHQgIFNlbGVjdCB0aGlzIHRvIHVzZSBhdGgxMWsgdHJhY2luZyBpbmZyYXN0cnVjdHVyZS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz01Mj1jb25maWcgQVRIMTFLX1NQRUNUUkFMXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTM6XHRib29sIFwmIzM0O1FDQSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTQtXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU2LVx0aGVscFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjU3Olx0ICBFbmFibGUgYXRoMTFrIHNwZWN0cmFsIHNjYW4gc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz02MT1jb25maWcgQVRIMTFLX0NGUlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYyOlx0Ym9vbCBcJiMzNDthdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2Ugc3VwcG9ydFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTYzLVx0ZGVwZW5kcyBvbiBBVEgxMUtfREVCVUdGU1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02NS1cdGhlbHBcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2NjpcdCAgRW5hYmxlIGF0aDExayBjaGFubmVsIGZyZXF1ZW5jeSByZXNwb25zZSBkdW1wIHN1cHBvcnQuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjctXHQgIFRoaXMgb3B0aW9uIGV4cG9zZXMgZGVidWdmcyBub2RlcyB0aGF0IHdpbGwgYWxsb3cgdGhlIHVzZXJcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDExSykgJiM0Mzs9IGF0aDExay5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjM6YXRoMTFrLXkgJiM0Mzs9IGNvcmUubyBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS00LVx0ICAgIGhhbC5vIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0yMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MjQ6YXRoMTFrLSQoQ09ORklHX0FUSDExS19ERUJVR0ZTKSAmIzQzOz0gZGVidWdmcy5vIGRlYnVnZnNfaHR0X3N0YXRzLm8gZGVidWdmc19zdGEub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNTphdGgxMWstJChDT05GSUdfTkw4MDIxMV9URVNUTU9ERSkgJiM0Mzs9IHRlc3Rtb2RlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MjY6YXRoMTFrLSQoQ09ORklHX0FUSDExS19UUkFDSU5HKSAmIzQzOz0gdHJhY2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNzphdGgxMWstJChDT05GSUdfVEhFUk1BTCkgJiM0Mzs9IHRoZXJtYWwub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyODphdGgxMWstJChDT05GSUdfQVRIMTFLX1NQRUNUUkFMKSAmIzQzOz0gc3BlY3RyYWwub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyOTphdGgxMWstJChDT05GSUdfUE0pICYjNDM7PSB3b3cub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMDphdGgxMWstJChDT05GSUdfREVWX0NPUkVEVU1QKSAmIzQzOz0gY29yZWR1bXAub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMTphdGgxMWstJChDT05GSUdfQVRIMTFLX0NGUikgJiM0Mzs9IGNmci5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMzpvYmotJChDT05GSUdfQVRIMTFLX0FIQikgJiM0Mzs9IGF0aDExa19haGIub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNDphdGgxMWtfYWhiLXkgJiM0Mzs9IGFoYi5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNjpvYmotJChDT05GSUdfQVRIMTFLX1BDSSkgJiM0Mzs9IGF0aDExa19wY2kub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNzphdGgxMWtfcGNpLXkgJiM0Mzs9IG1oaS5vIHBjaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI0OnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGF0aDExa19haGJfb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjUtXHQvKiBUT0RPOiBTaG91bGQgd2UgY2hhbmdlIHRoZSBjb21wYXRpYmxlIHN0cmluZyB0byBzb21ldGhpbmcgc2ltaWxhclxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0aDExa19haGJfb2ZfbWF0Y2gpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE0ND1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE0NTphdGgxMWtfYWhiX2dldF9tc2lfaXJxX3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdW5zaWduZWQgaW50IHZlY3RvcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTQ2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE1MD1zdGF0aWMgaW5saW5lIHUzMlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNTE6YXRoMTFrX2FoYl9nZXRfd2luZG93X3N0YXJ0X3djbjY3NTAoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTUyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE2Nj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjc6YXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTY4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE3MS1cdC8qIFdDTjY3NTAgdXNlcyBzdGF0aWMgd2luZG93IGJhc2VkIHJlZ2lzdGVyIGFjY2VzcyovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE3MjpcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE3ODpzdGF0aWMgdTMyIGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE3OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xODMtXHQvKiBXQ042NzUwIHVzZXMgc3RhdGljIHdpbmRvdyBiYXNlZCByZWdpc3RlciBhY2Nlc3MgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTg0Olx0d2luZG93X3N0YXJ0ID0gYXRoMTFrX2FoYl9nZXRfd2luZG93X3N0YXJ0X3djbjY3NTAoYWIsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE4NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTkxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX3BjaV9vcHMgYXRoMTFrX2FoYl9wY2lfb3BzX3djbjY3NTAgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5Mi1cdC53YWtldXAgPSBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTMtXHQucmVsZWFzZSA9IE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5NDpcdC5nZXRfbXNpX2lycSA9IGF0aDExa19haGJfZ2V0X21zaV9pcnFfd2NuNjc1MCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk1Olx0LndpbmRvd193cml0ZTMyID0gYXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTY6XHQud2luZG93X3JlYWQzMiA9IGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTctfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTk6c3RhdGljIGlubGluZSB1MzIgYXRoMTFrX2FoYl9yZWFkMzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjAwLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjA0OnN0YXRpYyBpbmxpbmUgdm9pZCBhdGgxMWtfYWhiX3dyaXRlMzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldCwgdTMyIHZhbHVlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMDUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjA4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMDk6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9raWxsX3Rhc2tsZXRzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMTMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIxNDpcdFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXHUwMDI2YWItXHUwMDNlY2UuY2VfcGlwZVtpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMTY6XHRcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFx1MDAyNiBDRV9BVFRSX0RJU19JTlRSKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMTctXHRcdFx0Y29udGludWU7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMjItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIyMzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9ncnBfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMjQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzE6c3RhdGljIHZvaWQgX19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM1LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIzNjpcdFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFx1MDAyNmFiLVx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIzODpcdFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIzOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjQ4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoc3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjQ5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjU2OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc2V0Yml0MzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTggYml0LCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjU5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjA6XHR2YWwgPSBhdGgxMWtfYWhiX3JlYWQzMihhYiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjYxOlx0YXRoMTFrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCB8IEJJVChiaXQpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjYyLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjYzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jbGVhcmJpdDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjY1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjY4Olx0dmFsID0gYXRoMTFrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2OTpcdGF0aDExa19haGJfd3JpdGUzMihhYiwgb2Zmc2V0LCB2YWwgXHUwMDI2IH5CSVQoYml0KSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3MC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjcyOnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxX2VuYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgY2VfaWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODMtXHRpZiAoY2VfYXR0ci1cdTAwM2VzcmNfbmVudHJpZXMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI4NDpcdFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQsIGllMV9yZWdfYWRkcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg2LVx0aWYgKGNlX2F0dHItXHUwMDNlZGVzdF9uZW50cmllcykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODc6XHRcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODg6XHRcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkICYjNDM7IENFX0hPU1RfSUVfM19TSElGVCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg5LVx0XHRcdFx0ICAgIGllM19yZWdfYWRkcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yOTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjk0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwNC1cdGlmIChjZV9hdHRyLVx1MDAzZXNyY19uZW50cmllcylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA1Olx0XHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwNy1cdGlmIChjZV9hdHRyLVx1MDAzZWRlc3RfbmVudHJpZXMpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA4Olx0XHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMDk6XHRcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQgJiM0MzsgQ0VfSE9TVF9JRV8zX1NISUZULFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTAtXHRcdFx0XHQgICAgICBpZTNfcmVnX2FkZHIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMTQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zeW5jX2NlX2lycXMoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzE1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMxOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzIwOlx0XHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzIxLVx0XHRcdGNvbnRpbnVlO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMjg6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzM0Olx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMzNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzQzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxc19lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzQ0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0Ny1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzQ4Olx0XHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzQ5LVx0XHRcdGNvbnRpbnVlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNTA6XHRcdGF0aDExa19haGJfY2VfaXJxX2VuYWJsZShhYiwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM1MS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM1My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM1NS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTgtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1OTpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2MC1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzYxOlx0XHRhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzYyLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjU6c3RhdGljIGludCBhdGgxMWtfYWhiX3N0YXJ0KHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Ni17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2NzpcdGF0aDExa19haGJfY2VfaXJxc19lbmFibGUoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjg6XHRhdGgxMWtfY2VfcnhfcG9zdF9idWYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNjktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM3MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNzctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzc4Olx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3OS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4My1cdFx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODQ6XHRcdGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoaXJxX2dycCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4NS1cdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzg4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4OS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5MDpcdF9fYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTE6XHRhdGgxMWtfYWhiX3N5bmNfZXh0X2lycXMoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NDpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3N0b3Aoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk2LVx0aWYgKCF0ZXN0X2JpdChBVEgxMUtfRkxBR19DUkFTSF9GTFVTSCwgXHUwMDI2YWItXHUwMDNlZGV2X2ZsYWdzKSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk3Olx0XHRhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5ODpcdGF0aDExa19haGJfc3luY19jZV9pcnFzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk5Olx0YXRoMTFrX2FoYl9raWxsX3Rhc2tsZXRzKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDAwLVx0dGltZXJfZGVsZXRlX3N5bmMoXHUwMDI2YWItXHUwMDNlcnhfcmVwbGVuaXNoX3JldHJ5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDAxOlx0YXRoMTFrX2NlX2NsZWFudXBfcGlwZXMoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDItfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQwNDpzdGF0aWMgaW50IGF0aDExa19haGJfcG93ZXJfdXAoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDA1LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDA2Olx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwNy1cdGludCByZXQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MTAtXHRpZiAocmV0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MTE6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBib290IHRoZSByZW1vdGUgcHJvY2Vzc29yIFE2XFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDEyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MTY6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9wb3dlcl9kb3duKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIGJvb2wgaXNfc3VzcGVuZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDE3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDE4Olx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQyMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfaW5pdF9xbWlfY2VfY29uZmlnKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQyNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQyNTpcdHN0cnVjdCBhdGgxMWtfcW1pX2NlX2NmZyAqY2ZnID0gXHUwMDI2YWItXHUwMDNlcW1pLmNlX2NmZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDI2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MzQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDM1LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzOC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFUSDExS19FWFRfSVJRX0dSUF9OVU1fTUFYOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Mzk6XHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcdTAwMjZhYi1cdTAwM2VleHRfaXJxX2dycFtpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQ4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NDk6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTAte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU0LVx0aWYgKGFiLVx1MDAzZWh3X3BhcmFtcy5oeWJyaWRfYnVzX3R5cGUpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1NTpcdFx0cmV0dXJuIGF0aDExa19wY2ljX2ZyZWVfaXJxKGFiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTctXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBhYi1cdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1ODpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ1OS1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY0Olx0YXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ2NzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX3Rhc2tsZXQoc3RydWN0IHRhc2tsZXRfc3RydWN0ICp0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Njgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Njk6XHRzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKmNlX3BpcGUgPSBmcm9tX3Rhc2tsZXQoY2VfcGlwZSwgdCwgaW50cl90cSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDcxOlx0YXRoMTFrX2NlX3Blcl9lbmdpbmVfc2VydmljZShjZV9waXBlLVx1MDAzZWFiLCBjZV9waXBlLVx1MDAzZXBpcGVfbnVtKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NzM6XHRhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoY2VfcGlwZS1cdTAwM2VhYiwgY2VfcGlwZS1cdTAwM2VwaXBlX251bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3NC19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMWtfYWhiX2NlX2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc3LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc4Olx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gYXJnO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ4MzpcdGF0aDExa19haGJfY2VfaXJxX2Rpc2FibGUoY2VfcGlwZS1cdTAwM2VhYiwgY2VfcGlwZS1cdTAwM2VwaXBlX251bSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ4NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ4OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDkwOnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9leHRfZ3JwX25hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIGludCBidWRnZXQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ5MjpcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBjb250YWluZXJfb2YobmFwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDkzOlx0XHRcdFx0XHRcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5NC1cdFx0XHRcdFx0XHRuYXBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDk1Olx0c3RydWN0IGF0aDExa19iYXNlICphYiA9IGlycV9ncnAtXHUwMDNlYWI7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5Ni1cdGludCB3b3JrX2RvbmU7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDk4Olx0d29ya19kb25lID0gYXRoMTFrX2RwX3NlcnZpY2Vfc3JuZyhhYiwgaXJxX2dycCwgYnVkZ2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDk5LVx0aWYgKHdvcmtfZG9uZSBcdTAwM2MgYnVkZ2V0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwMC1cdFx0bmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHdvcmtfZG9uZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUwMTpcdFx0YXRoMTFrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTAyLVx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTA5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MTA6c3RhdGljIGlycXJldHVybl90IGF0aDExa19haGJfZXh0X2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTExLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTEyOlx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IGFyZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTEzLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MTc6XHRhdGgxMWtfYWhiX2V4dF9ncnBfZGlzYWJsZShpcnFfZ3JwKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTE4LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTIzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MjQ6c3RhdGljIGludCBhdGgxMWtfYWhiX2NvbmZpZ19leHRfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUyNjpcdHN0cnVjdCBhdGgxMWtfaHdfcGFyYW1zICpodyA9IFx1MDAyNmFiLVx1MDAzZWh3X3BhcmFtcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTI3LVx0aW50IGksIGo7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MzEtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTMyOlx0XHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gXHUwMDI2YWItXHUwMDNlZXh0X2lycV9ncnBbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzMy1cdFx0dTMyIG51bV9pcnEgPSAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQyLVx0XHRuZXRpZl9uYXBpX2FkZChpcnFfZ3JwLVx1MDAzZW5hcGlfbmRldiwgXHUwMDI2aXJxX2dycC1cdTAwM2VuYXBpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1NDM6XHRcdFx0ICAgICAgIGF0aDExa19haGJfZXh0X2dycF9uYXBpX3BvbGwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NDQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NjgtXHRcdFx0XHRcdFx0cnhkbWEyaG9zdF9kZXN0aW5hdGlvbl9yaW5nX21hYzEgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1Njk6XHRcdFx0XHRcdFx0YXRoMTFrX2h3X2dldF9tYWNfZnJvbV9wZGV2X2lkKGh3LCBqKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTcwLVx0XHRcdFx0fVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTc0LVx0XHRcdFx0XHRcdGhvc3QycnhkbWFfaG9zdF9idWZfcmluZ19tYWMxIC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTc1Olx0XHRcdFx0XHRcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU3Ni1cdFx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU4MC1cdFx0XHRcdFx0XHRwcGR1X2VuZF9pbnRlcnJ1cHRzX21hYzEgLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1ODE6XHRcdFx0XHRcdFx0YXRoMTFrX2h3X2dldF9tYWNfZnJvbV9wZGV2X2lkKGh3LCBqKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTgyLVx0XHRcdFx0XHRpcnFfZ3JwLVx1MDAzZWlycXNbbnVtX2lycSYjNDM7JiM0MztdID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTgzLVx0XHRcdFx0XHRcdHJ4ZG1hMmhvc3RfbW9uaXRvcl9zdGF0dXNfcmluZ19tYWMxIC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTg0Olx0XHRcdFx0XHRcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU4NS1cdFx0XHRcdH1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTU5Ni1cdFx0XHRpcnFfc2V0X3N0YXR1c19mbGFncyhpcnEsIElSUV9OT0FVVE9FTiB8IElSUV9ESVNBQkxFX1VOTEFaWSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU5NzpcdFx0XHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aDExa19haGJfZXh0X2ludGVycnVwdF9oYW5kbGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTgtXHRcdFx0XHRcdCAgSVJRRl9UUklHR0VSX1JJU0lORyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwMC1cdFx0XHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYwMTpcdFx0XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCByZXF1ZXN0X2lycSBmb3IgJWRcXG5cJiMzNDssXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwMi1cdFx0XHRcdFx0ICAgaXJxKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjEwOnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9jb25maWdfaXJxKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxMS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTUtXHRpZiAoYWItXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjE2Olx0XHRyZXR1cm4gYXRoMTFrX3BjaWNfY29uZmlnX2lycShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxNy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIGFiLVx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjIwOlx0XHRzdHJ1Y3QgYXRoMTFrX2NlX3BpcGUgKmNlX3BpcGUgPSBcdTAwMjZhYi1cdTAwM2VjZS5jZV9waXBlW2ldO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyMjpcdFx0aWYgKGF0aDExa19jZV9nZXRfYXR0cl9mbGFncyhhYiwgaSkgXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyMy1cdFx0XHRjb250aW51ZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjI3Olx0XHR0YXNrbGV0X3NldHVwKFx1MDAyNmNlX3BpcGUtXHUwMDNlaW50cl90cSwgYXRoMTFrX2FoYl9jZV90YXNrbGV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjI4LVx0XHRpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX2J5bmFtZShhYi1cdTAwM2VwZGV2LCBpcnFfbmFtZVtpcnFfaWR4XSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyOTpcdFx0cmV0ID0gcmVxdWVzdF9pcnEoaXJxLCBhdGgxMWtfYWhiX2NlX2ludGVycnVwdF9oYW5kbGVyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MzAtXHRcdFx0XHQgIElSUUZfVFJJR0dFUl9SSVNJTkcsIGlycV9uYW1lW2lycV9pZHhdLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjM4LVx0LyogQ29uZmlndXJlIGV4dGVybmFsIGludGVycnVwdHMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjM5Olx0cmV0ID0gYXRoMTFrX2FoYl9jb25maWdfZXh0X2lycShhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0MC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjQ0OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9tYXBfc2VydmljZV90b19waXBlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBzZXJ2aWNlX2lkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDUtXHRcdFx0XHRcdCAgdTggKnVsX3BpcGUsIHU4ICpkbF9waXBlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2ODc6c3RhdGljIGludCBhdGgxMWtfYWhiX2hpZl9zdXNwZW5kKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY4OC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY4OTpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02OTAtXHR1MzIgd2FrZV9pcnE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MDAtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcwMTpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGVuYWJsZSB3YWtldXAgaXJxIDolZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzAyLVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzEyLVx0aWYgKHJldCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MTM6XHRcdGF0aDExa19lcnIoYWIsIFwmIzM0O2ZhaWxlZCB0byBzZW5kIHNtcDJwIHBvd2VyIHNhdmUgZW50ZXIgY21kIDolZFxcblwmIzM0OywgcmV0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE0LVx0XHRyZXR1cm4gcmV0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MTc6XHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXCYjMzQ7ZGV2aWNlIHN1c3BlbmRlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxOC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzIyOnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfcmVzdW1lKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcyNDpcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjUtXHR1MzIgd2FrZV9pcnE7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzUtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjczNjpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGRpc2FibGUgd2FrZXVwIGlycTogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTczNy1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc0OS1cdGlmIChyZXQpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzUwOlx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gc2VuZCBzbXAycCBwb3dlciBzYXZlIGVudGVyIGNtZCA6JWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1MS1cdFx0cmV0dXJuIHJldDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1NS1cdGlmIChyZXQgPT0gMCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NTY6XHRcdGF0aDExa193YXJuKGFiLCBcJiMzNDt0aW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3Igd293IHdha2V1cCBjb21wbGV0aW9uXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzU3LVx0XHRyZXR1cm4gLUVUSU1FRE9VVDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzYwOlx0YXRoMTFrX2RiZyhhYiwgQVRIMTFLX0RCR19BSEIsIFwmIzM0O2RldmljZSByZXN1bWVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzYxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzY0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NjU6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaGlmX29wcyBhdGgxMWtfYWhiX2hpZl9vcHNfaXBxODA3NCA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY2Olx0LnN0YXJ0ID0gYXRoMTFrX2FoYl9zdGFydCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY3Olx0LnN0b3AgPSBhdGgxMWtfYWhiX3N0b3AsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2ODpcdC5yZWFkMzIgPSBhdGgxMWtfYWhiX3JlYWQzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY5Olx0LndyaXRlMzIgPSBhdGgxMWtfYWhiX3dyaXRlMzIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc3MC1cdC5yZWFkID0gTlVMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzcxOlx0LmlycV9lbmFibGUgPSBhdGgxMWtfYWhiX2V4dF9pcnFfZW5hYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzI6XHQuaXJxX2Rpc2FibGUgPSBhdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzczOlx0Lm1hcF9zZXJ2aWNlX3RvX3BpcGUgPSBhdGgxMWtfYWhiX21hcF9zZXJ2aWNlX3RvX3BpcGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NDpcdC5wb3dlcl9kb3duID0gYXRoMTFrX2FoYl9wb3dlcl9kb3duLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NzU6XHQucG93ZXJfdXAgPSBhdGgxMWtfYWhiX3Bvd2VyX3VwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzYtfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaGlmX29wcyBhdGgxMWtfYWhiX2hpZl9vcHNfd2NuNjc1MCA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzc5Olx0LnN0YXJ0ID0gYXRoMTFrX3BjaWNfc3RhcnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MDpcdC5zdG9wID0gYXRoMTFrX3BjaWNfc3RvcCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzgxOlx0LnJlYWQzMiA9IGF0aDExa19wY2ljX3JlYWQzMixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzgyOlx0LndyaXRlMzIgPSBhdGgxMWtfcGNpY193cml0ZTMyLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODMtXHQucmVhZCA9IE5VTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4NDpcdC5pcnFfZW5hYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9lbmFibGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4NTpcdC5pcnFfZGlzYWJsZSA9IGF0aDExa19wY2ljX2V4dF9pcnFfZGlzYWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg2Olx0LmdldF9tc2lfYWRkcmVzcyA9ICBhdGgxMWtfcGNpY19nZXRfbXNpX2FkZHJlc3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4NzpcdC5nZXRfdXNlcl9tc2lfdmVjdG9yID0gYXRoMTFrX3BjaWNfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4ODpcdC5tYXBfc2VydmljZV90b19waXBlID0gYXRoMTFrX3BjaWNfbWFwX3NlcnZpY2VfdG9fcGlwZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg5Olx0LnBvd2VyX2Rvd24gPSBhdGgxMWtfYWhiX3Bvd2VyX2Rvd24sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MDpcdC5wb3dlcl91cCA9IGF0aDExa19haGJfcG93ZXJfdXAsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5MTpcdC5zdXNwZW5kID0gYXRoMTFrX2FoYl9oaWZfc3VzcGVuZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkyOlx0LnJlc3VtZSA9IGF0aDExa19haGJfaGlmX3Jlc3VtZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkzOlx0LmNlX2lycV9lbmFibGUgPSBhdGgxMWtfcGNpX2VuYWJsZV9jZV9pcnFzX2V4Y2VwdF93YWtlX2lycSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzk0Olx0LmNlX2lycV9kaXNhYmxlID0gYXRoMTFrX3BjaV9kaXNhYmxlX2NlX2lycXNfZXhjZXB0X3dha2VfaXJxLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTUtfTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTc6c3RhdGljIGludCBhdGgxMWtfY29yZV9nZXRfcnByb2Moc3RydWN0IGF0aDExa19iYXNlICphYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzk5Olx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwMC1cdHN0cnVjdCBkZXZpY2UgKmRldiA9IGFiLVx1MDAzZWRldjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwNC1cdGlmIChvZl9wcm9wZXJ0eV9yZWFkX3UzMihkZXYtXHUwMDNlb2Zfbm9kZSwgXCYjMzQ7cWNvbSxycHJvY1wmIzM0OywgXHUwMDI2cnByb2NfcGhhbmRsZSkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6ODA1Olx0XHRhdGgxMWtfZXJyKGFiLCBcJiMzNDtmYWlsZWQgdG8gZ2V0IHE2X3Jwcm9jIGhhbmRsZVxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwNi1cdFx0cmV0dXJuIC1FTk9FTlQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgxNzpzdGF0aWMgaW50IGF0aDExa19haGJfc2V0dXBfbXNpX3Jlc291cmNlcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MTgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4Mjc6XHRyZXQgPSBhdGgxMWtfcGNpY19pbml0X21zaV9jb25maWcoYWIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MjgtXHRpZiAocmV0KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyOTpcdFx0YXRoMTFrX2VycihhYiwgXCYjMzQ7ZmFpbGVkIHRvIGluaXQgbXNpIGNvbmZpZzogJWRcXG5cJiMzNDssIHJldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgzMC1cdFx0cmV0dXJuIHJldDtcbi0tXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNDoxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODIxMAoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDY1OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBc3Nlc3NpbmcgdGhlIFRlc3RhYmlsaXR5IG9mIHRoZSBhdGgxMWsgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBuZWVkIHRvIGRldGVybWluZSBpZiBpdCYjMzk7cyAmIzM0O1dvcnRoRnV6emluZy4mIzM0OyBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCB0aGUgYXRoMTFrIGRyaXZlciwgYmVpbmcgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIHByb2JhYmx5IHJlcXVpcmVzICphY3R1YWwqIGhhcmR3YXJlIG9yIGEgZGVjZW50IGVtdWxhdGlvbi4gSSBxdWlja2x5IGRpc21pc3MgdGhlIGlkZWEgb2YgYG1hYzgwMjExX2h3c2ltYCBiZWNhdXNlLCBmcm9tIHdoYXQgSSB1bmRlcnN0YW5kLCB0aGF0JiMzOTtzIGp1c3QgYSBzb2Z0d2FyZSBzaW11bGF0b3IgZm9yIG1hYzgwMjExLCBub3Qgc3BlY2lmaWNhbGx5IGZvciBhdGgxMWsuIENhbiBJIGdldCBhd2F5IHdpdGggcnVubmluZyB0aGlzIGluIFFFTVU/IE5vLCBkZWZpbml0ZWx5IG5vdC4gUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBzcGVjaWZpYyBhdGgxMWsgaGFyZHdhcmUuCgpUaGUgaW5zdHJ1Y3Rpb25zIGFyZSB2ZXJ5IGNsZWFyOiBpZiB0aGUgY29kZSByZWxpZXMgb24gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMsIG9yIGludm9sdmVzIGNvZGUgcGF0aHMgaW5hY2Nlc3NpYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgdGhlbiBpdCYjMzk7cyBhIG5vLWdvIGZvciBmdXp6aW5nLiBBdGgxMWsgaXMsIHVuZG91YnRlZGx5LCBhIHZlbmRvci1zcGVjaWZpYyBXaS1GaSBkcml2ZXIuIEl0JiMzOTtzIGRlc2lnbmVkIHRvIHVzZSBwaHlzaWNhbCBQQ0llIG9yIEFIQiBoYXJkd2FyZS4gU28sIGNhbiBpdCBiZSBmdXp6LXRlc3RlZCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudD8KCkFscmlnaHQsIGxldCYjMzk7cyBleHBsb3JlIGlmIHRoZXJlJiMzOTtzIGFueSBjbGV2ZXIgdHJpY2tlcnkgb3IgbW9jayBpbXBsZW1lbnRhdGlvbnMuIEkmIzM5O2xsIHNjYW4gdGhyb3VnaCBgaHcvYCBhbmQgYGRyaXZlcnMvYCB0byBzZWUgaWYgdGhlcmUmIzM5O3MgYSBzb2Z0d2FyZSBlbXVsYXRpb24gY29tcG9uZW50LiBXYWl0LCBJIHNlZSBtZW50aW9uIG9mIGBzeXpib3RgIHRlc3RpbmcgYXRoMTFrLiAqRGlkKiBzeXpib3QgYWN0dWFsbHkgZmluZCBzb21ldGhpbmcgc3BlY2lmaWMgdG8gdGhpcyBkcml2ZXI/IFRoZSBjb21taXQgbWVzc2FnZSBzZWVtcyBnZW5lcmljLCBhbmQgaXQmIzM5O3MgcHJvYmFibHkgcnVubmluZyBgbWFjODAyMTFfaHdzaW1gLCBub3QgZGlyZWN0IGF0aDExayB0ZXN0cy4gSXQgbWlnaHQgYmUgYSBidWcgcmVwb3J0ZWQgYnkgYSBodW1hbiwgYW5kIGl04oCZcyBqdXN0IGJlaW5nIHRlc3RlZCBoZXJlLgoKVGhlIGluc3RydWN0aW9ucyAqZXhwbGljaXRseSogZXhjbHVkZSBjb2RlIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSwgYW5kIHRoYXQgaW5jbHVkZXMgYXRoMTFrISBUaGUgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIGhhcmR3YXJlIGJlY2F1c2UgdGhhdCYjMzk7cyBob3cgaXQmIzM5O3MgZGVzaWduZWQuIEl0JiMzOTtzIGEgV2ktRmkgZHJpdmVyIHRoYXQgcmVnaXN0ZXJzIHdpdGggbWFjODAyMTEsIGJ1dCBpdHMgcHJvYmUgZnVuY3Rpb25zLCBgYXRoMTFrX3BjaV9wcm9iZWAgb3IgYGF0aDExa19haGJfcHJvYmVgLCBhcmUgb25seSBldmVyIGNhbGxlZCBpZiB0aGUgaGFyZHdhcmUgaXMgcHJlc2VudCwgZWl0aGVyIFBDSSBvciBBSEIuIElmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgZGV0ZWN0ZWQsIHRoZSBkcml2ZXIgaXMgbmV2ZXIgaW5pdGlhbGl6ZWQuIFRodXMsIEkmIzM5O20gcHJldHR5IHN1cmUgdGhlcmUmIzM5O3Mgbm8gd2F5IHRvIHJlYWNoIGBhdGgxMWtfbWFjX3N0YXRpb25fcmVtb3ZlYCBvciBgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsYCB3aXRob3V0IGl0LiBCYXNlZCBvbiB0aGUgcmVxdWlyZW1lbnRzLCBJIHdvdWxkIHJhdGUgdGhpcyBhcyAmIzM0O1dvcnRoRnV6emluZz1mYWxzZSYjMzQ7LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAxIDA0OjEzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2F0aDExa19wY2lfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTk0MD1zdGF0aWMgaW50IGF0aDExa19wY2lfc2V0X2lycV9hZmZpbml0eV9oaW50KHN0cnVjdCBhdGgxMWtfcGNpICphYl9wY2ksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy05NDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jOjk0OTpzdGF0aWMgaW50IGF0aDExa19wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTk1MC1cdFx0XHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYz0xMjk2PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBhdGgxMWtfcGNpX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTEyOTgtXHQuaWRfdGFibGUgPSBhdGgxMWtfcGNpX2lkX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzoxMjk5Olx0LnByb2JlID0gYXRoMTFrX3BjaV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtMTMwMC1cdC5yZW1vdmUgPSBhdGgxMWtfcGNpX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNDoxMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTc5NgoJCQkJCQkJb3V0cHV0OiAxMDAKCQkJCQkJCXRob3VnaHRzOiAyMjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBEZWNpc2lvbiBmb3IgdGhlIGF0aDExayBQQ0kgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kLCB5ZXAsIGl0JiMzOTtzIGRlZmluaXRlbHkgcGFydCBvZiB0aGUgUENJIGRyaXZlci4gVGhlIHF1ZXN0aW9uIGlzOiBjYW4gSSBhY3R1YWxseSByZWFjaCBpdCBkdXJpbmcgZnV6emluZz8gQW5kIHRoZSBhbnN3ZXIsIGFmdGVyIGEgYml0IG9mIGNvbnNpZGVyYXRpb24sIGlzIG5vLiBUaGVyZSYjMzk7cyBubyBzdGFuZGFyZCBRRU1VIGVtdWxhdGlvbiB0aGF0IHN1cHBvcnRzIGF0aDExaywgd2hpY2ggbWVhbnMgYW55IG9mIG15IG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGluIHRoYXQgZW52aXJvbm1lbnQuCgpJIGhhZCB0byBkb3VibGUtY2hlY2ssIHRob3VnaC4gTWF5YmUgdGhlcmUgd2FzIHNvbWUgY2xldmVyIHNvZnR3YXJlIHNpbXVsYXRvciBJIHdhcyBtaXNzaW5nLiBCdXQsIG5vLiBtYWM4MDIxMV9od3NpbSwgd2hpbGUgaW50ZXJlc3RpbmcsIGlzIGEgKnNvZnR3YXJlKiBzaW11bGF0b3Igb2YgdGhlICpoYXJkd2FyZSogaXRzZWxmLiBJdCBkb2VzbiYjMzk7dCBhY3R1YWxseSBpbnRlcmFjdCB3aXRoIG9yIHVzZSB0aGUgYXRoMTFrIGRyaXZlci4gVGhhdCBkcml2ZXIgaXMgKnNwZWNpZmljYWxseSogZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggaGFyZHdhcmUsIGFuZCByZWxpZXMgb24gdGhhdCBwaHlzaWNhbCBQQ0kvQUhCIGhhcmR3YXJlLiBCZWNhdXNlIFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGF0IGhhcmR3YXJlLCB0aGUgZHJpdmVyIHdvbiYjMzk7dCBwcm9iZSwgYW5kIG5vbmUgb2YgaXRzIGZ1bmN0aW9ucyB3aWxsIGJlIHJlYWNoYWJsZS4gSXQmIzM5O3MgdmVuZG9yLXNwZWNpZmljLCBwbGFpbiBhbmQgc2ltcGxlLiBUaGVyZWZvcmUsIGZ1enppbmcgdGhpcyBwYXJ0aWN1bGFyIGNvZGUgd291bGQgYmUgYSB3YXN0ZSBvZiByZXNvdXJjZXMuCgpTbywgSSYjMzk7bSBnb2luZyB0byByZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlLiBJJiMzOTtsbCB1c2UgdGhlIHNldC1yZXN1bHRzIHRvb2wgdG8gZG9jdW1lbnQgdGhpcyBkZWNpc2lvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMSAwNDoxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYXRoMTFrLCBhIHZlbmRvci1zcGVjaWZpYyBoYXJkd2FyZSBkcml2ZXIgZm9yIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggV2ktRmkgY2FyZHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIHBoeXNpY2FsIFBDSSBvciBBSEIgaGFyZHdhcmUgdG8gcHJvYmUgYW5kIGluaXRpYWxpemUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MDIuMDUyMjQ1MDExWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAyNzI3OTgxODEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MDIuMDUyMjUwOTUxWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDIyNDk0OTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBkMTJlOWZmOTZjZjUyYTMwMDdmNDYyZDZjODZkMzgzMTM2ZGU1NjkwXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBTYXQgQXVnIDEgMDQ6MTM6MDEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmNcXG5pbmRleCAyZDU1Y2RjNGQxNjVkLi5hZTkxYjU3Yzg0MjJmIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jXFxuQEAgLTg3Myw2ICs4NzMsMjIgQEAgc3RhdGljIGludCBhdGgxMWtfbWFjX3NldF9raWNrb3V0KHN0cnVjdCBhdGgxMWtfdmlmICphcnZpZilcXG4gXFx0cmV0dXJuIDA7XFxuIH1cXG4gXFxuK3N0YXRpYyB2b2lkIGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuK3tcXG4rXFx0c3RydWN0IGF0aDExa19zdGEgKmFyc3RhO1xcbitcXG4rXFx0aWYgKCFzdGEpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdGFyc3RhID0gYXRoMTFrX3N0YV90b19hcnN0YShzdGEpO1xcbitcXG4rXFx0a2ZyZWUoYXJzdGEtXFx1MDAzZXR4X3N0YXRzKTtcXG4rXFx0YXJzdGEtXFx1MDAzZXR4X3N0YXRzID0gTlVMTDtcXG4rXFxuK1xcdGtmcmVlKGFyc3RhLVxcdTAwM2VyeF9zdGF0cyk7XFxuK1xcdGFyc3RhLVxcdTAwM2VyeF9zdGF0cyA9IE5VTEw7XFxuK31cXG4rXFxuIHZvaWQgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsKHN0cnVjdCBhdGgxMWsgKmFyKVxcbiB7XFxuIFxcdHN0cnVjdCBhdGgxMWtfcGVlciAqcGVlciwgKnRtcDtcXG5AQCAtODg1LDYgKzkwMSw3IEBAIHZvaWQgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsKHN0cnVjdCBhdGgxMWsgKmFyKVxcbiBcXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocGVlciwgdG1wLCBcXHUwMDI2YWItXFx1MDAzZXBlZXJzLCBsaXN0KSB7XFxuIFxcdFxcdGF0aDExa19wZWVyX3J4X3RpZF9jbGVhbnVwKGFyLCBwZWVyKTtcXG4gXFx0XFx0YXRoMTFrX3BlZXJfcmhhc2hfZGVsZXRlKGFiLCBwZWVyKTtcXG4rXFx0XFx0YXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAocGVlci1cXHUwMDNlc3RhKTtcXG4gXFx0XFx0bGlzdF9kZWwoXFx1MDAyNnBlZXItXFx1MDAzZWxpc3QpO1xcbiBcXHRcXHRrZnJlZShwZWVyKTtcXG4gXFx0fVxcbkBAIC05ODkyLDcgKzk5MDksNiBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmUoc3RydWN0IGF0aDExayAqYXIsXFxuIHtcXG4gXFx0c3RydWN0IGF0aDExa19iYXNlICphYiA9IGFyLVxcdTAwM2VhYjtcXG4gXFx0c3RydWN0IGF0aDExa192aWYgKmFydmlmID0gYXRoMTFrX3ZpZl90b19hcnZpZih2aWYpO1xcbi1cXHRzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGEgPSBhdGgxMWtfc3RhX3RvX2Fyc3RhKHN0YSk7XFxuIFxcdGludCByZXQ7XFxuIFxcbiBcXHRpZiAoYWItXFx1MDAzZWh3X3BhcmFtcy52ZGV2X3N0YXJ0X2RlbGF5IFxcdTAwMjZcXHUwMDI2XFxuQEAgLTk5MTYsMTIgKzk5MzIsNyBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmUoc3RydWN0IGF0aDExayAqYXIsXFxuIFxcdFxcdFxcdCAgIHN0YS1cXHUwMDNlYWRkciwgYXJ2aWYtXFx1MDAzZXZkZXZfaWQpO1xcbiBcXG4gXFx0YXRoMTFrX21hY19kZWNfbnVtX3N0YXRpb25zKGFydmlmLCBzdGEpO1xcbi1cXG4tXFx0a2ZyZWUoYXJzdGEtXFx1MDAzZXR4X3N0YXRzKTtcXG4tXFx0YXJzdGEtXFx1MDAzZXR4X3N0YXRzID0gTlVMTDtcXG4tXFxuLVxcdGtmcmVlKGFyc3RhLVxcdTAwM2VyeF9zdGF0cyk7XFxuLVxcdGFyc3RhLVxcdTAwM2VyeF9zdGF0cyA9IE5VTEw7XFxuK1xcdGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHN0YSk7XFxuIFxcbiBcXHRyZXR1cm4gcmV0O1xcbiB9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA0OjEzOjAyLjM1NTA2MTY4NloiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE5OTY5OTc2Mzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhdGgxMWssIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBXaS1GaSBjYXJkcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgUENJIG9yIEFIQiBoYXJkd2FyZSB0byBwcm9iZSBhbmQgaW5pdGlhbGl6ZSwgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGQxMmU5ZmY5NmNmNTJhMzAwN2Y0NjJkNmM4NmQzODMxMzZkZTU2OTBcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEF1ZyAxIDA0OjEzOjAxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvbWFjLmNcbmluZGV4IDJkNTVjZGM0ZDE2NWQuLmFlOTFiNTdjODQyMmYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL21hYy5jXG5AQCAtODczLDYgKzg3MywyMiBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc2V0X2tpY2tvdXQoc3RydWN0IGF0aDExa192aWYgKmFydmlmKVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuK3N0YXRpYyB2b2lkIGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXG4re1xuK1x0c3RydWN0IGF0aDExa19zdGEgKmFyc3RhO1xuK1xuK1x0aWYgKCFzdGEpXG4rXHRcdHJldHVybjtcbitcbitcdGFyc3RhID0gYXRoMTFrX3N0YV90b19hcnN0YShzdGEpO1xuK1xuK1x0a2ZyZWUoYXJzdGEtXHUwMDNldHhfc3RhdHMpO1xuK1x0YXJzdGEtXHUwMDNldHhfc3RhdHMgPSBOVUxMO1xuK1xuK1x0a2ZyZWUoYXJzdGEtXHUwMDNlcnhfc3RhdHMpO1xuK1x0YXJzdGEtXHUwMDNlcnhfc3RhdHMgPSBOVUxMO1xuK31cbitcbiB2b2lkIGF0aDExa19tYWNfcGVlcl9jbGVhbnVwX2FsbChzdHJ1Y3QgYXRoMTFrICphcilcbiB7XG4gXHRzdHJ1Y3QgYXRoMTFrX3BlZXIgKnBlZXIsICp0bXA7XG5AQCAtODg1LDYgKzkwMSw3IEBAIHZvaWQgYXRoMTFrX21hY19wZWVyX2NsZWFudXBfYWxsKHN0cnVjdCBhdGgxMWsgKmFyKVxuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHBlZXIsIHRtcCwgXHUwMDI2YWItXHUwMDNlcGVlcnMsIGxpc3QpIHtcbiBcdFx0YXRoMTFrX3BlZXJfcnhfdGlkX2NsZWFudXAoYXIsIHBlZXIpO1xuIFx0XHRhdGgxMWtfcGVlcl9yaGFzaF9kZWxldGUoYWIsIHBlZXIpO1xuK1x0XHRhdGgxMWtfbWFjX3N0YXRpb25fY2xlYW51cChwZWVyLVx1MDAzZXN0YSk7XG4gXHRcdGxpc3RfZGVsKFx1MDAyNnBlZXItXHUwMDNlbGlzdCk7XG4gXHRcdGtmcmVlKHBlZXIpO1xuIFx0fVxuQEAgLTk4OTIsNyArOTkwOSw2IEBAIHN0YXRpYyBpbnQgYXRoMTFrX21hY19zdGF0aW9uX3JlbW92ZShzdHJ1Y3QgYXRoMTFrICphcixcbiB7XG4gXHRzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiID0gYXItXHUwMDNlYWI7XG4gXHRzdHJ1Y3QgYXRoMTFrX3ZpZiAqYXJ2aWYgPSBhdGgxMWtfdmlmX3RvX2FydmlmKHZpZik7XG4tXHRzdHJ1Y3QgYXRoMTFrX3N0YSAqYXJzdGEgPSBhdGgxMWtfc3RhX3RvX2Fyc3RhKHN0YSk7XG4gXHRpbnQgcmV0O1xuIFxuIFx0aWYgKGFiLVx1MDAzZWh3X3BhcmFtcy52ZGV2X3N0YXJ0X2RlbGF5IFx1MDAyNlx1MDAyNlxuQEAgLTk5MTYsMTIgKzk5MzIsNyBAQCBzdGF0aWMgaW50IGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmUoc3RydWN0IGF0aDExayAqYXIsXG4gXHRcdFx0ICAgc3RhLVx1MDAzZWFkZHIsIGFydmlmLVx1MDAzZXZkZXZfaWQpO1xuIFxuIFx0YXRoMTFrX21hY19kZWNfbnVtX3N0YXRpb25zKGFydmlmLCBzdGEpO1xuLVxuLVx0a2ZyZWUoYXJzdGEtXHUwMDNldHhfc3RhdHMpO1xuLVx0YXJzdGEtXHUwMDNldHhfc3RhdHMgPSBOVUxMO1xuLVxuLVx0a2ZyZWUoYXJzdGEtXHUwMDNlcnhfc3RhdHMpO1xuLVx0YXJzdGEtXHUwMDNlcnhfc3RhdHMgPSBOVUxMO1xuK1x0YXRoMTFrX21hY19zdGF0aW9uX2NsZWFudXAoc3RhKTtcbiBcbiBcdHJldHVybiByZXQ7XG4gfVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MDIuMzU1MDYyNjY2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQyMDE2MDc5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGF0aDExayBQYXRjaCBmb3IgVGVzdGluZyoqXG5cbk9rYXksIHNvIHRoZXJlJ3MgYSBwYXRjaCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9tYWMuY2AuIEkgc2VlIGl0IGFkZHMgYGF0aDExa19tYWNfc3RhdGlvbl9jbGVhbnVwYCwgd2hpY2gsIGZyb20gdGhlIG5hbWUsIHNvdW5kcyBsaWtlIGl0J3MgcmVzcG9uc2libGUgZm9yIGZyZWVpbmcgdXAgYHR4X3N0YXRzYCBhbmQgYHJ4X3N0YXRzYCBmcm9tIGBhcnN0YWAuIFRoaXMgZnVuY3Rpb24gaXMgYmVpbmcgY2FsbGVkIGZyb20gYGF0aDExa19tYWNfcGVlcl9jbGVhbnVwX2FsbGAgYW5kIGBhdGgxMWtfbWFjX3N0YXRpb25fcmVtb3ZlYC4gSXQgc2VlbXMgbGlrZSB3ZSdyZSBmaXhpbmcgYSBtZW1vcnkgbGVhayBvciBhIHJlbGF0ZWQgaXNzdWUgd2l0aGluIHRoZSBhdGgxMWsgZHJpdmVyLlxuXG5SaWdodCwgYXRoMTFrIGlzIHRoZSBkcml2ZXIgZm9yIHRob3NlIFF1YWxjb21tIEF0aGVyb3MgODAyLjExYXggd2lyZWxlc3MgZGV2aWNlcy4gVGhlIGNyaXRpY2FsIHF1ZXN0aW9uIGZvciBtZSBub3cgaXM6IGhvdyBjYW4gSSB0ZXN0IHRoaXMgcGF0Y2ggZWZmZWN0aXZlbHk/IENhbiBJIHJlcHJvZHVjZSB0aGlzIGluIFFFTVU/IEkga25vdyBhdGgxMWsgc3VwcG9ydHMgYm90aCBQQ0kgYW5kIEFIQjsgaXQncyBhIHJlYWwgaGFyZHdhcmUgZHJpdmVyIGZvciBzcGVjaWZpYyBXaS1GaSBjYXJkcywgYW5kIHRoYXQgdHJpZ2dlcnMgYSB0aG91Z2h0LiBEb2VzIFFFTVUgZXZlbiBlbXVsYXRlIGF0aDExaz8gSSBkb24ndCB0aGluayBzby4gTm8sIFFFTVUgd291bGRuJ3QgZW11bGF0ZSB0aGUgc3BlY2lmaWMgaGFyZHdhcmUuIEFuZCB3aGF0IGFib3V0IG1hYzgwMjExX2h3c2ltPyBObywgdGhhdCdzIGEgc2VwYXJhdGUgZHJpdmVyIGFuZCB3aGlsZSBncmVhdCBmb3IgdGVzdGluZyB0aGUgODAyLjExIHN0YWNrIGluIGdlbmVyYWwsIGl0IGRvZXNuJ3QgZW11bGF0ZSB0aGUgYXRoMTFrIGhhcmR3YXJlIHNwZWNpZmljYWxseS5cblxuU28sIHJlYWxpc3RpY2FsbHksIHRoaXMgaXMgZ29pbmcgdG8gcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZS4gSSdsbCBuZWVkIGEgcmVhbCBhdGgxMWstYmFzZWQgV2ktRmkgY2FyZCB0byB0aG9yb3VnaGx5IHRlc3QgdGhpcyBwYXRjaC4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbSBnb2luZyB0byBkbyBhIHF1aWNrIHNlYXJjaCB3aXRoaW4gdGhlIGtlcm5lbCBzb3VyY2UgdG8gY29uZmlybSB0aGVyZSBpc24ndCBzb21lIG9ic2N1cmUgZW11bGF0aW9uIHBhdGggSSdtIG1pc3NpbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MzcsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzUsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNDoxMzowNy43NzUyMjU1NTFaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTMwNTA4OTksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiYXRoMTFrXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjY2ODMgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0yPWNvbmZpZyBBVEgxMUtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTE6XFx0ICBJZiB5b3UgY2hvb3NlIHRvIGJ1aWxkIGEgbW9kdWxlLCBpdCdsbCBiZSBjYWxsZWQgYXRoMTFrLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MTM9Y29uZmlnIEFUSDExS19BSEJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6MTQ6XFx0dHJpc3RhdGUgXFxcIkF0aGVyb3MgYXRoMTFrIEFIQiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy0xNS1cXHRkZXBlbmRzIG9uIEFUSDExS1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTIwPWNvbmZpZyBBVEgxMUtfUENJXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjIxOlxcdHRyaXN0YXRlIFxcXCJBdGhlcm9zIGF0aDExayBQQ0kgc3VwcG9ydFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMjItXFx0ZGVwZW5kcyBvbiBBVEgxMUsgXFx1MDAyNlxcdTAwMjYgUENJXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc9MzA9Y29uZmlnIEFUSDExS19ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzozMTpcXHRib29sIFxcXCJRQ0EgYXRoMTFrIGRlYnVnZ2luZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctMzItXFx0ZGVwZW5kcyBvbiBBVEgxMUtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz0zOD1jb25maWcgQVRIMTFLX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6Mzk6XFx0Ym9vbCBcXFwiUUNBIGF0aDExayBkZWJ1Z2ZzIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQwLVxcdGRlcGVuZHMgb24gQVRIMTFLIFxcdTAwMjZcXHUwMDI2IERFQlVHX0ZTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjExX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNDEtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0MjpcXHQgIEVuYWJsZSBhdGgxMWsgZGVidWdmcyBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTQ2PWNvbmZpZyBBVEgxMUtfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo0NzpcXHRib29sIFxcXCJhdGgxMWsgdHJhY2luZyBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy00OC1cXHRkZXBlbmRzIG9uIEFUSDExSyBcXHUwMDI2XFx1MDAyNiBFVkVOVF9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTQ5LVxcdGhlbHBcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWc6NTA6XFx0ICBTZWxlY3QgdGhpcyB0byB1c2UgYXRoMTFrIHRyYWNpbmcgaW5mcmFzdHJ1Y3R1cmUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZz01Mj1jb25maWcgQVRIMTFLX1NQRUNUUkFMXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjUzOlxcdGJvb2wgXFxcIlFDQSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy01NC1cXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNTYtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo1NzpcXHQgIEVuYWJsZSBhdGgxMWsgc3BlY3RyYWwgc2NhbiBzdXBwb3J0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnLTU4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnPTYxPWNvbmZpZyBBVEgxMUtfQ0ZSXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9LY29uZmlnOjYyOlxcdGJvb2wgXFxcImF0aDExayBjaGFubmVsIGZyZXF1ZW5jeSByZXNwb25zZSBzdXBwb3J0XFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02My1cXHRkZXBlbmRzIG9uIEFUSDExS19ERUJVR0ZTXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL0tjb25maWctNjUtXFx0aGVscFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZzo2NjpcXHQgIEVuYWJsZSBhdGgxMWsgY2hhbm5lbCBmcmVxdWVuY3kgcmVzcG9uc2UgZHVtcCBzdXBwb3J0LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvS2NvbmZpZy02Ny1cXHQgIFRoaXMgb3B0aW9uIGV4cG9zZXMgZGVidWdmcyBub2RlcyB0aGF0IHdpbGwgYWxsb3cgdGhlIHVzZXJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX0FUSDExSykgKz0gYXRoMTFrLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjM6YXRoMTFrLXkgKz0gY29yZS5vIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTQtXFx0ICAgIGhhbC5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNDphdGgxMWstJChDT05GSUdfQVRIMTFLX0RFQlVHRlMpICs9IGRlYnVnZnMubyBkZWJ1Z2ZzX2h0dF9zdGF0cy5vIGRlYnVnZnNfc3RhLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI1OmF0aDExay0kKENPTkZJR19OTDgwMjExX1RFU1RNT0RFKSArPSB0ZXN0bW9kZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZToyNjphdGgxMWstJChDT05GSUdfQVRIMTFLX1RSQUNJTkcpICs9IHRyYWNlLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI3OmF0aDExay0kKENPTkZJR19USEVSTUFMKSArPSB0aGVybWFsLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI4OmF0aDExay0kKENPTkZJR19BVEgxMUtfU1BFQ1RSQUwpICs9IHNwZWN0cmFsLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjI5OmF0aDExay0kKENPTkZJR19QTSkgKz0gd293Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMwOmF0aDExay0kKENPTkZJR19ERVZfQ09SRURVTVApICs9IGNvcmVkdW1wLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlOjMxOmF0aDExay0kKENPTkZJR19BVEgxMUtfQ0ZSKSArPSBjZnIub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGUtMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozMzpvYmotJChDT05GSUdfQVRIMTFLX0FIQikgKz0gYXRoMTFrX2FoYi5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZTozNDphdGgxMWtfYWhiLXkgKz0gYWhiLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL01ha2VmaWxlLTM1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6MzY6b2JqLSQoQ09ORklHX0FUSDExS19QQ0kpICs9IGF0aDExa19wY2kub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvTWFrZWZpbGU6Mzc6YXRoMTFrX3BjaS15ICs9IG1oaS5vIHBjaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9NYWtlZmlsZS0zOC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNDpzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBhdGgxMWtfYWhiX29mX21hdGNoW10gPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNS1cXHQvKiBUT0RPOiBTaG91bGQgd2UgY2hhbmdlIHRoZSBjb21wYXRpYmxlIHN0cmluZyB0byBzb21ldGhpbmcgc2ltaWxhclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQzOk1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGF0aDExa19haGJfb2ZfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jPTE0ND1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNDU6YXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHVuc2lnbmVkIGludCB2ZWN0b3IpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYz0xNTA9c3RhdGljIGlubGluZSB1MzJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE1MTphdGgxMWtfYWhiX2dldF93aW5kb3dfc3RhcnRfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM9MTY2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNjc6YXRoMTFrX2FoYl93aW5kb3dfd3JpdGUzMl93Y242NzUwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE3MS1cXHQvKiBXQ042NzUwIHVzZXMgc3RhdGljIHdpbmRvdyBiYXNlZCByZWdpc3RlciBhY2Nlc3MqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTcyOlxcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTczLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xNzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxNzg6c3RhdGljIHUzMiBhdGgxMWtfYWhiX3dpbmRvd19yZWFkMzJfd2NuNjc1MChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTc5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTgzLVxcdC8qIFdDTjY3NTAgdXNlcyBzdGF0aWMgd2luZG93IGJhc2VkIHJlZ2lzdGVyIGFjY2VzcyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTg0OlxcdHdpbmRvd19zdGFydCA9IGF0aDExa19haGJfZ2V0X3dpbmRvd19zdGFydF93Y242NzUwKGFiLCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTg1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTE6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfcGNpX29wcyBhdGgxMWtfYWhiX3BjaV9vcHNfd2NuNjc1MCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5Mi1cXHQud2FrZXVwID0gTlVMTCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTE5My1cXHQucmVsZWFzZSA9IE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTQ6XFx0LmdldF9tc2lfaXJxID0gYXRoMTFrX2FoYl9nZXRfbXNpX2lycV93Y242NzUwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MTk1OlxcdC53aW5kb3dfd3JpdGUzMiA9IGF0aDExa19haGJfd2luZG93X3dyaXRlMzJfd2NuNjc1MCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjE5NjpcXHQud2luZG93X3JlYWQzMiA9IGF0aDExa19haGJfd2luZG93X3JlYWQzMl93Y242NzUwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMTk3LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0xOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoxOTk6c3RhdGljIGlubGluZSB1MzIgYXRoMTFrX2FoYl9yZWFkMzIoc3RydWN0IGF0aDExa19iYXNlICphYiwgdTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwNDpzdGF0aWMgaW5saW5lIHZvaWQgYXRoMTFrX2FoYl93cml0ZTMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUzMiBvZmZzZXQsIHUzMiB2YWx1ZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjIwOTpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2tpbGxfdGFza2xldHMoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxMy1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMTQ6XFx0XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjE1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjE2OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTIxNy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MjIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2dycF9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMjQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzE6c3RhdGljIHZvaWQgX19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjM1LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzY6XFx0XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyMzg6XFx0XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yMzktXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI0ODpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2V4dF9ncnBfZW5hYmxlKHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNDkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNTY6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zZXRiaXQzMihzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1OCBiaXQsIHUzMiBvZmZzZXQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjA6XFx0dmFsID0gYXRoMTFrX2FoYl9yZWFkMzIoYWIsIG9mZnNldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjE6XFx0YXRoMTFrX2FoYl93cml0ZTMyKGFiLCBvZmZzZXQsIHZhbCB8IEJJVChiaXQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNjQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jbGVhcmJpdDMyKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHU4IGJpdCwgdTMyIG9mZnNldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2NS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2ODpcXHR2YWwgPSBhdGgxMWtfYWhiX3JlYWQzMihhYiwgb2Zmc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI2OTpcXHRhdGgxMWtfYWhiX3dyaXRlMzIoYWIsIG9mZnNldCwgdmFsIFxcdTAwMjYgfkJJVChiaXQpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3MC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yNzEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyNzI6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI3My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI4My1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlc3JjX25lbnRyaWVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mjg0OlxcdFxcdGF0aDExa19haGJfc2V0Yml0MzIoYWIsIGNlX2lkLCBpZTFfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMjg2LVxcdGlmIChjZV9hdHRyLVxcdTAwM2VkZXN0X25lbnRyaWVzKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODc6XFx0XFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQsIGllMl9yZWdfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzoyODg6XFx0XFx0YXRoMTFrX2FoYl9zZXRiaXQzMihhYiwgY2VfaWQgKyBDRV9IT1NUX0lFXzNfU0hJRlQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0yODktXFx0XFx0XFx0XFx0ICAgIGllM19yZWdfYWRkcik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjI5MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIsIHUxNiBjZV9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTI5NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMwNC1cXHRpZiAoY2VfYXR0ci1cXHUwMDNlc3JjX25lbnRyaWVzKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA1OlxcdFxcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQsIGllMV9yZWdfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMDctXFx0aWYgKGNlX2F0dHItXFx1MDAzZWRlc3RfbmVudHJpZXMpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjMwODpcXHRcXHRhdGgxMWtfYWhiX2NsZWFyYml0MzIoYWIsIGNlX2lkLCBpZTJfcmVnX2FkZHIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzA5OlxcdFxcdGF0aDExa19haGJfY2xlYXJiaXQzMihhYiwgY2VfaWQgKyBDRV9IT1NUX0lFXzNfU0hJRlQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTAtXFx0XFx0XFx0XFx0ICAgICAgaWUzX3JlZ19hZGRyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzEzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzE0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19jZV9pcnFzKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMTktXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzIwOlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTMyMS1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzI4OnN0YXRpYyB2b2lkIGF0aDExa19haGJfc3luY19leHRfaXJxcyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzI5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzMzLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBBVEgxMUtfRVhUX0lSUV9HUlBfTlVNX01BWDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozMzQ6XFx0XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IFxcdTAwMjZhYi1cXHUwMDNlZXh0X2lycV9ncnBbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zMzUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM0MzpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX2NlX2lycXNfZW5hYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNDctXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzQ4OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM0OS1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM1MDpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycV9lbmFibGUoYWIsIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzUxLVxcdH1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU0OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfaXJxc19kaXNhYmxlKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTUte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zNTgtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIGFiLVxcdTAwM2Vod19wYXJhbXMuY2VfY291bnQ7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzU5OlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2MC1cXHRcXHRcXHRjb250aW51ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2MTpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycV9kaXNhYmxlKGFiLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Mi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM2NTpzdGF0aWMgaW50IGF0aDExa19haGJfc3RhcnQoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2Ni17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjc6XFx0YXRoMTFrX2FoYl9jZV9pcnFzX2VuYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozNjg6XFx0YXRoMTFrX2NlX3J4X3Bvc3RfYnVmKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6MzczOnN0YXRpYyB2b2lkIGF0aDExa19haGJfZXh0X2lycV9lbmFibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM3Ny1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzc4OlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODMtXFx0XFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzg0OlxcdFxcdGF0aDExa19haGJfZXh0X2dycF9lbmFibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODUtXFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zODctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozODg6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9leHRfaXJxX2Rpc2FibGUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM4OS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTA6XFx0X19hdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTE6XFx0YXRoMTFrX2FoYl9zeW5jX2V4dF9pcnFzKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTM5Mi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9zdG9wKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy0zOTUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtMzk2LVxcdGlmICghdGVzdF9iaXQoQVRIMTFLX0ZMQUdfQ1JBU0hfRkxVU0gsIFxcdTAwMjZhYi1cXHUwMDNlZGV2X2ZsYWdzKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjM5NzpcXHRcXHRhdGgxMWtfYWhiX2NlX2lycXNfZGlzYWJsZShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzozOTg6XFx0YXRoMTFrX2FoYl9zeW5jX2NlX2lycXMoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Mzk5OlxcdGF0aDExa19haGJfa2lsbF90YXNrbGV0cyhhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDAtXFx0dGltZXJfZGVsZXRlX3N5bmMoXFx1MDAyNmFiLVxcdTAwM2VyeF9yZXBsZW5pc2hfcmV0cnkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDAxOlxcdGF0aDExa19jZV9jbGVhbnVwX3BpcGVzKGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQwMi19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MDQ6c3RhdGljIGludCBhdGgxMWtfYWhiX3Bvd2VyX3VwKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MDUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDA2OlxcdHN0cnVjdCBhdGgxMWtfYWhiICphYl9haGIgPSBhdGgxMWtfYWhiX3ByaXYoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDA3LVxcdGludCByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxMC1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDExOlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gYm9vdCB0aGUgcmVtb3RlIHByb2Nlc3NvciBRNlxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MTItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxNjpzdGF0aWMgdm9pZCBhdGgxMWtfYWhiX3Bvd2VyX2Rvd24oc3RydWN0IGF0aDExa19iYXNlICphYiwgYm9vbCBpc19zdXNwZW5kKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDE3LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQxODpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDIyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDIzOnN0YXRpYyB2b2lkIGF0aDExa19haGJfaW5pdF9xbWlfY2VfY29uZmlnKHN0cnVjdCBhdGgxMWtfYmFzZSAqYWIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MjQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDI1OlxcdHN0cnVjdCBhdGgxMWtfcW1pX2NlX2NmZyAqY2ZnID0gXFx1MDAyNmFiLVxcdTAwM2VxbWkuY2VfY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDI2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00MzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0MzQ6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQzOC1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDM5OlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDQwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NDk6c3RhdGljIHZvaWQgYXRoMTFrX2FoYl9mcmVlX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDUwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU0LVxcdGlmIChhYi1cXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1NTpcXHRcXHRyZXR1cm4gYXRoMTFrX3BjaWNfZnJlZV9pcnEoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDU3LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBhYi1cXHUwMDNlaHdfcGFyYW1zLmNlX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ1ODpcXHRcXHRpZiAoYXRoMTFrX2NlX2dldF9hdHRyX2ZsYWdzKGFiLCBpKSBcXHUwMDI2IENFX0FUVFJfRElTX0lOVFIpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NTktXFx0XFx0XFx0Y29udGludWU7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ2NDpcXHRhdGgxMWtfYWhiX2ZyZWVfZXh0X2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NjUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDY2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY3OnN0YXRpYyB2b2lkIGF0aDExa19haGJfY2VfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00Njgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDY5OlxcdHN0cnVjdCBhdGgxMWtfY2VfcGlwZSAqY2VfcGlwZSA9IGZyb21fdGFza2xldChjZV9waXBlLCB0LCBpbnRyX3RxKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjQ3MTpcXHRhdGgxMWtfY2VfcGVyX2VuZ2luZV9zZXJ2aWNlKGNlX3BpcGUtXFx1MDAzZWFiLCBjZV9waXBlLVxcdTAwM2VwaXBlX251bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0NzM6XFx0YXRoMTFrX2FoYl9jZV9pcnFfZW5hYmxlKGNlX3BpcGUtXFx1MDAzZWFiLCBjZV9waXBlLVxcdTAwM2VwaXBlX251bSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00NzQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBhdGgxMWtfYWhiX2NlX2ludGVycnVwdF9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ3Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0Nzg6XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDc5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0ODM6XFx0YXRoMTFrX2FoYl9jZV9pcnFfZGlzYWJsZShjZV9waXBlLVxcdTAwM2VhYiwgY2VfcGlwZS1cXHUwMDNlcGlwZV9udW0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDg0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00ODktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTA6c3RhdGljIGludCBhdGgxMWtfYWhiX2V4dF9ncnBfbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTI6XFx0c3RydWN0IGF0aDExa19leHRfaXJxX2dycCAqaXJxX2dycCA9IGNvbnRhaW5lcl9vZihuYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NDkzOlxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTQtXFx0XFx0XFx0XFx0XFx0XFx0bmFwaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTU6XFx0c3RydWN0IGF0aDExa19iYXNlICphYiA9IGlycV9ncnAtXFx1MDAzZWFiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNDk2LVxcdGludCB3b3JrX2RvbmU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy00OTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo0OTg6XFx0d29ya19kb25lID0gYXRoMTFrX2RwX3NlcnZpY2Vfc3JuZyhhYiwgaXJxX2dycCwgYnVkZ2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTQ5OS1cXHRpZiAod29ya19kb25lIFxcdTAwM2MgYnVkZ2V0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MDAtXFx0XFx0bmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIHdvcmtfZG9uZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MDE6XFx0XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2VuYWJsZShpcnFfZ3JwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwMi1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMDpzdGF0aWMgaXJxcmV0dXJuX3QgYXRoMTFrX2FoYl9leHRfaW50ZXJydXB0X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqYXJnKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTExLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUxMjpcXHRzdHJ1Y3QgYXRoMTFrX2V4dF9pcnFfZ3JwICppcnFfZ3JwID0gYXJnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTEzLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MTc6XFx0YXRoMTFrX2FoYl9leHRfZ3JwX2Rpc2FibGUoaXJxX2dycCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MTgtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjUyNDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2V4dF9pcnEoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUyNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1MjY6XFx0c3RydWN0IGF0aDExa19od19wYXJhbXMgKmh3ID0gXFx1MDAyNmFiLVxcdTAwM2Vod19wYXJhbXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01MjctXFx0aW50IGksIGo7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTUzMS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgQVRIMTFLX0VYVF9JUlFfR1JQX05VTV9NQVg7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTMyOlxcdFxcdHN0cnVjdCBhdGgxMWtfZXh0X2lycV9ncnAgKmlycV9ncnAgPSBcXHUwMDI2YWItXFx1MDAzZWV4dF9pcnFfZ3JwW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTMzLVxcdFxcdHUzMiBudW1faXJxID0gMDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQyLVxcdFxcdG5ldGlmX25hcGlfYWRkKGlycV9ncnAtXFx1MDAzZW5hcGlfbmRldiwgXFx1MDAyNmlycV9ncnAtXFx1MDAzZW5hcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo1NDM6XFx0XFx0XFx0ICAgICAgIGF0aDExa19haGJfZXh0X2dycF9uYXBpX3BvbGwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTQ0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NjgtXFx0XFx0XFx0XFx0XFx0XFx0cnhkbWEyaG9zdF9kZXN0aW5hdGlvbl9yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTY5OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzAtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzQtXFx0XFx0XFx0XFx0XFx0XFx0aG9zdDJyeGRtYV9ob3N0X2J1Zl9yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTc1OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01NzYtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODAtXFx0XFx0XFx0XFx0XFx0XFx0cHBkdV9lbmRfaW50ZXJydXB0c19tYWMxIC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjU4MTpcXHRcXHRcXHRcXHRcXHRcXHRhdGgxMWtfaHdfZ2V0X21hY19mcm9tX3BkZXZfaWQoaHcsIGopO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNTgyLVxcdFxcdFxcdFxcdFxcdGlycV9ncnAtXFx1MDAzZWlycXNbbnVtX2lycSsrXSA9XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODMtXFx0XFx0XFx0XFx0XFx0XFx0cnhkbWEyaG9zdF9tb25pdG9yX3N0YXR1c19yaW5nX21hYzEgLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTg0OlxcdFxcdFxcdFxcdFxcdFxcdGF0aDExa19od19nZXRfbWFjX2Zyb21fcGRldl9pZChodywgaik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01ODUtXFx0XFx0XFx0XFx0fVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTYtXFx0XFx0XFx0aXJxX3NldF9zdGF0dXNfZmxhZ3MoaXJxLCBJUlFfTk9BVVRPRU4gfCBJUlFfRElTQUJMRV9VTkxBWlkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NTk3OlxcdFxcdFxcdHJldCA9IHJlcXVlc3RfaXJxKGlycSwgYXRoMTFrX2FoYl9leHRfaW50ZXJydXB0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy01OTgtXFx0XFx0XFx0XFx0XFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MDAtXFx0XFx0XFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjAxOlxcdFxcdFxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgcmVxdWVzdF9pcnEgZm9yICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjAyLVxcdFxcdFxcdFxcdFxcdCAgIGlycSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYwOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxMDpzdGF0aWMgaW50IGF0aDExa19haGJfY29uZmlnX2lycShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjExLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjE1LVxcdGlmIChhYi1cXHUwMDNlaHdfcGFyYW1zLmh5YnJpZF9idXNfdHlwZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYxNjpcXHRcXHRyZXR1cm4gYXRoMTFrX3BjaWNfY29uZmlnX2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MTctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYxOS1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgYWItXFx1MDAzZWh3X3BhcmFtcy5jZV9jb3VudDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2MjA6XFx0XFx0c3RydWN0IGF0aDExa19jZV9waXBlICpjZV9waXBlID0gXFx1MDAyNmFiLVxcdTAwM2VjZS5jZV9waXBlW2ldO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjIxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjIyOlxcdFxcdGlmIChhdGgxMWtfY2VfZ2V0X2F0dHJfZmxhZ3MoYWIsIGkpIFxcdTAwMjYgQ0VfQVRUUl9ESVNfSU5UUilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTYyMy1cXHRcXHRcXHRjb250aW51ZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjI2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NjI3OlxcdFxcdHRhc2tsZXRfc2V0dXAoXFx1MDAyNmNlX3BpcGUtXFx1MDAzZWludHJfdHEsIGF0aDExa19haGJfY2VfdGFza2xldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MjgtXFx0XFx0aXJxID0gcGxhdGZvcm1fZ2V0X2lycV9ieW5hbWUoYWItXFx1MDAzZXBkZXYsIGlycV9uYW1lW2lycV9pZHhdKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjYyOTpcXHRcXHRyZXQgPSByZXF1ZXN0X2lycShpcnEsIGF0aDExa19haGJfY2VfaW50ZXJydXB0X2hhbmRsZXIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02MzAtXFx0XFx0XFx0XFx0ICBJUlFGX1RSSUdHRVJfUklTSU5HLCBpcnFfbmFtZVtpcnFfaWR4XSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjM4LVxcdC8qIENvbmZpZ3VyZSBleHRlcm5hbCBpbnRlcnJ1cHRzICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo2Mzk6XFx0cmV0ID0gYXRoMTFrX2FoYl9jb25maWdfZXh0X2lycShhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy02NDAtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY0NDpzdGF0aWMgaW50IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZShzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiLCB1MTYgc2VydmljZV9pZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY0NS1cXHRcXHRcXHRcXHRcXHQgIHU4ICp1bF9waXBlLCB1OCAqZGxfcGlwZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Njg3OnN0YXRpYyBpbnQgYXRoMTFrX2FoYl9oaWZfc3VzcGVuZChzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNjg4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjY4OTpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTY5MC1cXHR1MzIgd2FrZV9pcnE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcwMC1cXHRpZiAocmV0KSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MDE6XFx0XFx0YXRoMTFrX2VycihhYiwgXFxcImZhaWxlZCB0byBlbmFibGUgd2FrZXVwIGlycSA6JWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MDItXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzEyLVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcxMzpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIHNlbmQgc21wMnAgcG93ZXIgc2F2ZSBlbnRlciBjbWQgOiVkXFxcXG5cXFwiLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE0LVxcdFxcdHJldHVybiByZXQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcxNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjcxNzpcXHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXFxcImRldmljZSBzdXNwZW5kZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzE4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjI6c3RhdGljIGludCBhdGgxMWtfYWhiX2hpZl9yZXN1bWUoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTcyMy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3MjQ6XFx0c3RydWN0IGF0aDExa19haGIgKmFiX2FoYiA9IGF0aDExa19haGJfcHJpdihhYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MjUtXFx0dTMyIHdha2VfaXJxO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03MzUtXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzM2OlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gZGlzYWJsZSB3YWtldXAgaXJxOiAlZFxcXFxuXFxcIiwgcmV0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTczNy1cXHRcXHRyZXR1cm4gcmV0O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NDktXFx0aWYgKHJldCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzUwOlxcdFxcdGF0aDExa19lcnIoYWIsIFxcXCJmYWlsZWQgdG8gc2VuZCBzbXAycCBwb3dlciBzYXZlIGVudGVyIGNtZCA6JWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTEtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzU1LVxcdGlmIChyZXQgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzU2OlxcdFxcdGF0aDExa193YXJuKGFiLCBcXFwidGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9yIHdvdyB3YWtldXAgY29tcGxldGlvblxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NTctXFx0XFx0cmV0dXJuIC1FVElNRURPVVQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc1OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2MDpcXHRhdGgxMWtfZGJnKGFiLCBBVEgxMUtfREJHX0FIQiwgXFxcImRldmljZSByZXN1bWVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc2MS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzY1OnN0YXRpYyBjb25zdCBzdHJ1Y3QgYXRoMTFrX2hpZl9vcHMgYXRoMTFrX2FoYl9oaWZfb3BzX2lwcTgwNzQgPSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3NjY6XFx0LnN0YXJ0ID0gYXRoMTFrX2FoYl9zdGFydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2NzpcXHQuc3RvcCA9IGF0aDExa19haGJfc3RvcCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc2ODpcXHQucmVhZDMyID0gYXRoMTFrX2FoYl9yZWFkMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Njk6XFx0LndyaXRlMzIgPSBhdGgxMWtfYWhiX3dyaXRlMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzAtXFx0LnJlYWQgPSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzcxOlxcdC5pcnFfZW5hYmxlID0gYXRoMTFrX2FoYl9leHRfaXJxX2VuYWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MjpcXHQuaXJxX2Rpc2FibGUgPSBhdGgxMWtfYWhiX2V4dF9pcnFfZGlzYWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3MzpcXHQubWFwX3NlcnZpY2VfdG9fcGlwZSA9IGF0aDExa19haGJfbWFwX3NlcnZpY2VfdG9fcGlwZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NDpcXHQucG93ZXJfZG93biA9IGF0aDExa19haGJfcG93ZXJfZG93bixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3NTpcXHQucG93ZXJfdXAgPSBhdGgxMWtfYWhiX3Bvd2VyX3VwLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzc2LX07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03NzctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3Nzg6c3RhdGljIGNvbnN0IHN0cnVjdCBhdGgxMWtfaGlmX29wcyBhdGgxMWtfYWhiX2hpZl9vcHNfd2NuNjc1MCA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc3OTpcXHQuc3RhcnQgPSBhdGgxMWtfcGNpY19zdGFydCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MDpcXHQuc3RvcCA9IGF0aDExa19wY2ljX3N0b3AsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODE6XFx0LnJlYWQzMiA9IGF0aDExa19wY2ljX3JlYWQzMixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc4MjpcXHQud3JpdGUzMiA9IGF0aDExa19wY2ljX3dyaXRlMzIsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03ODMtXFx0LnJlYWQgPSBOVUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg0OlxcdC5pcnFfZW5hYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9lbmFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODU6XFx0LmlycV9kaXNhYmxlID0gYXRoMTFrX3BjaWNfZXh0X2lycV9kaXNhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg2OlxcdC5nZXRfbXNpX2FkZHJlc3MgPSAgYXRoMTFrX3BjaWNfZ2V0X21zaV9hZGRyZXNzLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg3OlxcdC5nZXRfdXNlcl9tc2lfdmVjdG9yID0gYXRoMTFrX3BjaWNfZ2V0X3VzZXJfbXNpX2Fzc2lnbm1lbnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3ODg6XFx0Lm1hcF9zZXJ2aWNlX3RvX3BpcGUgPSBhdGgxMWtfcGNpY19tYXBfc2VydmljZV90b19waXBlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6Nzg5OlxcdC5wb3dlcl9kb3duID0gYXRoMTFrX2FoYl9wb3dlcl9kb3duLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkwOlxcdC5wb3dlcl91cCA9IGF0aDExa19haGJfcG93ZXJfdXAsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTE6XFx0LnN1c3BlbmQgPSBhdGgxMWtfYWhiX2hpZl9zdXNwZW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmM6NzkyOlxcdC5yZXN1bWUgPSBhdGgxMWtfYWhiX2hpZl9yZXN1bWUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo3OTM6XFx0LmNlX2lycV9lbmFibGUgPSBhdGgxMWtfcGNpX2VuYWJsZV9jZV9pcnFzX2V4Y2VwdF93YWtlX2lycSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NDpcXHQuY2VfaXJxX2Rpc2FibGUgPSBhdGgxMWtfcGNpX2Rpc2FibGVfY2VfaXJxc19leGNlcHRfd2FrZV9pcnEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy03OTUtfTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTc5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5NzpzdGF0aWMgaW50IGF0aDExa19jb3JlX2dldF9ycHJvYyhzdHJ1Y3QgYXRoMTFrX2Jhc2UgKmFiKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtNzk4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjc5OTpcXHRzdHJ1Y3QgYXRoMTFrX2FoYiAqYWJfYWhiID0gYXRoMTFrX2FoYl9wcml2KGFiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgwMC1cXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBhYi1cXHUwMDNlZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MDQtXFx0aWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKGRldi1cXHUwMDNlb2Zfbm9kZSwgXFxcInFjb20scnByb2NcXFwiLCBcXHUwMDI2cnByb2NfcGhhbmRsZSkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgwNTpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGdldCBxNl9ycHJvYyBoYW5kbGVcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODA2LVxcdFxcdHJldHVybiAtRU5PRU5UO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYzo4MTc6c3RhdGljIGludCBhdGgxMWtfYWhiX3NldHVwX21zaV9yZXNvdXJjZXMoc3RydWN0IGF0aDExa19iYXNlICphYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgxOC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jLTgyNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyNzpcXHRyZXQgPSBhdGgxMWtfcGNpY19pbml0X21zaV9jb25maWcoYWIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvYWhiLmMtODI4LVxcdGlmIChyZXQpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL2FoYi5jOjgyOTpcXHRcXHRhdGgxMWtfZXJyKGFiLCBcXFwiZmFpbGVkIHRvIGluaXQgbXNpIGNvbmZpZzogJWRcXFxcblxcXCIsIHJldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9haGIuYy04MzAtXFx0XFx0cmV0dXJuIHJldDtcXG4tLVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wMVQwNDoxMzowNy44MjgyODQ0MzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4OTkwNDk5OTA5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFzc2Vzc2luZyB0aGUgVGVzdGFiaWxpdHkgb2YgdGhlIGF0aDExayBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBuZWVkIHRvIGRldGVybWluZSBpZiBpdCdzIFwiV29ydGhGdXp6aW5nLlwiIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoZSBhdGgxMWsgZHJpdmVyLCBiZWluZyBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgcHJvYmFibHkgcmVxdWlyZXMgKmFjdHVhbCogaGFyZHdhcmUgb3IgYSBkZWNlbnQgZW11bGF0aW9uLiBJIHF1aWNrbHkgZGlzbWlzcyB0aGUgaWRlYSBvZiBgbWFjODAyMTFfaHdzaW1gIGJlY2F1c2UsIGZyb20gd2hhdCBJIHVuZGVyc3RhbmQsIHRoYXQncyBqdXN0IGEgc29mdHdhcmUgc2ltdWxhdG9yIGZvciBtYWM4MDIxMSwgbm90IHNwZWNpZmljYWxseSBmb3IgYXRoMTFrLiBDYW4gSSBnZXQgYXdheSB3aXRoIHJ1bm5pbmcgdGhpcyBpbiBRRU1VPyBObywgZGVmaW5pdGVseSBub3QuIFFFTVUgZG9lc24ndCBlbXVsYXRlIHRoZSBzcGVjaWZpYyBhdGgxMWsgaGFyZHdhcmUuXG5cblRoZSBpbnN0cnVjdGlvbnMgYXJlIHZlcnkgY2xlYXI6IGlmIHRoZSBjb2RlIHJlbGllcyBvbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycywgb3IgaW52b2x2ZXMgY29kZSBwYXRocyBpbmFjY2Vzc2libGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCB0aGVuIGl0J3MgYSBuby1nbyBmb3IgZnV6emluZy4gQXRoMTFrIGlzLCB1bmRvdWJ0ZWRseSwgYSB2ZW5kb3Itc3BlY2lmaWMgV2ktRmkgZHJpdmVyLiBJdCdzIGRlc2lnbmVkIHRvIHVzZSBwaHlzaWNhbCBQQ0llIG9yIEFIQiBoYXJkd2FyZS4gU28sIGNhbiBpdCBiZSBmdXp6LXRlc3RlZCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudD9cblxuQWxyaWdodCwgbGV0J3MgZXhwbG9yZSBpZiB0aGVyZSdzIGFueSBjbGV2ZXIgdHJpY2tlcnkgb3IgbW9jayBpbXBsZW1lbnRhdGlvbnMuIEknbGwgc2NhbiB0aHJvdWdoIGBody9gIGFuZCBgZHJpdmVycy9gIHRvIHNlZSBpZiB0aGVyZSdzIGEgc29mdHdhcmUgZW11bGF0aW9uIGNvbXBvbmVudC4gV2FpdCwgSSBzZWUgbWVudGlvbiBvZiBgc3l6Ym90YCB0ZXN0aW5nIGF0aDExay4gKkRpZCogc3l6Ym90IGFjdHVhbGx5IGZpbmQgc29tZXRoaW5nIHNwZWNpZmljIHRvIHRoaXMgZHJpdmVyPyBUaGUgY29tbWl0IG1lc3NhZ2Ugc2VlbXMgZ2VuZXJpYywgYW5kIGl0J3MgcHJvYmFibHkgcnVubmluZyBgbWFjODAyMTFfaHdzaW1gLCBub3QgZGlyZWN0IGF0aDExayB0ZXN0cy4gSXQgbWlnaHQgYmUgYSBidWcgcmVwb3J0ZWQgYnkgYSBodW1hbiwgYW5kIGl04oCZcyBqdXN0IGJlaW5nIHRlc3RlZCBoZXJlLlxuXG5UaGUgaW5zdHJ1Y3Rpb25zICpleHBsaWNpdGx5KiBleGNsdWRlIGNvZGUgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLCBhbmQgdGhhdCBpbmNsdWRlcyBhdGgxMWshIFRoZSBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgaGFyZHdhcmUgYmVjYXVzZSB0aGF0J3MgaG93IGl0J3MgZGVzaWduZWQuIEl0J3MgYSBXaS1GaSBkcml2ZXIgdGhhdCByZWdpc3RlcnMgd2l0aCBtYWM4MDIxMSwgYnV0IGl0cyBwcm9iZSBmdW5jdGlvbnMsIGBhdGgxMWtfcGNpX3Byb2JlYCBvciBgYXRoMTFrX2FoYl9wcm9iZWAsIGFyZSBvbmx5IGV2ZXIgY2FsbGVkIGlmIHRoZSBoYXJkd2FyZSBpcyBwcmVzZW50LCBlaXRoZXIgUENJIG9yIEFIQi4gSWYgdGhlIGhhcmR3YXJlIGlzbid0IGRldGVjdGVkLCB0aGUgZHJpdmVyIGlzIG5ldmVyIGluaXRpYWxpemVkLiBUaHVzLCBJJ20gcHJldHR5IHN1cmUgdGhlcmUncyBubyB3YXkgdG8gcmVhY2ggYGF0aDExa19tYWNfc3RhdGlvbl9yZW1vdmVgIG9yIGBhdGgxMWtfbWFjX3BlZXJfY2xlYW51cF9hbGxgIHdpdGhvdXQgaXQuIEJhc2VkIG9uIHRoZSByZXF1aXJlbWVudHMsIEkgd291bGQgcmF0ZSB0aGlzIGFzIFwiV29ydGhGdXp6aW5nPWZhbHNlXCIuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE4MjEwLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAxVDA0OjEzOjE2LjgxODc4NzY2OFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjUyNjYyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJhdGgxMWtfcGNpX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM9OTQwPXN0YXRpYyBpbnQgYXRoMTFrX3BjaV9zZXRfaXJxX2FmZmluaXR5X2hpbnQoc3RydWN0IGF0aDExa19wY2kgKmFiX3BjaSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmMtOTQ4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGgxMWsvcGNpLmM6OTQ5OnN0YXRpYyBpbnQgYXRoMTFrX3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jLTk1MC1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKnBjaV9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoMTFrL3BjaS5jPTEyOTY9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGF0aDExa19wY2lfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMjk4LVxcdC5pZF90YWJsZSA9IGF0aDExa19wY2lfaWRfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYzoxMjk5OlxcdC5wcm9iZSA9IGF0aDExa19wY2lfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDExay9wY2kuYy0xMzAwLVxcdC5yZW1vdmUgPSBhdGgxMWtfcGNpX3JlbW92ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MTYuODY1MzE3OTc3WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTQ1OTY5NTA5NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIERlY2lzaW9uIGZvciB0aGUgYXRoMTFrIFBDSSBEcml2ZXIqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kLCB5ZXAsIGl0J3MgZGVmaW5pdGVseSBwYXJ0IG9mIHRoZSBQQ0kgZHJpdmVyLiBUaGUgcXVlc3Rpb24gaXM6IGNhbiBJIGFjdHVhbGx5IHJlYWNoIGl0IGR1cmluZyBmdXp6aW5nPyBBbmQgdGhlIGFuc3dlciwgYWZ0ZXIgYSBiaXQgb2YgY29uc2lkZXJhdGlvbiwgaXMgbm8uIFRoZXJlJ3Mgbm8gc3RhbmRhcmQgUUVNVSBlbXVsYXRpb24gdGhhdCBzdXBwb3J0cyBhdGgxMWssIHdoaWNoIG1lYW5zIGFueSBvZiBteSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB0aGF0IGVudmlyb25tZW50LlxuXG5JIGhhZCB0byBkb3VibGUtY2hlY2ssIHRob3VnaC4gTWF5YmUgdGhlcmUgd2FzIHNvbWUgY2xldmVyIHNvZnR3YXJlIHNpbXVsYXRvciBJIHdhcyBtaXNzaW5nLiBCdXQsIG5vLiBtYWM4MDIxMV9od3NpbSwgd2hpbGUgaW50ZXJlc3RpbmcsIGlzIGEgKnNvZnR3YXJlKiBzaW11bGF0b3Igb2YgdGhlICpoYXJkd2FyZSogaXRzZWxmLiBJdCBkb2Vzbid0IGFjdHVhbGx5IGludGVyYWN0IHdpdGggb3IgdXNlIHRoZSBhdGgxMWsgZHJpdmVyLiBUaGF0IGRyaXZlciBpcyAqc3BlY2lmaWNhbGx5KiBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBoYXJkd2FyZSwgYW5kIHJlbGllcyBvbiB0aGF0IHBoeXNpY2FsIFBDSS9BSEIgaGFyZHdhcmUuIEJlY2F1c2UgUUVNVSBkb2Vzbid0IGVtdWxhdGUgdGhhdCBoYXJkd2FyZSwgdGhlIGRyaXZlciB3b24ndCBwcm9iZSwgYW5kIG5vbmUgb2YgaXRzIGZ1bmN0aW9ucyB3aWxsIGJlIHJlYWNoYWJsZS4gSXQncyB2ZW5kb3Itc3BlY2lmaWMsIHBsYWluIGFuZCBzaW1wbGUuIFRoZXJlZm9yZSwgZnV6emluZyB0aGlzIHBhcnRpY3VsYXIgY29kZSB3b3VsZCBiZSBhIHdhc3RlIG9mIHJlc291cmNlcy5cblxuU28sIEknbSBnb2luZyB0byByZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlLiBJJ2xsIHVzZSB0aGUgc2V0LXJlc3VsdHMgdG9vbCB0byBkb2N1bWVudCB0aGlzIGRlY2lzaW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTc5NiwiT3V0cHV0VG9rZW5zIjoxMDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDFUMDQ6MTM6MjIuMzI1MDE1MjcyWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTY1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBhdGgxMWssIGEgdmVuZG9yLXNwZWNpZmljIGhhcmR3YXJlIGRyaXZlciBmb3IgUXVhbGNvbW0gQXRoZXJvcyA4MDIuMTFheCBXaS1GaSBjYXJkcy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgcGh5c2ljYWwgUENJIG9yIEFIQiBoYXJkd2FyZSB0byBwcm9iZSBhbmQgaW5pdGlhbGl6ZSwgd2hpY2ggaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGF0aDExaywgYSB2ZW5kb3Itc3BlY2lmaWMgaGFyZHdhcmUgZHJpdmVyIGZvciBRdWFsY29tbSBBdGhlcm9zIDgwMi4xMWF4IFdpLUZpIGNhcmRzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBwaHlzaWNhbCBQQ0kgb3IgQUhCIGhhcmR3YXJlIHRvIHByb2JlIGFuZCBpbml0aWFsaXplLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgcGF0aHMgYXJlIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowdc9vl[1] Phase: Running StartedAt: 2026-08-01 04:13:33 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowdc9vl[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-01 04:13:33 +0000 UTC FinishedAt: 2026-08-01 04:13:37 +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,}