Name: series-workflow284wc Phase: Failed StartedAt: 2026-08-31 17:19:51 +0000 UTC FinishedAt: 2026-08-31 17:40:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflow284wc[0] Phase: Succeeded StartedAt: 2026-08-31 17:19:51 +0000 UTC FinishedAt: 2026-08-31 17:40:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflow284wc[0].run-triage Phase: Succeeded StartedAt: 2026-08-31 17:19:51 +0000 UTC FinishedAt: 2026-08-31 17:40:36 +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+CgkJCTx0ZD4yMDI2LzA4LzMxIDE3OjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGl3bF9tbGRfcmVvcmRlcigpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgIHRvIGFkZCBhIGJvdW5kcyBjaGVjayBmb3IgYGJhaWRgLiBUaGUgYGl3bHdpZmlgIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgSW50ZWwgUENJZSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJzLCB3aGljaCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgR0NFKS4gVGhlcmVmb3JlLCB0aGVzZSBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGUwODhlMDY0MjI0NDIxOTZlMjcyMjRkMGM5NjgwN2RjOTg1NThjMDNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAxNzozNzo1NCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5pbmRleCBlMzYyN2FkMDMyMWM4Li5hNDY0ZWJkZWM1N2YxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5AQCAtMSw2ICYjNDM7MSw2IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxuICAqL1xuICNpbmNsdWRlIFwmIzM0O2FnZy5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7c3RhLmhcJiMzNDtcbkBAIC0yMjIsNiAmIzQzOzIyMiwxMSBAQCBpd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxuIFx0aWYgKGJhaWQgPT0gSVdMX1JYX1JFT1JERVJfREFUQV9JTlZBTElEX0JBSUQpXG4gXHRcdHJldHVybiBJV0xfTUxEX1BBU1NfU0tCO1xuIFxuJiM0MztcdGlmIChJV0xfRldfQ0hFQ0sobWxkLCBiYWlkIFx1MDAzZT0gQVJSQVlfU0laRShtbGQtXHUwMDNlZndfaWRfdG9fYmEpLFxuJiM0MztcdFx0XHQgXCYjMzQ7R290IG91dC1vZi1yYW5nZSBCQUlEICV1IGluIHJlb3JkZXJfZGF0YT0weCV4XFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgYmFpZCwgcmVvcmRlcikpXG4mIzQzO1x0XHRyZXR1cm4gSVdMX01MRF9QQVNTX1NLQjtcbiYjNDM7XG4gXHQvKiBubyBzdGEgeWV0ICovXG4gXHRpZiAoV0FSTl9PTkNFKCFzdGEsXG4gXHRcdCAgICAgIFwmIzM0O0dvdCB2YWxpZCBCQUlEIHdpdGhvdXQgYSB2YWxpZCBzdGF0aW9uIGFzc2lnbmVkXFxuXCYjMzQ7KSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozNzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyKClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AgdG8gYWRkIGEgYm91bmRzIGNoZWNrIGZvciBgYmFpZGAuIFRoZSBgaXdsd2lmaWAgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBJbnRlbCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlcnMsIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBHQ0UpLiBUaGVyZWZvcmUsIHRoZXNlIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTA4OGUwNjQyMjQ0MjE5NmUyNzIyNGQwYzk2ODA3ZGM5ODU1OGMwMwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDMxIDE3OjM3OjU0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYwppbmRleCBlMzYyN2FkMDMyMWM4Li5hNDY0ZWJkZWM1N2YxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYwpAQCAtMSw2ICYjNDM7MSw2IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2UKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvbgomIzQzOyAqIENvcHlyaWdodCAoQykgMjAyNC0yMDI2IEludGVsIENvcnBvcmF0aW9uCiAgKi8KICNpbmNsdWRlICYjMzQ7YWdnLmgmIzM0OwogI2luY2x1ZGUgJiMzNDtzdGEuaCYjMzQ7CkBAIC0yMjIsNiAmIzQzOzIyMiwxMSBAQCBpd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLAogCWlmIChiYWlkID09IElXTF9SWF9SRU9SREVSX0RBVEFfSU5WQUxJRF9CQUlEKQogCQlyZXR1cm4gSVdMX01MRF9QQVNTX1NLQjsKIAomIzQzOwlpZiAoSVdMX0ZXX0NIRUNLKG1sZCwgYmFpZCAmZ3Q7PSBBUlJBWV9TSVpFKG1sZC0mZ3Q7ZndfaWRfdG9fYmEpLAomIzQzOwkJCSAmIzM0O0dvdCBvdXQtb2YtcmFuZ2UgQkFJRCAldSBpbiByZW9yZGVyX2RhdGE9MHgleFxuJiMzNDssCiYjNDM7CQkJIGJhaWQsIHJlb3JkZXIpKQomIzQzOwkJcmV0dXJuIElXTF9NTERfUEFTU19TS0I7CiYjNDM7CiAJLyogbm8gc3RhIHlldCAqLwogCWlmIChXQVJOX09OQ0UoIXN0YSwKIAkJICAgICAgJiMzNDtHb3QgdmFsaWQgQkFJRCB3aXRob3V0IGEgdmFsaWQgc3RhdGlvbiBhc3NpZ25lZFxuJiMzNDspKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjg3CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMjk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gYXNzZXNzIGlmIHRoaXMgcGF0Y2ggd2FycmFudHMgZnV6emluZyBlZmZvcnQuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGl0JiMzOTtzIGV2ZW4gY2hhbmdpbmcuIExvb2tzIGxpa2UgdGhlIGZpbGUgaW4gcXVlc3Rpb24gaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgaXdsX21sZF9yZW9yZGVyKClgIGZ1bmN0aW9uLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhbiBvdXQtb2YtYm91bmRzIGNoZWNrIHVzaW5nIGBJV0xfRldfQ0hFQ0tgIG9uIGBiYWlkYCBhZ2FpbnN0IGBBUlJBWV9TSVpFKG1sZC0mZ3Q7ZndfaWRfdG9fYmEpYC4gSG1tLCBjbGFzc2ljLgoKTm93LCBsZXQmIzM5O3MgYXBwbHkgdGhlIG1lbnRhbCBjaGVja2xpc3QuIERvZXMgdGhpcyBmYWxsIHVuZGVyIGFueSBvZiBteSBlc3RhYmxpc2hlZCBmdXp6aW5nIGV4Y2x1c2lvbnM/IExldCBtZSBzZWUuLi4gJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLi4uJiMzNDsgV2FpdCwgd2hhdCBkcml2ZXIgYXJlIHdlIGRlYWxpbmcgd2l0aD8gQWgsIGBpd2x3aWZpYCDigJMgdGhlIEludGVsIHdpcmVsZXNzIFdpRmkgZHJpdmVyLgoKVGhlIG1pbGxpb24tZG9sbGFyIHF1ZXN0aW9uOiBpcyBgaXdsd2lmaWAgc3VwcG9ydGVkIGluIGEgUUVNVSwgbWFjODAyMTFfaHdzaW0sIG9yIG90aGVyIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHdpdGhvdXQgYWN0dWFsIEludGVsIFdpRmkgaGFyZHdhcmU/IFRoYXQmIzM5O3MgdGhlIGNydXggb2YgaXQuIERvZXMgYGl3bHdpZmlgIGhhdmUgYW55IG9mIGl0cyBvd24gdmlydHVhbGl6ZWQgY291bnRlcnBhcnRzIGxpa2UsIHNheSwgYGl3bG12bWAgb3IgaXMgaXQgcHVyZWx5IHJlbGlhbnQgb24gYSBwaHlzaWNhbCBJbnRlbCB3aXJlbGVzcyBjYXJkPyBJIGNhbiYjMzk7dCBpbW1lZGlhdGVseSByZWNhbGwuCgpJIG5lZWQgdG8gY29uZmlybSBpZiBpdCBjYW4gYmUgZW11bGF0ZWQuIFRpbWUgdG8gc3RhcnQgZGlnZ2luZyDigJMgYGl3bHdpZmlgLCBgaXdsbXZtYCwgYW5kIHBvc3NpYmx5IGV2ZW4gd2l0aGluIHRoZSBgaXdsd2lmaS9tbGRgIHN1YmRpcmVjdG9yeS4gSSYjMzk7bGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgdG9vbHMgaGVyZSDigJMgbWF5YmUgYGdyZXBwZXJgIG9yIGp1c3QgYnJvd3NlIHRoZSBjb2RlIGRpcmVjdGx5LiBHb3R0YSBjaGVjayB0aG9zZSB2aXJ0dWFsL2VtdWxhdGVkIGhhcmR3YXJlIHBvc3NpYmlsaXRpZXMgYmVmb3JlIEkgZGVjaWRlIGlmIGZ1enppbmcgaXMgZmVhc2libGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXdsX21sZF9yZW9yZGVyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjEwOml3bF9tbGRfcmVvcmRlcl9yZWxlYXNlX2ZyYW1lcyhzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTEtXHRcdFx0ICAgICAgIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTEyLVx0XHRcdCAgICAgICBzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjEzOlx0XHRcdCAgICAgICBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNC1cdFx0XHQgICAgICAgdTE2IG5zc24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxNjpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE3LVx0XHRcdTAwMjZiYWlkX2RhdGEtXHUwMDNlZW50cmllc1tyZW9yZGVyX2J1Zi1cdTAwM2VxdWV1ZSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM9NDI9c3RhdGljIHZvaWQgaXdsX21sZF9yZWxlYXNlX2ZyYW1lc19mcm9tX25vdGlmKHN0cnVjdCBpd2xfbWxkICptbGQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6NDY6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00Ny1cdHN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSAqYmFfZGF0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy03Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjc3Olx0aXdsX21sZF9yZW9yZGVyX3JlbGVhc2VfZnJhbWVzKG1sZCwgbGlua19zdGEtXHUwMDNlc3RhLCBuYXBpLCBiYV9kYXRhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNzgtXHRcdFx0XHQgICAgICAgcmVvcmRlcl9idWYsIG5zc24pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTE1Mz12b2lkIGl3bF9tbGRfZGVsX2JhKHN0cnVjdCBpd2xfbWxkICptbGQsIGludCBxdWV1ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNTYtXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxNTc6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNTgtXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xODItXHQvKiByZWxlYXNlIGFsbCBmcmFtZXMgdGhhdCBhcmUgaW4gdGhlIHJlb3JkZXIgYnVmZmVyIHRvIHRoZSBzdGFjayAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTgzOlx0aXdsX21sZF9yZW9yZGVyX3JlbGVhc2VfZnJhbWVzKG1sZCwgbGlua19zdGEtXHUwMDNlc3RhLCBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTg0LVx0XHRcdFx0ICAgICAgIGJhX2RhdGEsIHJlb3JkZXJfYnVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE5My0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE5NDplbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE5NTppd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTk2LVx0XHRpbnQgcXVldWUsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMjAwLVx0c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYWlkX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoyMDE6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MjAyOlx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0yMDMtXHRzdHJ1Y3QgaXdsX21sZF9zdGEgKm1sZF9zdGEgPSBpd2xfbWxkX3N0YV9mcm9tX21hYzgwMjExKHN0YSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMzIzLVx0aWYgKCFhbXNkdSB8fCBsYXN0X3N1YmZyYW1lKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MzI0Olx0XHRpd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMobWxkLCBzdGEsIG5hcGksIGJhaWRfZGF0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMyNS1cdFx0XHRcdFx0ICAgICAgIGJ1ZmZlciwgbnNzbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMzMwLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjMzMTpFWFBPUlRfU1lNQk9MX0lGX0lXTFdJRklfS1VOSVQoaXdsX21sZF9yZW9yZGVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMzMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYz00NjQ9c3RhdGljIHZvaWQgaXdsX21sZF9pbml0X3Jlb3JkZXJfYnVmZmVyKHN0cnVjdCBpd2xfbWxkICptbGQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDY4LVx0Zm9yIChpbnQgaSA9IDA7IGkgXHUwMDNjIG1sZC1cdTAwM2V0cmFucy1cdTAwM2VpbmZvLm51bV9yeHFzOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6NDY5Olx0XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWYgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDcwLVx0XHRcdFx1MDAyNmRhdGEtXHUwMDNlcmVvcmRlcl9idWZbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo0NzE6XHRcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ3Mi1cdFx0XHRcdTAwMjZkYXRhLVx1MDAzZWVudHJpZXNbaSAqIGRhdGEtXHUwMDNlZW50cmllc19wZXJfcXVldWVdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTQ4Mj1zdGF0aWMgdm9pZCBpd2xfbWxkX2ZyZWVfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGQgKm1sZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00OTItXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgbWxkLVx1MDAzZXRyYW5zLVx1MDAzZWluZm8ubnVtX3J4cXM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo0OTM6XHRcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpyZW9yZGVyX2J1ZiA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00OTQtXHRcdFx0XHUwMDI2ZGF0YS1cdTAwM2VyZW9yZGVyX2J1ZltpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ5NTpcdFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXMgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDk2LVx0XHRcdFx1MDAyNmRhdGEtXHUwMDNlZW50cmllc1tpICogZGF0YS1cdTAwM2VlbnRyaWVzX3Blcl9xdWV1ZV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTEtLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDoxMjogKiBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAtIHBlciByYS90aWQvcXVldWUgcmVvcmRlciBidWZmZXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTEzLSAqIEBoZWFkX3NuOiByZW9yZGVyIHdpbmRvdyBoZWFkIHNlcXVlbmNlIG51bWJlclxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTE3LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MTg6c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTktXHR1MTYgaGVhZF9zbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0yNS0vKipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjI2OiAqIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5IC0gcmVvcmRlciBidWZmZXIgZW50cnkgcGVyLXF1ZXVlL3Blci1zZXFub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMjctICogQGZyYW1lczogbGlzdCBvZiBza2JzIHN0b3JlZC4gYSBsaXN0IGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGluIGFuIEEtTVNEVSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0zMC0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjMxOnN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTMyLVx0c3RydWN0IHNrX2J1ZmZfaGVhZCBmcmFtZXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg9NjM9c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC03NC1cdHN0cnVjdCBpd2xfbWxkICptbGQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo3NTpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyIHJlb3JkZXJfYnVmW0lXTF9NQVhfUlhfSFdfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjc2Olx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgZW50cmllc1tdIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC03Ny19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oPTg0PXN0cnVjdCBpd2xfbWxkX2RlbGJhX2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTg4LS8qKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6ODk6ICogZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IC0gUG9zc2libGUgcmV0dXJuIHZhbHVlcyBmb3IgaXdsX21sZF9yZW9yZGVyKClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTkwLSAqIGluZGljYXRpbmcgaG93IHRoZSBjYWxsZXIgc2hvdWxkIGhhbmRsZSB0aGUgc2tiIGJhc2VkIG9uIHRoZSByZXN1bHQuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtOTUtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo5NjplbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtOTctXHRJV0xfTUxEX1BBU1NfU0tCLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oPTEwND1pbnQgaXdsX21sZF9hbXBkdV9yeF9zdG9wKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MTA3OmVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MTA4Oml3bF9tbGRfcmVvcmRlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xMDktXHRcdGludCBxdWV1ZSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jPTIwMjA9dm9pZCBpd2xfbWxkX3J4X21wZHUoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjAzMy1cdHUzMiBtcGR1X2xlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmM6MjAzNDpcdGVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdCByZW9yZGVyX3JlcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjAzNS1cdHN0cnVjdCBpZWVlODAyMTFfcnhfc3RhdHVzICpyeF9zdGF0dXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYy0yMTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYzoyMTQzOlx0cmVvcmRlcl9yZXMgPSBpd2xfbWxkX3Jlb3JkZXIobWxkLCBuYXBpLCBxdWV1ZSwgc3RhLCBza2IsIG1wZHVfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jLTIxNDQtXHRzd2l0Y2ggKHJlb3JkZXJfcmVzKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM9MjE9c3RhdGljIGNvbnN0IHN0cnVjdCByZW9yZGVyX2J1ZmZlcl9jYXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NS1cdHN0cnVjdCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1NjpcdFx0ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IHJlb3JkZXJfcmVzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTctXHRcdHUxNiBoZWFkX3NuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jPTUwMj1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmFsbG9jX2FuZF9zZXR1cF9za2IodTE2IGZjLCB1MTYgc2VxX2N0cmwsIHU4IHRpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1MzA6c3RhdGljIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUzMS1zZXR1cF9yZW9yZGVyX2J1ZmZlcihzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MzUtXHRcdChjb25zdCB2b2lkICopKHRlc3QtXHUwMDNlcGFyYW1fdmFsdWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTM2Olx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKmJ1ZmZlciA9IGJhaWRfZGF0YS1cdTAwM2VyZW9yZGVyX2J1ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjUzNzpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID0gYmFpZF9kYXRhLVx1MDAzZWVudHJpZXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MzgtXHRzdHJ1Y3Qgc2tfYnVmZiAqZmFrZV9za2I7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTY4OnN0YXRpYyBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqc2V0dXBfYmFfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTY5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NzQtXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1NzU6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTc2LVx0dTMyIHJlb3JkZXJfYnVmX3NpemUgPSBCQV9XSU5ET1dfU0laRSAqIHNpemVvZihiYWlkX2RhdGEtXHUwMDNlZW50cmllc1swXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM9NjAxPXN0YXRpYyB2b2lkIHRlc3RfcmVvcmRlcl9idWZmZXIoc3RydWN0IGt1bml0ICp0ZXN0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYwOS1cdHN0cnVjdCBza19idWZmICpza2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2MTA6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjExOlx0ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IHJlb3JkZXJfcmVzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjEyLVx0dTE2IHNrYl9yZWxlYXNlX29yZGVyX2NvdW50ID0gcGFyYW0tXHUwMDNlZXhwZWN0ZWQuc2tiX3JlbGVhc2Vfb3JkZXJfY291bnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjMyLVx0cmN1X3JlYWRfbG9jaygpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjMzOlx0cmVvcmRlcl9yZXMgPSBpd2xfbWxkX3Jlb3JkZXIobWxkLCBOVUxMLCBRVUVVRSwgc3RhLCBza2IsIG1wZHVfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MzQtXHRyY3VfcmVhZF91bmxvY2soKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDUxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogNTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgaXdsd2lmaS9tbGQgTW9kdWxlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgaXdsd2lmaS9tbGRgIHRoaW5nLiBNeSBpbW1lZGlhdGUgZ29hbCBpcyB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBtb2R1bGUgKmFjdHVhbGx5KiBpcy4gSXMgaXQgYSBjb21wb25lbnQgb2YgdGhlIGBpd2x3aWZpYCBkcml2ZXIsIG9yIGlzIGl0IHNvbWV0aGluZyBlbnRpcmVseSBzZXBhcmF0ZT8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGRyaXZlciByZXNwb25zaWJsZSBmb3IgdXRpbGl6aW5nIHRoaXMgbW9kdWxlIGFuZCB3aGV0aGVyIG9yIG5vdCBpdCYjMzk7cyBpbmhlcmVudGx5IHRpZWQgdG8gc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUuIElzIHRoaXMgc29tZXRoaW5nIHRoYXQmIzM5O3Mgb25seSByZWxldmFudCBvbiBzeXN0ZW1zIHdpdGggYSBzcGVjaWZpYyBXaS1GaSBjaGlwPyBJIG5lZWQgdG8ga25vdyB0aGUgYnJlYWR0aCBvZiBhcHBsaWNhYmlsaXR5LgoKVG8gYWNoaWV2ZSB0aGlzIHVuZGVyc3RhbmRpbmcsIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhlIHN0YW5kYXJkIGFwcHJvYWNoIGZvciB0aGlzIGtpbmQgb2Yga2VybmVsIGludmVzdGlnYXRpb24uIEkmIzM5O2xsIHNjb3VyIHRoZSBNYWtlZmlsZXMgYW5kIEtjb25maWcgZmlsZXMgZm9yIGJvdGggYElXTF9NTERgIGFuZCB0aGUgbW9yZSBnZW5lcmFsIGBpd2x3aWZpL21sZGAgc3RyaW5ncy4gVGhpcyBpcyB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2lsbCBsaWtlbHkgYmUgZGVmaW5lZC4gVGhhdCB3aWxsIGdpdmUgbWUgYSBmaXJzdCBoYW5kbGUgb24gaXRzIGRlcGVuZGVuY2llcyBhbmQgaXRzIHBsYWNlIGluIHRoZSBncmVhdGVyIGtlcm5lbCBlY29zeXN0ZW0uIEZyb20gdGhlcmUsIEkgY2FuIHN0YXJ0IHRvIGJ1aWxkIGEgY2xlYXJlciBwaWN0dXJlIG9mIGl0cyBwdXJwb3NlIGFuZCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfSVdMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTEwNSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0yLSMgY29tbW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0lXTFdJRkkpXHQmIzQzOz0gaXdsd2lmaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQtaXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtaW8ub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9MTY9Q0ZMQUdTX3BjaWUvZHJ2Lm8gJiM0Mzs9IC1Xbm8tb3ZlcnJpZGUtaW5pdFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTgtIyBjb21iaW5lZCBNQUMvUkYgY29uZmlndXJhdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTk6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICYjNDM7PSBjZmcvMTAwMC5vIGNmZy8yMDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjA6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICYjNDM7PSBjZmcvNTAwMC5vIGNmZy82MDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjE6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvNzAwMC5vIGNmZy84MDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMjItIyBNQUMgY29uZmlndXJhdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjM6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvOTAwMC5vIGNmZy8yMjAwMC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI0Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gY2ZnL2F4MjEwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjU6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvYnoubyBjZmcvc2Mub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNjppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgJiM0Mzs9IGNmZy9iei5vIGNmZy9zYy5vIGNmZy9kci5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTI3LSMgUkYgY29uZmlndXJhdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mjg6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvcmYtamYubyBjZmcvcmYtaHIubyBjZmcvcmYtZ2Yub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyOTppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgJiM0Mzs9IGNmZy9yZi1mbS5vIGNmZy9yZi13aC5vIGNmZy9yZi1wZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTMwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9MzY9aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBmdy9yZWd1bGF0b3J5Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzc6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBmdy9wYWdpbmcubyBmdy9zbWVtLm8gZncvaW5pdC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM4Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gZncvc21lbS5vIGZ3L2luaXQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0zOS1pd2x3aWZpLSQoQ09ORklHX0FDUEkpICYjNDM7PSBmdy9hY3BpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9NDA9aXdsd2lmaS0kKENPTkZJR19FRkkpXHQmIzQzOz0gZncvdWVmaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQxOml3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERUJVR0ZTKSAmIzQzOz0gZncvZGVidWdmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZT00Mz1pd2x3aWZpLW9ianMgJiM0Mzs9ICQoaXdsd2lmaS1tKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDU6aXdsd2lmaS0kKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKSAmIzQzOz0gaXdsLWRldnRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlPTQ3PWNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19JV0xEVk0pXHQmIzQzOz0gZHZtL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo1MDpvYmotJChDT05GSUdfSVdMTVZNKVx0JiM0Mzs9IG12bS9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NTE6b2JqLSQoQ09ORklHX0lXTE1FSSlcdCYjNDM7PSBtZWkvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjUyOm9iai0kKENPTkZJR19JV0xNTEQpXHQmIzQzOz0gbWxkL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS01My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NTQ6b2JqLSQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpICYjNDM7PSB0ZXN0cy9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGUtMi0jIERWTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGU6MzpvYmotJChDT05GSUdfSVdMRFZNKVx0JiM0Mzs9IGl3bGR2bS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZS00LWl3bGR2bS1vYmpzXHRcdCYjNDM7PSBtYWluLm8gcnMubyBtYWM4MDIxMS5vIHVjb2RlLm8gdHgub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL01ha2VmaWxlPTk9aXdsZHZtLW9ianNcdFx0JiM0Mzs9IHJ4b24ubyBkZXZpY2VzLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL01ha2VmaWxlLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGU6MTE6aXdsZHZtLSQoQ09ORklHX0lXTFdJRklfTEVEUykgJiM0Mzs9IGxlZC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZToxMjppd2xkdm0tJChDT05GSUdfSVdMV0lGSV9ERUJVR0ZTKSAmIzQzOz0gZGVidWdmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZS0xMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaD0yMjU9c3RhdGljIGlubGluZSBib29sIGl3bF9hZHZhbmNlZF9idF9jb2V4aXN0KHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC0yMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDoyMzE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC0yMzItY29uc3QgY2hhciAqaXdsX2dldF90eF9mYWlsX3JlYXNvbih1MzIgc3RhdHVzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaD0zMzU9aW50IGl3bF9hbGl2ZV9zdGFydChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtMzM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6MzM3OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtMzM4LXZvaWQgaXdsX3ByaW50X3J4X2NvbmZpZ19jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oPTQwNz1pbnQgaXdsX3JlYWRfZWVwcm9tKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLCB1OCAqKmVlcHJvbSwgc2l6ZV90ICplZXByb21fc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDo0MDk6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oLTQxMC12b2lkIGl3bF9kYmdmc19yZWdpc3RlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2Rpcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg9NDEyPXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfZGJnZnNfcmVnaXN0ZXIoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDEzLVx0XHRcdFx0ICAgICAgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKSB7IH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oOjQxNDojZW5kaWYgLyogQ09ORklHX0lXTFdJRklfREVCVUdGUyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6NDE2OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDE3LSNkZWZpbmUgSVdMX0RFQlVHX1FVSUVUX1JGS0lMTChtLCBmbXQsIGFyZ3MuLi4pXHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oPTQzMD1kbyB7XHRcdFx0XHRcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MzYtfSB3aGlsZSAoMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oOjQzNzojZW5kaWZcdFx0XHRcdC8qIENPTkZJR19JV0xXSUZJX0RFQlVHICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MzgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIxNTQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2VjaG9fdGVzdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTcxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxNzItc3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2xvZ19ldmVudF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzAzPURFQlVHRlNfV1JJVEVfRklMRV9PUFMoZndfcmVzdGFydCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjMwNDojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzA1LURFQlVHRlNfUkVBRF9XUklURV9GSUxFX09QUyhsb2dfZXZlbnQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzEzPXZvaWQgaXdsX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzU1LVx0REVCVUdGU19BRERfRklMRShmd19yZXN0YXJ0LCBkaXJfZGVidWcsIDAyMDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzNTY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1Ny1cdERFQlVHRlNfQUREX0ZJTEUobG9nX2V2ZW50LCBkaXJfZGVidWcsIDA2MDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oPTYyNz1zdHJ1Y3QgaXdsX3ByaXYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTc2NS1cdFx0c3RydWN0IHN0YXRpc3RpY3NfdHggdHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaDo3NjY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTc2Ny1cdFx0c3RydWN0IHN0YXRpc3RpY3NfYnRfYWN0aXZpdHkgYnRfYWN0aXZpdHk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtNzcxLVx0fSBzdGF0aXN0aWNzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6NzcyOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC03NzMtXHRzdHJ1Y3Qge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTg0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oOjg0ODojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtODQ5LVx0LyogZGVidWdmcyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTg1My1cdHZvaWQgKndvd2xhbl9zcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6ODU0OiNlbmRpZiAvKiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtODY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6ODY5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9MRURTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NzAtXHRzdHJ1Y3QgbGVkX2NsYXNzZGV2IGxlZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuaD0xMT1zdHJ1Y3QgaXdsX3ByaXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmgtMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuaDoxOTojaWZkZWYgQ09ORklHX0lXTFdJRklfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmgtMjAtdm9pZCBpd2xhZ25fbGVkX2VuYWJsZShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM9NDE4PXN0YXRpYyBpbnQgaXdsYWduX21hY19yZXN1bWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy00NDItXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzo0NDM6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDQ0LVx0Y29uc3Qgc3RydWN0IGZ3X2ltZyAqaW1nO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzo0ODE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDgyLVx0aW1nID0gXHUwMDI2cHJpdi1cdTAwM2Vmdy1cdTAwM2VpbWdbSVdMX1VDT0RFX1dPV0xBTl07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTExMzI9c3RhdGljIHZvaWQgaXdsX3VuaW5pdF9kcnYoc3RydWN0IGl3bF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTM3LVx0aXdsX2NhbGliX2ZyZWVfcmVzdWx0cyhwcml2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTM4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTEzOS1cdGtmcmVlKHByaXYtXHUwMDNld293bGFuX3NyYW0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xMTU3PXN0YXRpYyB2b2lkIGl3bF9vcHRpb25fY29uZmlnKHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTU4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTU5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNjA6XHRJV0xfSU5GTyhwcml2LCBcJiMzNDtDT05GSUdfSVdMV0lGSV9ERUJVRyBlbmFibGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTYxLSNlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2MjpcdElXTF9JTkZPKHByaXYsIFwmIzM0O0NPTkZJR19JV0xXSUZJX0RFQlVHIGRpc2FibGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTYzLSNlbmRpZlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2NTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNjY6XHRJV0xfSU5GTyhwcml2LCBcJiMzNDtDT05GSUdfSVdMV0lGSV9ERUJVR0ZTIGVuYWJsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjctI2Vsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTY4Olx0SVdMX0lORk8ocHJpdiwgXCYjMzQ7Q09ORklHX0lXTFdJRklfREVCVUdGUyBkaXNhYmxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTE2OS0jZW5kaWZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNzE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE3MjpcdElXTF9JTkZPKHByaXYsIFwmIzM0O0NPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HIGVuYWJsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNzMtI2Vsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTc0Olx0SVdMX0lORk8ocHJpdiwgXCYjMzQ7Q09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkcgZGlzYWJsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNzUtI2VuZGlmXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTE4MTE9aW50IGl3bF9kdW1wX25pY19ldmVudF9sb2coc3RydWN0IGl3bF9wcml2ICpwcml2LCBib29sIGZ1bGxfbG9nLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xODc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjE4Nzc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTg3OC1cdGlmIChidWYpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jPTg4PXN0YXRpYyB2b2lkIGl3bGFnbl9yeF9wbV9zbGVlcF9ub3RpZihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy05MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjkxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy05Mi1cdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QgPSByeGJfYWRkcihyeGIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9MTA5PXN0YXRpYyB2b2lkIGl3bGFnbl9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtMTEzLVx0c3RydWN0IGl3bGFnbl9iZWFjb25fbm90aWYgKmJlYWNvbiA9ICh2b2lkICopcGt0LVx1MDAzZWRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjExNDojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtMTE1LVx0dTE2IHN0YXR1cyA9IGxlMTZfdG9fY3B1KGJlYWNvbi1cdTAwM2ViZWFjb25fbm90aWZ5X2hkci5zdGF0dXMuc3RhdHVzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jPTIzNT1zdGF0aWMgdm9pZCBpd2xhZ25fcnhfY2FsY19ub2lzZShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0yNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjI3NjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0yNzctLypcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jPTM0Mj1zdGF0aWMgdm9pZCBpd2xhZ25fcnhfc3RhdGlzdGljcyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0zNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjM3NjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0zNzctXHRcdC8qIGhhbmRsZSB0aGlzIGV4Y2VwdGlvbiBkaXJlY3RseSAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNDE2LVx0bWVtY3B5KFx1MDAyNnByaXYtXHUwMDNlc3RhdGlzdGljcy50eCwgdHgsIHNpemVvZigqdHgpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6NDE3OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jLTQxOC1cdGlmIChidF9hY3Rpdml0eSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jPTQ0NT1zdGF0aWMgdm9pZCBpd2xhZ25fcnhfcmVwbHlfc3RhdGlzdGljcyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy00NTEtXHRpZiAobGUzMl90b19jcHUoc3RhdHMtXHUwMDNlZmxhZykgXHUwMDI2IFVDT0RFX1NUQVRJU1RJQ1NfQ0xFQVJfTVNLKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjQ1MjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy00NTMtXHRcdG1lbXNldChcdTAwMjZwcml2LVx1MDAzZWFjY3VtX3N0YXRzLCAwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYz04MzI9c3RhdGljIGludCBpd2xfZnVsbF9yeG9uX3JlcXVpcmVkKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeG9uLmMtODg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jOjg4NzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYy04ODgtdm9pZCBpd2xfcHJpbnRfcnhfY29uZmlnX2NtZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jPTIzMj1zdGF0aWMgdm9pZCBpd2xfcnhfcmVwbHlfc2NhbihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTIzNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6MjM1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTIzNi1cdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QgPSByeGJfYWRkcihyeGIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYz0yNjI9c3RhdGljIHZvaWQgaXdsX3J4X3NjYW5fcmVzdWx0c19ub3RpZihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTI2NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6MjY1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTI2Ni1cdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QgPSByeGJfYWRkcihyeGIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jPTEyNj1ib29sIGl3bF9pc19odDQwX3R4X2FsbG93ZWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jLTEzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jOjEzMzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmMtMTM0LVx0aWYgKHByaXYtXHUwMDNlZGlzYWJsZV9odDQwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jPTczMT12b2lkIGl3bF9kZWFsbG9jX2JjYXN0X3N0YXRpb25zKHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYy03NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYzo3NTA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYy03NTEtc3RhdGljIHZvaWQgaXdsX2R1bXBfbHFfY21kKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jPTIzMD1zdGF0aWMgdm9pZCBpd2xfbGVnYWN5X3R0X2hhbmRsZXIoc3RydWN0IGl3bF9wcml2ICpwcml2LCBzMzIgdGVtcCwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTIzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmM6MjM1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYy0yMzYtXHRpZiAoKHR0LVx1MDAzZXR0X3ByZXZpb3VzX3RlbXApIFx1MDAyNlx1MDAyNlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmMtMjU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYzoyNTY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTI1Ny1cdHR0LVx1MDAzZXR0X3ByZXZpb3VzX3RlbXAgPSB0ZW1wO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmM9MzM1PXN0YXRpYyB2b2lkIGl3bF9hZHZhbmNlX3R0X2hhbmRsZXIoc3RydWN0IGl3bF9wcml2ICpwcml2LCBzMzIgdGVtcCwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTM1OC1cdFx0ICAgIHRlbXAgXHUwMDNjPSB0cmFuc2FjdGlvbi1cdTAwM2V0dF9oaWdoKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jOjM1OTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmMtMzYwLVx0XHRcdGlmICgodHQtXHUwMDNldHRfcHJldmlvdXNfdGVtcCkgXHUwMDI2XHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaD04NT1zdHJ1Y3QgaXdsX3R0X21nbXQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmgtODktXHRib29sIGN0X2tpbGxfdG9nZ2xlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaDo5MDojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmgtOTEtXHRzMzIgdHRfcHJldmlvdXNfdGVtcDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jPTI2MD1pbnQgaXdsYWduX3R4X3NrYihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy0yODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jOjI4NzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtMjg4LVx0aWYgKGllZWU4MDIxMV9pc19hdXRoKGZjKSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jPTgwNz1zdGF0aWMgdm9pZCBpd2xhZ25faHdyYXRlX3RvX3R4X2NvbnRyb2woc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIgcmF0ZV9uX2ZsYWdzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtODI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYzo4Mjc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTgyOC1jb25zdCBjaGFyICppd2xfZ2V0X3R4X2ZhaWxfcmVhc29uKHUzMiBzdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy04NjQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYzo4NjU6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTg2Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jPTkyMD1zdGF0aWMgdm9pZCBpd2xfcnhfcmVwbHlfdHhfYWdnKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTk4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM6OTgxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy05ODItI2RlZmluZSBBR0dfVFhfU1RBVEVfRkFJTCh4KSBjYXNlIEFHR19UWF9TVEFURV8gIyMgeDogcmV0dXJuICN4XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYz05ODQ9Y29uc3QgY2hhciAqaXdsX2dldF9hZ2dfdHhfZmFpbF9yZWFzb24odTE2IHN0YXR1cylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTEwMDUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYzoxMDA2OiNlbmRpZiAvKiBDT05GSUdfSVdMV0lGSV9ERUJVRyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy0xMDA3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmM9MjQyOT12b2lkIGl3bF9md19kYmdfc3RvcF9yZXN0YXJ0X3JlY29yZGluZyhzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuYy0yNDQ3LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuYzoyNDQ4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5jLTI0NDktXHRpZiAoIXJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg9MTc5PXZvaWQgaXdsX2Z3X2RiZ19zdG9wX3Jlc3RhcnRfcmVjb3JkaW5nKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTgzOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE4NC1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX2Z3X3NldF9kYmdfcmVjX29uKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oPTIzNT1pbnQgaXdsX2Z3X3NlbmRfdGltZXN0YW1wX21hcmtlcl9jbWQoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoyMzc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjM4LXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfZndfY2FuY2VsX3RpbWVzdGFtcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaD0yNjk9c3RhdGljIGlubGluZSB2b2lkIGl3bF9md19yZXN1bWVfdGltZXN0YW1wKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCkge31cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoyNzE6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjcyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5oLTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaDo5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaC0xMC12b2lkIGl3bF9md3J0X2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaD0xND1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX2Z3cnRfZGJnZnNfcmVnaXN0ZXIoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5oLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kZWJ1Z2ZzLmg6MTc6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaD0xNDg9c3RydWN0IGl3bF9md19ydW50aW1lIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0xOTMtXHRzdHJ1Y3Qge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9ydW50aW1lLmg6MTk0OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0xOTUtXHRcdHN0cnVjdCBkZWxheWVkX3dvcmsgd2s7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9ydW50aW1lLmgtMTk5LVx0fSB0aW1lc3RhbXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoyMDA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvcnVudGltZS5oLTIwMS1cdGJvb2wgdHBjX2VuYWJsZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoyMDI6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvcnVudGltZS5oLTIwMy1cdHN0cnVjdCBpd2xfc2FyX3Byb2ZpbGUgc2FyX3Byb2ZpbGVzW0JJT1NfU0FSX01BWF9QUk9GSUxFX05VTV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg9NTEzPXN0cnVjdCBpd2xfZGV2X2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTUzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjUzMjojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUUylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTUzMy1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9kZXZfaW5mbyBpd2xfZGV2X2luZm9fdGFibGVbXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaD02OTU9ZXh0ZXJuIGNvbnN0IGNoYXIgaXdsX2F4MjIxX25hbWVbXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjY5NjojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMRFZNKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNjk3LWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX3JmX2NmZyBpd2w1MzAwX2Fnbl9jZmc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg9NzI1PWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX3JmX2NmZyBpd2wxMzVfYmduX2NmZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjcyNjojZW5kaWYgLyogQ09ORklHX0lXTERWTSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg6NzI3OiNpZiBJU19FTkFCTEVEKENPTkZJR19JV0xNVk0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaC03MjgtZXh0ZXJuIGNvbnN0IHN0cnVjdCBpd2xfcmZfY2ZnIGl3bDcyNjBfY2ZnO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oPTc0Mz1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsX3JmX2dmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzQ0LSNkZWZpbmUgaXdsX3JmX290IGl3bF9yZl9ocl84MG1oelxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg6NzQ1OiNlbmRpZiAvKiBDT05GSUdfSVdMTVZNICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaC03NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaDo3NDc6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTE1MRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTc0OC1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsX3JmX2ZtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oPTc1Mz1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsX3JmX3BlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzU0LSNkZWZpbmUgaXdsX3JmX3BlX25vX3VociBpd2xfcmZfZm1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjc1NTojZW5kaWYgLyogQ09ORklHX0lXTE1MRCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzU2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM9NjQ9SVdMX0VYUE9SVF9TWU1CT0woX19pd2xfZXJyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjY2OiNpZiBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFQlVHKSB8fCBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy02Ny12b2lkIF9faXdsX2RiZyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy03Ny1cdHZhZi52YSA9IFx1MDAyNmFyZ3M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjc4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy03OS1cdGlmIChpd2xfaGF2ZV9kZWJ1Z19sZXZlbChsZXZlbCkgXHUwMDI2XHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xNj1zdGF0aWMgaW5saW5lIGJvb2wgaXdsX2hhdmVfZGVidWdfbGV2ZWwodTMyIGxldmVsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjE4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xOS1cdHJldHVybiBpd2x3aWZpX21vZF9wYXJhbXMuZGVidWdfbGV2ZWwgXHUwMDI2IGxldmVsO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9Mzc9dm9pZCBfX2l3bF9jcml0KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pIF9fcHJpbnRmKDIsIDMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtNjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjcwOiNpZiBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFQlVHKSB8fCBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC03MS12b2lkIF9faXdsX2RiZyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD04Mz1kbyB7XHRcdFx0XHRcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMDA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEwMS0jZGVmaW5lIGl3bF9wcmludF9oZXhfZHVtcChtLCBsZXZlbCwgcCwgbGVuKVx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9MTAyPWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMDgtI2RlZmluZSBpd2xfcHJpbnRfaGV4X2R1bXAobSwgbGV2ZWwsIHAsIGxlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTA5OiNlbmRpZlx0XHRcdFx0LyogQ09ORklHX0lXTFdJRklfREVCVUcgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTEwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI3LSAqXHQvc3lzL21vZHVsZS9pd2x3aWZpL3BhcmFtZXRlcnMvZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTI4OiAqIHdoZW4gQ09ORklHX0lXTFdJRklfREVCVUc9eS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI5LSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEzMC0gKlx0L3N5cy9rZXJuZWwvZGVidWcvcGh5MC9pd2x3aWZpL2RlYnVnL2RlYnVnX2xldmVsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjEzMTogKiB3aGVuIENPTkZJR19JV0xXSUZJX0RFQlVHRlM9eS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTMyLSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaD00OT1zdGF0aWMgaW5saW5lIHNpemVfdCBpd2xfcnhfdHJhY2VfbGVuKGNvbnN0IHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oOjc5OiNpZiAhZGVmaW5lZChDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lORykgfHwgZGVmaW5lZChfX0NIRUNLRVJfXylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtODAtI3VuZGVmIFRSQUNFX0VWRU5UXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaD04Nz1zdGF0aWMgaW5saW5lIHZvaWQgdHJhY2VfICMjIG5hbWUocHJvdG8pIHt9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaC05OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmg6OTk6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oLTEwMC1ERUNMQVJFX1RSQUNFUE9JTlQoaXdsd2lmaV9kZXZfcngpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmg9MTA2PXN0YXRpYyBpbmxpbmUgdm9pZCBtYXliZV90cmFjZV9pd2x3aWZpX2Rldl9yeChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oLTEwOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oOjEwOTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtMTEwLVx0aWYgKHRyYWNlcG9pbnRfZW5hYmxlZChpd2x3aWZpX2Rldl9yeCkgfHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0zNT1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzozNzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMzgtc3RhdGljIHN0cnVjdCBkZW50cnkgKml3bF9kYmdmc19yb290O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTU1PXN0cnVjdCBpd2xfZHJ2IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy02Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjY4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy02OS1cdHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2Rydjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz03NT1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy03Ny1cdE1WTV9PUF9NT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6Nzg6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTE1MRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTc5LVx0TUxEX09QX01PREUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9ODU9c3RhdGljIHN0cnVjdCBpd2x3aWZpX29wbW9kZV90YWJsZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtOTEtXHRbTVZNX09QX01PREVdID0geyAubmFtZSA9IFwmIzM0O2l3bG12bVwmIzM0OywgLm9wcyA9IE5VTEwgfSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjkyOiNpZiBJU19FTkFCTEVEKENPTkZJR19JV0xNTEQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy05My1cdFtNTERfT1BfTU9ERV0gPSB7IC5uYW1lID0gXCYjMzQ7aXdsbWxkXCYjMzQ7LCAub3BzID0gTlVMTCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTE1Njg9X2l3bF9vcF9tb2RlX3N0YXJ0KHN0cnVjdCBpd2xfZHJ2ICpkcnYsIHN0cnVjdCBpd2x3aWZpX29wbW9kZV90YWJsZSAqb3ApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTU3OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjE1ODA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE1ODEtXHRcdGRydi1cdTAwM2VkYmdmc19vcF9tb2RlID0gZGVidWdmc19jcmVhdGVfZGlyKG9wLVx1MDAzZW5hbWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTU5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjE1OTU6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE1OTYtXHRcdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShkcnYtXHUwMDNlZGJnZnNfb3BfbW9kZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MTYwOT1zdGF0aWMgdm9pZCBfaXdsX29wX21vZGVfc3RvcChzdHJ1Y3QgaXdsX2RydiAqZHJ2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE2MTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoxNjE5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0xNjIwLVx0XHRkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoZHJ2LVx1MDAzZWRiZ2ZzX29wX21vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTE2MzI9c3RhdGljIHZvaWQgaXdsX3JlcV9md19jYWxsYmFjayhjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKnVjb2RlX3Jhdywgdm9pZCAqY29udGV4dClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0xODkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MTg5NDojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTUxEKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTg5NS1cdGlmIChpd2xfZHJ2X2lzX3dpZmk3X3N1cHBvcnRlZChkcnYtXHUwMDNldHJhbnMpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTE5NDg9c3RydWN0IGl3bF9kcnYgKml3bF9kcnZfc3RhcnQoc3RydWN0IGl3bF90cmFucyAqdHJhbnMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTk2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjE5NjU6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE5NjYtXHQvKiBDcmVhdGUgdGhlIGRldmljZSBkZWJ1Z2ZzIGVudHJpZXMuICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjAwMC1lcnJfZnc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMDAxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMDAyLVx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGRydi1cdTAwM2VkYmdmc19kcnYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwMTA9dm9pZCBpd2xfZHJ2X3N0b3Aoc3RydWN0IGl3bF9kcnYgKmRydilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMDI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjAyOTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjAzMC1cdGl3bF90cmFuc19kZWJ1Z2ZzX2NsZWFudXAoZHJ2LVx1MDAzZXRyYW5zKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0yMDk3PXN0YXRpYyBpbnQgX19pbml0IGl3bF9kcnZfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMTA0OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTA1LVx0LyogQ3JlYXRlIHRoZSByb290IG9mIGl3bHdpZmkgZGVidWdmcyBzdWJzeXN0ZW0uICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjExNS1jbGVhbnVwX2RlYnVnZnM6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMTE2OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTE3LVx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGl3bF9kYmdmc19yb290KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0yMTIzPXN0YXRpYyB2b2lkIF9fZXhpdCBpd2xfZHJ2X2V4aXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjEyODojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEyOS1cdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShpd2xfZGJnZnNfcm9vdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MjEzMj1tb2R1bGVfZXhpdChpd2xfZHJ2X2V4aXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjIxMzQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTM1LW1vZHVsZV9wYXJhbV9uYW1lZChkZWJ1ZywgaXdsd2lmaV9tb2RfcGFyYW1zLmRlYnVnX2xldmVsLCB1aW50LCAwNjQ0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaD04NT1ib29sIGl3bF9kcnZfaXNfd2lmaTdfc3VwcG9ydGVkKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaC05My0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5oOjk0OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9PUE1PREVfTU9EVUxBUlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOTUtI2RlZmluZSBJV0xfRVhQT1JUX1NZTUJPTChzeW0pXHRFWFBPUlRfU1lNQk9MX05TX0dQTChzeW0sIFwmIzM0O0lXTFdJRklcJiMzNDspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaDoxMDA6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaC0xMDEtI2RlZmluZSBFWFBPUlRfU1lNQk9MX0lGX0lXTFdJRklfS1VOSVQoc3ltKVx0RVhQT1JUX1NZTUJPTF9JRl9LVU5JVChzeW0pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtaW8uYz0yNjk9c3RhdGljIGludCBpd2xfZHVtcF9yZmgoc3RydWN0IGl3bF90cmFucyAqdHJhbnMsIGNoYXIgKipidWYpXG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5MjMKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBpd2x3aWZpJiMzOTtzIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gcXVpY2tseSBhc3Nlc3MgYGl3bHdpZmlgJiMzOTtzIHN1aXRhYmlsaXR5IGZvciBmdXp6aW5nIHdpdGhpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVS4gQ2FuIHdlIGV2ZW4gKnJlYWNoKiB0aGlzIGRyaXZlciB1c2luZyB0eXBpY2FsIGZ1enppbmcgc2V0dXBzPyBJIG5lZWQgdG8gY29uc2lkZXIgYFdvcnRoRnV6emluZz1mYWxzZWAgY2F2ZWF0cywgYW5kIHdoYXQgY29uZGl0aW9ucyB3b3VsZCBtYWtlIGl0IGltcHJhY3RpY2FsLgoKQSBrZXkgZ3VpZGVsaW5lIHNwZWNpZmllczogcGF0Y2hlcyBhcmUgbm90IHdvcnRoIHB1cnN1aW5nIGlmIHRoZXkgY29udGFpbiBjb2RlIHRoYXQmIzM5O3MgZnVuZGFtZW50YWxseSB1bnJlYWNoYWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBUaGlzIGluY2x1ZGVzIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlIOKAkyB0aGluZ3MgbGlrZSBTbWFydE5JQ3MgYW5kIEdQVXMgdGhhdCBhcmUgb2ZmLWxpbWl0cyBpbiBRRU1VLgoKQWgsIHJpZ2h0IOKAkyBgaXdsd2lmaWAuLi4gdGhhdCYjMzk7cyBJbnRlbCYjMzk7cyBwcm9wcmlldGFyeSBkcml2ZXIgZm9yIHRob3NlIFdpLUZpIFBDSWUvU29DIGFkYXB0ZXJzLiBUaGUgQVgyMDBzLCBBWDIxMHMsIEJFMjAwcywgYW5kIHRoZSA3MjYwcy4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMgd2hldGhlciBzdGFuZGFyZCBRRU1VICplbXVsYXRlcyogdGhlIHJlbGV2YW50IGhhcmR3YXJlLiBObywgaXQgZG9lc24mIzM5O3QuIFFFTVUgZG9lcyAqbm90KiBwcm92aWRlIGEgUENJIGRldmljZSBmb3IgYGl3bHdpZmlgLgoKTm93LCBob2xkIG9uLiBgbWFjODAyMTFfaHdzaW1gIG9mdGVuIGNvbWVzIHVwIGluIHRoaXMgY29udGV4dCwgYnV0IGl0IHVzZXMgYG1hYzgwMjExYCDigJMgYSAqZGlmZmVyZW50KiB3aXJlbGVzcyBzdGFjay4gU28gYG1hYzgwMjExYCBpcyBmb3Igd2lmaSwgYnV0IGBpd2x3aWZpYCBoYXMgYSBzcGVjaWZpYyBIVyBpbnRlcmZhY2UuIEkgbXVzdCBjb25maXJtIHRoYXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBub3QgY29uZnVzaW5nIHRoZSB0d28uCgpBbHJpZ2h0LCBzbyB0aGUgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiBhbnkgdmlydHVhbCBidXNlcyBvciBzb2Z0d2FyZSBzaW11bGF0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciBgaXdsd2lmaWAgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwgb3IgUUVNVSBpdHNlbGYuIE15IGltbWVkaWF0ZSB0YXNrIGlzIHRvIHNlYXJjaCBmb3IgJiMzNDt2aXJ0JiMzNDsgb3IgJiMzNDtzaW0mIzM0OyB3aXRoaW4gdGhlIGNvbnRleHQgb2YgYGl3bHdpZmlgLiBMZXQmIzM5O3Mgc2VlIGlmIHNvbWV0aGluZyBleGlzdHMgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ltJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNz1jb25maWcgSVdMV0lGSV9ERUJVR1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTIwOlx0ICBUbyBzZXQgYSB2YWx1ZSwgc2ltcGx5IGVjaG8gYW4gOC1ieXRlIGhleCB2YWx1ZSB0byB0aGUgc2FtZSBmaWxlOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEyMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jPTcxNz1zdGF0aWMgdm9pZCBpd2xfZmluZF9kaXNjb25uX2FudGVubmEoc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIqIGF2ZXJhZ2Vfc2lnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtNzc1LVx0ICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmM6Nzc2Olx0ICogVG8gYmUgc2FmZSwgc2ltcGx5IG1hc2sgb3V0IGFueSBjaGFpbnMgdGhhdCB3ZSBrbm93XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTc3Ny1cdCAqIGFyZSBub3Qgb24gdGhlIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jPTgyND1zdGF0aWMgdm9pZCBpd2xhZ25fZ2Fpbl9jb21wdXRhdGlvbihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTMtXHRcdFx0ICogICBub3QgdGhlIGZvcm1hdCBvZiBhbnkgaW50ZXJuYWwgZGV2aWNlIHJlZ2lzdGVycy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmM6ODU0Olx0XHRcdCAqICAgRG8gbm90IGNoYW5nZSB0aGlzIGZvcm1hdCBmb3IgZS5nLiA2MDUwIG9yIHNpbWlsYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtODU1LVx0XHRcdCAqICAgZGV2aWNlcy4gIENoYW5nZSBmb3JtYXQgb25seSBpZiBtb3JlIHJlc29sdXRpb25cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTUwOD1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTUzNy0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo1Mzg6ICogUkVQTFlfUlhPTiA9IDB4MTAgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTM5LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01NTU9c3RydWN0IGl3bF9yeG9uX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01NzktLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NTgwOiAqIFJFUExZX1JYT05fQVNTT0MgPSAweDExIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTU4MS0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTgyPXN0cnVjdCBpd2xfcnhvbl9hc3NvY19jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNjAwLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYwMTogKiBSRVBMWV9SWE9OX1RJTUlORyA9IDB4MTQgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNjAyLSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD02MDM9c3RydWN0IGl3bF9yeG9uX3RpbWVfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYxMy0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo2MTQ6ICogUkVQTFlfQ0hBTk5FTF9TV0lUQ0ggPSAweDcyIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYxNS0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTY5MD1zdHJ1Y3QgaXdsX2FjX3FvcyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC03MDYtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NzA3OiAqIFJFUExZX1FPU19QQVJBTSA9IDB4MTMgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA4LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0xNDM1PXN0cnVjdCBpd2xfY29tcHJlc3NlZF9iYV9yZXNwIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE0NTItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MTQ1MzogKiBSRVBMWV9UWF9QV1JfVEFCTEVfQ01EID0gMHg5NyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDU0LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0xNTIwPXN0cnVjdCBpd2xfbGlua19xdWFsX2FnZ19wYXJhbXMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTU0Ni0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNTQ3OiAqIFJFUExZX1RYX0xJTktfUVVBTElUWV9DTUQgPSAweDRlIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDgtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE3MzQ9c3RydWN0IGl3bF9saW5rX3F1YWxpdHlfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE3OTUtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MTc5NjogKiBSRVBMWV9CVF9DT05GSUcgPSAweDliIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE3OTctICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTIwMTk9c3RydWN0IGl3bF9zcGVjdHJ1bV9ub3RpZmljYXRpb24ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjA1MS0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyMDUyOiAqIFBPV0VSX1RBQkxFX0NNRCA9IDB4NzcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjA1My0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjEyMT1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIxMzUtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MjEzNjogKiBSRVBMWV9DQVJEX1NUQVRFX0NNRCA9IDB4YTAgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjEzNy0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTI0MTY9c3RydWN0IGl3bGFnbl9iZWFjb25fbm90aWYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjQyMy0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyNDI0OiAqIFJFUExZX1RYX0JFQUNPTiA9IDB4OTEgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjQyNS0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTI3NTA9c3RydWN0IGl3bF9taXNzZWRfYmVhY29uX25vdGlmIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI3NzItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6Mjc3MzogKiBTRU5TSVRJVklUWV9DTUQgPSAweGE4IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI3NzQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTMwMDk9c3RydWN0IGl3bF9lbmhhbmNlX3NlbnNpdGl2aXR5X2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMDE1LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjMwMTY6ICogUkVQTFlfUEhZX0NBTElCUkFUSU9OX0NNRCA9IDB4YjAgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNy0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MzE3OD1zdHJ1Y3QgaXdsX2NhbGliX2NoYWluX25vaXNlX2dhaW5fY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTMxOTItICogTEVEcyBDb21tYW5kIFx1MDAyNiBSZXNwb25zZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozMTkzOiAqIFJFUExZX0xFRFNfQ01EID0gMHg0OCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMTk0LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zOTAyPXN0cnVjdCBpd2xfd2lwYW5fcDJwX2NoYW5uZWxfc3dpdGNoX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zOTEzLSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjM5MTQ6ICogSW4gYmVhY29ucywgdGhlIE5vQSBzY2hlZHVsZSBpcyBzaW1wbHkgYXBwZW5kZWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzkxNS0gKiB0byB0aGUgZnJhbWUgd2UgZ2l2ZSB0aGUgZGV2aWNlLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yOT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMwLVx0LnJlYWQgPSBpd2xfZGJnZnNfIyNuYW1lIyNfcmVhZCxcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MzE6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzItXHQubGxzZWVrID0gZ2VuZXJpY19maWxlX2xsc2VlayxcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX2RiZ2ZzXyMjbmFtZSMjX29wcyA9IHsgICAgICAgICAgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zNy1cdC53cml0ZSA9IGl3bF9kYmdmc18jI25hbWUjI193cml0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjM4Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM5LVx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXHRcdFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQ0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ2LVx0LnJlYWQgPSBpd2xfZGJnZnNfIyNuYW1lIyNfcmVhZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDc6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDgtXHQubGxzZWVrID0gZ2VuZXJpY19maWxlX2xsc2VlayxcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3NyYW1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEzNjpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEzNy1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE2OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfd293bGFuX3NyYW1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE3OTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwLVx0XHRcdFx0ICAgICAgIHByaXYtXHUwMDNld293bGFuX3NyYW0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Mz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3RhdGlvbnNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjM0Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1LVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19udm1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjI3MzpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTI3NC1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTI3OD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2hhbm5lbHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMzctXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MzM4Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzM5LVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MzQzPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zdGF0dXNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzczLVx0XHR0ZXN0X2JpdChTVEFUVVNfRldfRVJST1IsIFx1MDAyNnByaXYtXHUwMDNlc3RhdHVzKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzc0Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM3NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM3Nz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhfaGFuZGxlcnNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQwMTpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQwMi1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQyOT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcW9zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDUyLVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQ1MzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00NTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3RoZXJtYWxfdGhyb3R0bGluZ19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00ODQtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDg1Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ4Ni19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTUxMT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfZGlzYWJsZV9odDQwX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUyMi1cdFx0XHRwcml2LVx1MDAzZWRpc2FibGVfaHQ0MCA/IFwmIzM0O0Rpc2FibGVkXCYjMzQ7IDogXCYjMzQ7RW5hYmxlZFwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTIzOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUyNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTUyNj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdGVtcGVyYXR1cmVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTM1LVx0cG9zICYjNDM7PSBzY25wcmludGYoYnVmICYjNDM7IHBvcywgYnVmc3ogLSBwb3MsIFwmIzM0OyVkXFxuXCYjMzQ7LCBwcml2LVx1MDAzZXRlbXBlcmF0dXJlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo1MzY6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTM3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTgyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zbGVlcF9sZXZlbF9vdmVycmlkZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01OTYtXHRwb3MgPSBzY25wcmludGYoYnVmLCBidWZzeiwgXCYjMzQ7JWRcXG5cJiMzNDssIHZhbHVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo1OTc6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTk4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjAwPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jdXJyZW50X3NsZWVwX2NvbW1hbmRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNjIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjYyMTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy02MjItfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz02NjY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3J4X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTA5NDpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTUtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMDk5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV90eF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMjkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEyOTE6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMjkyLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTI5Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfZ2VuZXJhbF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNDEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE0MTE6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNDEyLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTQxNj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfYnRfc3RhdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQ5OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNDk5Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTUwMC1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE1MDQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JlcGx5X3R4X2Vycm9yX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE2NDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTY0MTpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE2NDItXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNjQ2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zZW5zaXRpdml0eV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE3MTk6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzIwLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTcyNT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2hhaW5fbm9pc2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzc2Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3Ny1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3ODE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Bvd2VyX3NhdmVfc3RhdHVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4MDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTgwMTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODAyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTgyOD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfdHJhY2luZ19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4NDY6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg0Ny19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Nzk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4b25fZmxhZ3NfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg4OC1cdFx0bGUzMl90b19jcHUocHJpdi1cdTAwM2Vjb250ZXh0c1tJV0xfUlhPTl9DVFhfQlNTXS5hY3RpdmUuZmxhZ3MpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODg5Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4OTAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODkyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeG9uX2ZpbHRlcl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTAxLVx0XHRsZTMyX3RvX2NwdShwcml2LVx1MDAzZWNvbnRleHRzW0lXTF9SWE9OX0NUWF9CU1NdLmFjdGl2ZS5maWx0ZXJfZmxhZ3MpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTAyOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MDMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTA1PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19taXNzZWRfYmVhY29uX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTkxNzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTE4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTk0Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcGxjcF9kZWx0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5NTg6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTk1OS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5ODU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JmX3Jlc2V0X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjAwNzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDA4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjA0NT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfYnRfdHJhZmZpY19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDU1LVx0XHRwb3MgJiM0Mzs9IHNjbnByaW50ZihidWYgJiM0MzsgcG9zLCBidWZzeiAtIHBvcywgXCYjMzQ7QlQgY29leCBkaXNhYmxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjA1NjpcdFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwNTctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjA4NzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDg4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjA5MD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcHJvdGVjdGlvbl9tb2RlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxMDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjEwOTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTEwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjE3Mj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbG9nX2V2ZW50X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxODEtXHRpZiAocmV0IFx1MDAzZSAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIxODI6XHRcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxODMtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMjEzPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jYWxpYl9kaXNhYmxlZF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIyMzg6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjIzOS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYz0xMzg4PXN0YXRpYyBpbnQgaXdsYWduX21hY19jaGFuZ2VfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTQwNi1cdC8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE0MDc6XHQgKiBUbyBzaW1wbGlmeSB0aGlzIGNvZGUsIG9ubHkgc3VwcG9ydCBjaGFuZ2VzIG9uIHRoZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNDA4LVx0ICogQlNTIGNvbnRleHQuIFRoZSBQQU4gY29udGV4dCBpcyB1c3VhbGx5IHJlYXNzaWduZWRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTIxNTc9c3RhdGljIHZvaWQgcnNfcmF0ZV9zY2FsZV9wZXJmb3JtKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTI2MDAtICogICAgICAgaWYgdGhlIGRyaXZlciYjMzk7cyBpd2wtYWduLXJzIHJhdGUgc2NhbGluZyBhbGdvcml0aG0gaXMgdXNlZCwgaW5zdGVhZCBvZlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzoyNjAxOiAqICAgICAgIHJjODAyMTFfc2ltcGxlLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0yNjAyLSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMDYxPXN0YXRpYyBzc2l6ZV90IHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzE1ODpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmZiwgZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNTktXHRrZnJlZShidWZmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3NjYWxlX3RhYmxlX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNjUtXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9yZWFkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMTY2Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2Ny1cdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2Vlayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjk9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjAxLVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjAyOlx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwMy1cdGtmcmVlKGJ1ZmYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIwNz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjA4LVx0LnJlYWQgPSByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfcmVhZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwOTpcdC5vcGVuID0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMTAtXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjEzPXN0YXRpYyBzc2l6ZV90IHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMzA6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjM0LVx0LnJlYWQgPSByc19zdGFfZGJnZnNfcmF0ZV9zY2FsZV9kYXRhX3JlYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMzU6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjM2LVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYz0zNj1zdGF0aWMgaW50IGl3bF9zZW5kX3NjYW5fYWJvcnQoc3RydWN0IGl3bF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYy02MC1cdFx0ICogMiBmb3IgXCYjMzQ7ZmFpbHVyZVwmIzM0Oy4gIEEgZmFpbHVyZSBjb25kaXRpb24gY2FuIGJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6NjE6XHRcdCAqIGR1ZSB0byBzaW1wbHkgbm90IGJlaW5nIGluIGFuIGFjdGl2ZSBzY2FuIHdoaWNoXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjItXHRcdCAqIGNhbiBvY2N1ciBpZiB3ZSBzZW5kIHRoZSBzY2FuIGFib3J0IGJlZm9yZSB3ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MjUyPWVudW0gaXdsX3RvZl9yZXNwb25kZXJfY2ZnX2ZsYWdzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI3OS0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoyODA6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI4MS0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9Mjg3PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y2IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTMxNC0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDozMTU6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTMxNi0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MzIyPXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y3IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM1Mi0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDozNTM6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM1NC0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MzY5PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y4IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM5Ny0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDozOTg6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM5OS0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9NDE4PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y5IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTQ0OC0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDo0NDk6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTQ1MC0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9OTc9ZW51bSBpd2xfcG93ZXJfZmxhZ3Mge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTEzLSAqXHRpcyB1c2VkIGFsc28gd2l0aCBhIG5ld1x0cG93ZXIgQVBJIGZvciBkZXZpY2Ugd2lkZSBwb3dlciBzZXR0aW5ncy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTE0OiAqIFBPV0VSX1RBQkxFX0NNRCA9IDB4NzcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTE1LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0xNTg9ZW51bSBpd2xfZGV2aWNlX3Bvd2VyX2ZsYWdzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE2Ni0gKiBzdHJ1Y3QgaXdsX2RldmljZV9wb3dlcl9jbWQgLSBkZXZpY2Ugd2lkZSBwb3dlciBjb21tYW5kLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaDoxNjc6ICogREVWSUNFX1BPV0VSX0NNRCA9IDB4NzcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTY4LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0xNzI9c3RydWN0IGl3bF9kZXZpY2VfcG93ZXJfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE3OS0gKiBzdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWRfdjIgLSBwb3dlciBjb21tYW5kIFYyIGNvbnRhaW5pbmcgdUFQU0Qgc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaDoxODA6ICogTUFDX1BNX1BPV0VSX1RBQkxFID0gMHhBOSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xODEtICogQGlkX2FuZF9jb2xvcjpcdE1BQyBjb250ZXh0IGlkZW50aWZpZXIsIFx1MDAyNmVudW0gaXdsX2N0eHRfaWRfYW5kX2NvbG9yXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0yMjA9c3RydWN0IGl3bF9tYWNfcG93ZXJfY21kX3YyIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTI0Ny0gKiBzdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWQgLSBwb3dlciBjb21tYW5kXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjI0ODogKiBNQUNfUE1fUE9XRVJfVEFCTEUgPSAweEE5IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTI0OS0gKiBAaWRfYW5kX2NvbG9yOlx0TUFDIGNvbnRleHQgaWRlbnRpZmllciwgXHUwMDI2ZW51bSBpd2xfY3R4dF9pZF9hbmRfY29sb3Jcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oPTE2MT1zdGF0aWMgaW5saW5lIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTYyOl9pd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3Aoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xNjMtXHRcdFx0XHRzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoxNzU6I2RlZmluZSBpd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3AoZndydCwgd2RldiwgdHJpZylcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjE3NjpcdF9pd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3AoKGZ3cnQpLCAod2RldiksXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE3Ny1cdFx0XHRcdFx0aXdsX2Z3X2RiZ19nZXRfdHJpZ2dlcigoZndydCktXHUwMDNlZncsXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYz0zNz1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kZWJ1Z2ZzLmMtNTEtXHRcdHJldHVybiBkYXRhLVx1MDAzZXJsZW47XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYzo1MjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYy01My1cdFx0XHRcdCAgICAgICBkYXRhLVx1MDAzZXJidWYsIGRhdGEtXHUwMDNlcmxlbik7XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg9MzEzPXN0cnVjdCB1ZWZpX2Nudl93cGZjX2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oLTMxOS0gKiBUaGlzIGlzIGtub3duIHRvIGJlIGJyb2tlbiBvbiB2NC4xOSBhbmQgdG8gd29yayBvbiB2NS40LiAgVW50aWwgd2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oOjMyMDogKiBmaWd1cmUgb3V0IHdoeSB0aGlzIGlzIHRoZSBjYXNlIGFuZCBob3cgdG8gbWFrZSBpdCB3b3JrLCBzaW1wbHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oLTMyMS0gKiBkaXNhYmxlIHRoZSBmZWF0dXJlIGluIG9sZCBrZXJuZWxzLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTE3LSAqIFVzZSBpd2xfd3JpdGUzMigpIGFuZCBpd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaDoxODogKiB0aGVzZSBwcm92aWRlIHNpbXBsZSBQQ0kgYnVzIGFjY2Vzcywgd2l0aG91dCB3YWtpbmcgdXAgdGhlIE1BQy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTE5LSAqIERvIG5vdCB1c2UgaXdsX3dyaXRlX2RpcmVjdDMyKCkgZmFtaWx5IGZvciB0aGVzZSByZWdpc3RlcnM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg9MzIxPWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTUwOS0gKiBEbyBub3QgdXNlIGl3bF93cml0ZTMyKCkvaXdsX3JlYWQzMigpIGZhbWlseSB0byBhY2Nlc3MgdGhlc2UgcmVnaXN0ZXJzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg6NTEwOiAqIHRoZXNlIHByb3ZpZGUgb25seSBzaW1wbGUgUENJIGJ1cyBhY2Nlc3MsIHdpdGhvdXQgd2FraW5nIHVwIHRoZSBNQUMuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaC01MTEtICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xMDI9ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTExMy0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMTQ6ICogSWYgeW91IGFyZSBkZWZpbmluZyBhIG5ldyBkZWJ1ZyBjbGFzc2lmaWNhdGlvbiwgc2ltcGx5IGFkZCBpdCB0byB0aGUgI2RlZmluZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMTUtICogbGlzdCBoZXJlIGluIHRoZSBmb3JtIG9mXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oPTIwPXN0cnVjdCBpd2xfcmZfY2ZnO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLW9wLW1vZGUuaC0zNi0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oOjM3OiAqIFRoZSBvcGVyYXRpb25hbCBtb2RlIGhhcyBhIHZlcnkgc2ltcGxlIGxpZmUgY3ljbGUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmgtMzgtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jPTg2PXN0YXRpYyB1MzIgaXdsX2Rpdl9ieV9kYih1MzIgdmFsdWUsIHU4IGRiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmMtODgtXHQvKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYzo4OTpcdCAqIDJeMzIgKiAxMCoqKGkgLyAxMCkgZm9yIGkgPSBbMSwgMTBdLCBza2lwcGluZyAwIGFuZCBzaW1wbHkgc3RvcHBpbmdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmMtOTAtXHQgKiBhdCAxMCBkQiBhbmQgbG9vcGluZyBpbnN0ZWFkIG9mIHVzaW5nIGEgbXVjaCBsYXJnZXIgdGFibGUuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTE3NC0gKiBDU01FIGNhbiB0cmFuc21pdCBwYWNrZXRzLCB0aHJvdWdoIHRoZSBuZXRkZXYgdGhhdCBpdCBnZXRzIGZyb20gdGhlIHdpZmlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDoxNzU6ICogZHJpdmVyLiBJdCYjMzk7bGwgc2VuZCBwYWNrZXQgaW4gdGhlIDgwMi4zIGZvcm1hdCBhbmQgc2ltcGx5IGNhbGxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC0xNzYtICogZGV2X3F1ZXVlX3htaXQuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oPTQyOD12b2lkIGl3bF9tZWlfc2V0X25ldGRldihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtNDM2LSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg6NDM3OiAqIFRoaXMgZnVuY3Rpb24gZG9lc24mIzM5O3QgdGFrZSBhbnkgbG9jaywgaXQgc2ltcGx5IHRyaWVzIHRvIGNhdGNoIERIQ1BcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MzgtICogcGFja2V0cyBzZW50IGJ5IHRoZSB3aWZpIGRyaXZlci4gSWYgdGhlIHBhY2tldCBpcyBhIERIQ1AgcGFja2V0LCBpdFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYz0xOTAwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9tZWlfZGJnZnNfc2VuZF9zdGFydF9tZXNzYWdlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTAxLVx0LndyaXRlID0gaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfd3JpdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM6MTkwMjpcdC5vcGVuID0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkwMy1cdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2Vlayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM9MTkxNT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfbWVpX2RiZ2ZzX3JlcV9vd25lcnNoaXBfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MTYtXHQud3JpdGUgPSBpd2xfbWVpX2RiZ2ZzX3JlcV9vd25lcnNoaXBfd3JpdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM6MTkxNzpcdC5vcGVuID0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkxOC1cdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2Vlayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MzU9c3RhdGljIHNzaXplX3QgX2l3bF9kYmdmc18jI25hbWUjI19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC00OS1cdFx0cmV0dXJuIGRhdGEtXHUwMDNlcmxlbjtcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaDo1MDpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtNTEtXHRcdFx0XHQgICAgICAgZGF0YS1cdTAwM2VidWYsIGRhdGEtXHUwMDNlcmxlbik7XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oPTEwMT1zdGF0aWMgc3NpemVfdCBfX2l3bF9kYmdmc18jI25hbWUjI193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSxcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTE5LVx0XHQud3JpdGUgPSBfX2l3bF9kYmdmc18jI25hbWUjI193cml0ZSxcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjEyMDpcdFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC0xMjEtXHRcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MTYyPXN0YXRpYyBzc2l6ZV90IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXHRcdFxcXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDg4NgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGl3bHdpZmkgTW9kdWxlIExvYWRpbmcgYW5kIERldmljZSBBdHRhY2htZW50KioKClJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoZSBndXRzIG9mIHRoaXMgYGl3bHdpZmlgIG1vZHVsZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7T2theSwgaG93ICpleGFjdGx5KiBpcyB0aGlzIHRoaW5nIGxvYWRlZCBhbmQsIG1vcmUgaW1wb3J0YW50bHksIGhvdyBkb2VzIGl0IGVzdGFibGlzaCBpdHMgcmVsYXRpb25zaGlwIHdpdGggdGhlIFBDSSBkZXZpY2VzIGl0JiMzOTtzIHN1cHBvc2VkIHRvIGNvbnRyb2w/JiMzNDsgVGhhdCYjMzk7cyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIG9wZXJhdGlvbiwgZXNwZWNpYWxseSBpZiBJJiMzOTttIHRyb3VibGVzaG9vdGluZyBvciB0cnlpbmcgdG8gaW50ZWdyYXRlIGEgbmV3IGRldmljZS4KClNvLCBmaXJzdCB0aGluZyBJJiMzOTtsbCBkbyBpcyB6ZXJvIGluIG9uIHRoZSBrZXkgcmVnaXN0cmF0aW9uIHBvaW50cy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGBncmVwYCB0aGUgYGl3bHdpZmlgIHNvdXJjZSBmb3IgZWl0aGVyIGBwY2lfcmVnaXN0ZXJfZHJpdmVyYCBvciBgbW9kdWxlX3BjaV9kcml2ZXJgLiBUaG9zZSBhcmUgdGhlIHVzdWFsIHN1c3BlY3RzLCBhbmQgdGhleSBhcmUgd2hhdCBJJiMzOTtkIGV4cGVjdCB0byBzZWUuIFRoZXkgYXJlIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIG1vZHVsZSYjMzk7cyBvcGVyYXRpb25hbCBwYXRoLiBUaGF0IHdpbGwgcXVpY2tseSB0ZWxsIG1lIHdoZXJlIHRoZSBkcml2ZXIgaXMgYmVpbmcgcmVnaXN0ZXJlZCB3aXRoIHRoZSBQQ0kgc3Vic3lzdGVtLCBhbmQgd2hpY2ggZGV2aWNlcyBpdCYjMzk7cyBzcGVjaWZpY2FsbHkgY29uZmlndXJlZCB0byBzdXBwb3J0LiBGcm9tIHRoZXJlLCBJIGNhbiBiZWdpbiB0byB1bnJhdmVsIGl0cyBkZXZpY2UgcHJvYmUgYW5kIGF0dGFjaCBmdW5jdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE3OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwOTc9c3RhdGljIGludCBfX2luaXQgaXdsX2Rydl9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjIxMDk6XHRlcnIgPSBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcigpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjExMC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaD0xMTQxPXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfdHJhbnNfbm90aWZ5X2Z3X2Vycm9yKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTE0OC0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC10cmFucy5oOjExNDk6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTE1MC12b2lkIGl3bF9wY2lfdW5yZWdpc3Rlcl9kcml2ZXIodm9pZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jPTEzMzg9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGl3bF9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzQ2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzNDc6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzNDgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzNDktXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzNTA6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNml3bF9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzUxLVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU3NTcKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiA2MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIHRoZSBgaXdsd2lmaWAgRHJpdmVyKioKCk9rYXksIHNvIGBpd2x3aWZpYCByZWdpc3RlcnMgaXRzZWxmIGFzIGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IGBpd2xfcGNpX2RyaXZlcmAuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIHNjb3BlIG9mIHRoaXMgZHJpdmVyLiBJcyB0aGlzIHNvbGVseSBkZWRpY2F0ZWQgdG8gSW50ZWwgd2lyZWxlc3MgY2FyZHMgYW5kIHRoZWlyIFBDSSBpbnRlcmZhY2VzPyBHaXZlbiBteSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgZHJpdmVyIGFyY2hpdGVjdHVyZXMsIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGNvbmZpcm0gdGhpcyBzdXNwaWNpb24sIGFuZCBJJiMzOTtsbCBqdW1wIHJpZ2h0IGludG8gdGhlIHNvdXJjZSBjb2RlIHRvIGdldCBhIGRlZmluaXRpdmUgYW5zd2VyLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jYC4gVGhpcyBzZWVtcyBsaWtlIHRoZSBvYnZpb3VzIHBsYWNlIHRvIGJlZ2luLCBnaXZlbiB0aGUgZm9jdXMgb24gJiMzNDtwY2llLiYjMzQ7IEkmIzM5O20gZXhwZWN0aW5nIHRoaXMgZmlsZSB0byBob2xkIHRoZSBjb3JlIFBDSS1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiBhbmQgZnVuY3Rpb24gdGFibGUgZGVmaW5pdGlvbnMuIE15IGdvYWwgaXMgdG8gcXVpY2tseSB1bmRlcnN0YW5kIHRoZSBkcml2ZXImIzM5O3MgcHVycG9zZSBhbmQgaXRzIHBvdGVudGlhbCBsaW1pdGF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMzMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEzMzA6XHRzdGF0aWMgdm9pZCBpd2xfcGNpX2R1bXAoc3RydWN0IGRldmljZSAqZGV2aWNlKVxuMTMzMTpcdHtcbjEzMzI6XHRcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXZpY2UpO1xuMTMzMzpcdFx0c3RydWN0IGl3bF90cmFucyAqdHJhbnMgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XG4xMzM0Olx0XG4xMzM1Olx0XHRpd2xfb3BfbW9kZV9kdW1wKHRyYW5zLVx1MDAzZW9wX21vZGUpO1xuMTMzNjpcdH1cbjEzMzc6XHRcbjEzMzg6XHRzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaXdsX3BjaV9kcml2ZXIgPSB7XG4xMzM5Olx0XHQubmFtZSA9IERSVl9OQU1FLFxuMTM0MDpcdFx0LmlkX3RhYmxlID0gaXdsX2h3X2NhcmRfaWRzLFxuMTM0MTpcdFx0LnByb2JlID0gaXdsX3BjaV9wcm9iZSxcbjEzNDI6XHRcdC5yZW1vdmUgPSBpd2xfcGNpX3JlbW92ZSxcbjEzNDM6XHRcdC5kcml2ZXIucG0gPSBJV0xfUE1fT1BTLFxuMTM0NDpcdFx0LmRyaXZlci5jb3JlZHVtcCA9IGl3bF9wY2lfZHVtcCxcbjEzNDU6XHR9O1xuMTM0NjpcdFxuMTM0NzpcdGludCBfX211c3RfY2hlY2sgaXdsX3BjaV9yZWdpc3Rlcl9kcml2ZXIodm9pZClcbjEzNDg6XHR7XG4xMzQ5Olx0XHRpbnQgcmV0O1xuMTM1MDpcdFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZpd2xfcGNpX2RyaXZlcik7XG4xMzUxOlx0XHRpZiAocmV0KVxuMTM1MjpcdFx0XHRwcl9lcnIoXCYjMzQ7VW5hYmxlIHRvIGluaXRpYWxpemUgUENJIG1vZHVsZVxcblwmIzM0Oyk7XG4xMzUzOlx0XG4xMzU0Olx0XHRyZXR1cm4gcmV0O1xuMTM1NTpcdH1cbjEzNTY6XHRcbjEzNTc6XHR2b2lkIGl3bF9wY2lfdW5yZWdpc3Rlcl9kcml2ZXIodm9pZClcbjEzNTg6XHR7XG4xMzU5Olx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2aXdsX3BjaV9kcml2ZXIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjUwNwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOgoKKipJbnZlc3RpZ2F0aW5nIGl3bHdpZmkgVHJhbnNwb3J0IFR5cGVzKioKCk9rYXksIHNvIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgdHJhbnNwb3J0IHR5cGVzIHVzZWQgd2l0aGluIHRoZSBgaXdsd2lmaWAgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIHNlZSBpZiBhbnkgbm9uLVBDSSB0cmFuc3BvcnRzIGhhdmUgY3JlcHQgaW4uIFRoZSBtb3N0IGRpcmVjdCBhcHByb2FjaCBpcyB0byBjaGVjayB0aGUgYE1ha2VmaWxlYCBsb2NhdGVkIGluIHRoZSBgaXdsd2lmaWAgZGlyZWN0b3J5LiBUaGlzIGZpbGUgc2hvdWxkIGRlZmluZSB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgbGlrZWx5IGluY2x1ZGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gb3IgZmlsZSBpbmNsdXNpb24gYmFzZWQgb24gdGhlIHRyYW5zcG9ydCB0eXBlLiBCeSBleGFtaW5pbmcgdGhpcyBgTWFrZWZpbGVgLCBJIHNob3VsZCBnZXQgYSBjbGVhciBvdmVydmlldy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuICAgMjpcdCMgY29tbW9uXG4gICAzOlx0b2JqLSQoQ09ORklHX0lXTFdJRkkpXHQmIzQzOz0gaXdsd2lmaS5vXG4gICA0Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtaW8ub1xuICAgNTpcdGl3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLWRydi5vXG4gICA2Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtZGVidWcub1xuICAgNzpcdGl3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLW52bS11dGlscy5vXG4gICA4Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtdXRpbHMub1xuICAgOTpcdGl3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLXBoeS1kYi5vIGl3bC1udm0tcGFyc2Uub1xuICAxMDpcdFxuICAxMTpcdCMgQnVzXG4gIDEyOlx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBwY2llL2N0eHQtaW5mby5vIHBjaWUvY3R4dC1pbmZvLXYyLm8gcGNpZS9kcnYubyBwY2llL3V0aWxzLm9cbiAgMTM6XHRpd2x3aWZpLW9ianNcdFx0JiM0Mzs9IHBjaWUvZ2VuMV8yL3J4Lm8gcGNpZS9nZW4xXzIvdHgubyBwY2llL2dlbjFfMi90cmFucy5vXG4gIDE0Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBwY2llL2dlbjFfMi90cmFucy1nZW4yLm8gcGNpZS9nZW4xXzIvdHgtZ2VuMi5vXG4gIDE1Olx0XG4gIDE2Olx0Q0ZMQUdTX3BjaWUvZHJ2Lm8gJiM0Mzs9IC1Xbm8tb3ZlcnJpZGUtaW5pdFxuICAxNzpcdFxuICAxODpcdCMgY29tYmluZWQgTUFDL1JGIGNvbmZpZ3VyYXRpb25zXG4gIDE5Olx0aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICYjNDM7PSBjZmcvMTAwMC5vIGNmZy8yMDAwLm9cbiAgMjA6XHRpd2x3aWZpLSQoQ09ORklHX0lXTERWTSkgJiM0Mzs9IGNmZy81MDAwLm8gY2ZnLzYwMDAub1xuICAyMTpcdGl3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gY2ZnLzcwMDAubyBjZmcvODAwMC5vXG4gIDIyOlx0IyBNQUMgY29uZmlndXJhdGlvbnNcbiAgMjM6XHRpd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGNmZy85MDAwLm8gY2ZnLzIyMDAwLm9cbiAgMjQ6XHRpd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGNmZy9heDIxMC5vXG4gIDI1Olx0aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvYnoubyBjZmcvc2Mub1xuICAyNjpcdGl3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gY2ZnL2J6Lm8gY2ZnL3NjLm8gY2ZnL2RyLm9cbiAgMjc6XHQjIFJGIGNvbmZpZ3VyYXRpb25zXG4gIDI4Olx0aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvcmYtamYubyBjZmcvcmYtaHIubyBjZmcvcmYtZ2Yub1xuICAyOTpcdGl3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gY2ZnL3JmLWZtLm8gY2ZnL3JmLXdoLm8gY2ZnL3JmLXBlLm9cbiAgMzA6XHRcbiAgMzE6XHRpd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC1kYmctdGx2Lm9cbiAgMzI6XHRpd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC10cmFucy5vXG4gIDMzOlx0XG4gIDM0Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBmdy9pbWcubyBmdy9ub3RpZi13YWl0Lm8gZncvcnMub1xuICAzNTpcdGl3bHdpZmktb2Jqc1x0XHQmIzQzOz0gZncvZGJnLm8gZncvZGJnLW9sZC5vIGZ3L3Budm0ubyBmdy9kdW1wLm9cbiAgMzY6XHRpd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGZ3L3JlZ3VsYXRvcnkub1xuICAzNzpcdGl3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gZncvcGFnaW5nLm8gZncvc21lbS5vIGZ3L2luaXQub1xuICAzODpcdGl3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gZncvc21lbS5vIGZ3L2luaXQub1xuICAzOTpcdGl3bHdpZmktJChDT05GSUdfQUNQSSkgJiM0Mzs9IGZ3L2FjcGkub1xuICA0MDpcdGl3bHdpZmktJChDT05GSUdfRUZJKVx0JiM0Mzs9IGZ3L3VlZmkub1xuICA0MTpcdGl3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERUJVR0ZTKSAmIzQzOz0gZncvZGVidWdmcy5vXG4gIDQyOlx0XG4gIDQzOlx0aXdsd2lmaS1vYmpzICYjNDM7PSAkKGl3bHdpZmktbSlcbiAgNDQ6XHRcbiAgNDU6XHRpd2x3aWZpLSQoQ09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkcpICYjNDM7PSBpd2wtZGV2dHJhY2Uub1xuICA0NjpcdFxuICA0NzpcdGNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbiAgNDg6XHRcbiAgNDk6XHRvYmotJChDT05GSUdfSVdMRFZNKVx0JiM0Mzs9IGR2bS9cbiAgNTA6XHRvYmotJChDT05GSUdfSVdMTVZNKVx0JiM0Mzs9IG12bS9cbiAgNTE6XHRvYmotJChDT05GSUdfSVdMTUVJKVx0JiM0Mzs9IG1laS9cbiAgNTI6XHRvYmotJChDT05GSUdfSVdMTUxEKVx0JiM0Mzs9IG1sZC9cbiAgNTM6XHRcbiAgNTQ6XHRvYmotJChDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUUykgJiM0Mzs9IHRlc3RzL1xuICA1NTpcdFxuICA1NjpcdENGTEFHU19pd2wtZGV2dHJhY2UubyA6PSAtSSQoc3JjKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzg5MQoJCQkJCQkJb3V0cHV0OiAxMzEKCQkJCQkJCXRob3VnaHRzOiA2MTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBmdXp6aW5nIHdvcmtzIGluIHRoZXNlIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgSSYjMzk7bSBsZWFuaW5nIHRvd2FyZHMgZGVlbWluZyB0aGlzIGNoYW5nZSBub3Qgd29ydGggaW1tZWRpYXRlIGZ1enppbmcuIEhlcmUmIzM5O3MgbXkgcmVhc29uaW5nLCBwaWVjZSBieSBwaWVjZToKCkZpcnN0LCBgaXdsd2lmaWAgYW5kIGBJV0xNTERgLCB0aGUgV2lGaSA3IE1MRCBvcC1tb2RlLCBhcmUgc3BlY2lmaWNhbGx5IHRpZWQgdG8gSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZS4gV2UmIzM5O3JlIHRhbGtpbmcgcGh5c2ljYWwgY2FyZHMgaGVyZSwgY29ubmVjdGVkIHZpYSBQQ0llIChgcGNpZS9kcnYuY2AsIGBwY2llLy4uLmApLgoKTm93LCBjb25zaWRlcmluZyB0aGUgcnVsZXMgd2UgaGF2ZSBmb3IgZGV0ZXJtaW5pbmcgaWYgYSBwYXRjaCB3YXJyYW50cyBmdXp6aW5nLCBsZXQmIzM5O3MgZ28gdGhyb3VnaCB0aGUgY2hlY2tsaXN0LiBUaGUgcnVsZXMgZXhwbGljaXRseSBzdGF0ZSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGludm9sdmVzIGNoYW5nZXMgcmVsYXRlZCB0bzogZG9jdW1lbnRhdGlvbiwgS2NvbmZpZywgY29tbWVudHMsIGxvZ2dpbmcsIGRlY29yYXRpdmUgY2hhbmdlcywgbnVtZXJpYyBjb25zdGFudHMgdGhhdCBkb24mIzM5O3QgYWx0ZXIgZmxvdywgb3IgdW5yZWFjaGFibGUgY29kZS4gVW5yZWFjaGFibGUgY29kZSBpcyB0aGUgY3JpdGljYWwgcGFydCBoZXJlLgoKSSYjMzk7bSB0aGlua2luZywgaXMgYGl3bHdpZmlgIGFjY2Vzc2libGUgaW4gYSB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudD8gVGhlIGFuc3dlciBpcyBhIGNsZWFyIG5vLiBRRU1VLCBpbiBpdHMgc3RhbmRhcmQgY29uZmlndXJhdGlvbiwgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGVzZSBzcGVjaWZpYyBJbnRlbCB3aXJlbGVzcyBOSUNzLiBXZSB1c2UgYG1hYzgwMjExX2h3c2ltYCwgb3Igb3RoZXIgdmlydHVhbCBpbnRlcmZhY2VzIG9yIFVTQiBnYWRnZXQgYWRhcHRlcnMgc3VjaCBhcyB0aG9zZSBiYXNlZCBvbiBydGw4MTg4ZXUsIGZvciBmdXp6aW5nIGluIGVudmlyb25tZW50cyBsaWtlIFN5emthbGxlci4gVmVuZG9yLXNwZWNpZmljIFBDSWUgd2lyZWxlc3MgZHJpdmVycyBzdWNoIGFzIGl3bHdpZmksIGF0aDEwayBwY2ksIGF0aDExayBwY2ksIHJ0dzg4IHBjaSwgZXRjIGFyZSBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQmIzM5O3Mgb3VyIGZ1enppbmcgZW52aXJvbm1lbnQuCgpTbywgdGhpcyBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgLCBzcGVjaWZpY2FsbHkgdG8gYWRkIGEgYm91bmRzIGNoZWNrIG9uIGBiYWlkYC4gVGhlIGNvZGUgaXMgcGFydCBvZiB0aGUgYGl3bHdpZmlgIGRyaXZlciwgYW5kIGlzIG9ubHkgcmVhY2hlZCB3aGVuIHJlY2VpdmluZyB3aXJlbGVzcyBmcmFtZXMgb24gKnBoeXNpY2FsKiBJbnRlbCBXaUZpIGhhcmR3YXJlLgoKR2l2ZW4gdGhhdCB0aGlzIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMsIHRoaXMgY29kZSBpcyAqdW5yZWFjaGFibGUqIGluIHRoZSBmdXp6aW5nIGNvbnRleHQgd2UmIzM5O3JlIGNvbnNpZGVyaW5nLiBUaGUgZW52aXJvbm1lbnQgd2UmIzM5O3JlIHdvcmtpbmcgaW4gaXMgdmlydHVhbGl6ZWQsIGFuZCBsYWNrcyB0aGUgbmVjZXNzYXJ5IHBoeXNpY2FsIGNvbXBvbmVudC4gVGhlcmVmb3JlLCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzLCBJJiMzOTttIGNvbmZpZGVudCBpbiBjYWxsaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyKClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AgdG8gYWRkIGEgYm91bmRzIGNoZWNrIGZvciBgYmFpZGAuIFRoZSBgaXdsd2lmaWAgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBJbnRlbCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlcnMsIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBHQ0UpLiBUaGVyZWZvcmUsIHRoZXNlIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyKClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AgdG8gYWRkIGEgYm91bmRzIGNoZWNrIGZvciBgYmFpZGAuIFRoZSBgaXdsd2lmaWAgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBJbnRlbCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlcnMsIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBHQ0UpLiBUaGVyZWZvcmUsIHRoZXNlIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzo0MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzc6NTUuMTg5NTM0MTQzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUwNjY5OTI2MjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGl3bF9tbGRfcmVvcmRlcigpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgIHRvIGFkZCBhIGJvdW5kcyBjaGVjayBmb3IgYGJhaWRgLiBUaGUgYGl3bHdpZmlgIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgSW50ZWwgUENJZSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJzLCB3aGljaCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgR0NFKS4gVGhlcmVmb3JlLCB0aGVzZSBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzc6NTUuMTg5NTQxODEzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Mzk4MjU5MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlMDg4ZTA2NDIyNDQyMTk2ZTI3MjI0ZDBjOTY4MDdkYzk4NTU4YzAzXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMxIDE3OjM3OjU0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcXG5pbmRleCBlMzYyN2FkMDMyMWM4Li5hNDY0ZWJkZWM1N2YxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcXG5AQCAtMSw2ICsxLDYgQEBcXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuIC8qXFxuLSAqIENvcHlyaWdodCAoQykgMjAyNC0yMDI1IEludGVsIENvcnBvcmF0aW9uXFxuKyAqIENvcHlyaWdodCAoQykgMjAyNC0yMDI2IEludGVsIENvcnBvcmF0aW9uXFxuICAqL1xcbiAjaW5jbHVkZSBcXFwiYWdnLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJzdGEuaFxcXCJcXG5AQCAtMjIyLDYgKzIyMiwxMSBAQCBpd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxcbiBcXHRpZiAoYmFpZCA9PSBJV0xfUlhfUkVPUkRFUl9EQVRBX0lOVkFMSURfQkFJRClcXG4gXFx0XFx0cmV0dXJuIElXTF9NTERfUEFTU19TS0I7XFxuIFxcbitcXHRpZiAoSVdMX0ZXX0NIRUNLKG1sZCwgYmFpZCBcXHUwMDNlPSBBUlJBWV9TSVpFKG1sZC1cXHUwMDNlZndfaWRfdG9fYmEpLFxcbitcXHRcXHRcXHQgXFxcIkdvdCBvdXQtb2YtcmFuZ2UgQkFJRCAldSBpbiByZW9yZGVyX2RhdGE9MHgleFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0IGJhaWQsIHJlb3JkZXIpKVxcbitcXHRcXHRyZXR1cm4gSVdMX01MRF9QQVNTX1NLQjtcXG4rXFxuIFxcdC8qIG5vIHN0YSB5ZXQgKi9cXG4gXFx0aWYgKFdBUk5fT05DRSghc3RhLFxcbiBcXHRcXHQgICAgICBcXFwiR290IHZhbGlkIEJBSUQgd2l0aG91dCBhIHZhbGlkIHN0YXRpb24gYXNzaWduZWRcXFxcblxcXCIpKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxNzozNzo1NS43MzAwNzk0OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MTUwMTI5MzY3MzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyKClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AgdG8gYWRkIGEgYm91bmRzIGNoZWNrIGZvciBgYmFpZGAuIFRoZSBgaXdsd2lmaWAgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBJbnRlbCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlcnMsIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBHQ0UpLiBUaGVyZWZvcmUsIHRoZXNlIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlMDg4ZTA2NDIyNDQyMTk2ZTI3MjI0ZDBjOTY4MDdkYzk4NTU4YzAzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMzEgMTc6Mzc6NTQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5pbmRleCBlMzYyN2FkMDMyMWM4Li5hNDY0ZWJkZWM1N2YxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5AQCAtMSw2ICsxLDYgQEBcbiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcbiAvKlxuLSAqIENvcHlyaWdodCAoQykgMjAyNC0yMDI1IEludGVsIENvcnBvcmF0aW9uXG4rICogQ29weXJpZ2h0IChDKSAyMDI0LTIwMjYgSW50ZWwgQ29ycG9yYXRpb25cbiAgKi9cbiAjaW5jbHVkZSBcImFnZy5oXCJcbiAjaW5jbHVkZSBcInN0YS5oXCJcbkBAIC0yMjIsNiArMjIyLDExIEBAIGl3bF9tbGRfcmVvcmRlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXG4gXHRpZiAoYmFpZCA9PSBJV0xfUlhfUkVPUkRFUl9EQVRBX0lOVkFMSURfQkFJRClcbiBcdFx0cmV0dXJuIElXTF9NTERfUEFTU19TS0I7XG4gXG4rXHRpZiAoSVdMX0ZXX0NIRUNLKG1sZCwgYmFpZCBcdTAwM2U9IEFSUkFZX1NJWkUobWxkLVx1MDAzZWZ3X2lkX3RvX2JhKSxcbitcdFx0XHQgXCJHb3Qgb3V0LW9mLXJhbmdlIEJBSUQgJXUgaW4gcmVvcmRlcl9kYXRhPTB4JXhcXG5cIixcbitcdFx0XHQgYmFpZCwgcmVvcmRlcikpXG4rXHRcdHJldHVybiBJV0xfTUxEX1BBU1NfU0tCO1xuK1xuIFx0Lyogbm8gc3RhIHlldCAqL1xuIFx0aWYgKFdBUk5fT05DRSghc3RhLFxuIFx0XHQgICAgICBcIkdvdCB2YWxpZCBCQUlEIHdpdGhvdXQgYSB2YWxpZCBzdGF0aW9uIGFzc2lnbmVkXFxuXCIpKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzc6NTUuNzMwMDgwOFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjY1MTg1MDk0NDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGFzc2VzcyBpZiB0aGlzIHBhdGNoIHdhcnJhbnRzIGZ1enppbmcgZWZmb3J0LiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBpdCdzIGV2ZW4gY2hhbmdpbmcuIExvb2tzIGxpa2UgdGhlIGZpbGUgaW4gcXVlc3Rpb24gaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgaXdsX21sZF9yZW9yZGVyKClgIGZ1bmN0aW9uLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhbiBvdXQtb2YtYm91bmRzIGNoZWNrIHVzaW5nIGBJV0xfRldfQ0hFQ0tgIG9uIGBiYWlkYCBhZ2FpbnN0IGBBUlJBWV9TSVpFKG1sZC1cdTAwM2Vmd19pZF90b19iYSlgLiBIbW0sIGNsYXNzaWMuXG5cbk5vdywgbGV0J3MgYXBwbHkgdGhlIG1lbnRhbCBjaGVja2xpc3QuIERvZXMgdGhpcyBmYWxsIHVuZGVyIGFueSBvZiBteSBlc3RhYmxpc2hlZCBmdXp6aW5nIGV4Y2x1c2lvbnM/IExldCBtZSBzZWUuLi4gXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLi4uXCIgV2FpdCwgd2hhdCBkcml2ZXIgYXJlIHdlIGRlYWxpbmcgd2l0aD8gQWgsIGBpd2x3aWZpYCDigJMgdGhlIEludGVsIHdpcmVsZXNzIFdpRmkgZHJpdmVyLlxuXG5UaGUgbWlsbGlvbi1kb2xsYXIgcXVlc3Rpb246IGlzIGBpd2x3aWZpYCBzdXBwb3J0ZWQgaW4gYSBRRU1VLCBtYWM4MDIxMV9od3NpbSwgb3Igb3RoZXIgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgd2l0aG91dCBhY3R1YWwgSW50ZWwgV2lGaSBoYXJkd2FyZT8gVGhhdCdzIHRoZSBjcnV4IG9mIGl0LiBEb2VzIGBpd2x3aWZpYCBoYXZlIGFueSBvZiBpdHMgb3duIHZpcnR1YWxpemVkIGNvdW50ZXJwYXJ0cyBsaWtlLCBzYXksIGBpd2xtdm1gIG9yIGlzIGl0IHB1cmVseSByZWxpYW50IG9uIGEgcGh5c2ljYWwgSW50ZWwgd2lyZWxlc3MgY2FyZD8gSSBjYW4ndCBpbW1lZGlhdGVseSByZWNhbGwuXG5cbkkgbmVlZCB0byBjb25maXJtIGlmIGl0IGNhbiBiZSBlbXVsYXRlZC4gVGltZSB0byBzdGFydCBkaWdnaW5nIOKAkyBgaXdsd2lmaWAsIGBpd2xtdm1gLCBhbmQgcG9zc2libHkgZXZlbiB3aXRoaW4gdGhlIGBpd2x3aWZpL21sZGAgc3ViZGlyZWN0b3J5LiBJJ2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIHRvb2xzIGhlcmUg4oCTIG1heWJlIGBncmVwcGVyYCBvciBqdXN0IGJyb3dzZSB0aGUgY29kZSBkaXJlY3RseS4gR290dGEgY2hlY2sgdGhvc2UgdmlydHVhbC9lbXVsYXRlZCBoYXJkd2FyZSBwb3NzaWJpbGl0aWVzIGJlZm9yZSBJIGRlY2lkZSBpZiBmdXp6aW5nIGlzIGZlYXNpYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjg3LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzk6MDAuOTE1MTc3MjM1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MDI1NjUwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXdsX21sZF9yZW9yZGVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxMDppd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xMS1cXHRcXHRcXHQgICAgICAgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTEyLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxMzpcXHRcXHRcXHQgICAgICAgc3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKnJlb3JkZXJfYnVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE0LVxcdFxcdFxcdCAgICAgICB1MTYgbnNzbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTY6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXMgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE3LVxcdFxcdFxcdTAwMjZiYWlkX2RhdGEtXFx1MDAzZWVudHJpZXNbcmVvcmRlcl9idWYtXFx1MDAzZXF1ZXVlICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTQyPXN0YXRpYyB2b2lkIGl3bF9tbGRfcmVsZWFzZV9mcmFtZXNfZnJvbV9ub3RpZihzdHJ1Y3QgaXdsX21sZCAqbWxkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ2OlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpyZW9yZGVyX2J1ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00Ny1cXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhX2RhdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy03Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo3NzpcXHRpd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMobWxkLCBsaW5rX3N0YS1cXHUwMDNlc3RhLCBuYXBpLCBiYV9kYXRhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTc4LVxcdFxcdFxcdFxcdCAgICAgICByZW9yZGVyX2J1ZiwgbnNzbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYz0xNTM9dm9pZCBpd2xfbWxkX2RlbF9iYShzdHJ1Y3QgaXdsX21sZCAqbWxkLCBpbnQgcXVldWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNTYtXFx0c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYV9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE1NzpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTU4LVxcdHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTgyLVxcdC8qIHJlbGVhc2UgYWxsIGZyYW1lcyB0aGF0IGFyZSBpbiB0aGUgcmVvcmRlciBidWZmZXIgdG8gdGhlIHN0YWNrICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTgzOlxcdGl3bF9tbGRfcmVvcmRlcl9yZWxlYXNlX2ZyYW1lcyhtbGQsIGxpbmtfc3RhLVxcdTAwM2VzdGEsIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTg0LVxcdFxcdFxcdFxcdCAgICAgICBiYV9kYXRhLCByZW9yZGVyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE5My0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxOTQ6ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTk1Oml3bF9tbGRfcmVvcmRlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTk2LVxcdFxcdGludCBxdWV1ZSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTIwMC1cXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoyMDE6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKmJ1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoyMDI6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMjAzLVxcdHN0cnVjdCBpd2xfbWxkX3N0YSAqbWxkX3N0YSA9IGl3bF9tbGRfc3RhX2Zyb21fbWFjODAyMTEoc3RhKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMyMy1cXHRpZiAoIWFtc2R1IHx8IGxhc3Rfc3ViZnJhbWUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MzI0OlxcdFxcdGl3bF9tbGRfcmVvcmRlcl9yZWxlYXNlX2ZyYW1lcyhtbGQsIHN0YSwgbmFwaSwgYmFpZF9kYXRhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMyNS1cXHRcXHRcXHRcXHRcXHQgICAgICAgYnVmZmVyLCBuc3NuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMzMC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MzMxOkVYUE9SVF9TWU1CT0xfSUZfSVdMV0lGSV9LVU5JVChpd2xfbWxkX3Jlb3JkZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTQ2ND1zdGF0aWMgdm9pZCBpd2xfbWxkX2luaXRfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGQgKm1sZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ2OC1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIG1sZC1cXHUwMDNldHJhbnMtXFx1MDAzZWluZm8ubnVtX3J4cXM7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ2OTpcXHRcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWYgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ3MC1cXHRcXHRcXHRcXHUwMDI2ZGF0YS1cXHUwMDNlcmVvcmRlcl9idWZbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6NDcxOlxcdFxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00NzItXFx0XFx0XFx0XFx1MDAyNmRhdGEtXFx1MDAzZWVudHJpZXNbaSAqIGRhdGEtXFx1MDAzZWVudHJpZXNfcGVyX3F1ZXVlXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTQ4Mj1zdGF0aWMgdm9pZCBpd2xfbWxkX2ZyZWVfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGQgKm1sZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ5Mi1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIG1sZC1cXHUwMDNldHJhbnMtXFx1MDAzZWluZm8ubnVtX3J4cXM7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ5MzpcXHRcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWYgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ5NC1cXHRcXHRcXHRcXHUwMDI2ZGF0YS1cXHUwMDNlcmVvcmRlcl9idWZbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6NDk1OlxcdFxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00OTYtXFx0XFx0XFx0XFx1MDAyNmRhdGEtXFx1MDAzZWVudHJpZXNbaSAqIGRhdGEtXFx1MDAzZWVudHJpZXNfcGVyX3F1ZXVlXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTExLS8qKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjEyOiAqIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyIC0gcGVyIHJhL3RpZC9xdWV1ZSByZW9yZGVyIGJ1ZmZlclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTEzLSAqIEBoZWFkX3NuOiByZW9yZGVyIHdpbmRvdyBoZWFkIHNlcXVlbmNlIG51bWJlclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTctICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MTg6c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTE5LVxcdHUxNiBoZWFkX3NuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMjUtLyoqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MjY6ICogc3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgLSByZW9yZGVyIGJ1ZmZlciBlbnRyeSBwZXItcXVldWUvcGVyLXNlcW5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMjctICogQGZyYW1lczogbGlzdCBvZiBza2JzIHN0b3JlZC4gYSBsaXN0IGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGluIGFuIEEtTVNEVSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTMwLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjMxOnN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0zMi1cXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGZyYW1lcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oPTYzPXN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC03NC1cXHRzdHJ1Y3QgaXdsX21sZCAqbWxkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjc1OlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyIHJlb3JkZXJfYnVmW0lXTF9NQVhfUlhfSFdfUVVFVUVTXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo3NjpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1Zl9lbnRyeSBlbnRyaWVzW10gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC03Ny19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg9ODQ9c3RydWN0IGl3bF9tbGRfZGVsYmFfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC04OC0vKipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo4OTogKiBlbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQgLSBQb3NzaWJsZSByZXR1cm4gdmFsdWVzIGZvciBpd2xfbWxkX3Jlb3JkZXIoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTkwLSAqIGluZGljYXRpbmcgaG93IHRoZSBjYWxsZXIgc2hvdWxkIGhhbmRsZSB0aGUgc2tiIGJhc2VkIG9uIHRoZSByZXN1bHQuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC05NS0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo5NjplbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTk3LVxcdElXTF9NTERfUEFTU19TS0IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaD0xMDQ9aW50IGl3bF9tbGRfYW1wZHVfcnhfc3RvcChzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjEwNzplbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDoxMDg6aXdsX21sZF9yZW9yZGVyKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xMDktXFx0XFx0aW50IHF1ZXVlLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYz0yMDIwPXZvaWQgaXdsX21sZF9yeF9tcGR1KHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjAzMy1cXHR1MzIgbXBkdV9sZW47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYzoyMDM0OlxcdGVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdCByZW9yZGVyX3JlcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jLTIwMzUtXFx0c3RydWN0IGllZWU4MDIxMV9yeF9zdGF0dXMgKnJ4X3N0YXR1cztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjE0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jOjIxNDM6XFx0cmVvcmRlcl9yZXMgPSBpd2xfbWxkX3Jlb3JkZXIobWxkLCBuYXBpLCBxdWV1ZSwgc3RhLCBza2IsIG1wZHVfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYy0yMTQ0LVxcdHN3aXRjaCAocmVvcmRlcl9yZXMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jPTIxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVvcmRlcl9idWZmZXJfY2FzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NS1cXHRzdHJ1Y3Qge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjU2OlxcdFxcdGVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdCByZW9yZGVyX3JlcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01Ny1cXHRcXHR1MTYgaGVhZF9zbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jPTUwMj1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmFsbG9jX2FuZF9zZXR1cF9za2IodTE2IGZjLCB1MTYgc2VxX2N0cmwsIHU4IHRpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1MzA6c3RhdGljIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MzEtc2V0dXBfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYWlkX2RhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MzUtXFx0XFx0KGNvbnN0IHZvaWQgKikodGVzdC1cXHUwMDNlcGFyYW1fdmFsdWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjUzNjpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyID0gYmFpZF9kYXRhLVxcdTAwM2VyZW9yZGVyX2J1ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1Mzc6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXMgPSBiYWlkX2RhdGEtXFx1MDAzZWVudHJpZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTM4LVxcdHN0cnVjdCBza19idWZmICpmYWtlX3NrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTU2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1Njg6c3RhdGljIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpzZXR1cF9iYV9kYXRhKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTY5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTU3NC1cXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTc1OlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpidWZmZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTc2LVxcdHUzMiByZW9yZGVyX2J1Zl9zaXplID0gQkFfV0lORE9XX1NJWkUgKiBzaXplb2YoYmFpZF9kYXRhLVxcdTAwM2VlbnRyaWVzWzBdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jPTYwMT1zdGF0aWMgdm9pZCB0ZXN0X3Jlb3JkZXJfYnVmZmVyKHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYwOS1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjYxMDpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjYxMTpcXHRlbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQgcmVvcmRlcl9yZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjEyLVxcdHUxNiBza2JfcmVsZWFzZV9vcmRlcl9jb3VudCA9IHBhcmFtLVxcdTAwM2VleHBlY3RlZC5za2JfcmVsZWFzZV9vcmRlcl9jb3VudDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYzMi1cXHRyY3VfcmVhZF9sb2NrKCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjMzOlxcdHJlb3JkZXJfcmVzID0gaXdsX21sZF9yZW9yZGVyKG1sZCwgTlVMTCwgUVVFVUUsIHN0YSwgc2tiLCBtcGR1X2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYzNC1cXHRyY3VfcmVhZF91bmxvY2soKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzk6MDIuODE3NzUxNTI1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzY3OTMwMDkxMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgaXdsd2lmaS9tbGQgTW9kdWxlKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGl3bHdpZmkvbWxkYCB0aGluZy4gTXkgaW1tZWRpYXRlIGdvYWwgaXMgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgbW9kdWxlICphY3R1YWxseSogaXMuIElzIGl0IGEgY29tcG9uZW50IG9mIHRoZSBgaXdsd2lmaWAgZHJpdmVyLCBvciBpcyBpdCBzb21ldGhpbmcgZW50aXJlbHkgc2VwYXJhdGU/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkcml2ZXIgcmVzcG9uc2libGUgZm9yIHV0aWxpemluZyB0aGlzIG1vZHVsZSBhbmQgd2hldGhlciBvciBub3QgaXQncyBpbmhlcmVudGx5IHRpZWQgdG8gc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUuIElzIHRoaXMgc29tZXRoaW5nIHRoYXQncyBvbmx5IHJlbGV2YW50IG9uIHN5c3RlbXMgd2l0aCBhIHNwZWNpZmljIFdpLUZpIGNoaXA/IEkgbmVlZCB0byBrbm93IHRoZSBicmVhZHRoIG9mIGFwcGxpY2FiaWxpdHkuXG5cblRvIGFjaGlldmUgdGhpcyB1bmRlcnN0YW5kaW5nLCBJJ2xsIHN0YXJ0IHdpdGggdGhlIHN0YW5kYXJkIGFwcHJvYWNoIGZvciB0aGlzIGtpbmQgb2Yga2VybmVsIGludmVzdGlnYXRpb24uIEknbGwgc2NvdXIgdGhlIE1ha2VmaWxlcyBhbmQgS2NvbmZpZyBmaWxlcyBmb3IgYm90aCBgSVdMX01MRGAgYW5kIHRoZSBtb3JlIGdlbmVyYWwgYGl3bHdpZmkvbWxkYCBzdHJpbmdzLiBUaGlzIGlzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyB3aWxsIGxpa2VseSBiZSBkZWZpbmVkLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGZpcnN0IGhhbmRsZSBvbiBpdHMgZGVwZW5kZW5jaWVzIGFuZCBpdHMgcGxhY2UgaW4gdGhlIGdyZWF0ZXIga2VybmVsIGVjb3N5c3RlbS4gRnJvbSB0aGVyZSwgSSBjYW4gc3RhcnQgdG8gYnVpbGQgYSBjbGVhcmVyIHBpY3R1cmUgb2YgaXRzIHB1cnBvc2UgYW5kIGZ1bmN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDUxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzk6MzkuNjEwNzYzMTY1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4Mjc3MDA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19JV0xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExMDUgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMi0jIGNvbW1vblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfSVdMV0lGSSlcXHQrPSBpd2x3aWZpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQtaXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWlvLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9MTY9Q0ZMQUdTX3BjaWUvZHJ2Lm8gKz0gLVduby1vdmVycmlkZS1pbml0XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTE4LSMgY29tYmluZWQgTUFDL1JGIGNvbmZpZ3VyYXRpb25zXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxOTppd2x3aWZpLSQoQ09ORklHX0lXTERWTSkgKz0gY2ZnLzEwMDAubyBjZmcvMjAwMC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyMDppd2x3aWZpLSQoQ09ORklHX0lXTERWTSkgKz0gY2ZnLzUwMDAubyBjZmcvNjAwMC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyMTppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnLzcwMDAubyBjZmcvODAwMC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0yMi0jIE1BQyBjb25maWd1cmF0aW9uc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjM6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy85MDAwLm8gY2ZnLzIyMDAwLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI0Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvYXgyMTAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjU6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy9iei5vIGNmZy9zYy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNjppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgKz0gY2ZnL2J6Lm8gY2ZnL3NjLm8gY2ZnL2RyLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTI3LSMgUkYgY29uZmlndXJhdGlvbnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI4Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvcmYtamYubyBjZmcvcmYtaHIubyBjZmcvcmYtZ2Yub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mjk6aXdsd2lmaS0kKENPTkZJR19JV0xNTEQpICs9IGNmZy9yZi1mbS5vIGNmZy9yZi13aC5vIGNmZy9yZi1wZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0zMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9MzY9aXdsd2lmaS1vYmpzXFx0XFx0Kz0gZncvcmVndWxhdG9yeS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozNzppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gZncvcGFnaW5nLm8gZncvc21lbS5vIGZ3L2luaXQub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzg6aXdsd2lmaS0kKENPTkZJR19JV0xNTEQpICs9IGZ3L3NtZW0ubyBmdy9pbml0Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTM5LWl3bHdpZmktJChDT05GSUdfQUNQSSkgKz0gZncvYWNwaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZT00MD1pd2x3aWZpLSQoQ09ORklHX0VGSSlcXHQrPSBmdy91ZWZpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQxOml3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERUJVR0ZTKSArPSBmdy9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9NDM9aXdsd2lmaS1vYmpzICs9ICQoaXdsd2lmaS1tKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0NTppd2x3aWZpLSQoQ09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkcpICs9IGl3bC1kZXZ0cmFjZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlPTQ3PWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfSVdMRFZNKVxcdCs9IGR2bS9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjUwOm9iai0kKENPTkZJR19JV0xNVk0pXFx0Kz0gbXZtL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NTE6b2JqLSQoQ09ORklHX0lXTE1FSSlcXHQrPSBtZWkvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo1MjpvYmotJChDT05GSUdfSVdMTUxEKVxcdCs9IG1sZC9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NTQ6b2JqLSQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpICs9IHRlc3RzL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZS0yLSMgRFZNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGU6MzpvYmotJChDT05GSUdfSVdMRFZNKVxcdCs9IGl3bGR2bS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGUtNC1pd2xkdm0tb2Jqc1xcdFxcdCs9IG1haW4ubyBycy5vIG1hYzgwMjExLm8gdWNvZGUubyB0eC5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZT05PWl3bGR2bS1vYmpzXFx0XFx0Kz0gcnhvbi5vIGRldmljZXMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL01ha2VmaWxlLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL01ha2VmaWxlOjExOml3bGR2bS0kKENPTkZJR19JV0xXSUZJX0xFRFMpICs9IGxlZC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGU6MTI6aXdsZHZtLSQoQ09ORklHX0lXTFdJRklfREVCVUdGUykgKz0gZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGUtMTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaD0yMjU9c3RhdGljIGlubGluZSBib29sIGl3bF9hZHZhbmNlZF9idF9jb2V4aXN0KHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oLTIzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDoyMzE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtMjMyLWNvbnN0IGNoYXIgKml3bF9nZXRfdHhfZmFpbF9yZWFzb24odTMyIHN0YXR1cyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaD0zMzU9aW50IGl3bF9hbGl2ZV9zdGFydChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oLTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDozMzc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtMzM4LXZvaWQgaXdsX3ByaW50X3J4X2NvbmZpZ19jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg9NDA3PWludCBpd2xfcmVhZF9lZXByb20oc3RydWN0IGl3bF90cmFucyAqdHJhbnMsIHU4ICoqZWVwcm9tLCBzaXplX3QgKmVlcHJvbV9zaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6NDA5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDEwLXZvaWQgaXdsX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oPTQxMj1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MTMtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKSB7IH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDo0MTQ6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6NDE2OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oLTQxNy0jZGVmaW5lIElXTF9ERUJVR19RVUlFVF9SRktJTEwobSwgZm10LCBhcmdzLi4uKVxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oPTQzMD1kbyB7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDM2LX0gd2hpbGUgKDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6NDM3OiNlbmRpZlxcdFxcdFxcdFxcdC8qIENPTkZJR19JV0xXSUZJX0RFQlVHICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDM4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIxNTQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2VjaG9fdGVzdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTcxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTcyLXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19sb2dfZXZlbnRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzAzPURFQlVHRlNfV1JJVEVfRklMRV9PUFMoZndfcmVzdGFydCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzMDQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzMDUtREVCVUdGU19SRUFEX1dSSVRFX0ZJTEVfT1BTKGxvZ19ldmVudCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjMxMz12b2lkIGl3bF9kYmdmc19yZWdpc3RlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2RpcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzU1LVxcdERFQlVHRlNfQUREX0ZJTEUoZndfcmVzdGFydCwgZGlyX2RlYnVnLCAwMjAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjM1NjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1Ny1cXHRERUJVR0ZTX0FERF9GSUxFKGxvZ19ldmVudCwgZGlyX2RlYnVnLCAwNjAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oPTYyNz1zdHJ1Y3QgaXdsX3ByaXYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtNzY1LVxcdFxcdHN0cnVjdCBzdGF0aXN0aWNzX3R4IHR4O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oOjc2NjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTc2Ny1cXHRcXHRzdHJ1Y3Qgc3RhdGlzdGljc19idF9hY3Rpdml0eSBidF9hY3Rpdml0eTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTc3MS1cXHR9IHN0YXRpc3RpY3M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6NzcyOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtNzczLVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6ODQ4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtODQ5LVxcdC8qIGRlYnVnZnMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTg1My1cXHR2b2lkICp3b3dsYW5fc3JhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaDo4NTQ6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6ODY5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtODcwLVxcdHN0cnVjdCBsZWRfY2xhc3NkZXYgbGVkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmg9MTE9c3RydWN0IGl3bF9wcml2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmgtMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmg6MTk6I2lmZGVmIENPTkZJR19JV0xXSUZJX0xFRFNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuaC0yMC12b2lkIGl3bGFnbl9sZWRfZW5hYmxlKHN0cnVjdCBpd2xfcHJpdiAqcHJpdik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTQxOD1zdGF0aWMgaW50IGl3bGFnbl9tYWNfcmVzdW1lKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy00NDItXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjQ0MzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDQ0LVxcdGNvbnN0IHN0cnVjdCBmd19pbWcgKmltZztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6NDgxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy00ODItXFx0aW1nID0gXFx1MDAyNnByaXYtXFx1MDAzZWZ3LVxcdTAwM2VpbWdbSVdMX1VDT0RFX1dPV0xBTl07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9MTEzMj1zdGF0aWMgdm9pZCBpd2xfdW5pbml0X2RydihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTEzNy1cXHRpd2xfY2FsaWJfZnJlZV9yZXN1bHRzKHByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTM4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExMzktXFx0a2ZyZWUocHJpdi1cXHUwMDNld293bGFuX3NyYW0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTExNTc9c3RhdGljIHZvaWQgaXdsX29wdGlvbl9jb25maWcoc3RydWN0IGl3bF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTU4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE1OTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2MDpcXHRJV0xfSU5GTyhwcml2LCBcXFwiQ09ORklHX0lXTFdJRklfREVCVUcgZW5hYmxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjEtI2Vsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2MjpcXHRJV0xfSU5GTyhwcml2LCBcXFwiQ09ORklHX0lXTFdJRklfREVCVUcgZGlzYWJsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTYzLSNlbmRpZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTY1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNjY6XFx0SVdMX0lORk8ocHJpdiwgXFxcIkNPTkZJR19JV0xXSUZJX0RFQlVHRlMgZW5hYmxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjctI2Vsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2ODpcXHRJV0xfSU5GTyhwcml2LCBcXFwiQ09ORklHX0lXTFdJRklfREVCVUdGUyBkaXNhYmxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjktI2VuZGlmXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNzE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNzI6XFx0SVdMX0lORk8ocHJpdiwgXFxcIkNPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HIGVuYWJsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTczLSNlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNzQ6XFx0SVdMX0lORk8ocHJpdiwgXFxcIkNPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HIGRpc2FibGVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTE3NS0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xODExPWludCBpd2xfZHVtcF9uaWNfZXZlbnRfbG9nKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgYm9vbCBmdWxsX2xvZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xODc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxODc3OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xODc4LVxcdGlmIChidWYpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9ODg9c3RhdGljIHZvaWQgaXdsYWduX3J4X3BtX3NsZWVwX25vdGlmKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtOTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6OTE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy05Mi1cXHRzdHJ1Y3QgaXdsX3J4X3BhY2tldCAqcGt0ID0gcnhiX2FkZHIocnhiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9MTA5PXN0YXRpYyB2b2lkIGl3bGFnbl9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0xMTMtXFx0c3RydWN0IGl3bGFnbl9iZWFjb25fbm90aWYgKmJlYWNvbiA9ICh2b2lkICopcGt0LVxcdTAwM2VkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6MTE0OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtMTE1LVxcdHUxNiBzdGF0dXMgPSBsZTE2X3RvX2NwdShiZWFjb24tXFx1MDAzZWJlYWNvbl9ub3RpZnlfaGRyLnN0YXR1cy5zdGF0dXMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYz0yMzU9c3RhdGljIHZvaWQgaXdsYWduX3J4X2NhbGNfbm9pc2Uoc3RydWN0IGl3bF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0yNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYzoyNzY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jLTI3Ny0vKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYz0zNDI9c3RhdGljIHZvaWQgaXdsYWduX3J4X3N0YXRpc3RpY3Moc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0zNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYzozNzY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jLTM3Ny1cXHRcXHQvKiBoYW5kbGUgdGhpcyBleGNlcHRpb24gZGlyZWN0bHkgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNDE2LVxcdG1lbWNweShcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdGlzdGljcy50eCwgdHgsIHNpemVvZigqdHgpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjQxNzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNDE4LVxcdGlmIChidF9hY3Rpdml0eSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9NDQ1PXN0YXRpYyB2b2lkIGl3bGFnbl9yeF9yZXBseV9zdGF0aXN0aWNzKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNDUxLVxcdGlmIChsZTMyX3RvX2NwdShzdGF0cy1cXHUwMDNlZmxhZykgXFx1MDAyNiBVQ09ERV9TVEFUSVNUSUNTX0NMRUFSX01TSykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6NDUyOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy00NTMtXFx0XFx0bWVtc2V0KFxcdTAwMjZwcml2LVxcdTAwM2VhY2N1bV9zdGF0cywgMCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYz04MzI9c3RhdGljIGludCBpd2xfZnVsbF9yeG9uX3JlcXVpcmVkKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYy04ODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jOjg4NzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeG9uLmMtODg4LXZvaWQgaXdsX3ByaW50X3J4X2NvbmZpZ19jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jPTIzMj1zdGF0aWMgdm9pZCBpd2xfcnhfcmVwbHlfc2NhbihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtMjM0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6MjM1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYy0yMzYtXFx0c3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdCA9IHJ4Yl9hZGRyKHJ4Yik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM9MjYyPXN0YXRpYyB2b2lkIGl3bF9yeF9zY2FuX3Jlc3VsdHNfbm90aWYoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTI2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jOjI2NTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtMjY2LVxcdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QgPSByeGJfYWRkcihyeGIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmM9MTI2PWJvb2wgaXdsX2lzX2h0NDBfdHhfYWxsb3dlZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYy0xMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmM6MTMzOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmMtMTM0LVxcdGlmIChwcml2LVxcdTAwM2VkaXNhYmxlX2h0NDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYz03MzE9dm9pZCBpd2xfZGVhbGxvY19iY2FzdF9zdGF0aW9ucyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYy03NDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmM6NzUwOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jLTc1MS1zdGF0aWMgdm9pZCBpd2xfZHVtcF9scV9jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYz0yMzA9c3RhdGljIHZvaWQgaXdsX2xlZ2FjeV90dF9oYW5kbGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgczMyIHRlbXAsIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTIzNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jOjIzNTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTIzNi1cXHRpZiAoKHR0LVxcdTAwM2V0dF9wcmV2aW91c190ZW1wKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYy0yNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYzoyNTY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYy0yNTctXFx0dHQtXFx1MDAzZXR0X3ByZXZpb3VzX3RlbXAgPSB0ZW1wO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYz0zMzU9c3RhdGljIHZvaWQgaXdsX2FkdmFuY2VfdHRfaGFuZGxlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHMzMiB0ZW1wLCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYy0zNTgtXFx0XFx0ICAgIHRlbXAgXFx1MDAzYz0gdHJhbnNhY3Rpb24tXFx1MDAzZXR0X2hpZ2gpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jOjM1OTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTM2MC1cXHRcXHRcXHRpZiAoKHR0LVxcdTAwM2V0dF9wcmV2aW91c190ZW1wKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaD04NT1zdHJ1Y3QgaXdsX3R0X21nbXQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaC04OS1cXHRib29sIGN0X2tpbGxfdG9nZ2xlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0Lmg6OTA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaC05MS1cXHRzMzIgdHRfcHJldmlvdXNfdGVtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM9MjYwPWludCBpd2xhZ25fdHhfc2tiKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtMjg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM6Mjg3OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtMjg4LVxcdGlmIChpZWVlODAyMTFfaXNfYXV0aChmYykpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jPTgwNz1zdGF0aWMgdm9pZCBpd2xhZ25faHdyYXRlX3RvX3R4X2NvbnRyb2woc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIgcmF0ZV9uX2ZsYWdzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy04MjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYzo4Mjc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy04MjgtY29uc3QgY2hhciAqaXdsX2dldF90eF9mYWlsX3JlYXNvbih1MzIgc3RhdHVzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy04NjQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM6ODY1OiNlbmRpZiAvKiBDT05GSUdfSVdMV0lGSV9ERUJVRyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtODY2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYz05MjA9c3RhdGljIHZvaWQgaXdsX3J4X3JlcGx5X3R4X2FnZyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTk4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jOjk4MTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTk4Mi0jZGVmaW5lIEFHR19UWF9TVEFURV9GQUlMKHgpIGNhc2UgQUdHX1RYX1NUQVRFXyAjIyB4OiByZXR1cm4gI3hcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM9OTg0PWNvbnN0IGNoYXIgKml3bF9nZXRfYWdnX3R4X2ZhaWxfcmVhc29uKHUxNiBzdGF0dXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTEwMDUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM6MTAwNjojZW5kaWYgLyogQ09ORklHX0lXTFdJRklfREVCVUcgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTEwMDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5jPTI0Mjk9dm9pZCBpd2xfZndfZGJnX3N0b3BfcmVzdGFydF9yZWNvcmRpbmcoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuYy0yNDQ3LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5jOjI0NDg6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5jLTI0NDktXFx0aWYgKCFyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg9MTc5PXZvaWQgaXdsX2Z3X2RiZ19zdG9wX3Jlc3RhcnRfcmVjb3JkaW5nKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTgzOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xODQtc3RhdGljIGlubGluZSB2b2lkIGl3bF9md19zZXRfZGJnX3JlY19vbihzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oPTIzNT1pbnQgaXdsX2Z3X3NlbmRfdGltZXN0YW1wX21hcmtlcl9jbWQoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTIzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjIzNzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjM4LXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfZndfY2FuY2VsX3RpbWVzdGFtcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oPTI2OT1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX2Z3X3Jlc3VtZV90aW1lc3RhbXAoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0KSB7fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MjcxOiNlbmRpZiAvKiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0yNzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaC04LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5oOjk6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaC0xMC12b2lkIGl3bF9md3J0X2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5oPTE0PXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfZndydF9kYmdmc19yZWdpc3RlcihzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaC0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaDoxNzojZW5kaWYgLyogQ09ORklHX0lXTFdJRklfREVCVUdGUyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9ydW50aW1lLmg9MTQ4PXN0cnVjdCBpd2xfZndfcnVudGltZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0xOTMtXFx0c3RydWN0IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoxOTQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0xOTUtXFx0XFx0c3RydWN0IGRlbGF5ZWRfd29yayB3aztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvcnVudGltZS5oLTE5OS1cXHR9IHRpbWVzdGFtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoyMDA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0yMDEtXFx0Ym9vbCB0cGNfZW5hYmxlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoyMDI6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0yMDMtXFx0c3RydWN0IGl3bF9zYXJfcHJvZmlsZSBzYXJfcHJvZmlsZXNbQklPU19TQVJfTUFYX1BST0ZJTEVfTlVNXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oPTUxMz1zdHJ1Y3QgaXdsX2Rldl9pbmZvIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTUzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaDo1MzI6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNTMzLWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX2Rldl9pbmZvIGl3bF9kZXZfaW5mb190YWJsZVtdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg9Njk1PWV4dGVybiBjb25zdCBjaGFyIGl3bF9heDIyMV9uYW1lW107XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg6Njk2OiNpZiBJU19FTkFCTEVEKENPTkZJR19JV0xEVk0pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNjk3LWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX3JmX2NmZyBpd2w1MzAwX2Fnbl9jZmc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaD03MjU9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpd2xfcmZfY2ZnIGl3bDEzNV9iZ25fY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjcyNjojZW5kaWYgLyogQ09ORklHX0lXTERWTSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjcyNzojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTVZNKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTcyOC1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsNzI2MF9jZmc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaD03NDM9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpd2xfcmZfY2ZnIGl3bF9yZl9nZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaC03NDQtI2RlZmluZSBpd2xfcmZfb3QgaXdsX3JmX2hyXzgwbWh6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg6NzQ1OiNlbmRpZiAvKiBDT05GSUdfSVdMTVZNICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjc0NzojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTUxEKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTc0OC1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsX3JmX2ZtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg9NzUzPWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX3JmX2NmZyBpd2xfcmZfcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzU0LSNkZWZpbmUgaXdsX3JmX3BlX25vX3VociBpd2xfcmZfZm1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaDo3NTU6I2VuZGlmIC8qIENPTkZJR19JV0xNTEQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaC03NTYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTY0PUlXTF9FWFBPUlRfU1lNQk9MKF9faXdsX2Vycik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy02NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjY2OiNpZiBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFQlVHKSB8fCBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtNjctdm9pZCBfX2l3bF9kYmcoc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy03Ny1cXHR2YWYudmEgPSBcXHUwMDI2YXJncztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjc4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtNzktXFx0aWYgKGl3bF9oYXZlX2RlYnVnX2xldmVsKGxldmVsKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xNj1zdGF0aWMgaW5saW5lIGJvb2wgaXdsX2hhdmVfZGVidWdfbGV2ZWwodTMyIGxldmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTg6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xOS1cXHRyZXR1cm4gaXdsd2lmaV9tb2RfcGFyYW1zLmRlYnVnX2xldmVsIFxcdTAwMjYgbGV2ZWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oPTM3PXZvaWQgX19pd2xfY3JpdChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBfX3ByaW50ZigyLCAzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDo3MDojaWYgZGVmaW5lZChDT05GSUdfSVdMV0lGSV9ERUJVRykgfHwgZGVmaW5lZChDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lORylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTcxLXZvaWQgX19pd2xfZGJnKHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9ODM9ZG8ge1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtOTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMDA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMDEtI2RlZmluZSBpd2xfcHJpbnRfaGV4X2R1bXAobSwgbGV2ZWwsIHAsIGxlbilcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xMDI9ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMDgtI2RlZmluZSBpd2xfcHJpbnRfaGV4X2R1bXAobSwgbGV2ZWwsIHAsIGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjEwOTojZW5kaWZcXHRcXHRcXHRcXHQvKiBDT05GSUdfSVdMV0lGSV9ERUJVRyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjctICpcXHQvc3lzL21vZHVsZS9pd2x3aWZpL3BhcmFtZXRlcnMvZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjEyODogKiB3aGVuIENPTkZJR19JV0xXSUZJX0RFQlVHPXkuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjktICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEzMC0gKlxcdC9zeXMva2VybmVsL2RlYnVnL3BoeTAvaXdsd2lmaS9kZWJ1Zy9kZWJ1Z19sZXZlbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTMxOiAqIHdoZW4gQ09ORklHX0lXTFdJRklfREVCVUdGUz15LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTMyLSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oPTQ5PXN0YXRpYyBpbmxpbmUgc2l6ZV90IGl3bF9yeF90cmFjZV9sZW4oY29uc3Qgc3RydWN0IGl3bF90cmFucyAqdHJhbnMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oLTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmg6Nzk6I2lmICFkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKSB8fCBkZWZpbmVkKF9fQ0hFQ0tFUl9fKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtODAtI3VuZGVmIFRSQUNFX0VWRU5UXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oPTg3PXN0YXRpYyBpbmxpbmUgdm9pZCB0cmFjZV8gIyMgbmFtZShwcm90bykge31cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaDo5OTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oLTEwMC1ERUNMQVJFX1RSQUNFUE9JTlQoaXdsd2lmaV9kZXZfcngpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaD0xMDY9c3RhdGljIGlubGluZSB2b2lkIG1heWJlX3RyYWNlX2l3bHdpZmlfZGV2X3J4KHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaC0xMDgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmg6MTA5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtMTEwLVxcdGlmICh0cmFjZXBvaW50X2VuYWJsZWQoaXdsd2lmaV9kZXZfcngpIHx8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0zNT1NT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6Mzc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0zOC1zdGF0aWMgc3RydWN0IGRlbnRyeSAqaXdsX2RiZ2ZzX3Jvb3Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz01NT1zdHJ1Y3QgaXdsX2RydiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy02Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzo2ODojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTY5LVxcdHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2RydjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTc1PWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtNzctXFx0TVZNX09QX01PREUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6Nzg6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTE1MRClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy03OS1cXHRNTERfT1BfTU9ERSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTg1PXN0YXRpYyBzdHJ1Y3QgaXdsd2lmaV9vcG1vZGVfdGFibGUge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtOTEtXFx0W01WTV9PUF9NT0RFXSA9IHsgLm5hbWUgPSBcXFwiaXdsbXZtXFxcIiwgLm9wcyA9IE5VTEwgfSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzo5MjojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTUxEKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTkzLVxcdFtNTERfT1BfTU9ERV0gPSB7IC5uYW1lID0gXFxcIml3bG1sZFxcXCIsIC5vcHMgPSBOVUxMIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0xNTY4PV9pd2xfb3BfbW9kZV9zdGFydChzdHJ1Y3QgaXdsX2RydiAqZHJ2LCBzdHJ1Y3QgaXdsd2lmaV9vcG1vZGVfdGFibGUgKm9wKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTU3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoxNTgwOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTU4MS1cXHRcXHRkcnYtXFx1MDAzZWRiZ2ZzX29wX21vZGUgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIob3AtXFx1MDAzZW5hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0xNTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjE1OTU6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0xNTk2LVxcdFxcdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShkcnYtXFx1MDAzZWRiZ2ZzX29wX21vZGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MTYwOT1zdGF0aWMgdm9pZCBfaXdsX29wX21vZGVfc3RvcChzdHJ1Y3QgaXdsX2RydiAqZHJ2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTYxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoxNjE5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTYyMC1cXHRcXHRkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoZHJ2LVxcdTAwM2VkYmdmc19vcF9tb2RlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTE2MzI9c3RhdGljIHZvaWQgaXdsX3JlcV9md19jYWxsYmFjayhjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKnVjb2RlX3Jhdywgdm9pZCAqY29udGV4dClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE4OTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MTg5NDojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTUxEKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE4OTUtXFx0aWYgKGl3bF9kcnZfaXNfd2lmaTdfc3VwcG9ydGVkKGRydi1cXHUwMDNldHJhbnMpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MTk0OD1zdHJ1Y3QgaXdsX2RydiAqaXdsX2Rydl9zdGFydChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE5NjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MTk2NTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE5NjYtXFx0LyogQ3JlYXRlIHRoZSBkZXZpY2UgZGVidWdmcyBlbnRyaWVzLiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjAwMC1lcnJfZnc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjAwMTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIwMDItXFx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGRydi1cXHUwMDNlZGJnZnNfZHJ2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwMTA9dm9pZCBpd2xfZHJ2X3N0b3Aoc3RydWN0IGl3bF9kcnYgKmRydilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIwMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjAyOTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIwMzAtXFx0aXdsX3RyYW5zX2RlYnVnZnNfY2xlYW51cChkcnYtXFx1MDAzZXRyYW5zKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwOTc9c3RhdGljIGludCBfX2luaXQgaXdsX2Rydl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjIxMDQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTA1LVxcdC8qIENyZWF0ZSB0aGUgcm9vdCBvZiBpd2x3aWZpIGRlYnVnZnMgc3Vic3lzdGVtLiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjExNS1jbGVhbnVwX2RlYnVnZnM6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjExNjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMTctXFx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGl3bF9kYmdmc19yb290KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIxMjM9c3RhdGljIHZvaWQgX19leGl0IGl3bF9kcnZfZXhpdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEyNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMTI4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEyOS1cXHRkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoaXdsX2RiZ2ZzX3Jvb3QpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MjEzMj1tb2R1bGVfZXhpdChpd2xfZHJ2X2V4aXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjEzNDojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTM1LW1vZHVsZV9wYXJhbV9uYW1lZChkZWJ1ZywgaXdsd2lmaV9tb2RfcGFyYW1zLmRlYnVnX2xldmVsLCB1aW50LCAwNjQ0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5oPTg1PWJvb2wgaXdsX2Rydl9pc193aWZpN19zdXBwb3J0ZWQoc3RydWN0IGl3bF90cmFucyAqdHJhbnMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOTMtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2Lmg6OTQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX09QTU9ERV9NT0RVTEFSXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOTUtI2RlZmluZSBJV0xfRVhQT1JUX1NZTUJPTChzeW0pXFx0RVhQT1JUX1NZTUJPTF9OU19HUEwoc3ltLCBcXFwiSVdMV0lGSVxcXCIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaC05OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaDoxMDA6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtMTAxLSNkZWZpbmUgRVhQT1JUX1NZTUJPTF9JRl9JV0xXSUZJX0tVTklUKHN5bSlcXHRFWFBPUlRfU1lNQk9MX0lGX0tVTklUKHN5bSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWlvLmM9MjY5PXN0YXRpYyBpbnQgaXdsX2R1bXBfcmZoKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLCBjaGFyICoqYnVmKVxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE3OjM5OjM5LjY2OTA1MDYyM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjg0MTkwNDI3MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBpd2x3aWZpJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gcXVpY2tseSBhc3Nlc3MgYGl3bHdpZmlgJ3Mgc3VpdGFiaWxpdHkgZm9yIGZ1enppbmcgd2l0aGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLiBDYW4gd2UgZXZlbiAqcmVhY2gqIHRoaXMgZHJpdmVyIHVzaW5nIHR5cGljYWwgZnV6emluZyBzZXR1cHM/IEkgbmVlZCB0byBjb25zaWRlciBgV29ydGhGdXp6aW5nPWZhbHNlYCBjYXZlYXRzLCBhbmQgd2hhdCBjb25kaXRpb25zIHdvdWxkIG1ha2UgaXQgaW1wcmFjdGljYWwuXG5cbkEga2V5IGd1aWRlbGluZSBzcGVjaWZpZXM6IHBhdGNoZXMgYXJlIG5vdCB3b3J0aCBwdXJzdWluZyBpZiB0aGV5IGNvbnRhaW4gY29kZSB0aGF0J3MgZnVuZGFtZW50YWxseSB1bnJlYWNoYWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBUaGlzIGluY2x1ZGVzIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlIOKAkyB0aGluZ3MgbGlrZSBTbWFydE5JQ3MgYW5kIEdQVXMgdGhhdCBhcmUgb2ZmLWxpbWl0cyBpbiBRRU1VLlxuXG5BaCwgcmlnaHQg4oCTIGBpd2x3aWZpYC4uLiB0aGF0J3MgSW50ZWwncyBwcm9wcmlldGFyeSBkcml2ZXIgZm9yIHRob3NlIFdpLUZpIFBDSWUvU29DIGFkYXB0ZXJzLiBUaGUgQVgyMDBzLCBBWDIxMHMsIEJFMjAwcywgYW5kIHRoZSA3MjYwcy4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMgd2hldGhlciBzdGFuZGFyZCBRRU1VICplbXVsYXRlcyogdGhlIHJlbGV2YW50IGhhcmR3YXJlLiBObywgaXQgZG9lc24ndC4gUUVNVSBkb2VzICpub3QqIHByb3ZpZGUgYSBQQ0kgZGV2aWNlIGZvciBgaXdsd2lmaWAuXG5cbk5vdywgaG9sZCBvbi4gYG1hYzgwMjExX2h3c2ltYCBvZnRlbiBjb21lcyB1cCBpbiB0aGlzIGNvbnRleHQsIGJ1dCBpdCB1c2VzIGBtYWM4MDIxMWAg4oCTIGEgKmRpZmZlcmVudCogd2lyZWxlc3Mgc3RhY2suIFNvIGBtYWM4MDIxMWAgaXMgZm9yIHdpZmksIGJ1dCBgaXdsd2lmaWAgaGFzIGEgc3BlY2lmaWMgSFcgaW50ZXJmYWNlLiBJIG11c3QgY29uZmlybSB0aGF0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gbm90IGNvbmZ1c2luZyB0aGUgdHdvLlxuXG5BbHJpZ2h0LCBzbyB0aGUgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiBhbnkgdmlydHVhbCBidXNlcyBvciBzb2Z0d2FyZSBzaW11bGF0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciBgaXdsd2lmaWAgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwgb3IgUUVNVSBpdHNlbGYuIE15IGltbWVkaWF0ZSB0YXNrIGlzIHRvIHNlYXJjaCBmb3IgXCJ2aXJ0XCIgb3IgXCJzaW1cIiB3aXRoaW4gdGhlIGNvbnRleHQgb2YgYGl3bHdpZmlgLiBMZXQncyBzZWUgaWYgc29tZXRoaW5nIGV4aXN0cyB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA5MjMsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzk6NDguMDg4MDk2NDk5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzI3NTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNpbVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNz1jb25maWcgSVdMV0lGSV9ERUJVR1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTIwOlxcdCAgVG8gc2V0IGEgdmFsdWUsIHNpbXBseSBlY2hvIGFuIDgtYnl0ZSBoZXggdmFsdWUgdG8gdGhlIHNhbWUgZmlsZTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz03MTc9c3RhdGljIHZvaWQgaXdsX2ZpbmRfZGlzY29ubl9hbnRlbm5hKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyKiBhdmVyYWdlX3NpZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtNzc1LVxcdCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYzo3NzY6XFx0ICogVG8gYmUgc2FmZSwgc2ltcGx5IG1hc2sgb3V0IGFueSBjaGFpbnMgdGhhdCB3ZSBrbm93XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy03NzctXFx0ICogYXJlIG5vdCBvbiB0aGUgZGV2aWNlLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz04MjQ9c3RhdGljIHZvaWQgaXdsYWduX2dhaW5fY29tcHV0YXRpb24oc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTMtXFx0XFx0XFx0ICogICBub3QgdGhlIGZvcm1hdCBvZiBhbnkgaW50ZXJuYWwgZGV2aWNlIHJlZ2lzdGVycy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jOjg1NDpcXHRcXHRcXHQgKiAgIERvIG5vdCBjaGFuZ2UgdGhpcyBmb3JtYXQgZm9yIGUuZy4gNjA1MCBvciBzaW1pbGFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTUtXFx0XFx0XFx0ICogICBkZXZpY2VzLiAgQ2hhbmdlIGZvcm1hdCBvbmx5IGlmIG1vcmUgcmVzb2x1dGlvblxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01MDg9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTUzNy0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NTM4OiAqIFJFUExZX1JYT04gPSAweDEwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01MzktICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTU1PXN0cnVjdCBpd2xfcnhvbl9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01NzktLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjU4MDogKiBSRVBMWV9SWE9OX0FTU09DID0gMHgxMSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTgxLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTgyPXN0cnVjdCBpd2xfcnhvbl9hc3NvY19jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MDAtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYwMTogKiBSRVBMWV9SWE9OX1RJTUlORyA9IDB4MTQgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYwMi0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTYwMz1zdHJ1Y3QgaXdsX3J4b25fdGltZV9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MTMtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYxNDogKiBSRVBMWV9DSEFOTkVMX1NXSVRDSCA9IDB4NzIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYxNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NjkwPXN0cnVjdCBpd2xfYWNfcW9zIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA2LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo3MDc6ICogUkVQTFlfUU9TX1BBUkFNID0gMHgxMyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE0MzU9c3RydWN0IGl3bF9jb21wcmVzc2VkX2JhX3Jlc3Age1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDUyLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNDUzOiAqIFJFUExZX1RYX1BXUl9UQUJMRV9DTUQgPSAweDk3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDU0LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE1MjA9c3RydWN0IGl3bF9saW5rX3F1YWxfYWdnX3BhcmFtcyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDYtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE1NDc6ICogUkVQTFlfVFhfTElOS19RVUFMSVRZX0NNRCA9IDB4NGUgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTczND1zdHJ1Y3QgaXdsX2xpbmtfcXVhbGl0eV9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNzk1LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNzk2OiAqIFJFUExZX0JUX0NPTkZJRyA9IDB4OWIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE3OTctICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjAxOT1zdHJ1Y3QgaXdsX3NwZWN0cnVtX25vdGlmaWNhdGlvbiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIwNTEtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjIwNTI6ICogUE9XRVJfVEFCTEVfQ01EID0gMHg3NyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjA1My0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yMTIxPWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMTM1LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyMTM2OiAqIFJFUExZX0NBUkRfU1RBVEVfQ01EID0gMHhhMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjEzNy0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjQxNj1zdHJ1Y3QgaXdsYWduX2JlYWNvbl9ub3RpZiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI0MjMtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjI0MjQ6ICogUkVQTFlfVFhfQkVBQ09OID0gMHg5MSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjQyNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9Mjc1MD1zdHJ1Y3QgaXdsX21pc3NlZF9iZWFjb25fbm90aWYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNzcyLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyNzczOiAqIFNFTlNJVElWSVRZX0NNRCA9IDB4YTggKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI3NzQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MzAwOT1zdHJ1Y3QgaXdsX2VuaGFuY2Vfc2Vuc2l0aXZpdHlfY21kIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNS0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MzAxNjogKiBSRVBMWV9QSFlfQ0FMSUJSQVRJT05fQ01EID0gMHhiMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNy0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zMTc4PXN0cnVjdCBpd2xfY2FsaWJfY2hhaW5fbm9pc2VfZ2Fpbl9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMTkyLSAqIExFRHMgQ29tbWFuZCBcXHUwMDI2IFJlc3BvbnNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozMTkzOiAqIFJFUExZX0xFRFNfQ01EID0gMHg0OCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzE5NC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zOTAyPXN0cnVjdCBpd2xfd2lwYW5fcDJwX2NoYW5uZWxfc3dpdGNoX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTMtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjM5MTQ6ICogSW4gYmVhY29ucywgdGhlIE5vQSBzY2hlZHVsZSBpcyBzaW1wbHkgYXBwZW5kZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTUtICogdG8gdGhlIGZyYW1lIHdlIGdpdmUgdGhlIGRldmljZS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yOT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMwLVxcdC5yZWFkID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQsXFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozMTpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzItXFx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzctXFx0LndyaXRlID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzg6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM5LVxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDYtXFx0LnJlYWQgPSBpd2xfZGJnZnNfIyNuYW1lIyNfcmVhZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDc6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ4LVxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3JhbV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTM2OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMzctXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNjk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3dvd2xhbl9zcmFtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwLVxcdFxcdFxcdFxcdCAgICAgICBwcml2LVxcdTAwM2V3b3dsYW5fc3JhbSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXRpb25zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzNDpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1LVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19udm1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjI3MzpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjc0LVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9Mjc4PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jaGFubmVsc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzM3LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MzM4OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMzktXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNDM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXR1c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM3My1cXHRcXHR0ZXN0X2JpdChTVEFUVVNfRldfRVJST1IsIFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0dXMpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzc0OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzc1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNzc9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4X2hhbmRsZXJzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0MDE6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQwMi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQyOT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcW9zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTItXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0NTM6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQ1Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdGhlcm1hbF90aHJvdHRsaW5nX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg0LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDg1OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MTE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2Rpc2FibGVfaHQ0MF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUyMi1cXHRcXHRcXHRwcml2LVxcdTAwM2VkaXNhYmxlX2h0NDAgPyBcXFwiRGlzYWJsZWRcXFwiIDogXFxcIkVuYWJsZWRcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTIzOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTI0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MjY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3RlbXBlcmF0dXJlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTM1LVxcdHBvcyArPSBzY25wcmludGYoYnVmICsgcG9zLCBidWZzeiAtIHBvcywgXFxcIiVkXFxcXG5cXFwiLCBwcml2LVxcdTAwM2V0ZW1wZXJhdHVyZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjUzNjpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUzNy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTgyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zbGVlcF9sZXZlbF9vdmVycmlkZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5Ni1cXHRwb3MgPSBzY25wcmludGYoYnVmLCBidWZzeiwgXFxcIiVkXFxcXG5cXFwiLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjU5NzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5OC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjAwPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jdXJyZW50X3NsZWVwX2NvbW1hbmRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy02MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjYyMTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTYyMi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjY2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9yeF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEwOTQ6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTUtXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMDk5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV90eF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEyOTE6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTItXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMjk2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9nZW5lcmFsX3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQxMTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE0MTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX2J0X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQ5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQ5OTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTUwMC1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE1MDQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JlcGx5X3R4X2Vycm9yX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTY0MTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0Mi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE2NDY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3NlbnNpdGl2aXR5X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTcxOTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcyMC1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3MjU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NoYWluX25vaXNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTc3NjpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3Ny1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3ODE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Bvd2VyX3NhdmVfc3RhdHVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTgwMTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4MDItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Mjg9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3RyYWNpbmdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODQ2OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg0Ny19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTg3OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhvbl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4ODgtXFx0XFx0bGUzMl90b19jcHUocHJpdi1cXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZsYWdzKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4ODk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODkwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODkyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeG9uX2ZpbHRlcl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MDEtXFx0XFx0bGUzMl90b19jcHUocHJpdi1cXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZpbHRlcl9mbGFncykpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTAyOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkwMy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTkwNT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbWlzc2VkX2JlYWNvbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5MTc6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTE4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTQ2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19wbGNwX2RlbHRhX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTk1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTk1ODpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5NTktfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5ODU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JmX3Jlc2V0X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjAwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjAwNzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwMDgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwNDU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2J0X3RyYWZmaWNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDU1LVxcdFxcdHBvcyArPSBzY25wcmludGYoYnVmICsgcG9zLCBidWZzeiAtIHBvcywgXFxcIkJUIGNvZXggZGlzYWJsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMDU2OlxcdFxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA1Ny1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjA4NzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwODgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwOTA9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Byb3RlY3Rpb25fbW9kZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIxMDk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTEwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMTcyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19sb2dfZXZlbnRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgxLVxcdGlmIChyZXQgXFx1MDAzZSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTgyOlxcdFxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgzLVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjIxMz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2FsaWJfZGlzYWJsZWRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjM4OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjIzOS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTEzODg9c3RhdGljIGludCBpd2xhZ25fbWFjX2NoYW5nZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDYtXFx0LypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE0MDc6XFx0ICogVG8gc2ltcGxpZnkgdGhpcyBjb2RlLCBvbmx5IHN1cHBvcnQgY2hhbmdlcyBvbiB0aGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDgtXFx0ICogQlNTIGNvbnRleHQuIFRoZSBQQU4gY29udGV4dCBpcyB1c3VhbGx5IHJlYXNzaWduZWRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MjE1Nz1zdGF0aWMgdm9pZCByc19yYXRlX3NjYWxlX3BlcmZvcm0oc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0yNjAwLSAqICAgICAgIGlmIHRoZSBkcml2ZXIncyBpd2wtYWduLXJzIHJhdGUgc2NhbGluZyBhbGdvcml0aG0gaXMgdXNlZCwgaW5zdGVhZCBvZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MjYwMTogKiAgICAgICByYzgwMjExX3NpbXBsZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTI2MDItICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzA2MT1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMxNTg6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNTktXFx0a2ZyZWUoYnVmZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3NjYWxlX3RhYmxlX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2NS1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzE2NjpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2Ny1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjk9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMDEtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwMjpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwMy1cXHRrZnJlZShidWZmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIwNz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwOC1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zdGF0c190YWJsZV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwOTpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIxMC1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMyMTM9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIzMDpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzNC1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfcmVhZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMzU6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzYtXFx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jPTM2PXN0YXRpYyBpbnQgaXdsX3NlbmRfc2Nhbl9hYm9ydChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjAtXFx0XFx0ICogMiBmb3IgXFxcImZhaWx1cmVcXFwiLiAgQSBmYWlsdXJlIGNvbmRpdGlvbiBjYW4gYmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6NjE6XFx0XFx0ICogZHVlIHRvIHNpbXBseSBub3QgYmVpbmcgaW4gYW4gYWN0aXZlIHNjYW4gd2hpY2hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjItXFx0XFx0ICogY2FuIG9jY3VyIGlmIHdlIHNlbmQgdGhlIHNjYW4gYWJvcnQgYmVmb3JlIHdlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTI1Mj1lbnVtIGl3bF90b2ZfcmVzcG9uZGVyX2NmZ19mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI3OS0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MjgwOiAqXFx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI4MS0gKlxcdHRvIHRoaXMgZmllbGRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9Mjg3PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzE0LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDozMTU6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzE2LSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0zMjI9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjcge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zNTItICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjM1MzogKlxcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zNTQtICpcXHR0byB0aGlzIGZpZWxkXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTM2OT1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92OCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM5Ny0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6Mzk4OiAqXFx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM5OS0gKlxcdHRvIHRoaXMgZmllbGRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9NDE4PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y5IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDQ4LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDo0NDk6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDUwLSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD05Nz1lbnVtIGl3bF9wb3dlcl9mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTExMy0gKlxcdGlzIHVzZWQgYWxzbyB3aXRoIGEgbmV3XFx0cG93ZXIgQVBJIGZvciBkZXZpY2Ugd2lkZSBwb3dlciBzZXR0aW5ncy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjExNDogKiBQT1dFUl9UQUJMRV9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xMTUtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTU4PWVudW0gaXdsX2RldmljZV9wb3dlcl9mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE2Ni0gKiBzdHJ1Y3QgaXdsX2RldmljZV9wb3dlcl9jbWQgLSBkZXZpY2Ugd2lkZSBwb3dlciBjb21tYW5kLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTY3OiAqIERFVklDRV9QT1dFUl9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xNjgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTcyPXN0cnVjdCBpd2xfZGV2aWNlX3Bvd2VyX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE3OS0gKiBzdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWRfdjIgLSBwb3dlciBjb21tYW5kIFYyIGNvbnRhaW5pbmcgdUFQU0Qgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTgwOiAqIE1BQ19QTV9QT1dFUl9UQUJMRSA9IDB4QTkgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE4MS0gKiBAaWRfYW5kX2NvbG9yOlxcdE1BQyBjb250ZXh0IGlkZW50aWZpZXIsIFxcdTAwMjZlbnVtIGl3bF9jdHh0X2lkX2FuZF9jb2xvclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0yMjA9c3RydWN0IGl3bF9tYWNfcG93ZXJfY21kX3YyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMjQ3LSAqIHN0cnVjdCBpd2xfbWFjX3Bvd2VyX2NtZCAtIHBvd2VyIGNvbW1hbmRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjI0ODogKiBNQUNfUE1fUE9XRVJfVEFCTEUgPSAweEE5IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0yNDktICogQGlkX2FuZF9jb2xvcjpcXHRNQUMgY29udGV4dCBpZGVudGlmaWVyLCBcXHUwMDI2ZW51bSBpd2xfY3R4dF9pZF9hbmRfY29sb3JcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg9MTYxPXN0YXRpYyBpbmxpbmUgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTYyOl9pd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3Aoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTYzLVxcdFxcdFxcdFxcdHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjE3NTojZGVmaW5lIGl3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChmd3J0LCB3ZGV2LCB0cmlnKVxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjE3NjpcXHRfaXdsX2Z3X2RiZ190cmlnZ2VyX3NpbXBsZV9zdG9wKChmd3J0KSwgKHdkZXYpLFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE3Ny1cXHRcXHRcXHRcXHRcXHRpd2xfZndfZGJnX2dldF90cmlnZ2VyKChmd3J0KS1cXHUwMDNlZncsXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kZWJ1Z2ZzLmM9Mzc9c3RhdGljIHNzaXplX3QgX2l3bF9kYmdmc18jI25hbWUjI19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jLTUxLVxcdFxcdHJldHVybiBkYXRhLVxcdTAwM2VybGVuO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYzo1MjpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYy01My1cXHRcXHRcXHRcXHQgICAgICAgZGF0YS1cXHUwMDNlcmJ1ZiwgZGF0YS1cXHUwMDNlcmxlbik7XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg9MzEzPXN0cnVjdCB1ZWZpX2Nudl93cGZjX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmgtMzE5LSAqIFRoaXMgaXMga25vd24gdG8gYmUgYnJva2VuIG9uIHY0LjE5IGFuZCB0byB3b3JrIG9uIHY1LjQuICBVbnRpbCB3ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oOjMyMDogKiBmaWd1cmUgb3V0IHdoeSB0aGlzIGlzIHRoZSBjYXNlIGFuZCBob3cgdG8gbWFrZSBpdCB3b3JrLCBzaW1wbHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaC0zMjEtICogZGlzYWJsZSB0aGUgZmVhdHVyZSBpbiBvbGQga2VybmVscy5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTE3LSAqIFVzZSBpd2xfd3JpdGUzMigpIGFuZCBpd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg6MTg6ICogdGhlc2UgcHJvdmlkZSBzaW1wbGUgUENJIGJ1cyBhY2Nlc3MsIHdpdGhvdXQgd2FraW5nIHVwIHRoZSBNQUMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTktICogRG8gbm90IHVzZSBpd2xfd3JpdGVfZGlyZWN0MzIoKSBmYW1pbHkgZm9yIHRoZXNlIHJlZ2lzdGVycztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oPTMyMT1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTUwOS0gKiBEbyBub3QgdXNlIGl3bF93cml0ZTMyKCkvaXdsX3JlYWQzMigpIGZhbWlseSB0byBhY2Nlc3MgdGhlc2UgcmVnaXN0ZXJzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oOjUxMDogKiB0aGVzZSBwcm92aWRlIG9ubHkgc2ltcGxlIFBDSSBidXMgYWNjZXNzLCB3aXRob3V0IHdha2luZyB1cCB0aGUgTUFDLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTUxMS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9MTAyPWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTEzLSAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMTQ6ICogSWYgeW91IGFyZSBkZWZpbmluZyBhIG5ldyBkZWJ1ZyBjbGFzc2lmaWNhdGlvbiwgc2ltcGx5IGFkZCBpdCB0byB0aGUgI2RlZmluZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTE1LSAqIGxpc3QgaGVyZSBpbiB0aGUgZm9ybSBvZlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oPTIwPXN0cnVjdCBpd2xfcmZfY2ZnO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oLTM2LSAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oOjM3OiAqIFRoZSBvcGVyYXRpb25hbCBtb2RlIGhhcyBhIHZlcnkgc2ltcGxlIGxpZmUgY3ljbGUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oLTM4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jPTg2PXN0YXRpYyB1MzIgaXdsX2Rpdl9ieV9kYih1MzIgdmFsdWUsIHU4IGRiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy04OC1cXHQvKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmM6ODk6XFx0ICogMl4zMiAqIDEwKiooaSAvIDEwKSBmb3IgaSA9IFsxLCAxMF0sIHNraXBwaW5nIDAgYW5kIHNpbXBseSBzdG9wcGluZ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmMtOTAtXFx0ICogYXQgMTAgZEIgYW5kIGxvb3BpbmcgaW5zdGVhZCBvZiB1c2luZyBhIG11Y2ggbGFyZ2VyIHRhYmxlLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTE3NC0gKiBDU01FIGNhbiB0cmFuc21pdCBwYWNrZXRzLCB0aHJvdWdoIHRoZSBuZXRkZXYgdGhhdCBpdCBnZXRzIGZyb20gdGhlIHdpZmlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg6MTc1OiAqIGRyaXZlci4gSXQnbGwgc2VuZCBwYWNrZXQgaW4gdGhlIDgwMi4zIGZvcm1hdCBhbmQgc2ltcGx5IGNhbGxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtMTc2LSAqIGRldl9xdWV1ZV94bWl0Llxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oPTQyOD12b2lkIGl3bF9tZWlfc2V0X25ldGRldihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MzYtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg6NDM3OiAqIFRoaXMgZnVuY3Rpb24gZG9lc24ndCB0YWtlIGFueSBsb2NrLCBpdCBzaW1wbHkgdHJpZXMgdG8gY2F0Y2ggREhDUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MzgtICogcGFja2V0cyBzZW50IGJ5IHRoZSB3aWZpIGRyaXZlci4gSWYgdGhlIHBhY2tldCBpcyBhIERIQ1AgcGFja2V0LCBpdFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jPTE5MDA9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTAxLVxcdC53cml0ZSA9IGl3bF9tZWlfZGJnZnNfc2VuZF9zdGFydF9tZXNzYWdlX3dyaXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYzoxOTAyOlxcdC5vcGVuID0gc2ltcGxlX29wZW4sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MDMtXFx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jPTE5MTU9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX21laV9kYmdmc19yZXFfb3duZXJzaGlwX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkxNi1cXHQud3JpdGUgPSBpd2xfbWVpX2RiZ2ZzX3JlcV9vd25lcnNoaXBfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jOjE5MTc6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkxOC1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MzU9c3RhdGljIHNzaXplX3QgX2l3bF9kYmdmc18jI25hbWUjI19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC00OS1cXHRcXHRyZXR1cm4gZGF0YS1cXHUwMDNlcmxlbjtcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjUwOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC01MS1cXHRcXHRcXHRcXHQgICAgICAgZGF0YS1cXHUwMDNlYnVmLCBkYXRhLVxcdTAwM2VybGVuKTtcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MTAxPXN0YXRpYyBzc2l6ZV90IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC0xMTktXFx0XFx0LndyaXRlID0gX19pd2xfZGJnZnNfIyNuYW1lIyNfd3JpdGUsXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaDoxMjA6XFx0XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTEyMS1cXHRcXHQubGxzZWVrID0gZ2VuZXJpY19maWxlX2xsc2VlayxcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MTYyPXN0YXRpYyBzc2l6ZV90IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxNzozOTo0OC4xMzg0Mjk0MDZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxODAyODMzMDM2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBpd2x3aWZpIE1vZHVsZSBMb2FkaW5nIGFuZCBEZXZpY2UgQXR0YWNobWVudCoqXG5cblJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlIGd1dHMgb2YgdGhpcyBgaXdsd2lmaWAgbW9kdWxlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJPa2F5LCBob3cgKmV4YWN0bHkqIGlzIHRoaXMgdGhpbmcgbG9hZGVkIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgaG93IGRvZXMgaXQgZXN0YWJsaXNoIGl0cyByZWxhdGlvbnNoaXAgd2l0aCB0aGUgUENJIGRldmljZXMgaXQncyBzdXBwb3NlZCB0byBjb250cm9sP1wiIFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIG9wZXJhdGlvbiwgZXNwZWNpYWxseSBpZiBJJ20gdHJvdWJsZXNob290aW5nIG9yIHRyeWluZyB0byBpbnRlZ3JhdGUgYSBuZXcgZGV2aWNlLlxuXG5TbywgZmlyc3QgdGhpbmcgSSdsbCBkbyBpcyB6ZXJvIGluIG9uIHRoZSBrZXkgcmVnaXN0cmF0aW9uIHBvaW50cy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgYGdyZXBgIHRoZSBgaXdsd2lmaWAgc291cmNlIGZvciBlaXRoZXIgYHBjaV9yZWdpc3Rlcl9kcml2ZXJgIG9yIGBtb2R1bGVfcGNpX2RyaXZlcmAuIFRob3NlIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMsIGFuZCB0aGV5IGFyZSB3aGF0IEknZCBleHBlY3QgdG8gc2VlLiBUaGV5IGFyZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gY29uZmlybSBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBtb2R1bGUncyBvcGVyYXRpb25hbCBwYXRoLiBUaGF0IHdpbGwgcXVpY2tseSB0ZWxsIG1lIHdoZXJlIHRoZSBkcml2ZXIgaXMgYmVpbmcgcmVnaXN0ZXJlZCB3aXRoIHRoZSBQQ0kgc3Vic3lzdGVtLCBhbmQgd2hpY2ggZGV2aWNlcyBpdCdzIHNwZWNpZmljYWxseSBjb25maWd1cmVkIHRvIHN1cHBvcnQuIEZyb20gdGhlcmUsIEkgY2FuIGJlZ2luIHRvIHVucmF2ZWwgaXRzIGRldmljZSBwcm9iZSBhbmQgYXR0YWNoIGZ1bmN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ4ODYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxNzo0MDowNi4xNjY3NjI0NjdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzOTA3NDk2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfcmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MjA5Nz1zdGF0aWMgaW50IF9faW5pdCBpd2xfZHJ2X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjEwOTpcXHRlcnIgPSBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcigpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMTAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmg9MTE0MT1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX3RyYW5zX25vdGlmeV9md19lcnJvcihzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTE0OC0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaDoxMTQ5OmludCBfX211c3RfY2hlY2sgaXdsX3BjaV9yZWdpc3Rlcl9kcml2ZXIodm9pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaC0xMTUwLXZvaWQgaXdsX3BjaV91bnJlZ2lzdGVyX2RyaXZlcih2b2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYz0xMzM4PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBpd2xfcGNpX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYzoxMzQ3OmludCBfX211c3RfY2hlY2sgaXdsX3BjaV9yZWdpc3Rlcl9kcml2ZXIodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmMtMTM0OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzNDktXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmM6MTM1MDpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZpd2xfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzNTEtXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6NDA6MDYuNjA1ODQ2NTM5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjcyNjM4NDM1NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBUaG91Z2h0cyBvbiB0aGUgYGl3bHdpZmlgIERyaXZlcioqXG5cbk9rYXksIHNvIGBpd2x3aWZpYCByZWdpc3RlcnMgaXRzZWxmIGFzIGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IGBpd2xfcGNpX2RyaXZlcmAuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIHNjb3BlIG9mIHRoaXMgZHJpdmVyLiBJcyB0aGlzIHNvbGVseSBkZWRpY2F0ZWQgdG8gSW50ZWwgd2lyZWxlc3MgY2FyZHMgYW5kIHRoZWlyIFBDSSBpbnRlcmZhY2VzPyBHaXZlbiBteSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgZHJpdmVyIGFyY2hpdGVjdHVyZXMsIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGNvbmZpcm0gdGhpcyBzdXNwaWNpb24sIGFuZCBJJ2xsIGp1bXAgcmlnaHQgaW50byB0aGUgc291cmNlIGNvZGUgdG8gZ2V0IGEgZGVmaW5pdGl2ZSBhbnN3ZXIuIExldCdzIHN0YXJ0IHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuY2AuIFRoaXMgc2VlbXMgbGlrZSB0aGUgb2J2aW91cyBwbGFjZSB0byBiZWdpbiwgZ2l2ZW4gdGhlIGZvY3VzIG9uIFwicGNpZS5cIiBJJ20gZXhwZWN0aW5nIHRoaXMgZmlsZSB0byBob2xkIHRoZSBjb3JlIFBDSS1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiBhbmQgZnVuY3Rpb24gdGFibGUgZGVmaW5pdGlvbnMuIE15IGdvYWwgaXMgdG8gcXVpY2tseSB1bmRlcnN0YW5kIHRoZSBkcml2ZXIncyBwdXJwb3NlIGFuZCBpdHMgcG90ZW50aWFsIGxpbWl0YXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTc1NywiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE3OjQwOjEzLjg2OTY5OTIwM1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzY5NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEzMzAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEzMzA6XFx0c3RhdGljIHZvaWQgaXdsX3BjaV9kdW1wKHN0cnVjdCBkZXZpY2UgKmRldmljZSlcXG4xMzMxOlxcdHtcXG4xMzMyOlxcdFxcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXZpY2UpO1xcbjEzMzM6XFx0XFx0c3RydWN0IGl3bF90cmFucyAqdHJhbnMgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XFxuMTMzNDpcXHRcXG4xMzM1OlxcdFxcdGl3bF9vcF9tb2RlX2R1bXAodHJhbnMtXFx1MDAzZW9wX21vZGUpO1xcbjEzMzY6XFx0fVxcbjEzMzc6XFx0XFxuMTMzODpcXHRzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaXdsX3BjaV9kcml2ZXIgPSB7XFxuMTMzOTpcXHRcXHQubmFtZSA9IERSVl9OQU1FLFxcbjEzNDA6XFx0XFx0LmlkX3RhYmxlID0gaXdsX2h3X2NhcmRfaWRzLFxcbjEzNDE6XFx0XFx0LnByb2JlID0gaXdsX3BjaV9wcm9iZSxcXG4xMzQyOlxcdFxcdC5yZW1vdmUgPSBpd2xfcGNpX3JlbW92ZSxcXG4xMzQzOlxcdFxcdC5kcml2ZXIucG0gPSBJV0xfUE1fT1BTLFxcbjEzNDQ6XFx0XFx0LmRyaXZlci5jb3JlZHVtcCA9IGl3bF9wY2lfZHVtcCxcXG4xMzQ1OlxcdH07XFxuMTM0NjpcXHRcXG4xMzQ3OlxcdGludCBfX211c3RfY2hlY2sgaXdsX3BjaV9yZWdpc3Rlcl9kcml2ZXIodm9pZClcXG4xMzQ4OlxcdHtcXG4xMzQ5OlxcdFxcdGludCByZXQ7XFxuMTM1MDpcXHRcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZpd2xfcGNpX2RyaXZlcik7XFxuMTM1MTpcXHRcXHRpZiAocmV0KVxcbjEzNTI6XFx0XFx0XFx0cHJfZXJyKFxcXCJVbmFibGUgdG8gaW5pdGlhbGl6ZSBQQ0kgbW9kdWxlXFxcXG5cXFwiKTtcXG4xMzUzOlxcdFxcbjEzNTQ6XFx0XFx0cmV0dXJuIHJldDtcXG4xMzU1OlxcdH1cXG4xMzU2OlxcdFxcbjEzNTc6XFx0dm9pZCBpd2xfcGNpX3VucmVnaXN0ZXJfZHJpdmVyKHZvaWQpXFxuMTM1ODpcXHR7XFxuMTM1OTpcXHRcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNml3bF9wY2lfZHJpdmVyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6NDA6MTMuODY5ODM5MjkzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjUwMDY4NTM3ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjpcblxuKipJbnZlc3RpZ2F0aW5nIGl3bHdpZmkgVHJhbnNwb3J0IFR5cGVzKipcblxuT2theSwgc28gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSB0cmFuc3BvcnQgdHlwZXMgdXNlZCB3aXRoaW4gdGhlIGBpd2x3aWZpYCBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gc2VlIGlmIGFueSBub24tUENJIHRyYW5zcG9ydHMgaGF2ZSBjcmVwdCBpbi4gVGhlIG1vc3QgZGlyZWN0IGFwcHJvYWNoIGlzIHRvIGNoZWNrIHRoZSBgTWFrZWZpbGVgIGxvY2F0ZWQgaW4gdGhlIGBpd2x3aWZpYCBkaXJlY3RvcnkuIFRoaXMgZmlsZSBzaG91bGQgZGVmaW5lIHRoZSBidWlsZCBwcm9jZXNzIGFuZCBsaWtlbHkgaW5jbHVkZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvciBmaWxlIGluY2x1c2lvbiBiYXNlZCBvbiB0aGUgdHJhbnNwb3J0IHR5cGUuIEJ5IGV4YW1pbmluZyB0aGlzIGBNYWtlZmlsZWAsIEkgc2hvdWxkIGdldCBhIGNsZWFyIG92ZXJ2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjUwNywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6NDA6MTguODc2Njk1MzQyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwOTEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGVcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuICAgMjpcXHQjIGNvbW1vblxcbiAgIDM6XFx0b2JqLSQoQ09ORklHX0lXTFdJRkkpXFx0Kz0gaXdsd2lmaS5vXFxuICAgNDpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtaW8ub1xcbiAgIDU6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWRydi5vXFxuICAgNjpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtZGVidWcub1xcbiAgIDc6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLW52bS11dGlscy5vXFxuICAgODpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtdXRpbHMub1xcbiAgIDk6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLXBoeS1kYi5vIGl3bC1udm0tcGFyc2Uub1xcbiAgMTA6XFx0XFxuICAxMTpcXHQjIEJ1c1xcbiAgMTI6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gcGNpZS9jdHh0LWluZm8ubyBwY2llL2N0eHQtaW5mby12Mi5vIHBjaWUvZHJ2Lm8gcGNpZS91dGlscy5vXFxuICAxMzpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBwY2llL2dlbjFfMi9yeC5vIHBjaWUvZ2VuMV8yL3R4Lm8gcGNpZS9nZW4xXzIvdHJhbnMub1xcbiAgMTQ6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gcGNpZS9nZW4xXzIvdHJhbnMtZ2VuMi5vIHBjaWUvZ2VuMV8yL3R4LWdlbjIub1xcbiAgMTU6XFx0XFxuICAxNjpcXHRDRkxBR1NfcGNpZS9kcnYubyArPSAtV25vLW92ZXJyaWRlLWluaXRcXG4gIDE3OlxcdFxcbiAgMTg6XFx0IyBjb21iaW5lZCBNQUMvUkYgY29uZmlndXJhdGlvbnNcXG4gIDE5OlxcdGl3bHdpZmktJChDT05GSUdfSVdMRFZNKSArPSBjZmcvMTAwMC5vIGNmZy8yMDAwLm9cXG4gIDIwOlxcdGl3bHdpZmktJChDT05GSUdfSVdMRFZNKSArPSBjZmcvNTAwMC5vIGNmZy82MDAwLm9cXG4gIDIxOlxcdGl3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvNzAwMC5vIGNmZy84MDAwLm9cXG4gIDIyOlxcdCMgTUFDIGNvbmZpZ3VyYXRpb25zXFxuICAyMzpcXHRpd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnLzkwMDAubyBjZmcvMjIwMDAub1xcbiAgMjQ6XFx0aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy9heDIxMC5vXFxuICAyNTpcXHRpd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnL2J6Lm8gY2ZnL3NjLm9cXG4gIDI2OlxcdGl3bHdpZmktJChDT05GSUdfSVdMTUxEKSArPSBjZmcvYnoubyBjZmcvc2MubyBjZmcvZHIub1xcbiAgMjc6XFx0IyBSRiBjb25maWd1cmF0aW9uc1xcbiAgMjg6XFx0aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy9yZi1qZi5vIGNmZy9yZi1oci5vIGNmZy9yZi1nZi5vXFxuICAyOTpcXHRpd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgKz0gY2ZnL3JmLWZtLm8gY2ZnL3JmLXdoLm8gY2ZnL3JmLXBlLm9cXG4gIDMwOlxcdFxcbiAgMzE6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWRiZy10bHYub1xcbiAgMzI6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLXRyYW5zLm9cXG4gIDMzOlxcdFxcbiAgMzQ6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gZncvaW1nLm8gZncvbm90aWYtd2FpdC5vIGZ3L3JzLm9cXG4gIDM1OlxcdGl3bHdpZmktb2Jqc1xcdFxcdCs9IGZ3L2RiZy5vIGZ3L2RiZy1vbGQubyBmdy9wbnZtLm8gZncvZHVtcC5vXFxuICAzNjpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBmdy9yZWd1bGF0b3J5Lm9cXG4gIDM3OlxcdGl3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBmdy9wYWdpbmcubyBmdy9zbWVtLm8gZncvaW5pdC5vXFxuICAzODpcXHRpd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgKz0gZncvc21lbS5vIGZ3L2luaXQub1xcbiAgMzk6XFx0aXdsd2lmaS0kKENPTkZJR19BQ1BJKSArPSBmdy9hY3BpLm9cXG4gIDQwOlxcdGl3bHdpZmktJChDT05GSUdfRUZJKVxcdCs9IGZ3L3VlZmkub1xcbiAgNDE6XFx0aXdsd2lmaS0kKENPTkZJR19JV0xXSUZJX0RFQlVHRlMpICs9IGZ3L2RlYnVnZnMub1xcbiAgNDI6XFx0XFxuICA0MzpcXHRpd2x3aWZpLW9ianMgKz0gJChpd2x3aWZpLW0pXFxuICA0NDpcXHRcXG4gIDQ1OlxcdGl3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lORykgKz0gaXdsLWRldnRyYWNlLm9cXG4gIDQ2OlxcdFxcbiAgNDc6XFx0Y2NmbGFncy15ICs9IC1JJChzcmMpXFxuICA0ODpcXHRcXG4gIDQ5OlxcdG9iai0kKENPTkZJR19JV0xEVk0pXFx0Kz0gZHZtL1xcbiAgNTA6XFx0b2JqLSQoQ09ORklHX0lXTE1WTSlcXHQrPSBtdm0vXFxuICA1MTpcXHRvYmotJChDT05GSUdfSVdMTUVJKVxcdCs9IG1laS9cXG4gIDUyOlxcdG9iai0kKENPTkZJR19JV0xNTEQpXFx0Kz0gbWxkL1xcbiAgNTM6XFx0XFxuICA1NDpcXHRvYmotJChDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUUykgKz0gdGVzdHMvXFxuICA1NTpcXHRcXG4gIDU2OlxcdENGTEFHU19pd2wtZGV2dHJhY2UubyA6PSAtSSQoc3JjKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxNzo0MDoxOC44NzY3Njc1MjJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Njk4MjY1MTc2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBOb3QgV29ydGggRnV6emluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IGZ1enppbmcgd29ya3MgaW4gdGhlc2UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBJJ20gbGVhbmluZyB0b3dhcmRzIGRlZW1pbmcgdGhpcyBjaGFuZ2Ugbm90IHdvcnRoIGltbWVkaWF0ZSBmdXp6aW5nLiBIZXJlJ3MgbXkgcmVhc29uaW5nLCBwaWVjZSBieSBwaWVjZTpcblxuRmlyc3QsIGBpd2x3aWZpYCBhbmQgYElXTE1MRGAsIHRoZSBXaUZpIDcgTUxEIG9wLW1vZGUsIGFyZSBzcGVjaWZpY2FsbHkgdGllZCB0byBJbnRlbCBQQ0llIHdpcmVsZXNzIGhhcmR3YXJlLiBXZSdyZSB0YWxraW5nIHBoeXNpY2FsIGNhcmRzIGhlcmUsIGNvbm5lY3RlZCB2aWEgUENJZSAoYHBjaWUvZHJ2LmNgLCBgcGNpZS8uLi5gKS5cblxuTm93LCBjb25zaWRlcmluZyB0aGUgcnVsZXMgd2UgaGF2ZSBmb3IgZGV0ZXJtaW5pbmcgaWYgYSBwYXRjaCB3YXJyYW50cyBmdXp6aW5nLCBsZXQncyBnbyB0aHJvdWdoIHRoZSBjaGVja2xpc3QuIFRoZSBydWxlcyBleHBsaWNpdGx5IHN0YXRlIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY2hhbmdlcyByZWxhdGVkIHRvOiBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb21tZW50cywgbG9nZ2luZywgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBudW1lcmljIGNvbnN0YW50cyB0aGF0IGRvbid0IGFsdGVyIGZsb3csIG9yIHVucmVhY2hhYmxlIGNvZGUuIFVucmVhY2hhYmxlIGNvZGUgaXMgdGhlIGNyaXRpY2FsIHBhcnQgaGVyZS5cblxuSSdtIHRoaW5raW5nLCBpcyBgaXdsd2lmaWAgYWNjZXNzaWJsZSBpbiBhIHZpcnR1YWxpemVkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50PyBUaGUgYW5zd2VyIGlzIGEgY2xlYXIgbm8uIFFFTVUsIGluIGl0cyBzdGFuZGFyZCBjb25maWd1cmF0aW9uLCBkb2Vzbid0IGVtdWxhdGUgdGhlc2Ugc3BlY2lmaWMgSW50ZWwgd2lyZWxlc3MgTklDcy4gV2UgdXNlIGBtYWM4MDIxMV9od3NpbWAsIG9yIG90aGVyIHZpcnR1YWwgaW50ZXJmYWNlcyBvciBVU0IgZ2FkZ2V0IGFkYXB0ZXJzIHN1Y2ggYXMgdGhvc2UgYmFzZWQgb24gcnRsODE4OGV1LCBmb3IgZnV6emluZyBpbiBlbnZpcm9ubWVudHMgbGlrZSBTeXprYWxsZXIuIFZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlcnMgc3VjaCBhcyBpd2x3aWZpLCBhdGgxMGsgcGNpLCBhdGgxMWsgcGNpLCBydHc4OCBwY2ksIGV0YyBhcmUgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0J3Mgb3VyIGZ1enppbmcgZW52aXJvbm1lbnQuXG5cblNvLCB0aGlzIHBhdGNoIG1vZGlmaWVzIGBpd2xfbWxkX3Jlb3JkZXJgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AsIHNwZWNpZmljYWxseSB0byBhZGQgYSBib3VuZHMgY2hlY2sgb24gYGJhaWRgLiBUaGUgY29kZSBpcyBwYXJ0IG9mIHRoZSBgaXdsd2lmaWAgZHJpdmVyLCBhbmQgaXMgb25seSByZWFjaGVkIHdoZW4gcmVjZWl2aW5nIHdpcmVsZXNzIGZyYW1lcyBvbiAqcGh5c2ljYWwqIEludGVsIFdpRmkgaGFyZHdhcmUuXG5cbkdpdmVuIHRoYXQgdGhpcyByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCB0aGlzIGNvZGUgaXMgKnVucmVhY2hhYmxlKiBpbiB0aGUgZnV6emluZyBjb250ZXh0IHdlJ3JlIGNvbnNpZGVyaW5nLiBUaGUgZW52aXJvbm1lbnQgd2UncmUgd29ya2luZyBpbiBpcyB2aXJ0dWFsaXplZCwgYW5kIGxhY2tzIHRoZSBuZWNlc3NhcnkgcGh5c2ljYWwgY29tcG9uZW50LiBUaGVyZWZvcmUsIGFjY29yZGluZyB0byB0aGUgcnVsZXMsIEknbSBjb25maWRlbnQgaW4gY2FsbGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3ODkxLCJPdXRwdXRUb2tlbnMiOjEzMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE3OjQwOjI1Ljg1OTQyMDk2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ2NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGl3bF9tbGRfcmVvcmRlcigpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgIHRvIGFkZCBhIGJvdW5kcyBjaGVjayBmb3IgYGJhaWRgLiBUaGUgYGl3bHdpZmlgIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgSW50ZWwgUENJZSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJzLCB3aGljaCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgR0NFKS4gVGhlcmVmb3JlLCB0aGVzZSBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGl3bF9tbGRfcmVvcmRlcigpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgIHRvIGFkZCBhIGJvdW5kcyBjaGVjayBmb3IgYGJhaWRgLiBUaGUgYGl3bHdpZmlgIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgSW50ZWwgUENJZSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJzLCB3aGljaCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgR0NFKS4gVGhlcmVmb3JlLCB0aGVzZSBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6NDA6MjUuODU5NDQ4ODZaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow284wc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-31 17:19:51 +0000 UTC FinishedAt: 2026-08-31 17:40:26 +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+CgkJCTx0ZD4yMDI2LzA4LzMxIDE3OjM3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGl3bF9tbGRfcmVvcmRlcigpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgIHRvIGFkZCBhIGJvdW5kcyBjaGVjayBmb3IgYGJhaWRgLiBUaGUgYGl3bHdpZmlgIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgSW50ZWwgUENJZSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJzLCB3aGljaCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgR0NFKS4gVGhlcmVmb3JlLCB0aGVzZSBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGUwODhlMDY0MjI0NDIxOTZlMjcyMjRkMGM5NjgwN2RjOTg1NThjMDNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzMSAxNzozNzo1NCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5pbmRleCBlMzYyN2FkMDMyMWM4Li5hNDY0ZWJkZWM1N2YxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5AQCAtMSw2ICYjNDM7MSw2IEBAXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXG4gLypcbi0gKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvblxuJiM0MzsgKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNiBJbnRlbCBDb3Jwb3JhdGlvblxuICAqL1xuICNpbmNsdWRlIFwmIzM0O2FnZy5oXCYjMzQ7XG4gI2luY2x1ZGUgXCYjMzQ7c3RhLmhcJiMzNDtcbkBAIC0yMjIsNiAmIzQzOzIyMiwxMSBAQCBpd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxuIFx0aWYgKGJhaWQgPT0gSVdMX1JYX1JFT1JERVJfREFUQV9JTlZBTElEX0JBSUQpXG4gXHRcdHJldHVybiBJV0xfTUxEX1BBU1NfU0tCO1xuIFxuJiM0MztcdGlmIChJV0xfRldfQ0hFQ0sobWxkLCBiYWlkIFx1MDAzZT0gQVJSQVlfU0laRShtbGQtXHUwMDNlZndfaWRfdG9fYmEpLFxuJiM0MztcdFx0XHQgXCYjMzQ7R290IG91dC1vZi1yYW5nZSBCQUlEICV1IGluIHJlb3JkZXJfZGF0YT0weCV4XFxuXCYjMzQ7LFxuJiM0MztcdFx0XHQgYmFpZCwgcmVvcmRlcikpXG4mIzQzO1x0XHRyZXR1cm4gSVdMX01MRF9QQVNTX1NLQjtcbiYjNDM7XG4gXHQvKiBubyBzdGEgeWV0ICovXG4gXHRpZiAoV0FSTl9PTkNFKCFzdGEsXG4gXHRcdCAgICAgIFwmIzM0O0dvdCB2YWxpZCBCQUlEIHdpdGhvdXQgYSB2YWxpZCBzdGF0aW9uIGFzc2lnbmVkXFxuXCYjMzQ7KSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozNzwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyKClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AgdG8gYWRkIGEgYm91bmRzIGNoZWNrIGZvciBgYmFpZGAuIFRoZSBgaXdsd2lmaWAgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBJbnRlbCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlcnMsIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBHQ0UpLiBUaGVyZWZvcmUsIHRoZXNlIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZTA4OGUwNjQyMjQ0MjE5NmUyNzIyNGQwYzk2ODA3ZGM5ODU1OGMwMwpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBNb24gQXVnIDMxIDE3OjM3OjU0IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYwppbmRleCBlMzYyN2FkMDMyMWM4Li5hNDY0ZWJkZWM1N2YxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYwpAQCAtMSw2ICYjNDM7MSw2IEBACiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2UKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjQtMjAyNSBJbnRlbCBDb3Jwb3JhdGlvbgomIzQzOyAqIENvcHlyaWdodCAoQykgMjAyNC0yMDI2IEludGVsIENvcnBvcmF0aW9uCiAgKi8KICNpbmNsdWRlICYjMzQ7YWdnLmgmIzM0OwogI2luY2x1ZGUgJiMzNDtzdGEuaCYjMzQ7CkBAIC0yMjIsNiAmIzQzOzIyMiwxMSBAQCBpd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLAogCWlmIChiYWlkID09IElXTF9SWF9SRU9SREVSX0RBVEFfSU5WQUxJRF9CQUlEKQogCQlyZXR1cm4gSVdMX01MRF9QQVNTX1NLQjsKIAomIzQzOwlpZiAoSVdMX0ZXX0NIRUNLKG1sZCwgYmFpZCAmZ3Q7PSBBUlJBWV9TSVpFKG1sZC0mZ3Q7ZndfaWRfdG9fYmEpLAomIzQzOwkJCSAmIzM0O0dvdCBvdXQtb2YtcmFuZ2UgQkFJRCAldSBpbiByZW9yZGVyX2RhdGE9MHgleFxuJiMzNDssCiYjNDM7CQkJIGJhaWQsIHJlb3JkZXIpKQomIzQzOwkJcmV0dXJuIElXTF9NTERfUEFTU19TS0I7CiYjNDM7CiAJLyogbm8gc3RhIHlldCAqLwogCWlmIChXQVJOX09OQ0UoIXN0YSwKIAkJICAgICAgJiMzNDtHb3QgdmFsaWQgQkFJRCB3aXRob3V0IGEgdmFsaWQgc3RhdGlvbiBhc3NpZ25lZFxuJiMzNDspKQo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMjg3CgkJCQkJCQlvdXRwdXQ6IDIyCgkJCQkJCQl0aG91Z2h0czogMjk1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gYXNzZXNzIGlmIHRoaXMgcGF0Y2ggd2FycmFudHMgZnV6emluZyBlZmZvcnQuIEZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGl0JiMzOTtzIGV2ZW4gY2hhbmdpbmcuIExvb2tzIGxpa2UgdGhlIGZpbGUgaW4gcXVlc3Rpb24gaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgaXdsX21sZF9yZW9yZGVyKClgIGZ1bmN0aW9uLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhbiBvdXQtb2YtYm91bmRzIGNoZWNrIHVzaW5nIGBJV0xfRldfQ0hFQ0tgIG9uIGBiYWlkYCBhZ2FpbnN0IGBBUlJBWV9TSVpFKG1sZC0mZ3Q7ZndfaWRfdG9fYmEpYC4gSG1tLCBjbGFzc2ljLgoKTm93LCBsZXQmIzM5O3MgYXBwbHkgdGhlIG1lbnRhbCBjaGVja2xpc3QuIERvZXMgdGhpcyBmYWxsIHVuZGVyIGFueSBvZiBteSBlc3RhYmxpc2hlZCBmdXp6aW5nIGV4Y2x1c2lvbnM/IExldCBtZSBzZWUuLi4gJiMzNDtDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLi4uJiMzNDsgV2FpdCwgd2hhdCBkcml2ZXIgYXJlIHdlIGRlYWxpbmcgd2l0aD8gQWgsIGBpd2x3aWZpYCDigJMgdGhlIEludGVsIHdpcmVsZXNzIFdpRmkgZHJpdmVyLgoKVGhlIG1pbGxpb24tZG9sbGFyIHF1ZXN0aW9uOiBpcyBgaXdsd2lmaWAgc3VwcG9ydGVkIGluIGEgUUVNVSwgbWFjODAyMTFfaHdzaW0sIG9yIG90aGVyIHZpcnR1YWxpemVkIGVudmlyb25tZW50IHdpdGhvdXQgYWN0dWFsIEludGVsIFdpRmkgaGFyZHdhcmU/IFRoYXQmIzM5O3MgdGhlIGNydXggb2YgaXQuIERvZXMgYGl3bHdpZmlgIGhhdmUgYW55IG9mIGl0cyBvd24gdmlydHVhbGl6ZWQgY291bnRlcnBhcnRzIGxpa2UsIHNheSwgYGl3bG12bWAgb3IgaXMgaXQgcHVyZWx5IHJlbGlhbnQgb24gYSBwaHlzaWNhbCBJbnRlbCB3aXJlbGVzcyBjYXJkPyBJIGNhbiYjMzk7dCBpbW1lZGlhdGVseSByZWNhbGwuCgpJIG5lZWQgdG8gY29uZmlybSBpZiBpdCBjYW4gYmUgZW11bGF0ZWQuIFRpbWUgdG8gc3RhcnQgZGlnZ2luZyDigJMgYGl3bHdpZmlgLCBgaXdsbXZtYCwgYW5kIHBvc3NpYmx5IGV2ZW4gd2l0aGluIHRoZSBgaXdsd2lmaS9tbGRgIHN1YmRpcmVjdG9yeS4gSSYjMzk7bGwgbmVlZCB0byB1c2UgbXkgdXN1YWwgdG9vbHMgaGVyZSDigJMgbWF5YmUgYGdyZXBwZXJgIG9yIGp1c3QgYnJvd3NlIHRoZSBjb2RlIGRpcmVjdGx5LiBHb3R0YSBjaGVjayB0aG9zZSB2aXJ0dWFsL2VtdWxhdGVkIGhhcmR3YXJlIHBvc3NpYmlsaXRpZXMgYmVmb3JlIEkgZGVjaWRlIGlmIGZ1enppbmcgaXMgZmVhc2libGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aXdsX21sZF9yZW9yZGVyJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTk9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjEwOml3bF9tbGRfcmVvcmRlcl9yZWxlYXNlX2ZyYW1lcyhzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTEtXHRcdFx0ICAgICAgIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTEyLVx0XHRcdCAgICAgICBzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjEzOlx0XHRcdCAgICAgICBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNC1cdFx0XHQgICAgICAgdTE2IG5zc24pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxNjpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE3LVx0XHRcdTAwMjZiYWlkX2RhdGEtXHUwMDNlZW50cmllc1tyZW9yZGVyX2J1Zi1cdTAwM2VxdWV1ZSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM9NDI9c3RhdGljIHZvaWQgaXdsX21sZF9yZWxlYXNlX2ZyYW1lc19mcm9tX25vdGlmKHN0cnVjdCBpd2xfbWxkICptbGQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6NDY6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00Ny1cdHN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSAqYmFfZGF0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy03Ni1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjc3Olx0aXdsX21sZF9yZW9yZGVyX3JlbGVhc2VfZnJhbWVzKG1sZCwgbGlua19zdGEtXHUwMDNlc3RhLCBuYXBpLCBiYV9kYXRhLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNzgtXHRcdFx0XHQgICAgICAgcmVvcmRlcl9idWYsIG5zc24pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTE1Mz12b2lkIGl3bF9tbGRfZGVsX2JhKHN0cnVjdCBpd2xfbWxkICptbGQsIGludCBxdWV1ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNTYtXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxNTc6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNTgtXHRzdHJ1Y3QgaWVlZTgwMjExX2xpbmtfc3RhICpsaW5rX3N0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xODItXHQvKiByZWxlYXNlIGFsbCBmcmFtZXMgdGhhdCBhcmUgaW4gdGhlIHJlb3JkZXIgYnVmZmVyIHRvIHRoZSBzdGFjayAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTgzOlx0aXdsX21sZF9yZW9yZGVyX3JlbGVhc2VfZnJhbWVzKG1sZCwgbGlua19zdGEtXHUwMDNlc3RhLCBOVUxMLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTg0LVx0XHRcdFx0ICAgICAgIGJhX2RhdGEsIHJlb3JkZXJfYnVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE5My0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE5NDplbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE5NTppd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTk2LVx0XHRpbnQgcXVldWUsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMjAwLVx0c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYWlkX2RhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoyMDE6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MjAyOlx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0yMDMtXHRzdHJ1Y3QgaXdsX21sZF9zdGEgKm1sZF9zdGEgPSBpd2xfbWxkX3N0YV9mcm9tX21hYzgwMjExKHN0YSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMzIzLVx0aWYgKCFhbXNkdSB8fCBsYXN0X3N1YmZyYW1lKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MzI0Olx0XHRpd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMobWxkLCBzdGEsIG5hcGksIGJhaWRfZGF0YSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMyNS1cdFx0XHRcdFx0ICAgICAgIGJ1ZmZlciwgbnNzbik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMzMwLX1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjMzMTpFWFBPUlRfU1lNQk9MX0lGX0lXTFdJRklfS1VOSVQoaXdsX21sZF9yZW9yZGVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMzMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYz00NjQ9c3RhdGljIHZvaWQgaXdsX21sZF9pbml0X3Jlb3JkZXJfYnVmZmVyKHN0cnVjdCBpd2xfbWxkICptbGQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDY4LVx0Zm9yIChpbnQgaSA9IDA7IGkgXHUwMDNjIG1sZC1cdTAwM2V0cmFucy1cdTAwM2VpbmZvLm51bV9yeHFzOyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6NDY5Olx0XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWYgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDcwLVx0XHRcdFx1MDAyNmRhdGEtXHUwMDNlcmVvcmRlcl9idWZbaV07XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo0NzE6XHRcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ3Mi1cdFx0XHRcdTAwMjZkYXRhLVx1MDAzZWVudHJpZXNbaSAqIGRhdGEtXHUwMDNlZW50cmllc19wZXJfcXVldWVdO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTQ4Mj1zdGF0aWMgdm9pZCBpd2xfbWxkX2ZyZWVfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGQgKm1sZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00OTItXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgbWxkLVx1MDAzZXRyYW5zLVx1MDAzZWluZm8ubnVtX3J4cXM7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo0OTM6XHRcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpyZW9yZGVyX2J1ZiA9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00OTQtXHRcdFx0XHUwMDI2ZGF0YS1cdTAwM2VyZW9yZGVyX2J1ZltpXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ5NTpcdFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXMgPVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDk2LVx0XHRcdFx1MDAyNmRhdGEtXHUwMDNlZW50cmllc1tpICogZGF0YS1cdTAwM2VlbnRyaWVzX3Blcl9xdWV1ZV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTEtLyoqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDoxMjogKiBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAtIHBlciByYS90aWQvcXVldWUgcmVvcmRlciBidWZmZXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTEzLSAqIEBoZWFkX3NuOiByZW9yZGVyIHdpbmRvdyBoZWFkIHNlcXVlbmNlIG51bWJlclxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTE3LSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MTg6c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTktXHR1MTYgaGVhZF9zbjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0yNS0vKipcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjI2OiAqIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5IC0gcmVvcmRlciBidWZmZXIgZW50cnkgcGVyLXF1ZXVlL3Blci1zZXFub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMjctICogQGZyYW1lczogbGlzdCBvZiBza2JzIHN0b3JlZC4gYSBsaXN0IGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGluIGFuIEEtTVNEVSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0zMC0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjMxOnN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTMyLVx0c3RydWN0IHNrX2J1ZmZfaGVhZCBmcmFtZXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg9NjM9c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC03NC1cdHN0cnVjdCBpd2xfbWxkICptbGQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo3NTpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyIHJlb3JkZXJfYnVmW0lXTF9NQVhfUlhfSFdfUVVFVUVTXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjc2Olx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgZW50cmllc1tdIF9fX19jYWNoZWxpbmVfYWxpZ25lZF9pbl9zbXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC03Ny19O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oPTg0PXN0cnVjdCBpd2xfbWxkX2RlbGJhX2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTg4LS8qKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6ODk6ICogZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IC0gUG9zc2libGUgcmV0dXJuIHZhbHVlcyBmb3IgaXdsX21sZF9yZW9yZGVyKClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTkwLSAqIGluZGljYXRpbmcgaG93IHRoZSBjYWxsZXIgc2hvdWxkIGhhbmRsZSB0aGUgc2tiIGJhc2VkIG9uIHRoZSByZXN1bHQuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtOTUtICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo5NjplbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtOTctXHRJV0xfTUxEX1BBU1NfU0tCLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oPTEwND1pbnQgaXdsX21sZF9hbXBkdV9yeF9zdG9wKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTA2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MTA3OmVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MTA4Oml3bF9tbGRfcmVvcmRlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xMDktXHRcdGludCBxdWV1ZSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jPTIwMjA9dm9pZCBpd2xfbWxkX3J4X21wZHUoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjAzMy1cdHUzMiBtcGR1X2xlbjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmM6MjAzNDpcdGVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdCByZW9yZGVyX3JlcztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjAzNS1cdHN0cnVjdCBpZWVlODAyMTFfcnhfc3RhdHVzICpyeF9zdGF0dXM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYy0yMTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYzoyMTQzOlx0cmVvcmRlcl9yZXMgPSBpd2xfbWxkX3Jlb3JkZXIobWxkLCBuYXBpLCBxdWV1ZSwgc3RhLCBza2IsIG1wZHVfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jLTIxNDQtXHRzd2l0Y2ggKHJlb3JkZXJfcmVzKSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM9MjE9c3RhdGljIGNvbnN0IHN0cnVjdCByZW9yZGVyX2J1ZmZlcl9jYXNlIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NS1cdHN0cnVjdCB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1NjpcdFx0ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IHJlb3JkZXJfcmVzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTctXHRcdHUxNiBoZWFkX3NuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jPTUwMj1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmFsbG9jX2FuZF9zZXR1cF9za2IodTE2IGZjLCB1MTYgc2VxX2N0cmwsIHU4IHRpZCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1MzA6c3RhdGljIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUzMS1zZXR1cF9yZW9yZGVyX2J1ZmZlcihzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MzUtXHRcdChjb25zdCB2b2lkICopKHRlc3QtXHUwMDNlcGFyYW1fdmFsdWUpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTM2Olx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKmJ1ZmZlciA9IGJhaWRfZGF0YS1cdTAwM2VyZW9yZGVyX2J1ZjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjUzNzpcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID0gYmFpZF9kYXRhLVx1MDAzZWVudHJpZXM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MzgtXHRzdHJ1Y3Qgc2tfYnVmZiAqZmFrZV9za2I7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTY4OnN0YXRpYyBzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqc2V0dXBfYmFfZGF0YShzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTY5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NzQtXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSA9IE5VTEw7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1NzU6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTc2LVx0dTMyIHJlb3JkZXJfYnVmX3NpemUgPSBCQV9XSU5ET1dfU0laRSAqIHNpemVvZihiYWlkX2RhdGEtXHUwMDNlZW50cmllc1swXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM9NjAxPXN0YXRpYyB2b2lkIHRlc3RfcmVvcmRlcl9idWZmZXIoc3RydWN0IGt1bml0ICp0ZXN0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYwOS1cdHN0cnVjdCBza19idWZmICpza2I7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo2MTA6XHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjExOlx0ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0IHJlb3JkZXJfcmVzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjEyLVx0dTE2IHNrYl9yZWxlYXNlX29yZGVyX2NvdW50ID0gcGFyYW0tXHUwMDNlZXhwZWN0ZWQuc2tiX3JlbGVhc2Vfb3JkZXJfY291bnQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjMyLVx0cmN1X3JlYWRfbG9jaygpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjMzOlx0cmVvcmRlcl9yZXMgPSBpd2xfbWxkX3Jlb3JkZXIobWxkLCBOVUxMLCBRVUVVRSwgc3RhLCBza2IsIG1wZHVfZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy02MzQtXHRyY3VfcmVhZF91bmxvY2soKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3NDUxCgkJCQkJCQlvdXRwdXQ6IDM1CgkJCQkJCQl0aG91Z2h0czogNTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgaXdsd2lmaS9tbGQgTW9kdWxlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBgaXdsd2lmaS9tbGRgIHRoaW5nLiBNeSBpbW1lZGlhdGUgZ29hbCBpcyB0byB1bmRlcnN0YW5kIHdoYXQgdGhpcyBtb2R1bGUgKmFjdHVhbGx5KiBpcy4gSXMgaXQgYSBjb21wb25lbnQgb2YgdGhlIGBpd2x3aWZpYCBkcml2ZXIsIG9yIGlzIGl0IHNvbWV0aGluZyBlbnRpcmVseSBzZXBhcmF0ZT8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGRyaXZlciByZXNwb25zaWJsZSBmb3IgdXRpbGl6aW5nIHRoaXMgbW9kdWxlIGFuZCB3aGV0aGVyIG9yIG5vdCBpdCYjMzk7cyBpbmhlcmVudGx5IHRpZWQgdG8gc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUuIElzIHRoaXMgc29tZXRoaW5nIHRoYXQmIzM5O3Mgb25seSByZWxldmFudCBvbiBzeXN0ZW1zIHdpdGggYSBzcGVjaWZpYyBXaS1GaSBjaGlwPyBJIG5lZWQgdG8ga25vdyB0aGUgYnJlYWR0aCBvZiBhcHBsaWNhYmlsaXR5LgoKVG8gYWNoaWV2ZSB0aGlzIHVuZGVyc3RhbmRpbmcsIEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhlIHN0YW5kYXJkIGFwcHJvYWNoIGZvciB0aGlzIGtpbmQgb2Yga2VybmVsIGludmVzdGlnYXRpb24uIEkmIzM5O2xsIHNjb3VyIHRoZSBNYWtlZmlsZXMgYW5kIEtjb25maWcgZmlsZXMgZm9yIGJvdGggYElXTF9NTERgIGFuZCB0aGUgbW9yZSBnZW5lcmFsIGBpd2x3aWZpL21sZGAgc3RyaW5ncy4gVGhpcyBpcyB3aGVyZSB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgd2lsbCBsaWtlbHkgYmUgZGVmaW5lZC4gVGhhdCB3aWxsIGdpdmUgbWUgYSBmaXJzdCBoYW5kbGUgb24gaXRzIGRlcGVuZGVuY2llcyBhbmQgaXRzIHBsYWNlIGluIHRoZSBncmVhdGVyIGtlcm5lbCBlY29zeXN0ZW0uIEZyb20gdGhlcmUsIEkgY2FuIHN0YXJ0IHRvIGJ1aWxkIGEgY2xlYXJlciBwaWN0dXJlIG9mIGl0cyBwdXJwb3NlIGFuZCBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtDT05GSUdfSVdMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTEwNSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0yLSMgY29tbW9uXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0lXTFdJRkkpXHQmIzQzOz0gaXdsd2lmaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQtaXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtaW8ub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9MTY9Q0ZMQUdTX3BjaWUvZHJ2Lm8gJiM0Mzs9IC1Xbm8tb3ZlcnJpZGUtaW5pdFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMTgtIyBjb21iaW5lZCBNQUMvUkYgY29uZmlndXJhdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MTk6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICYjNDM7PSBjZmcvMTAwMC5vIGNmZy8yMDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjA6aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICYjNDM7PSBjZmcvNTAwMC5vIGNmZy82MDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjE6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvNzAwMC5vIGNmZy84MDAwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMjItIyBNQUMgY29uZmlndXJhdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjM6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvOTAwMC5vIGNmZy8yMjAwMC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI0Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gY2ZnL2F4MjEwLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjU6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvYnoubyBjZmcvc2Mub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNjppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgJiM0Mzs9IGNmZy9iei5vIGNmZy9zYy5vIGNmZy9kci5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTI3LSMgUkYgY29uZmlndXJhdGlvbnNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mjg6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvcmYtamYubyBjZmcvcmYtaHIubyBjZmcvcmYtZ2Yub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyOTppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgJiM0Mzs9IGNmZy9yZi1mbS5vIGNmZy9yZi13aC5vIGNmZy9yZi1wZS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTMwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9MzY9aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBmdy9yZWd1bGF0b3J5Lm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzc6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBmdy9wYWdpbmcubyBmdy9zbWVtLm8gZncvaW5pdC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjM4Oml3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gZncvc21lbS5vIGZ3L2luaXQub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0zOS1pd2x3aWZpLSQoQ09ORklHX0FDUEkpICYjNDM7PSBmdy9hY3BpLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9NDA9aXdsd2lmaS0kKENPTkZJR19FRkkpXHQmIzQzOz0gZncvdWVmaS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQxOml3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERUJVR0ZTKSAmIzQzOz0gZncvZGVidWdmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZT00Mz1pd2x3aWZpLW9ianMgJiM0Mzs9ICQoaXdsd2lmaS1tKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NDU6aXdsd2lmaS0kKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKSAmIzQzOz0gaXdsLWRldnRyYWNlLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlPTQ3PWNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQ5Om9iai0kKENPTkZJR19JV0xEVk0pXHQmIzQzOz0gZHZtL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo1MDpvYmotJChDT05GSUdfSVdMTVZNKVx0JiM0Mzs9IG12bS9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NTE6b2JqLSQoQ09ORklHX0lXTE1FSSlcdCYjNDM7PSBtZWkvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjUyOm9iai0kKENPTkZJR19JV0xNTEQpXHQmIzQzOz0gbWxkL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS01My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NTQ6b2JqLSQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpICYjNDM7PSB0ZXN0cy9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGUtMi0jIERWTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGU6MzpvYmotJChDT05GSUdfSVdMRFZNKVx0JiM0Mzs9IGl3bGR2bS5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZS00LWl3bGR2bS1vYmpzXHRcdCYjNDM7PSBtYWluLm8gcnMubyBtYWM4MDIxMS5vIHVjb2RlLm8gdHgub1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL01ha2VmaWxlPTk9aXdsZHZtLW9ianNcdFx0JiM0Mzs9IHJ4b24ubyBkZXZpY2VzLm9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL01ha2VmaWxlLTEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGU6MTE6aXdsZHZtLSQoQ09ORklHX0lXTFdJRklfTEVEUykgJiM0Mzs9IGxlZC5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZToxMjppd2xkdm0tJChDT05GSUdfSVdMV0lGSV9ERUJVR0ZTKSAmIzQzOz0gZGVidWdmcy5vXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZS0xMy1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaD0yMjU9c3RhdGljIGlubGluZSBib29sIGl3bF9hZHZhbmNlZF9idF9jb2V4aXN0KHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC0yMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDoyMzE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC0yMzItY29uc3QgY2hhciAqaXdsX2dldF90eF9mYWlsX3JlYXNvbih1MzIgc3RhdHVzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaD0zMzU9aW50IGl3bF9hbGl2ZV9zdGFydChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtMzM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6MzM3OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtMzM4LXZvaWQgaXdsX3ByaW50X3J4X2NvbmZpZ19jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oPTQwNz1pbnQgaXdsX3JlYWRfZWVwcm9tKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLCB1OCAqKmVlcHJvbSwgc2l6ZV90ICplZXByb21fc2l6ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDo0MDk6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oLTQxMC12b2lkIGl3bF9kYmdmc19yZWdpc3RlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2Rpcik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg9NDEyPXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfZGJnZnNfcmVnaXN0ZXIoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDEzLVx0XHRcdFx0ICAgICAgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKSB7IH1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oOjQxNDojZW5kaWYgLyogQ09ORklHX0lXTFdJRklfREVCVUdGUyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDE1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6NDE2OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDE3LSNkZWZpbmUgSVdMX0RFQlVHX1FVSUVUX1JGS0lMTChtLCBmbXQsIGFyZ3MuLi4pXHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oPTQzMD1kbyB7XHRcdFx0XHRcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MzYtfSB3aGlsZSAoMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oOjQzNzojZW5kaWZcdFx0XHRcdC8qIENPTkZJR19JV0xXSUZJX0RFQlVHICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MzgtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIxNTQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2VjaG9fdGVzdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjE3MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTcxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxNzItc3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2xvZ19ldmVudF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzAzPURFQlVHRlNfV1JJVEVfRklMRV9PUFMoZndfcmVzdGFydCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjMwNDojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzA1LURFQlVHRlNfUkVBRF9XUklURV9GSUxFX09QUyhsb2dfZXZlbnQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzEzPXZvaWQgaXdsX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzU1LVx0REVCVUdGU19BRERfRklMRShmd19yZXN0YXJ0LCBkaXJfZGVidWcsIDAyMDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzNTY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1Ny1cdERFQlVHRlNfQUREX0ZJTEUobG9nX2V2ZW50LCBkaXJfZGVidWcsIDA2MDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oPTYyNz1zdHJ1Y3QgaXdsX3ByaXYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTc2NS1cdFx0c3RydWN0IHN0YXRpc3RpY3NfdHggdHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaDo3NjY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTc2Ny1cdFx0c3RydWN0IHN0YXRpc3RpY3NfYnRfYWN0aXZpdHkgYnRfYWN0aXZpdHk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtNzcxLVx0fSBzdGF0aXN0aWNzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6NzcyOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC03NzMtXHRzdHJ1Y3Qge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTg0Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oOjg0ODojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtODQ5LVx0LyogZGVidWdmcyAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTg1My1cdHZvaWQgKndvd2xhbl9zcmFtO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6ODU0OiNlbmRpZiAvKiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtODY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6ODY5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9MRURTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NzAtXHRzdHJ1Y3QgbGVkX2NsYXNzZGV2IGxlZDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuaD0xMT1zdHJ1Y3QgaXdsX3ByaXY7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmgtMTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuaDoxOTojaWZkZWYgQ09ORklHX0lXTFdJRklfTEVEU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmgtMjAtdm9pZCBpd2xhZ25fbGVkX2VuYWJsZShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM9NDE4PXN0YXRpYyBpbnQgaXdsYWduX21hY19yZXN1bWUoc3RydWN0IGllZWU4MDIxMV9odyAqaHcpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy00NDItXHR9O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzo0NDM6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDQ0LVx0Y29uc3Qgc3RydWN0IGZ3X2ltZyAqaW1nO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDgwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYzo0ODE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDgyLVx0aW1nID0gXHUwMDI2cHJpdi1cdTAwM2Vmdy1cdTAwM2VpbWdbSVdMX1VDT0RFX1dPV0xBTl07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTExMzI9c3RhdGljIHZvaWQgaXdsX3VuaW5pdF9kcnYoc3RydWN0IGl3bF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTM3LVx0aXdsX2NhbGliX2ZyZWVfcmVzdWx0cyhwcml2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTM4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTEzOS1cdGtmcmVlKHByaXYtXHUwMDNld293bGFuX3NyYW0pO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xMTU3PXN0YXRpYyB2b2lkIGl3bF9vcHRpb25fY29uZmlnKHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTU4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTU5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNjA6XHRJV0xfSU5GTyhwcml2LCBcJiMzNDtDT05GSUdfSVdMV0lGSV9ERUJVRyBlbmFibGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTYxLSNlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2MjpcdElXTF9JTkZPKHByaXYsIFwmIzM0O0NPTkZJR19JV0xXSUZJX0RFQlVHIGRpc2FibGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTYzLSNlbmRpZlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2NTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNjY6XHRJV0xfSU5GTyhwcml2LCBcJiMzNDtDT05GSUdfSVdMV0lGSV9ERUJVR0ZTIGVuYWJsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjctI2Vsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTY4Olx0SVdMX0lORk8ocHJpdiwgXCYjMzQ7Q09ORklHX0lXTFdJRklfREVCVUdGUyBkaXNhYmxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTE2OS0jZW5kaWZcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNzE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE3MjpcdElXTF9JTkZPKHByaXYsIFwmIzM0O0NPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HIGVuYWJsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNzMtI2Vsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTc0Olx0SVdMX0lORk8ocHJpdiwgXCYjMzQ7Q09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkcgZGlzYWJsZWRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNzUtI2VuZGlmXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTE4MTE9aW50IGl3bF9kdW1wX25pY19ldmVudF9sb2coc3RydWN0IGl3bF9wcml2ICpwcml2LCBib29sIGZ1bGxfbG9nLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xODc2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjE4Nzc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTg3OC1cdGlmIChidWYpIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jPTg4PXN0YXRpYyB2b2lkIGl3bGFnbl9yeF9wbV9zbGVlcF9ub3RpZihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy05MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjkxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy05Mi1cdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QgPSByeGJfYWRkcihyeGIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9MTA5PXN0YXRpYyB2b2lkIGl3bGFnbl9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtMTEzLVx0c3RydWN0IGl3bGFnbl9iZWFjb25fbm90aWYgKmJlYWNvbiA9ICh2b2lkICopcGt0LVx1MDAzZWRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjExNDojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtMTE1LVx0dTE2IHN0YXR1cyA9IGxlMTZfdG9fY3B1KGJlYWNvbi1cdTAwM2ViZWFjb25fbm90aWZ5X2hkci5zdGF0dXMuc3RhdHVzKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jPTIzNT1zdGF0aWMgdm9pZCBpd2xhZ25fcnhfY2FsY19ub2lzZShzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0yNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjI3NjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0yNzctLypcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jPTM0Mj1zdGF0aWMgdm9pZCBpd2xhZ25fcnhfc3RhdGlzdGljcyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0zNzUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjM3NjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0zNzctXHRcdC8qIGhhbmRsZSB0aGlzIGV4Y2VwdGlvbiBkaXJlY3RseSAqL1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNDE2LVx0bWVtY3B5KFx1MDAyNnByaXYtXHUwMDNlc3RhdGlzdGljcy50eCwgdHgsIHNpemVvZigqdHgpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6NDE3OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jLTQxOC1cdGlmIChidF9hY3Rpdml0eSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jPTQ0NT1zdGF0aWMgdm9pZCBpd2xhZ25fcnhfcmVwbHlfc3RhdGlzdGljcyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy00NTEtXHRpZiAobGUzMl90b19jcHUoc3RhdHMtXHUwMDNlZmxhZykgXHUwMDI2IFVDT0RFX1NUQVRJU1RJQ1NfQ0xFQVJfTVNLKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjQ1MjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy00NTMtXHRcdG1lbXNldChcdTAwMjZwcml2LVx1MDAzZWFjY3VtX3N0YXRzLCAwLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYz04MzI9c3RhdGljIGludCBpd2xfZnVsbF9yeG9uX3JlcXVpcmVkKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeG9uLmMtODg2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jOjg4NzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYy04ODgtdm9pZCBpd2xfcHJpbnRfcnhfY29uZmlnX2NtZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jPTIzMj1zdGF0aWMgdm9pZCBpd2xfcnhfcmVwbHlfc2NhbihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTIzNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6MjM1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTIzNi1cdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QgPSByeGJfYWRkcihyeGIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYz0yNjI9c3RhdGljIHZvaWQgaXdsX3J4X3NjYW5fcmVzdWx0c19ub3RpZihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTI2NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6MjY1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTI2Ni1cdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QgPSByeGJfYWRkcihyeGIpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jPTEyNj1ib29sIGl3bF9pc19odDQwX3R4X2FsbG93ZWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jLTEzMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jOjEzMzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmMtMTM0LVx0aWYgKHByaXYtXHUwMDNlZGlzYWJsZV9odDQwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jPTczMT12b2lkIGl3bF9kZWFsbG9jX2JjYXN0X3N0YXRpb25zKHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYy03NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYzo3NTA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYy03NTEtc3RhdGljIHZvaWQgaXdsX2R1bXBfbHFfY21kKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jPTIzMD1zdGF0aWMgdm9pZCBpd2xfbGVnYWN5X3R0X2hhbmRsZXIoc3RydWN0IGl3bF9wcml2ICpwcml2LCBzMzIgdGVtcCwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTIzNC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmM6MjM1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYy0yMzYtXHRpZiAoKHR0LVx1MDAzZXR0X3ByZXZpb3VzX3RlbXApIFx1MDAyNlx1MDAyNlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmMtMjU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYzoyNTY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTI1Ny1cdHR0LVx1MDAzZXR0X3ByZXZpb3VzX3RlbXAgPSB0ZW1wO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmM9MzM1PXN0YXRpYyB2b2lkIGl3bF9hZHZhbmNlX3R0X2hhbmRsZXIoc3RydWN0IGl3bF9wcml2ICpwcml2LCBzMzIgdGVtcCwgYm9vbCBmb3JjZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTM1OC1cdFx0ICAgIHRlbXAgXHUwMDNjPSB0cmFuc2FjdGlvbi1cdTAwM2V0dF9oaWdoKSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jOjM1OTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmMtMzYwLVx0XHRcdGlmICgodHQtXHUwMDNldHRfcHJldmlvdXNfdGVtcCkgXHUwMDI2XHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaD04NT1zdHJ1Y3QgaXdsX3R0X21nbXQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmgtODktXHRib29sIGN0X2tpbGxfdG9nZ2xlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaDo5MDojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0LmgtOTEtXHRzMzIgdHRfcHJldmlvdXNfdGVtcDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jPTI2MD1pbnQgaXdsYWduX3R4X3NrYihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy0yODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jOjI4NzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtMjg4LVx0aWYgKGllZWU4MDIxMV9pc19hdXRoKGZjKSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jPTgwNz1zdGF0aWMgdm9pZCBpd2xhZ25faHdyYXRlX3RvX3R4X2NvbnRyb2woc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIgcmF0ZV9uX2ZsYWdzLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtODI2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYzo4Mjc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTgyOC1jb25zdCBjaGFyICppd2xfZ2V0X3R4X2ZhaWxfcmVhc29uKHUzMiBzdGF0dXMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy04NjQtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYzo4NjU6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTg2Ni1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jPTkyMD1zdGF0aWMgdm9pZCBpd2xfcnhfcmVwbHlfdHhfYWdnKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTk4MC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM6OTgxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy05ODItI2RlZmluZSBBR0dfVFhfU1RBVEVfRkFJTCh4KSBjYXNlIEFHR19UWF9TVEFURV8gIyMgeDogcmV0dXJuICN4XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYz05ODQ9Y29uc3QgY2hhciAqaXdsX2dldF9hZ2dfdHhfZmFpbF9yZWFzb24odTE2IHN0YXR1cylcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTEwMDUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYzoxMDA2OiNlbmRpZiAvKiBDT05GSUdfSVdMV0lGSV9ERUJVRyAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy0xMDA3LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmM9MjQyOT12b2lkIGl3bF9md19kYmdfc3RvcF9yZXN0YXJ0X3JlY29yZGluZyhzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuYy0yNDQ3LVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuYzoyNDQ4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5jLTI0NDktXHRpZiAoIXJldCkge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg9MTc5PXZvaWQgaXdsX2Z3X2RiZ19zdG9wX3Jlc3RhcnRfcmVjb3JkaW5nKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE4Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTgzOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE4NC1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX2Z3X3NldF9kYmdfcmVjX29uKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oPTIzNT1pbnQgaXdsX2Z3X3NlbmRfdGltZXN0YW1wX21hcmtlcl9jbWQoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoyMzc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjM4LXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfZndfY2FuY2VsX3RpbWVzdGFtcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaD0yNjk9c3RhdGljIGlubGluZSB2b2lkIGl3bF9md19yZXN1bWVfdGltZXN0YW1wKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCkge31cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjcwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoyNzE6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjcyLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5oLTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaDo5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaC0xMC12b2lkIGl3bF9md3J0X2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaD0xND1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX2Z3cnRfZGJnZnNfcmVnaXN0ZXIoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5oLTE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kZWJ1Z2ZzLmg6MTc6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaD0xNDg9c3RydWN0IGl3bF9md19ydW50aW1lIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0xOTMtXHRzdHJ1Y3Qge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9ydW50aW1lLmg6MTk0OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0xOTUtXHRcdHN0cnVjdCBkZWxheWVkX3dvcmsgd2s7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9ydW50aW1lLmgtMTk5LVx0fSB0aW1lc3RhbXA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoyMDA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvcnVudGltZS5oLTIwMS1cdGJvb2wgdHBjX2VuYWJsZWQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoyMDI6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvcnVudGltZS5oLTIwMy1cdHN0cnVjdCBpd2xfc2FyX3Byb2ZpbGUgc2FyX3Byb2ZpbGVzW0JJT1NfU0FSX01BWF9QUk9GSUxFX05VTV07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg9NTEzPXN0cnVjdCBpd2xfZGV2X2luZm8ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTUzMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjUzMjojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUUylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTUzMy1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9kZXZfaW5mbyBpd2xfZGV2X2luZm9fdGFibGVbXTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaD02OTU9ZXh0ZXJuIGNvbnN0IGNoYXIgaXdsX2F4MjIxX25hbWVbXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjY5NjojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMRFZNKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNjk3LWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX3JmX2NmZyBpd2w1MzAwX2Fnbl9jZmc7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg9NzI1PWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX3JmX2NmZyBpd2wxMzVfYmduX2NmZztcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjcyNjojZW5kaWYgLyogQ09ORklHX0lXTERWTSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg6NzI3OiNpZiBJU19FTkFCTEVEKENPTkZJR19JV0xNVk0pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaC03MjgtZXh0ZXJuIGNvbnN0IHN0cnVjdCBpd2xfcmZfY2ZnIGl3bDcyNjBfY2ZnO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oPTc0Mz1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsX3JmX2dmO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzQ0LSNkZWZpbmUgaXdsX3JmX290IGl3bF9yZl9ocl84MG1oelxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg6NzQ1OiNlbmRpZiAvKiBDT05GSUdfSVdMTVZNICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaC03NDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaDo3NDc6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTE1MRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTc0OC1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsX3JmX2ZtO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oPTc1Mz1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsX3JmX3BlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzU0LSNkZWZpbmUgaXdsX3JmX3BlX25vX3VociBpd2xfcmZfZm1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjc1NTojZW5kaWYgLyogQ09ORklHX0lXTE1MRCAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzU2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmM9NjQ9SVdMX0VYUE9SVF9TWU1CT0woX19pd2xfZXJyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtNjUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjY2OiNpZiBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFQlVHKSB8fCBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy02Ny12b2lkIF9faXdsX2RiZyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy03Ny1cdHZhZi52YSA9IFx1MDAyNmFyZ3M7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjc4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy03OS1cdGlmIChpd2xfaGF2ZV9kZWJ1Z19sZXZlbChsZXZlbCkgXHUwMDI2XHUwMDI2XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xNj1zdGF0aWMgaW5saW5lIGJvb2wgaXdsX2hhdmVfZGVidWdfbGV2ZWwodTMyIGxldmVsKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjE4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xOS1cdHJldHVybiBpd2x3aWZpX21vZF9wYXJhbXMuZGVidWdfbGV2ZWwgXHUwMDI2IGxldmVsO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9Mzc9dm9pZCBfX2l3bF9jcml0KHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqZm10LCAuLi4pIF9fcHJpbnRmKDIsIDMpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtNjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjcwOiNpZiBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFQlVHKSB8fCBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC03MS12b2lkIF9faXdsX2RiZyhzdHJ1Y3QgZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD04Mz1kbyB7XHRcdFx0XHRcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTk5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMDA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEwMS0jZGVmaW5lIGl3bF9wcmludF9oZXhfZHVtcChtLCBsZXZlbCwgcCwgbGVuKVx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9MTAyPWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMDgtI2RlZmluZSBpd2xfcHJpbnRfaGV4X2R1bXAobSwgbGV2ZWwsIHAsIGxlbilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTA5OiNlbmRpZlx0XHRcdFx0LyogQ09ORklHX0lXTFdJRklfREVCVUcgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTEwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI3LSAqXHQvc3lzL21vZHVsZS9pd2x3aWZpL3BhcmFtZXRlcnMvZGVidWdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTI4OiAqIHdoZW4gQ09ORklHX0lXTFdJRklfREVCVUc9eS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTI5LSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEzMC0gKlx0L3N5cy9rZXJuZWwvZGVidWcvcGh5MC9pd2x3aWZpL2RlYnVnL2RlYnVnX2xldmVsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjEzMTogKiB3aGVuIENPTkZJR19JV0xXSUZJX0RFQlVHRlM9eS5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTMyLSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaD00OT1zdGF0aWMgaW5saW5lIHNpemVfdCBpd2xfcnhfdHJhY2VfbGVuKGNvbnN0IHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtNzgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oOjc5OiNpZiAhZGVmaW5lZChDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lORykgfHwgZGVmaW5lZChfX0NIRUNLRVJfXylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtODAtI3VuZGVmIFRSQUNFX0VWRU5UXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaD04Nz1zdGF0aWMgaW5saW5lIHZvaWQgdHJhY2VfICMjIG5hbWUocHJvdG8pIHt9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaC05OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmg6OTk6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oLTEwMC1ERUNMQVJFX1RSQUNFUE9JTlQoaXdsd2lmaV9kZXZfcngpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmg9MTA2PXN0YXRpYyBpbmxpbmUgdm9pZCBtYXliZV90cmFjZV9pd2x3aWZpX2Rldl9yeChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oLTEwOC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oOjEwOTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtMTEwLVx0aWYgKHRyYWNlcG9pbnRfZW5hYmxlZChpd2x3aWZpX2Rldl9yeCkgfHxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0zNT1NT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzozNzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMzgtc3RhdGljIHN0cnVjdCBkZW50cnkgKml3bF9kYmdmc19yb290O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTU1PXN0cnVjdCBpd2xfZHJ2IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy02Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjY4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy02OS1cdHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2Rydjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz03NT1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy03Ny1cdE1WTV9PUF9NT0RFLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6Nzg6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTE1MRClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTc5LVx0TUxEX09QX01PREUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9ODU9c3RhdGljIHN0cnVjdCBpd2x3aWZpX29wbW9kZV90YWJsZSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtOTEtXHRbTVZNX09QX01PREVdID0geyAubmFtZSA9IFwmIzM0O2l3bG12bVwmIzM0OywgLm9wcyA9IE5VTEwgfSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjkyOiNpZiBJU19FTkFCTEVEKENPTkZJR19JV0xNTEQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy05My1cdFtNTERfT1BfTU9ERV0gPSB7IC5uYW1lID0gXCYjMzQ7aXdsbWxkXCYjMzQ7LCAub3BzID0gTlVMTCB9LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTE1Njg9X2l3bF9vcF9tb2RlX3N0YXJ0KHN0cnVjdCBpd2xfZHJ2ICpkcnYsIHN0cnVjdCBpd2x3aWZpX29wbW9kZV90YWJsZSAqb3ApXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTU3OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjE1ODA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE1ODEtXHRcdGRydi1cdTAwM2VkYmdmc19vcF9tb2RlID0gZGVidWdmc19jcmVhdGVfZGlyKG9wLVx1MDAzZW5hbWUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTU5NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjE1OTU6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE1OTYtXHRcdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShkcnYtXHUwMDNlZGJnZnNfb3BfbW9kZSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MTYwOT1zdGF0aWMgdm9pZCBfaXdsX29wX21vZGVfc3RvcChzdHJ1Y3QgaXdsX2RydiAqZHJ2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE2MTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoxNjE5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0xNjIwLVx0XHRkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoZHJ2LVx1MDAzZWRiZ2ZzX29wX21vZGUpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTE2MzI9c3RhdGljIHZvaWQgaXdsX3JlcV9md19jYWxsYmFjayhjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKnVjb2RlX3Jhdywgdm9pZCAqY29udGV4dClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0xODkzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MTg5NDojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTUxEKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTg5NS1cdGlmIChpd2xfZHJ2X2lzX3dpZmk3X3N1cHBvcnRlZChkcnYtXHUwMDNldHJhbnMpKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTE5NDg9c3RydWN0IGl3bF9kcnYgKml3bF9kcnZfc3RhcnQoc3RydWN0IGl3bF90cmFucyAqdHJhbnMpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTk2NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjE5NjU6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE5NjYtXHQvKiBDcmVhdGUgdGhlIGRldmljZSBkZWJ1Z2ZzIGVudHJpZXMuICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjAwMC1lcnJfZnc6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMDAxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMDAyLVx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGRydi1cdTAwM2VkYmdmc19kcnYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwMTA9dm9pZCBpd2xfZHJ2X3N0b3Aoc3RydWN0IGl3bF9kcnYgKmRydilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMDI4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjAyOTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjAzMC1cdGl3bF90cmFuc19kZWJ1Z2ZzX2NsZWFudXAoZHJ2LVx1MDAzZXRyYW5zKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0yMDk3PXN0YXRpYyBpbnQgX19pbml0IGl3bF9kcnZfaW5pdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMTA0OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTA1LVx0LyogQ3JlYXRlIHRoZSByb290IG9mIGl3bHdpZmkgZGVidWdmcyBzdWJzeXN0ZW0uICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjExNS1jbGVhbnVwX2RlYnVnZnM6XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMTE2OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTE3LVx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGl3bF9kYmdmc19yb290KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0yMTIzPXN0YXRpYyB2b2lkIF9fZXhpdCBpd2xfZHJ2X2V4aXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTI3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjEyODojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEyOS1cdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShpd2xfZGJnZnNfcm9vdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MjEzMj1tb2R1bGVfZXhpdChpd2xfZHJ2X2V4aXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEzMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjIxMzQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTM1LW1vZHVsZV9wYXJhbV9uYW1lZChkZWJ1ZywgaXdsd2lmaV9tb2RfcGFyYW1zLmRlYnVnX2xldmVsLCB1aW50LCAwNjQ0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaD04NT1ib29sIGl3bF9kcnZfaXNfd2lmaTdfc3VwcG9ydGVkKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaC05My0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5oOjk0OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9PUE1PREVfTU9EVUxBUlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOTUtI2RlZmluZSBJV0xfRVhQT1JUX1NZTUJPTChzeW0pXHRFWFBPUlRfU1lNQk9MX05TX0dQTChzeW0sIFwmIzM0O0lXTFdJRklcJiMzNDspXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaDoxMDA6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaC0xMDEtI2RlZmluZSBFWFBPUlRfU1lNQk9MX0lGX0lXTFdJRklfS1VOSVQoc3ltKVx0RVhQT1JUX1NZTUJPTF9JRl9LVU5JVChzeW0pXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtaW8uYz0yNjk9c3RhdGljIGludCBpd2xfZHVtcF9yZmgoc3RydWN0IGl3bF90cmFucyAqdHJhbnMsIGNoYXIgKipidWYpXG4tLVxuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA5MjMKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiAzMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBpd2x3aWZpJiMzOTtzIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gcXVpY2tseSBhc3Nlc3MgYGl3bHdpZmlgJiMzOTtzIHN1aXRhYmlsaXR5IGZvciBmdXp6aW5nIHdpdGhpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgUUVNVS4gQ2FuIHdlIGV2ZW4gKnJlYWNoKiB0aGlzIGRyaXZlciB1c2luZyB0eXBpY2FsIGZ1enppbmcgc2V0dXBzPyBJIG5lZWQgdG8gY29uc2lkZXIgYFdvcnRoRnV6emluZz1mYWxzZWAgY2F2ZWF0cywgYW5kIHdoYXQgY29uZGl0aW9ucyB3b3VsZCBtYWtlIGl0IGltcHJhY3RpY2FsLgoKQSBrZXkgZ3VpZGVsaW5lIHNwZWNpZmllczogcGF0Y2hlcyBhcmUgbm90IHdvcnRoIHB1cnN1aW5nIGlmIHRoZXkgY29udGFpbiBjb2RlIHRoYXQmIzM5O3MgZnVuZGFtZW50YWxseSB1bnJlYWNoYWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBUaGlzIGluY2x1ZGVzIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlIOKAkyB0aGluZ3MgbGlrZSBTbWFydE5JQ3MgYW5kIEdQVXMgdGhhdCBhcmUgb2ZmLWxpbWl0cyBpbiBRRU1VLgoKQWgsIHJpZ2h0IOKAkyBgaXdsd2lmaWAuLi4gdGhhdCYjMzk7cyBJbnRlbCYjMzk7cyBwcm9wcmlldGFyeSBkcml2ZXIgZm9yIHRob3NlIFdpLUZpIFBDSWUvU29DIGFkYXB0ZXJzLiBUaGUgQVgyMDBzLCBBWDIxMHMsIEJFMjAwcywgYW5kIHRoZSA3MjYwcy4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMgd2hldGhlciBzdGFuZGFyZCBRRU1VICplbXVsYXRlcyogdGhlIHJlbGV2YW50IGhhcmR3YXJlLiBObywgaXQgZG9lc24mIzM5O3QuIFFFTVUgZG9lcyAqbm90KiBwcm92aWRlIGEgUENJIGRldmljZSBmb3IgYGl3bHdpZmlgLgoKTm93LCBob2xkIG9uLiBgbWFjODAyMTFfaHdzaW1gIG9mdGVuIGNvbWVzIHVwIGluIHRoaXMgY29udGV4dCwgYnV0IGl0IHVzZXMgYG1hYzgwMjExYCDigJMgYSAqZGlmZmVyZW50KiB3aXJlbGVzcyBzdGFjay4gU28gYG1hYzgwMjExYCBpcyBmb3Igd2lmaSwgYnV0IGBpd2x3aWZpYCBoYXMgYSBzcGVjaWZpYyBIVyBpbnRlcmZhY2UuIEkgbXVzdCBjb25maXJtIHRoYXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSBhbSBub3QgY29uZnVzaW5nIHRoZSB0d28uCgpBbHJpZ2h0LCBzbyB0aGUgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiBhbnkgdmlydHVhbCBidXNlcyBvciBzb2Z0d2FyZSBzaW11bGF0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciBgaXdsd2lmaWAgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwgb3IgUUVNVSBpdHNlbGYuIE15IGltbWVkaWF0ZSB0YXNrIGlzIHRvIHNlYXJjaCBmb3IgJiMzNDt2aXJ0JiMzNDsgb3IgJiMzNDtzaW0mIzM0OyB3aXRoaW4gdGhlIGNvbnRleHQgb2YgYGl3bHdpZmlgLiBMZXQmIzM5O3Mgc2VlIGlmIHNvbWV0aGluZyBleGlzdHMgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2ltJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1MiBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNz1jb25maWcgSVdMV0lGSV9ERUJVR1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvS2NvbmZpZy0xMTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTIwOlx0ICBUbyBzZXQgYSB2YWx1ZSwgc2ltcGx5IGVjaG8gYW4gOC1ieXRlIGhleCB2YWx1ZSB0byB0aGUgc2FtZSBmaWxlOlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTEyMS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jPTcxNz1zdGF0aWMgdm9pZCBpd2xfZmluZF9kaXNjb25uX2FudGVubmEoc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIqIGF2ZXJhZ2Vfc2lnLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtNzc1LVx0ICpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmM6Nzc2Olx0ICogVG8gYmUgc2FmZSwgc2ltcGx5IG1hc2sgb3V0IGFueSBjaGFpbnMgdGhhdCB3ZSBrbm93XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jLTc3Ny1cdCAqIGFyZSBub3Qgb24gdGhlIGRldmljZS5cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jPTgyND1zdGF0aWMgdm9pZCBpd2xhZ25fZ2Fpbl9jb21wdXRhdGlvbihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTMtXHRcdFx0ICogICBub3QgdGhlIGZvcm1hdCBvZiBhbnkgaW50ZXJuYWwgZGV2aWNlIHJlZ2lzdGVycy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmM6ODU0Olx0XHRcdCAqICAgRG8gbm90IGNoYW5nZSB0aGlzIGZvcm1hdCBmb3IgZS5nLiA2MDUwIG9yIHNpbWlsYXJcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtODU1LVx0XHRcdCAqICAgZGV2aWNlcy4gIENoYW5nZSBmb3JtYXQgb25seSBpZiBtb3JlIHJlc29sdXRpb25cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTUwOD1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTUzNy0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo1Mzg6ICogUkVQTFlfUlhPTiA9IDB4MTAgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTM5LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01NTU9c3RydWN0IGl3bF9yeG9uX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01NzktLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NTgwOiAqIFJFUExZX1JYT05fQVNTT0MgPSAweDExIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTU4MS0gKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTgyPXN0cnVjdCBpd2xfcnhvbl9hc3NvY19jbWQge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNjAwLS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYwMTogKiBSRVBMWV9SWE9OX1RJTUlORyA9IDB4MTQgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNjAyLSAqL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD02MDM9c3RydWN0IGl3bF9yeG9uX3RpbWVfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYxMy0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo2MTQ6ICogUkVQTFlfQ0hBTk5FTF9TV0lUQ0ggPSAweDcyIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYxNS0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTY5MD1zdHJ1Y3QgaXdsX2FjX3FvcyB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC03MDYtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NzA3OiAqIFJFUExZX1FPU19QQVJBTSA9IDB4MTMgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA4LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0xNDM1PXN0cnVjdCBpd2xfY29tcHJlc3NlZF9iYV9yZXNwIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE0NTItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MTQ1MzogKiBSRVBMWV9UWF9QV1JfVEFCTEVfQ01EID0gMHg5NyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDU0LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0xNTIwPXN0cnVjdCBpd2xfbGlua19xdWFsX2FnZ19wYXJhbXMge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMTU0Ni0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNTQ3OiAqIFJFUExZX1RYX0xJTktfUVVBTElUWV9DTUQgPSAweDRlIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDgtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE3MzQ9c3RydWN0IGl3bF9saW5rX3F1YWxpdHlfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE3OTUtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MTc5NjogKiBSRVBMWV9CVF9DT05GSUcgPSAweDliIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE3OTctICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTIwMTk9c3RydWN0IGl3bF9zcGVjdHJ1bV9ub3RpZmljYXRpb24ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjA1MS0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyMDUyOiAqIFBPV0VSX1RBQkxFX0NNRCA9IDB4NzcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjA1My0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjEyMT1lbnVtIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIxMzUtLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MjEzNjogKiBSRVBMWV9DQVJEX1NUQVRFX0NNRCA9IDB4YTAgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjEzNy0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTI0MTY9c3RydWN0IGl3bGFnbl9iZWFjb25fbm90aWYge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjQyMy0vKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyNDI0OiAqIFJFUExZX1RYX0JFQUNPTiA9IDB4OTEgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjQyNS0gKi9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTI3NTA9c3RydWN0IGl3bF9taXNzZWRfYmVhY29uX25vdGlmIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI3NzItLypcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6Mjc3MzogKiBTRU5TSVRJVklUWV9DTUQgPSAweGE4IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI3NzQtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTMwMDk9c3RydWN0IGl3bF9lbmhhbmNlX3NlbnNpdGl2aXR5X2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMDE1LS8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjMwMTY6ICogUkVQTFlfUEhZX0NBTElCUkFUSU9OX0NNRCA9IDB4YjAgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNy0gKlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MzE3OD1zdHJ1Y3QgaXdsX2NhbGliX2NoYWluX25vaXNlX2dhaW5fY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTMxOTItICogTEVEcyBDb21tYW5kIFx1MDAyNiBSZXNwb25zZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozMTkzOiAqIFJFUExZX0xFRFNfQ01EID0gMHg0OCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMTk0LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zOTAyPXN0cnVjdCBpd2xfd2lwYW5fcDJwX2NoYW5uZWxfc3dpdGNoX2NtZCB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zOTEzLSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjM5MTQ6ICogSW4gYmVhY29ucywgdGhlIE5vQSBzY2hlZHVsZSBpcyBzaW1wbHkgYXBwZW5kZWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzkxNS0gKiB0byB0aGUgZnJhbWUgd2UgZ2l2ZSB0aGUgZGV2aWNlLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yOT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMwLVx0LnJlYWQgPSBpd2xfZGJnZnNfIyNuYW1lIyNfcmVhZCxcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MzE6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzItXHQubGxzZWVrID0gZ2VuZXJpY19maWxlX2xsc2VlayxcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MzY9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX2RiZ2ZzXyMjbmFtZSMjX29wcyA9IHsgICAgICAgICAgXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zNy1cdC53cml0ZSA9IGl3bF9kYmdmc18jI25hbWUjI193cml0ZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjM4Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM5LVx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXHRcdFx0XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQ0PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ2LVx0LnJlYWQgPSBpd2xfZGJnZnNfIyNuYW1lIyNfcmVhZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDc6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFx0XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDgtXHQubGxzZWVrID0gZ2VuZXJpY19maWxlX2xsc2VlayxcdFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3NyYW1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTM1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEzNjpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEzNy1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE2OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfd293bGFuX3NyYW1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE3OTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwLVx0XHRcdFx0ICAgICAgIHByaXYtXHUwMDNld293bGFuX3NyYW0sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Mz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3RhdGlvbnNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjM0Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1LVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19udm1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjI3MzpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTI3NC1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTI3OD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2hhbm5lbHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwgY2hhciBfX3VzZXIgKnVzZXJfYnVmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMzctXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MzM4Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzM5LVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MzQzPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zdGF0dXNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzczLVx0XHR0ZXN0X2JpdChTVEFUVVNfRldfRVJST1IsIFx1MDAyNnByaXYtXHUwMDNlc3RhdHVzKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzc0Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM3NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM3Nz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhfaGFuZGxlcnNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDAwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQwMTpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQwMi1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQyOT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcW9zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1Zixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDUyLVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjQ1MzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00NTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3RoZXJtYWxfdGhyb3R0bGluZ19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00ODQtXHR9XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDg1Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ4Ni19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTUxMT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfZGlzYWJsZV9odDQwX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUyMi1cdFx0XHRwcml2LVx1MDAzZWRpc2FibGVfaHQ0MCA/IFwmIzM0O0Rpc2FibGVkXCYjMzQ7IDogXCYjMzQ7RW5hYmxlZFwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTIzOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUyNC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTUyNj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdGVtcGVyYXR1cmVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTM1LVx0cG9zICYjNDM7PSBzY25wcmludGYoYnVmICYjNDM7IHBvcywgYnVmc3ogLSBwb3MsIFwmIzM0OyVkXFxuXCYjMzQ7LCBwcml2LVx1MDAzZXRlbXBlcmF0dXJlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo1MzY6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTM3LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTgyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zbGVlcF9sZXZlbF9vdmVycmlkZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy01OTYtXHRwb3MgPSBzY25wcmludGYoYnVmLCBidWZzeiwgXCYjMzQ7JWRcXG5cJiMzNDssIHZhbHVlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo1OTc6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTk4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjAwPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jdXJyZW50X3NsZWVwX2NvbW1hbmRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNjIwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjYyMTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy02MjItfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz02NjY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3J4X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTA5NDpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTUtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMDk5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV90eF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMjkwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEyOTE6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMjkyLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTI5Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfZ2VuZXJhbF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNDEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE0MTE6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNDEyLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTQxNj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfYnRfc3RhdHNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQ5OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNDk5Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTUwMC1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE1MDQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JlcGx5X3R4X2Vycm9yX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE2NDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTY0MTpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE2NDItXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNjQ2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zZW5zaXRpdml0eV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzE4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE3MTk6XHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xNzIwLVx0a2ZyZWUoYnVmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTcyNT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2hhaW5fbm9pc2VfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzc2Olx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3Ny1cdGtmcmVlKGJ1Zik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3ODE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Bvd2VyX3NhdmVfc3RhdHVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4MDAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTgwMTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODAyLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTgyOD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdWNvZGVfdHJhY2luZ19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODQ1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4NDY6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg0Ny19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Nzk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4b25fZmxhZ3NfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg4OC1cdFx0bGUzMl90b19jcHUocHJpdi1cdTAwM2Vjb250ZXh0c1tJV0xfUlhPTl9DVFhfQlNTXS5hY3RpdmUuZmxhZ3MpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODg5Olx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4OTAtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODkyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeG9uX2ZpbHRlcl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTAxLVx0XHRsZTMyX3RvX2NwdShwcml2LVx1MDAzZWNvbnRleHRzW0lXTF9SWE9OX0NUWF9CU1NdLmFjdGl2ZS5maWx0ZXJfZmxhZ3MpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTAyOlx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MDMtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTA1PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19taXNzZWRfYmVhY29uX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MTYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTkxNzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTE4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTk0Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcGxjcF9kZWx0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5NTg6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTk1OS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5ODU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JmX3Jlc2V0X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwMDYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjAwNzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDA4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjA0NT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfYnRfdHJhZmZpY19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDU1LVx0XHRwb3MgJiM0Mzs9IHNjbnByaW50ZihidWYgJiM0MzsgcG9zLCBidWZzeiAtIHBvcywgXCYjMzQ7QlQgY29leCBkaXNhYmxlZFxcblwmIzM0Oyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjA1NjpcdFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwNTctXHR9XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwODYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjA4NzpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDg4LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjA5MD1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcHJvdGVjdGlvbl9tb2RlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxMDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjEwOTpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTEwLX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjE3Mj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbG9nX2V2ZW50X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxODEtXHRpZiAocmV0IFx1MDAzZSAwKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIxODI6XHRcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCByZXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxODMtXHRrZnJlZShidWYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMjEzPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jYWxpYl9kaXNhYmxlZF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjM3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIyMzg6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjIzOS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYz0xMzg4PXN0YXRpYyBpbnQgaXdsYWduX21hY19jaGFuZ2VfaW50ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtMTQwNi1cdC8qXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE0MDc6XHQgKiBUbyBzaW1wbGlmeSB0aGlzIGNvZGUsIG9ubHkgc3VwcG9ydCBjaGFuZ2VzIG9uIHRoZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy0xNDA4LVx0ICogQlNTIGNvbnRleHQuIFRoZSBQQU4gY29udGV4dCBpcyB1c3VhbGx5IHJlYXNzaWduZWRcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTIxNTc9c3RhdGljIHZvaWQgcnNfcmF0ZV9zY2FsZV9wZXJmb3JtKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTI2MDAtICogICAgICAgaWYgdGhlIGRyaXZlciYjMzk7cyBpd2wtYWduLXJzIHJhdGUgc2NhbGluZyBhbGdvcml0aG0gaXMgdXNlZCwgaW5zdGVhZCBvZlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzoyNjAxOiAqICAgICAgIHJjODAyMTFfc2ltcGxlLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0yNjAyLSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMDYxPXN0YXRpYyBzc2l6ZV90IHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzE1ODpcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmZiwgZGVzYyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNTktXHRrZnJlZShidWZmKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3NjYWxlX3RhYmxlX29wcyA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNjUtXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9yZWFkLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMTY2Olx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2Ny1cdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2Vlayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjk9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjAxLVx0fVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYzozMjAyOlx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwMy1cdGtmcmVlKGJ1ZmYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIwNz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjA4LVx0LnJlYWQgPSByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfcmVhZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwOTpcdC5vcGVuID0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMTAtXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjEzPXN0YXRpYyBzc2l6ZV90IHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMjktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMzA6XHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzMS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjM0LVx0LnJlYWQgPSByc19zdGFfZGJnZnNfcmF0ZV9zY2FsZV9kYXRhX3JlYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMzU6XHQub3BlbiA9IHNpbXBsZV9vcGVuLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjM2LVx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYz0zNj1zdGF0aWMgaW50IGl3bF9zZW5kX3NjYW5fYWJvcnQoc3RydWN0IGl3bF9wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYy02MC1cdFx0ICogMiBmb3IgXCYjMzQ7ZmFpbHVyZVwmIzM0Oy4gIEEgZmFpbHVyZSBjb25kaXRpb24gY2FuIGJlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6NjE6XHRcdCAqIGR1ZSB0byBzaW1wbHkgbm90IGJlaW5nIGluIGFuIGFjdGl2ZSBzY2FuIHdoaWNoXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjItXHRcdCAqIGNhbiBvY2N1ciBpZiB3ZSBzZW5kIHRoZSBzY2FuIGFib3J0IGJlZm9yZSB3ZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MjUyPWVudW0gaXdsX3RvZl9yZXNwb25kZXJfY2ZnX2ZsYWdzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI3OS0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDoyODA6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI4MS0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9Mjg3PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y2IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTMxNC0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDozMTU6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTMxNi0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MzIyPXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y3IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM1Mi0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDozNTM6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM1NC0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9MzY5PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y4IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM5Ny0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDozOTg6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM5OS0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9NDE4PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y5IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTQ0OC0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDo0NDk6ICpcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTQ1MC0gKlx0dG8gdGhpcyBmaWVsZFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9OTc9ZW51bSBpd2xfcG93ZXJfZmxhZ3Mge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTEzLSAqXHRpcyB1c2VkIGFsc28gd2l0aCBhIG5ld1x0cG93ZXIgQVBJIGZvciBkZXZpY2Ugd2lkZSBwb3dlciBzZXR0aW5ncy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTE0OiAqIFBPV0VSX1RBQkxFX0NNRCA9IDB4NzcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTE1LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0xNTg9ZW51bSBpd2xfZGV2aWNlX3Bvd2VyX2ZsYWdzIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE2Ni0gKiBzdHJ1Y3QgaXdsX2RldmljZV9wb3dlcl9jbWQgLSBkZXZpY2Ugd2lkZSBwb3dlciBjb21tYW5kLlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaDoxNjc6ICogREVWSUNFX1BPV0VSX0NNRCA9IDB4NzcgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMTY4LSAqXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0xNzI9c3RydWN0IGl3bF9kZXZpY2VfcG93ZXJfY21kIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE3OS0gKiBzdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWRfdjIgLSBwb3dlciBjb21tYW5kIFYyIGNvbnRhaW5pbmcgdUFQU0Qgc3VwcG9ydFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaDoxODA6ICogTUFDX1BNX1BPV0VSX1RBQkxFID0gMHhBOSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xODEtICogQGlkX2FuZF9jb2xvcjpcdE1BQyBjb250ZXh0IGlkZW50aWZpZXIsIFx1MDAyNmVudW0gaXdsX2N0eHRfaWRfYW5kX2NvbG9yXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0yMjA9c3RydWN0IGl3bF9tYWNfcG93ZXJfY21kX3YyIHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTI0Ny0gKiBzdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWQgLSBwb3dlciBjb21tYW5kXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjI0ODogKiBNQUNfUE1fUE9XRVJfVEFCTEUgPSAweEE5IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTI0OS0gKiBAaWRfYW5kX2NvbG9yOlx0TUFDIGNvbnRleHQgaWRlbnRpZmllciwgXHUwMDI2ZW51bSBpd2xfY3R4dF9pZF9hbmRfY29sb3Jcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oPTE2MT1zdGF0aWMgaW5saW5lIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTYyOl9pd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3Aoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xNjMtXHRcdFx0XHRzdHJ1Y3Qgd2lyZWxlc3NfZGV2ICp3ZGV2LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTc0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaDoxNzU6I2RlZmluZSBpd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3AoZndydCwgd2RldiwgdHJpZylcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjE3NjpcdF9pd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3AoKGZ3cnQpLCAod2RldiksXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE3Ny1cdFx0XHRcdFx0aXdsX2Z3X2RiZ19nZXRfdHJpZ2dlcigoZndydCktXHUwMDNlZncsXFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYz0zNz1zdGF0aWMgc3NpemVfdCBfaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kZWJ1Z2ZzLmMtNTEtXHRcdHJldHVybiBkYXRhLVx1MDAzZXJsZW47XHRcdFx0XHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYzo1MjpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYy01My1cdFx0XHRcdCAgICAgICBkYXRhLVx1MDAzZXJidWYsIGRhdGEtXHUwMDNlcmxlbik7XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg9MzEzPXN0cnVjdCB1ZWZpX2Nudl93cGZjX2RhdGEge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oLTMxOS0gKiBUaGlzIGlzIGtub3duIHRvIGJlIGJyb2tlbiBvbiB2NC4xOSBhbmQgdG8gd29yayBvbiB2NS40LiAgVW50aWwgd2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oOjMyMDogKiBmaWd1cmUgb3V0IHdoeSB0aGlzIGlzIHRoZSBjYXNlIGFuZCBob3cgdG8gbWFrZSBpdCB3b3JrLCBzaW1wbHlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oLTMyMS0gKiBkaXNhYmxlIHRoZSBmZWF0dXJlIGluIG9sZCBrZXJuZWxzLlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTE3LSAqIFVzZSBpd2xfd3JpdGUzMigpIGFuZCBpd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaDoxODogKiB0aGVzZSBwcm92aWRlIHNpbXBsZSBQQ0kgYnVzIGFjY2Vzcywgd2l0aG91dCB3YWtpbmcgdXAgdGhlIE1BQy5cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTE5LSAqIERvIG5vdCB1c2UgaXdsX3dyaXRlX2RpcmVjdDMyKCkgZmFtaWx5IGZvciB0aGVzZSByZWdpc3RlcnM7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg9MzIxPWVudW0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTUwOS0gKiBEbyBub3QgdXNlIGl3bF93cml0ZTMyKCkvaXdsX3JlYWQzMigpIGZhbWlseSB0byBhY2Nlc3MgdGhlc2UgcmVnaXN0ZXJzO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg6NTEwOiAqIHRoZXNlIHByb3ZpZGUgb25seSBzaW1wbGUgUENJIGJ1cyBhY2Nlc3MsIHdpdGhvdXQgd2FraW5nIHVwIHRoZSBNQUMuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jc3IuaC01MTEtICovXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xMDI9ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTExMy0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMTQ6ICogSWYgeW91IGFyZSBkZWZpbmluZyBhIG5ldyBkZWJ1ZyBjbGFzc2lmaWNhdGlvbiwgc2ltcGx5IGFkZCBpdCB0byB0aGUgI2RlZmluZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMTUtICogbGlzdCBoZXJlIGluIHRoZSBmb3JtIG9mXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oPTIwPXN0cnVjdCBpd2xfcmZfY2ZnO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLW9wLW1vZGUuaC0zNi0gKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oOjM3OiAqIFRoZSBvcGVyYXRpb25hbCBtb2RlIGhhcyBhIHZlcnkgc2ltcGxlIGxpZmUgY3ljbGUuXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1vcC1tb2RlLmgtMzgtICpcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jPTg2PXN0YXRpYyB1MzIgaXdsX2Rpdl9ieV9kYih1MzIgdmFsdWUsIHU4IGRiKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmMtODgtXHQvKlxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYzo4OTpcdCAqIDJeMzIgKiAxMCoqKGkgLyAxMCkgZm9yIGkgPSBbMSwgMTBdLCBza2lwcGluZyAwIGFuZCBzaW1wbHkgc3RvcHBpbmdcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmMtOTAtXHQgKiBhdCAxMCBkQiBhbmQgbG9vcGluZyBpbnN0ZWFkIG9mIHVzaW5nIGEgbXVjaCBsYXJnZXIgdGFibGUuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTE3NC0gKiBDU01FIGNhbiB0cmFuc21pdCBwYWNrZXRzLCB0aHJvdWdoIHRoZSBuZXRkZXYgdGhhdCBpdCBnZXRzIGZyb20gdGhlIHdpZmlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaDoxNzU6ICogZHJpdmVyLiBJdCYjMzk7bGwgc2VuZCBwYWNrZXQgaW4gdGhlIDgwMi4zIGZvcm1hdCBhbmQgc2ltcGx5IGNhbGxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC0xNzYtICogZGV2X3F1ZXVlX3htaXQuXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oPTQyOD12b2lkIGl3bF9tZWlfc2V0X25ldGRldihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtNDM2LSAqXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg6NDM3OiAqIFRoaXMgZnVuY3Rpb24gZG9lc24mIzM5O3QgdGFrZSBhbnkgbG9jaywgaXQgc2ltcGx5IHRyaWVzIHRvIGNhdGNoIERIQ1BcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MzgtICogcGFja2V0cyBzZW50IGJ5IHRoZSB3aWZpIGRyaXZlci4gSWYgdGhlIHBhY2tldCBpcyBhIERIQ1AgcGFja2V0LCBpdFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYz0xOTAwPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9tZWlfZGJnZnNfc2VuZF9zdGFydF9tZXNzYWdlX29wcyA9IHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTAxLVx0LndyaXRlID0gaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfd3JpdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM6MTkwMjpcdC5vcGVuID0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkwMy1cdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2Vlayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM9MTkxNT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfbWVpX2RiZ2ZzX3JlcV9vd25lcnNoaXBfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MTYtXHQud3JpdGUgPSBpd2xfbWVpX2RiZ2ZzX3JlcV9vd25lcnNoaXBfd3JpdGUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmM6MTkxNzpcdC5vcGVuID0gc2ltcGxlX29wZW4sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkxOC1cdC5sbHNlZWsgPSBkZWZhdWx0X2xsc2Vlayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MzU9c3RhdGljIHNzaXplX3QgX2l3bF9kYmdmc18jI25hbWUjI19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFx0XHRcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC00OS1cdFx0cmV0dXJuIGRhdGEtXHUwMDNlcmxlbjtcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaDo1MDpcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXHRcdFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtNTEtXHRcdFx0XHQgICAgICAgZGF0YS1cdTAwM2VidWYsIGRhdGEtXHUwMDNlcmxlbik7XHRcdFxcXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oPTEwMT1zdGF0aWMgc3NpemVfdCBfX2l3bF9kYmdmc18jI25hbWUjI193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSxcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmgtMTE5LVx0XHQud3JpdGUgPSBfX2l3bF9kYmdmc18jI25hbWUjI193cml0ZSxcdFx0XHRcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjEyMDpcdFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC0xMjEtXHRcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFx0XHRcdFx0XFxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MTYyPXN0YXRpYyBzc2l6ZV90IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXHRcdFxcXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDg4NgoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDQ1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipJbnZlc3RpZ2F0aW5nIGl3bHdpZmkgTW9kdWxlIExvYWRpbmcgYW5kIERldmljZSBBdHRhY2htZW50KioKClJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoZSBndXRzIG9mIHRoaXMgYGl3bHdpZmlgIG1vZHVsZS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7T2theSwgaG93ICpleGFjdGx5KiBpcyB0aGlzIHRoaW5nIGxvYWRlZCBhbmQsIG1vcmUgaW1wb3J0YW50bHksIGhvdyBkb2VzIGl0IGVzdGFibGlzaCBpdHMgcmVsYXRpb25zaGlwIHdpdGggdGhlIFBDSSBkZXZpY2VzIGl0JiMzOTtzIHN1cHBvc2VkIHRvIGNvbnRyb2w/JiMzNDsgVGhhdCYjMzk7cyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIG9wZXJhdGlvbiwgZXNwZWNpYWxseSBpZiBJJiMzOTttIHRyb3VibGVzaG9vdGluZyBvciB0cnlpbmcgdG8gaW50ZWdyYXRlIGEgbmV3IGRldmljZS4KClNvLCBmaXJzdCB0aGluZyBJJiMzOTtsbCBkbyBpcyB6ZXJvIGluIG9uIHRoZSBrZXkgcmVnaXN0cmF0aW9uIHBvaW50cy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IGBncmVwYCB0aGUgYGl3bHdpZmlgIHNvdXJjZSBmb3IgZWl0aGVyIGBwY2lfcmVnaXN0ZXJfZHJpdmVyYCBvciBgbW9kdWxlX3BjaV9kcml2ZXJgLiBUaG9zZSBhcmUgdGhlIHVzdWFsIHN1c3BlY3RzLCBhbmQgdGhleSBhcmUgd2hhdCBJJiMzOTtkIGV4cGVjdCB0byBzZWUuIFRoZXkgYXJlIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byBjb25maXJtIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIG1vZHVsZSYjMzk7cyBvcGVyYXRpb25hbCBwYXRoLiBUaGF0IHdpbGwgcXVpY2tseSB0ZWxsIG1lIHdoZXJlIHRoZSBkcml2ZXIgaXMgYmVpbmcgcmVnaXN0ZXJlZCB3aXRoIHRoZSBQQ0kgc3Vic3lzdGVtLCBhbmQgd2hpY2ggZGV2aWNlcyBpdCYjMzk7cyBzcGVjaWZpY2FsbHkgY29uZmlndXJlZCB0byBzdXBwb3J0LiBGcm9tIHRoZXJlLCBJIGNhbiBiZWdpbiB0byB1bnJhdmVsIGl0cyBkZXZpY2UgcHJvYmUgYW5kIGF0dGFjaCBmdW5jdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzMxIDE3OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3BjaV9yZWdpc3Rlcl9kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwOTc9c3RhdGljIGludCBfX2luaXQgaXdsX2Rydl9pbml0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEwOC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjIxMDk6XHRlcnIgPSBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcigpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjExMC1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaD0xMTQxPXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfdHJhbnNfbm90aWZ5X2Z3X2Vycm9yKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTE0OC0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC10cmFucy5oOjExNDk6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTE1MC12b2lkIGl3bF9wY2lfdW5yZWdpc3Rlcl9kcml2ZXIodm9pZCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jPTEzMzg9c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGl3bF9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzQ2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzNDc6aW50IF9fbXVzdF9jaGVjayBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcih2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzNDgte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzNDktXHRpbnQgcmV0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jOjEzNTA6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNml3bF9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzUxLVx0aWYgKHJldClcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzU3NTcKCQkJCQkJCW91dHB1dDogNDcKCQkJCQkJCXRob3VnaHRzOiA2MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIHRoZSBgaXdsd2lmaWAgRHJpdmVyKioKCk9rYXksIHNvIGBpd2x3aWZpYCByZWdpc3RlcnMgaXRzZWxmIGFzIGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IGBpd2xfcGNpX2RyaXZlcmAuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIHNjb3BlIG9mIHRoaXMgZHJpdmVyLiBJcyB0aGlzIHNvbGVseSBkZWRpY2F0ZWQgdG8gSW50ZWwgd2lyZWxlc3MgY2FyZHMgYW5kIHRoZWlyIFBDSSBpbnRlcmZhY2VzPyBHaXZlbiBteSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgZHJpdmVyIGFyY2hpdGVjdHVyZXMsIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGNvbmZpcm0gdGhpcyBzdXNwaWNpb24sIGFuZCBJJiMzOTtsbCBqdW1wIHJpZ2h0IGludG8gdGhlIHNvdXJjZSBjb2RlIHRvIGdldCBhIGRlZmluaXRpdmUgYW5zd2VyLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jYC4gVGhpcyBzZWVtcyBsaWtlIHRoZSBvYnZpb3VzIHBsYWNlIHRvIGJlZ2luLCBnaXZlbiB0aGUgZm9jdXMgb24gJiMzNDtwY2llLiYjMzQ7IEkmIzM5O20gZXhwZWN0aW5nIHRoaXMgZmlsZSB0byBob2xkIHRoZSBjb3JlIFBDSS1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiBhbmQgZnVuY3Rpb24gdGFibGUgZGVmaW5pdGlvbnMuIE15IGdvYWwgaXMgdG8gcXVpY2tseSB1bmRlcnN0YW5kIHRoZSBkcml2ZXImIzM5O3MgcHVycG9zZSBhbmQgaXRzIHBvdGVudGlhbCBsaW1pdGF0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxMzMwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDMwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzEzMzA6XHRzdGF0aWMgdm9pZCBpd2xfcGNpX2R1bXAoc3RydWN0IGRldmljZSAqZGV2aWNlKVxuMTMzMTpcdHtcbjEzMzI6XHRcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXZpY2UpO1xuMTMzMzpcdFx0c3RydWN0IGl3bF90cmFucyAqdHJhbnMgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XG4xMzM0Olx0XG4xMzM1Olx0XHRpd2xfb3BfbW9kZV9kdW1wKHRyYW5zLVx1MDAzZW9wX21vZGUpO1xuMTMzNjpcdH1cbjEzMzc6XHRcbjEzMzg6XHRzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaXdsX3BjaV9kcml2ZXIgPSB7XG4xMzM5Olx0XHQubmFtZSA9IERSVl9OQU1FLFxuMTM0MDpcdFx0LmlkX3RhYmxlID0gaXdsX2h3X2NhcmRfaWRzLFxuMTM0MTpcdFx0LnByb2JlID0gaXdsX3BjaV9wcm9iZSxcbjEzNDI6XHRcdC5yZW1vdmUgPSBpd2xfcGNpX3JlbW92ZSxcbjEzNDM6XHRcdC5kcml2ZXIucG0gPSBJV0xfUE1fT1BTLFxuMTM0NDpcdFx0LmRyaXZlci5jb3JlZHVtcCA9IGl3bF9wY2lfZHVtcCxcbjEzNDU6XHR9O1xuMTM0NjpcdFxuMTM0NzpcdGludCBfX211c3RfY2hlY2sgaXdsX3BjaV9yZWdpc3Rlcl9kcml2ZXIodm9pZClcbjEzNDg6XHR7XG4xMzQ5Olx0XHRpbnQgcmV0O1xuMTM1MDpcdFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcdTAwMjZpd2xfcGNpX2RyaXZlcik7XG4xMzUxOlx0XHRpZiAocmV0KVxuMTM1MjpcdFx0XHRwcl9lcnIoXCYjMzQ7VW5hYmxlIHRvIGluaXRpYWxpemUgUENJIG1vZHVsZVxcblwmIzM0Oyk7XG4xMzUzOlx0XG4xMzU0Olx0XHRyZXR1cm4gcmV0O1xuMTM1NTpcdH1cbjEzNTY6XHRcbjEzNTc6XHR2b2lkIGl3bF9wY2lfdW5yZWdpc3Rlcl9kcml2ZXIodm9pZClcbjEzNTg6XHR7XG4xMzU5Olx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2aXdsX3BjaV9kcml2ZXIpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNjUwNwoJCQkJCQkJb3V0cHV0OiAzOQoJCQkJCQkJdGhvdWdodHM6IDI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgbXlzZWxmOgoKKipJbnZlc3RpZ2F0aW5nIGl3bHdpZmkgVHJhbnNwb3J0IFR5cGVzKioKCk9rYXksIHNvIEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgdHJhbnNwb3J0IHR5cGVzIHVzZWQgd2l0aGluIHRoZSBgaXdsd2lmaWAgZHJpdmVyLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIHNlZSBpZiBhbnkgbm9uLVBDSSB0cmFuc3BvcnRzIGhhdmUgY3JlcHQgaW4uIFRoZSBtb3N0IGRpcmVjdCBhcHByb2FjaCBpcyB0byBjaGVjayB0aGUgYE1ha2VmaWxlYCBsb2NhdGVkIGluIHRoZSBgaXdsd2lmaWAgZGlyZWN0b3J5LiBUaGlzIGZpbGUgc2hvdWxkIGRlZmluZSB0aGUgYnVpbGQgcHJvY2VzcyBhbmQgbGlrZWx5IGluY2x1ZGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gb3IgZmlsZSBpbmNsdXNpb24gYmFzZWQgb24gdGhlIHRyYW5zcG9ydCB0eXBlLiBCeSBleGFtaW5pbmcgdGhpcyBgTWFrZWZpbGVgLCBJIHNob3VsZCBnZXQgYSBjbGVhciBvdmVydmlldy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA2MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuICAgMjpcdCMgY29tbW9uXG4gICAzOlx0b2JqLSQoQ09ORklHX0lXTFdJRkkpXHQmIzQzOz0gaXdsd2lmaS5vXG4gICA0Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtaW8ub1xuICAgNTpcdGl3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLWRydi5vXG4gICA2Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtZGVidWcub1xuICAgNzpcdGl3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLW52bS11dGlscy5vXG4gICA4Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBpd2wtdXRpbHMub1xuICAgOTpcdGl3bHdpZmktb2Jqc1x0XHQmIzQzOz0gaXdsLXBoeS1kYi5vIGl3bC1udm0tcGFyc2Uub1xuICAxMDpcdFxuICAxMTpcdCMgQnVzXG4gIDEyOlx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBwY2llL2N0eHQtaW5mby5vIHBjaWUvY3R4dC1pbmZvLXYyLm8gcGNpZS9kcnYubyBwY2llL3V0aWxzLm9cbiAgMTM6XHRpd2x3aWZpLW9ianNcdFx0JiM0Mzs9IHBjaWUvZ2VuMV8yL3J4Lm8gcGNpZS9nZW4xXzIvdHgubyBwY2llL2dlbjFfMi90cmFucy5vXG4gIDE0Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBwY2llL2dlbjFfMi90cmFucy1nZW4yLm8gcGNpZS9nZW4xXzIvdHgtZ2VuMi5vXG4gIDE1Olx0XG4gIDE2Olx0Q0ZMQUdTX3BjaWUvZHJ2Lm8gJiM0Mzs9IC1Xbm8tb3ZlcnJpZGUtaW5pdFxuICAxNzpcdFxuICAxODpcdCMgY29tYmluZWQgTUFDL1JGIGNvbmZpZ3VyYXRpb25zXG4gIDE5Olx0aXdsd2lmaS0kKENPTkZJR19JV0xEVk0pICYjNDM7PSBjZmcvMTAwMC5vIGNmZy8yMDAwLm9cbiAgMjA6XHRpd2x3aWZpLSQoQ09ORklHX0lXTERWTSkgJiM0Mzs9IGNmZy81MDAwLm8gY2ZnLzYwMDAub1xuICAyMTpcdGl3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gY2ZnLzcwMDAubyBjZmcvODAwMC5vXG4gIDIyOlx0IyBNQUMgY29uZmlndXJhdGlvbnNcbiAgMjM6XHRpd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGNmZy85MDAwLm8gY2ZnLzIyMDAwLm9cbiAgMjQ6XHRpd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgJiM0Mzs9IGNmZy9heDIxMC5vXG4gIDI1Olx0aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvYnoubyBjZmcvc2Mub1xuICAyNjpcdGl3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gY2ZnL2J6Lm8gY2ZnL3NjLm8gY2ZnL2RyLm9cbiAgMjc6XHQjIFJGIGNvbmZpZ3VyYXRpb25zXG4gIDI4Olx0aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICYjNDM7PSBjZmcvcmYtamYubyBjZmcvcmYtaHIubyBjZmcvcmYtZ2Yub1xuICAyOTpcdGl3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gY2ZnL3JmLWZtLm8gY2ZnL3JmLXdoLm8gY2ZnL3JmLXBlLm9cbiAgMzA6XHRcbiAgMzE6XHRpd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC1kYmctdGx2Lm9cbiAgMzI6XHRpd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGl3bC10cmFucy5vXG4gIDMzOlx0XG4gIDM0Olx0aXdsd2lmaS1vYmpzXHRcdCYjNDM7PSBmdy9pbWcubyBmdy9ub3RpZi13YWl0Lm8gZncvcnMub1xuICAzNTpcdGl3bHdpZmktb2Jqc1x0XHQmIzQzOz0gZncvZGJnLm8gZncvZGJnLW9sZC5vIGZ3L3Budm0ubyBmdy9kdW1wLm9cbiAgMzY6XHRpd2x3aWZpLW9ianNcdFx0JiM0Mzs9IGZ3L3JlZ3VsYXRvcnkub1xuICAzNzpcdGl3bHdpZmktJChDT05GSUdfSVdMTVZNKSAmIzQzOz0gZncvcGFnaW5nLm8gZncvc21lbS5vIGZ3L2luaXQub1xuICAzODpcdGl3bHdpZmktJChDT05GSUdfSVdMTUxEKSAmIzQzOz0gZncvc21lbS5vIGZ3L2luaXQub1xuICAzOTpcdGl3bHdpZmktJChDT05GSUdfQUNQSSkgJiM0Mzs9IGZ3L2FjcGkub1xuICA0MDpcdGl3bHdpZmktJChDT05GSUdfRUZJKVx0JiM0Mzs9IGZ3L3VlZmkub1xuICA0MTpcdGl3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERUJVR0ZTKSAmIzQzOz0gZncvZGVidWdmcy5vXG4gIDQyOlx0XG4gIDQzOlx0aXdsd2lmaS1vYmpzICYjNDM7PSAkKGl3bHdpZmktbSlcbiAgNDQ6XHRcbiAgNDU6XHRpd2x3aWZpLSQoQ09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkcpICYjNDM7PSBpd2wtZGV2dHJhY2Uub1xuICA0NjpcdFxuICA0NzpcdGNjZmxhZ3MteSAmIzQzOz0gLUkkKHNyYylcbiAgNDg6XHRcbiAgNDk6XHRvYmotJChDT05GSUdfSVdMRFZNKVx0JiM0Mzs9IGR2bS9cbiAgNTA6XHRvYmotJChDT05GSUdfSVdMTVZNKVx0JiM0Mzs9IG12bS9cbiAgNTE6XHRvYmotJChDT05GSUdfSVdMTUVJKVx0JiM0Mzs9IG1laS9cbiAgNTI6XHRvYmotJChDT05GSUdfSVdMTUxEKVx0JiM0Mzs9IG1sZC9cbiAgNTM6XHRcbiAgNTQ6XHRvYmotJChDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUUykgJiM0Mzs9IHRlc3RzL1xuICA1NTpcdFxuICA1NjpcdENGTEFHU19pd2wtZGV2dHJhY2UubyA6PSAtSSQoc3JjKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNzg5MQoJCQkJCQkJb3V0cHV0OiAxMzEKCQkJCQkJCXRob3VnaHRzOiA2MTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogTm90IFdvcnRoIEZ1enppbmcqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kLCBiYXNlZCBvbiBteSB1bmRlcnN0YW5kaW5nIG9mIGhvdyBmdXp6aW5nIHdvcmtzIGluIHRoZXNlIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgSSYjMzk7bSBsZWFuaW5nIHRvd2FyZHMgZGVlbWluZyB0aGlzIGNoYW5nZSBub3Qgd29ydGggaW1tZWRpYXRlIGZ1enppbmcuIEhlcmUmIzM5O3MgbXkgcmVhc29uaW5nLCBwaWVjZSBieSBwaWVjZToKCkZpcnN0LCBgaXdsd2lmaWAgYW5kIGBJV0xNTERgLCB0aGUgV2lGaSA3IE1MRCBvcC1tb2RlLCBhcmUgc3BlY2lmaWNhbGx5IHRpZWQgdG8gSW50ZWwgUENJZSB3aXJlbGVzcyBoYXJkd2FyZS4gV2UmIzM5O3JlIHRhbGtpbmcgcGh5c2ljYWwgY2FyZHMgaGVyZSwgY29ubmVjdGVkIHZpYSBQQ0llIChgcGNpZS9kcnYuY2AsIGBwY2llLy4uLmApLgoKTm93LCBjb25zaWRlcmluZyB0aGUgcnVsZXMgd2UgaGF2ZSBmb3IgZGV0ZXJtaW5pbmcgaWYgYSBwYXRjaCB3YXJyYW50cyBmdXp6aW5nLCBsZXQmIzM5O3MgZ28gdGhyb3VnaCB0aGUgY2hlY2tsaXN0LiBUaGUgcnVsZXMgZXhwbGljaXRseSBzdGF0ZSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGludm9sdmVzIGNoYW5nZXMgcmVsYXRlZCB0bzogZG9jdW1lbnRhdGlvbiwgS2NvbmZpZywgY29tbWVudHMsIGxvZ2dpbmcsIGRlY29yYXRpdmUgY2hhbmdlcywgbnVtZXJpYyBjb25zdGFudHMgdGhhdCBkb24mIzM5O3QgYWx0ZXIgZmxvdywgb3IgdW5yZWFjaGFibGUgY29kZS4gVW5yZWFjaGFibGUgY29kZSBpcyB0aGUgY3JpdGljYWwgcGFydCBoZXJlLgoKSSYjMzk7bSB0aGlua2luZywgaXMgYGl3bHdpZmlgIGFjY2Vzc2libGUgaW4gYSB2aXJ0dWFsaXplZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudD8gVGhlIGFuc3dlciBpcyBhIGNsZWFyIG5vLiBRRU1VLCBpbiBpdHMgc3RhbmRhcmQgY29uZmlndXJhdGlvbiwgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGVzZSBzcGVjaWZpYyBJbnRlbCB3aXJlbGVzcyBOSUNzLiBXZSB1c2UgYG1hYzgwMjExX2h3c2ltYCwgb3Igb3RoZXIgdmlydHVhbCBpbnRlcmZhY2VzIG9yIFVTQiBnYWRnZXQgYWRhcHRlcnMgc3VjaCBhcyB0aG9zZSBiYXNlZCBvbiBydGw4MTg4ZXUsIGZvciBmdXp6aW5nIGluIGVudmlyb25tZW50cyBsaWtlIFN5emthbGxlci4gVmVuZG9yLXNwZWNpZmljIFBDSWUgd2lyZWxlc3MgZHJpdmVycyBzdWNoIGFzIGl3bHdpZmksIGF0aDEwayBwY2ksIGF0aDExayBwY2ksIHJ0dzg4IHBjaSwgZXRjIGFyZSBub3QgcmVhY2hhYmxlIGluIHN0YW5kYXJkIFFFTVUuIFRoYXQmIzM5O3Mgb3VyIGZ1enppbmcgZW52aXJvbm1lbnQuCgpTbywgdGhpcyBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgLCBzcGVjaWZpY2FsbHkgdG8gYWRkIGEgYm91bmRzIGNoZWNrIG9uIGBiYWlkYC4gVGhlIGNvZGUgaXMgcGFydCBvZiB0aGUgYGl3bHdpZmlgIGRyaXZlciwgYW5kIGlzIG9ubHkgcmVhY2hlZCB3aGVuIHJlY2VpdmluZyB3aXJlbGVzcyBmcmFtZXMgb24gKnBoeXNpY2FsKiBJbnRlbCBXaUZpIGhhcmR3YXJlLgoKR2l2ZW4gdGhhdCB0aGlzIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUsIHdoaWNoIGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSBlbnZpcm9ubWVudHMsIHRoaXMgY29kZSBpcyAqdW5yZWFjaGFibGUqIGluIHRoZSBmdXp6aW5nIGNvbnRleHQgd2UmIzM5O3JlIGNvbnNpZGVyaW5nLiBUaGUgZW52aXJvbm1lbnQgd2UmIzM5O3JlIHdvcmtpbmcgaW4gaXMgdmlydHVhbGl6ZWQsIGFuZCBsYWNrcyB0aGUgbmVjZXNzYXJ5IHBoeXNpY2FsIGNvbXBvbmVudC4gVGhlcmVmb3JlLCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzLCBJJiMzOTttIGNvbmZpZGVudCBpbiBjYWxsaW5nIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBUaW1lIHRvIGNhbGwgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMzEgMTc6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyKClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AgdG8gYWRkIGEgYm91bmRzIGNoZWNrIGZvciBgYmFpZGAuIFRoZSBgaXdsd2lmaWAgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBJbnRlbCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlcnMsIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBHQ0UpLiBUaGVyZWZvcmUsIHRoZXNlIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyKClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AgdG8gYWRkIGEgYm91bmRzIGNoZWNrIGZvciBgYmFpZGAuIFRoZSBgaXdsd2lmaWAgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBJbnRlbCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlcnMsIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBHQ0UpLiBUaGVyZWZvcmUsIHRoZXNlIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8zMSAxNzo0MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzc6NTUuMTg5NTM0MTQzWiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUwNjY5OTI2MjU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGl3bF9tbGRfcmVvcmRlcigpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgIHRvIGFkZCBhIGJvdW5kcyBjaGVjayBmb3IgYGJhaWRgLiBUaGUgYGl3bHdpZmlgIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgSW50ZWwgUENJZSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJzLCB3aGljaCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgR0NFKS4gVGhlcmVmb3JlLCB0aGVzZSBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzc6NTUuMTg5NTQxODEzWiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1Mzk4MjU5MTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCBlMDg4ZTA2NDIyNDQyMTk2ZTI3MjI0ZDBjOTY4MDdkYzk4NTU4YzAzXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBNb24gQXVnIDMxIDE3OjM3OjU0IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcXG5pbmRleCBlMzYyN2FkMDMyMWM4Li5hNDY0ZWJkZWM1N2YxIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcXG5AQCAtMSw2ICsxLDYgQEBcXG4gLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlXFxuIC8qXFxuLSAqIENvcHlyaWdodCAoQykgMjAyNC0yMDI1IEludGVsIENvcnBvcmF0aW9uXFxuKyAqIENvcHlyaWdodCAoQykgMjAyNC0yMDI2IEludGVsIENvcnBvcmF0aW9uXFxuICAqL1xcbiAjaW5jbHVkZSBcXFwiYWdnLmhcXFwiXFxuICNpbmNsdWRlIFxcXCJzdGEuaFxcXCJcXG5AQCAtMjIyLDYgKzIyMiwxMSBAQCBpd2xfbWxkX3Jlb3JkZXIoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxcbiBcXHRpZiAoYmFpZCA9PSBJV0xfUlhfUkVPUkRFUl9EQVRBX0lOVkFMSURfQkFJRClcXG4gXFx0XFx0cmV0dXJuIElXTF9NTERfUEFTU19TS0I7XFxuIFxcbitcXHRpZiAoSVdMX0ZXX0NIRUNLKG1sZCwgYmFpZCBcXHUwMDNlPSBBUlJBWV9TSVpFKG1sZC1cXHUwMDNlZndfaWRfdG9fYmEpLFxcbitcXHRcXHRcXHQgXFxcIkdvdCBvdXQtb2YtcmFuZ2UgQkFJRCAldSBpbiByZW9yZGVyX2RhdGE9MHgleFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0IGJhaWQsIHJlb3JkZXIpKVxcbitcXHRcXHRyZXR1cm4gSVdMX01MRF9QQVNTX1NLQjtcXG4rXFxuIFxcdC8qIG5vIHN0YSB5ZXQgKi9cXG4gXFx0aWYgKFdBUk5fT05DRSghc3RhLFxcbiBcXHRcXHQgICAgICBcXFwiR290IHZhbGlkIEJBSUQgd2l0aG91dCBhIHZhbGlkIHN0YXRpb24gYXNzaWduZWRcXFxcblxcXCIpKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxNzozNzo1NS43MzAwNzk0OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImNvcmUiLCJEdXJhdGlvbiI6MTUwMTI5MzY3MzcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgaXdsX21sZF9yZW9yZGVyKClgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AgdG8gYWRkIGEgYm91bmRzIGNoZWNrIGZvciBgYmFpZGAuIFRoZSBgaXdsd2lmaWAgZHJpdmVyIG9wZXJhdGVzIG9uIHZlbmRvci1zcGVjaWZpYyBJbnRlbCBQQ0llIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlcnMsIHdoaWNoIHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBhbmQgYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyAoc3VjaCBhcyBHQ0UpLiBUaGVyZWZvcmUsIHRoZXNlIGNvZGUgcGF0aHMgY2Fubm90IGJlIHJlYWNoZWQgZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBlMDg4ZTA2NDIyNDQyMTk2ZTI3MjI0ZDBjOTY4MDdkYzk4NTU4YzAzXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIE1vbiBBdWcgMzEgMTc6Mzc6NTQgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5pbmRleCBlMzYyN2FkMDMyMWM4Li5hNDY0ZWJkZWM1N2YxIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jXG5AQCAtMSw2ICsxLDYgQEBcbiAvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1DbGF1c2VcbiAvKlxuLSAqIENvcHlyaWdodCAoQykgMjAyNC0yMDI1IEludGVsIENvcnBvcmF0aW9uXG4rICogQ29weXJpZ2h0IChDKSAyMDI0LTIwMjYgSW50ZWwgQ29ycG9yYXRpb25cbiAgKi9cbiAjaW5jbHVkZSBcImFnZy5oXCJcbiAjaW5jbHVkZSBcInN0YS5oXCJcbkBAIC0yMjIsNiArMjIyLDExIEBAIGl3bF9tbGRfcmVvcmRlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXG4gXHRpZiAoYmFpZCA9PSBJV0xfUlhfUkVPUkRFUl9EQVRBX0lOVkFMSURfQkFJRClcbiBcdFx0cmV0dXJuIElXTF9NTERfUEFTU19TS0I7XG4gXG4rXHRpZiAoSVdMX0ZXX0NIRUNLKG1sZCwgYmFpZCBcdTAwM2U9IEFSUkFZX1NJWkUobWxkLVx1MDAzZWZ3X2lkX3RvX2JhKSxcbitcdFx0XHQgXCJHb3Qgb3V0LW9mLXJhbmdlIEJBSUQgJXUgaW4gcmVvcmRlcl9kYXRhPTB4JXhcXG5cIixcbitcdFx0XHQgYmFpZCwgcmVvcmRlcikpXG4rXHRcdHJldHVybiBJV0xfTUxEX1BBU1NfU0tCO1xuK1xuIFx0Lyogbm8gc3RhIHlldCAqL1xuIFx0aWYgKFdBUk5fT05DRSghc3RhLFxuIFx0XHQgICAgICBcIkdvdCB2YWxpZCBCQUlEIHdpdGhvdXQgYSB2YWxpZCBzdGF0aW9uIGFzc2lnbmVkXFxuXCIpKVxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzc6NTUuNzMwMDgwOFoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjY1MTg1MDk0NDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGFzc2VzcyBpZiB0aGlzIHBhdGNoIHdhcnJhbnRzIGZ1enppbmcgZWZmb3J0LiBGaXJzdCwgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCBpdCdzIGV2ZW4gY2hhbmdpbmcuIExvb2tzIGxpa2UgdGhlIGZpbGUgaW4gcXVlc3Rpb24gaXMgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgaXdsX21sZF9yZW9yZGVyKClgIGZ1bmN0aW9uLiBUaGUgcGF0Y2ggaW50cm9kdWNlcyBhbiBvdXQtb2YtYm91bmRzIGNoZWNrIHVzaW5nIGBJV0xfRldfQ0hFQ0tgIG9uIGBiYWlkYCBhZ2FpbnN0IGBBUlJBWV9TSVpFKG1sZC1cdTAwM2Vmd19pZF90b19iYSlgLiBIbW0sIGNsYXNzaWMuXG5cbk5vdywgbGV0J3MgYXBwbHkgdGhlIG1lbnRhbCBjaGVja2xpc3QuIERvZXMgdGhpcyBmYWxsIHVuZGVyIGFueSBvZiBteSBlc3RhYmxpc2hlZCBmdXp6aW5nIGV4Y2x1c2lvbnM/IExldCBtZSBzZWUuLi4gXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLi4uXCIgV2FpdCwgd2hhdCBkcml2ZXIgYXJlIHdlIGRlYWxpbmcgd2l0aD8gQWgsIGBpd2x3aWZpYCDigJMgdGhlIEludGVsIHdpcmVsZXNzIFdpRmkgZHJpdmVyLlxuXG5UaGUgbWlsbGlvbi1kb2xsYXIgcXVlc3Rpb246IGlzIGBpd2x3aWZpYCBzdXBwb3J0ZWQgaW4gYSBRRU1VLCBtYWM4MDIxMV9od3NpbSwgb3Igb3RoZXIgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgd2l0aG91dCBhY3R1YWwgSW50ZWwgV2lGaSBoYXJkd2FyZT8gVGhhdCdzIHRoZSBjcnV4IG9mIGl0LiBEb2VzIGBpd2x3aWZpYCBoYXZlIGFueSBvZiBpdHMgb3duIHZpcnR1YWxpemVkIGNvdW50ZXJwYXJ0cyBsaWtlLCBzYXksIGBpd2xtdm1gIG9yIGlzIGl0IHB1cmVseSByZWxpYW50IG9uIGEgcGh5c2ljYWwgSW50ZWwgd2lyZWxlc3MgY2FyZD8gSSBjYW4ndCBpbW1lZGlhdGVseSByZWNhbGwuXG5cbkkgbmVlZCB0byBjb25maXJtIGlmIGl0IGNhbiBiZSBlbXVsYXRlZC4gVGltZSB0byBzdGFydCBkaWdnaW5nIOKAkyBgaXdsd2lmaWAsIGBpd2xtdm1gLCBhbmQgcG9zc2libHkgZXZlbiB3aXRoaW4gdGhlIGBpd2x3aWZpL21sZGAgc3ViZGlyZWN0b3J5LiBJJ2xsIG5lZWQgdG8gdXNlIG15IHVzdWFsIHRvb2xzIGhlcmUg4oCTIG1heWJlIGBncmVwcGVyYCBvciBqdXN0IGJyb3dzZSB0aGUgY29kZSBkaXJlY3RseS4gR290dGEgY2hlY2sgdGhvc2UgdmlydHVhbC9lbXVsYXRlZCBoYXJkd2FyZSBwb3NzaWJpbGl0aWVzIGJlZm9yZSBJIGRlY2lkZSBpZiBmdXp6aW5nIGlzIGZlYXNpYmxlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjg3LCJPdXRwdXRUb2tlbnMiOjIyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mjk1LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzk6MDAuOTE1MTc3MjM1WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5MDI1NjUwNjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaXdsX21sZF9yZW9yZGVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTk9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxMDppd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMoc3RydWN0IGl3bF9tbGQgKm1sZCwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xMS1cXHRcXHRcXHQgICAgICAgc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTEyLVxcdFxcdFxcdCAgICAgICBzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxMzpcXHRcXHRcXHQgICAgICAgc3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKnJlb3JkZXJfYnVmLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE0LVxcdFxcdFxcdCAgICAgICB1MTYgbnNzbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTY6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXMgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE3LVxcdFxcdFxcdTAwMjZiYWlkX2RhdGEtXFx1MDAzZWVudHJpZXNbcmVvcmRlcl9idWYtXFx1MDAzZXF1ZXVlICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTQyPXN0YXRpYyB2b2lkIGl3bF9tbGRfcmVsZWFzZV9mcmFtZXNfZnJvbV9ub3RpZihzdHJ1Y3QgaXdsX21sZCAqbWxkLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtNDUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ2OlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpyZW9yZGVyX2J1ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00Ny1cXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhX2RhdGE7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy03Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzo3NzpcXHRpd2xfbWxkX3Jlb3JkZXJfcmVsZWFzZV9mcmFtZXMobWxkLCBsaW5rX3N0YS1cXHUwMDNlc3RhLCBuYXBpLCBiYV9kYXRhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTc4LVxcdFxcdFxcdFxcdCAgICAgICByZW9yZGVyX2J1ZiwgbnNzbik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYz0xNTM9dm9pZCBpd2xfbWxkX2RlbF9iYShzdHJ1Y3QgaXdsX21sZCAqbWxkLCBpbnQgcXVldWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy0xNTYtXFx0c3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYV9kYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjE1NzpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTU4LVxcdHN0cnVjdCBpZWVlODAyMTFfbGlua19zdGEgKmxpbmtfc3RhO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTgyLVxcdC8qIHJlbGVhc2UgYWxsIGZyYW1lcyB0aGF0IGFyZSBpbiB0aGUgcmVvcmRlciBidWZmZXIgdG8gdGhlIHN0YWNrICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTgzOlxcdGl3bF9tbGRfcmVvcmRlcl9yZWxlYXNlX2ZyYW1lcyhtbGQsIGxpbmtfc3RhLVxcdTAwM2VzdGEsIE5VTEwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTg0LVxcdFxcdFxcdFxcdCAgICAgICBiYV9kYXRhLCByZW9yZGVyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTE5My0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoxOTQ6ZW51bSBpd2xfbWxkX3Jlb3JkZXJfcmVzdWx0XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MTk1Oml3bF9tbGRfcmVvcmRlcihzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMTk2LVxcdFxcdGludCBxdWV1ZSwgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTIwMC1cXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoyMDE6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIgKmJ1ZmZlcjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYzoyMDI6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmMtMjAzLVxcdHN0cnVjdCBpd2xfbWxkX3N0YSAqbWxkX3N0YSA9IGl3bF9tbGRfc3RhX2Zyb21fbWFjODAyMTEoc3RhKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMyMy1cXHRpZiAoIWFtc2R1IHx8IGxhc3Rfc3ViZnJhbWUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MzI0OlxcdFxcdGl3bF9tbGRfcmVvcmRlcl9yZWxlYXNlX2ZyYW1lcyhtbGQsIHN0YSwgbmFwaSwgYmFpZF9kYXRhLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMyNS1cXHRcXHRcXHRcXHRcXHQgICAgICAgYnVmZmVyLCBuc3NuKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMzMC19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6MzMxOkVYUE9SVF9TWU1CT0xfSUZfSVdMV0lGSV9LVU5JVChpd2xfbWxkX3Jlb3JkZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTMzMi1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTQ2ND1zdGF0aWMgdm9pZCBpd2xfbWxkX2luaXRfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGQgKm1sZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ2OC1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIG1sZC1cXHUwMDNldHJhbnMtXFx1MDAzZWluZm8ubnVtX3J4cXM7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ2OTpcXHRcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWYgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ3MC1cXHRcXHRcXHRcXHUwMDI2ZGF0YS1cXHUwMDNlcmVvcmRlcl9idWZbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6NDcxOlxcdFxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00NzItXFx0XFx0XFx0XFx1MDAyNmRhdGEtXFx1MDAzZWVudHJpZXNbaSAqIGRhdGEtXFx1MDAzZWVudHJpZXNfcGVyX3F1ZXVlXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jPTQ4Mj1zdGF0aWMgdm9pZCBpd2xfbWxkX2ZyZWVfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGQgKm1sZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ5Mi1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIG1sZC1cXHUwMDNldHJhbnMtXFx1MDAzZWluZm8ubnVtX3J4cXM7IGkrKykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jOjQ5MzpcXHRcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqcmVvcmRlcl9idWYgPVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5jLTQ5NC1cXHRcXHRcXHRcXHUwMDI2ZGF0YS1cXHUwMDNlcmVvcmRlcl9idWZbaV07XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmM6NDk1OlxcdFxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5ICplbnRyaWVzID1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuYy00OTYtXFx0XFx0XFx0XFx1MDAyNmRhdGEtXFx1MDAzZWVudHJpZXNbaSAqIGRhdGEtXFx1MDAzZWVudHJpZXNfcGVyX3F1ZXVlXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTExLS8qKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjEyOiAqIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyIC0gcGVyIHJhL3RpZC9xdWV1ZSByZW9yZGVyIGJ1ZmZlclxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTEzLSAqIEBoZWFkX3NuOiByZW9yZGVyIHdpbmRvdyBoZWFkIHNlcXVlbmNlIG51bWJlclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTctICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MTg6c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZmZXIge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTE5LVxcdHUxNiBoZWFkX3NuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMjUtLyoqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg6MjY6ICogc3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgLSByZW9yZGVyIGJ1ZmZlciBlbnRyeSBwZXItcXVldWUvcGVyLXNlcW5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMjctICogQGZyYW1lczogbGlzdCBvZiBza2JzIHN0b3JlZC4gYSBsaXN0IGlzIG5lY2Vzc2FyeSBiZWNhdXNlIGluIGFuIEEtTVNEVSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTMwLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjMxOnN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmX2VudHJ5IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0zMi1cXHRzdHJ1Y3Qgc2tfYnVmZl9oZWFkIGZyYW1lcztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oPTYzPXN0cnVjdCBpd2xfbWxkX2JhaWRfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC03NC1cXHRzdHJ1Y3QgaXdsX21sZCAqbWxkO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjc1OlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyIHJlb3JkZXJfYnVmW0lXTF9NQVhfUlhfSFdfUVVFVUVTXTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo3NjpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1Zl9lbnRyeSBlbnRyaWVzW10gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC03Ny19O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmg9ODQ9c3RydWN0IGl3bF9tbGRfZGVsYmFfZGF0YSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC04OC0vKipcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo4OTogKiBlbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQgLSBQb3NzaWJsZSByZXR1cm4gdmFsdWVzIGZvciBpd2xfbWxkX3Jlb3JkZXIoKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTkwLSAqIGluZGljYXRpbmcgaG93IHRoZSBjYWxsZXIgc2hvdWxkIGhhbmRsZSB0aGUgc2tiIGJhc2VkIG9uIHRoZSByZXN1bHQuXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC05NS0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDo5NjplbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oLTk3LVxcdElXTF9NTERfUEFTU19TS0IsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaD0xMDQ9aW50IGl3bF9tbGRfYW1wZHVfcnhfc3RvcChzdHJ1Y3QgaXdsX21sZCAqbWxkLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmgtMTA2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2FnZy5oOjEwNzplbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaDoxMDg6aXdsX21sZF9yZW9yZGVyKHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuaC0xMDktXFx0XFx0aW50IHF1ZXVlLCBzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYz0yMDIwPXZvaWQgaXdsX21sZF9yeF9tcGR1KHN0cnVjdCBpd2xfbWxkICptbGQsIHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjAzMy1cXHR1MzIgbXBkdV9sZW47XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYzoyMDM0OlxcdGVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdCByZW9yZGVyX3JlcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jLTIwMzUtXFx0c3RydWN0IGllZWU4MDIxMV9yeF9zdGF0dXMgKnJ4X3N0YXR1cztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3J4LmMtMjE0Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9yeC5jOjIxNDM6XFx0cmVvcmRlcl9yZXMgPSBpd2xfbWxkX3Jlb3JkZXIobWxkLCBuYXBpLCBxdWV1ZSwgc3RhLCBza2IsIG1wZHVfZGVzYyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvcnguYy0yMTQ0LVxcdHN3aXRjaCAocmVvcmRlcl9yZXMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jPTIxPXN0YXRpYyBjb25zdCBzdHJ1Y3QgcmVvcmRlcl9idWZmZXJfY2FzZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01NS1cXHRzdHJ1Y3Qge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjU2OlxcdFxcdGVudW0gaXdsX21sZF9yZW9yZGVyX3Jlc3VsdCByZW9yZGVyX3JlcztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01Ny1cXHRcXHR1MTYgaGVhZF9zbjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jPTUwMj1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmFsbG9jX2FuZF9zZXR1cF9za2IodTE2IGZjLCB1MTYgc2VxX2N0cmwsIHU4IHRpZCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTUyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1MzA6c3RhdGljIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MzEtc2V0dXBfcmVvcmRlcl9idWZmZXIoc3RydWN0IGl3bF9tbGRfYmFpZF9kYXRhICpiYWlkX2RhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYy01MzUtXFx0XFx0KGNvbnN0IHZvaWQgKikodGVzdC1cXHUwMDNlcGFyYW1fdmFsdWUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjUzNjpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyID0gYmFpZF9kYXRhLVxcdTAwM2VyZW9yZGVyX2J1ZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1Mzc6XFx0c3RydWN0IGl3bF9tbGRfcmVvcmRlcl9idWZfZW50cnkgKmVudHJpZXMgPSBiYWlkX2RhdGEtXFx1MDAzZWVudHJpZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTM4LVxcdHN0cnVjdCBza19idWZmICpmYWtlX3NrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTU2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC90ZXN0cy9hZ2cuYzo1Njg6c3RhdGljIHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpzZXR1cF9iYV9kYXRhKHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTY5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTU3NC1cXHRzdHJ1Y3QgaXdsX21sZF9iYWlkX2RhdGEgKmJhaWRfZGF0YSA9IE5VTEw7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NTc1OlxcdHN0cnVjdCBpd2xfbWxkX3Jlb3JkZXJfYnVmZmVyICpidWZmZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNTc2LVxcdHUzMiByZW9yZGVyX2J1Zl9zaXplID0gQkFfV0lORE9XX1NJWkUgKiBzaXplb2YoYmFpZF9kYXRhLVxcdTAwM2VlbnRyaWVzWzBdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jPTYwMT1zdGF0aWMgdm9pZCB0ZXN0X3Jlb3JkZXJfYnVmZmVyKHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYwOS1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjYxMDpcXHRzdHJ1Y3QgaXdsX21sZF9yZW9yZGVyX2J1ZmZlciAqYnVmZmVyO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jOjYxMTpcXHRlbnVtIGl3bF9tbGRfcmVvcmRlcl9yZXN1bHQgcmVvcmRlcl9yZXM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmMtNjEyLVxcdHUxNiBza2JfcmVsZWFzZV9vcmRlcl9jb3VudCA9IHBhcmFtLVxcdTAwM2VleHBlY3RlZC5za2JfcmVsZWFzZV9vcmRlcl9jb3VudDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYzMi1cXHRyY3VfcmVhZF9sb2NrKCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvdGVzdHMvYWdnLmM6NjMzOlxcdHJlb3JkZXJfcmVzID0gaXdsX21sZF9yZW9yZGVyKG1sZCwgTlVMTCwgUVVFVUUsIHN0YSwgc2tiLCBtcGR1X2Rlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL3Rlc3RzL2FnZy5jLTYzNC1cXHRyY3VfcmVhZF91bmxvY2soKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzk6MDIuODE3NzUxNTI1WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzY3OTMwMDkxMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgaXdsd2lmaS9tbGQgTW9kdWxlKipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGl3bHdpZmkvbWxkYCB0aGluZy4gTXkgaW1tZWRpYXRlIGdvYWwgaXMgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgbW9kdWxlICphY3R1YWxseSogaXMuIElzIGl0IGEgY29tcG9uZW50IG9mIHRoZSBgaXdsd2lmaWAgZHJpdmVyLCBvciBpcyBpdCBzb21ldGhpbmcgZW50aXJlbHkgc2VwYXJhdGU/IEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBkcml2ZXIgcmVzcG9uc2libGUgZm9yIHV0aWxpemluZyB0aGlzIG1vZHVsZSBhbmQgd2hldGhlciBvciBub3QgaXQncyBpbmhlcmVudGx5IHRpZWQgdG8gc3BlY2lmaWMgcGh5c2ljYWwgaGFyZHdhcmUuIElzIHRoaXMgc29tZXRoaW5nIHRoYXQncyBvbmx5IHJlbGV2YW50IG9uIHN5c3RlbXMgd2l0aCBhIHNwZWNpZmljIFdpLUZpIGNoaXA/IEkgbmVlZCB0byBrbm93IHRoZSBicmVhZHRoIG9mIGFwcGxpY2FiaWxpdHkuXG5cblRvIGFjaGlldmUgdGhpcyB1bmRlcnN0YW5kaW5nLCBJJ2xsIHN0YXJ0IHdpdGggdGhlIHN0YW5kYXJkIGFwcHJvYWNoIGZvciB0aGlzIGtpbmQgb2Yga2VybmVsIGludmVzdGlnYXRpb24uIEknbGwgc2NvdXIgdGhlIE1ha2VmaWxlcyBhbmQgS2NvbmZpZyBmaWxlcyBmb3IgYm90aCBgSVdMX01MRGAgYW5kIHRoZSBtb3JlIGdlbmVyYWwgYGl3bHdpZmkvbWxkYCBzdHJpbmdzLiBUaGlzIGlzIHdoZXJlIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYW5kIGRlcGVuZGVuY2llcyB3aWxsIGxpa2VseSBiZSBkZWZpbmVkLiBUaGF0IHdpbGwgZ2l2ZSBtZSBhIGZpcnN0IGhhbmRsZSBvbiBpdHMgZGVwZW5kZW5jaWVzIGFuZCBpdHMgcGxhY2UgaW4gdGhlIGdyZWF0ZXIga2VybmVsIGVjb3N5c3RlbS4gRnJvbSB0aGVyZSwgSSBjYW4gc3RhcnQgdG8gYnVpbGQgYSBjbGVhcmVyIHBpY3R1cmUgb2YgaXRzIHB1cnBvc2UgYW5kIGZ1bmN0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3NDUxLCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzk6MzkuNjEwNzYzMTY1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4Mjc3MDA3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkNPTkZJR19JV0xcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDExMDUgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtMi0jIGNvbW1vblxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MzpvYmotJChDT05GSUdfSVdMV0lGSSlcXHQrPSBpd2x3aWZpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQtaXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWlvLm9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9MTY9Q0ZMQUdTX3BjaWUvZHJ2Lm8gKz0gLVduby1vdmVycmlkZS1pbml0XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTE4LSMgY29tYmluZWQgTUFDL1JGIGNvbmZpZ3VyYXRpb25zXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToxOTppd2x3aWZpLSQoQ09ORklHX0lXTERWTSkgKz0gY2ZnLzEwMDAubyBjZmcvMjAwMC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyMDppd2x3aWZpLSQoQ09ORklHX0lXTERWTSkgKz0gY2ZnLzUwMDAubyBjZmcvNjAwMC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyMTppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnLzcwMDAubyBjZmcvODAwMC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0yMi0jIE1BQyBjb25maWd1cmF0aW9uc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjM6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy85MDAwLm8gY2ZnLzIyMDAwLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI0Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvYXgyMTAub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6MjU6aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy9iei5vIGNmZy9zYy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZToyNjppd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgKz0gY2ZnL2J6Lm8gY2ZnL3NjLm8gY2ZnL2RyLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTI3LSMgUkYgY29uZmlndXJhdGlvbnNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjI4Oml3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvcmYtamYubyBjZmcvcmYtaHIubyBjZmcvcmYtZ2Yub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mjk6aXdsd2lmaS0kKENPTkZJR19JV0xNTEQpICs9IGNmZy9yZi1mbS5vIGNmZy9yZi13aC5vIGNmZy9yZi1wZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS0zMC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9MzY9aXdsd2lmaS1vYmpzXFx0XFx0Kz0gZncvcmVndWxhdG9yeS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTozNzppd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gZncvcGFnaW5nLm8gZncvc21lbS5vIGZ3L2luaXQub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6Mzg6aXdsd2lmaS0kKENPTkZJR19JV0xNTEQpICs9IGZ3L3NtZW0ubyBmdy9pbml0Lm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTM5LWl3bHdpZmktJChDT05GSUdfQUNQSSkgKz0gZncvYWNwaS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZT00MD1pd2x3aWZpLSQoQ09ORklHX0VGSSlcXHQrPSBmdy91ZWZpLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjQxOml3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERUJVR0ZTKSArPSBmdy9kZWJ1Z2ZzLm9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTQyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU9NDM9aXdsd2lmaS1vYmpzICs9ICQoaXdsd2lmaS1tKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0NTppd2x3aWZpLSQoQ09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkcpICs9IGl3bC1kZXZ0cmFjZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZS00Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlPTQ3PWNjZmxhZ3MteSArPSAtSSQoc3JjKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo0OTpvYmotJChDT05GSUdfSVdMRFZNKVxcdCs9IGR2bS9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlOjUwOm9iai0kKENPTkZJR19JV0xNVk0pXFx0Kz0gbXZtL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NTE6b2JqLSQoQ09ORklHX0lXTE1FSSlcXHQrPSBtZWkvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9NYWtlZmlsZTo1MjpvYmotJChDT05GSUdfSVdMTUxEKVxcdCs9IG1sZC9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL01ha2VmaWxlLTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGU6NTQ6b2JqLSQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpICs9IHRlc3RzL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGUtNTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZS0yLSMgRFZNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGU6MzpvYmotJChDT05GSUdfSVdMRFZNKVxcdCs9IGl3bGR2bS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGUtNC1pd2xkdm0tb2Jqc1xcdFxcdCs9IG1haW4ubyBycy5vIG1hYzgwMjExLm8gdWNvZGUubyB0eC5vXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9NYWtlZmlsZT05PWl3bGR2bS1vYmpzXFx0XFx0Kz0gcnhvbi5vIGRldmljZXMub1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL01ha2VmaWxlLTEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL01ha2VmaWxlOjExOml3bGR2bS0kKENPTkZJR19JV0xXSUZJX0xFRFMpICs9IGxlZC5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGU6MTI6aXdsZHZtLSQoQ09ORklHX0lXTFdJRklfREVCVUdGUykgKz0gZGVidWdmcy5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vTWFrZWZpbGUtMTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaD0yMjU9c3RhdGljIGlubGluZSBib29sIGl3bF9hZHZhbmNlZF9idF9jb2V4aXN0KHN0cnVjdCBpd2xfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oLTIzMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDoyMzE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtMjMyLWNvbnN0IGNoYXIgKml3bF9nZXRfdHhfZmFpbF9yZWFzb24odTMyIHN0YXR1cyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaD0zMzU9aW50IGl3bF9hbGl2ZV9zdGFydChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oLTMzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDozMzc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtMzM4LXZvaWQgaXdsX3ByaW50X3J4X2NvbmZpZ19jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg9NDA3PWludCBpd2xfcmVhZF9lZXByb20oc3RydWN0IGl3bF90cmFucyAqdHJhbnMsIHU4ICoqZWVwcm9tLCBzaXplX3QgKmVlcHJvbV9zaXplKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6NDA5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDEwLXZvaWQgaXdsX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oPTQxMj1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MTMtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGRlbnRyeSAqZGJnZnNfZGlyKSB7IH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaDo0MTQ6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9hZ24uaC00MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6NDE2OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oLTQxNy0jZGVmaW5lIElXTF9ERUJVR19RVUlFVF9SRktJTEwobSwgZm10LCBhcmdzLi4uKVxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Fnbi5oPTQzMD1kbyB7XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDM2LX0gd2hpbGUgKDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmg6NDM3OiNlbmRpZlxcdFxcdFxcdFxcdC8qIENPTkZJR19JV0xXSUZJX0RFQlVHICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vYWduLmgtNDM4LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIxNTQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2VjaG9fdGVzdF93cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTcxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTcyLXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19sb2dfZXZlbnRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMzAzPURFQlVHRlNfV1JJVEVfRklMRV9PUFMoZndfcmVzdGFydCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzMDQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIzMDUtREVCVUdGU19SRUFEX1dSSVRFX0ZJTEVfT1BTKGxvZ19ldmVudCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjMxMz12b2lkIGl3bF9kYmdmc19yZWdpc3RlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2RpcilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzU1LVxcdERFQlVHRlNfQUREX0ZJTEUoZndfcmVzdGFydCwgZGlyX2RlYnVnLCAwMjAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjM1NjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1Ny1cXHRERUJVR0ZTX0FERF9GSUxFKGxvZ19ldmVudCwgZGlyX2RlYnVnLCAwNjAwKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oPTYyNz1zdHJ1Y3QgaXdsX3ByaXYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtNzY1LVxcdFxcdHN0cnVjdCBzdGF0aXN0aWNzX3R4IHR4O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oOjc2NjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTc2Ny1cXHRcXHRzdHJ1Y3Qgc3RhdGlzdGljc19idF9hY3Rpdml0eSBidF9hY3Rpdml0eTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTc3MS1cXHR9IHN0YXRpc3RpY3M7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6NzcyOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtNzczLVxcdHN0cnVjdCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6ODQ4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtODQ5LVxcdC8qIGRlYnVnZnMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2Rldi5oLTg1My1cXHR2b2lkICp3b3dsYW5fc3JhbTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaDo4NTQ6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZXYuaC04NjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2Lmg6ODY5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9MRURTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGV2LmgtODcwLVxcdHN0cnVjdCBsZWRfY2xhc3NkZXYgbGVkO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmg9MTE9c3RydWN0IGl3bF9wcml2O1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmgtMTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbGVkLmg6MTk6I2lmZGVmIENPTkZJR19JV0xXSUZJX0xFRFNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9sZWQuaC0yMC12b2lkIGl3bGFnbl9sZWRfZW5hYmxlKHN0cnVjdCBpd2xfcHJpdiAqcHJpdik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTQxOD1zdGF0aWMgaW50IGl3bGFnbl9tYWNfcmVzdW1lKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy00NDItXFx0fTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjQ0MzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDQ0LVxcdGNvbnN0IHN0cnVjdCBmd19pbWcgKmltZztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmMtNDgwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21hYzgwMjExLmM6NDgxOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFjODAyMTEuYy00ODItXFx0aW1nID0gXFx1MDAyNnByaXYtXFx1MDAzZWZ3LVxcdTAwM2VpbWdbSVdMX1VDT0RFX1dPV0xBTl07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM9MTEzMj1zdGF0aWMgdm9pZCBpd2xfdW5pbml0X2RydihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTEzNy1cXHRpd2xfY2FsaWJfZnJlZV9yZXN1bHRzKHByaXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTM4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExMzktXFx0a2ZyZWUocHJpdi1cXHUwMDNld293bGFuX3NyYW0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jPTExNTc9c3RhdGljIHZvaWQgaXdsX29wdGlvbl9jb25maWcoc3RydWN0IGl3bF9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTU4LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE1OTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2MDpcXHRJV0xfSU5GTyhwcml2LCBcXFwiQ09ORklHX0lXTFdJRklfREVCVUcgZW5hYmxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjEtI2Vsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2MjpcXHRJV0xfSU5GTyhwcml2LCBcXFwiQ09ORklHX0lXTFdJRklfREVCVUcgZGlzYWJsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTYzLSNlbmRpZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTY0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxMTY1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNjY6XFx0SVdMX0lORk8ocHJpdiwgXFxcIkNPTkZJR19JV0xXSUZJX0RFQlVHRlMgZW5hYmxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjctI2Vsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmM6MTE2ODpcXHRJV0xfSU5GTyhwcml2LCBcXFwiQ09ORklHX0lXTFdJRklfREVCVUdGUyBkaXNhYmxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNjktI2VuZGlmXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jLTExNzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNzE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNzI6XFx0SVdMX0lORk8ocHJpdiwgXFxcIkNPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HIGVuYWJsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xMTczLSNlbHNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vbWFpbi5jOjExNzQ6XFx0SVdMX0lORk8ocHJpdiwgXFxcIkNPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HIGRpc2FibGVkXFxcXG5cXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWluLmMtMTE3NS0jZW5kaWZcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYz0xODExPWludCBpd2xfZHVtcF9uaWNfZXZlbnRfbG9nKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgYm9vbCBmdWxsX2xvZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xODc2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYzoxODc3OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL21haW4uYy0xODc4LVxcdGlmIChidWYpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9ODg9c3RhdGljIHZvaWQgaXdsYWduX3J4X3BtX3NsZWVwX25vdGlmKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtOTAte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6OTE6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy05Mi1cXHRzdHJ1Y3QgaXdsX3J4X3BhY2tldCAqcGt0ID0gcnhiX2FkZHIocnhiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9MTA5PXN0YXRpYyB2b2lkIGl3bGFnbl9yeF9iZWFjb25fbm90aWYoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0xMTMtXFx0c3RydWN0IGl3bGFnbl9iZWFjb25fbm90aWYgKmJlYWNvbiA9ICh2b2lkICopcGt0LVxcdTAwM2VkYXRhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6MTE0OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtMTE1LVxcdHUxNiBzdGF0dXMgPSBsZTE2X3RvX2NwdShiZWFjb24tXFx1MDAzZWJlYWNvbl9ub3RpZnlfaGRyLnN0YXR1cy5zdGF0dXMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYz0yMzU9c3RhdGljIHZvaWQgaXdsYWduX3J4X2NhbGNfbm9pc2Uoc3RydWN0IGl3bF9wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0yNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYzoyNzY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jLTI3Ny0vKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYz0zNDI9c3RhdGljIHZvaWQgaXdsYWduX3J4X3N0YXRpc3RpY3Moc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy0zNzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYzozNzY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jLTM3Ny1cXHRcXHQvKiBoYW5kbGUgdGhpcyBleGNlcHRpb24gZGlyZWN0bHkgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNDE2LVxcdG1lbWNweShcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdGlzdGljcy50eCwgdHgsIHNpemVvZigqdHgpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeC5jOjQxNzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNDE4LVxcdGlmIChidF9hY3Rpdml0eSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM9NDQ1PXN0YXRpYyB2b2lkIGl3bGFnbl9yeF9yZXBseV9zdGF0aXN0aWNzKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmMtNDUxLVxcdGlmIChsZTMyX3RvX2NwdShzdGF0cy1cXHUwMDNlZmxhZykgXFx1MDAyNiBVQ09ERV9TVEFUSVNUSUNTX0NMRUFSX01TSykge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4LmM6NDUyOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnguYy00NTMtXFx0XFx0bWVtc2V0KFxcdTAwMjZwcml2LVxcdTAwM2VhY2N1bV9zdGF0cywgMCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYz04MzI9c3RhdGljIGludCBpd2xfZnVsbF9yeG9uX3JlcXVpcmVkKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3J4b24uYy04ODYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnhvbi5jOjg4NzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9yeG9uLmMtODg4LXZvaWQgaXdsX3ByaW50X3J4X2NvbmZpZ19jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jPTIzMj1zdGF0aWMgdm9pZCBpd2xfcnhfcmVwbHlfc2NhbihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtMjM0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6MjM1OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3NjYW4uYy0yMzYtXFx0c3RydWN0IGl3bF9yeF9wYWNrZXQgKnBrdCA9IHJ4Yl9hZGRyKHJ4Yik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM9MjYyPXN0YXRpYyB2b2lkIGl3bF9yeF9zY2FuX3Jlc3VsdHNfbm90aWYoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jLTI2NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jOjI2NTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtMjY2LVxcdHN0cnVjdCBpd2xfcnhfcGFja2V0ICpwa3QgPSByeGJfYWRkcihyeGIpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmM9MTI2PWJvb2wgaXdsX2lzX2h0NDBfdHhfYWxsb3dlZChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYy0xMzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmM6MTMzOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmMtMTM0LVxcdGlmIChwcml2LVxcdTAwM2VkaXNhYmxlX2h0NDApXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYz03MzE9dm9pZCBpd2xfZGVhbGxvY19iY2FzdF9zdGF0aW9ucyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zdGEuYy03NDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc3RhLmM6NzUwOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3N0YS5jLTc1MS1zdGF0aWMgdm9pZCBpd2xfZHVtcF9scV9jbWQoc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYz0yMzA9c3RhdGljIHZvaWQgaXdsX2xlZ2FjeV90dF9oYW5kbGVyKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgczMyIHRlbXAsIGJvb2wgZm9yY2UpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTIzNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jOjIzNTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTIzNi1cXHRpZiAoKHR0LVxcdTAwM2V0dF9wcmV2aW91c190ZW1wKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYy0yNTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYzoyNTY6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYy0yNTctXFx0dHQtXFx1MDAzZXR0X3ByZXZpb3VzX3RlbXAgPSB0ZW1wO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYz0zMzU9c3RhdGljIHZvaWQgaXdsX2FkdmFuY2VfdHRfaGFuZGxlcihzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsIHMzMiB0ZW1wLCBib29sIGZvcmNlKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuYy0zNTgtXFx0XFx0ICAgIHRlbXAgXFx1MDAzYz0gdHJhbnNhY3Rpb24tXFx1MDAzZXR0X2hpZ2gpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jOjM1OTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90dC5jLTM2MC1cXHRcXHRcXHRpZiAoKHR0LVxcdTAwM2V0dF9wcmV2aW91c190ZW1wKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaD04NT1zdHJ1Y3QgaXdsX3R0X21nbXQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaC04OS1cXHRib29sIGN0X2tpbGxfdG9nZ2xlO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R0Lmg6OTA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHQuaC05MS1cXHRzMzIgdHRfcHJldmlvdXNfdGVtcDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM9MjYwPWludCBpd2xhZ25fdHhfc2tiKHN0cnVjdCBpd2xfcHJpdiAqcHJpdixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtMjg2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM6Mjg3OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtMjg4LVxcdGlmIChpZWVlODAyMTFfaXNfYXV0aChmYykpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jPTgwNz1zdGF0aWMgdm9pZCBpd2xhZ25faHdyYXRlX3RvX3R4X2NvbnRyb2woc3RydWN0IGl3bF9wcml2ICpwcml2LCB1MzIgcmF0ZV9uX2ZsYWdzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy04MjYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYzo4Mjc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy04MjgtY29uc3QgY2hhciAqaXdsX2dldF90eF9mYWlsX3JlYXNvbih1MzIgc3RhdHVzKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYy04NjQtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM6ODY1OiNlbmRpZiAvKiBDT05GSUdfSVdMV0lGSV9ERUJVRyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmMtODY2LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vdHguYz05MjA9c3RhdGljIHZvaWQgaXdsX3J4X3JlcGx5X3R4X2FnZyhzdHJ1Y3QgaXdsX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTk4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jOjk4MTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTk4Mi0jZGVmaW5lIEFHR19UWF9TVEFURV9GQUlMKHgpIGNhc2UgQUdHX1RYX1NUQVRFXyAjIyB4OiByZXR1cm4gI3hcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM9OTg0PWNvbnN0IGNoYXIgKml3bF9nZXRfYWdnX3R4X2ZhaWxfcmVhc29uKHUxNiBzdGF0dXMpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTEwMDUtfVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3R4LmM6MTAwNjojZW5kaWYgLyogQ09ORklHX0lXTFdJRklfREVCVUcgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS90eC5jLTEwMDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5jPTI0Mjk9dm9pZCBpd2xfZndfZGJnX3N0b3BfcmVzdGFydF9yZWNvcmRpbmcoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuYy0yNDQ3LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5jOjI0NDg6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5jLTI0NDktXFx0aWYgKCFyZXQpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg9MTc5PXZvaWQgaXdsX2Z3X2RiZ19zdG9wX3Jlc3RhcnRfcmVjb3JkaW5nKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTgyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTgzOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0xODQtc3RhdGljIGlubGluZSB2b2lkIGl3bF9md19zZXRfZGJnX3JlY19vbihzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oPTIzNT1pbnQgaXdsX2Z3X3NlbmRfdGltZXN0YW1wX21hcmtlcl9jbWQoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTIzNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjIzNzojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjM4LXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfZndfY2FuY2VsX3RpbWVzdGFtcChzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oPTI2OT1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX2Z3X3Jlc3VtZV90aW1lc3RhbXAoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0KSB7fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMjcwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MjcxOiNlbmRpZiAvKiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kYmcuaC0yNzItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaC04LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5oOjk6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaC0xMC12b2lkIGl3bF9md3J0X2RiZ2ZzX3JlZ2lzdGVyKHN0cnVjdCBpd2xfZndfcnVudGltZSAqZndydCxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5oPTE0PXN0YXRpYyBpbmxpbmUgdm9pZCBpd2xfZndydF9kYmdmc19yZWdpc3RlcihzdHJ1Y3QgaXdsX2Z3X3J1bnRpbWUgKmZ3cnQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaC0xNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuaDoxNzojZW5kaWYgLyogQ09ORklHX0lXTFdJRklfREVCVUdGUyAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9ydW50aW1lLmg9MTQ4PXN0cnVjdCBpd2xfZndfcnVudGltZSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0xOTMtXFx0c3RydWN0IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoxOTQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0xOTUtXFx0XFx0c3RydWN0IGRlbGF5ZWRfd29yayB3aztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvcnVudGltZS5oLTE5OS1cXHR9IHRpbWVzdGFtcDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoyMDA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0yMDEtXFx0Ym9vbCB0cGNfZW5hYmxlZDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaDoyMDI6I2VuZGlmIC8qIENPTkZJR19JV0xXSUZJX0RFQlVHRlMgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3J1bnRpbWUuaC0yMDMtXFx0c3RydWN0IGl3bF9zYXJfcHJvZmlsZSBzYXJfcHJvZmlsZXNbQklPU19TQVJfTUFYX1BST0ZJTEVfTlVNXTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oPTUxMz1zdHJ1Y3QgaXdsX2Rldl9pbmZvIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTUzMS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaDo1MzI6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNTMzLWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX2Rldl9pbmZvIGl3bF9kZXZfaW5mb190YWJsZVtdO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg9Njk1PWV4dGVybiBjb25zdCBjaGFyIGl3bF9heDIyMV9uYW1lW107XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg6Njk2OiNpZiBJU19FTkFCTEVEKENPTkZJR19JV0xEVk0pXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNjk3LWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX3JmX2NmZyBpd2w1MzAwX2Fnbl9jZmc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaD03MjU9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpd2xfcmZfY2ZnIGl3bDEzNV9iZ25fY2ZnO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjcyNjojZW5kaWYgLyogQ09ORklHX0lXTERWTSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjcyNzojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTVZNKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTcyOC1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsNzI2MF9jZmc7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaD03NDM9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBpd2xfcmZfY2ZnIGl3bF9yZl9nZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaC03NDQtI2RlZmluZSBpd2xfcmZfb3QgaXdsX3JmX2hyXzgwbWh6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg6NzQ1OiNlbmRpZiAvKiBDT05GSUdfSVdMTVZNICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oOjc0NzojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTUxEKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNvbmZpZy5oLTc0OC1leHRlcm4gY29uc3Qgc3RydWN0IGl3bF9yZl9jZmcgaXdsX3JmX2ZtO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmg9NzUzPWV4dGVybiBjb25zdCBzdHJ1Y3QgaXdsX3JmX2NmZyBpd2xfcmZfcGU7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY29uZmlnLmgtNzU0LSNkZWZpbmUgaXdsX3JmX3BlX25vX3VociBpd2xfcmZfZm1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaDo3NTU6I2VuZGlmIC8qIENPTkZJR19JV0xNTEQgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1jb25maWcuaC03NTYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jPTY0PUlXTF9FWFBPUlRfU1lNQk9MKF9faXdsX2Vycik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy02NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjY2OiNpZiBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFQlVHKSB8fCBkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtNjctdm9pZCBfX2l3bF9kYmcoc3RydWN0IGRldmljZSAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuYy03Ny1cXHR2YWYudmEgPSBcXHUwMDI2YXJncztcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5jOjc4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmMtNzktXFx0aWYgKGl3bF9oYXZlX2RlYnVnX2xldmVsKGxldmVsKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xNj1zdGF0aWMgaW5saW5lIGJvb2wgaXdsX2hhdmVfZGVidWdfbGV2ZWwodTMyIGxldmVsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTg6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xOS1cXHRyZXR1cm4gaXdsd2lmaV9tb2RfcGFyYW1zLmRlYnVnX2xldmVsIFxcdTAwMjYgbGV2ZWw7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oPTM3PXZvaWQgX19pd2xfY3JpdChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKSBfX3ByaW50ZigyLCAzKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtNjktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDo3MDojaWYgZGVmaW5lZChDT05GSUdfSVdMV0lGSV9ERUJVRykgfHwgZGVmaW5lZChDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lORylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTcxLXZvaWQgX19pd2xfZGJnKHN0cnVjdCBkZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9ODM9ZG8ge1xcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtOTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMDA6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMDEtI2RlZmluZSBpd2xfcHJpbnRfaGV4X2R1bXAobSwgbGV2ZWwsIHAsIGxlbilcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaD0xMDI9ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMDgtI2RlZmluZSBpd2xfcHJpbnRfaGV4X2R1bXAobSwgbGV2ZWwsIHAsIGxlbilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjEwOTojZW5kaWZcXHRcXHRcXHRcXHQvKiBDT05GSUdfSVdMV0lGSV9ERUJVRyAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTEwLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjctICpcXHQvc3lzL21vZHVsZS9pd2x3aWZpL3BhcmFtZXRlcnMvZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oOjEyODogKiB3aGVuIENPTkZJR19JV0xXSUZJX0RFQlVHPXkuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaC0xMjktICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZWJ1Zy5oLTEzMC0gKlxcdC9zeXMva2VybmVsL2RlYnVnL3BoeTAvaXdsd2lmaS9kZWJ1Zy9kZWJ1Z19sZXZlbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg6MTMxOiAqIHdoZW4gQ09ORklHX0lXTFdJRklfREVCVUdGUz15LlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTMyLSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oPTQ5PXN0YXRpYyBpbmxpbmUgc2l6ZV90IGl3bF9yeF90cmFjZV9sZW4oY29uc3Qgc3RydWN0IGl3bF90cmFucyAqdHJhbnMsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oLTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmg6Nzk6I2lmICFkZWZpbmVkKENPTkZJR19JV0xXSUZJX0RFVklDRV9UUkFDSU5HKSB8fCBkZWZpbmVkKF9fQ0hFQ0tFUl9fKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtODAtI3VuZGVmIFRSQUNFX0VWRU5UXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oPTg3PXN0YXRpYyBpbmxpbmUgdm9pZCB0cmFjZV8gIyMgbmFtZShwcm90bykge31cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaDo5OTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVWSUNFX1RSQUNJTkdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kZXZ0cmFjZS5oLTEwMC1ERUNMQVJFX1RSQUNFUE9JTlQoaXdsd2lmaV9kZXZfcngpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaD0xMDY9c3RhdGljIGlubGluZSB2b2lkIG1heWJlX3RyYWNlX2l3bHdpZmlfZGV2X3J4KHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGV2dHJhY2UuaC0xMDgte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmg6MTA5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lOR1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRldnRyYWNlLmgtMTEwLVxcdGlmICh0cmFjZXBvaW50X2VuYWJsZWQoaXdsd2lmaV9kZXZfcngpIHx8XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0zNT1NT0RVTEVfTElDRU5TRShcXFwiR1BMXFxcIik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6Mzc6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0zOC1zdGF0aWMgc3RydWN0IGRlbnRyeSAqaXdsX2RiZ2ZzX3Jvb3Q7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz01NT1zdHJ1Y3QgaXdsX2RydiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy02Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzo2ODojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTY5LVxcdHN0cnVjdCBkZW50cnkgKmRiZ2ZzX2RydjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTc1PWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtNzctXFx0TVZNX09QX01PREUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6Nzg6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTE1MRClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy03OS1cXHRNTERfT1BfTU9ERSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTg1PXN0YXRpYyBzdHJ1Y3QgaXdsd2lmaV9vcG1vZGVfdGFibGUge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtOTEtXFx0W01WTV9PUF9NT0RFXSA9IHsgLm5hbWUgPSBcXFwiaXdsbXZtXFxcIiwgLm9wcyA9IE5VTEwgfSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzo5MjojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTUxEKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTkzLVxcdFtNTERfT1BfTU9ERV0gPSB7IC5uYW1lID0gXFxcIml3bG1sZFxcXCIsIC5vcHMgPSBOVUxMIH0sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYz0xNTY4PV9pd2xfb3BfbW9kZV9zdGFydChzdHJ1Y3QgaXdsX2RydiAqZHJ2LCBzdHJ1Y3QgaXdsd2lmaV9vcG1vZGVfdGFibGUgKm9wKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTU3OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoxNTgwOiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTU4MS1cXHRcXHRkcnYtXFx1MDAzZWRiZ2ZzX29wX21vZGUgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIob3AtXFx1MDAzZW5hbWUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0xNTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjE1OTU6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0xNTk2LVxcdFxcdGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZShkcnYtXFx1MDAzZWRiZ2ZzX29wX21vZGUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MTYwOT1zdGF0aWMgdm9pZCBfaXdsX29wX21vZGVfc3RvcChzdHJ1Y3QgaXdsX2RydiAqZHJ2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTYxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoxNjE5OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMTYyMC1cXHRcXHRkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoZHJ2LVxcdTAwM2VkYmdmc19vcF9tb2RlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTE2MzI9c3RhdGljIHZvaWQgaXdsX3JlcV9md19jYWxsYmFjayhjb25zdCBzdHJ1Y3QgZmlybXdhcmUgKnVjb2RlX3Jhdywgdm9pZCAqY29udGV4dClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE4OTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MTg5NDojaWYgSVNfRU5BQkxFRChDT05GSUdfSVdMTUxEKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE4OTUtXFx0aWYgKGl3bF9kcnZfaXNfd2lmaTdfc3VwcG9ydGVkKGRydi1cXHUwMDNldHJhbnMpKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MTk0OD1zdHJ1Y3QgaXdsX2RydiAqaXdsX2Rydl9zdGFydChzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE5NjQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MTk2NTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTE5NjYtXFx0LyogQ3JlYXRlIHRoZSBkZXZpY2UgZGVidWdmcyBlbnRyaWVzLiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjAwMC1lcnJfZnc6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjAwMTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIwMDItXFx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGRydi1cXHUwMDNlZGJnZnNfZHJ2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwMTA9dm9pZCBpd2xfZHJ2X3N0b3Aoc3RydWN0IGl3bF9kcnYgKmRydilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIwMjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjAyOTojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIwMzAtXFx0aXdsX3RyYW5zX2RlYnVnZnNfY2xlYW51cChkcnYtXFx1MDAzZXRyYW5zKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIwOTc9c3RhdGljIGludCBfX2luaXQgaXdsX2Rydl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTAzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jOjIxMDQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX0RFQlVHRlNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTA1LVxcdC8qIENyZWF0ZSB0aGUgcm9vdCBvZiBpd2x3aWZpIGRlYnVnZnMgc3Vic3lzdGVtLiAqL1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjExNS1jbGVhbnVwX2RlYnVnZnM6XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjExNjojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdGU1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMTctXFx0ZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKGl3bF9kYmdmc19yb290KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jPTIxMjM9c3RhdGljIHZvaWQgX19leGl0IGl3bF9kcnZfZXhpdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEyNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYzoyMTI4OiNpZmRlZiBDT05GSUdfSVdMV0lGSV9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmMtMjEyOS1cXHRkZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoaXdsX2RiZ2ZzX3Jvb3QpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MjEzMj1tb2R1bGVfZXhpdChpd2xfZHJ2X2V4aXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjEzNDojaWZkZWYgQ09ORklHX0lXTFdJRklfREVCVUdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuYy0yMTM1LW1vZHVsZV9wYXJhbV9uYW1lZChkZWJ1ZywgaXdsd2lmaV9tb2RfcGFyYW1zLmRlYnVnX2xldmVsLCB1aW50LCAwNjQ0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5oPTg1PWJvb2wgaXdsX2Rydl9pc193aWZpN19zdXBwb3J0ZWQoc3RydWN0IGl3bF90cmFucyAqdHJhbnMpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOTMtICovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2Lmg6OTQ6I2lmZGVmIENPTkZJR19JV0xXSUZJX09QTU9ERV9NT0RVTEFSXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtOTUtI2RlZmluZSBJV0xfRVhQT1JUX1NZTUJPTChzeW0pXFx0RVhQT1JUX1NZTUJPTF9OU19HUEwoc3ltLCBcXFwiSVdMV0lGSVxcXCIpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaC05OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC1kcnYuaDoxMDA6I2lmIElTX0VOQUJMRUQoQ09ORklHX0lXTFdJRklfS1VOSVRfVEVTVFMpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmgtMTAxLSNkZWZpbmUgRVhQT1JUX1NZTUJPTF9JRl9JV0xXSUZJX0tVTklUKHN5bSlcXHRFWFBPUlRfU1lNQk9MX0lGX0tVTklUKHN5bSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWlvLmM9MjY5PXN0YXRpYyBpbnQgaXdsX2R1bXBfcmZoKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLCBjaGFyICoqYnVmKVxcbi0tXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE3OjM5OjM5LjY2OTA1MDYyM1oiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjg0MTkwNDI3MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBpd2x3aWZpJ3MgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gcXVpY2tseSBhc3Nlc3MgYGl3bHdpZmlgJ3Mgc3VpdGFiaWxpdHkgZm9yIGZ1enppbmcgd2l0aGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VLiBDYW4gd2UgZXZlbiAqcmVhY2gqIHRoaXMgZHJpdmVyIHVzaW5nIHR5cGljYWwgZnV6emluZyBzZXR1cHM/IEkgbmVlZCB0byBjb25zaWRlciBgV29ydGhGdXp6aW5nPWZhbHNlYCBjYXZlYXRzLCBhbmQgd2hhdCBjb25kaXRpb25zIHdvdWxkIG1ha2UgaXQgaW1wcmFjdGljYWwuXG5cbkEga2V5IGd1aWRlbGluZSBzcGVjaWZpZXM6IHBhdGNoZXMgYXJlIG5vdCB3b3J0aCBwdXJzdWluZyBpZiB0aGV5IGNvbnRhaW4gY29kZSB0aGF0J3MgZnVuZGFtZW50YWxseSB1bnJlYWNoYWJsZSBpbiBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBUaGlzIGluY2x1ZGVzIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMgdGhhdCBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlIOKAkyB0aGluZ3MgbGlrZSBTbWFydE5JQ3MgYW5kIEdQVXMgdGhhdCBhcmUgb2ZmLWxpbWl0cyBpbiBRRU1VLlxuXG5BaCwgcmlnaHQg4oCTIGBpd2x3aWZpYC4uLiB0aGF0J3MgSW50ZWwncyBwcm9wcmlldGFyeSBkcml2ZXIgZm9yIHRob3NlIFdpLUZpIFBDSWUvU29DIGFkYXB0ZXJzLiBUaGUgQVgyMDBzLCBBWDIxMHMsIEJFMjAwcywgYW5kIHRoZSA3MjYwcy4gVGhlIGNydWNpYWwgcXVlc3Rpb24gaXMgd2hldGhlciBzdGFuZGFyZCBRRU1VICplbXVsYXRlcyogdGhlIHJlbGV2YW50IGhhcmR3YXJlLiBObywgaXQgZG9lc24ndC4gUUVNVSBkb2VzICpub3QqIHByb3ZpZGUgYSBQQ0kgZGV2aWNlIGZvciBgaXdsd2lmaWAuXG5cbk5vdywgaG9sZCBvbi4gYG1hYzgwMjExX2h3c2ltYCBvZnRlbiBjb21lcyB1cCBpbiB0aGlzIGNvbnRleHQsIGJ1dCBpdCB1c2VzIGBtYWM4MDIxMWAg4oCTIGEgKmRpZmZlcmVudCogd2lyZWxlc3Mgc3RhY2suIFNvIGBtYWM4MDIxMWAgaXMgZm9yIHdpZmksIGJ1dCBgaXdsd2lmaWAgaGFzIGEgc3BlY2lmaWMgSFcgaW50ZXJmYWNlLiBJIG11c3QgY29uZmlybSB0aGF0LiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgYW0gbm90IGNvbmZ1c2luZyB0aGUgdHdvLlxuXG5BbHJpZ2h0LCBzbyB0aGUgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiBhbnkgdmlydHVhbCBidXNlcyBvciBzb2Z0d2FyZSBzaW11bGF0aW9ucyBhcmUgYXZhaWxhYmxlIGZvciBgaXdsd2lmaWAgd2l0aGluIHRoZSBMaW51eCBrZXJuZWwgb3IgUUVNVSBpdHNlbGYuIE15IGltbWVkaWF0ZSB0YXNrIGlzIHRvIHNlYXJjaCBmb3IgXCJ2aXJ0XCIgb3IgXCJzaW1cIiB3aXRoaW4gdGhlIGNvbnRleHQgb2YgYGl3bHdpZmlgLiBMZXQncyBzZWUgaWYgc29tZXRoaW5nIGV4aXN0cyB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjA5MjMsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6Mzk6NDguMDg4MDk2NDk5WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzI3NTk4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNpbVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTA1MiBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnPTEwNz1jb25maWcgSVdMV0lGSV9ERUJVR1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9LY29uZmlnLTExOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWc6MTIwOlxcdCAgVG8gc2V0IGEgdmFsdWUsIHNpbXBseSBlY2hvIGFuIDgtYnl0ZSBoZXggdmFsdWUgdG8gdGhlIHNhbWUgZmlsZTpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL0tjb25maWctMTIxLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz03MTc9c3RhdGljIHZvaWQgaXdsX2ZpbmRfZGlzY29ubl9hbnRlbm5hKHN0cnVjdCBpd2xfcHJpdiAqcHJpdiwgdTMyKiBhdmVyYWdlX3NpZyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NhbGliLmMtNzc1LVxcdCAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYzo3NzY6XFx0ICogVG8gYmUgc2FmZSwgc2ltcGx5IG1hc2sgb3V0IGFueSBjaGFpbnMgdGhhdCB3ZSBrbm93XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy03NzctXFx0ICogYXJlIG5vdCBvbiB0aGUgZGV2aWNlLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYz04MjQ9c3RhdGljIHZvaWQgaXdsYWduX2dhaW5fY29tcHV0YXRpb24oc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTMtXFx0XFx0XFx0ICogICBub3QgdGhlIGZvcm1hdCBvZiBhbnkgaW50ZXJuYWwgZGV2aWNlIHJlZ2lzdGVycy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jYWxpYi5jOjg1NDpcXHRcXHRcXHQgKiAgIERvIG5vdCBjaGFuZ2UgdGhpcyBmb3JtYXQgZm9yIGUuZy4gNjA1MCBvciBzaW1pbGFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY2FsaWIuYy04NTUtXFx0XFx0XFx0ICogICBkZXZpY2VzLiAgQ2hhbmdlIGZvcm1hdCBvbmx5IGlmIG1vcmUgcmVzb2x1dGlvblxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD01MDg9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTUzNy0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6NTM4OiAqIFJFUExZX1JYT04gPSAweDEwIChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01MzktICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTU1PXN0cnVjdCBpd2xfcnhvbl9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC01NzktLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjU4MDogKiBSRVBMWV9SWE9OX0FTU09DID0gMHgxMSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNTgxLSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NTgyPXN0cnVjdCBpd2xfcnhvbl9hc3NvY19jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MDAtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYwMTogKiBSRVBMWV9SWE9OX1RJTUlORyA9IDB4MTQgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYwMi0gKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTYwMz1zdHJ1Y3QgaXdsX3J4b25fdGltZV9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC02MTMtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjYxNDogKiBSRVBMWV9DSEFOTkVMX1NXSVRDSCA9IDB4NzIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTYxNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9NjkwPXN0cnVjdCBpd2xfYWNfcW9zIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA2LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDo3MDc6ICogUkVQTFlfUU9TX1BBUkFNID0gMHgxMyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtNzA4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE0MzU9c3RydWN0IGl3bF9jb21wcmVzc2VkX2JhX3Jlc3Age1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDUyLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNDUzOiAqIFJFUExZX1RYX1BXUl9UQUJMRV9DTUQgPSAweDk3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNDU0LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oPTE1MjA9c3RydWN0IGl3bF9saW5rX3F1YWxfYWdnX3BhcmFtcyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDYtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjE1NDc6ICogUkVQTFlfVFhfTElOS19RVUFMSVRZX0NNRCA9IDB4NGUgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE1NDgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MTczND1zdHJ1Y3QgaXdsX2xpbmtfcXVhbGl0eV9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0xNzk1LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoxNzk2OiAqIFJFUExZX0JUX0NPTkZJRyA9IDB4OWIgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTE3OTctICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjAxOT1zdHJ1Y3QgaXdsX3NwZWN0cnVtX25vdGlmaWNhdGlvbiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTIwNTEtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjIwNTI6ICogUE9XRVJfVEFCTEVfQ01EID0gMHg3NyAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjA1My0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0yMTIxPWVudW0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yMTM1LS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyMTM2OiAqIFJFUExZX0NBUkRfU1RBVEVfQ01EID0gMHhhMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjEzNy0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MjQxNj1zdHJ1Y3QgaXdsYWduX2JlYWNvbl9ub3RpZiB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI0MjMtLypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjI0MjQ6ICogUkVQTFlfVFhfQkVBQ09OID0gMHg5MSAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMjQyNS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9Mjc1MD1zdHJ1Y3QgaXdsX21pc3NlZF9iZWFjb25fbm90aWYge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0yNzcyLS8qXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDoyNzczOiAqIFNFTlNJVElWSVRZX0NNRCA9IDB4YTggKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTI3NzQtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg9MzAwOT1zdHJ1Y3QgaXdsX2VuaGFuY2Vfc2Vuc2l0aXZpdHlfY21kIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNS0vKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmg6MzAxNjogKiBSRVBMWV9QSFlfQ0FMSUJSQVRJT05fQ01EID0gMHhiMCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzAxNy0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zMTc4PXN0cnVjdCBpd2xfY2FsaWJfY2hhaW5fbm9pc2VfZ2Fpbl9jbWQge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaC0zMTkyLSAqIExFRHMgQ29tbWFuZCBcXHUwMDI2IFJlc3BvbnNlXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaDozMTkzOiAqIFJFUExZX0xFRFNfQ01EID0gMHg0OCAoY29tbWFuZCwgaGFzIHNpbXBsZSBnZW5lcmljIHJlc3BvbnNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2NvbW1hbmRzLmgtMzE5NC0gKlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vY29tbWFuZHMuaD0zOTAyPXN0cnVjdCBpd2xfd2lwYW5fcDJwX2NoYW5uZWxfc3dpdGNoX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTMtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oOjM5MTQ6ICogSW4gYmVhY29ucywgdGhlIE5vQSBzY2hlZHVsZSBpcyBzaW1wbHkgYXBwZW5kZWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9jb21tYW5kcy5oLTM5MTUtICogdG8gdGhlIGZyYW1lIHdlIGdpdmUgdGhlIGRldmljZS5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yOT1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTMwLVxcdC5yZWFkID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQsXFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzozMTpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcdFxcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzItXFx0Lmxsc2VlayA9IGdlbmVyaWNfZmlsZV9sbHNlZWssXFx0XFx0XFx0XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTM2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIGl3bF9kYmdmc18jI25hbWUjI19vcHMgPSB7ICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzctXFx0LndyaXRlID0gaXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzg6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM5LVxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz00ND1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBpd2xfZGJnZnNfIyNuYW1lIyNfb3BzID0geyAgICAgICAgICBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDYtXFx0LnJlYWQgPSBpd2xfZGJnZnNfIyNuYW1lIyNfcmVhZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDc6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQ4LVxcdC5sbHNlZWsgPSBnZW5lcmljX2ZpbGVfbGxzZWVrLFxcdFxcdFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfc3JhbV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEzNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTM2OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xMzctXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xNjk9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3dvd2xhbl9zcmFtX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxNzk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwLVxcdFxcdFxcdFxcdCAgICAgICBwcml2LVxcdTAwM2V3b3dsYW5fc3JhbSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXRpb25zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMzMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIzNDpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjM1LVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjM5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19udm1fcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yNzItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjI3MzpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjc0LVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9Mjc4PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jaGFubmVsc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLCBjaGFyIF9fdXNlciAqdXNlcl9idWYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzM3LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MzM4OlxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0zMzktXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNDM9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3N0YXR1c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTM3My1cXHRcXHR0ZXN0X2JpdChTVEFUVVNfRldfRVJST1IsIFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0dXMpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6Mzc0OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMzc1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0zNzc9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3J4X2hhbmRsZXJzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0MDE6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTQwMi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQyOT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcW9zX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsIGNoYXIgX191c2VyICp1c2VyX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTItXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzo0NTM6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy00NTQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTQ1Nj1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfdGhlcm1hbF90aHJvdHRsaW5nX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg0LVxcdH1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NDg1OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNDg2LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MTE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2Rpc2FibGVfaHQ0MF9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUyMi1cXHRcXHRcXHRwcml2LVxcdTAwM2VkaXNhYmxlX2h0NDAgPyBcXFwiRGlzYWJsZWRcXFwiIDogXFxcIkVuYWJsZWRcXFwiKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6NTIzOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTI0LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz01MjY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3RlbXBlcmF0dXJlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtNTM1LVxcdHBvcyArPSBzY25wcmludGYoYnVmICsgcG9zLCBidWZzeiAtIHBvcywgXFxcIiVkXFxcXG5cXFwiLCBwcml2LVxcdTAwM2V0ZW1wZXJhdHVyZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjUzNjpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTUzNy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NTgyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19zbGVlcF9sZXZlbF9vdmVycmlkZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5Ni1cXHRwb3MgPSBzY25wcmludGYoYnVmLCBidWZzeiwgXFxcIiVkXFxcXG5cXFwiLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjU5NzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTU5OC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjAwPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19jdXJyZW50X3NsZWVwX2NvbW1hbmRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy02MjAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjYyMTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTYyMi19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9NjY2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9yeF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEwOTQ6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEwOTUtXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMDk5PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV90eF9zdGF0c19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjEyOTE6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTEyOTItXFx0a2ZyZWUoYnVmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xMjk2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc191Y29kZV9nZW5lcmFsX3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQxMTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQxMi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE0MTY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX2J0X3N0YXRzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTQ5OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTQ5OTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTUwMC1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE1MDQ9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JlcGx5X3R4X2Vycm9yX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTY0MTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTY0Mi1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE2NDY9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3NlbnNpdGl2aXR5X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcxOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTcxOTpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTcyMC1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3MjU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2NoYWluX25vaXNlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTc3NjpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTc3Ny1cXHRrZnJlZShidWYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE3ODE9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Bvd2VyX3NhdmVfc3RhdHVzX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTgwMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTgwMTpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4MDItfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE4Mjg9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Vjb2RlX3RyYWNpbmdfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODQ1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxODQ2OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTg0Ny19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTg3OT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfcnhvbl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE4ODgtXFx0XFx0bGUzMl90b19jcHUocHJpdi1cXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZsYWdzKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE4ODk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBsZW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xODkwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xODkyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19yeG9uX2ZpbHRlcl9mbGFnc19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MDEtXFx0XFx0bGUzMl90b19jcHUocHJpdi1cXHUwMDNlY29udGV4dHNbSVdMX1JYT05fQ1RYX0JTU10uYWN0aXZlLmZpbHRlcl9mbGFncykpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoxOTAyOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgbGVuKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTkwMy19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MTkwNT1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfbWlzc2VkX2JlYWNvbl9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjE5MTc6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0xOTE4LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0xOTQ2PXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19wbGNwX2RlbHRhX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMTk1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MTk1ODpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTE5NTktfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTE5ODU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3JmX3Jlc2V0X3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjAwNi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjAwNzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwMDgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwNDU9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX2J0X3RyYWZmaWNfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMDU1LVxcdFxcdHBvcyArPSBzY25wcmludGYoYnVmICsgcG9zLCBidWZzeiAtIHBvcywgXFxcIkJUIGNvZXggZGlzYWJsZWRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMDU2OlxcdFxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA1Ny1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjA4Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM6MjA4NzpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWYsIHBvcyk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIwODgtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jPTIwOTA9c3RhdGljIHNzaXplX3QgaXdsX2RiZ2ZzX3Byb3RlY3Rpb25fbW9kZV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jLTIxMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vZGVidWdmcy5jOjIxMDk6XFx0cmV0dXJuIHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCBwb3MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTEwLX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYz0yMTcyPXN0YXRpYyBzc2l6ZV90IGl3bF9kYmdmc19sb2dfZXZlbnRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgxLVxcdGlmIChyZXQgXFx1MDAzZSAwKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMTgyOlxcdFxcdHJldCA9IHNpbXBsZV9yZWFkX2Zyb21fYnVmZmVyKHVzZXJfYnVmLCBjb3VudCwgcHBvcywgYnVmLCByZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMTgzLVxcdGtmcmVlKGJ1Zik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmM9MjIxMz1zdGF0aWMgc3NpemVfdCBpd2xfZGJnZnNfY2FsaWJfZGlzYWJsZWRfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYy0yMjM3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL2RlYnVnZnMuYzoyMjM4OlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZiwgcG9zKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9kZWJ1Z2ZzLmMtMjIzOS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jPTEzODg9c3RhdGljIGludCBpd2xhZ25fbWFjX2NoYW5nZV9pbnRlcmZhY2Uoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDYtXFx0LypcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jOjE0MDc6XFx0ICogVG8gc2ltcGxpZnkgdGhpcyBjb2RlLCBvbmx5IHN1cHBvcnQgY2hhbmdlcyBvbiB0aGVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9tYWM4MDIxMS5jLTE0MDgtXFx0ICogQlNTIGNvbnRleHQuIFRoZSBQQU4gY29udGV4dCBpcyB1c3VhbGx5IHJlYXNzaWduZWRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MjE1Nz1zdGF0aWMgdm9pZCByc19yYXRlX3NjYWxlX3BlcmZvcm0oc3RydWN0IGl3bF9wcml2ICpwcml2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0yNjAwLSAqICAgICAgIGlmIHRoZSBkcml2ZXIncyBpd2wtYWduLXJzIHJhdGUgc2NhbGluZyBhbGdvcml0aG0gaXMgdXNlZCwgaW5zdGVhZCBvZlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MjYwMTogKiAgICAgICByYzgwMjExX3NpbXBsZS5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTI2MDItICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzA2MT1zdGF0aWMgc3NpemVfdCByc19zdGFfZGJnZnNfc2NhbGVfdGFibGVfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMxNTg6XFx0cmV0ID0gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMxNTktXFx0a2ZyZWUoYnVmZik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjM9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcnNfc3RhX2RiZ2ZzX3NjYWxlX3RhYmxlX29wcyA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2NS1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zY2FsZV90YWJsZV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzE2NjpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzE2Ny1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMxNjk9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3N0YXRzX3RhYmxlX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMDEtXFx0fVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwMjpcXHRyZXQgPSBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsIGJ1ZmYsIGRlc2MpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwMy1cXHRrZnJlZShidWZmKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM9MzIwNz1zdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyByc19zdGFfZGJnZnNfc3RhdHNfdGFibGVfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIwOC1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19zdGF0c190YWJsZV9yZWFkLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIwOTpcXHQub3BlbiA9IHNpbXBsZV9vcGVuLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIxMC1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jPTMyMTM9c3RhdGljIHNzaXplX3QgcnNfc3RhX2RiZ2ZzX3JhdGVfc2NhbGVfZGF0YV9yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYy0zMjI5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmM6MzIzMDpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLCBidWZmLCBkZXNjKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzEtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vcnMuYz0zMjMzPXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZHZtL3JzLmMtMzIzNC1cXHQucmVhZCA9IHJzX3N0YV9kYmdmc19yYXRlX3NjYWxlX2RhdGFfcmVhZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jOjMyMzU6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9ycy5jLTMyMzYtXFx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9kdm0vc2Nhbi5jPTM2PXN0YXRpYyBpbnQgaXdsX3NlbmRfc2Nhbl9hYm9ydChzdHJ1Y3QgaXdsX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjAtXFx0XFx0ICogMiBmb3IgXFxcImZhaWx1cmVcXFwiLiAgQSBmYWlsdXJlIGNvbmRpdGlvbiBjYW4gYmVcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmM6NjE6XFx0XFx0ICogZHVlIHRvIHNpbXBseSBub3QgYmVpbmcgaW4gYW4gYWN0aXZlIHNjYW4gd2hpY2hcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2R2bS9zY2FuLmMtNjItXFx0XFx0ICogY2FuIG9jY3VyIGlmIHdlIHNlbmQgdGhlIHNjYW4gYWJvcnQgYmVmb3JlIHdlXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTI1Mj1lbnVtIGl3bF90b2ZfcmVzcG9uZGVyX2NmZ19mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI3OS0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6MjgwOiAqXFx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTI4MS0gKlxcdHRvIHRoaXMgZmllbGRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9Mjg3PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y2IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzE0LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDozMTU6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtMzE2LSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaD0zMjI9c3RydWN0IGl3bF90b2ZfcmVzcG9uZGVyX2NvbmZpZ19jbWRfdjcge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zNTItICogQHRvYV9vZmZzZXQ6IEFydGlmaWNpYWwgYWRkaXRpb24gW3BTZWNdIGZvciB0aGUgVG9BIC0gdG8gYmUgdXNlZCBmb3IgZGVidWdcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oOjM1MzogKlxcdHB1cnBvc2VzLCBzaW11bGF0aW5nIHN0YXRpb24gbW92ZW1lbnQgYnkgYWRkaW5nIHZhcmlvdXMgdmFsdWVzXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaC0zNTQtICpcXHR0byB0aGlzIGZpZWxkXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oPTM2OT1zdHJ1Y3QgaXdsX3RvZl9yZXNwb25kZXJfY29uZmlnX2NtZF92OCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM5Ny0gKiBAdG9hX29mZnNldDogQXJ0aWZpY2lhbCBhZGRpdGlvbiBbcFNlY10gZm9yIHRoZSBUb0EgLSB0byBiZSB1c2VkIGZvciBkZWJ1Z1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg6Mzk4OiAqXFx0cHVycG9zZXMsIHNpbXVsYXRpbmcgc3RhdGlvbiBtb3ZlbWVudCBieSBhZGRpbmcgdmFyaW91cyB2YWx1ZXNcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9sb2NhdGlvbi5oLTM5OS0gKlxcdHRvIHRoaXMgZmllbGRcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmg9NDE4PXN0cnVjdCBpd2xfdG9mX3Jlc3BvbmRlcl9jb25maWdfY21kX3Y5IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDQ4LSAqIEB0b2Ffb2Zmc2V0OiBBcnRpZmljaWFsIGFkZGl0aW9uIFtwU2VjXSBmb3IgdGhlIFRvQSAtIHRvIGJlIHVzZWQgZm9yIGRlYnVnXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvbG9jYXRpb24uaDo0NDk6ICpcXHRwdXJwb3Nlcywgc2ltdWxhdGluZyBzdGF0aW9uIG1vdmVtZW50IGJ5IGFkZGluZyB2YXJpb3VzIHZhbHVlc1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL2xvY2F0aW9uLmgtNDUwLSAqXFx0dG8gdGhpcyBmaWVsZFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD05Nz1lbnVtIGl3bF9wb3dlcl9mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTExMy0gKlxcdGlzIHVzZWQgYWxzbyB3aXRoIGEgbmV3XFx0cG93ZXIgQVBJIGZvciBkZXZpY2Ugd2lkZSBwb3dlciBzZXR0aW5ncy5cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjExNDogKiBQT1dFUl9UQUJMRV9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xMTUtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTU4PWVudW0gaXdsX2RldmljZV9wb3dlcl9mbGFncyB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE2Ni0gKiBzdHJ1Y3QgaXdsX2RldmljZV9wb3dlcl9jbWQgLSBkZXZpY2Ugd2lkZSBwb3dlciBjb21tYW5kLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTY3OiAqIERFVklDRV9QT1dFUl9DTUQgPSAweDc3IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0xNjgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg9MTcyPXN0cnVjdCBpd2xfZGV2aWNlX3Bvd2VyX2NtZCB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE3OS0gKiBzdHJ1Y3QgaXdsX21hY19wb3dlcl9jbWRfdjIgLSBwb3dlciBjb21tYW5kIFYyIGNvbnRhaW5pbmcgdUFQU0Qgc3VwcG9ydFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmg6MTgwOiAqIE1BQ19QTV9QT1dFUl9UQUJMRSA9IDB4QTkgKGNvbW1hbmQsIGhhcyBzaW1wbGUgZ2VuZXJpYyByZXNwb25zZSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oLTE4MS0gKiBAaWRfYW5kX2NvbG9yOlxcdE1BQyBjb250ZXh0IGlkZW50aWZpZXIsIFxcdTAwMjZlbnVtIGl3bF9jdHh0X2lkX2FuZF9jb2xvclxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaD0yMjA9c3RydWN0IGl3bF9tYWNfcG93ZXJfY21kX3YyIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvYXBpL3Bvd2VyLmgtMjQ3LSAqIHN0cnVjdCBpd2xfbWFjX3Bvd2VyX2NtZCAtIHBvd2VyIGNvbW1hbmRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2FwaS9wb3dlci5oOjI0ODogKiBNQUNfUE1fUE9XRVJfVEFCTEUgPSAweEE5IChjb21tYW5kLCBoYXMgc2ltcGxlIGdlbmVyaWMgcmVzcG9uc2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9hcGkvcG93ZXIuaC0yNDktICogQGlkX2FuZF9jb2xvcjpcXHRNQUMgY29udGV4dCBpZGVudGlmaWVyLCBcXHUwMDI2ZW51bSBpd2xfY3R4dF9pZF9hbmRfY29sb3JcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg9MTYxPXN0YXRpYyBpbmxpbmUgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmg6MTYyOl9pd2xfZndfZGJnX3RyaWdnZXJfc2ltcGxlX3N0b3Aoc3RydWN0IGl3bF9md19ydW50aW1lICpmd3J0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGJnLmgtMTYzLVxcdFxcdFxcdFxcdHN0cnVjdCB3aXJlbGVzc19kZXYgKndkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE3NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjE3NTojZGVmaW5lIGl3bF9md19kYmdfdHJpZ2dlcl9zaW1wbGVfc3RvcChmd3J0LCB3ZGV2LCB0cmlnKVxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oOjE3NjpcXHRfaXdsX2Z3X2RiZ190cmlnZ2VyX3NpbXBsZV9zdG9wKChmd3J0KSwgKHdkZXYpLFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RiZy5oLTE3Ny1cXHRcXHRcXHRcXHRcXHRpd2xfZndfZGJnX2dldF90cmlnZ2VyKChmd3J0KS1cXHUwMDNlZncsXFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy9kZWJ1Z2ZzLmM9Mzc9c3RhdGljIHNzaXplX3QgX2l3bF9kYmdmc18jI25hbWUjI19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvZGVidWdmcy5jLTUxLVxcdFxcdHJldHVybiBkYXRhLVxcdTAwM2VybGVuO1xcdFxcdFxcdFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYzo1MjpcXHRyZXR1cm4gc2ltcGxlX3JlYWRfZnJvbV9idWZmZXIodXNlcl9idWYsIGNvdW50LCBwcG9zLFxcdFxcdFxcXFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L2RlYnVnZnMuYy01My1cXHRcXHRcXHRcXHQgICAgICAgZGF0YS1cXHUwMDNlcmJ1ZiwgZGF0YS1cXHUwMDNlcmxlbik7XFx0XFx0XFxcXFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmg9MzEzPXN0cnVjdCB1ZWZpX2Nudl93cGZjX2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9mdy91ZWZpLmgtMzE5LSAqIFRoaXMgaXMga25vd24gdG8gYmUgYnJva2VuIG9uIHY0LjE5IGFuZCB0byB3b3JrIG9uIHY1LjQuICBVbnRpbCB3ZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvZncvdWVmaS5oOjMyMDogKiBmaWd1cmUgb3V0IHdoeSB0aGlzIGlzIHRoZSBjYXNlIGFuZCBob3cgdG8gbWFrZSBpdCB3b3JrLCBzaW1wbHlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2Z3L3VlZmkuaC0zMjEtICogZGlzYWJsZSB0aGUgZmVhdHVyZSBpbiBvbGQga2VybmVscy5cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTE3LSAqIFVzZSBpd2xfd3JpdGUzMigpIGFuZCBpd2xfcmVhZDMyKCkgZmFtaWx5IHRvIGFjY2VzcyB0aGVzZSByZWdpc3RlcnM7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmg6MTg6ICogdGhlc2UgcHJvdmlkZSBzaW1wbGUgUENJIGJ1cyBhY2Nlc3MsIHdpdGhvdXQgd2FraW5nIHVwIHRoZSBNQUMuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtY3NyLmgtMTktICogRG8gbm90IHVzZSBpd2xfd3JpdGVfZGlyZWN0MzIoKSBmYW1pbHkgZm9yIHRoZXNlIHJlZ2lzdGVycztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oPTMyMT1lbnVtIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTUwOS0gKiBEbyBub3QgdXNlIGl3bF93cml0ZTMyKCkvaXdsX3JlYWQzMigpIGZhbWlseSB0byBhY2Nlc3MgdGhlc2UgcmVnaXN0ZXJzO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oOjUxMDogKiB0aGVzZSBwcm92aWRlIG9ubHkgc2ltcGxlIFBDSSBidXMgYWNjZXNzLCB3aXRob3V0IHdha2luZyB1cCB0aGUgTUFDLlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWNzci5oLTUxMS0gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmg9MTAyPWRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcdFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTEzLSAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZGVidWcuaDoxMTQ6ICogSWYgeW91IGFyZSBkZWZpbmluZyBhIG5ldyBkZWJ1ZyBjbGFzc2lmaWNhdGlvbiwgc2ltcGx5IGFkZCBpdCB0byB0aGUgI2RlZmluZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRlYnVnLmgtMTE1LSAqIGxpc3QgaGVyZSBpbiB0aGUgZm9ybSBvZlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oPTIwPXN0cnVjdCBpd2xfcmZfY2ZnO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oLTM2LSAqXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oOjM3OiAqIFRoZSBvcGVyYXRpb25hbCBtb2RlIGhhcyBhIHZlcnkgc2ltcGxlIGxpZmUgY3ljbGUuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtb3AtbW9kZS5oLTM4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL2l3bC11dGlscy5jPTg2PXN0YXRpYyB1MzIgaXdsX2Rpdl9ieV9kYih1MzIgdmFsdWUsIHU4IGRiKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdXRpbHMuYy04OC1cXHQvKlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmM6ODk6XFx0ICogMl4zMiAqIDEwKiooaSAvIDEwKSBmb3IgaSA9IFsxLCAxMF0sIHNraXBwaW5nIDAgYW5kIHNpbXBseSBzdG9wcGluZ1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXV0aWxzLmMtOTAtXFx0ICogYXQgMTAgZEIgYW5kIGxvb3BpbmcgaW5zdGVhZCBvZiB1c2luZyBhIG11Y2ggbGFyZ2VyIHRhYmxlLlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oLTE3NC0gKiBDU01FIGNhbiB0cmFuc21pdCBwYWNrZXRzLCB0aHJvdWdoIHRoZSBuZXRkZXYgdGhhdCBpdCBnZXRzIGZyb20gdGhlIHdpZmlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg6MTc1OiAqIGRyaXZlci4gSXQnbGwgc2VuZCBwYWNrZXQgaW4gdGhlIDgwMi4zIGZvcm1hdCBhbmQgc2ltcGx5IGNhbGxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmgtMTc2LSAqIGRldl9xdWV1ZV94bWl0Llxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvaXdsLW1laS5oPTQyOD12b2lkIGl3bF9tZWlfc2V0X25ldGRldihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MzYtICpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9pd2wtbWVpLmg6NDM3OiAqIFRoaXMgZnVuY3Rpb24gZG9lc24ndCB0YWtlIGFueSBsb2NrLCBpdCBzaW1wbHkgdHJpZXMgdG8gY2F0Y2ggREhDUFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL2l3bC1tZWkuaC00MzgtICogcGFja2V0cyBzZW50IGJ5IHRoZSB3aWZpIGRyaXZlci4gSWYgdGhlIHBhY2tldCBpcyBhIERIQ1AgcGFja2V0LCBpdFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jPTE5MDA9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX21laV9kYmdmc19zZW5kX3N0YXJ0X21lc3NhZ2Vfb3BzID0ge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYy0xOTAxLVxcdC53cml0ZSA9IGl3bF9tZWlfZGJnZnNfc2VuZF9zdGFydF9tZXNzYWdlX3dyaXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWVpL21haW4uYzoxOTAyOlxcdC5vcGVuID0gc2ltcGxlX29wZW4sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jLTE5MDMtXFx0Lmxsc2VlayA9IGRlZmF1bHRfbGxzZWVrLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jPTE5MTU9c3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgaXdsX21laV9kYmdmc19yZXFfb3duZXJzaGlwX29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkxNi1cXHQud3JpdGUgPSBpd2xfbWVpX2RiZ2ZzX3JlcV9vd25lcnNoaXBfd3JpdGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tZWkvbWFpbi5jOjE5MTc6XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21laS9tYWluLmMtMTkxOC1cXHQubGxzZWVrID0gZGVmYXVsdF9sbHNlZWssXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MzU9c3RhdGljIHNzaXplX3QgX2l3bF9kYmdmc18jI25hbWUjI19yZWFkKHN0cnVjdCBmaWxlICpmaWxlLFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC00OS1cXHRcXHRyZXR1cm4gZGF0YS1cXHUwMDNlcmxlbjtcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oOjUwOlxcdHJldHVybiBzaW1wbGVfcmVhZF9mcm9tX2J1ZmZlcih1c2VyX2J1ZiwgY291bnQsIHBwb3MsXFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC01MS1cXHRcXHRcXHRcXHQgICAgICAgZGF0YS1cXHUwMDNlYnVmLCBkYXRhLVxcdTAwM2VybGVuKTtcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MTAxPXN0YXRpYyBzc2l6ZV90IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3dyaXRlKHN0cnVjdCBmaWxlICpmaWxlLFxcdFxcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaC0xMTktXFx0XFx0LndyaXRlID0gX19pd2xfZGJnZnNfIyNuYW1lIyNfd3JpdGUsXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvbWxkL2RlYnVnZnMuaDoxMjA6XFx0XFx0Lm9wZW4gPSBzaW1wbGVfb3BlbixcXHRcXHRcXHRcXHRcXHRcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvZGVidWdmcy5oLTEyMS1cXHRcXHQubGxzZWVrID0gZ2VuZXJpY19maWxlX2xsc2VlayxcXHRcXHRcXHRcXHRcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9kZWJ1Z2ZzLmg9MTYyPXN0YXRpYyBzc2l6ZV90IF9faXdsX2RiZ2ZzXyMjbmFtZSMjX3JlYWQoc3RydWN0IGZpbGUgKmZpbGUsXFx0XFx0XFxcXFxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxNzozOTo0OC4xMzg0Mjk0MDZaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxODAyODMzMDM2MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQncyBpbnRlcm5hbCBtb25vbG9ndWU6XG5cbioqSW52ZXN0aWdhdGluZyBpd2x3aWZpIE1vZHVsZSBMb2FkaW5nIGFuZCBEZXZpY2UgQXR0YWNobWVudCoqXG5cblJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhlIGd1dHMgb2YgdGhpcyBgaXdsd2lmaWAgbW9kdWxlLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgXCJPa2F5LCBob3cgKmV4YWN0bHkqIGlzIHRoaXMgdGhpbmcgbG9hZGVkIGFuZCwgbW9yZSBpbXBvcnRhbnRseSwgaG93IGRvZXMgaXQgZXN0YWJsaXNoIGl0cyByZWxhdGlvbnNoaXAgd2l0aCB0aGUgUENJIGRldmljZXMgaXQncyBzdXBwb3NlZCB0byBjb250cm9sP1wiIFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIG9wZXJhdGlvbiwgZXNwZWNpYWxseSBpZiBJJ20gdHJvdWJsZXNob290aW5nIG9yIHRyeWluZyB0byBpbnRlZ3JhdGUgYSBuZXcgZGV2aWNlLlxuXG5TbywgZmlyc3QgdGhpbmcgSSdsbCBkbyBpcyB6ZXJvIGluIG9uIHRoZSBrZXkgcmVnaXN0cmF0aW9uIHBvaW50cy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgYGdyZXBgIHRoZSBgaXdsd2lmaWAgc291cmNlIGZvciBlaXRoZXIgYHBjaV9yZWdpc3Rlcl9kcml2ZXJgIG9yIGBtb2R1bGVfcGNpX2RyaXZlcmAuIFRob3NlIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMsIGFuZCB0aGV5IGFyZSB3aGF0IEknZCBleHBlY3QgdG8gc2VlLiBUaGV5IGFyZSBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgdG8gY29uZmlybSBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBtb2R1bGUncyBvcGVyYXRpb25hbCBwYXRoLiBUaGF0IHdpbGwgcXVpY2tseSB0ZWxsIG1lIHdoZXJlIHRoZSBkcml2ZXIgaXMgYmVpbmcgcmVnaXN0ZXJlZCB3aXRoIHRoZSBQQ0kgc3Vic3lzdGVtLCBhbmQgd2hpY2ggZGV2aWNlcyBpdCdzIHNwZWNpZmljYWxseSBjb25maWd1cmVkIHRvIHN1cHBvcnQuIEZyb20gdGhlcmUsIEkgY2FuIGJlZ2luIHRvIHVucmF2ZWwgaXRzIGRldmljZSBwcm9iZSBhbmQgYXR0YWNoIGZ1bmN0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ4ODYsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxNzo0MDowNi4xNjY3NjI0NjdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQzOTA3NDk2MiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfcmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmlcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM9MjA5Nz1zdGF0aWMgaW50IF9faW5pdCBpd2xfZHJ2X2luaXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMDgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtZHJ2LmM6MjEwOTpcXHRlcnIgPSBpd2xfcGNpX3JlZ2lzdGVyX2RyaXZlcigpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLWRydi5jLTIxMTAtXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmg9MTE0MT1zdGF0aWMgaW5saW5lIHZvaWQgaXdsX3RyYW5zX25vdGlmeV9md19lcnJvcihzdHJ1Y3QgaXdsX3RyYW5zICp0cmFucylcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvaXdsLXRyYW5zLmgtMTE0OC0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaDoxMTQ5OmludCBfX211c3RfY2hlY2sgaXdsX3BjaV9yZWdpc3Rlcl9kcml2ZXIodm9pZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9pd2wtdHJhbnMuaC0xMTUwLXZvaWQgaXdsX3BjaV91bnJlZ2lzdGVyX2RyaXZlcih2b2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYz0xMzM4PXN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBpd2xfcGNpX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYy0xMzQ2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuYzoxMzQ3OmludCBfX211c3RfY2hlY2sgaXdsX3BjaV9yZWdpc3Rlcl9kcml2ZXIodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmMtMTM0OC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzNDktXFx0aW50IHJldDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvZHJ2LmM6MTM1MDpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZpd2xfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jLTEzNTEtXFx0aWYgKHJldClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6NDA6MDYuNjA1ODQ2NTM5WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjcyNjM4NDM1NjQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBUaG91Z2h0cyBvbiB0aGUgYGl3bHdpZmlgIERyaXZlcioqXG5cbk9rYXksIHNvIGBpd2x3aWZpYCByZWdpc3RlcnMgaXRzZWxmIGFzIGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IGBpd2xfcGNpX2RyaXZlcmAuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdG8gcXVpY2tseSBhc2NlcnRhaW4gdGhlIHNjb3BlIG9mIHRoaXMgZHJpdmVyLiBJcyB0aGlzIHNvbGVseSBkZWRpY2F0ZWQgdG8gSW50ZWwgd2lyZWxlc3MgY2FyZHMgYW5kIHRoZWlyIFBDSSBpbnRlcmZhY2VzPyBHaXZlbiBteSBkZWVwIHVuZGVyc3RhbmRpbmcgb2YgZHJpdmVyIGFyY2hpdGVjdHVyZXMsIG15IGZpcnN0IGluc3RpbmN0IGlzIHRvIGNvbmZpcm0gdGhpcyBzdXNwaWNpb24sIGFuZCBJJ2xsIGp1bXAgcmlnaHQgaW50byB0aGUgc291cmNlIGNvZGUgdG8gZ2V0IGEgZGVmaW5pdGl2ZSBhbnN3ZXIuIExldCdzIHN0YXJ0IHdpdGggYGRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9kcnYuY2AuIFRoaXMgc2VlbXMgbGlrZSB0aGUgb2J2aW91cyBwbGFjZSB0byBiZWdpbiwgZ2l2ZW4gdGhlIGZvY3VzIG9uIFwicGNpZS5cIiBJJ20gZXhwZWN0aW5nIHRoaXMgZmlsZSB0byBob2xkIHRoZSBjb3JlIFBDSS1zcGVjaWZpYyBpbml0aWFsaXphdGlvbiBhbmQgZnVuY3Rpb24gdGFibGUgZGVmaW5pdGlvbnMuIE15IGdvYWwgaXMgdG8gcXVpY2tseSB1bmRlcnN0YW5kIHRoZSBkcml2ZXIncyBwdXJwb3NlIGFuZCBpdHMgcG90ZW50aWFsIGxpbWl0YXRpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTc1NywiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE3OjQwOjEzLjg2OTY5OTIwM1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzY5NzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL2Rydi5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEzMzAsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjEzMzA6XFx0c3RhdGljIHZvaWQgaXdsX3BjaV9kdW1wKHN0cnVjdCBkZXZpY2UgKmRldmljZSlcXG4xMzMxOlxcdHtcXG4xMzMyOlxcdFxcdHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gdG9fcGNpX2RldihkZXZpY2UpO1xcbjEzMzM6XFx0XFx0c3RydWN0IGl3bF90cmFucyAqdHJhbnMgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XFxuMTMzNDpcXHRcXG4xMzM1OlxcdFxcdGl3bF9vcF9tb2RlX2R1bXAodHJhbnMtXFx1MDAzZW9wX21vZGUpO1xcbjEzMzY6XFx0fVxcbjEzMzc6XFx0XFxuMTMzODpcXHRzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgaXdsX3BjaV9kcml2ZXIgPSB7XFxuMTMzOTpcXHRcXHQubmFtZSA9IERSVl9OQU1FLFxcbjEzNDA6XFx0XFx0LmlkX3RhYmxlID0gaXdsX2h3X2NhcmRfaWRzLFxcbjEzNDE6XFx0XFx0LnByb2JlID0gaXdsX3BjaV9wcm9iZSxcXG4xMzQyOlxcdFxcdC5yZW1vdmUgPSBpd2xfcGNpX3JlbW92ZSxcXG4xMzQzOlxcdFxcdC5kcml2ZXIucG0gPSBJV0xfUE1fT1BTLFxcbjEzNDQ6XFx0XFx0LmRyaXZlci5jb3JlZHVtcCA9IGl3bF9wY2lfZHVtcCxcXG4xMzQ1OlxcdH07XFxuMTM0NjpcXHRcXG4xMzQ3OlxcdGludCBfX211c3RfY2hlY2sgaXdsX3BjaV9yZWdpc3Rlcl9kcml2ZXIodm9pZClcXG4xMzQ4OlxcdHtcXG4xMzQ5OlxcdFxcdGludCByZXQ7XFxuMTM1MDpcXHRcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZpd2xfcGNpX2RyaXZlcik7XFxuMTM1MTpcXHRcXHRpZiAocmV0KVxcbjEzNTI6XFx0XFx0XFx0cHJfZXJyKFxcXCJVbmFibGUgdG8gaW5pdGlhbGl6ZSBQQ0kgbW9kdWxlXFxcXG5cXFwiKTtcXG4xMzUzOlxcdFxcbjEzNTQ6XFx0XFx0cmV0dXJuIHJldDtcXG4xMzU1OlxcdH1cXG4xMzU2OlxcdFxcbjEzNTc6XFx0dm9pZCBpd2xfcGNpX3VucmVnaXN0ZXJfZHJpdmVyKHZvaWQpXFxuMTM1ODpcXHR7XFxuMTM1OTpcXHRcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNml3bF9wY2lfZHJpdmVyKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6NDA6MTMuODY5ODM5MjkzWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjUwMDY4NTM3ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjpcblxuKipJbnZlc3RpZ2F0aW5nIGl3bHdpZmkgVHJhbnNwb3J0IFR5cGVzKipcblxuT2theSwgc28gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHRoZSB0cmFuc3BvcnQgdHlwZXMgdXNlZCB3aXRoaW4gdGhlIGBpd2x3aWZpYCBkcml2ZXIuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gc2VlIGlmIGFueSBub24tUENJIHRyYW5zcG9ydHMgaGF2ZSBjcmVwdCBpbi4gVGhlIG1vc3QgZGlyZWN0IGFwcHJvYWNoIGlzIHRvIGNoZWNrIHRoZSBgTWFrZWZpbGVgIGxvY2F0ZWQgaW4gdGhlIGBpd2x3aWZpYCBkaXJlY3RvcnkuIFRoaXMgZmlsZSBzaG91bGQgZGVmaW5lIHRoZSBidWlsZCBwcm9jZXNzIGFuZCBsaWtlbHkgaW5jbHVkZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBvciBmaWxlIGluY2x1c2lvbiBiYXNlZCBvbiB0aGUgdHJhbnNwb3J0IHR5cGUuIEJ5IGV4YW1pbmluZyB0aGlzIGBNYWtlZmlsZWAsIEkgc2hvdWxkIGdldCBhIGNsZWFyIG92ZXJ2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjUwNywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6NDA6MTguODc2Njk1MzQyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwOTEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvTWFrZWZpbGVcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNjBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuICAgMjpcXHQjIGNvbW1vblxcbiAgIDM6XFx0b2JqLSQoQ09ORklHX0lXTFdJRkkpXFx0Kz0gaXdsd2lmaS5vXFxuICAgNDpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtaW8ub1xcbiAgIDU6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWRydi5vXFxuICAgNjpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtZGVidWcub1xcbiAgIDc6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLW52bS11dGlscy5vXFxuICAgODpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBpd2wtdXRpbHMub1xcbiAgIDk6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLXBoeS1kYi5vIGl3bC1udm0tcGFyc2Uub1xcbiAgMTA6XFx0XFxuICAxMTpcXHQjIEJ1c1xcbiAgMTI6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gcGNpZS9jdHh0LWluZm8ubyBwY2llL2N0eHQtaW5mby12Mi5vIHBjaWUvZHJ2Lm8gcGNpZS91dGlscy5vXFxuICAxMzpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBwY2llL2dlbjFfMi9yeC5vIHBjaWUvZ2VuMV8yL3R4Lm8gcGNpZS9nZW4xXzIvdHJhbnMub1xcbiAgMTQ6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gcGNpZS9nZW4xXzIvdHJhbnMtZ2VuMi5vIHBjaWUvZ2VuMV8yL3R4LWdlbjIub1xcbiAgMTU6XFx0XFxuICAxNjpcXHRDRkxBR1NfcGNpZS9kcnYubyArPSAtV25vLW92ZXJyaWRlLWluaXRcXG4gIDE3OlxcdFxcbiAgMTg6XFx0IyBjb21iaW5lZCBNQUMvUkYgY29uZmlndXJhdGlvbnNcXG4gIDE5OlxcdGl3bHdpZmktJChDT05GSUdfSVdMRFZNKSArPSBjZmcvMTAwMC5vIGNmZy8yMDAwLm9cXG4gIDIwOlxcdGl3bHdpZmktJChDT05GSUdfSVdMRFZNKSArPSBjZmcvNTAwMC5vIGNmZy82MDAwLm9cXG4gIDIxOlxcdGl3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBjZmcvNzAwMC5vIGNmZy84MDAwLm9cXG4gIDIyOlxcdCMgTUFDIGNvbmZpZ3VyYXRpb25zXFxuICAyMzpcXHRpd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnLzkwMDAubyBjZmcvMjIwMDAub1xcbiAgMjQ6XFx0aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy9heDIxMC5vXFxuICAyNTpcXHRpd2x3aWZpLSQoQ09ORklHX0lXTE1WTSkgKz0gY2ZnL2J6Lm8gY2ZnL3NjLm9cXG4gIDI2OlxcdGl3bHdpZmktJChDT05GSUdfSVdMTUxEKSArPSBjZmcvYnoubyBjZmcvc2MubyBjZmcvZHIub1xcbiAgMjc6XFx0IyBSRiBjb25maWd1cmF0aW9uc1xcbiAgMjg6XFx0aXdsd2lmaS0kKENPTkZJR19JV0xNVk0pICs9IGNmZy9yZi1qZi5vIGNmZy9yZi1oci5vIGNmZy9yZi1nZi5vXFxuICAyOTpcXHRpd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgKz0gY2ZnL3JmLWZtLm8gY2ZnL3JmLXdoLm8gY2ZnL3JmLXBlLm9cXG4gIDMwOlxcdFxcbiAgMzE6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLWRiZy10bHYub1xcbiAgMzI6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gaXdsLXRyYW5zLm9cXG4gIDMzOlxcdFxcbiAgMzQ6XFx0aXdsd2lmaS1vYmpzXFx0XFx0Kz0gZncvaW1nLm8gZncvbm90aWYtd2FpdC5vIGZ3L3JzLm9cXG4gIDM1OlxcdGl3bHdpZmktb2Jqc1xcdFxcdCs9IGZ3L2RiZy5vIGZ3L2RiZy1vbGQubyBmdy9wbnZtLm8gZncvZHVtcC5vXFxuICAzNjpcXHRpd2x3aWZpLW9ianNcXHRcXHQrPSBmdy9yZWd1bGF0b3J5Lm9cXG4gIDM3OlxcdGl3bHdpZmktJChDT05GSUdfSVdMTVZNKSArPSBmdy9wYWdpbmcubyBmdy9zbWVtLm8gZncvaW5pdC5vXFxuICAzODpcXHRpd2x3aWZpLSQoQ09ORklHX0lXTE1MRCkgKz0gZncvc21lbS5vIGZ3L2luaXQub1xcbiAgMzk6XFx0aXdsd2lmaS0kKENPTkZJR19BQ1BJKSArPSBmdy9hY3BpLm9cXG4gIDQwOlxcdGl3bHdpZmktJChDT05GSUdfRUZJKVxcdCs9IGZ3L3VlZmkub1xcbiAgNDE6XFx0aXdsd2lmaS0kKENPTkZJR19JV0xXSUZJX0RFQlVHRlMpICs9IGZ3L2RlYnVnZnMub1xcbiAgNDI6XFx0XFxuICA0MzpcXHRpd2x3aWZpLW9ianMgKz0gJChpd2x3aWZpLW0pXFxuICA0NDpcXHRcXG4gIDQ1OlxcdGl3bHdpZmktJChDT05GSUdfSVdMV0lGSV9ERVZJQ0VfVFJBQ0lORykgKz0gaXdsLWRldnRyYWNlLm9cXG4gIDQ2OlxcdFxcbiAgNDc6XFx0Y2NmbGFncy15ICs9IC1JJChzcmMpXFxuICA0ODpcXHRcXG4gIDQ5OlxcdG9iai0kKENPTkZJR19JV0xEVk0pXFx0Kz0gZHZtL1xcbiAgNTA6XFx0b2JqLSQoQ09ORklHX0lXTE1WTSlcXHQrPSBtdm0vXFxuICA1MTpcXHRvYmotJChDT05GSUdfSVdMTUVJKVxcdCs9IG1laS9cXG4gIDUyOlxcdG9iai0kKENPTkZJR19JV0xNTEQpXFx0Kz0gbWxkL1xcbiAgNTM6XFx0XFxuICA1NDpcXHRvYmotJChDT05GSUdfSVdMV0lGSV9LVU5JVF9URVNUUykgKz0gdGVzdHMvXFxuICA1NTpcXHRcXG4gIDU2OlxcdENGTEFHU19pd2wtZGV2dHJhY2UubyA6PSAtSSQoc3JjKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0zMVQxNzo0MDoxOC44NzY3Njc1MjJaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6Njk4MjY1MTc2OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBOb3QgV29ydGggRnV6emluZyoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93biBzeXN0ZW1hdGljYWxseS4gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQsIGJhc2VkIG9uIG15IHVuZGVyc3RhbmRpbmcgb2YgaG93IGZ1enppbmcgd29ya3MgaW4gdGhlc2UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCBJJ20gbGVhbmluZyB0b3dhcmRzIGRlZW1pbmcgdGhpcyBjaGFuZ2Ugbm90IHdvcnRoIGltbWVkaWF0ZSBmdXp6aW5nLiBIZXJlJ3MgbXkgcmVhc29uaW5nLCBwaWVjZSBieSBwaWVjZTpcblxuRmlyc3QsIGBpd2x3aWZpYCBhbmQgYElXTE1MRGAsIHRoZSBXaUZpIDcgTUxEIG9wLW1vZGUsIGFyZSBzcGVjaWZpY2FsbHkgdGllZCB0byBJbnRlbCBQQ0llIHdpcmVsZXNzIGhhcmR3YXJlLiBXZSdyZSB0YWxraW5nIHBoeXNpY2FsIGNhcmRzIGhlcmUsIGNvbm5lY3RlZCB2aWEgUENJZSAoYHBjaWUvZHJ2LmNgLCBgcGNpZS8uLi5gKS5cblxuTm93LCBjb25zaWRlcmluZyB0aGUgcnVsZXMgd2UgaGF2ZSBmb3IgZGV0ZXJtaW5pbmcgaWYgYSBwYXRjaCB3YXJyYW50cyBmdXp6aW5nLCBsZXQncyBnbyB0aHJvdWdoIHRoZSBjaGVja2xpc3QuIFRoZSBydWxlcyBleHBsaWNpdGx5IHN0YXRlIHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggaW52b2x2ZXMgY2hhbmdlcyByZWxhdGVkIHRvOiBkb2N1bWVudGF0aW9uLCBLY29uZmlnLCBjb21tZW50cywgbG9nZ2luZywgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBudW1lcmljIGNvbnN0YW50cyB0aGF0IGRvbid0IGFsdGVyIGZsb3csIG9yIHVucmVhY2hhYmxlIGNvZGUuIFVucmVhY2hhYmxlIGNvZGUgaXMgdGhlIGNyaXRpY2FsIHBhcnQgaGVyZS5cblxuSSdtIHRoaW5raW5nLCBpcyBgaXdsd2lmaWAgYWNjZXNzaWJsZSBpbiBhIHZpcnR1YWxpemVkIFFFTVUgb3IgR0NFIGVudmlyb25tZW50PyBUaGUgYW5zd2VyIGlzIGEgY2xlYXIgbm8uIFFFTVUsIGluIGl0cyBzdGFuZGFyZCBjb25maWd1cmF0aW9uLCBkb2Vzbid0IGVtdWxhdGUgdGhlc2Ugc3BlY2lmaWMgSW50ZWwgd2lyZWxlc3MgTklDcy4gV2UgdXNlIGBtYWM4MDIxMV9od3NpbWAsIG9yIG90aGVyIHZpcnR1YWwgaW50ZXJmYWNlcyBvciBVU0IgZ2FkZ2V0IGFkYXB0ZXJzIHN1Y2ggYXMgdGhvc2UgYmFzZWQgb24gcnRsODE4OGV1LCBmb3IgZnV6emluZyBpbiBlbnZpcm9ubWVudHMgbGlrZSBTeXprYWxsZXIuIFZlbmRvci1zcGVjaWZpYyBQQ0llIHdpcmVsZXNzIGRyaXZlcnMgc3VjaCBhcyBpd2x3aWZpLCBhdGgxMGsgcGNpLCBhdGgxMWsgcGNpLCBydHc4OCBwY2ksIGV0YyBhcmUgbm90IHJlYWNoYWJsZSBpbiBzdGFuZGFyZCBRRU1VLiBUaGF0J3Mgb3VyIGZ1enppbmcgZW52aXJvbm1lbnQuXG5cblNvLCB0aGlzIHBhdGNoIG1vZGlmaWVzIGBpd2xfbWxkX3Jlb3JkZXJgIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL21sZC9hZ2cuY2AsIHNwZWNpZmljYWxseSB0byBhZGQgYSBib3VuZHMgY2hlY2sgb24gYGJhaWRgLiBUaGUgY29kZSBpcyBwYXJ0IG9mIHRoZSBgaXdsd2lmaWAgZHJpdmVyLCBhbmQgaXMgb25seSByZWFjaGVkIHdoZW4gcmVjZWl2aW5nIHdpcmVsZXNzIGZyYW1lcyBvbiAqcGh5c2ljYWwqIEludGVsIFdpRmkgaGFyZHdhcmUuXG5cbkdpdmVuIHRoYXQgdGhpcyByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlLCB3aGljaCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnRzLCB0aGlzIGNvZGUgaXMgKnVucmVhY2hhYmxlKiBpbiB0aGUgZnV6emluZyBjb250ZXh0IHdlJ3JlIGNvbnNpZGVyaW5nLiBUaGUgZW52aXJvbm1lbnQgd2UncmUgd29ya2luZyBpbiBpcyB2aXJ0dWFsaXplZCwgYW5kIGxhY2tzIHRoZSBuZWNlc3NhcnkgcGh5c2ljYWwgY29tcG9uZW50LiBUaGVyZWZvcmUsIGFjY29yZGluZyB0byB0aGUgcnVsZXMsIEknbSBjb25maWRlbnQgaW4gY2FsbGluZyBgV29ydGhGdXp6aW5nPWZhbHNlYC4gVGltZSB0byBjYWxsIGBzZXQtcmVzdWx0c2AuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM3ODkxLCJPdXRwdXRUb2tlbnMiOjEzMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYxMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTMxVDE3OjQwOjI1Ljg1OTQyMDk2WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ2NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGl3bF9tbGRfcmVvcmRlcigpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgIHRvIGFkZCBhIGJvdW5kcyBjaGVjayBmb3IgYGJhaWRgLiBUaGUgYGl3bHdpZmlgIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgSW50ZWwgUENJZSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJzLCB3aGljaCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgR0NFKS4gVGhlcmVmb3JlLCB0aGVzZSBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGl3bF9tbGRfcmVvcmRlcigpYCBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tbGQvYWdnLmNgIHRvIGFkZCBhIGJvdW5kcyBjaGVjayBmb3IgYGJhaWRgLiBUaGUgYGl3bHdpZmlgIGRyaXZlciBvcGVyYXRlcyBvbiB2ZW5kb3Itc3BlY2lmaWMgSW50ZWwgUENJZSB3aXJlbGVzcyBuZXR3b3JrIGFkYXB0ZXJzLCB3aGljaCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgYW5kIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgKHN1Y2ggYXMgR0NFKS4gVGhlcmVmb3JlLCB0aGVzZSBjb2RlIHBhdGhzIGNhbm5vdCBiZSByZWFjaGVkIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMzFUMTc6NDA6MjUuODU5NDQ4ODZaIiwiU2VxIjoxNywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+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-workflow284wc[1] Phase: Running StartedAt: 2026-08-31 17:40:36 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow284wc[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-31 17:40:36 +0000 UTC FinishedAt: 2026-08-31 17:40:41 +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,}