Name: series-workflowfh96l Phase: Failed StartedAt: 2026-09-05 09:55:12 +0000 UTC FinishedAt: 2026-09-05 10:39:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfh96l[0] Phase: Succeeded StartedAt: 2026-09-05 09:55:12 +0000 UTC FinishedAt: 2026-09-05 10:39:46 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfh96l[0].run-triage Phase: Succeeded StartedAt: 2026-09-05 09:55:12 +0000 UTC FinishedAt: 2026-09-05 10:39:46 +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+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgbXQ3NjAzX21hY19pbml0KCkgaW4gdGhlIE1lZGlhVGVrIE1UNzYwMyB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc2MDNFKS4gVGhpcyBkcml2ZXIgc3VwcG9ydHMgb25seSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2VzIChNVDc2MDNFKSBhbmQgU29DIHBsYXRmb3JtcyAoTVQ3NjI4L01UNzY4OCksIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSBhbmQgZG8gbm90IHN1cHBvcnQgVVNCIGVtdWxhdGlvbi4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgM2NlNDQ2Mjk1NjIxMTZhOWNlZDVjNmFmOGExMWMyYmM2N2E0YTRhNlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgU2VwIDUgMTA6Mzk6MDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jXG5pbmRleCAxMGYyZWM3MGM3OTJiLi4yMThlYzQwNmQyYTg3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmNcbkBAIC0yMzAsNiAmIzQzOzIzMCw3IEBAIG10NzYwM19tYWNfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuIFxuIFx0ZXRoX2Jyb2FkY2FzdF9hZGRyKGJjX2FkZHIpO1xuIFx0bXQ3NjAzX3d0YmxfaW5pdChkZXYsIE1UNzYwM19XVEJMX1JFU0VSVkVELCAtMSwgYmNfYWRkcik7XG4mIzQzO1x0bXQ3Nl93Y2lkX2luaXQoXHUwMDI2ZGV2LVx1MDAzZWdsb2JhbF9zdGEud2NpZCwgMCk7XG4gXHRkZXYtXHUwMDNlZ2xvYmFsX3N0YS53Y2lkLmlkeCA9IE1UNzYwM19XVEJMX1JFU0VSVkVEO1xuIFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2VtdDc2LndjaWRbTVQ3NjAzX1dUQkxfUkVTRVJWRURdLFxuIFx0XHRcdCAgIFx1MDAyNmRldi1cdTAwM2VnbG9iYWxfc3RhLndjaWQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG10NzYwM19tYWNfaW5pdCgpIGluIHRoZSBNZWRpYVRlayBNVDc2MDMgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3NjAzRSkuIFRoaXMgZHJpdmVyIHN1cHBvcnRzIG9ubHkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlcyAoTVQ3NjAzRSkgYW5kIFNvQyBwbGF0Zm9ybXMgKE1UNzYyOC9NVDc2ODgpLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgYW5kIGRvIG5vdCBzdXBwb3J0IFVTQiBlbXVsYXRpb24uIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDNjZTQ0NjI5NTYyMTE2YTljZWQ1YzZhZjhhMTFjMmJjNjdhNGE0YTYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IFNlcCA1IDEwOjM5OjAzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jCmluZGV4IDEwZjJlYzcwYzc5MmIuLjIxOGVjNDA2ZDJhODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMKQEAgLTIzMCw2ICYjNDM7MjMwLDcgQEAgbXQ3NjAzX21hY19pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpCiAKIAlldGhfYnJvYWRjYXN0X2FkZHIoYmNfYWRkcik7CiAJbXQ3NjAzX3d0YmxfaW5pdChkZXYsIE1UNzYwM19XVEJMX1JFU0VSVkVELCAtMSwgYmNfYWRkcik7CiYjNDM7CW10NzZfd2NpZF9pbml0KCZhbXA7ZGV2LSZndDtnbG9iYWxfc3RhLndjaWQsIDApOwogCWRldi0mZ3Q7Z2xvYmFsX3N0YS53Y2lkLmlkeCA9IE1UNzYwM19XVEJMX1JFU0VSVkVEOwogCXJjdV9hc3NpZ25fcG9pbnRlcihkZXYtJmd0O210NzYud2NpZFtNVDc2MDNfV1RCTF9SRVNFUlZFRF0sCiAJCQkgICAmYW1wO2Rldi0mZ3Q7Z2xvYmFsX3N0YS53Y2lkKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk4MwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE2NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaW4gZnJvbnQgb2YgbWUsIGFuZCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBkZWNpZGUgaWYgaXQmIzM5O3Mgd29ydGggdGhlIGZ1enppbmcgZWZmb3J0LiBJdCBsb29rcyBsaWtlIHdlJiMzOTtyZSBkaXZpbmcgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuY2AgZmlsZSwgc3BlY2lmaWNhbGx5IHRoZSBgbXQ3NjAzX21hY19pbml0YCBmdW5jdGlvbi4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIGFkZGl0aW9uIG9mIGBtdDc2X3djaWRfaW5pdCgmYW1wO2Rldi0mZ3Q7Z2xvYmFsX3N0YS53Y2lkLCAwKTtgLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgYnV0IEkgbmVlZCBtb3JlIGNvbnRleHQgYmVmb3JlIEkgbWFrZSBhbnkganVkZ2VtZW50cy4KCkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBtdDc2MDNgIGFjdHVhbGx5ICppcyouIElzIGl0IGEgUENJZSBkZXZpY2U/IEEgU3lzdGVtLW9uLUNoaXAgKFNvQykgY29tcG9uZW50PyBVU0I/IFRoaXMgZHJpdmVzIHRoZSBhdHRhY2sgc3VyZmFjZSBJIGhhdmUgdG8gY29uc2lkZXIuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBnZXQgYSBsYXkgb2YgdGhlIGxhbmQgaGVyZS4gSSYjMzk7bGwgcHJvYmFibHkgZmlyZSB1cCBgZ3JlcGAgKG9yIHBvc3NpYmx5IGp1c3QgYHJlYWQtZmlsZWAgYW5kIGEgZ29vZCBzZWFyY2gpIGFuZCBkaWcgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2AgZGlyZWN0b3J5LiBJIHdhbnQgdG8gc2VlIGhvdyBgbXQ3NjAzYCBpcyBwcm9iZWQsIGhvdyBpdCYjMzk7cyB1c2VkLCBhbmQgd2hhdCBkYXRhIHN0cnVjdHVyZXMgYXJlIGludm9sdmVkLiBUaGlzIHdpbGwgdGVsbCBtZSBpZiB0aGUgbmV3IGB3Y2lkYCBpbml0aWFsaXphdGlvbiB0b3VjaGVzIGFyZWFzIHRoYXQgaGF2ZSBoaWdoIGZ1enppbmcgcG90ZW50aWFsLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB0aGluZ3MgbGlrZSBoYXJkd2FyZSByZWdpc3RlcnMsIGNvbW1hbmQgcXVldWVzLCBhbmQgc2hhcmVkIG1lbW9yeSByZWdpb25zIHRoYXQgY291bGQgYmUgYWNjZXNzZWQgZnJvbSB1c2VyIHNwYWNlLiBLbm93aW5nIGlmIHRoZXJlIGFyZSBhbnkgb2J2aW91cyBkcml2ZXJzIGZvciB0aGUgZGV2aWNlIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgaW4gdGhlIGRldmljZSYjMzk7cyBkcml2ZXIgYW5kIGhvdyBJIGNhbiB0YXJnZXQgaXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTA6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NjAzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTgzNCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTQ1PXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDY6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00Ny1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9NDY9b2JqLSQoQ09ORklHX01UNzZ4Ml9DT01NT04pICYjNDM7PSBtdDc2eDIvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjQ3Om9iai0kKENPTkZJR19NVDc2MDNFKSAmIzQzOz0gbXQ3NjAzL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS00OC1vYmotJChDT05GSUdfTVQ3NjE1X0NPTU1PTikgJiM0Mzs9IG10NzYxNS9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTVQ3NjAzRSkgJiM0Mzs9IG10NzYwM2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGUtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL01ha2VmaWxlOjQ6bXQ3NjAzZS15IDo9IFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9NYWtlZmlsZS01LVx0cGNpLm8gc29jLm8gbWFpbi5vIGluaXQubyBtY3UubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzozOiNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy00LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM9NT1zdHJ1Y3QgYmVhY29uX2JjX2RhdGEge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6NjpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy03LVx0c3RydWN0IHNrX2J1ZmZfaGVhZCBxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTEyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMzptdDc2MDNfbWFjX3N0dWNrX2JlYWNvbl9yZWNvdmVyeShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTI5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzozMDptdDc2MDNfdXBkYXRlX2JlYWNvbl9pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0zMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzozMjpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSAoc3RydWN0IG10NzYwM19kZXYgKilwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMzMtXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3NjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjM0Olx0c3RydWN0IG10NzYwM192aWYgKm12aWYgPSAoc3RydWN0IG10NzYwM192aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0zNS1cdHN0cnVjdCBza19idWZmICpza2IgPSBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTc4PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzo3OTptdDc2MDNfYWRkX2J1ZmZlcmVkX2JjKHZvaWQgKnByaXYsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy04MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy04MS1cdHN0cnVjdCBiZWFjb25fYmNfZGF0YSAqZGF0YSA9IHByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzo4MjpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkYXRhLVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjgzOlx0c3RydWN0IG10NzYwM192aWYgKm12aWYgPSAoc3RydWN0IG10NzYwM192aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy04NC1cdHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMDM6dm9pZCBtdDc2MDNfcHJlX3RidHRfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMDQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MTA1Olx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGZyb21fdGFza2xldChkZXYsIHQsIG10NzYucHJlX3RidHRfdGFza2xldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMDYtXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Njtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMjctXHRcdGRldi1cdTAwM2ViZWFjb25fY2hlY2sgPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MTI4Olx0bXQ3NjAzX21hY19zdHVja19iZWFjb25fcmVjb3ZlcnkoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEyOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMzMtXHRcdElFRUU4MDIxMV9JRkFDRV9JVEVSX1JFU1VNRV9BTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMzQ6XHRcdG10NzYwM191cGRhdGVfYmVhY29uX2l0ZXIsIGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMzUtXHRtdDc2X3F1ZXVlX2tpY2soZGV2LCBxKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xNDYtXHRcdFx0SUVFRTgwMjExX0lGQUNFX0lURVJfUkVTVU1FX0FMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE0NzpcdFx0XHRtdDc2MDNfYWRkX2J1ZmZlcmVkX2JjLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE0OC1cdH0gd2hpbGUgKG5mcmFtZXMgIT0gc2tiX3F1ZXVlX2xlbihcdTAwMjZkYXRhLnEpIFx1MDAyNlx1MDAyNlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE2NC1cdFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiA9IGluZm8tXHUwMDNlY29udHJvbC52aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxNjU6XHRcdHN0cnVjdCBtdDc2MDNfdmlmICptdmlmID0gKHN0cnVjdCBtdDc2MDNfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTY2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE4Mjp2b2lkIG10NzYwM19iZWFjb25fc2V0X3RpbWVyKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsIGludCBpZHgsIGludCBpbnR2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xODMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE5My1cdGlmICghZGV2LVx1MDAzZW10NzYuYmVhY29uX21hc2sgfHwgKCFpbnR2YWwgXHUwMDI2XHUwMDI2IGlkeCBcdTAwM2MgMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE5NDpcdFx0bXQ3NjAzX2lycV9kaXNhYmxlKGRldiwgTVRfSU5UX01BQ19JUlEzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE5NS1cdFx0bXQ3Nl9jbGVhcihkZXYsIE1UX0FSQl9TQ1IsIE1UX0FSQl9TQ1JfQkNOUV9PUE1PREVfTUFTSyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMjIwLVx0XHQgIE1UX1dGX0FSQl9CQ05fU1RBUlRfQlNTMG4oMSkpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjIyMTpcdG10NzYwM19pcnFfZW5hYmxlKGRldiwgTVRfSU5UX01BQ19JUlEzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTIyMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYzozOiNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNC0jaW5jbHVkZSBcJiMzNDsuLi90cmFjZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYzo2OnZvaWQgbXQ3NjAzX3J4X3BvbGxfY29tcGxldGUoc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6ODpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6MTA6XHRtdDc2MDNfaXJxX2VuYWJsZShkZXYsIE1UX0lOVF9SWF9ET05FKHEpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy0xMS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6MTM6aXJxcmV0dXJuX3QgbXQ3NjAzX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy0xNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6MTU6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGV2X2luc3RhbmNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTE2LVx0dTMyIGludHI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTM5LVx0aWYgKGludHIgXHUwMDI2IE1UX0lOVF9UWF9ET05FX0FMTCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjQwOlx0XHRtdDc2MDNfaXJxX2Rpc2FibGUoZGV2LCBNVF9JTlRfVFhfRE9ORV9BTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTQxLVx0XHRuYXBpX3NjaGVkdWxlKFx1MDAyNmRldi1cdTAwM2VtdDc2LnR4X25hcGkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy00NS1cdFx0ZGV2LVx1MDAzZXJ4X3BzZV9jaGVjayA9IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6NDY6XHRcdG10NzYwM19pcnFfZGlzYWJsZShkZXYsIE1UX0lOVF9SWF9ET05FKDApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy00Ny1cdFx0bmFwaV9zY2hlZHVsZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5uYXBpWzBdKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNTEtXHRcdGRldi1cdTAwM2VyeF9wc2VfY2hlY2sgPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjUyOlx0XHRtdDc2MDNfaXJxX2Rpc2FibGUoZGV2LCBNVF9JTlRfUlhfRE9ORSgxKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNTMtXHRcdG5hcGlfc2NoZWR1bGUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubmFwaVsxXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjU5OnUzMiBtdDc2MDNfcmVnX21hcChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1MzIgYWRkcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy02MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MzojaW5jbHVkZSBcJiMzNDttdDc2MDMuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM9NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjptdDc2MDNfcmVzZXRfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6ODpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05LVx0c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByZXNldF9jYXVzZV9zdHJbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM9MzE9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjMyOm10NzYwM19yYWRpb19yZWFkKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0zMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MzQ6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMzUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jPTQzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo0NDptdDc2MDNfZWRjY2Ffc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNDUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjQ2Olx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTUyLVx0XHRcdCAgZGV2LVx1MDAzZW10NzYucmVnaW9uID09IE5MODAyMTFfREZTX0VUU0k7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NTM6XHRtdDc2MDNfaW5pdF9lZGNjYShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTU0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYz02MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjE6bXQ3NjAzX2VkY2NhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy02Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjM6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy02NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6Njk6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZWRjY2EsIG10NzYwM19lZGNjYV9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NzA6XHRcdFx0IG10NzYwM19lZGNjYV9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jPTcyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo3MzptdDc2MDNfYW1wZHVfc3RhdF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy03NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NzU6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTc2LVx0aW50IGJvdW5kWzNdLCBpLCByYW5nZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6OTQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10NzYwM19hbXBkdV9zdGF0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo5Njp2b2lkIG10NzYwM19pbml0X2RlYnVnZnMoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTEwNC1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7YW1wZHVfc3RhdFwmIzM0OywgMDQwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MTA1Olx0XHRcdCAgICAgXHUwMDI2bXQ3NjAzX2FtcGR1X3N0YXRfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMTA2LVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7eG1pdC1xdWV1ZXNcJiMzNDssIGRpcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMTEwLVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7cmVzZXRcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzoxMTE6XHRcdFx0XHQgICAgbXQ3NjAzX3Jlc2V0X3JlYWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTExMi1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3JhZGlvXCYjMzQ7LCBkaXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MTEzOlx0XHRcdFx0ICAgIG10NzYwM19yYWRpb19yZWFkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0xMTQtXHRkZWJ1Z2ZzX2NyZWF0ZV91OChcJiMzNDtzZW5zaXRpdml0eV9saW1pdFwmIzM0OywgMDYwMCwgZGlyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzozOiNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy00LSNpbmNsdWRlIFwmIzM0O21hYy5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MTQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjE1Om10NzYwM19yeF9sb29wYmFja19za2Ioc3RydWN0IG10NzYwM19kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yOS1cdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzozMDpcdHN0cnVjdCBtdDc2MDNfc3RhICptc3RhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMzEtXHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6NTA6XHRwcml2ID0gbXN0YSA9IGNvbnRhaW5lcl9vZih3Y2lkLCBzdHJ1Y3QgbXQ3NjAzX3N0YSwgd2NpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy01MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy05NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjk1OnZvaWQgbXQ3NjAzX3F1ZXVlX3J4X3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTk2LVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy05Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzo5ODpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtOTktXHRfX2xlMzIgKnJ4ZCA9IChfX2xlMzIgKilza2ItXHUwMDNlZGF0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xMDgtXHRcdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjEwOTpcdFx0XHRtdDc2MDNfcnhfbG9vcGJhY2tfc2tiKGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTExMC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTExNS1cdFx0Zm9yIChyeGQmIzQzOyYjNDM7OyByeGQgJiM0MzsgNSBcdTAwM2M9IGVuZDsgcnhkICYjNDM7PSA1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTE2Olx0XHRcdG10NzYwM19tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xMTctXHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xMjItXHRjYXNlIFBLVF9UWVBFX05PUk1BTDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjEyMzpcdFx0aWYgKG10NzYwM19tYWNfZmlsbF9yeChkZXYsIHNrYikgPT0gMCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTI0LVx0XHRcdG10NzZfcngoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIHEsIHNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MTM0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjEzNTptdDc2MDNfaW5pdF9yeF9xdWV1ZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTEzNi1cdFx0ICAgICBpbnQgaWR4LCBpbnQgbl9kZXNjLCBpbnQgYnVmc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNDU6XHRtdDc2MDNfaXJxX2VuYWJsZShkZXYsIE1UX0lOVF9SWF9ET05FKGlkeCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTQ2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjE1MDpzdGF0aWMgaW50IG10NzYwM19wb2xsX3R4KHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE1MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNTI6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTUzLVx0aW50IGk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNTU6XHRkZXYgPSBjb250YWluZXJfb2YobmFwaSwgc3RydWN0IG10NzYwM19kZXYsIG10NzYudHhfbmFwaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNTYtXHRkZXYtXHUwMDNldHhfZG1hX2NoZWNrID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNjItXHRpZiAobmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIDApKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTYzOlx0XHRtdDc2MDNfaXJxX2VuYWJsZShkZXYsIE1UX0lOVF9UWF9ET05FX0FMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTY5Olx0bXQ3NjAzX21hY19zdGFfcG9sbChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTcwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjE3NjppbnQgbXQ3NjAzX2RtYV9pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE4OS1cdG10NzZfd3IoZGV2LCBNVF9XUERNQV9SU1RfSURYLCB+MCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxOTA6XHRtdDc2MDNfcHNlX2NsaWVudF9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTkxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjIyMDpcdG10NzYwM19pcnFfZW5hYmxlKGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIyMS1cdFx0XHQgIE1UX0lOVF9UWF9ET05FKElFRUU4MDIxMV9BQ19WTykgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIyOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjIzMDpcdHJldCA9IG10NzYwM19pbml0X3J4X3F1ZXVlKGRldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfTUNVXSwgMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIzMS1cdFx0XHRcdCAgIE1UNzYwM19NQ1VfUlhfUklOR19TSVpFLCBNVF9SWF9CVUZfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjM1Olx0cmV0ID0gbXQ3NjAzX2luaXRfcnhfcXVldWUoZGV2LCBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9NQUlOXSwgMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIzNi1cdFx0XHRcdCAgIE1UNzYwM19SWF9SSU5HX1NJWkUsIE1UX1JYX0JVRl9TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNDUtXHRuZXRpZl9uYXBpX2FkZF90eChkZXYtXHUwMDNlbXQ3Ni50eF9uYXBpX2RldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYudHhfbmFwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI0NjpcdFx0XHQgIG10NzYwM19wb2xsX3R4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI0Ny1cdG5hcGlfZW5hYmxlKFx1MDAyNmRldi1cdTAwM2VtdDc2LnR4X25hcGkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI1Mjp2b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0zLSNpbmNsdWRlIFx1MDAzY2xpbnV4L29mLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjQ6I2luY2x1ZGUgXCYjMzQ7bXQ3NjAzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTUtI2luY2x1ZGUgXCYjMzQ7ZWVwcm9tLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYz03PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjg6bXQ3NjAzX2VmdXNlX3JlYWQoc3RydWN0IG10NzYwM19kZXYgKmRldiwgdTMyIGJhc2UsIHUxNiBhZGRyLCB1OCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jPTQwPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjQxOm10NzYwM19lZnVzZV9pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy00Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo0MzpcdHUzMiBiYXNlID0gbXQ3NjAzX3JlZ19tYXAoZGV2LCBNVF9FRlVTRV9CQVNFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTQ0LVx0aW50IGxlbiA9IE1UNzYwM19FRVBST01fU0laRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy01Ny1cdGZvciAoaSA9IDA7IGkgJiM0MzsgMTYgXHUwMDNjPSBsZW47IGkgJiM0Mzs9IDE2KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo1ODpcdFx0cmV0ID0gbXQ3NjAzX2VmdXNlX3JlYWQoZGV2LCBiYXNlLCBpLCBidWYgJiM0MzsgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy01OS1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYz02Nj1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6Njc6bXQ3NjAzX2hhc19jYWxfZnJlZV9kYXRhKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsIHU4ICplZnVzZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTY4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYz05MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6OTE6bXQ3NjAzX2FwcGx5X2NhbF9mcmVlX2RhdGEoc3RydWN0IG10NzYwM19kZXYgKmRldiwgdTggKmVmdXNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtOTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTExMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjExMjpcdGlmICghbXQ3NjAzX2hhc19jYWxfZnJlZV9kYXRhKGRldiwgZWZ1c2UpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTEzLVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM9MTI1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjEyNjptdDc2MDNfZWVwcm9tX2xvYWQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTEyNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTM0Olx0cmV0dXJuIG10NzYwM19lZnVzZV9pbml0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xMzUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTM3OnN0YXRpYyBpbnQgbXQ3NjAzX2NoZWNrX2VlcHJvbShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTEzOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTUyOnN0YXRpYyBpbmxpbmUgYm9vbCBpc19tdDc2ODgoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE1My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTU3OmludCBtdDc2MDNfZWVwcm9tX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTYyOlx0cmV0ID0gbXQ3NjAzX2VlcHJvbV9sb2FkKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xNjMtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE2Ni1cdGlmIChkZXYtXHUwMDNlbXQ3Ni5vdHAuZGF0YSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTY3Olx0XHRpZiAobXQ3NjAzX2NoZWNrX2VlcHJvbShcdTAwMjZkZXYtXHUwMDNlbXQ3NikgPT0gMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjE2ODpcdFx0XHRtdDc2MDNfYXBwbHlfY2FsX2ZyZWVfZGF0YShkZXYsIGRldi1cdTAwM2VtdDc2Lm90cC5kYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE2OS1cdFx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5oLTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaDo2OiNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaC03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmg6ODplbnVtIG10NzYwM19lZXByb21fZmllbGQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtOS1cdE1UX0VFX0NISVBfSUQgPVx0XHRcdFx0MHgwMDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaDo4MjplbnVtIG10NzYwM19lZXByb21fc291cmNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5oLTgzLVx0TVRfRUVfU1JDX1BST00sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMtI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQ6I2luY2x1ZGUgXCYjMzQ7bXQ3NjAzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01LSNpbmNsdWRlIFwmIzM0O21hYy5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6ODpjb25zdCBzdHJ1Y3QgbXQ3Nl9kcml2ZXJfb3BzIG10NzYwM19kcnZfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTktXHQudHh3aV9zaXplID0gTVRfVFhEX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTExLVx0LnN1cnZleV9mbGFncyA9IFNVUlZFWV9JTkZPX1RJTUVfVFgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTI6XHQudHhfcHJlcGFyZV9za2IgPSBtdDc2MDNfdHhfcHJlcGFyZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTM6XHQudHhfY29tcGxldGVfc2tiID0gbXQ3NjAzX3R4X2NvbXBsZXRlX3NrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxNDpcdC5yeF9za2IgPSBtdDc2MDNfcXVldWVfcnhfc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE1Olx0LnJ4X3BvbGxfY29tcGxldGUgPSBtdDc2MDNfcnhfcG9sbF9jb21wbGV0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxNjpcdC5zdGFfcHMgPSBtdDc2MDNfc3RhX3BzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE3Olx0LnN0YV9hZGQgPSBtdDc2MDNfc3RhX2FkZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxODpcdC5zdGFfZXZlbnQgPSBtdDc2MDNfc3RhX2V2ZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE5Olx0LnN0YV9yZW1vdmUgPSBtdDc2MDNfc3RhX3JlbW92ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoyMDpcdC51cGRhdGVfc3VydmV5ID0gbXQ3NjAzX3VwZGF0ZV9jaGFubmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIxOlx0LnNldF9jaGFubmVsID0gbXQ3NjAzX3NldF9jaGFubmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIyLX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTI0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MjU6bXQ3NjAzX3NldF90bWFjX3RlbXBsYXRlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNDpcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0NMSUVOVF9CQVNFX1BIWVNfQUREUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzUtXHRhZGRyICYjNDM7PSBNVF9DTElFTlRfVE1BQ19JTkZPX1RFTVBMQVRFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz00MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQxOm10NzYwM19kbWFfc2NoZWRfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6ODk6XHRpZiAoaXNfbXQ3NjAzKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOTAtXHRcdHJlc2VydmVkX2NvdW50ID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6OTQ6XHRpZiAoaXNfbXQ3NjAzKGRldikgXHUwMDI2XHUwMDI2IG10NzZ4eF9yZXYoZGV2KSBcdTAwM2U9IE1UNzYwM19SRVZfRTIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy05NS1cdFx0bXQ3Nl93cihkZXYsIE1UX0dST1VQX1RIUkVTSCgwKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MTE0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTE1Om10NzYwM19waHlfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTExNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTEzMz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjEzNDptdDc2MDNfbWFjX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0xMzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0xOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTk1Olx0bXQ3NjAzX3NldF90bWFjX3RlbXBsYXRlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTE5Ny1cdC8qIEVuYWJsZSBSWCBncm91cCB0byBISUYgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxOTg6XHRhZGRyID0gbXQ3NjAzX3JlZ19tYXAoZGV2LCBNVF9DTElFTlRfQkFTRV9QSFlTX0FERFIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTE5OS1cdG10NzZfc2V0KGRldiwgYWRkciAmIzQzOyBNVF9DTElFTlRfUlhJTkYsIE1UX0NMSUVOVF9SWElORl9SWFNIX0dST1VQUyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIyOC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1UNzYwM19XVEJMX1NJWkU7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIyOTpcdFx0bXQ3NjAzX3d0YmxfY2xlYXIoZGV2LCBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjMxLVx0ZXRoX2Jyb2FkY2FzdF9hZGRyKGJjX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIzMjpcdG10NzYwM193dGJsX2luaXQoZGV2LCBNVDc2MDNfV1RCTF9SRVNFUlZFRCwgLTEsIGJjX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIzMy1cdG10NzZfd2NpZF9pbml0KFx1MDAyNmRldi1cdTAwM2VnbG9iYWxfc3RhLndjaWQsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz0yNzg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjI3OTptdDc2MDNfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI4MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoyODU6XHRyZXQgPSBtdDc2MDNfZWVwcm9tX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yODYtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mjg5Olx0cmV0ID0gbXQ3NjAzX2RtYV9pbml0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjkwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjkzLVx0bXQ3Nl93cihkZXYsIE1UX1dQRE1BX0dMT19DRkcsIDB4NTIwMDA4NTApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjI5NDpcdG10NzYwM19tYWNfZG1hX3N0YXJ0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjk1LVx0ZGV2LVx1MDAzZXJ4ZmlsdGVyID0gbXQ3Nl9ycihkZXYsIE1UX1dGX1JGQ1IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzA0Olx0cmV0ID0gbXQ3NjAzX21jdV9pbml0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzA1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMwODpcdG10NzYwM19kbWFfc2NoZWRfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMwOTpcdG10NzYwM19tY3Vfc2V0X2VlcHJvbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMxMDpcdG10NzYwM19waHlfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMxMTpcdG10NzYwM19tYWNfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MzMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM0MjpzdGF0aWMgdm9pZCBtdDc2MDNfbGVkX3NldF9jb25maWcoc3RydWN0IG10NzZfcGh5ICptcGh5LCB1OCBkZWxheV9vbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNDMtXHRcdFx0XHQgIHU4IGRlbGF5X29mZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNDQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM0NTpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobXBoeS1cdTAwM2VkZXYsIHN0cnVjdCBtdDc2MDNfZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM0Ni1cdFx0XHRcdFx0ICAgICAgbXQ3Nik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM1Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNTM6XHRhZGRyID0gbXQ3NjAzX3JlZ19tYXAoZGV2LCBNVF9MRURfU1RBVFVTXzAobXBoeS1cdTAwM2VsZWRzLnBpbikpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM1NC1cdG10NzZfd3IoZGV2LCBhZGRyLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM1NTpcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0xFRF9TVEFUVVNfMShtcGh5LVx1MDAzZWxlZHMucGluKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzU2LVx0bXQ3Nl93cihkZXYsIGFkZHIsIHZhbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM2MS1cdFx0dmFsIHw9IE1UX0xFRF9DVFJMX1BPTEFSSVRZKG1waHktXHUwMDNlbGVkcy5waW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM2MjpcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0xFRF9DVFJMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNjMtXHRtdDc2X3dyKGRldiwgYWRkciwgdmFsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM2NjpzdGF0aWMgaW50IG10NzYwM19sZWRfc2V0X2JsaW5rKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM2Ny1cdFx0XHRcdHVuc2lnbmVkIGxvbmcgKmRlbGF5X29uLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mzc3Olx0bXQ3NjAzX2xlZF9zZXRfY29uZmlnKG1waHksIGRlbHRhX29uLCBkZWx0YV9vZmYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM3OC1cdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzgxOnN0YXRpYyB2b2lkIG10NzYwM19sZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzgyLVx0XHRcdFx0ICAgICAgZW51bSBsZWRfYnJpZ2h0bmVzcyBicmlnaHRuZXNzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zODctXHRpZiAoIWJyaWdodG5lc3MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mzg4Olx0XHRtdDc2MDNfbGVkX3NldF9jb25maWcobXBoeSwgMCwgMHhmZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzg5LVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM5MDpcdFx0bXQ3NjAzX2xlZF9zZXRfY29uZmlnKG1waHksIDB4ZmYsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM5MS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM5MzpzdGF0aWMgdTMyIF9fbXQ3NjAzX3JlZ19hZGRyKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsIHUzMiBhZGRyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozOTg6XHRyZXR1cm4gbXQ3NjAzX3JlZ19tYXAoZGV2LCBhZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zOTktfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MDE6c3RhdGljIHUzMiBtdDc2MDNfcnIoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQwMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDAzOlx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDA0Olx0dTMyIGFkZHIgPSBfX210NzYwM19yZWdfYWRkcihkZXYsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDA1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDA5OnN0YXRpYyB2b2lkIG10NzYwM193cihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTE6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTI6XHR1MzIgYWRkciA9IF9fbXQ3NjAzX3JlZ19hZGRyKGRldiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MTMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTc6c3RhdGljIHUzMiBtdDc2MDNfcm13KHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCwgdTMyIG1hc2ssIHUzMiB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDE4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTk6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MjA6XHR1MzIgYWRkciA9IF9fbXQ3NjAzX3JlZ19hZGRyKGRldiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTQyNT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQyNjptdDc2MDNfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQyNy1cdFx0ICAgICBzdHJ1Y3QgcmVndWxhdG9yeV9yZXF1ZXN0ICpyZXF1ZXN0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MjktXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IHdpcGh5X3RvX2llZWU4MDIxMV9odyh3aXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDMwOlx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGh3LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDMxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz00Mzc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQzODptdDc2MDNfdHhwb3dlcl9zaWduZWQoaW50IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz00NTI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0NTM6bXQ3NjAzX2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQ1NC1cdFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00NjUtXHRleHRfcGFfcHdyID0gZWVwcm9tW01UX0VFX1RYX1BPV0VSX1RTU0lfT0ZGXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0NjY6XHRpZiAoZXh0X3BhIFx1MDAyNlx1MDAyNiBpc19tdDc2MDMoZGV2KSBcdTAwMjZcdTAwMjYgZXh0X3BhX3B3ciAhPSAwIFx1MDAyNlx1MDAyNiBleHRfcGFfcHdyICE9IDB4ZmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDY3LVx0XHR0YXJnZXRfcG93ZXIgPSBleHRfcGFfcHdyIFx1MDAyNiB+QklUKDcpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00NzMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyAxNDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0NzQ6XHRcdGN1cl9vZmZzZXQgPSBtdDc2MDNfdHhwb3dlcl9zaWduZWQocmF0ZV9wb3dlcltpXSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDc1LVx0XHRtYXhfb2Zmc2V0ID0gbWF4KG1heF9vZmZzZXQsIGN1cl9vZmZzZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDk2OmludCBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTkwMgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDYzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgTVQ3NjAzIEJ1cyBTdXBwb3J0IGFuZCBEZXZpY2UgUHJvYmluZyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZGlnIGludG8gaG93IHRoZSBNVDc2MDMgY2hpcHNldCBoYW5kbGVzIGRpZmZlcmVudCBidXNlcyBhbmQsIHNwZWNpZmljYWxseSwgaG93IHRoZSBkZXZpY2VzIHByb2JlIGFuZCBpbml0aWFsaXplLiBJIGtub3cgdGhpcyBjaGlwc2V0IGZhaXJseSB3ZWxsLCBidXQgYSBxdWljayByZWZyZXNoIGlzIGFsd2F5cyBnb29kIGJlZm9yZSBJIGRpdmUgZGVlcGVyLiBNeSBmaXJzdCBzdGVwIGlzIHRvIGZvY3VzIG9uIHRoZSBrZXJuZWwgc291cmNlIGNvZGUuIEkgc2hvdWxkIHByb2JhYmx5IHN0YXJ0IHdpdGggdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9gIGRpcmVjdG9yeS4KCkkmIzM5O2xsIGJlIGxvb2tpbmcgY2xvc2VseSBhdCB0aGUgYHBjaS5jYCwgYHNvYy5jYCBmaWxlcywgYW5kIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHRoZXkgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBzdXBwb3J0ZWQgYnVzIHR5cGVzIGFuZCB0aGUgcmVsZXZhbnQgZGV2aWNlIHByb2Jpbmcgc2VxdWVuY2VzLiBJJiMzOTttIGV4cGVjdGluZyBgcGNpLmNgIHRvIGhhbmRsZSB0aGUgUENJLXNwZWNpZmljIGluaXRpYWxpemF0aW9uLCBidXQgSSYjMzk7bGwgYWxzbyBiZSB3YXRjaGluZyB0byBzZWUgaG93IHRoZSBjb2RlIGlzIHN0cnVjdHVyZWQgaW4gdGhlIFNPQyBjYXNlIGluIGBzb2MuY2AgYW5kIGhvdyB0aGUgZHJpdmVyIGlzIGNvbmZpZ3VyZWQgaW4gYEtjb25maWdgLiBUaGlzIHdpbGwgcHJvdmlkZSBhIGdvb2QgcGljdHVyZSBvZiB0aGUgZGlmZmVyZW50IGhhcmR3YXJlIGVudmlyb25tZW50cyB0aGF0IHRoZSBtdDc2MDMgZHJpdmVyIHN1cHBvcnRzIGFuZCBob3cgdGhlIGRldmljZXMgZGlzY292ZXIgYW5kIGNvbmZpZ3VyZSB0aGVtc2VsdmVzIHdpdGhpbiB0aG9zZSBidXMgYXJjaGl0ZWN0dXJlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jPTgwOT1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3NjAzX2V4aXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtODE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjgxNzptb2R1bGVfaW5pdChtdDc2MDNfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM6ODE4Om1vZHVsZV9leGl0KG10NzYwM19leGl0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQxMQoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czoKCioqQW5hbHl6aW5nIHRoZSBNVDc2MDMgV2lyZWxlc3MgRHJpdmVyIEltcGxlbWVudGF0aW9uKioKCk9rYXksIHNvIEkgbmVlZCB0byBkaWcgaW50byB0aGlzIE1UNzYwMyBkcml2ZXIuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgdGFraW5nIGEgbG9vayBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jYCBhcm91bmQgbGluZSA4MDAuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGVudHJ5IHBvaW50IGludG8gdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgbW9kdWxlLCBhbmQgaG9wZWZ1bGx5LCBJIGNhbiBnZXQgYSBoYW5kbGUgb24gd2hhdCYjMzk7cyBnb2luZyBvbiB3aXRoIHRoZSBNVDc2MDMgaGVyZS4gSSYjMzk7bGwgbmVlZCB0byBjb3JyZWxhdGUgdGhlIHJlZ2lzdGVyIG1hcHMgYW5kIGZpcm13YXJlIGludGVyZmFjZSB3aXRoIHRoZSBtYWluIGxvb3AgYW5kIGFzc29jaWF0ZWQgc3RydWN0dXJlcy4KCkFmdGVyIHRoYXQsIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIFBDSSBpbXBsZW1lbnRhdGlvbiBpbiBgcGNpLmNgLCBhbmQgdGhlIFNPQyBpbXBsZW1lbnRhdGlvbiBpbiBgc29jLmNgIHRvIHNlZSBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHN5c3RlbS4gVGhpcyB3aWxsIGRlcGVuZCBvbiB0aGUgbWFjaGluZSBpdCBydW5zIG9uLCBzbyBJJiMzOTtsbCBuZWVkIHRvIHNlZSBob3cgdGhlIGNvZGUgaGFuZGxlcyBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBtb2R1bGVzIGludGVncmF0ZSBhbmQgZGlmZmVyIGZyb20gZWFjaCBvdGhlci4gSSYjMzk7bGwgbmVlZCB0byBpZGVudGlmeSBwb3RlbnRpYWwgYm90dGxlbmVja3Mgb3IgYXJlYXMgb2YgaW5lZmZpY2llbmN5LiBMZXQmIzM5O3MgZ2V0IGNyYWNraW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzkwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA3OTA6XHRNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TWVkaWFUZWsgTVQ3NjAzRSBhbmQgTVQ3Nng4IHdpcmVsZXNzIGRyaXZlclwmIzM0Oyk7XG4gNzkxOlx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiA3OTI6XHRcbiA3OTM6XHRzdGF0aWMgaW50IF9faW5pdCBtdDc2MDNfaW5pdCh2b2lkKVxuIDc5NDpcdHtcbiA3OTU6XHRcdGludCByZXQ7XG4gNzk2Olx0XG4gNzk3Olx0XHRyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoXHUwMDI2bXQ3Nl93bWFjX2RyaXZlcik7XG4gNzk4Olx0XHRpZiAocmV0KVxuIDc5OTpcdFx0XHRyZXR1cm4gcmV0O1xuIDgwMDpcdFxuIDgwMTpcdCNpZmRlZiBDT05GSUdfUENJXG4gODAyOlx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10NzYwM19wY2lfZHJpdmVyKTtcbiA4MDM6XHRcdGlmIChyZXQpXG4gODA0Olx0XHRcdHBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKFx1MDAyNm10NzZfd21hY19kcml2ZXIpO1xuIDgwNTpcdCNlbmRpZlxuIDgwNjpcdFx0cmV0dXJuIHJldDtcbiA4MDc6XHR9XG4gODA4Olx0XG4gODA5Olx0c3RhdGljIHZvaWQgX19leGl0IG10NzYwM19leGl0KHZvaWQpXG4gODEwOlx0e1xuIDgxMTpcdCNpZmRlZiBDT05GSUdfUENJXG4gODEyOlx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3NjAzX3BjaV9kcml2ZXIpO1xuIDgxMzpcdCNlbmRpZlxuIDgxNDpcdFx0cGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoXHUwMDI2bXQ3Nl93bWFjX2RyaXZlcik7XG4gODE1Olx0fVxuIDgxNjpcdFxuIDgxNzpcdG1vZHVsZV9pbml0KG10NzYwM19pbml0KTtcbiA4MTg6XHRtb2R1bGVfZXhpdChtdDc2MDNfZXhpdCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExNzAKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgaW1tZWRpYXRlIHRyYWluIG9mIHRob3VnaHQ6CgoqKkNoZWNraW5nIEtleSBGaWxlcyBmb3IgQ29udGV4dCBhbmQgVW5kZXJzdGFuZGluZyoqCgpBbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwIGludG8gdGhpcywgSSBuZWVkIHRvIGdldCBhIGxheSBvZiB0aGUgbGFuZC4gTXkgaW5pdGlhbCBhcHByb2FjaCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUgdXN1YWwgc3VzcGVjdHM6IGBwY2kuY2AsIGBzb2MuY2AsIGFuZCB0aGUgYEtjb25maWdgIGZpbGVzLiBJJiMzOTttIGFzc3VtaW5nIHRoYXQmIzM5O3Mgd2hlcmUgSSYjMzk7bGwgZmluZCBhIGZvdW5kYXRpb25hbCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBQQ0kgaW50ZXJhY3Rpb24sIHRoZSBTeXN0ZW0tb24tQ2hpcCAoU29DKSBzcGVjaWZpY3MgdGhhdCBhcmUgcmVsZXZhbnQsIGFuZCB0aGUgb3ZlcmFsbCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgZ292ZXJuaW5nIHRoaXMgbW9kdWxlIG9yIHN5c3RlbS4gR3JhYmJpbmcgdGhlIGxvdy1oYW5naW5nIGZydWl0IGVhcmx5IGhlbHBzIHRvIGF2b2lkIHdhc3RlZCB0aW1lLiBUaGlzIGFwcHJvYWNoIGFsbG93cyBtZSB0byBxdWlja2x5IGFzc2VzcyB0aGUgY29yZSBjb21wb25lbnRzIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYmVmb3JlIGdldHRpbmcgYm9nZ2VkIGRvd24gaW4gbW9yZSBpbnRyaWNhdGUgZGV0YWlscyBvciBwb3RlbnRpYWwgcmFiYml0IGhvbGVzLiBJIGNhbiB0aGVuIHVzZSB0aGlzIGtub3dsZWRnZSB0byBlc3RhYmxpc2ggYSBiZXR0ZXIgbWVudGFsIG1vZGVsIG9mIHRoZSBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDgwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0XG4gICAzOlx0I2luY2x1ZGUgXHUwMDNjbGludXgva2VybmVsLmhcdTAwM2VcbiAgIDQ6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGUuaFx1MDAzZVxuICAgNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS5oXHUwMDNlXG4gICA2Olx0XG4gICA3Olx0I2luY2x1ZGUgXCYjMzQ7bXQ3NjAzLmhcJiMzNDtcbiAgIDg6XHRcbiAgIDk6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3NnBjaV9kZXZpY2VfdGFibGVbXSA9IHtcbiAgMTA6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCAweDc2MDMpIH0sXG4gIDExOlx0XHR7IH0sXG4gIDEyOlx0fTtcbiAgMTM6XHRcbiAgMTQ6XHRzdGF0aWMgaW50XG4gIDE1Olx0bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuICAxNjpcdHtcbiAgMTc6XHRcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XG4gIDE4Olx0XHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXY7XG4gIDE5Olx0XHRpbnQgcmV0O1xuICAyMDpcdFxuICAyMTpcdFx0cmV0ID0gcGNpbV9lbmFibGVfZGV2aWNlKHBkZXYpO1xuICAyMjpcdFx0aWYgKHJldClcbiAgMjM6XHRcdFx0cmV0dXJuIHJldDtcbiAgMjQ6XHRcbiAgMjU6XHRcdHJldCA9IHBjaW1faW9tYXBfcmVnaW9ucyhwZGV2LCBCSVQoMCksIHBjaV9uYW1lKHBkZXYpKTtcbiAgMjY6XHRcdGlmIChyZXQpXG4gIDI3Olx0XHRcdHJldHVybiByZXQ7XG4gIDI4Olx0XG4gIDI5Olx0XHRwY2lfc2V0X21hc3RlcihwZGV2KTtcbiAgMzA6XHRcbiAgMzE6XHRcdHJldCA9IGRtYV9zZXRfbWFzayhcdTAwMjZwZGV2LVx1MDAzZWRldiwgRE1BX0JJVF9NQVNLKDMyKSk7XG4gIDMyOlx0XHRpZiAocmV0KVxuICAzMzpcdFx0XHRyZXR1cm4gcmV0O1xuICAzNDpcdFxuICAzNTpcdFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFx1MDAyNm10NzYwM19vcHMsXG4gIDM2Olx0XHRcdFx0XHQgXHUwMDI2bXQ3NjAzX2Rydl9vcHMpO1xuICAzNzpcdFx0aWYgKCFtZGV2KVxuICAzODpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbiAgMzk6XHRcbiAgNDA6XHRcdGRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XG4gIDQxOlx0XHRtdDc2X21taW9faW5pdChtZGV2LCBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdKTtcbiAgNDI6XHRcbiAgNDM6XHRcdG1kZXYtXHUwMDNlcmV2ID0gKG10NzZfcnIoZGV2LCBNVF9IV19DSElQSUQpIFx1MDAzY1x1MDAzYyAxNikgfFxuICA0NDpcdFx0XHQgICAgKG10NzZfcnIoZGV2LCBNVF9IV19SRVYpIFx1MDAyNiAweGZmKTtcbiAgNDU6XHRcdGRldl9pbmZvKG1kZXYtXHUwMDNlZGV2LCBcJiMzNDtBU0lDIHJldmlzaW9uOiAlMDR4XFxuXCYjMzQ7LCBtZGV2LVx1MDAzZXJldik7XG4gIDQ2Olx0XG4gIDQ3Olx0XHRtdDc2X3dyKGRldiwgTVRfSU5UX01BU0tfQ1NSLCAwKTtcbiAgNDg6XHRcbiAgNDk6XHRcdHJldCA9IGRldm1fcmVxdWVzdF9pcnEobWRldi1cdTAwM2VkZXYsIHBkZXYtXHUwMDNlaXJxLCBtdDc2MDNfaXJxX2hhbmRsZXIsXG4gIDUwOlx0XHRcdFx0ICAgICAgIElSUUZfU0hBUkVELCBLQlVJTERfTU9ETkFNRSwgZGV2KTtcbiAgNTE6XHRcdGlmIChyZXQpXG4gIDUyOlx0XHRcdGdvdG8gZXJyb3I7XG4gIDUzOlx0XG4gIDU0Olx0XHRyZXQgPSBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlKGRldik7XG4gIDU1Olx0XHRpZiAocmV0KVxuICA1NjpcdFx0XHRnb3RvIGVycm9yO1xuICA1NzpcdFxuICA1ODpcdFx0cmV0dXJuIDA7XG4gIDU5Olx0ZXJyb3I6XG4gIDYwOlx0XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbiAgNjE6XHRcbiAgNjI6XHRcdHJldHVybiByZXQ7XG4gIDYzOlx0fVxuICA2NDpcdFxuICA2NTpcdHN0YXRpYyB2b2lkXG4gIDY2Olx0bXQ3NnBjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gIDY3Olx0e1xuICA2ODpcdFx0c3RydWN0IG10NzZfZGV2ICptZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpO1xuICA2OTpcdFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XG4gIDcwOlx0XG4gIDcxOlx0XHRtdDc2MDNfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbiAgNzI6XHR9XG4gIDczOlx0XG4gIDc0Olx0TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG10NzZwY2lfZGV2aWNlX3RhYmxlKTtcbiAgNzU6XHRNT0RVTEVfRklSTVdBUkUoTVQ3NjAzX0ZJUk1XQVJFX0UxKTtcbiAgNzY6XHRNT0RVTEVfRklSTVdBUkUoTVQ3NjAzX0ZJUk1XQVJFX0UyKTtcbiAgNzc6XHRcbiAgNzg6XHRzdHJ1Y3QgcGNpX2RyaXZlciBtdDc2MDNfcGNpX2RyaXZlciA9IHtcbiAgNzk6XHRcdC5uYW1lXHRcdD0gS0JVSUxEX01PRE5BTUUsXG4gIDgwOlx0XHQuaWRfdGFibGVcdD0gbXQ3NnBjaV9kZXZpY2VfdGFibGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNjI1CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gYHNvYy5jYCoqCgpBbHJpZ2h0LCBzbyB3ZSYjMzk7cmUgYXQgYSBwb2ludCB3aGVyZSB3ZSBuZWVkIHRvIGJlIHRob3JvdWdoLiBJJiMzOTt2ZSBiZWVuIGZvY3VzaW5nIG9uIFtpbXBsaWVkIHByZWNlZGluZyBjb250ZXh0IHRoZSB1c2VyIHdvdWxkIHVuZGVyc3RhbmQgYmFzZWQgb24gJiMzNDtMZXQmIzM5O3MgYWxzbyBjaGVjayBzb2MuYyYjMzQ7XSwgYnV0IGEgY3J1Y2lhbCBuZXh0IHN0ZXAsIGNvbnNpZGVyaW5nIHRoZSBzY29wZSBvZiB3aGF0IHdlJiMzOTtyZSB0YWNrbGluZywgaXMgdG8gZ2l2ZSBgc29jLmNgIGEgY2xvc2UgbG9vay4gSXQmIzM5O3MgcHJvYmFibHkgdGhlIGxpbmNocGluIGluIFtpbXBsaWVkIHJlbGF0aW9uc2hpcCB0byB0aGUgdXNlciYjMzk7cyBmaWVsZCBhbmQgY29udGV4dF0gdGhhdCB0b3VjaGVzIG9uIFtzcGVjaWZpYyBhc3BlY3QgdGhlIHVzZXIgd291bGQgdW5kZXJzdGFuZCBiYXNlZCBvbiAmIzM0O3NvYy5jJiMzNDtdLiBJIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGhhdmVuJiMzOTt0IG92ZXJsb29rZWQgYW55IGludGVncmF0aW9uIHBvaW50cyBvciBkZXBlbmRlbmNpZXMgd2l0aCB3aGF0IHdlJiMzOTt2ZSBhbHJlYWR5IGV4YW1pbmVkLiBUaGlzIGlzIGFib3V0IGVuc3VyaW5nIGNvbXBsZXRlIGNvdmVyYWdlLiBUaGVyZSBtaWdodCBiZSBzb21lIHN1YnRsZSBpbnRlcmFjdGlvbnMgaGVyZSB0aGF0LCBpZiBtaXNzZWQsIHdvdWxkIGxlYWQgdG8gcmVhbCBoZWFkYWNoZXMgZG93biB0aGUgbGluZS4gSSBhbSB0aGlua2luZyBwYXJ0aWN1bGFybHkgYWJvdXQgW3NwZWNpZmljIHBvdGVudGlhbCBpc3N1ZXMgdGhlIHVzZXIgbWF5IGNvbnNpZGVyLCBiYXNlZCBvbiAmIzM0O3NvYy5jJiMzNDsgd2l0aGluIHRoZSBjb250ZXh0XSBhbmQgbWFraW5nIHN1cmUgdGhlIGltcGxpY2F0aW9ucyBvZiBbbGlrZWx5IGFyZWEgb2YgY29kZV0gaGF2ZSBiZWVuIHRob3JvdWdobHkgdmV0dGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdFxuICAgMzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2tlcm5lbC5oXHUwMDNlXG4gICA0Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbiAgIDU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaFx1MDAzZVxuICAgNjpcdFxuICAgNzpcdCNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG4gICA4Olx0XG4gICA5Olx0c3RhdGljIGludFxuICAxMDpcdG10NzZfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuICAxMTpcdHtcbiAgMTI6XHRcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XG4gIDEzOlx0XHR2b2lkIF9faW9tZW0gKm1lbV9iYXNlO1xuICAxNDpcdFx0c3RydWN0IG10NzZfZGV2ICptZGV2O1xuICAxNTpcdFx0aW50IGlycTtcbiAgMTY6XHRcdGludCByZXQ7XG4gIDE3Olx0XG4gIDE4Olx0XHRpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuICAxOTpcdFx0aWYgKGlycSBcdTAwM2MgMClcbiAgMjA6XHRcdFx0cmV0dXJuIGlycTtcbiAgMjE6XHRcbiAgMjI6XHRcdG1lbV9iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApO1xuICAyMzpcdFx0aWYgKElTX0VSUihtZW1fYmFzZSkpXG4gIDI0Olx0XHRcdHJldHVybiBQVFJfRVJSKG1lbV9iYXNlKTtcbiAgMjU6XHRcbiAgMjY6XHRcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZwZGV2LVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBcdTAwMjZtdDc2MDNfb3BzLFxuICAyNzpcdFx0XHRcdFx0IFx1MDAyNm10NzYwM19kcnZfb3BzKTtcbiAgMjg6XHRcdGlmICghbWRldilcbiAgMjk6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gIDMwOlx0XG4gIDMxOlx0XHRkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xuICAzMjpcdFx0bXQ3Nl9tbWlvX2luaXQobWRldiwgbWVtX2Jhc2UpO1xuICAzMzpcdFxuICAzNDpcdFx0bWRldi1cdTAwM2VyZXYgPSAobXQ3Nl9ycihkZXYsIE1UX0hXX0NISVBJRCkgXHUwMDNjXHUwMDNjIDE2KSB8XG4gIDM1Olx0XHRcdCAgICAobXQ3Nl9ycihkZXYsIE1UX0hXX1JFVikgXHUwMDI2IDB4ZmYpO1xuICAzNjpcdFx0ZGV2X2luZm8obWRldi1cdTAwM2VkZXYsIFwmIzM0O0FTSUMgcmV2aXNpb246ICUwNHhcXG5cJiMzNDssIG1kZXYtXHUwMDNlcmV2KTtcbiAgMzc6XHRcbiAgMzg6XHRcdG10NzZfd3IoZGV2LCBNVF9JTlRfTUFTS19DU1IsIDApO1xuICAzOTpcdFxuICA0MDpcdFx0cmV0ID0gZGV2bV9yZXF1ZXN0X2lycShtZGV2LVx1MDAzZWRldiwgaXJxLCBtdDc2MDNfaXJxX2hhbmRsZXIsXG4gIDQxOlx0XHRcdFx0ICAgICAgIElSUUZfU0hBUkVELCBLQlVJTERfTU9ETkFNRSwgZGV2KTtcbiAgNDI6XHRcdGlmIChyZXQpXG4gIDQzOlx0XHRcdGdvdG8gZXJyb3I7XG4gIDQ0Olx0XG4gIDQ1Olx0XHRyZXQgPSBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlKGRldik7XG4gIDQ2Olx0XHRpZiAocmV0KVxuICA0NzpcdFx0XHRnb3RvIGVycm9yO1xuICA0ODpcdFxuICA0OTpcdFx0cmV0dXJuIDA7XG4gIDUwOlx0ZXJyb3I6XG4gIDUxOlx0XHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xuICA1MjpcdFx0cmV0dXJuIHJldDtcbiAgNTM6XHR9XG4gIDU0Olx0XG4gIDU1Olx0c3RhdGljIHZvaWQgbXQ3Nl93bWFjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuICA1NjpcdHtcbiAgNTc6XHRcdHN0cnVjdCBtdDc2X2RldiAqbWRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpO1xuICA1ODpcdFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XG4gIDU5Olx0XG4gIDYwOlx0XHRtdDc2MDNfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbiAgNjE6XHR9XG4gIDYyOlx0XG4gIDYzOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgb2Zfd21hY19tYXRjaFtdID0ge1xuICA2NDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyOC13bWFjXCYjMzQ7IH0sXG4gIDY1Olx0XHR7fSxcbiAgNjY6XHR9O1xuICA2NzpcdFxuICA2ODpcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG9mX3dtYWNfbWF0Y2gpO1xuICA2OTpcdE1PRFVMRV9GSVJNV0FSRShNVDc2MjhfRklSTVdBUkVfRTEpO1xuICA3MDpcdE1PRFVMRV9GSVJNV0FSRShNVDc2MjhfRklSTVdBUkVfRTIpO1xuICA3MTpcdFxuICA3MjpcdHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXQ3Nl93bWFjX2RyaXZlciA9IHtcbiAgNzM6XHRcdC5wcm9iZVx0XHQ9IG10NzZfd21hY19wcm9iZSxcbiAgNzQ6XHRcdC5yZW1vdmVcdFx0PSBtdDc2X3dtYWNfcmVtb3ZlLFxuICA3NTpcdFx0LmRyaXZlciA9IHtcbiAgNzY6XHRcdFx0Lm5hbWUgPSBcJiMzNDttdDc2X3dtYWNcJiMzNDssXG4gIDc3Olx0XHRcdC5vZl9tYXRjaF90YWJsZSA9IG9mX3dtYWNfbWF0Y2gsXG4gIDc4Olx0XHR9LFxuICA3OTpcdH07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDkxCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogNjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBNVDc2MDMmIzM5O3MgQ29ubmVjdGl2aXR5IE9wdGlvbnMqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZSBNVDc2MDMgY2hpcHNldCBoYW5kbGVzIG5ldHdvcmsgaW50ZXJmYWNlcy4gTXkgaW5pdGlhbCBodW5jaCBpcyB0byBjaGVjayBpdHMgVVNCIGNhcGFiaWxpdGllcywgc2VlIGlmIGl0IGhhcyBhbnkgdmlydHVhbCBvciBlbXVsYXRlZCBpbnRlcmZhY2VzLCBvciBpZiBpdCYjMzk7cyBzdHJpY3RseSBhIHBoeXNpY2FsIFBDSWUgb3IgU29DIGRldmljZS4gVGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQsIGdpdmVuIG15IGV4cGVyaWVuY2UsIGlzIGxpa2VseSB0aGUgZHJpdmVyJiMzOTtzIEtjb25maWcgZmlsZS4gSSYjMzk7bGwgdGFrZSBhIGxvb2sgYXQgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdgIHRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkZXZpY2UmIzM5O3MgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBidWlsZC10aW1lIHNldHRpbmdzLCB3aGljaCBzaG91bGQgaW1tZWRpYXRlbHkgY2xhcmlmeSBpZiB0aGVyZSYjMzk7cyBhbnkgVVNCIHN1cHBvcnQgZGVjbGFyZWQgb3IgaGludGVkIGF0IHdpdGhpbiB0aGUgZHJpdmVyLiBUaGlzIGlzIHVzdWFsbHkgdGhlIHF1aWNrZXN0IHdheSB0byBnZXQgYSBoaWdoLWxldmVsIG92ZXJ2aWV3LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3NjAzRVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjAzRSAoUENJZSkgYW5kIE1UNzZ4OCBXTEFOIHN1cHBvcnRcJiMzNDtcbiAgIDQ6XHRcdHNlbGVjdCBNVDc2X0NPUkVcbiAgIDU6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgIDY6XHRcdGRlcGVuZHMgb24gUENJXG4gICA3Olx0XHRoZWxwXG4gICA4Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc2MDNFIFBDSWUgd2lyZWxlc3MgZGV2aWNlcyBhbmQgdGhlIFdMQU4gY29yZVxuICAgOTpcdFx0ICBvbiBNVDc2MjgvTVQ3Njg4IFNvQyBkZXZpY2VzLiBUaGlzIGZhbWlseSBzdXBwb3J0cyBJRUVFIDgwMi4xMW4gMngyXG4gIDEwOlx0XHQgIHRvIDMwME1icHMgUEhZIHJhdGVcbiAgMTE6XHRcbiAgMTI6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ1ODMKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA0ODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgV29ydGhGdXp6aW5nIENyaXRlcmlhIGZvciBNVDc2MDMqKgoKT2theSwgbGV0JiMzOTtzIHNlZS4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBxdWlja2x5IGNoZWNrIGlmIFFFTVUgb2ZmZXJlZCBzb21lIGxldmVsIG9mIFVTQiBvciBvdGhlciBlbXVsYXRpb24gZm9yIG10NzYwMyBvciBqdXN0IHRoZSBiYXNlIG10NzYgbW9kdWxlcywgbWF5YmUgZXZlbiBod3NpbSwgdG8gZ2l2ZSBtZSBhIGxlZyB1cCBvbiBmdXp6aW5nLiBCdXQsIGhvbGQgb24gYSBzZWNvbmQuLi5tdDc2MDMgaXMgc3BlY2lmaWNhbGx5IGZvciB0aGUgTWVkaWFUZWsgTVQ3NjAzRSBQQ0llIGRldmljZSBhbmQgdGhlIE1UNzYyOC9NVDc2ODggU29Dcy4gSSB3YXMgZXhwZWN0aW5nIG1heWJlIGEgc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW11bGF0aW9uIG9mIHRoZSBNZWRpYVRlayBNVDc2MDMgUENJZSBvciBTb0MgZGV2aWNlLCBidXQgbm8gZGljZS4gUUVNVSBkb2VzbiYjMzk7dCBzZWVtIHRvIHRvdWNoIHRoYXQgaGFyZHdhcmUgYXQgYWxsLgoKQWxyaWdodCwgdGltZSB0byBjYXJlZnVsbHkgcmV2aWV3IHNlY3Rpb24gMiBvZiB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBjcml0ZXJpYSBhcmUgcHJldHR5IGNsZWFyOiBub24tZXhlY3V0YWJsZSBjaGFuZ2VzLCB1bnJlYWNoYWJsZSBoYXJkd2FyZSAoc3BlY2lmaWNhbGx5IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSkgYW5kIHVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRocyAoZHJpdmVyIHRlYXJkb3duLCBQQ0kgaG90LXVucGx1ZykuCgpMZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJcyB0aGUgTVQ3NjAzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUvU29DIHdpcmVsZXNzIGRyaXZlcj8gWWVzISBUaGUgTVQ3NjAzRSBpcyBzcGVjaWZpY2FsbHkgTWVkaWFUZWsgaGFyZHdhcmUuIERvZXMgc3RhbmRhcmQgUUVNVSBlbXVsYXRlIHRoZSBNVDc2MDM/IE5vcGUuIFdlIGFscmVhZHkgZXN0YWJsaXNoZWQgdGhhdC4gQW5kIEkgc2hvdWxkIHByb2JhYmx5IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgVVNCIGludGVyZmFjZSBzdXBwb3J0IHdpdGhpbiBtdDc2MDMgYmVmb3JlIEkgbWFrZSBhIGZpbmFsIGFzc2Vzc21lbnQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGViYXNlIHRvIGNvbmZpcm0gaWYgYW55IFVTQiBpbnRlcmZhY2Ugc3VwcG9ydCBleGlzdHMuCgpTbywgZ2l2ZW4gdGhhdCBNVDc2MDMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZS9Tb0MgZHJpdmVyIGFuZCBub3QgZW11bGF0ZWQgYnkgUUVNVSwgYWNjb3JkaW5nIHRvIHRoZSBpbnN0cnVjdGlvbnMsIHRoaXMgc2VlbXMgbGlrZSBhIHNvbGlkIGNhc2UgZm9yICYjMzQ7V29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgc2luY2UgaXQmIzM5O3Mgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGluIG15IHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzYwMy4qdXNiJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTUyMQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKk5hdmlnYXRpbmcgdGhlIE1UNzYwMyBXaXJlbGVzcyBEcml2ZXIqKgoKT2theSwgdGltZSB0byBkaXZlIGluLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBnZXQgYSBsYXkgb2YgdGhlIGxhbmQgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYCBkaXJlY3RvcnkuIEkgd2FudCB0byBidWlsZCBhIG1lbnRhbCBtYXAgb2YgdGhlIGNvcmUgZmlsZXMgYW5kIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBNVDc2MDMgd2lyZWxlc3MgZHJpdmVyLiBCZWZvcmUgSSBzdGFydCBkZWJ1Z2dpbmcgb3IgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgYSBzcGVjaWZpYyBmdW5jdGlvbiwgSSBuZWVkIHRoYXQgb3ZlcnZpZXcuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBzY2FuIHRoZSBpbmRleCB0byBnZXQgYSBzZW5zZSBvZiB0aGUga2V5IG1vZHVsZXMsIGhlYWRlciBmaWxlcywgYW5kIGltcGxlbWVudGF0aW9uIGZpbGVzIHByZXNlbnQuIFRoaXMgcHJlbGltaW5hcnkgc3RlcCBpcyBjcnVjaWFsOyBpdCBoZWxwcyBtZSBhdm9pZCBnZXR0aW5nIGxvc3QgaW4gdGhlIHdlZWRzIGFuZCBhbGxvd3MgbWUgdG8gY29udGV4dHVhbGl6ZSBhbnkgc3Vic2VxdWVudCBpbnZlc3RpZ2F0aW9ucyBvciBidWcgcmVwb3J0cyBJIG1pZ2h0IGJlIHdvcmtpbmcgd2l0aC4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgZmFtaWxpYXJpdHkgd2l0aCB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLCBhbmQgYSBkaXJlY3RvcnkgaW5kZXggc2NhbiBpcyB0aGUgZmFzdGVzdCB3YXkgdG8gYWNoaWV2ZSB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2JlYWNvbi5jJiMzNDssCiAgICAmIzM0O2NvcmUuYyYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7ZG1hLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7aW5pdC5jJiMzNDssCiAgICAmIzM0O21hYy5jJiMzNDssCiAgICAmIzM0O21hYy5oJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttY3UuYyYjMzQ7LAogICAgJiMzNDttY3UuaCYjMzQ7LAogICAgJiMzNDttdDc2MDMuaCYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtyZWdzLmgmIzM0OywKICAgICYjMzQ7c29jLmMmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTkwNAoJCQkJCQkJb3V0cHV0OiAxMzQKCQkJCQkJCXRob3VnaHRzOiA1MTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTVQ3NjAzIERyaXZlciYjMzk7cyBGdXp6aW5nIFN1aXRhYmlsaXR5KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBgbXQ3NjAzYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYG10NzYwM19tYWNfaW5pdGAgZnVuY3Rpb24sIGlzIGEgdmlhYmxlIHRhcmdldCBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIHdoZXRoZXIgdGhlIGNvbmRpdGlvbnMgZm9yIGV4ZWN1dGluZyB0aGF0IGNhbGwgYXJlIG1ldCBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4KCkZpcnN0LCBJIHRyYWNlZCB0aGUgY2FsbCBjaGFpbiBmb3IgYG10NzYwM19tYWNfaW5pdGAuIEl0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uIHdpdGhpbiBgaW5pdC5jYCBhbmQgaXMgY2FsbGVkIGJ5IGBtdDc2MDNfaW5pdF9oYXJkd2FyZWAuIFRoYXQgaW4gdHVybiBpcyBjYWxsZWQgZnJvbSBlaXRoZXIgYG10NzYwM19yZWdpc3Rlcl9kZXZpY2VgIG9yIGBtdDc2MDNfcmVzZXRfd29ya2AuIE5vdywgYG10NzYwM19yZWdpc3Rlcl9kZXZpY2VgIGdldHMgY2FsbGVkIGR1cmluZyB0aGUgUENJIHByb2JlIChgbXQ3NnBjaV9wcm9iZWApIG9yIGZyb20gYSBwbGF0Zm9ybSBwcm9iZSAoYG10NzZfd21hY19wcm9iZWApLgoKSGVyZSYjMzk7cyB0aGUgcHJvYmxlbTogbmVpdGhlciB0aGUgTVQ3NjAzRSBQQ0llIG5vciB0aGUgTVQ3NjI4IFNvQyBXTUFDIGhhcmR3YXJlIGlzIGVtdWxhdGVkIGluIHN0YW5kYXJkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLiBUaGVzZSBhcmUgc3BlY2lhbGl6ZWQgaGFyZHdhcmUgY29tcG9uZW50cywgYW5kIHN0YW5kYXJkIGZ1enppbmcgc2V0dXBzIGFyZSAqbm90KiBnb2luZyB0byBiZSBhYmxlIHRvIHByb2JlLCBtdWNoIGxlc3MgZXhlY3V0ZSwgdGhpcyBkcml2ZXIuIFNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMsIGxpa2UgVVNCIGdhZGdldHMsIGFyZSBvdXQgYmVjYXVzZSB0aGVyZSYjMzk7cyBubyBVU0IgZHJpdmVyIGZvciBgbXQ3NjAzYC4gSXQmIzM5O3MgUENJIGFuZCBTb0Mtc3BlY2lmaWMuCgpUaGlzIGNsZWFybHkgZmFsbHMgdW5kZXIgdGhlIGNhdGVnb3J5IG9mICYjMzQ7U3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlLiYjMzQ7IFNwZWNpZmljYWxseSwgdGhpcyBpcyBzaW1pbGFyIHRvIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzLiBUaGV5IHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgb3IgaGFyZHdhcmUtc3BlY2lmaWMgUENJZSBjYXJkcyB0aGF0IFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZS4KCkxldCYjMzk7cyBzdW1tYXJpemUgdGhpcyBjb25jaXNlbHk6IHRoZSBwYXRjaCBtb2RpZmllcyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jYCwgc3BlY2lmaWNhbGx5IGBtdDc2MDNfbWFjX2luaXRgLiBUaGUgZHJpdmVyIGlzIGZvciB0aGUgTVQ3NjAzRSBQQ0llIGFuZCBNVDc2MjgvTVQ3Njg4IFNvQy4gSXQgaXMgdW5yZWFjaGFibGUgaW4gYSBzdGFuZGFyZCBRRU1VIG9yIEdDRSBWTSB3aXRob3V0IHRoZSBhY3R1YWwgcGh5c2ljYWwgaGFyZHdhcmUuIFRoZXJlZm9yZSwgaXQmIzM5O3Mgbm90IHdvcnRoIGZ1enppbmcuIFRoZSBgV29ydGhGdXp6aW5nYCBmbGFnIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYC4gVGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgb2YgaW50ZXJlc3QgKGBGb2N1c1N5bWJvbHNgIGlzIGVtcHR5KSwgYW5kIG5vIHNwZWNpYWwgY29uZmlndXJhdGlvbnMgKGBFbmFibGVDb25maWdzYCBpcyBlbXB0eSkgbmVlZGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG10NzYwM19tYWNfaW5pdCgpIGluIHRoZSBNZWRpYVRlayBNVDc2MDMgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3NjAzRSkuIFRoaXMgZHJpdmVyIHN1cHBvcnRzIG9ubHkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlcyAoTVQ3NjAzRSkgYW5kIFNvQyBwbGF0Zm9ybXMgKE1UNzYyOC9NVDc2ODgpLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgYW5kIGRvIG5vdCBzdXBwb3J0IFVTQiBlbXVsYXRpb24uIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgbXQ3NjAzX21hY19pbml0KCkgaW4gdGhlIE1lZGlhVGVrIE1UNzYwMyB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc2MDNFKS4gVGhpcyBkcml2ZXIgc3VwcG9ydHMgb25seSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2VzIChNVDc2MDNFKSBhbmQgU29DIHBsYXRmb3JtcyAoTVQ3NjI4L01UNzY4OCksIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSBhbmQgZG8gbm90IHN1cHBvcnQgVVNCIGVtdWxhdGlvbi4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MDQuNzAxMDE1NTE2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzAzNjE0NzMwMTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBtdDc2MDNfbWFjX2luaXQoKSBpbiB0aGUgTWVkaWFUZWsgTVQ3NjAzIHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzYwM0UpLiBUaGlzIGRyaXZlciBzdXBwb3J0cyBvbmx5IHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZXMgKE1UNzYwM0UpIGFuZCBTb0MgcGxhdGZvcm1zIChNVDc2MjgvTVQ3Njg4KSwgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIGFuZCBkbyBub3Qgc3VwcG9ydCBVU0IgZW11bGF0aW9uLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjA0LjcwMTAyMDk5NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYyNzMwNDkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgM2NlNDQ2Mjk1NjIxMTZhOWNlZDVjNmFmOGExMWMyYmM2N2E0YTRhNlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IFNlcCA1IDEwOjM5OjAzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuY1xcbmluZGV4IDEwZjJlYzcwYzc5MmIuLjIxOGVjNDA2ZDJhODcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jXFxuQEAgLTIzMCw2ICsyMzAsNyBAQCBtdDc2MDNfbWFjX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcXG4gXFxuIFxcdGV0aF9icm9hZGNhc3RfYWRkcihiY19hZGRyKTtcXG4gXFx0bXQ3NjAzX3d0YmxfaW5pdChkZXYsIE1UNzYwM19XVEJMX1JFU0VSVkVELCAtMSwgYmNfYWRkcik7XFxuK1xcdG10NzZfd2NpZF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZWdsb2JhbF9zdGEud2NpZCwgMCk7XFxuIFxcdGRldi1cXHUwMDNlZ2xvYmFsX3N0YS53Y2lkLmlkeCA9IE1UNzYwM19XVEJMX1JFU0VSVkVEO1xcbiBcXHRyY3VfYXNzaWduX3BvaW50ZXIoZGV2LVxcdTAwM2VtdDc2LndjaWRbTVQ3NjAzX1dUQkxfUkVTRVJWRURdLFxcbiBcXHRcXHRcXHQgICBcXHUwMDI2ZGV2LVxcdTAwM2VnbG9iYWxfc3RhLndjaWQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOTowNS4xNjQyNjQ2ODZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjI5ODk4MjA5MDgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBtdDc2MDNfbWFjX2luaXQoKSBpbiB0aGUgTWVkaWFUZWsgTVQ3NjAzIHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzYwM0UpLiBUaGlzIGRyaXZlciBzdXBwb3J0cyBvbmx5IHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZXMgKE1UNzYwM0UpIGFuZCBTb0MgcGxhdGZvcm1zIChNVDc2MjgvTVQ3Njg4KSwgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIGFuZCBkbyBub3Qgc3VwcG9ydCBVU0IgZW11bGF0aW9uLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgM2NlNDQ2Mjk1NjIxMTZhOWNlZDVjNmFmOGExMWMyYmM2N2E0YTRhNlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgU2VwIDUgMTA6Mzk6MDMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmNcbmluZGV4IDEwZjJlYzcwYzc5MmIuLjIxOGVjNDA2ZDJhODcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuY1xuQEAgLTIzMCw2ICsyMzAsNyBAQCBtdDc2MDNfbWFjX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbiBcbiBcdGV0aF9icm9hZGNhc3RfYWRkcihiY19hZGRyKTtcbiBcdG10NzYwM193dGJsX2luaXQoZGV2LCBNVDc2MDNfV1RCTF9SRVNFUlZFRCwgLTEsIGJjX2FkZHIpO1xuK1x0bXQ3Nl93Y2lkX2luaXQoXHUwMDI2ZGV2LVx1MDAzZWdsb2JhbF9zdGEud2NpZCwgMCk7XG4gXHRkZXYtXHUwMDNlZ2xvYmFsX3N0YS53Y2lkLmlkeCA9IE1UNzYwM19XVEJMX1JFU0VSVkVEO1xuIFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2VtdDc2LndjaWRbTVQ3NjAzX1dUQkxfUkVTRVJWRURdLFxuIFx0XHRcdCAgIFx1MDAyNmRldi1cdTAwM2VnbG9iYWxfc3RhLndjaWQpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MDUuMTY0MjY1OTc3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTE0NTc2MTc0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGluIGZyb250IG9mIG1lLCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZGVjaWRlIGlmIGl0J3Mgd29ydGggdGhlIGZ1enppbmcgZWZmb3J0LiBJdCBsb29rcyBsaWtlIHdlJ3JlIGRpdmluZyBpbnRvIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jYCBmaWxlLCBzcGVjaWZpY2FsbHkgdGhlIGBtdDc2MDNfbWFjX2luaXRgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBpcyB0aGUgYWRkaXRpb24gb2YgYG10NzZfd2NpZF9pbml0KFx1MDAyNmRldi1cdTAwM2VnbG9iYWxfc3RhLndjaWQsIDApO2AuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIGJ1dCBJIG5lZWQgbW9yZSBjb250ZXh0IGJlZm9yZSBJIG1ha2UgYW55IGp1ZGdlbWVudHMuXG5cbkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBtdDc2MDNgIGFjdHVhbGx5ICppcyouIElzIGl0IGEgUENJZSBkZXZpY2U/IEEgU3lzdGVtLW9uLUNoaXAgKFNvQykgY29tcG9uZW50PyBVU0I/IFRoaXMgZHJpdmVzIHRoZSBhdHRhY2sgc3VyZmFjZSBJIGhhdmUgdG8gY29uc2lkZXIuIEknbSBnb2luZyB0byBxdWlja2x5IGdldCBhIGxheSBvZiB0aGUgbGFuZCBoZXJlLiBJJ2xsIHByb2JhYmx5IGZpcmUgdXAgYGdyZXBgIChvciBwb3NzaWJseSBqdXN0IGByZWFkLWZpbGVgIGFuZCBhIGdvb2Qgc2VhcmNoKSBhbmQgZGlnIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9gIGRpcmVjdG9yeS4gSSB3YW50IHRvIHNlZSBob3cgYG10NzYwM2AgaXMgcHJvYmVkLCBob3cgaXQncyB1c2VkLCBhbmQgd2hhdCBkYXRhIHN0cnVjdHVyZXMgYXJlIGludm9sdmVkLiBUaGlzIHdpbGwgdGVsbCBtZSBpZiB0aGUgbmV3IGB3Y2lkYCBpbml0aWFsaXphdGlvbiB0b3VjaGVzIGFyZWFzIHRoYXQgaGF2ZSBoaWdoIGZ1enppbmcgcG90ZW50aWFsLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIHRoaW5ncyBsaWtlIGhhcmR3YXJlIHJlZ2lzdGVycywgY29tbWFuZCBxdWV1ZXMsIGFuZCBzaGFyZWQgbWVtb3J5IHJlZ2lvbnMgdGhhdCBjb3VsZCBiZSBhY2Nlc3NlZCBmcm9tIHVzZXIgc3BhY2UuIEtub3dpbmcgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIGRyaXZlcnMgZm9yIHRoZSBkZXZpY2Ugd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgd2hhdCdzIGluIHRoZSBkZXZpY2UncyBkcml2ZXIgYW5kIGhvdyBJIGNhbiB0YXJnZXQgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5ODMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToxMC4zMTAwMzE3ODhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ0OTk0NjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzYwM1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTgzNCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTQ1PXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDY6c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00Ny1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTQ2PW9iai0kKENPTkZJR19NVDc2eDJfQ09NTU9OKSArPSBtdDc2eDIvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo0NzpvYmotJChDT05GSUdfTVQ3NjAzRSkgKz0gbXQ3NjAzL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNDgtb2JqLSQoQ09ORklHX01UNzYxNV9DT01NT04pICs9IG10NzYxNS9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTVQ3NjAzRSkgKz0gbXQ3NjAzZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGUtMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9NYWtlZmlsZTo0Om10NzYwM2UteSA6PSBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGUtNS1cXHRwY2kubyBzb2MubyBtYWluLm8gaW5pdC5vIG1jdS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MzojaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYz01PXN0cnVjdCBiZWFjb25fYmNfZGF0YSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6NjpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTctXFx0c3RydWN0IHNrX2J1ZmZfaGVhZCBxO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM9MTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMzptdDc2MDNfbWFjX3N0dWNrX2JlYWNvbl9yZWNvdmVyeShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTI5PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MzA6bXQ3NjAzX3VwZGF0ZV9iZWFjb25faXRlcih2b2lkICpwcml2LCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTMxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzozMjpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gKHN0cnVjdCBtdDc2MDNfZGV2ICopcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0zMy1cXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjM0OlxcdHN0cnVjdCBtdDc2MDNfdmlmICptdmlmID0gKHN0cnVjdCBtdDc2MDNfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0zNS1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTc4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6Nzk6bXQ3NjAzX2FkZF9idWZmZXJlZF9iYyh2b2lkICpwcml2LCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTgwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy04MS1cXHRzdHJ1Y3QgYmVhY29uX2JjX2RhdGEgKmRhdGEgPSBwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjgyOlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkYXRhLVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6ODM6XFx0c3RydWN0IG10NzYwM192aWYgKm12aWYgPSAoc3RydWN0IG10NzYwM192aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTg0LVxcdHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMDM6dm9pZCBtdDc2MDNfcHJlX3RidHRfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTA0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMDU6XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGZyb21fdGFza2xldChkZXYsIHQsIG10NzYucHJlX3RidHRfdGFza2xldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTA2LVxcdHN0cnVjdCBtdDc2X2RldiAqbWRldiA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMjctXFx0XFx0ZGV2LVxcdTAwM2ViZWFjb25fY2hlY2sgPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjEyODpcXHRtdDc2MDNfbWFjX3N0dWNrX2JlYWNvbl9yZWNvdmVyeShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEyOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEzMy1cXHRcXHRJRUVFODAyMTFfSUZBQ0VfSVRFUl9SRVNVTUVfQUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjEzNDpcXHRcXHRtdDc2MDNfdXBkYXRlX2JlYWNvbl9pdGVyLCBkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEzNS1cXHRtdDc2X3F1ZXVlX2tpY2soZGV2LCBxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE0Ni1cXHRcXHRcXHRJRUVFODAyMTFfSUZBQ0VfSVRFUl9SRVNVTUVfQUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE0NzpcXHRcXHRcXHRtdDc2MDNfYWRkX2J1ZmZlcmVkX2JjLCBcXHUwMDI2ZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTQ4LVxcdH0gd2hpbGUgKG5mcmFtZXMgIT0gc2tiX3F1ZXVlX2xlbihcXHUwMDI2ZGF0YS5xKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTY0LVxcdFxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYgPSBpbmZvLVxcdTAwM2Vjb250cm9sLnZpZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxNjU6XFx0XFx0c3RydWN0IG10NzYwM192aWYgKm12aWYgPSAoc3RydWN0IG10NzYwM192aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE2Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE4MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxODI6dm9pZCBtdDc2MDNfYmVhY29uX3NldF90aW1lcihzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCBpbnQgaWR4LCBpbnQgaW50dmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE4My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xOTMtXFx0aWYgKCFkZXYtXFx1MDAzZW10NzYuYmVhY29uX21hc2sgfHwgKCFpbnR2YWwgXFx1MDAyNlxcdTAwMjYgaWR4IFxcdTAwM2MgMCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxOTQ6XFx0XFx0bXQ3NjAzX2lycV9kaXNhYmxlKGRldiwgTVRfSU5UX01BQ19JUlEzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xOTUtXFx0XFx0bXQ3Nl9jbGVhcihkZXYsIE1UX0FSQl9TQ1IsIE1UX0FSQl9TQ1JfQkNOUV9PUE1PREVfTUFTSyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0yMjAtXFx0XFx0ICBNVF9XRl9BUkJfQkNOX1NUQVJUX0JTUzBuKDEpKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MjIxOlxcdG10NzYwM19pcnFfZW5hYmxlKGRldiwgTVRfSU5UX01BQ19JUlEzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0yMjItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6MzojaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTQtI2luY2x1ZGUgXFxcIi4uL3RyYWNlLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjY6dm9pZCBtdDc2MDNfcnhfcG9sbF9jb21wbGV0ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjg6XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjEwOlxcdG10NzYwM19pcnFfZW5hYmxlKGRldiwgTVRfSU5UX1JYX0RPTkUocSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy0xMS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYzoxMzppcnFyZXR1cm5fdCBtdDc2MDNfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy0xNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjE1OlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkZXZfaW5zdGFuY2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTE2LVxcdHUzMiBpbnRyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTM5LVxcdGlmIChpbnRyIFxcdTAwMjYgTVRfSU5UX1RYX0RPTkVfQUxMKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjQwOlxcdFxcdG10NzYwM19pcnFfZGlzYWJsZShkZXYsIE1UX0lOVF9UWF9ET05FX0FMTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTQxLVxcdFxcdG5hcGlfc2NoZWR1bGUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni50eF9uYXBpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy00NS1cXHRcXHRkZXYtXFx1MDAzZXJ4X3BzZV9jaGVjayA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjQ2OlxcdFxcdG10NzYwM19pcnFfZGlzYWJsZShkZXYsIE1UX0lOVF9SWF9ET05FKDApKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNDctXFx0XFx0bmFwaV9zY2hlZHVsZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm5hcGlbMF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTUxLVxcdFxcdGRldi1cXHUwMDNlcnhfcHNlX2NoZWNrID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6NTI6XFx0XFx0bXQ3NjAzX2lycV9kaXNhYmxlKGRldiwgTVRfSU5UX1JYX0RPTkUoMSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy01My1cXHRcXHRuYXBpX3NjaGVkdWxlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubmFwaVsxXSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjU5OnUzMiBtdDc2MDNfcmVnX21hcChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1MzIgYWRkcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjM6I2luY2x1ZGUgXFxcIm10NzYwMy5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy00LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYz01PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjptdDc2MDNfcmVzZXRfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo4OlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTktXFx0c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByZXNldF9jYXVzZV9zdHJbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYz0zMT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjMyOm10NzYwM19yYWRpb19yZWFkKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMzMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzozNDpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXFx1MDAzZXByaXZhdGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0zNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYz00Mz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjQ0Om10NzYwM19lZGNjYV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNDUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo0NjpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNTItXFx0XFx0XFx0ICBkZXYtXFx1MDAzZW10NzYucmVnaW9uID09IE5MODAyMTFfREZTX0VUU0k7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjUzOlxcdG10NzYwM19pbml0X2VkY2NhKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTU0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jPTYwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjE6bXQ3NjAzX2VkY2NhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNjIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo2MzpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjY5OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2VkY2NhLCBtdDc2MDNfZWRjY2FfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo3MDpcXHRcXHRcXHQgbXQ3NjAzX2VkY2NhX3NldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM9NzI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo3MzptdDc2MDNfYW1wZHVfc3RhdF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNzQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo3NTpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNzYtXFx0aW50IGJvdW5kWzNdLCBpLCByYW5nZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6OTQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10NzYwM19hbXBkdV9zdGF0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjk2OnZvaWQgbXQ3NjAzX2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMTA0LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcImFtcGR1X3N0YXRcXFwiLCAwNDAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MTA1OlxcdFxcdFxcdCAgICAgXFx1MDAyNm10NzYwM19hbXBkdV9zdGF0X2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0xMDYtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJ4bWl0LXF1ZXVlc1xcXCIsIGRpcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0xMTAtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJyZXNldFxcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MTExOlxcdFxcdFxcdFxcdCAgICBtdDc2MDNfcmVzZXRfcmVhZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTExMi1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInJhZGlvXFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzoxMTM6XFx0XFx0XFx0XFx0ICAgIG10NzYwM19yYWRpb19yZWFkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMTE0LVxcdGRlYnVnZnNfY3JlYXRlX3U4KFxcXCJzZW5zaXRpdml0eV9saW1pdFxcXCIsIDA2MDAsIGRpcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MzojaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtNC0jaW5jbHVkZSBcXFwibWFjLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0xND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjE1Om10NzYwM19yeF9sb29wYmFja19za2Ioc3RydWN0IG10NzYwM19kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yOS1cXHRzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjMwOlxcdHN0cnVjdCBtdDc2MDNfc3RhICptc3RhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTMxLVxcdHN0cnVjdCBtdDc2X3djaWQgKndjaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy00OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzo1MDpcXHRwcml2ID0gbXN0YSA9IGNvbnRhaW5lcl9vZih3Y2lkLCBzdHJ1Y3QgbXQ3NjAzX3N0YSwgd2NpZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtNTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy05NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzo5NTp2b2lkIG10NzYwM19xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtOTYtXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaW5mbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy05Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6OTg6XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtOTktXFx0X19sZTMyICpyeGQgPSAoX19sZTMyICopc2tiLVxcdTAwM2VkYXRhO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTA4LVxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxMDk6XFx0XFx0XFx0bXQ3NjAzX3J4X2xvb3BiYWNrX3NrYihkZXYsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTEwLVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTExNS1cXHRcXHRmb3IgKHJ4ZCsrOyByeGQgKyA1IFxcdTAwM2M9IGVuZDsgcnhkICs9IDUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTE2OlxcdFxcdFxcdG10NzYwM19tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTE3LVxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTEyMi1cXHRjYXNlIFBLVF9UWVBFX05PUk1BTDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxMjM6XFx0XFx0aWYgKG10NzYwM19tYWNfZmlsbF9yeChkZXYsIHNrYikgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTEyNC1cXHRcXHRcXHRtdDc2X3J4KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIHEsIHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0xMzQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjEzNTptdDc2MDNfaW5pdF9yeF9xdWV1ZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xMzYtXFx0XFx0ICAgICBpbnQgaWR4LCBpbnQgbl9kZXNjLCBpbnQgYnVmc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNDU6XFx0bXQ3NjAzX2lycV9lbmFibGUoZGV2LCBNVF9JTlRfUlhfRE9ORShpZHgpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNDYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTUwOnN0YXRpYyBpbnQgbXQ3NjAzX3BvbGxfdHgoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE1MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTUyOlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTUzLVxcdGludCBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNTU6XFx0ZGV2ID0gY29udGFpbmVyX29mKG5hcGksIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2LnR4X25hcGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE1Ni1cXHRkZXYtXFx1MDAzZXR4X2RtYV9jaGVjayA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNjItXFx0aWYgKG5hcGlfY29tcGxldGVfZG9uZShuYXBpLCAwKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNjM6XFx0XFx0bXQ3NjAzX2lycV9lbmFibGUoZGV2LCBNVF9JTlRfVFhfRE9ORV9BTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNjk6XFx0bXQ3NjAzX21hY19zdGFfcG9sbChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNzY6aW50IG10NzYwM19kbWFfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xODktXFx0bXQ3Nl93cihkZXYsIE1UX1dQRE1BX1JTVF9JRFgsIH4wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxOTA6XFx0bXQ3NjAzX3BzZV9jbGllbnRfcmVzZXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xOTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjIwOlxcdG10NzYwM19pcnFfZW5hYmxlKGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yMjEtXFx0XFx0XFx0ICBNVF9JTlRfVFhfRE9ORShJRUVFODAyMTFfQUNfVk8pIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyMzA6XFx0cmV0ID0gbXQ3NjAzX2luaXRfcnhfcXVldWUoZGV2LCBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX01DVV0sIDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjMxLVxcdFxcdFxcdFxcdCAgIE1UNzYwM19NQ1VfUlhfUklOR19TSVpFLCBNVF9SWF9CVUZfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjM1OlxcdHJldCA9IG10NzYwM19pbml0X3J4X3F1ZXVlKGRldiwgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9NQUlOXSwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yMzYtXFx0XFx0XFx0XFx0ICAgTVQ3NjAzX1JYX1JJTkdfU0laRSwgTVRfUlhfQlVGX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjQ1LVxcdG5ldGlmX25hcGlfYWRkX3R4KGRldi1cXHUwMDNlbXQ3Ni50eF9uYXBpX2RldiwgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni50eF9uYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI0NjpcXHRcXHRcXHQgIG10NzYwM19wb2xsX3R4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNDctXFx0bmFwaV9lbmFibGUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni50eF9uYXBpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyNTI6dm9pZCBtdDc2MDNfZG1hX2NsZWFudXAoc3RydWN0IG10NzYwM19kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNTMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMy0jaW5jbHVkZSBcXHUwMDNjbGludXgvb2YuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo0OiNpbmNsdWRlIFxcXCJtdDc2MDMuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy01LSNpbmNsdWRlIFxcXCJlZXByb20uaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jPTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjg6bXQ3NjAzX2VmdXNlX3JlYWQoc3RydWN0IG10NzYwM19kZXYgKmRldiwgdTMyIGJhc2UsIHUxNiBhZGRyLCB1OCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy05LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jPTQwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo0MTptdDc2MDNfZWZ1c2VfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTQyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo0MzpcXHR1MzIgYmFzZSA9IG10NzYwM19yZWdfbWFwKGRldiwgTVRfRUZVU0VfQkFTRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtNDQtXFx0aW50IGxlbiA9IE1UNzYwM19FRVBST01fU0laRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTU3LVxcdGZvciAoaSA9IDA7IGkgKyAxNiBcXHUwMDNjPSBsZW47IGkgKz0gMTYpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo1ODpcXHRcXHRyZXQgPSBtdDc2MDNfZWZ1c2VfcmVhZChkZXYsIGJhc2UsIGksIGJ1ZiArIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTU5LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYz02Nj1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjY3Om10NzYwM19oYXNfY2FsX2ZyZWVfZGF0YShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1OCAqZWZ1c2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtNjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM9OTA9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo5MTptdDc2MDNfYXBwbHlfY2FsX2ZyZWVfZGF0YShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1OCAqZWZ1c2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjExMjpcXHRpZiAoIW10NzYwM19oYXNfY2FsX2ZyZWVfZGF0YShkZXYsIGVmdXNlKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xMTMtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM9MTI1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzoxMjY6bXQ3NjAzX2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTEzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzoxMzQ6XFx0cmV0dXJuIG10NzYwM19lZnVzZV9pbml0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTM1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTM3OnN0YXRpYyBpbnQgbXQ3NjAzX2NoZWNrX2VlcHJvbShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xMzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjE1MjpzdGF0aWMgaW5saW5lIGJvb2wgaXNfbXQ3Njg4KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzoxNTc6aW50IG10NzYwM19lZXByb21faW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTYyOlxcdHJldCA9IG10NzYwM19lZXByb21fbG9hZChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE2My1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE2Ni1cXHRpZiAoZGV2LVxcdTAwM2VtdDc2Lm90cC5kYXRhKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTY3OlxcdFxcdGlmIChtdDc2MDNfY2hlY2tfZWVwcm9tKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpID09IDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTY4OlxcdFxcdFxcdG10NzYwM19hcHBseV9jYWxfZnJlZV9kYXRhKGRldiwgZGV2LVxcdTAwM2VtdDc2Lm90cC5kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xNjktXFx0XFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaDo2OiNpbmNsdWRlIFxcXCJtdDc2MDMuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaC03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5oOjg6ZW51bSBtdDc2MDNfZWVwcm9tX2ZpZWxkIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaC05LVxcdE1UX0VFX0NISVBfSUQgPVxcdFxcdFxcdFxcdDB4MDAwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmg6ODI6ZW51bSBtdDc2MDNfZWVwcm9tX3NvdXJjZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtODMtXFx0TVRfRUVfU1JDX1BST00sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMy0jaW5jbHVkZSBcXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDojaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTUtI2luY2x1ZGUgXFxcIm1hYy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjg6Y29uc3Qgc3RydWN0IG10NzZfZHJpdmVyX29wcyBtdDc2MDNfZHJ2X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOS1cXHQudHh3aV9zaXplID0gTVRfVFhEX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTEtXFx0LnN1cnZleV9mbGFncyA9IFNVUlZFWV9JTkZPX1RJTUVfVFgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjEyOlxcdC50eF9wcmVwYXJlX3NrYiA9IG10NzYwM190eF9wcmVwYXJlX3NrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTM6XFx0LnR4X2NvbXBsZXRlX3NrYiA9IG10NzYwM190eF9jb21wbGV0ZV9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE0OlxcdC5yeF9za2IgPSBtdDc2MDNfcXVldWVfcnhfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxNTpcXHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzYwM19yeF9wb2xsX2NvbXBsZXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxNjpcXHQuc3RhX3BzID0gbXQ3NjAzX3N0YV9wcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTc6XFx0LnN0YV9hZGQgPSBtdDc2MDNfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTg6XFx0LnN0YV9ldmVudCA9IG10NzYwM19zdGFfZXZlbnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE5OlxcdC5zdGFfcmVtb3ZlID0gbXQ3NjAzX3N0YV9yZW1vdmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIwOlxcdC51cGRhdGVfc3VydmV5ID0gbXQ3NjAzX3VwZGF0ZV9jaGFubmVsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoyMTpcXHQuc2V0X2NoYW5uZWwgPSBtdDc2MDNfc2V0X2NoYW5uZWwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIyLX07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MjQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MjU6bXQ3NjAzX3NldF90bWFjX3RlbXBsYXRlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzQ6XFx0YWRkciA9IG10NzYwM19yZWdfbWFwKGRldiwgTVRfQ0xJRU5UX0JBU0VfUEhZU19BRERSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzUtXFx0YWRkciArPSBNVF9DTElFTlRfVE1BQ19JTkZPX1RFTVBMQVRFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTQwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQxOm10NzYwM19kbWFfc2NoZWRfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjg5OlxcdGlmIChpc19tdDc2MDMoZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOTAtXFx0XFx0cmVzZXJ2ZWRfY291bnQgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo5NDpcXHRpZiAoaXNfbXQ3NjAzKGRldikgXFx1MDAyNlxcdTAwMjYgbXQ3Nnh4X3JldihkZXYpIFxcdTAwM2U9IE1UNzYwM19SRVZfRTIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOTUtXFx0XFx0bXQ3Nl93cihkZXYsIE1UX0dST1VQX1RIUkVTSCgwKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz0xMTQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTE1Om10NzYwM19waHlfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0xMTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTEzMz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxMzQ6bXQ3NjAzX21hY19pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTEzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxOTU6XFx0bXQ3NjAzX3NldF90bWFjX3RlbXBsYXRlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTE5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTk3LVxcdC8qIEVuYWJsZSBSWCBncm91cCB0byBISUYgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTk4OlxcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0NMSUVOVF9CQVNFX1BIWVNfQUREUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTE5OS1cXHRtdDc2X3NldChkZXYsIGFkZHIgKyBNVF9DTElFTlRfUlhJTkYsIE1UX0NMSUVOVF9SWElORl9SWFNIX0dST1VQUyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjI4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBNVDc2MDNfV1RCTF9TSVpFOyBpKyspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIyOTpcXHRcXHRtdDc2MDNfd3RibF9jbGVhcihkZXYsIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIzMS1cXHRldGhfYnJvYWRjYXN0X2FkZHIoYmNfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIzMjpcXHRtdDc2MDNfd3RibF9pbml0KGRldiwgTVQ3NjAzX1dUQkxfUkVTRVJWRUQsIC0xLCBiY19hZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjMzLVxcdG10NzZfd2NpZF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZWdsb2JhbF9zdGEud2NpZCwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9Mjc4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mjc5Om10NzYwM19pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI4MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoyODU6XFx0cmV0ID0gbXQ3NjAzX2VlcHJvbV9pbml0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI4Ni1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjI4OTpcXHRyZXQgPSBtdDc2MDNfZG1hX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjkwLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjkzLVxcdG10NzZfd3IoZGV2LCBNVF9XUERNQV9HTE9fQ0ZHLCAweDUyMDAwODUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mjk0OlxcdG10NzYwM19tYWNfZG1hX3N0YXJ0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI5NS1cXHRkZXYtXFx1MDAzZXJ4ZmlsdGVyID0gbXQ3Nl9ycihkZXYsIE1UX1dGX1JGQ1IpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzA0OlxcdHJldCA9IG10NzYwM19tY3VfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMDUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMwODpcXHRtdDc2MDNfZG1hX3NjaGVkX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzA5OlxcdG10NzYwM19tY3Vfc2V0X2VlcHJvbShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozMTA6XFx0bXQ3NjAzX3BoeV9pbml0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMxMTpcXHRtdDc2MDNfbWFjX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTMzMj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNDI6c3RhdGljIHZvaWQgbXQ3NjAzX2xlZF9zZXRfY29uZmlnKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSwgdTggZGVsYXlfb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM0My1cXHRcXHRcXHRcXHQgIHU4IGRlbGF5X29mZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzQ0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzQ1OlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobXBoeS1cXHUwMDNlZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzQ2LVxcdFxcdFxcdFxcdFxcdCAgICAgIG10NzYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzUzOlxcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0xFRF9TVEFUVVNfMChtcGh5LVxcdTAwM2VsZWRzLnBpbikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNTQtXFx0bXQ3Nl93cihkZXYsIGFkZHIsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM1NTpcXHRhZGRyID0gbXQ3NjAzX3JlZ19tYXAoZGV2LCBNVF9MRURfU1RBVFVTXzEobXBoeS1cXHUwMDNlbGVkcy5waW4pKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzU2LVxcdG10NzZfd3IoZGV2LCBhZGRyLCB2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM2MS1cXHRcXHR2YWwgfD0gTVRfTEVEX0NUUkxfUE9MQVJJVFkobXBoeS1cXHUwMDNlbGVkcy5waW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNjI6XFx0YWRkciA9IG10NzYwM19yZWdfbWFwKGRldiwgTVRfTEVEX0NUUkwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNjMtXFx0bXQ3Nl93cihkZXYsIGFkZHIsIHZhbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNjY6c3RhdGljIGludCBtdDc2MDNfbGVkX3NldF9ibGluayhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzY3LVxcdFxcdFxcdFxcdHVuc2lnbmVkIGxvbmcgKmRlbGF5X29uLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM3Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mzc3OlxcdG10NzYwM19sZWRfc2V0X2NvbmZpZyhtcGh5LCBkZWx0YV9vbiwgZGVsdGFfb2ZmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzc4LVxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzgxOnN0YXRpYyB2b2lkIG10NzYwM19sZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM4Mi1cXHRcXHRcXHRcXHQgICAgICBlbnVtIGxlZF9icmlnaHRuZXNzIGJyaWdodG5lc3MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzg3LVxcdGlmICghYnJpZ2h0bmVzcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mzg4OlxcdFxcdG10NzYwM19sZWRfc2V0X2NvbmZpZyhtcGh5LCAwLCAweGZmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzg5LVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzkwOlxcdFxcdG10NzYwM19sZWRfc2V0X2NvbmZpZyhtcGh5LCAweGZmLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzkxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozOTM6c3RhdGljIHUzMiBfX210NzYwM19yZWdfYWRkcihzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1MzIgYWRkcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzk0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM5ODpcXHRyZXR1cm4gbXQ3NjAzX3JlZ19tYXAoZGV2LCBhZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzk5LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MDE6c3RhdGljIHUzMiBtdDc2MDNfcnIoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MDIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MDM6XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQwNDpcXHR1MzIgYWRkciA9IF9fbXQ3NjAzX3JlZ19hZGRyKGRldiwgb2Zmc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDA1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDA5OnN0YXRpYyB2b2lkIG10NzYwM193cihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQxMTpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDEyOlxcdHUzMiBhZGRyID0gX19tdDc2MDNfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTc6c3RhdGljIHUzMiBtdDc2MDNfcm13KHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCwgdTMyIG1hc2ssIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQxOC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQxOTpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDIwOlxcdHUzMiBhZGRyID0gX19tdDc2MDNfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9NDI1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQyNjptdDc2MDNfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MjctXFx0XFx0ICAgICBzdHJ1Y3QgcmVndWxhdG9yeV9yZXF1ZXN0ICpyZXF1ZXN0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQyOS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IHdpcGh5X3RvX2llZWU4MDIxMV9odyh3aXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQzMDpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gaHctXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz00Mzc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0Mzg6bXQ3NjAzX3R4cG93ZXJfc2lnbmVkKGludCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQzOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9NDUyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQ1MzptdDc2MDNfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQ1NC1cXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDY1LVxcdGV4dF9wYV9wd3IgPSBlZXByb21bTVRfRUVfVFhfUE9XRVJfVFNTSV9PRkZdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0NjY6XFx0aWYgKGV4dF9wYSBcXHUwMDI2XFx1MDAyNiBpc19tdDc2MDMoZGV2KSBcXHUwMDI2XFx1MDAyNiBleHRfcGFfcHdyICE9IDAgXFx1MDAyNlxcdTAwMjYgZXh0X3BhX3B3ciAhPSAweGZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00NjctXFx0XFx0dGFyZ2V0X3Bvd2VyID0gZXh0X3BhX3B3ciBcXHUwMDI2IH5CSVQoNyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDczLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyAxNDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQ3NDpcXHRcXHRjdXJfb2Zmc2V0ID0gbXQ3NjAzX3R4cG93ZXJfc2lnbmVkKHJhdGVfcG93ZXJbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00NzUtXFx0XFx0bWF4X29mZnNldCA9IG1heChtYXhfb2Zmc2V0LCBjdXJfb2Zmc2V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00OTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQ5NjppbnQgbXQ3NjAzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToxMC41NTUwMzExODhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMDIwODgyNTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgTVQ3NjAzIEJ1cyBTdXBwb3J0IGFuZCBEZXZpY2UgUHJvYmluZyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBkaWcgaW50byBob3cgdGhlIE1UNzYwMyBjaGlwc2V0IGhhbmRsZXMgZGlmZmVyZW50IGJ1c2VzIGFuZCwgc3BlY2lmaWNhbGx5LCBob3cgdGhlIGRldmljZXMgcHJvYmUgYW5kIGluaXRpYWxpemUuIEkga25vdyB0aGlzIGNoaXBzZXQgZmFpcmx5IHdlbGwsIGJ1dCBhIHF1aWNrIHJlZnJlc2ggaXMgYWx3YXlzIGdvb2QgYmVmb3JlIEkgZGl2ZSBkZWVwZXIuIE15IGZpcnN0IHN0ZXAgaXMgdG8gZm9jdXMgb24gdGhlIGtlcm5lbCBzb3VyY2UgY29kZS4gSSBzaG91bGQgcHJvYmFibHkgc3RhcnQgd2l0aCB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2AgZGlyZWN0b3J5LlxuXG5JJ2xsIGJlIGxvb2tpbmcgY2xvc2VseSBhdCB0aGUgYHBjaS5jYCwgYHNvYy5jYCBmaWxlcywgYW5kIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHRoZXkgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBzdXBwb3J0ZWQgYnVzIHR5cGVzIGFuZCB0aGUgcmVsZXZhbnQgZGV2aWNlIHByb2Jpbmcgc2VxdWVuY2VzLiBJJ20gZXhwZWN0aW5nIGBwY2kuY2AgdG8gaGFuZGxlIHRoZSBQQ0ktc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24sIGJ1dCBJJ2xsIGFsc28gYmUgd2F0Y2hpbmcgdG8gc2VlIGhvdyB0aGUgY29kZSBpcyBzdHJ1Y3R1cmVkIGluIHRoZSBTT0MgY2FzZSBpbiBgc29jLmNgIGFuZCBob3cgdGhlIGRyaXZlciBpcyBjb25maWd1cmVkIGluIGBLY29uZmlnYC4gVGhpcyB3aWxsIHByb3ZpZGUgYSBnb29kIHBpY3R1cmUgb2YgdGhlIGRpZmZlcmVudCBoYXJkd2FyZSBlbnZpcm9ubWVudHMgdGhhdCB0aGUgbXQ3NjAzIGRyaXZlciBzdXBwb3J0cyBhbmQgaG93IHRoZSBkZXZpY2VzIGRpc2NvdmVyIGFuZCBjb25maWd1cmUgdGhlbXNlbHZlcyB3aXRoaW4gdGhvc2UgYnVzIGFyY2hpdGVjdHVyZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTAyLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MTMuNTc1OTE1NTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzMDk2MzQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jPTgwOT1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3NjAzX2V4aXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uYy04MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjgxNzptb2R1bGVfaW5pdChtdDc2MDNfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjgxODptb2R1bGVfZXhpdChtdDc2MDNfZXhpdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjEzLjY3OTAxNjIwNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMwMjgyMjc1OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6XG5cbioqQW5hbHl6aW5nIHRoZSBNVDc2MDMgV2lyZWxlc3MgRHJpdmVyIEltcGxlbWVudGF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpZyBpbnRvIHRoaXMgTVQ3NjAzIGRyaXZlci4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHRha2luZyBhIGxvb2sgYXQgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uY2AgYXJvdW5kIGxpbmUgODAwLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgZ29vZCBlbnRyeSBwb2ludCBpbnRvIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIG1vZHVsZSwgYW5kIGhvcGVmdWxseSwgSSBjYW4gZ2V0IGEgaGFuZGxlIG9uIHdoYXQncyBnb2luZyBvbiB3aXRoIHRoZSBNVDc2MDMgaGVyZS4gSSdsbCBuZWVkIHRvIGNvcnJlbGF0ZSB0aGUgcmVnaXN0ZXIgbWFwcyBhbmQgZmlybXdhcmUgaW50ZXJmYWNlIHdpdGggdGhlIG1haW4gbG9vcCBhbmQgYXNzb2NpYXRlZCBzdHJ1Y3R1cmVzLlxuXG5BZnRlciB0aGF0LCBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIFBDSSBpbXBsZW1lbnRhdGlvbiBpbiBgcGNpLmNgLCBhbmQgdGhlIFNPQyBpbXBsZW1lbnRhdGlvbiBpbiBgc29jLmNgIHRvIHNlZSBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHN5c3RlbS4gVGhpcyB3aWxsIGRlcGVuZCBvbiB0aGUgbWFjaGluZSBpdCBydW5zIG9uLCBzbyBJJ2xsIG5lZWQgdG8gc2VlIGhvdyB0aGUgY29kZSBoYW5kbGVzIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIG1vZHVsZXMgaW50ZWdyYXRlIGFuZCBkaWZmZXIgZnJvbSBlYWNoIG90aGVyLiBJJ2xsIG5lZWQgdG8gaWRlbnRpZnkgcG90ZW50aWFsIGJvdHRsZW5lY2tzIG9yIGFyZWFzIG9mIGluZWZmaWNpZW5jeS4gTGV0J3MgZ2V0IGNyYWNraW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDQxMSwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjE2LjcwNzI0NzA4OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NzYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNzkwLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNzkwOlxcdE1PRFVMRV9ERVNDUklQVElPTihcXFwiTWVkaWFUZWsgTVQ3NjAzRSBhbmQgTVQ3Nng4IHdpcmVsZXNzIGRyaXZlclxcXCIpO1xcbiA3OTE6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkR1YWwgQlNEL0dQTFxcXCIpO1xcbiA3OTI6XFx0XFxuIDc5MzpcXHRzdGF0aWMgaW50IF9faW5pdCBtdDc2MDNfaW5pdCh2b2lkKVxcbiA3OTQ6XFx0e1xcbiA3OTU6XFx0XFx0aW50IHJldDtcXG4gNzk2OlxcdFxcbiA3OTc6XFx0XFx0cmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKFxcdTAwMjZtdDc2X3dtYWNfZHJpdmVyKTtcXG4gNzk4OlxcdFxcdGlmIChyZXQpXFxuIDc5OTpcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiA4MDA6XFx0XFxuIDgwMTpcXHQjaWZkZWYgQ09ORklHX1BDSVxcbiA4MDI6XFx0XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3NjAzX3BjaV9kcml2ZXIpO1xcbiA4MDM6XFx0XFx0aWYgKHJldClcXG4gODA0OlxcdFxcdFxcdHBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKFxcdTAwMjZtdDc2X3dtYWNfZHJpdmVyKTtcXG4gODA1OlxcdCNlbmRpZlxcbiA4MDY6XFx0XFx0cmV0dXJuIHJldDtcXG4gODA3OlxcdH1cXG4gODA4OlxcdFxcbiA4MDk6XFx0c3RhdGljIHZvaWQgX19leGl0IG10NzYwM19leGl0KHZvaWQpXFxuIDgxMDpcXHR7XFxuIDgxMTpcXHQjaWZkZWYgQ09ORklHX1BDSVxcbiA4MTI6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc2MDNfcGNpX2RyaXZlcik7XFxuIDgxMzpcXHQjZW5kaWZcXG4gODE0OlxcdFxcdHBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKFxcdTAwMjZtdDc2X3dtYWNfZHJpdmVyKTtcXG4gODE1OlxcdH1cXG4gODE2OlxcdFxcbiA4MTc6XFx0bW9kdWxlX2luaXQobXQ3NjAzX2luaXQpO1xcbiA4MTg6XFx0bW9kdWxlX2V4aXQobXQ3NjAzX2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToxNi43MDczOTc0MjhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxNjY4MjQzNzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IGltbWVkaWF0ZSB0cmFpbiBvZiB0aG91Z2h0OlxuXG4qKkNoZWNraW5nIEtleSBGaWxlcyBmb3IgQ29udGV4dCBhbmQgVW5kZXJzdGFuZGluZyoqXG5cbkFscmlnaHQsIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aGlzLCBJIG5lZWQgdG8gZ2V0IGEgbGF5IG9mIHRoZSBsYW5kLiBNeSBpbml0aWFsIGFwcHJvYWNoIGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSB1c3VhbCBzdXNwZWN0czogYHBjaS5jYCwgYHNvYy5jYCwgYW5kIHRoZSBgS2NvbmZpZ2AgZmlsZXMuIEknbSBhc3N1bWluZyB0aGF0J3Mgd2hlcmUgSSdsbCBmaW5kIGEgZm91bmRhdGlvbmFsIHVuZGVyc3RhbmRpbmcgb2YgdGhlIFBDSSBpbnRlcmFjdGlvbiwgdGhlIFN5c3RlbS1vbi1DaGlwIChTb0MpIHNwZWNpZmljcyB0aGF0IGFyZSByZWxldmFudCwgYW5kIHRoZSBvdmVyYWxsIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBnb3Zlcm5pbmcgdGhpcyBtb2R1bGUgb3Igc3lzdGVtLiBHcmFiYmluZyB0aGUgbG93LWhhbmdpbmcgZnJ1aXQgZWFybHkgaGVscHMgdG8gYXZvaWQgd2FzdGVkIHRpbWUuIFRoaXMgYXBwcm9hY2ggYWxsb3dzIG1lIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBjb3JlIGNvbXBvbmVudHMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBiZWZvcmUgZ2V0dGluZyBib2dnZWQgZG93biBpbiBtb3JlIGludHJpY2F0ZSBkZXRhaWxzIG9yIHBvdGVudGlhbCByYWJiaXQgaG9sZXMuIEkgY2FuIHRoZW4gdXNlIHRoaXMga25vd2xlZGdlIHRvIGVzdGFibGlzaCBhIGJldHRlciBtZW50YWwgbW9kZWwgb2YgdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjExNzAsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjE4LjM3NTY0Mjg5N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjAwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9wY2kuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdFxcbiAgIDM6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAgIDQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbiAgIDU6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BjaS5oXFx1MDAzZVxcbiAgIDY6XFx0XFxuICAgNzpcXHQjaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuICAgODpcXHRcXG4gICA5OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc2cGNpX2RldmljZV90YWJsZVtdID0ge1xcbiAgMTA6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIDB4NzYwMykgfSxcXG4gIDExOlxcdFxcdHsgfSxcXG4gIDEyOlxcdH07XFxuICAxMzpcXHRcXG4gIDE0OlxcdHN0YXRpYyBpbnRcXG4gIDE1OlxcdG10NzZwY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4gIDE2OlxcdHtcXG4gIDE3OlxcdFxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XFxuICAxODpcXHRcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXY7XFxuICAxOTpcXHRcXHRpbnQgcmV0O1xcbiAgMjA6XFx0XFxuICAyMTpcXHRcXHRyZXQgPSBwY2ltX2VuYWJsZV9kZXZpY2UocGRldik7XFxuICAyMjpcXHRcXHRpZiAocmV0KVxcbiAgMjM6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gIDI0OlxcdFxcbiAgMjU6XFx0XFx0cmV0ID0gcGNpbV9pb21hcF9yZWdpb25zKHBkZXYsIEJJVCgwKSwgcGNpX25hbWUocGRldikpO1xcbiAgMjY6XFx0XFx0aWYgKHJldClcXG4gIDI3OlxcdFxcdFxcdHJldHVybiByZXQ7XFxuICAyODpcXHRcXG4gIDI5OlxcdFxcdHBjaV9zZXRfbWFzdGVyKHBkZXYpO1xcbiAgMzA6XFx0XFxuICAzMTpcXHRcXHRyZXQgPSBkbWFfc2V0X21hc2soXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgRE1BX0JJVF9NQVNLKDMyKSk7XFxuICAzMjpcXHRcXHRpZiAocmV0KVxcbiAgMzM6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gIDM0OlxcdFxcbiAgMzU6XFx0XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzYwM19vcHMsXFxuICAzNjpcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm10NzYwM19kcnZfb3BzKTtcXG4gIDM3OlxcdFxcdGlmICghbWRldilcXG4gIDM4OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiAgMzk6XFx0XFxuICA0MDpcXHRcXHRkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xcbiAgNDE6XFx0XFx0bXQ3Nl9tbWlvX2luaXQobWRldiwgcGNpbV9pb21hcF90YWJsZShwZGV2KVswXSk7XFxuICA0MjpcXHRcXG4gIDQzOlxcdFxcdG1kZXYtXFx1MDAzZXJldiA9IChtdDc2X3JyKGRldiwgTVRfSFdfQ0hJUElEKSBcXHUwMDNjXFx1MDAzYyAxNikgfFxcbiAgNDQ6XFx0XFx0XFx0ICAgIChtdDc2X3JyKGRldiwgTVRfSFdfUkVWKSBcXHUwMDI2IDB4ZmYpO1xcbiAgNDU6XFx0XFx0ZGV2X2luZm8obWRldi1cXHUwMDNlZGV2LCBcXFwiQVNJQyByZXZpc2lvbjogJTA0eFxcXFxuXFxcIiwgbWRldi1cXHUwMDNlcmV2KTtcXG4gIDQ2OlxcdFxcbiAgNDc6XFx0XFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9NQVNLX0NTUiwgMCk7XFxuICA0ODpcXHRcXG4gIDQ5OlxcdFxcdHJldCA9IGRldm1fcmVxdWVzdF9pcnEobWRldi1cXHUwMDNlZGV2LCBwZGV2LVxcdTAwM2VpcnEsIG10NzYwM19pcnFfaGFuZGxlcixcXG4gIDUwOlxcdFxcdFxcdFxcdCAgICAgICBJUlFGX1NIQVJFRCwgS0JVSUxEX01PRE5BTUUsIGRldik7XFxuICA1MTpcXHRcXHRpZiAocmV0KVxcbiAgNTI6XFx0XFx0XFx0Z290byBlcnJvcjtcXG4gIDUzOlxcdFxcbiAgNTQ6XFx0XFx0cmV0ID0gbXQ3NjAzX3JlZ2lzdGVyX2RldmljZShkZXYpO1xcbiAgNTU6XFx0XFx0aWYgKHJldClcXG4gIDU2OlxcdFxcdFxcdGdvdG8gZXJyb3I7XFxuICA1NzpcXHRcXG4gIDU4OlxcdFxcdHJldHVybiAwO1xcbiAgNTk6XFx0ZXJyb3I6XFxuICA2MDpcXHRcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbiAgNjE6XFx0XFxuICA2MjpcXHRcXHRyZXR1cm4gcmV0O1xcbiAgNjM6XFx0fVxcbiAgNjQ6XFx0XFxuICA2NTpcXHRzdGF0aWMgdm9pZFxcbiAgNjY6XFx0bXQ3NnBjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuICA2NzpcXHR7XFxuICA2ODpcXHRcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XFxuICA2OTpcXHRcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcXG4gIDcwOlxcdFxcbiAgNzE6XFx0XFx0bXQ3NjAzX3VucmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuICA3MjpcXHR9XFxuICA3MzpcXHRcXG4gIDc0OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc2cGNpX2RldmljZV90YWJsZSk7XFxuICA3NTpcXHRNT0RVTEVfRklSTVdBUkUoTVQ3NjAzX0ZJUk1XQVJFX0UxKTtcXG4gIDc2OlxcdE1PRFVMRV9GSVJNV0FSRShNVDc2MDNfRklSTVdBUkVfRTIpO1xcbiAgNzc6XFx0XFxuICA3ODpcXHRzdHJ1Y3QgcGNpX2RyaXZlciBtdDc2MDNfcGNpX2RyaXZlciA9IHtcXG4gIDc5OlxcdFxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG4gIDgwOlxcdFxcdC5pZF90YWJsZVxcdD0gbXQ3NnBjaV9kZXZpY2VfdGFibGUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjE4LjM3NTczNzY4N1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMjkwODIxNjQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byBgc29jLmNgKipcblxuQWxyaWdodCwgc28gd2UncmUgYXQgYSBwb2ludCB3aGVyZSB3ZSBuZWVkIHRvIGJlIHRob3JvdWdoLiBJJ3ZlIGJlZW4gZm9jdXNpbmcgb24gW2ltcGxpZWQgcHJlY2VkaW5nIGNvbnRleHQgdGhlIHVzZXIgd291bGQgdW5kZXJzdGFuZCBiYXNlZCBvbiBcIkxldCdzIGFsc28gY2hlY2sgc29jLmNcIl0sIGJ1dCBhIGNydWNpYWwgbmV4dCBzdGVwLCBjb25zaWRlcmluZyB0aGUgc2NvcGUgb2Ygd2hhdCB3ZSdyZSB0YWNrbGluZywgaXMgdG8gZ2l2ZSBgc29jLmNgIGEgY2xvc2UgbG9vay4gSXQncyBwcm9iYWJseSB0aGUgbGluY2hwaW4gaW4gW2ltcGxpZWQgcmVsYXRpb25zaGlwIHRvIHRoZSB1c2VyJ3MgZmllbGQgYW5kIGNvbnRleHRdIHRoYXQgdG91Y2hlcyBvbiBbc3BlY2lmaWMgYXNwZWN0IHRoZSB1c2VyIHdvdWxkIHVuZGVyc3RhbmQgYmFzZWQgb24gXCJzb2MuY1wiXS4gSSB3YW50IHRvIG1ha2Ugc3VyZSB3ZSBoYXZlbid0IG92ZXJsb29rZWQgYW55IGludGVncmF0aW9uIHBvaW50cyBvciBkZXBlbmRlbmNpZXMgd2l0aCB3aGF0IHdlJ3ZlIGFscmVhZHkgZXhhbWluZWQuIFRoaXMgaXMgYWJvdXQgZW5zdXJpbmcgY29tcGxldGUgY292ZXJhZ2UuIFRoZXJlIG1pZ2h0IGJlIHNvbWUgc3VidGxlIGludGVyYWN0aW9ucyBoZXJlIHRoYXQsIGlmIG1pc3NlZCwgd291bGQgbGVhZCB0byByZWFsIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLiBJIGFtIHRoaW5raW5nIHBhcnRpY3VsYXJseSBhYm91dCBbc3BlY2lmaWMgcG90ZW50aWFsIGlzc3VlcyB0aGUgdXNlciBtYXkgY29uc2lkZXIsIGJhc2VkIG9uIFwic29jLmNcIiB3aXRoaW4gdGhlIGNvbnRleHRdIGFuZCBtYWtpbmcgc3VyZSB0aGUgaW1wbGljYXRpb25zIG9mIFtsaWtlbHkgYXJlYSBvZiBjb2RlXSBoYXZlIGJlZW4gdGhvcm91Z2hseSB2ZXR0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNjI1LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToyMC42NjY1NjEyN1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2ODU5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdFxcbiAgIDM6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAgIDQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbiAgIDU6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RldmljZS5oXFx1MDAzZVxcbiAgIDY6XFx0XFxuICAgNzpcXHQjaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuICAgODpcXHRcXG4gICA5OlxcdHN0YXRpYyBpbnRcXG4gIDEwOlxcdG10NzZfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbiAgMTE6XFx0e1xcbiAgMTI6XFx0XFx0c3RydWN0IG10NzYwM19kZXYgKmRldjtcXG4gIDEzOlxcdFxcdHZvaWQgX19pb21lbSAqbWVtX2Jhc2U7XFxuICAxNDpcXHRcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXY7XFxuICAxNTpcXHRcXHRpbnQgaXJxO1xcbiAgMTY6XFx0XFx0aW50IHJldDtcXG4gIDE3OlxcdFxcbiAgMTg6XFx0XFx0aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTtcXG4gIDE5OlxcdFxcdGlmIChpcnEgXFx1MDAzYyAwKVxcbiAgMjA6XFx0XFx0XFx0cmV0dXJuIGlycTtcXG4gIDIxOlxcdFxcbiAgMjI6XFx0XFx0bWVtX2Jhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XFxuICAyMzpcXHRcXHRpZiAoSVNfRVJSKG1lbV9iYXNlKSlcXG4gIDI0OlxcdFxcdFxcdHJldHVybiBQVFJfRVJSKG1lbV9iYXNlKTtcXG4gIDI1OlxcdFxcbiAgMjY6XFx0XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzYwM19vcHMsXFxuICAyNzpcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm10NzYwM19kcnZfb3BzKTtcXG4gIDI4OlxcdFxcdGlmICghbWRldilcXG4gIDI5OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiAgMzA6XFx0XFxuICAzMTpcXHRcXHRkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xcbiAgMzI6XFx0XFx0bXQ3Nl9tbWlvX2luaXQobWRldiwgbWVtX2Jhc2UpO1xcbiAgMzM6XFx0XFxuICAzNDpcXHRcXHRtZGV2LVxcdTAwM2VyZXYgPSAobXQ3Nl9ycihkZXYsIE1UX0hXX0NISVBJRCkgXFx1MDAzY1xcdTAwM2MgMTYpIHxcXG4gIDM1OlxcdFxcdFxcdCAgICAobXQ3Nl9ycihkZXYsIE1UX0hXX1JFVikgXFx1MDAyNiAweGZmKTtcXG4gIDM2OlxcdFxcdGRldl9pbmZvKG1kZXYtXFx1MDAzZWRldiwgXFxcIkFTSUMgcmV2aXNpb246ICUwNHhcXFxcblxcXCIsIG1kZXYtXFx1MDAzZXJldik7XFxuICAzNzpcXHRcXG4gIDM4OlxcdFxcdG10NzZfd3IoZGV2LCBNVF9JTlRfTUFTS19DU1IsIDApO1xcbiAgMzk6XFx0XFxuICA0MDpcXHRcXHRyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKG1kZXYtXFx1MDAzZWRldiwgaXJxLCBtdDc2MDNfaXJxX2hhbmRsZXIsXFxuICA0MTpcXHRcXHRcXHRcXHQgICAgICAgSVJRRl9TSEFSRUQsIEtCVUlMRF9NT0ROQU1FLCBkZXYpO1xcbiAgNDI6XFx0XFx0aWYgKHJldClcXG4gIDQzOlxcdFxcdFxcdGdvdG8gZXJyb3I7XFxuICA0NDpcXHRcXG4gIDQ1OlxcdFxcdHJldCA9IG10NzYwM19yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcXG4gIDQ2OlxcdFxcdGlmIChyZXQpXFxuICA0NzpcXHRcXHRcXHRnb3RvIGVycm9yO1xcbiAgNDg6XFx0XFxuICA0OTpcXHRcXHRyZXR1cm4gMDtcXG4gIDUwOlxcdGVycm9yOlxcbiAgNTE6XFx0XFx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcXG4gIDUyOlxcdFxcdHJldHVybiByZXQ7XFxuICA1MzpcXHR9XFxuICA1NDpcXHRcXG4gIDU1OlxcdHN0YXRpYyB2b2lkIG10NzZfd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4gIDU2OlxcdHtcXG4gIDU3OlxcdFxcdHN0cnVjdCBtdDc2X2RldiAqbWRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpO1xcbiAgNTg6XFx0XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XFxuICA1OTpcXHRcXG4gIDYwOlxcdFxcdG10NzYwM191bnJlZ2lzdGVyX2RldmljZShkZXYpO1xcbiAgNjE6XFx0fVxcbiAgNjI6XFx0XFxuICA2MzpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl93bWFjX21hdGNoW10gPSB7XFxuICA2NDpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyOC13bWFjXFxcIiB9LFxcbiAgNjU6XFx0XFx0e30sXFxuICA2NjpcXHR9O1xcbiAgNjc6XFx0XFxuICA2ODpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl93bWFjX21hdGNoKTtcXG4gIDY5OlxcdE1PRFVMRV9GSVJNV0FSRShNVDc2MjhfRklSTVdBUkVfRTEpO1xcbiAgNzA6XFx0TU9EVUxFX0ZJUk1XQVJFKE1UNzYyOF9GSVJNV0FSRV9FMik7XFxuICA3MTpcXHRcXG4gIDcyOlxcdHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXQ3Nl93bWFjX2RyaXZlciA9IHtcXG4gIDczOlxcdFxcdC5wcm9iZVxcdFxcdD0gbXQ3Nl93bWFjX3Byb2JlLFxcbiAgNzQ6XFx0XFx0LnJlbW92ZVxcdFxcdD0gbXQ3Nl93bWFjX3JlbW92ZSxcXG4gIDc1OlxcdFxcdC5kcml2ZXIgPSB7XFxuICA3NjpcXHRcXHRcXHQubmFtZSA9IFxcXCJtdDc2X3dtYWNcXFwiLFxcbiAgNzc6XFx0XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gb2Zfd21hY19tYXRjaCxcXG4gIDc4OlxcdFxcdH0sXFxuICA3OTpcXHR9O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToyMC42NjY2MzEyMVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxOTYxNDU5MTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgTVQ3NjAzJ3MgQ29ubmVjdGl2aXR5IE9wdGlvbnMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhlIE1UNzYwMyBjaGlwc2V0IGhhbmRsZXMgbmV0d29yayBpbnRlcmZhY2VzLiBNeSBpbml0aWFsIGh1bmNoIGlzIHRvIGNoZWNrIGl0cyBVU0IgY2FwYWJpbGl0aWVzLCBzZWUgaWYgaXQgaGFzIGFueSB2aXJ0dWFsIG9yIGVtdWxhdGVkIGludGVyZmFjZXMsIG9yIGlmIGl0J3Mgc3RyaWN0bHkgYSBwaHlzaWNhbCBQQ0llIG9yIFNvQyBkZXZpY2UuIFRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0LCBnaXZlbiBteSBleHBlcmllbmNlLCBpcyBsaWtlbHkgdGhlIGRyaXZlcidzIEtjb25maWcgZmlsZS4gSSdsbCB0YWtlIGEgbG9vayBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvS2NvbmZpZ2AgdG8gZ2V0IGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGRldmljZSdzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgYnVpbGQtdGltZSBzZXR0aW5ncywgd2hpY2ggc2hvdWxkIGltbWVkaWF0ZWx5IGNsYXJpZnkgaWYgdGhlcmUncyBhbnkgVVNCIHN1cHBvcnQgZGVjbGFyZWQgb3IgaGludGVkIGF0IHdpdGhpbiB0aGUgZHJpdmVyLiBUaGlzIGlzIHVzdWFsbHkgdGhlIHF1aWNrZXN0IHdheSB0byBnZXQgYSBoaWdoLWxldmVsIG92ZXJ2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDA5MSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MjIuNjI4MDk0OTA3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3MjcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBNVDc2MDNFXFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NjAzRSAoUENJZSkgYW5kIE1UNzZ4OCBXTEFOIHN1cHBvcnRcXFwiXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3Nl9DT1JFXFxuICAgNTpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAgNjpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgIDc6XFx0XFx0aGVscFxcbiAgIDg6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3NjAzRSBQQ0llIHdpcmVsZXNzIGRldmljZXMgYW5kIHRoZSBXTEFOIGNvcmVcXG4gICA5OlxcdFxcdCAgb24gTVQ3NjI4L01UNzY4OCBTb0MgZGV2aWNlcy4gVGhpcyBmYW1pbHkgc3VwcG9ydHMgSUVFRSA4MDIuMTFuIDJ4MlxcbiAgMTA6XFx0XFx0ICB0byAzMDBNYnBzIFBIWSByYXRlXFxuICAxMTpcXHRcXG4gIDEyOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MjIuNjI4MTk1MTI3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ1NjU0MDMwMjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgV29ydGhGdXp6aW5nIENyaXRlcmlhIGZvciBNVDc2MDMqKlxuXG5Pa2F5LCBsZXQncyBzZWUuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gcXVpY2tseSBjaGVjayBpZiBRRU1VIG9mZmVyZWQgc29tZSBsZXZlbCBvZiBVU0Igb3Igb3RoZXIgZW11bGF0aW9uIGZvciBtdDc2MDMgb3IganVzdCB0aGUgYmFzZSBtdDc2IG1vZHVsZXMsIG1heWJlIGV2ZW4gaHdzaW0sIHRvIGdpdmUgbWUgYSBsZWcgdXAgb24gZnV6emluZy4gQnV0LCBob2xkIG9uIGEgc2Vjb25kLi4ubXQ3NjAzIGlzIHNwZWNpZmljYWxseSBmb3IgdGhlIE1lZGlhVGVrIE1UNzYwM0UgUENJZSBkZXZpY2UgYW5kIHRoZSBNVDc2MjgvTVQ3Njg4IFNvQ3MuIEkgd2FzIGV4cGVjdGluZyBtYXliZSBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVtdWxhdGlvbiBvZiB0aGUgTWVkaWFUZWsgTVQ3NjAzIFBDSWUgb3IgU29DIGRldmljZSwgYnV0IG5vIGRpY2UuIFFFTVUgZG9lc24ndCBzZWVtIHRvIHRvdWNoIHRoYXQgaGFyZHdhcmUgYXQgYWxsLlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGNhcmVmdWxseSByZXZpZXcgc2VjdGlvbiAyIG9mIHRoZSBpbnN0cnVjdGlvbnMuIFRoZSBcIldvcnRoRnV6emluZz1mYWxzZVwiIGNyaXRlcmlhIGFyZSBwcmV0dHkgY2xlYXI6IG5vbi1leGVjdXRhYmxlIGNoYW5nZXMsIHVucmVhY2hhYmxlIGhhcmR3YXJlIChzcGVjaWZpY2FsbHkgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgR1BVIGRyaXZlcnMgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VKSBhbmQgdW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzIChkcml2ZXIgdGVhcmRvd24sIFBDSSBob3QtdW5wbHVnKS5cblxuTGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJcyB0aGUgTVQ3NjAzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUvU29DIHdpcmVsZXNzIGRyaXZlcj8gWWVzISBUaGUgTVQ3NjAzRSBpcyBzcGVjaWZpY2FsbHkgTWVkaWFUZWsgaGFyZHdhcmUuIERvZXMgc3RhbmRhcmQgUUVNVSBlbXVsYXRlIHRoZSBNVDc2MDM/IE5vcGUuIFdlIGFscmVhZHkgZXN0YWJsaXNoZWQgdGhhdC4gQW5kIEkgc2hvdWxkIHByb2JhYmx5IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgVVNCIGludGVyZmFjZSBzdXBwb3J0IHdpdGhpbiBtdDc2MDMgYmVmb3JlIEkgbWFrZSBhIGZpbmFsIGFzc2Vzc21lbnQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY29kZWJhc2UgdG8gY29uZmlybSBpZiBhbnkgVVNCIGludGVyZmFjZSBzdXBwb3J0IGV4aXN0cy5cblxuU28sIGdpdmVuIHRoYXQgTVQ3NjAzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUvU29DIGRyaXZlciBhbmQgbm90IGVtdWxhdGVkIGJ5IFFFTVUsIGFjY29yZGluZyB0byB0aGUgaW5zdHJ1Y3Rpb25zLCB0aGlzIHNlZW1zIGxpa2UgYSBzb2xpZCBjYXNlIGZvciBcIldvcnRoRnV6emluZz1mYWxzZVwiIHNpbmNlIGl0J3Mgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGluIG15IHZpcnR1YWxpemVkIGVudmlyb25tZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDU4MywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjI3LjE5MzYwMDIxM1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI4NDg5ODc2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2MDMuKnVzYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MjcuNTIyMDk5ODI5WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI0MzAyMTk2NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOlxuXG4qKk5hdmlnYXRpbmcgdGhlIE1UNzYwMyBXaXJlbGVzcyBEcml2ZXIqKlxuXG5Pa2F5LCB0aW1lIHRvIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGdldCBhIGxheSBvZiB0aGUgbGFuZCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9gIGRpcmVjdG9yeS4gSSB3YW50IHRvIGJ1aWxkIGEgbWVudGFsIG1hcCBvZiB0aGUgY29yZSBmaWxlcyBhbmQgc3RydWN0dXJlcyBhc3NvY2lhdGVkIHdpdGggdGhlIE1UNzYwMyB3aXJlbGVzcyBkcml2ZXIuIEJlZm9yZSBJIHN0YXJ0IGRlYnVnZ2luZyBvciB0cnlpbmcgdG8gdW5kZXJzdGFuZCBhIHNwZWNpZmljIGZ1bmN0aW9uLCBJIG5lZWQgdGhhdCBvdmVydmlldy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiB0aGUgaW5kZXggdG8gZ2V0IGEgc2Vuc2Ugb2YgdGhlIGtleSBtb2R1bGVzLCBoZWFkZXIgZmlsZXMsIGFuZCBpbXBsZW1lbnRhdGlvbiBmaWxlcyBwcmVzZW50LiBUaGlzIHByZWxpbWluYXJ5IHN0ZXAgaXMgY3J1Y2lhbDsgaXQgaGVscHMgbWUgYXZvaWQgZ2V0dGluZyBsb3N0IGluIHRoZSB3ZWVkcyBhbmQgYWxsb3dzIG1lIHRvIGNvbnRleHR1YWxpemUgYW55IHN1YnNlcXVlbnQgaW52ZXN0aWdhdGlvbnMgb3IgYnVnIHJlcG9ydHMgSSBtaWdodCBiZSB3b3JraW5nIHdpdGguIEkgbmVlZCB0byByZWZyZXNoIG15IGZhbWlsaWFyaXR5IHdpdGggdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciwgYW5kIGEgZGlyZWN0b3J5IGluZGV4IHNjYW4gaXMgdGhlIGZhc3Rlc3Qgd2F5IHRvIGFjaGlldmUgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU1MjEsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToyOS45NTIzMjI5NzZaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NjE4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImJlYWNvbi5jXCIsXG4gICAgXCJjb3JlLmNcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZG1hLmNcIixcbiAgICBcImVlcHJvbS5jXCIsXG4gICAgXCJlZXByb20uaFwiLFxuICAgIFwiaW5pdC5jXCIsXG4gICAgXCJtYWMuY1wiLFxuICAgIFwibWFjLmhcIixcbiAgICBcIm1haW4uY1wiLFxuICAgIFwibWN1LmNcIixcbiAgICBcIm1jdS5oXCIsXG4gICAgXCJtdDc2MDMuaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInJlZ3MuaFwiLFxuICAgIFwic29jLmNcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MjkuOTUyNDIxNzg3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjUxMTAwMjE3NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTVQ3NjAzIERyaXZlcidzIEZ1enppbmcgU3VpdGFiaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBgbXQ3NjAzYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYG10NzYwM19tYWNfaW5pdGAgZnVuY3Rpb24sIGlzIGEgdmlhYmxlIHRhcmdldCBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIHdoZXRoZXIgdGhlIGNvbmRpdGlvbnMgZm9yIGV4ZWN1dGluZyB0aGF0IGNhbGwgYXJlIG1ldCBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cblxuRmlyc3QsIEkgdHJhY2VkIHRoZSBjYWxsIGNoYWluIGZvciBgbXQ3NjAzX21hY19pbml0YC4gSXQncyBhIHN0YXRpYyBmdW5jdGlvbiB3aXRoaW4gYGluaXQuY2AgYW5kIGlzIGNhbGxlZCBieSBgbXQ3NjAzX2luaXRfaGFyZHdhcmVgLiBUaGF0IGluIHR1cm4gaXMgY2FsbGVkIGZyb20gZWl0aGVyIGBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlYCBvciBgbXQ3NjAzX3Jlc2V0X3dvcmtgLiBOb3csIGBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlYCBnZXRzIGNhbGxlZCBkdXJpbmcgdGhlIFBDSSBwcm9iZSAoYG10NzZwY2lfcHJvYmVgKSBvciBmcm9tIGEgcGxhdGZvcm0gcHJvYmUgKGBtdDc2X3dtYWNfcHJvYmVgKS5cblxuSGVyZSdzIHRoZSBwcm9ibGVtOiBuZWl0aGVyIHRoZSBNVDc2MDNFIFBDSWUgbm9yIHRoZSBNVDc2MjggU29DIFdNQUMgaGFyZHdhcmUgaXMgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUuIFRoZXNlIGFyZSBzcGVjaWFsaXplZCBoYXJkd2FyZSBjb21wb25lbnRzLCBhbmQgc3RhbmRhcmQgZnV6emluZyBzZXR1cHMgYXJlICpub3QqIGdvaW5nIHRvIGJlIGFibGUgdG8gcHJvYmUsIG11Y2ggbGVzcyBleGVjdXRlLCB0aGlzIGRyaXZlci4gU29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcywgbGlrZSBVU0IgZ2FkZ2V0cywgYXJlIG91dCBiZWNhdXNlIHRoZXJlJ3Mgbm8gVVNCIGRyaXZlciBmb3IgYG10NzYwM2AuIEl0J3MgUENJIGFuZCBTb0Mtc3BlY2lmaWMuXG5cblRoaXMgY2xlYXJseSBmYWxscyB1bmRlciB0aGUgY2F0ZWdvcnkgb2YgXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUuXCIgU3BlY2lmaWNhbGx5LCB0aGlzIGlzIHNpbWlsYXIgdG8gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMuIFRoZXkgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBvciBoYXJkd2FyZS1zcGVjaWZpYyBQQ0llIGNhcmRzIHRoYXQgUUVNVSBkb2Vzbid0IGVtdWxhdGUuXG5cbkxldCdzIHN1bW1hcml6ZSB0aGlzIGNvbmNpc2VseTogdGhlIHBhdGNoIG1vZGlmaWVzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmNgLCBzcGVjaWZpY2FsbHkgYG10NzYwM19tYWNfaW5pdGAuIFRoZSBkcml2ZXIgaXMgZm9yIHRoZSBNVDc2MDNFIFBDSWUgYW5kIE1UNzYyOC9NVDc2ODggU29DLiBJdCBpcyB1bnJlYWNoYWJsZSBpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIFZNIHdpdGhvdXQgdGhlIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZS4gVGhlcmVmb3JlLCBpdCdzIG5vdCB3b3J0aCBmdXp6aW5nLiBUaGUgYFdvcnRoRnV6emluZ2AgZmxhZyBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAuIFRoZXJlIGFyZSBubyBzcGVjaWZpYyBzeW1ib2xzIG9mIGludGVyZXN0IChgRm9jdXNTeW1ib2xzYCBpcyBlbXB0eSksIGFuZCBubyBzcGVjaWFsIGNvbmZpZ3VyYXRpb25zIChgRW5hYmxlQ29uZmlnc2AgaXMgZW1wdHkpIG5lZWRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU5MDQsIk91dHB1dFRva2VucyI6MTM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTE5LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOTozNS4wNjI0NDYxOVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIG10NzYwM19tYWNfaW5pdCgpIGluIHRoZSBNZWRpYVRlayBNVDc2MDMgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3NjAzRSkuIFRoaXMgZHJpdmVyIHN1cHBvcnRzIG9ubHkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlcyAoTVQ3NjAzRSkgYW5kIFNvQyBwbGF0Zm9ybXMgKE1UNzYyOC9NVDc2ODgpLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgYW5kIGRvIG5vdCBzdXBwb3J0IFVTQiBlbXVsYXRpb24uIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgbXQ3NjAzX21hY19pbml0KCkgaW4gdGhlIE1lZGlhVGVrIE1UNzYwMyB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc2MDNFKS4gVGhpcyBkcml2ZXIgc3VwcG9ydHMgb25seSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2VzIChNVDc2MDNFKSBhbmQgU29DIHBsYXRmb3JtcyAoTVQ3NjI4L01UNzY4OCksIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSBhbmQgZG8gbm90IHN1cHBvcnQgVVNCIGVtdWxhdGlvbi4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOTozNS4wNjI0NzYxMVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfh96l[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-05 09:55:12 +0000 UTC FinishedAt: 2026-09-05 10:39: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+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgbXQ3NjAzX21hY19pbml0KCkgaW4gdGhlIE1lZGlhVGVrIE1UNzYwMyB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc2MDNFKS4gVGhpcyBkcml2ZXIgc3VwcG9ydHMgb25seSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2VzIChNVDc2MDNFKSBhbmQgU29DIHBsYXRmb3JtcyAoTVQ3NjI4L01UNzY4OCksIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSBhbmQgZG8gbm90IHN1cHBvcnQgVVNCIGVtdWxhdGlvbi4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgM2NlNDQ2Mjk1NjIxMTZhOWNlZDVjNmFmOGExMWMyYmM2N2E0YTRhNlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgU2VwIDUgMTA6Mzk6MDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jXG5pbmRleCAxMGYyZWM3MGM3OTJiLi4yMThlYzQwNmQyYTg3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmNcbkBAIC0yMzAsNiAmIzQzOzIzMCw3IEBAIG10NzYwM19tYWNfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuIFxuIFx0ZXRoX2Jyb2FkY2FzdF9hZGRyKGJjX2FkZHIpO1xuIFx0bXQ3NjAzX3d0YmxfaW5pdChkZXYsIE1UNzYwM19XVEJMX1JFU0VSVkVELCAtMSwgYmNfYWRkcik7XG4mIzQzO1x0bXQ3Nl93Y2lkX2luaXQoXHUwMDI2ZGV2LVx1MDAzZWdsb2JhbF9zdGEud2NpZCwgMCk7XG4gXHRkZXYtXHUwMDNlZ2xvYmFsX3N0YS53Y2lkLmlkeCA9IE1UNzYwM19XVEJMX1JFU0VSVkVEO1xuIFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2VtdDc2LndjaWRbTVQ3NjAzX1dUQkxfUkVTRVJWRURdLFxuIFx0XHRcdCAgIFx1MDAyNmRldi1cdTAwM2VnbG9iYWxfc3RhLndjaWQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG10NzYwM19tYWNfaW5pdCgpIGluIHRoZSBNZWRpYVRlayBNVDc2MDMgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3NjAzRSkuIFRoaXMgZHJpdmVyIHN1cHBvcnRzIG9ubHkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlcyAoTVQ3NjAzRSkgYW5kIFNvQyBwbGF0Zm9ybXMgKE1UNzYyOC9NVDc2ODgpLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgYW5kIGRvIG5vdCBzdXBwb3J0IFVTQiBlbXVsYXRpb24uIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDNjZTQ0NjI5NTYyMTE2YTljZWQ1YzZhZjhhMTFjMmJjNjdhNGE0YTYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IFNlcCA1IDEwOjM5OjAzIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jCmluZGV4IDEwZjJlYzcwYzc5MmIuLjIxOGVjNDA2ZDJhODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMKQEAgLTIzMCw2ICYjNDM7MjMwLDcgQEAgbXQ3NjAzX21hY19pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpCiAKIAlldGhfYnJvYWRjYXN0X2FkZHIoYmNfYWRkcik7CiAJbXQ3NjAzX3d0YmxfaW5pdChkZXYsIE1UNzYwM19XVEJMX1JFU0VSVkVELCAtMSwgYmNfYWRkcik7CiYjNDM7CW10NzZfd2NpZF9pbml0KCZhbXA7ZGV2LSZndDtnbG9iYWxfc3RhLndjaWQsIDApOwogCWRldi0mZ3Q7Z2xvYmFsX3N0YS53Y2lkLmlkeCA9IE1UNzYwM19XVEJMX1JFU0VSVkVEOwogCXJjdV9hc3NpZ25fcG9pbnRlcihkZXYtJmd0O210NzYud2NpZFtNVDc2MDNfV1RCTF9SRVNFUlZFRF0sCiAJCQkgICAmYW1wO2Rldi0mZ3Q7Z2xvYmFsX3N0YS53Y2lkKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk4MwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDE2NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2ggaW4gZnJvbnQgb2YgbWUsIGFuZCBteSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBkZWNpZGUgaWYgaXQmIzM5O3Mgd29ydGggdGhlIGZ1enppbmcgZWZmb3J0LiBJdCBsb29rcyBsaWtlIHdlJiMzOTtyZSBkaXZpbmcgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuY2AgZmlsZSwgc3BlY2lmaWNhbGx5IHRoZSBgbXQ3NjAzX21hY19pbml0YCBmdW5jdGlvbi4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIGFkZGl0aW9uIG9mIGBtdDc2X3djaWRfaW5pdCgmYW1wO2Rldi0mZ3Q7Z2xvYmFsX3N0YS53Y2lkLCAwKTtgLiBUaGF0JiMzOTtzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgYnV0IEkgbmVlZCBtb3JlIGNvbnRleHQgYmVmb3JlIEkgbWFrZSBhbnkganVkZ2VtZW50cy4KCkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBtdDc2MDNgIGFjdHVhbGx5ICppcyouIElzIGl0IGEgUENJZSBkZXZpY2U/IEEgU3lzdGVtLW9uLUNoaXAgKFNvQykgY29tcG9uZW50PyBVU0I/IFRoaXMgZHJpdmVzIHRoZSBhdHRhY2sgc3VyZmFjZSBJIGhhdmUgdG8gY29uc2lkZXIuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBnZXQgYSBsYXkgb2YgdGhlIGxhbmQgaGVyZS4gSSYjMzk7bGwgcHJvYmFibHkgZmlyZSB1cCBgZ3JlcGAgKG9yIHBvc3NpYmx5IGp1c3QgYHJlYWQtZmlsZWAgYW5kIGEgZ29vZCBzZWFyY2gpIGFuZCBkaWcgaW50byB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2AgZGlyZWN0b3J5LiBJIHdhbnQgdG8gc2VlIGhvdyBgbXQ3NjAzYCBpcyBwcm9iZWQsIGhvdyBpdCYjMzk7cyB1c2VkLCBhbmQgd2hhdCBkYXRhIHN0cnVjdHVyZXMgYXJlIGludm9sdmVkLiBUaGlzIHdpbGwgdGVsbCBtZSBpZiB0aGUgbmV3IGB3Y2lkYCBpbml0aWFsaXphdGlvbiB0b3VjaGVzIGFyZWFzIHRoYXQgaGF2ZSBoaWdoIGZ1enppbmcgcG90ZW50aWFsLiBJJiMzOTttIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiB0aGluZ3MgbGlrZSBoYXJkd2FyZSByZWdpc3RlcnMsIGNvbW1hbmQgcXVldWVzLCBhbmQgc2hhcmVkIG1lbW9yeSByZWdpb25zIHRoYXQgY291bGQgYmUgYWNjZXNzZWQgZnJvbSB1c2VyIHNwYWNlLiBLbm93aW5nIGlmIHRoZXJlIGFyZSBhbnkgb2J2aW91cyBkcml2ZXJzIGZvciB0aGUgZGV2aWNlIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgaW4gdGhlIGRldmljZSYjMzk7cyBkcml2ZXIgYW5kIGhvdyBJIGNhbiB0YXJnZXQgaXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTA6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3NjAzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTgzNCBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTQ1PXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzZ4Mi9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDY6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00Ny1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MTUvS2NvbmZpZ1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGU9NDY9b2JqLSQoQ09ORklHX01UNzZ4Ml9DT01NT04pICYjNDM7PSBtdDc2eDIvXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlOjQ3Om9iai0kKENPTkZJR19NVDc2MDNFKSAmIzQzOz0gbXQ3NjAzL1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZS00OC1vYmotJChDT05GSUdfTVQ3NjE1X0NPTU1PTikgJiM0Mzs9IG10NzYxNS9cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTVQ3NjAzRSkgJiM0Mzs9IG10NzYwM2Uub1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGUtMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL01ha2VmaWxlOjQ6bXQ3NjAzZS15IDo9IFxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9NYWtlZmlsZS01LVx0cGNpLm8gc29jLm8gbWFpbi5vIGluaXQubyBtY3UubyBcXFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzozOiNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy00LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM9NT1zdHJ1Y3QgYmVhY29uX2JjX2RhdGEge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6NjpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy03LVx0c3RydWN0IHNrX2J1ZmZfaGVhZCBxO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTEyPXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMzptdDc2MDNfbWFjX3N0dWNrX2JlYWNvbl9yZWNvdmVyeShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTI5PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzozMDptdDc2MDNfdXBkYXRlX2JlYWNvbl9pdGVyKHZvaWQgKnByaXYsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0zMS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzozMjpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSAoc3RydWN0IG10NzYwM19kZXYgKilwcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMzMtXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3NjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjM0Olx0c3RydWN0IG10NzYwM192aWYgKm12aWYgPSAoc3RydWN0IG10NzYwM192aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0zNS1cdHN0cnVjdCBza19idWZmICpza2IgPSBOVUxMO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTc4PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzo3OTptdDc2MDNfYWRkX2J1ZmZlcmVkX2JjKHZvaWQgKnByaXYsIHU4ICptYWMsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy04MC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy04MS1cdHN0cnVjdCBiZWFjb25fYmNfZGF0YSAqZGF0YSA9IHByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzo4MjpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkYXRhLVx1MDAzZWRldjtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjgzOlx0c3RydWN0IG10NzYwM192aWYgKm12aWYgPSAoc3RydWN0IG10NzYwM192aWYgKil2aWYtXHUwMDNlZHJ2X3ByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy04NC1cdHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbztcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMDItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMDM6dm9pZCBtdDc2MDNfcHJlX3RidHRfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMDQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MTA1Olx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGZyb21fdGFza2xldChkZXYsIHQsIG10NzYucHJlX3RidHRfdGFza2xldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMDYtXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcdTAwMjZkZXYtXHUwMDNlbXQ3Njtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMjctXHRcdGRldi1cdTAwM2ViZWFjb25fY2hlY2sgPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MTI4Olx0bXQ3NjAzX21hY19zdHVja19iZWFjb25fcmVjb3ZlcnkoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEyOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMzMtXHRcdElFRUU4MDIxMV9JRkFDRV9JVEVSX1JFU1VNRV9BTEwsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMzQ6XHRcdG10NzYwM191cGRhdGVfYmVhY29uX2l0ZXIsIGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMzUtXHRtdDc2X3F1ZXVlX2tpY2soZGV2LCBxKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xNDYtXHRcdFx0SUVFRTgwMjExX0lGQUNFX0lURVJfUkVTVU1FX0FMTCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE0NzpcdFx0XHRtdDc2MDNfYWRkX2J1ZmZlcmVkX2JjLCBcdTAwMjZkYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE0OC1cdH0gd2hpbGUgKG5mcmFtZXMgIT0gc2tiX3F1ZXVlX2xlbihcdTAwMjZkYXRhLnEpIFx1MDAyNlx1MDAyNlxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE2NC1cdFx0c3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiA9IGluZm8tXHUwMDNlY29udHJvbC52aWY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxNjU6XHRcdHN0cnVjdCBtdDc2MDNfdmlmICptdmlmID0gKHN0cnVjdCBtdDc2MDNfdmlmICopdmlmLVx1MDAzZWRydl9wcml2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTY2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE4Mjp2b2lkIG10NzYwM19iZWFjb25fc2V0X3RpbWVyKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsIGludCBpZHgsIGludCBpbnR2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xODMte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE5My1cdGlmICghZGV2LVx1MDAzZW10NzYuYmVhY29uX21hc2sgfHwgKCFpbnR2YWwgXHUwMDI2XHUwMDI2IGlkeCBcdTAwM2MgMCkpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE5NDpcdFx0bXQ3NjAzX2lycV9kaXNhYmxlKGRldiwgTVRfSU5UX01BQ19JUlEzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE5NS1cdFx0bXQ3Nl9jbGVhcihkZXYsIE1UX0FSQl9TQ1IsIE1UX0FSQl9TQ1JfQkNOUV9PUE1PREVfTUFTSyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMjIwLVx0XHQgIE1UX1dGX0FSQl9CQ05fU1RBUlRfQlNTMG4oMSkpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjIyMTpcdG10NzYwM19pcnFfZW5hYmxlKGRldiwgTVRfSU5UX01BQ19JUlEzKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTIyMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtMi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYzozOiNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNC0jaW5jbHVkZSBcJiMzNDsuLi90cmFjZS5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYzo2OnZvaWQgbXQ3NjAzX3J4X3BvbGxfY29tcGxldGUoc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6ODpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6MTA6XHRtdDc2MDNfaXJxX2VuYWJsZShkZXYsIE1UX0lOVF9SWF9ET05FKHEpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy0xMS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtMTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6MTM6aXJxcmV0dXJuX3QgbXQ3NjAzX2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy0xNC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6MTU6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGV2X2luc3RhbmNlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTE2LVx0dTMyIGludHI7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTM5LVx0aWYgKGludHIgXHUwMDI2IE1UX0lOVF9UWF9ET05FX0FMTCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjQwOlx0XHRtdDc2MDNfaXJxX2Rpc2FibGUoZGV2LCBNVF9JTlRfVFhfRE9ORV9BTEwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTQxLVx0XHRuYXBpX3NjaGVkdWxlKFx1MDAyNmRldi1cdTAwM2VtdDc2LnR4X25hcGkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy00NS1cdFx0ZGV2LVx1MDAzZXJ4X3BzZV9jaGVjayA9IDA7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6NDY6XHRcdG10NzYwM19pcnFfZGlzYWJsZShkZXYsIE1UX0lOVF9SWF9ET05FKDApKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy00Ny1cdFx0bmFwaV9zY2hlZHVsZShcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5uYXBpWzBdKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNTEtXHRcdGRldi1cdTAwM2VyeF9wc2VfY2hlY2sgPSAwO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjUyOlx0XHRtdDc2MDNfaXJxX2Rpc2FibGUoZGV2LCBNVF9JTlRfUlhfRE9ORSgxKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNTMtXHRcdG5hcGlfc2NoZWR1bGUoXHUwMDI2ZGV2LVx1MDAzZW10NzYubmFwaVsxXSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTU4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjU5OnUzMiBtdDc2MDNfcmVnX21hcChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1MzIgYWRkcilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy02MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MzojaW5jbHVkZSBcJiMzNDttdDc2MDMuaFwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM9NT1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjptdDc2MDNfcmVzZXRfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6ODpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cdTAwM2Vwcml2YXRlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05LVx0c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByZXNldF9jYXVzZV9zdHJbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM9MzE9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjMyOm10NzYwM19yYWRpb19yZWFkKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0zMy17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MzQ6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXHUwMDNlcHJpdmF0ZSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMzUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jPTQzPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo0NDptdDc2MDNfZWRjY2Ffc2V0KHZvaWQgKmRhdGEsIHU2NCB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNDUte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjQ2Olx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGRhdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNDctXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTUyLVx0XHRcdCAgZGV2LVx1MDAzZW10NzYucmVnaW9uID09IE5MODAyMTFfREZTX0VUU0k7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NTM6XHRtdDc2MDNfaW5pdF9lZGNjYShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTU0LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYz02MD1zdGF0aWMgaW50XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjE6bXQ3NjAzX2VkY2NhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy02Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjM6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGF0YTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy02NC1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNjgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6Njk6REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfZWRjY2EsIG10NzYwM19lZGNjYV9nZXQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NzA6XHRcdFx0IG10NzYwM19lZGNjYV9zZXQsIFwmIzM0OyVsbGRcXG5cJiMzNDspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jPTcyPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo3MzptdDc2MDNfYW1wZHVfc3RhdF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy03NC17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NzU6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZmlsZS1cdTAwM2Vwcml2YXRlO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTc2LVx0aW50IGJvdW5kWzNdLCBpLCByYW5nZTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6OTQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10NzYwM19hbXBkdV9zdGF0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo5Njp2b2lkIG10NzYwM19pbml0X2RlYnVnZnMoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05Ny17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTEwNC1cdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXCYjMzQ7YW1wZHVfc3RhdFwmIzM0OywgMDQwMCwgZGlyLCBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MTA1Olx0XHRcdCAgICAgXHUwMDI2bXQ3NjAzX2FtcGR1X3N0YXRfZm9wcyk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMTA2LVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7eG1pdC1xdWV1ZXNcJiMzNDssIGRpcixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMTEwLVx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cdTAwM2VtdDc2LmRldiwgXCYjMzQ7cmVzZXRcJiMzNDssIGRpcixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzoxMTE6XHRcdFx0XHQgICAgbXQ3NjAzX3Jlc2V0X3JlYWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTExMi1cdGRlYnVnZnNfY3JlYXRlX2Rldm1fc2VxZmlsZShkZXYtXHUwMDNlbXQ3Ni5kZXYsIFwmIzM0O3JhZGlvXCYjMzQ7LCBkaXIsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MTEzOlx0XHRcdFx0ICAgIG10NzYwM19yYWRpb19yZWFkKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0xMTQtXHRkZWJ1Z2ZzX2NyZWF0ZV91OChcJiMzNDtzZW5zaXRpdml0eV9saW1pdFwmIzM0OywgMDYwMCwgZGlyLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzozOiNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy00LSNpbmNsdWRlIFwmIzM0O21hYy5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MTQ9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjE1Om10NzYwM19yeF9sb29wYmFja19za2Ioc3RydWN0IG10NzYwM19kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE2LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yOS1cdHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGE7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzozMDpcdHN0cnVjdCBtdDc2MDNfc3RhICptc3RhO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMzEtXHRzdHJ1Y3QgbXQ3Nl93Y2lkICp3Y2lkO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6NTA6XHRwcml2ID0gbXN0YSA9IGNvbnRhaW5lcl9vZih3Y2lkLCBzdHJ1Y3QgbXQ3NjAzX3N0YSwgd2NpZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy01MS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy05NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjk1OnZvaWQgbXQ3NjAzX3F1ZXVlX3J4X3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTk2LVx0XHRcdCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgKmluZm8pXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy05Ny17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzo5ODpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtOTktXHRfX2xlMzIgKnJ4ZCA9IChfX2xlMzIgKilza2ItXHUwMDNlZGF0YTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xMDgtXHRcdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjEwOTpcdFx0XHRtdDc2MDNfcnhfbG9vcGJhY2tfc2tiKGRldiwgc2tiKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTExMC1cdFx0cmV0dXJuO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTExNS1cdFx0Zm9yIChyeGQmIzQzOyYjNDM7OyByeGQgJiM0MzsgNSBcdTAwM2M9IGVuZDsgcnhkICYjNDM7PSA1KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTE2Olx0XHRcdG10NzYwM19tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xMTctXHRcdGRldl9rZnJlZV9za2Ioc2tiKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xMjItXHRjYXNlIFBLVF9UWVBFX05PUk1BTDpcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjEyMzpcdFx0aWYgKG10NzYwM19tYWNfZmlsbF9yeChkZXYsIHNrYikgPT0gMCkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTI0LVx0XHRcdG10NzZfcngoXHUwMDI2ZGV2LVx1MDAzZW10NzYsIHEsIHNrYik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM9MTM0PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjEzNTptdDc2MDNfaW5pdF9yeF9xdWV1ZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTEzNi1cdFx0ICAgICBpbnQgaWR4LCBpbnQgbl9kZXNjLCBpbnQgYnVmc2l6ZSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNDQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNDU6XHRtdDc2MDNfaXJxX2VuYWJsZShkZXYsIE1UX0lOVF9SWF9ET05FKGlkeCkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTQ2LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE0OS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjE1MDpzdGF0aWMgaW50IG10NzYwM19wb2xsX3R4KHN0cnVjdCBuYXBpX3N0cnVjdCAqbmFwaSwgaW50IGJ1ZGdldClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE1MS17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNTI6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTUzLVx0aW50IGk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNTU6XHRkZXYgPSBjb250YWluZXJfb2YobmFwaSwgc3RydWN0IG10NzYwM19kZXYsIG10NzYudHhfbmFwaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNTYtXHRkZXYtXHUwMDNldHhfZG1hX2NoZWNrID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNjItXHRpZiAobmFwaV9jb21wbGV0ZV9kb25lKG5hcGksIDApKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTYzOlx0XHRtdDc2MDNfaXJxX2VuYWJsZShkZXYsIE1UX0lOVF9UWF9ET05FX0FMTCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNjQtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTY4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTY5Olx0bXQ3NjAzX21hY19zdGFfcG9sbChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTcwLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjE3NjppbnQgbXQ3NjAzX2RtYV9pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNzcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE4OS1cdG10NzZfd3IoZGV2LCBNVF9XUERNQV9SU1RfSURYLCB+MCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxOTA6XHRtdDc2MDNfcHNlX2NsaWVudF9yZXNldChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTkxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIxOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjIyMDpcdG10NzYwM19pcnFfZW5hYmxlKGRldixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIyMS1cdFx0XHQgIE1UX0lOVF9UWF9ET05FKElFRUU4MDIxMV9BQ19WTykgfFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIyOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjIzMDpcdHJldCA9IG10NzYwM19pbml0X3J4X3F1ZXVlKGRldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYucV9yeFtNVF9SWFFfTUNVXSwgMSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIzMS1cdFx0XHRcdCAgIE1UNzYwM19NQ1VfUlhfUklOR19TSVpFLCBNVF9SWF9CVUZfU0laRSk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjM1Olx0cmV0ID0gbXQ3NjAzX2luaXRfcnhfcXVldWUoZGV2LCBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9NQUlOXSwgMCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIzNi1cdFx0XHRcdCAgIE1UNzYwM19SWF9SSU5HX1NJWkUsIE1UX1JYX0JVRl9TSVpFKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNDUtXHRuZXRpZl9uYXBpX2FkZF90eChkZXYtXHUwMDNlbXQ3Ni50eF9uYXBpX2RldiwgXHUwMDI2ZGV2LVx1MDAzZW10NzYudHhfbmFwaSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI0NjpcdFx0XHQgIG10NzYwM19wb2xsX3R4KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI0Ny1cdG5hcGlfZW5hYmxlKFx1MDAyNmRldi1cdTAwM2VtdDc2LnR4X25hcGkpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI1Mjp2b2lkIG10NzYwM19kbWFfY2xlYW51cChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjUzLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0zLSNpbmNsdWRlIFx1MDAzY2xpbnV4L29mLmhcdTAwM2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjQ6I2luY2x1ZGUgXCYjMzQ7bXQ3NjAzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTUtI2luY2x1ZGUgXCYjMzQ7ZWVwcm9tLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYz03PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjg6bXQ3NjAzX2VmdXNlX3JlYWQoc3RydWN0IG10NzYwM19kZXYgKmRldiwgdTMyIGJhc2UsIHUxNiBhZGRyLCB1OCAqZGF0YSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jPTQwPXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjQxOm10NzYwM19lZnVzZV9pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy00Mi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo0MzpcdHUzMiBiYXNlID0gbXQ3NjAzX3JlZ19tYXAoZGV2LCBNVF9FRlVTRV9CQVNFKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTQ0LVx0aW50IGxlbiA9IE1UNzYwM19FRVBST01fU0laRTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy01Ny1cdGZvciAoaSA9IDA7IGkgJiM0MzsgMTYgXHUwMDNjPSBsZW47IGkgJiM0Mzs9IDE2KSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo1ODpcdFx0cmV0ID0gbXQ3NjAzX2VmdXNlX3JlYWQoZGV2LCBiYXNlLCBpLCBidWYgJiM0MzsgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy01OS1cdFx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYz02Nj1zdGF0aWMgYm9vbFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6Njc6bXQ3NjAzX2hhc19jYWxfZnJlZV9kYXRhKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsIHU4ICplZnVzZSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTY4LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYz05MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6OTE6bXQ3NjAzX2FwcGx5X2NhbF9mcmVlX2RhdGEoc3RydWN0IG10NzYwM19kZXYgKmRldiwgdTggKmVmdXNlKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtOTIte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTExMS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjExMjpcdGlmICghbXQ3NjAzX2hhc19jYWxfZnJlZV9kYXRhKGRldiwgZWZ1c2UpKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTEzLVx0XHRyZXR1cm47XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM9MTI1PXN0YXRpYyBpbnRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjEyNjptdDc2MDNfZWVwcm9tX2xvYWQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTEyNy17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTMzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTM0Olx0cmV0dXJuIG10NzYwM19lZnVzZV9pbml0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xMzUtfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTM2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTM3OnN0YXRpYyBpbnQgbXQ3NjAzX2NoZWNrX2VlcHJvbShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTEzOC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTUxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTUyOnN0YXRpYyBpbmxpbmUgYm9vbCBpc19tdDc2ODgoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE1My17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTU2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTU3OmludCBtdDc2MDNfZWVwcm9tX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE1OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTYxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTYyOlx0cmV0ID0gbXQ3NjAzX2VlcHJvbV9sb2FkKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xNjMtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE2Ni1cdGlmIChkZXYtXHUwMDNlbXQ3Ni5vdHAuZGF0YSkge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTY3Olx0XHRpZiAobXQ3NjAzX2NoZWNrX2VlcHJvbShcdTAwMjZkZXYtXHUwMDNlbXQ3NikgPT0gMClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjE2ODpcdFx0XHRtdDc2MDNfYXBwbHlfY2FsX2ZyZWVfZGF0YShkZXYsIGRldi1cdTAwM2VtdDc2Lm90cC5kYXRhKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE2OS1cdFx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5oLTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaDo2OiNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaC03LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmg6ODplbnVtIG10NzYwM19lZXByb21fZmllbGQge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtOS1cdE1UX0VFX0NISVBfSUQgPVx0XHRcdFx0MHgwMDAsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaDo4MjplbnVtIG10NzYwM19lZXByb21fc291cmNlIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5oLTgzLVx0TVRfRUVfU1JDX1BST00sXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMtI2luY2x1ZGUgXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQ6I2luY2x1ZGUgXCYjMzQ7bXQ3NjAzLmhcJiMzNDtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy01LSNpbmNsdWRlIFwmIzM0O21hYy5oXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6ODpjb25zdCBzdHJ1Y3QgbXQ3Nl9kcml2ZXJfb3BzIG10NzYwM19kcnZfb3BzID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTktXHQudHh3aV9zaXplID0gTVRfVFhEX1NJWkUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTExLVx0LnN1cnZleV9mbGFncyA9IFNVUlZFWV9JTkZPX1RJTUVfVFgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTI6XHQudHhfcHJlcGFyZV9za2IgPSBtdDc2MDNfdHhfcHJlcGFyZV9za2IsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTM6XHQudHhfY29tcGxldGVfc2tiID0gbXQ3NjAzX3R4X2NvbXBsZXRlX3NrYixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxNDpcdC5yeF9za2IgPSBtdDc2MDNfcXVldWVfcnhfc2tiLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE1Olx0LnJ4X3BvbGxfY29tcGxldGUgPSBtdDc2MDNfcnhfcG9sbF9jb21wbGV0ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxNjpcdC5zdGFfcHMgPSBtdDc2MDNfc3RhX3BzLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE3Olx0LnN0YV9hZGQgPSBtdDc2MDNfc3RhX2FkZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxODpcdC5zdGFfZXZlbnQgPSBtdDc2MDNfc3RhX2V2ZW50LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE5Olx0LnN0YV9yZW1vdmUgPSBtdDc2MDNfc3RhX3JlbW92ZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoyMDpcdC51cGRhdGVfc3VydmV5ID0gbXQ3NjAzX3VwZGF0ZV9jaGFubmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIxOlx0LnNldF9jaGFubmVsID0gbXQ3NjAzX3NldF9jaGFubmVsLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIyLX07XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTI0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MjU6bXQ3NjAzX3NldF90bWFjX3RlbXBsYXRlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjYte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNDpcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0NMSUVOVF9CQVNFX1BIWVNfQUREUik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzUtXHRhZGRyICYjNDM7PSBNVF9DTElFTlRfVE1BQ19JTkZPX1RFTVBMQVRFO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz00MD1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQxOm10NzYwM19kbWFfc2NoZWRfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQyLXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6ODk6XHRpZiAoaXNfbXQ3NjAzKGRldikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOTAtXHRcdHJlc2VydmVkX2NvdW50ID0gMDtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6OTQ6XHRpZiAoaXNfbXQ3NjAzKGRldikgXHUwMDI2XHUwMDI2IG10NzZ4eF9yZXYoZGV2KSBcdTAwM2U9IE1UNzYwM19SRVZfRTIpIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy05NS1cdFx0bXQ3Nl93cihkZXYsIE1UX0dST1VQX1RIUkVTSCgwKSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MTE0PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTE1Om10NzYwM19waHlfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTExNi17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTEzMz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjEzNDptdDc2MDNfbWFjX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0xMzUte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0xOTQtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTk1Olx0bXQ3NjAzX3NldF90bWFjX3RlbXBsYXRlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTk2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTE5Ny1cdC8qIEVuYWJsZSBSWCBncm91cCB0byBISUYgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxOTg6XHRhZGRyID0gbXQ3NjAzX3JlZ19tYXAoZGV2LCBNVF9DTElFTlRfQkFTRV9QSFlTX0FERFIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTE5OS1cdG10NzZfc2V0KGRldiwgYWRkciAmIzQzOyBNVF9DTElFTlRfUlhJTkYsIE1UX0NMSUVOVF9SWElORl9SWFNIX0dST1VQUyk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIyOC1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1UNzYwM19XVEJMX1NJWkU7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIyOTpcdFx0bXQ3NjAzX3d0YmxfY2xlYXIoZGV2LCBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yMzAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjMxLVx0ZXRoX2Jyb2FkY2FzdF9hZGRyKGJjX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIzMjpcdG10NzYwM193dGJsX2luaXQoZGV2LCBNVDc2MDNfV1RCTF9SRVNFUlZFRCwgLTEsIGJjX2FkZHIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIzMy1cdG10NzZfd2NpZF9pbml0KFx1MDAyNmRldi1cdTAwM2VnbG9iYWxfc3RhLndjaWQsIDApO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz0yNzg9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjI3OTptdDc2MDNfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI4MC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI4NC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoyODU6XHRyZXQgPSBtdDc2MDNfZWVwcm9tX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yODYtXHRpZiAocmV0IFx1MDAzYyAwKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mjg5Olx0cmV0ID0gbXQ3NjAzX2RtYV9pbml0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjkwLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjkzLVx0bXQ3Nl93cihkZXYsIE1UX1dQRE1BX0dMT19DRkcsIDB4NTIwMDA4NTApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjI5NDpcdG10NzYwM19tYWNfZG1hX3N0YXJ0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjk1LVx0ZGV2LVx1MDAzZXJ4ZmlsdGVyID0gbXQ3Nl9ycihkZXYsIE1UX1dGX1JGQ1IpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMDMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzA0Olx0cmV0ID0gbXQ3NjAzX21jdV9pbml0KGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzA1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzA3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMwODpcdG10NzYwM19kbWFfc2NoZWRfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMwOTpcdG10NzYwM19tY3Vfc2V0X2VlcHJvbShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMxMDpcdG10NzYwM19waHlfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMxMTpcdG10NzYwM19tYWNfaW5pdChkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMxMi1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MzMyPXN0YXRpYyBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2lmYWNlX2NvbWJpbmF0aW9uIGlmX2NvbWJbXSA9IHtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzQxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM0MjpzdGF0aWMgdm9pZCBtdDc2MDNfbGVkX3NldF9jb25maWcoc3RydWN0IG10NzZfcGh5ICptcGh5LCB1OCBkZWxheV9vbixcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNDMtXHRcdFx0XHQgIHU4IGRlbGF5X29mZilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNDQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM0NTpcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobXBoeS1cdTAwM2VkZXYsIHN0cnVjdCBtdDc2MDNfZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM0Ni1cdFx0XHRcdFx0ICAgICAgbXQ3Nik7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM1Mi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNTM6XHRhZGRyID0gbXQ3NjAzX3JlZ19tYXAoZGV2LCBNVF9MRURfU1RBVFVTXzAobXBoeS1cdTAwM2VsZWRzLnBpbikpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM1NC1cdG10NzZfd3IoZGV2LCBhZGRyLCB2YWwpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM1NTpcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0xFRF9TVEFUVVNfMShtcGh5LVx1MDAzZWxlZHMucGluKSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzU2LVx0bXQ3Nl93cihkZXYsIGFkZHIsIHZhbCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM2MS1cdFx0dmFsIHw9IE1UX0xFRF9DVFJMX1BPTEFSSVRZKG1waHktXHUwMDNlbGVkcy5waW4pO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM2MjpcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0xFRF9DVFJMKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNjMtXHRtdDc2X3dyKGRldiwgYWRkciwgdmFsKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM2NjpzdGF0aWMgaW50IG10NzYwM19sZWRfc2V0X2JsaW5rKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM2Ny1cdFx0XHRcdHVuc2lnbmVkIGxvbmcgKmRlbGF5X29uLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNzYtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mzc3Olx0bXQ3NjAzX2xlZF9zZXRfY29uZmlnKG1waHksIGRlbHRhX29uLCBkZWx0YV9vZmYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM3OC1cdHJldHVybiAwO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zODAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzgxOnN0YXRpYyB2b2lkIG10NzYwM19sZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzgyLVx0XHRcdFx0ICAgICAgZW51bSBsZWRfYnJpZ2h0bmVzcyBicmlnaHRuZXNzKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zODctXHRpZiAoIWJyaWdodG5lc3MpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mzg4Olx0XHRtdDc2MDNfbGVkX3NldF9jb25maWcobXBoeSwgMCwgMHhmZik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzg5LVx0ZWxzZVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM5MDpcdFx0bXQ3NjAzX2xlZF9zZXRfY29uZmlnKG1waHksIDB4ZmYsIDApO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM5MS19XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzkyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM5MzpzdGF0aWMgdTMyIF9fbXQ3NjAzX3JlZ19hZGRyKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsIHUzMiBhZGRyKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM5NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM5Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozOTg6XHRyZXR1cm4gbXQ3NjAzX3JlZ19tYXAoZGV2LCBhZGRyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zOTktfVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQwMC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MDE6c3RhdGljIHUzMiBtdDc2MDNfcnIoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQwMi17XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDAzOlx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDA0Olx0dTMyIGFkZHIgPSBfX210NzYwM19yZWdfYWRkcihkZXYsIG9mZnNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDA1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MDgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDA5OnN0YXRpYyB2b2lkIG10NzYwM193cihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDEwLXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTE6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTI6XHR1MzIgYWRkciA9IF9fbXQ3NjAzX3JlZ19hZGRyKGRldiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MTMtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQxNi1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTc6c3RhdGljIHUzMiBtdDc2MDNfcm13KHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCwgdTMyIG1hc2ssIHUzMiB2YWwpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDE4LXtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTk6XHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MjA6XHR1MzIgYWRkciA9IF9fbXQ3NjAzX3JlZ19hZGRyKGRldiwgb2Zmc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MjEtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTQyNT1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQyNjptdDc2MDNfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQyNy1cdFx0ICAgICBzdHJ1Y3QgcmVndWxhdG9yeV9yZXF1ZXN0ICpyZXF1ZXN0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MjktXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IHdpcGh5X3RvX2llZWU4MDIxMV9odyh3aXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDMwOlx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGh3LVx1MDAzZXByaXY7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDMxLVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz00Mzc9c3RhdGljIGludFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQzODptdDc2MDNfdHhwb3dlcl9zaWduZWQoaW50IHZhbClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00Mzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz00NTI9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0NTM6bXQ3NjAzX2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQ1NC1cdFx0ICAgIHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00NjUtXHRleHRfcGFfcHdyID0gZWVwcm9tW01UX0VFX1RYX1BPV0VSX1RTU0lfT0ZGXTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0NjY6XHRpZiAoZXh0X3BhIFx1MDAyNlx1MDAyNiBpc19tdDc2MDMoZGV2KSBcdTAwMjZcdTAwMjYgZXh0X3BhX3B3ciAhPSAwIFx1MDAyNlx1MDAyNiBleHRfcGFfcHdyICE9IDB4ZmYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDY3LVx0XHR0YXJnZXRfcG93ZXIgPSBleHRfcGFfcHdyIFx1MDAyNiB+QklUKDcpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00NzMtXHRmb3IgKGkgPSAwOyBpIFx1MDAzYyAxNDsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0NzQ6XHRcdGN1cl9vZmZzZXQgPSBtdDc2MDNfdHhwb3dlcl9zaWduZWQocmF0ZV9wb3dlcltpXSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDc1LVx0XHRtYXhfb2Zmc2V0ID0gbWF4KG1heF9vZmZzZXQsIGN1cl9vZmZzZXQpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00OTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDk2OmludCBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTkwMgoJCQkJCQkJb3V0cHV0OiA0MAoJCQkJCQkJdGhvdWdodHM6IDYzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgTVQ3NjAzIEJ1cyBTdXBwb3J0IGFuZCBEZXZpY2UgUHJvYmluZyoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gZGlnIGludG8gaG93IHRoZSBNVDc2MDMgY2hpcHNldCBoYW5kbGVzIGRpZmZlcmVudCBidXNlcyBhbmQsIHNwZWNpZmljYWxseSwgaG93IHRoZSBkZXZpY2VzIHByb2JlIGFuZCBpbml0aWFsaXplLiBJIGtub3cgdGhpcyBjaGlwc2V0IGZhaXJseSB3ZWxsLCBidXQgYSBxdWljayByZWZyZXNoIGlzIGFsd2F5cyBnb29kIGJlZm9yZSBJIGRpdmUgZGVlcGVyLiBNeSBmaXJzdCBzdGVwIGlzIHRvIGZvY3VzIG9uIHRoZSBrZXJuZWwgc291cmNlIGNvZGUuIEkgc2hvdWxkIHByb2JhYmx5IHN0YXJ0IHdpdGggdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9gIGRpcmVjdG9yeS4KCkkmIzM5O2xsIGJlIGxvb2tpbmcgY2xvc2VseSBhdCB0aGUgYHBjaS5jYCwgYHNvYy5jYCBmaWxlcywgYW5kIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHRoZXkgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBzdXBwb3J0ZWQgYnVzIHR5cGVzIGFuZCB0aGUgcmVsZXZhbnQgZGV2aWNlIHByb2Jpbmcgc2VxdWVuY2VzLiBJJiMzOTttIGV4cGVjdGluZyBgcGNpLmNgIHRvIGhhbmRsZSB0aGUgUENJLXNwZWNpZmljIGluaXRpYWxpemF0aW9uLCBidXQgSSYjMzk7bGwgYWxzbyBiZSB3YXRjaGluZyB0byBzZWUgaG93IHRoZSBjb2RlIGlzIHN0cnVjdHVyZWQgaW4gdGhlIFNPQyBjYXNlIGluIGBzb2MuY2AgYW5kIGhvdyB0aGUgZHJpdmVyIGlzIGNvbmZpZ3VyZWQgaW4gYEtjb25maWdgLiBUaGlzIHdpbGwgcHJvdmlkZSBhIGdvb2QgcGljdHVyZSBvZiB0aGUgZGlmZmVyZW50IGhhcmR3YXJlIGVudmlyb25tZW50cyB0aGF0IHRoZSBtdDc2MDMgZHJpdmVyIHN1cHBvcnRzIGFuZCBob3cgdGhlIGRldmljZXMgZGlzY292ZXIgYW5kIGNvbmZpZ3VyZSB0aGVtc2VsdmVzIHdpdGhpbiB0aG9zZSBidXMgYXJjaGl0ZWN0dXJlcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jPTgwOT1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3NjAzX2V4aXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmMtODE2LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjgxNzptb2R1bGVfaW5pdChtdDc2MDNfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmM6ODE4Om1vZHVsZV9leGl0KG10NzYwM19leGl0KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDQxMQoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDQ4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHN1bW1hcnksIGFzIGlmIEkgd2VyZSB0aGlua2luZyB0aGVzZSB0aG91Z2h0czoKCioqQW5hbHl6aW5nIHRoZSBNVDc2MDMgV2lyZWxlc3MgRHJpdmVyIEltcGxlbWVudGF0aW9uKioKCk9rYXksIHNvIEkgbmVlZCB0byBkaWcgaW50byB0aGlzIE1UNzYwMyBkcml2ZXIuIEkmIzM5O20gZ29pbmcgdG8gc3RhcnQgYnkgdGFraW5nIGEgbG9vayBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jYCBhcm91bmQgbGluZSA4MDAuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGVudHJ5IHBvaW50IGludG8gdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgbW9kdWxlLCBhbmQgaG9wZWZ1bGx5LCBJIGNhbiBnZXQgYSBoYW5kbGUgb24gd2hhdCYjMzk7cyBnb2luZyBvbiB3aXRoIHRoZSBNVDc2MDMgaGVyZS4gSSYjMzk7bGwgbmVlZCB0byBjb3JyZWxhdGUgdGhlIHJlZ2lzdGVyIG1hcHMgYW5kIGZpcm13YXJlIGludGVyZmFjZSB3aXRoIHRoZSBtYWluIGxvb3AgYW5kIGFzc29jaWF0ZWQgc3RydWN0dXJlcy4KCkFmdGVyIHRoYXQsIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIFBDSSBpbXBsZW1lbnRhdGlvbiBpbiBgcGNpLmNgLCBhbmQgdGhlIFNPQyBpbXBsZW1lbnRhdGlvbiBpbiBgc29jLmNgIHRvIHNlZSBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHN5c3RlbS4gVGhpcyB3aWxsIGRlcGVuZCBvbiB0aGUgbWFjaGluZSBpdCBydW5zIG9uLCBzbyBJJiMzOTtsbCBuZWVkIHRvIHNlZSBob3cgdGhlIGNvZGUgaGFuZGxlcyBkaWZmZXJlbnQgY29uZmlndXJhdGlvbnMuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBtb2R1bGVzIGludGVncmF0ZSBhbmQgZGlmZmVyIGZyb20gZWFjaCBvdGhlci4gSSYjMzk7bGwgbmVlZCB0byBpZGVudGlmeSBwb3RlbnRpYWwgYm90dGxlbmVja3Mgb3IgYXJlYXMgb2YgaW5lZmZpY2llbmN5LiBMZXQmIzM5O3MgZ2V0IGNyYWNraW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzkwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA3OTA6XHRNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TWVkaWFUZWsgTVQ3NjAzRSBhbmQgTVQ3Nng4IHdpcmVsZXNzIGRyaXZlclwmIzM0Oyk7XG4gNzkxOlx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiA3OTI6XHRcbiA3OTM6XHRzdGF0aWMgaW50IF9faW5pdCBtdDc2MDNfaW5pdCh2b2lkKVxuIDc5NDpcdHtcbiA3OTU6XHRcdGludCByZXQ7XG4gNzk2Olx0XG4gNzk3Olx0XHRyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoXHUwMDI2bXQ3Nl93bWFjX2RyaXZlcik7XG4gNzk4Olx0XHRpZiAocmV0KVxuIDc5OTpcdFx0XHRyZXR1cm4gcmV0O1xuIDgwMDpcdFxuIDgwMTpcdCNpZmRlZiBDT05GSUdfUENJXG4gODAyOlx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10NzYwM19wY2lfZHJpdmVyKTtcbiA4MDM6XHRcdGlmIChyZXQpXG4gODA0Olx0XHRcdHBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKFx1MDAyNm10NzZfd21hY19kcml2ZXIpO1xuIDgwNTpcdCNlbmRpZlxuIDgwNjpcdFx0cmV0dXJuIHJldDtcbiA4MDc6XHR9XG4gODA4Olx0XG4gODA5Olx0c3RhdGljIHZvaWQgX19leGl0IG10NzYwM19leGl0KHZvaWQpXG4gODEwOlx0e1xuIDgxMTpcdCNpZmRlZiBDT05GSUdfUENJXG4gODEyOlx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3NjAzX3BjaV9kcml2ZXIpO1xuIDgxMzpcdCNlbmRpZlxuIDgxNDpcdFx0cGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoXHUwMDI2bXQ3Nl93bWFjX2RyaXZlcik7XG4gODE1Olx0fVxuIDgxNjpcdFxuIDgxNzpcdG1vZHVsZV9pbml0KG10NzYwM19pbml0KTtcbiA4MTg6XHRtb2R1bGVfZXhpdChtdDc2MDNfZXhpdCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExNzAKCQkJCQkJCW91dHB1dDogNDkKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgaW1tZWRpYXRlIHRyYWluIG9mIHRob3VnaHQ6CgoqKkNoZWNraW5nIEtleSBGaWxlcyBmb3IgQ29udGV4dCBhbmQgVW5kZXJzdGFuZGluZyoqCgpBbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwIGludG8gdGhpcywgSSBuZWVkIHRvIGdldCBhIGxheSBvZiB0aGUgbGFuZC4gTXkgaW5pdGlhbCBhcHByb2FjaCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUgdXN1YWwgc3VzcGVjdHM6IGBwY2kuY2AsIGBzb2MuY2AsIGFuZCB0aGUgYEtjb25maWdgIGZpbGVzLiBJJiMzOTttIGFzc3VtaW5nIHRoYXQmIzM5O3Mgd2hlcmUgSSYjMzk7bGwgZmluZCBhIGZvdW5kYXRpb25hbCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBQQ0kgaW50ZXJhY3Rpb24sIHRoZSBTeXN0ZW0tb24tQ2hpcCAoU29DKSBzcGVjaWZpY3MgdGhhdCBhcmUgcmVsZXZhbnQsIGFuZCB0aGUgb3ZlcmFsbCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgZ292ZXJuaW5nIHRoaXMgbW9kdWxlIG9yIHN5c3RlbS4gR3JhYmJpbmcgdGhlIGxvdy1oYW5naW5nIGZydWl0IGVhcmx5IGhlbHBzIHRvIGF2b2lkIHdhc3RlZCB0aW1lLiBUaGlzIGFwcHJvYWNoIGFsbG93cyBtZSB0byBxdWlja2x5IGFzc2VzcyB0aGUgY29yZSBjb21wb25lbnRzIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYmVmb3JlIGdldHRpbmcgYm9nZ2VkIGRvd24gaW4gbW9yZSBpbnRyaWNhdGUgZGV0YWlscyBvciBwb3RlbnRpYWwgcmFiYml0IGhvbGVzLiBJIGNhbiB0aGVuIHVzZSB0aGlzIGtub3dsZWRnZSB0byBlc3RhYmxpc2ggYSBiZXR0ZXIgbWVudGFsIG1vZGVsIG9mIHRoZSBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvcGNpLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDgwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXG4gICAyOlx0XG4gICAzOlx0I2luY2x1ZGUgXHUwMDNjbGludXgva2VybmVsLmhcdTAwM2VcbiAgIDQ6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9tb2R1bGUuaFx1MDAzZVxuICAgNTpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3BjaS5oXHUwMDNlXG4gICA2Olx0XG4gICA3Olx0I2luY2x1ZGUgXCYjMzQ7bXQ3NjAzLmhcJiMzNDtcbiAgIDg6XHRcbiAgIDk6XHRzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3NnBjaV9kZXZpY2VfdGFibGVbXSA9IHtcbiAgMTA6XHRcdHsgUENJX0RFVklDRShQQ0lfVkVORE9SX0lEX01FRElBVEVLLCAweDc2MDMpIH0sXG4gIDExOlx0XHR7IH0sXG4gIDEyOlx0fTtcbiAgMTM6XHRcbiAgMTQ6XHRzdGF0aWMgaW50XG4gIDE1Olx0bXQ3NnBjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxuICAxNjpcdHtcbiAgMTc6XHRcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XG4gIDE4Olx0XHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXY7XG4gIDE5Olx0XHRpbnQgcmV0O1xuICAyMDpcdFxuICAyMTpcdFx0cmV0ID0gcGNpbV9lbmFibGVfZGV2aWNlKHBkZXYpO1xuICAyMjpcdFx0aWYgKHJldClcbiAgMjM6XHRcdFx0cmV0dXJuIHJldDtcbiAgMjQ6XHRcbiAgMjU6XHRcdHJldCA9IHBjaW1faW9tYXBfcmVnaW9ucyhwZGV2LCBCSVQoMCksIHBjaV9uYW1lKHBkZXYpKTtcbiAgMjY6XHRcdGlmIChyZXQpXG4gIDI3Olx0XHRcdHJldHVybiByZXQ7XG4gIDI4Olx0XG4gIDI5Olx0XHRwY2lfc2V0X21hc3RlcihwZGV2KTtcbiAgMzA6XHRcbiAgMzE6XHRcdHJldCA9IGRtYV9zZXRfbWFzayhcdTAwMjZwZGV2LVx1MDAzZWRldiwgRE1BX0JJVF9NQVNLKDMyKSk7XG4gIDMyOlx0XHRpZiAocmV0KVxuICAzMzpcdFx0XHRyZXR1cm4gcmV0O1xuICAzNDpcdFxuICAzNTpcdFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBzaXplb2YoKmRldiksIFx1MDAyNm10NzYwM19vcHMsXG4gIDM2Olx0XHRcdFx0XHQgXHUwMDI2bXQ3NjAzX2Rydl9vcHMpO1xuICAzNzpcdFx0aWYgKCFtZGV2KVxuICAzODpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbiAgMzk6XHRcbiAgNDA6XHRcdGRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XG4gIDQxOlx0XHRtdDc2X21taW9faW5pdChtZGV2LCBwY2ltX2lvbWFwX3RhYmxlKHBkZXYpWzBdKTtcbiAgNDI6XHRcbiAgNDM6XHRcdG1kZXYtXHUwMDNlcmV2ID0gKG10NzZfcnIoZGV2LCBNVF9IV19DSElQSUQpIFx1MDAzY1x1MDAzYyAxNikgfFxuICA0NDpcdFx0XHQgICAgKG10NzZfcnIoZGV2LCBNVF9IV19SRVYpIFx1MDAyNiAweGZmKTtcbiAgNDU6XHRcdGRldl9pbmZvKG1kZXYtXHUwMDNlZGV2LCBcJiMzNDtBU0lDIHJldmlzaW9uOiAlMDR4XFxuXCYjMzQ7LCBtZGV2LVx1MDAzZXJldik7XG4gIDQ2Olx0XG4gIDQ3Olx0XHRtdDc2X3dyKGRldiwgTVRfSU5UX01BU0tfQ1NSLCAwKTtcbiAgNDg6XHRcbiAgNDk6XHRcdHJldCA9IGRldm1fcmVxdWVzdF9pcnEobWRldi1cdTAwM2VkZXYsIHBkZXYtXHUwMDNlaXJxLCBtdDc2MDNfaXJxX2hhbmRsZXIsXG4gIDUwOlx0XHRcdFx0ICAgICAgIElSUUZfU0hBUkVELCBLQlVJTERfTU9ETkFNRSwgZGV2KTtcbiAgNTE6XHRcdGlmIChyZXQpXG4gIDUyOlx0XHRcdGdvdG8gZXJyb3I7XG4gIDUzOlx0XG4gIDU0Olx0XHRyZXQgPSBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlKGRldik7XG4gIDU1Olx0XHRpZiAocmV0KVxuICA1NjpcdFx0XHRnb3RvIGVycm9yO1xuICA1NzpcdFxuICA1ODpcdFx0cmV0dXJuIDA7XG4gIDU5Olx0ZXJyb3I6XG4gIDYwOlx0XHRtdDc2X2ZyZWVfZGV2aWNlKFx1MDAyNmRldi1cdTAwM2VtdDc2KTtcbiAgNjE6XHRcbiAgNjI6XHRcdHJldHVybiByZXQ7XG4gIDYzOlx0fVxuICA2NDpcdFxuICA2NTpcdHN0YXRpYyB2b2lkXG4gIDY2Olx0bXQ3NnBjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4gIDY3Olx0e1xuICA2ODpcdFx0c3RydWN0IG10NzZfZGV2ICptZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpO1xuICA2OTpcdFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XG4gIDcwOlx0XG4gIDcxOlx0XHRtdDc2MDNfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbiAgNzI6XHR9XG4gIDczOlx0XG4gIDc0Olx0TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG10NzZwY2lfZGV2aWNlX3RhYmxlKTtcbiAgNzU6XHRNT0RVTEVfRklSTVdBUkUoTVQ3NjAzX0ZJUk1XQVJFX0UxKTtcbiAgNzY6XHRNT0RVTEVfRklSTVdBUkUoTVQ3NjAzX0ZJUk1XQVJFX0UyKTtcbiAgNzc6XHRcbiAgNzg6XHRzdHJ1Y3QgcGNpX2RyaXZlciBtdDc2MDNfcGNpX2RyaXZlciA9IHtcbiAgNzk6XHRcdC5uYW1lXHRcdD0gS0JVSUxEX01PRE5BTUUsXG4gIDgwOlx0XHQuaWRfdGFibGVcdD0gbXQ3NnBjaV9kZXZpY2VfdGFibGUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyNjI1CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gYHNvYy5jYCoqCgpBbHJpZ2h0LCBzbyB3ZSYjMzk7cmUgYXQgYSBwb2ludCB3aGVyZSB3ZSBuZWVkIHRvIGJlIHRob3JvdWdoLiBJJiMzOTt2ZSBiZWVuIGZvY3VzaW5nIG9uIFtpbXBsaWVkIHByZWNlZGluZyBjb250ZXh0IHRoZSB1c2VyIHdvdWxkIHVuZGVyc3RhbmQgYmFzZWQgb24gJiMzNDtMZXQmIzM5O3MgYWxzbyBjaGVjayBzb2MuYyYjMzQ7XSwgYnV0IGEgY3J1Y2lhbCBuZXh0IHN0ZXAsIGNvbnNpZGVyaW5nIHRoZSBzY29wZSBvZiB3aGF0IHdlJiMzOTtyZSB0YWNrbGluZywgaXMgdG8gZ2l2ZSBgc29jLmNgIGEgY2xvc2UgbG9vay4gSXQmIzM5O3MgcHJvYmFibHkgdGhlIGxpbmNocGluIGluIFtpbXBsaWVkIHJlbGF0aW9uc2hpcCB0byB0aGUgdXNlciYjMzk7cyBmaWVsZCBhbmQgY29udGV4dF0gdGhhdCB0b3VjaGVzIG9uIFtzcGVjaWZpYyBhc3BlY3QgdGhlIHVzZXIgd291bGQgdW5kZXJzdGFuZCBiYXNlZCBvbiAmIzM0O3NvYy5jJiMzNDtdLiBJIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGhhdmVuJiMzOTt0IG92ZXJsb29rZWQgYW55IGludGVncmF0aW9uIHBvaW50cyBvciBkZXBlbmRlbmNpZXMgd2l0aCB3aGF0IHdlJiMzOTt2ZSBhbHJlYWR5IGV4YW1pbmVkLiBUaGlzIGlzIGFib3V0IGVuc3VyaW5nIGNvbXBsZXRlIGNvdmVyYWdlLiBUaGVyZSBtaWdodCBiZSBzb21lIHN1YnRsZSBpbnRlcmFjdGlvbnMgaGVyZSB0aGF0LCBpZiBtaXNzZWQsIHdvdWxkIGxlYWQgdG8gcmVhbCBoZWFkYWNoZXMgZG93biB0aGUgbGluZS4gSSBhbSB0aGlua2luZyBwYXJ0aWN1bGFybHkgYWJvdXQgW3NwZWNpZmljIHBvdGVudGlhbCBpc3N1ZXMgdGhlIHVzZXIgbWF5IGNvbnNpZGVyLCBiYXNlZCBvbiAmIzM0O3NvYy5jJiMzNDsgd2l0aGluIHRoZSBjb250ZXh0XSBhbmQgbWFraW5nIHN1cmUgdGhlIGltcGxpY2F0aW9ucyBvZiBbbGlrZWx5IGFyZWEgb2YgY29kZV0gaGF2ZSBiZWVuIHRob3JvdWdobHkgdmV0dGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL3NvYy5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0zLUNsYXVzZS1DbGVhclxuICAgMjpcdFxuICAgMzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L2tlcm5lbC5oXHUwMDNlXG4gICA0Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvbW9kdWxlLmhcdTAwM2VcbiAgIDU6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaFx1MDAzZVxuICAgNjpcdFxuICAgNzpcdCNpbmNsdWRlIFwmIzM0O210NzYwMy5oXCYjMzQ7XG4gICA4Olx0XG4gICA5Olx0c3RhdGljIGludFxuICAxMDpcdG10NzZfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuICAxMTpcdHtcbiAgMTI6XHRcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XG4gIDEzOlx0XHR2b2lkIF9faW9tZW0gKm1lbV9iYXNlO1xuICAxNDpcdFx0c3RydWN0IG10NzZfZGV2ICptZGV2O1xuICAxNTpcdFx0aW50IGlycTtcbiAgMTY6XHRcdGludCByZXQ7XG4gIDE3Olx0XG4gIDE4Olx0XHRpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuICAxOTpcdFx0aWYgKGlycSBcdTAwM2MgMClcbiAgMjA6XHRcdFx0cmV0dXJuIGlycTtcbiAgMjE6XHRcbiAgMjI6XHRcdG1lbV9iYXNlID0gZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlKHBkZXYsIDApO1xuICAyMzpcdFx0aWYgKElTX0VSUihtZW1fYmFzZSkpXG4gIDI0Olx0XHRcdHJldHVybiBQVFJfRVJSKG1lbV9iYXNlKTtcbiAgMjU6XHRcbiAgMjY6XHRcdG1kZXYgPSBtdDc2X2FsbG9jX2RldmljZShcdTAwMjZwZGV2LVx1MDAzZWRldiwgc2l6ZW9mKCpkZXYpLCBcdTAwMjZtdDc2MDNfb3BzLFxuICAyNzpcdFx0XHRcdFx0IFx1MDAyNm10NzYwM19kcnZfb3BzKTtcbiAgMjg6XHRcdGlmICghbWRldilcbiAgMjk6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gIDMwOlx0XG4gIDMxOlx0XHRkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xuICAzMjpcdFx0bXQ3Nl9tbWlvX2luaXQobWRldiwgbWVtX2Jhc2UpO1xuICAzMzpcdFxuICAzNDpcdFx0bWRldi1cdTAwM2VyZXYgPSAobXQ3Nl9ycihkZXYsIE1UX0hXX0NISVBJRCkgXHUwMDNjXHUwMDNjIDE2KSB8XG4gIDM1Olx0XHRcdCAgICAobXQ3Nl9ycihkZXYsIE1UX0hXX1JFVikgXHUwMDI2IDB4ZmYpO1xuICAzNjpcdFx0ZGV2X2luZm8obWRldi1cdTAwM2VkZXYsIFwmIzM0O0FTSUMgcmV2aXNpb246ICUwNHhcXG5cJiMzNDssIG1kZXYtXHUwMDNlcmV2KTtcbiAgMzc6XHRcbiAgMzg6XHRcdG10NzZfd3IoZGV2LCBNVF9JTlRfTUFTS19DU1IsIDApO1xuICAzOTpcdFxuICA0MDpcdFx0cmV0ID0gZGV2bV9yZXF1ZXN0X2lycShtZGV2LVx1MDAzZWRldiwgaXJxLCBtdDc2MDNfaXJxX2hhbmRsZXIsXG4gIDQxOlx0XHRcdFx0ICAgICAgIElSUUZfU0hBUkVELCBLQlVJTERfTU9ETkFNRSwgZGV2KTtcbiAgNDI6XHRcdGlmIChyZXQpXG4gIDQzOlx0XHRcdGdvdG8gZXJyb3I7XG4gIDQ0Olx0XG4gIDQ1Olx0XHRyZXQgPSBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlKGRldik7XG4gIDQ2Olx0XHRpZiAocmV0KVxuICA0NzpcdFx0XHRnb3RvIGVycm9yO1xuICA0ODpcdFxuICA0OTpcdFx0cmV0dXJuIDA7XG4gIDUwOlx0ZXJyb3I6XG4gIDUxOlx0XHRtdDc2X2ZyZWVfZGV2aWNlKG1kZXYpO1xuICA1MjpcdFx0cmV0dXJuIHJldDtcbiAgNTM6XHR9XG4gIDU0Olx0XG4gIDU1Olx0c3RhdGljIHZvaWQgbXQ3Nl93bWFjX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuICA1NjpcdHtcbiAgNTc6XHRcdHN0cnVjdCBtdDc2X2RldiAqbWRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpO1xuICA1ODpcdFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XG4gIDU5Olx0XG4gIDYwOlx0XHRtdDc2MDNfdW5yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcbiAgNjE6XHR9XG4gIDYyOlx0XG4gIDYzOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgb2Zfd21hY19tYXRjaFtdID0ge1xuICA2NDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21lZGlhdGVrLG10NzYyOC13bWFjXCYjMzQ7IH0sXG4gIDY1Olx0XHR7fSxcbiAgNjY6XHR9O1xuICA2NzpcdFxuICA2ODpcdE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIG9mX3dtYWNfbWF0Y2gpO1xuICA2OTpcdE1PRFVMRV9GSVJNV0FSRShNVDc2MjhfRklSTVdBUkVfRTEpO1xuICA3MDpcdE1PRFVMRV9GSVJNV0FSRShNVDc2MjhfRklSTVdBUkVfRTIpO1xuICA3MTpcdFxuICA3MjpcdHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXQ3Nl93bWFjX2RyaXZlciA9IHtcbiAgNzM6XHRcdC5wcm9iZVx0XHQ9IG10NzZfd21hY19wcm9iZSxcbiAgNzQ6XHRcdC5yZW1vdmVcdFx0PSBtdDc2X3dtYWNfcmVtb3ZlLFxuICA3NTpcdFx0LmRyaXZlciA9IHtcbiAgNzY6XHRcdFx0Lm5hbWUgPSBcJiMzNDttdDc2X3dtYWNcJiMzNDssXG4gIDc3Olx0XHRcdC5vZl9tYXRjaF90YWJsZSA9IG9mX3dtYWNfbWF0Y2gsXG4gIDc4Olx0XHR9LFxuICA3OTpcdH07XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzA1IDEwOjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDkxCgkJCQkJCQlvdXRwdXQ6IDQ3CgkJCQkJCQl0aG91Z2h0czogNjMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBNVDc2MDMmIzM5O3MgQ29ubmVjdGl2aXR5IE9wdGlvbnMqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZSBNVDc2MDMgY2hpcHNldCBoYW5kbGVzIG5ldHdvcmsgaW50ZXJmYWNlcy4gTXkgaW5pdGlhbCBodW5jaCBpcyB0byBjaGVjayBpdHMgVVNCIGNhcGFiaWxpdGllcywgc2VlIGlmIGl0IGhhcyBhbnkgdmlydHVhbCBvciBlbXVsYXRlZCBpbnRlcmZhY2VzLCBvciBpZiBpdCYjMzk7cyBzdHJpY3RseSBhIHBoeXNpY2FsIFBDSWUgb3IgU29DIGRldmljZS4gVGhlIGJlc3QgcGxhY2UgdG8gc3RhcnQsIGdpdmVuIG15IGV4cGVyaWVuY2UsIGlzIGxpa2VseSB0aGUgZHJpdmVyJiMzOTtzIEtjb25maWcgZmlsZS4gSSYjMzk7bGwgdGFrZSBhIGxvb2sgYXQgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdgIHRvIGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkZXZpY2UmIzM5O3MgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBidWlsZC10aW1lIHNldHRpbmdzLCB3aGljaCBzaG91bGQgaW1tZWRpYXRlbHkgY2xhcmlmeSBpZiB0aGVyZSYjMzk7cyBhbnkgVVNCIHN1cHBvcnQgZGVjbGFyZWQgb3IgaGludGVkIGF0IHdpdGhpbiB0aGUgZHJpdmVyLiBUaGlzIGlzIHVzdWFsbHkgdGhlIHF1aWNrZXN0IHdheSB0byBnZXQgYSBoaWdoLWxldmVsIG92ZXJ2aWV3LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcbiAgIDI6XHRjb25maWcgTVQ3NjAzRVxuICAgMzpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVkaWFUZWsgTVQ3NjAzRSAoUENJZSkgYW5kIE1UNzZ4OCBXTEFOIHN1cHBvcnRcJiMzNDtcbiAgIDQ6XHRcdHNlbGVjdCBNVDc2X0NPUkVcbiAgIDU6XHRcdGRlcGVuZHMgb24gTUFDODAyMTFcbiAgIDY6XHRcdGRlcGVuZHMgb24gUENJXG4gICA3Olx0XHRoZWxwXG4gICA4Olx0XHQgIFRoaXMgYWRkcyBzdXBwb3J0IGZvciBNVDc2MDNFIFBDSWUgd2lyZWxlc3MgZGV2aWNlcyBhbmQgdGhlIFdMQU4gY29yZVxuICAgOTpcdFx0ICBvbiBNVDc2MjgvTVQ3Njg4IFNvQyBkZXZpY2VzLiBUaGlzIGZhbWlseSBzdXBwb3J0cyBJRUVFIDgwMi4xMW4gMngyXG4gIDEwOlx0XHQgIHRvIDMwME1icHMgUEhZIHJhdGVcbiAgMTE6XHRcbiAgMTI6XHRcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDUgMTA6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ1ODMKCQkJCQkJCW91dHB1dDogMzIKCQkJCQkJCXRob3VnaHRzOiA0ODQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgV29ydGhGdXp6aW5nIENyaXRlcmlhIGZvciBNVDc2MDMqKgoKT2theSwgbGV0JiMzOTtzIHNlZS4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0byBxdWlja2x5IGNoZWNrIGlmIFFFTVUgb2ZmZXJlZCBzb21lIGxldmVsIG9mIFVTQiBvciBvdGhlciBlbXVsYXRpb24gZm9yIG10NzYwMyBvciBqdXN0IHRoZSBiYXNlIG10NzYgbW9kdWxlcywgbWF5YmUgZXZlbiBod3NpbSwgdG8gZ2l2ZSBtZSBhIGxlZyB1cCBvbiBmdXp6aW5nLiBCdXQsIGhvbGQgb24gYSBzZWNvbmQuLi5tdDc2MDMgaXMgc3BlY2lmaWNhbGx5IGZvciB0aGUgTWVkaWFUZWsgTVQ3NjAzRSBQQ0llIGRldmljZSBhbmQgdGhlIE1UNzYyOC9NVDc2ODggU29Dcy4gSSB3YXMgZXhwZWN0aW5nIG1heWJlIGEgc3RhbmRhcmQgUUVNVSBvciBHQ0UgZW11bGF0aW9uIG9mIHRoZSBNZWRpYVRlayBNVDc2MDMgUENJZSBvciBTb0MgZGV2aWNlLCBidXQgbm8gZGljZS4gUUVNVSBkb2VzbiYjMzk7dCBzZWVtIHRvIHRvdWNoIHRoYXQgaGFyZHdhcmUgYXQgYWxsLgoKQWxyaWdodCwgdGltZSB0byBjYXJlZnVsbHkgcmV2aWV3IHNlY3Rpb24gMiBvZiB0aGUgaW5zdHJ1Y3Rpb25zLiBUaGUgJiMzNDtXb3J0aEZ1enppbmc9ZmFsc2UmIzM0OyBjcml0ZXJpYSBhcmUgcHJldHR5IGNsZWFyOiBub24tZXhlY3V0YWJsZSBjaGFuZ2VzLCB1bnJlYWNoYWJsZSBoYXJkd2FyZSAoc3BlY2lmaWNhbGx5IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIEdQVSBkcml2ZXJzIHJlcXVpcmluZyBwaHlzaWNhbCBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSkgYW5kIHVucmVhY2hhYmxlIGV4ZWN1dGlvbiBwYXRocyAoZHJpdmVyIHRlYXJkb3duLCBQQ0kgaG90LXVucGx1ZykuCgpMZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBJcyB0aGUgTVQ3NjAzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUvU29DIHdpcmVsZXNzIGRyaXZlcj8gWWVzISBUaGUgTVQ3NjAzRSBpcyBzcGVjaWZpY2FsbHkgTWVkaWFUZWsgaGFyZHdhcmUuIERvZXMgc3RhbmRhcmQgUUVNVSBlbXVsYXRlIHRoZSBNVDc2MDM/IE5vcGUuIFdlIGFscmVhZHkgZXN0YWJsaXNoZWQgdGhhdC4gQW5kIEkgc2hvdWxkIHByb2JhYmx5IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgVVNCIGludGVyZmFjZSBzdXBwb3J0IHdpdGhpbiBtdDc2MDMgYmVmb3JlIEkgbWFrZSBhIGZpbmFsIGFzc2Vzc21lbnQuIEkmIzM5O2xsIG5lZWQgdG8gY2hlY2sgdGhlIGNvZGViYXNlIHRvIGNvbmZpcm0gaWYgYW55IFVTQiBpbnRlcmZhY2Ugc3VwcG9ydCBleGlzdHMuCgpTbywgZ2l2ZW4gdGhhdCBNVDc2MDMgaXMgYSB2ZW5kb3Itc3BlY2lmaWMgUENJZS9Tb0MgZHJpdmVyIGFuZCBub3QgZW11bGF0ZWQgYnkgUUVNVSwgYWNjb3JkaW5nIHRvIHRoZSBpbnN0cnVjdGlvbnMsIHRoaXMgc2VlbXMgbGlrZSBhIHNvbGlkIGNhc2UgZm9yICYjMzQ7V29ydGhGdXp6aW5nPWZhbHNlJiMzNDsgc2luY2UgaXQmIzM5O3Mgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGluIG15IHZpcnR1YWxpemVkIGVudmlyb25tZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210NzYwMy4qdXNiJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTUyMQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDI4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgaXQgd2VyZSBteSBvd246CgoqKk5hdmlnYXRpbmcgdGhlIE1UNzYwMyBXaXJlbGVzcyBEcml2ZXIqKgoKT2theSwgdGltZSB0byBkaXZlIGluLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0byBnZXQgYSBsYXkgb2YgdGhlIGxhbmQgd2l0aGluIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYCBkaXJlY3RvcnkuIEkgd2FudCB0byBidWlsZCBhIG1lbnRhbCBtYXAgb2YgdGhlIGNvcmUgZmlsZXMgYW5kIHN0cnVjdHVyZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBNVDc2MDMgd2lyZWxlc3MgZHJpdmVyLiBCZWZvcmUgSSBzdGFydCBkZWJ1Z2dpbmcgb3IgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgYSBzcGVjaWZpYyBmdW5jdGlvbiwgSSBuZWVkIHRoYXQgb3ZlcnZpZXcuIEkmIzM5O20gZ29pbmcgdG8gcXVpY2tseSBzY2FuIHRoZSBpbmRleCB0byBnZXQgYSBzZW5zZSBvZiB0aGUga2V5IG1vZHVsZXMsIGhlYWRlciBmaWxlcywgYW5kIGltcGxlbWVudGF0aW9uIGZpbGVzIHByZXNlbnQuIFRoaXMgcHJlbGltaW5hcnkgc3RlcCBpcyBjcnVjaWFsOyBpdCBoZWxwcyBtZSBhdm9pZCBnZXR0aW5nIGxvc3QgaW4gdGhlIHdlZWRzIGFuZCBhbGxvd3MgbWUgdG8gY29udGV4dHVhbGl6ZSBhbnkgc3Vic2VxdWVudCBpbnZlc3RpZ2F0aW9ucyBvciBidWcgcmVwb3J0cyBJIG1pZ2h0IGJlIHdvcmtpbmcgd2l0aC4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgZmFtaWxpYXJpdHkgd2l0aCB0aGlzIHBhcnRpY3VsYXIgZHJpdmVyLCBhbmQgYSBkaXJlY3RvcnkgaW5kZXggc2NhbiBpcyB0aGUgZmFzdGVzdCB3YXkgdG8gYWNoaWV2ZSB0aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlcyYjMzQ7OiBbCiAgICAmIzM0O2JlYWNvbi5jJiMzNDssCiAgICAmIzM0O2NvcmUuYyYjMzQ7LAogICAgJiMzNDtkZWJ1Z2ZzLmMmIzM0OywKICAgICYjMzQ7ZG1hLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmMmIzM0OywKICAgICYjMzQ7ZWVwcm9tLmgmIzM0OywKICAgICYjMzQ7aW5pdC5jJiMzNDssCiAgICAmIzM0O21hYy5jJiMzNDssCiAgICAmIzM0O21hYy5oJiMzNDssCiAgICAmIzM0O21haW4uYyYjMzQ7LAogICAgJiMzNDttY3UuYyYjMzQ7LAogICAgJiMzNDttY3UuaCYjMzQ7LAogICAgJiMzNDttdDc2MDMuaCYjMzQ7LAogICAgJiMzNDtwY2kuYyYjMzQ7LAogICAgJiMzNDtyZWdzLmgmIzM0OywKICAgICYjMzQ7c29jLmMmIzM0OwogIF0sCiAgJiMzNDtTdWJkaXJzJiMzNDs6IG51bGwKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTkwNAoJCQkJCQkJb3V0cHV0OiAxMzQKCQkJCQkJCXRob3VnaHRzOiA1MTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTVQ3NjAzIERyaXZlciYjMzk7cyBGdXp6aW5nIFN1aXRhYmlsaXR5KioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBgbXQ3NjAzYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYG10NzYwM19tYWNfaW5pdGAgZnVuY3Rpb24sIGlzIGEgdmlhYmxlIHRhcmdldCBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIHdoZXRoZXIgdGhlIGNvbmRpdGlvbnMgZm9yIGV4ZWN1dGluZyB0aGF0IGNhbGwgYXJlIG1ldCBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4KCkZpcnN0LCBJIHRyYWNlZCB0aGUgY2FsbCBjaGFpbiBmb3IgYG10NzYwM19tYWNfaW5pdGAuIEl0JiMzOTtzIGEgc3RhdGljIGZ1bmN0aW9uIHdpdGhpbiBgaW5pdC5jYCBhbmQgaXMgY2FsbGVkIGJ5IGBtdDc2MDNfaW5pdF9oYXJkd2FyZWAuIFRoYXQgaW4gdHVybiBpcyBjYWxsZWQgZnJvbSBlaXRoZXIgYG10NzYwM19yZWdpc3Rlcl9kZXZpY2VgIG9yIGBtdDc2MDNfcmVzZXRfd29ya2AuIE5vdywgYG10NzYwM19yZWdpc3Rlcl9kZXZpY2VgIGdldHMgY2FsbGVkIGR1cmluZyB0aGUgUENJIHByb2JlIChgbXQ3NnBjaV9wcm9iZWApIG9yIGZyb20gYSBwbGF0Zm9ybSBwcm9iZSAoYG10NzZfd21hY19wcm9iZWApLgoKSGVyZSYjMzk7cyB0aGUgcHJvYmxlbTogbmVpdGhlciB0aGUgTVQ3NjAzRSBQQ0llIG5vciB0aGUgTVQ3NjI4IFNvQyBXTUFDIGhhcmR3YXJlIGlzIGVtdWxhdGVkIGluIHN0YW5kYXJkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLiBUaGVzZSBhcmUgc3BlY2lhbGl6ZWQgaGFyZHdhcmUgY29tcG9uZW50cywgYW5kIHN0YW5kYXJkIGZ1enppbmcgc2V0dXBzIGFyZSAqbm90KiBnb2luZyB0byBiZSBhYmxlIHRvIHByb2JlLCBtdWNoIGxlc3MgZXhlY3V0ZSwgdGhpcyBkcml2ZXIuIFNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMsIGxpa2UgVVNCIGdhZGdldHMsIGFyZSBvdXQgYmVjYXVzZSB0aGVyZSYjMzk7cyBubyBVU0IgZHJpdmVyIGZvciBgbXQ3NjAzYC4gSXQmIzM5O3MgUENJIGFuZCBTb0Mtc3BlY2lmaWMuCgpUaGlzIGNsZWFybHkgZmFsbHMgdW5kZXIgdGhlIGNhdGVnb3J5IG9mICYjMzQ7U3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlLiYjMzQ7IFNwZWNpZmljYWxseSwgdGhpcyBpcyBzaW1pbGFyIHRvIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzLiBUaGV5IHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUgb3IgaGFyZHdhcmUtc3BlY2lmaWMgUENJZSBjYXJkcyB0aGF0IFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZS4KCkxldCYjMzk7cyBzdW1tYXJpemUgdGhpcyBjb25jaXNlbHk6IHRoZSBwYXRjaCBtb2RpZmllcyBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jYCwgc3BlY2lmaWNhbGx5IGBtdDc2MDNfbWFjX2luaXRgLiBUaGUgZHJpdmVyIGlzIGZvciB0aGUgTVQ3NjAzRSBQQ0llIGFuZCBNVDc2MjgvTVQ3Njg4IFNvQy4gSXQgaXMgdW5yZWFjaGFibGUgaW4gYSBzdGFuZGFyZCBRRU1VIG9yIEdDRSBWTSB3aXRob3V0IHRoZSBhY3R1YWwgcGh5c2ljYWwgaGFyZHdhcmUuIFRoZXJlZm9yZSwgaXQmIzM5O3Mgbm90IHdvcnRoIGZ1enppbmcuIFRoZSBgV29ydGhGdXp6aW5nYCBmbGFnIHNob3VsZCBiZSBzZXQgdG8gYGZhbHNlYC4gVGhlcmUgYXJlIG5vIHNwZWNpZmljIHN5bWJvbHMgb2YgaW50ZXJlc3QgKGBGb2N1c1N5bWJvbHNgIGlzIGVtcHR5KSwgYW5kIG5vIHNwZWNpYWwgY29uZmlndXJhdGlvbnMgKGBFbmFibGVDb25maWdzYCBpcyBlbXB0eSkgbmVlZGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIG10NzYwM19tYWNfaW5pdCgpIGluIHRoZSBNZWRpYVRlayBNVDc2MDMgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3NjAzRSkuIFRoaXMgZHJpdmVyIHN1cHBvcnRzIG9ubHkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlcyAoTVQ3NjAzRSkgYW5kIFNvQyBwbGF0Zm9ybXMgKE1UNzYyOC9NVDc2ODgpLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgYW5kIGRvIG5vdCBzdXBwb3J0IFVTQiBlbXVsYXRpb24uIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgbXQ3NjAzX21hY19pbml0KCkgaW4gdGhlIE1lZGlhVGVrIE1UNzYwMyB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc2MDNFKS4gVGhpcyBkcml2ZXIgc3VwcG9ydHMgb25seSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2VzIChNVDc2MDNFKSBhbmQgU29DIHBsYXRmb3JtcyAoTVQ3NjI4L01UNzY4OCksIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSBhbmQgZG8gbm90IHN1cHBvcnQgVVNCIGVtdWxhdGlvbi4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIxLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wNSAxMDozOTwvdGQ+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+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MDQuNzAxMDE1NTE2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzAzNjE0NzMwMTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiS01TQU5SZWFzb25pbmdcIjogXCJcIixcbiAgXCJOZWVkc0tNU0FOXCI6IGZhbHNlLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBtdDc2MDNfbWFjX2luaXQoKSBpbiB0aGUgTWVkaWFUZWsgTVQ3NjAzIHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzYwM0UpLiBUaGlzIGRyaXZlciBzdXBwb3J0cyBvbmx5IHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZXMgKE1UNzYwM0UpIGFuZCBTb0MgcGxhdGZvcm1zIChNVDc2MjgvTVQ3Njg4KSwgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIGFuZCBkbyBub3Qgc3VwcG9ydCBVU0IgZW11bGF0aW9uLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjA0LjcwMTAyMDk5NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYyNzMwNDkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgM2NlNDQ2Mjk1NjIxMTZhOWNlZDVjNmFmOGExMWMyYmM2N2E0YTRhNlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IFNlcCA1IDEwOjM5OjAzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuY1xcbmluZGV4IDEwZjJlYzcwYzc5MmIuLjIxOGVjNDA2ZDJhODcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jXFxuKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jXFxuQEAgLTIzMCw2ICsyMzAsNyBAQCBtdDc2MDNfbWFjX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcXG4gXFxuIFxcdGV0aF9icm9hZGNhc3RfYWRkcihiY19hZGRyKTtcXG4gXFx0bXQ3NjAzX3d0YmxfaW5pdChkZXYsIE1UNzYwM19XVEJMX1JFU0VSVkVELCAtMSwgYmNfYWRkcik7XFxuK1xcdG10NzZfd2NpZF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZWdsb2JhbF9zdGEud2NpZCwgMCk7XFxuIFxcdGRldi1cXHUwMDNlZ2xvYmFsX3N0YS53Y2lkLmlkeCA9IE1UNzYwM19XVEJMX1JFU0VSVkVEO1xcbiBcXHRyY3VfYXNzaWduX3BvaW50ZXIoZGV2LVxcdTAwM2VtdDc2LndjaWRbTVQ3NjAzX1dUQkxfUkVTRVJWRURdLFxcbiBcXHRcXHRcXHQgICBcXHUwMDI2ZGV2LVxcdTAwM2VnbG9iYWxfc3RhLndjaWQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOTowNS4xNjQyNjQ2ODZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjI5ODk4MjA5MDgzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBtdDc2MDNfbWFjX2luaXQoKSBpbiB0aGUgTWVkaWFUZWsgTVQ3NjAzIHdpcmVsZXNzIGRyaXZlciAoQ09ORklHX01UNzYwM0UpLiBUaGlzIGRyaXZlciBzdXBwb3J0cyBvbmx5IHZlbmRvci1zcGVjaWZpYyBQQ0llIGRldmljZXMgKE1UNzYwM0UpIGFuZCBTb0MgcGxhdGZvcm1zIChNVDc2MjgvTVQ3Njg4KSwgd2hpY2ggYXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpIGFuZCBkbyBub3Qgc3VwcG9ydCBVU0IgZW11bGF0aW9uLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgM2NlNDQ2Mjk1NjIxMTZhOWNlZDVjNmFmOGExMWMyYmM2N2E0YTRhNlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgU2VwIDUgMTA6Mzk6MDMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmNcbmluZGV4IDEwZjJlYzcwYzc5MmIuLjIxOGVjNDA2ZDJhODcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuY1xuQEAgLTIzMCw2ICsyMzAsNyBAQCBtdDc2MDNfbWFjX2luaXQoc3RydWN0IG10NzYwM19kZXYgKmRldilcbiBcbiBcdGV0aF9icm9hZGNhc3RfYWRkcihiY19hZGRyKTtcbiBcdG10NzYwM193dGJsX2luaXQoZGV2LCBNVDc2MDNfV1RCTF9SRVNFUlZFRCwgLTEsIGJjX2FkZHIpO1xuK1x0bXQ3Nl93Y2lkX2luaXQoXHUwMDI2ZGV2LVx1MDAzZWdsb2JhbF9zdGEud2NpZCwgMCk7XG4gXHRkZXYtXHUwMDNlZ2xvYmFsX3N0YS53Y2lkLmlkeCA9IE1UNzYwM19XVEJMX1JFU0VSVkVEO1xuIFx0cmN1X2Fzc2lnbl9wb2ludGVyKGRldi1cdTAwM2VtdDc2LndjaWRbTVQ3NjAzX1dUQkxfUkVTRVJWRURdLFxuIFx0XHRcdCAgIFx1MDAyNmRldi1cdTAwM2VnbG9iYWxfc3RhLndjaWQpO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MDUuMTY0MjY1OTc3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NTE0NTc2MTc0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGluIGZyb250IG9mIG1lLCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZGVjaWRlIGlmIGl0J3Mgd29ydGggdGhlIGZ1enppbmcgZWZmb3J0LiBJdCBsb29rcyBsaWtlIHdlJ3JlIGRpdmluZyBpbnRvIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jYCBmaWxlLCBzcGVjaWZpY2FsbHkgdGhlIGBtdDc2MDNfbWFjX2luaXRgIGZ1bmN0aW9uLiBUaGUga2V5IGNoYW5nZSBpcyB0aGUgYWRkaXRpb24gb2YgYG10NzZfd2NpZF9pbml0KFx1MDAyNmRldi1cdTAwM2VnbG9iYWxfc3RhLndjaWQsIDApO2AuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIGJ1dCBJIG5lZWQgbW9yZSBjb250ZXh0IGJlZm9yZSBJIG1ha2UgYW55IGp1ZGdlbWVudHMuXG5cbkZpcnN0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IGBtdDc2MDNgIGFjdHVhbGx5ICppcyouIElzIGl0IGEgUENJZSBkZXZpY2U/IEEgU3lzdGVtLW9uLUNoaXAgKFNvQykgY29tcG9uZW50PyBVU0I/IFRoaXMgZHJpdmVzIHRoZSBhdHRhY2sgc3VyZmFjZSBJIGhhdmUgdG8gY29uc2lkZXIuIEknbSBnb2luZyB0byBxdWlja2x5IGdldCBhIGxheSBvZiB0aGUgbGFuZCBoZXJlLiBJJ2xsIHByb2JhYmx5IGZpcmUgdXAgYGdyZXBgIChvciBwb3NzaWJseSBqdXN0IGByZWFkLWZpbGVgIGFuZCBhIGdvb2Qgc2VhcmNoKSBhbmQgZGlnIGludG8gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9gIGRpcmVjdG9yeS4gSSB3YW50IHRvIHNlZSBob3cgYG10NzYwM2AgaXMgcHJvYmVkLCBob3cgaXQncyB1c2VkLCBhbmQgd2hhdCBkYXRhIHN0cnVjdHVyZXMgYXJlIGludm9sdmVkLiBUaGlzIHdpbGwgdGVsbCBtZSBpZiB0aGUgbmV3IGB3Y2lkYCBpbml0aWFsaXphdGlvbiB0b3VjaGVzIGFyZWFzIHRoYXQgaGF2ZSBoaWdoIGZ1enppbmcgcG90ZW50aWFsLiBJJ20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIHRoaW5ncyBsaWtlIGhhcmR3YXJlIHJlZ2lzdGVycywgY29tbWFuZCBxdWV1ZXMsIGFuZCBzaGFyZWQgbWVtb3J5IHJlZ2lvbnMgdGhhdCBjb3VsZCBiZSBhY2Nlc3NlZCBmcm9tIHVzZXIgc3BhY2UuIEtub3dpbmcgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIGRyaXZlcnMgZm9yIHRoZSBkZXZpY2Ugd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgd2hhdCdzIGluIHRoZSBkZXZpY2UncyBkcml2ZXIgYW5kIGhvdyBJIGNhbiB0YXJnZXQgaXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI5ODMsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjQsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToxMC4zMTAwMzE3ODhaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ0OTk0NjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10NzYwM1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2XCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMTgzNCBsaW5lcy5cXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXFxuXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9LY29uZmlnPTQ1PXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2eDIvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L0tjb25maWc6NDY6c291cmNlIFxcXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvS2NvbmZpZy00Ny1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjE1L0tjb25maWdcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L01ha2VmaWxlPTQ2PW9iai0kKENPTkZJR19NVDc2eDJfQ09NTU9OKSArPSBtdDc2eDIvXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9NYWtlZmlsZTo0NzpvYmotJChDT05GSUdfTVQ3NjAzRSkgKz0gbXQ3NjAzL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvTWFrZWZpbGUtNDgtb2JqLSQoQ09ORklHX01UNzYxNV9DT01NT04pICs9IG10NzYxNS9cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL01ha2VmaWxlLTEtIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlLUNsZWFyXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGU6MjpvYmotJChDT05GSUdfTVQ3NjAzRSkgKz0gbXQ3NjAzZS5vXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGUtMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9NYWtlZmlsZTo0Om10NzYwM2UteSA6PSBcXFxcXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvTWFrZWZpbGUtNS1cXHRwY2kubyBzb2MubyBtYWluLm8gaW5pdC5vIG1jdS5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MzojaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYz01PXN0cnVjdCBiZWFjb25fYmNfZGF0YSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6NjpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTctXFx0c3RydWN0IHNrX2J1ZmZfaGVhZCBxO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM9MTI9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMzptdDc2MDNfbWFjX3N0dWNrX2JlYWNvbl9yZWNvdmVyeShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTI5PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MzA6bXQ3NjAzX3VwZGF0ZV9iZWFjb25faXRlcih2b2lkICpwcml2LCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTMxLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzozMjpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gKHN0cnVjdCBtdDc2MDNfZGV2ICopcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0zMy1cXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjM0OlxcdHN0cnVjdCBtdDc2MDNfdmlmICptdmlmID0gKHN0cnVjdCBtdDc2MDNfdmlmICopdmlmLVxcdTAwM2VkcnZfcHJpdjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0zNS1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gTlVMTDtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jPTc4PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6Nzk6bXQ3NjAzX2FkZF9idWZmZXJlZF9iYyh2b2lkICpwcml2LCB1OCAqbWFjLCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTgwLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy04MS1cXHRzdHJ1Y3QgYmVhY29uX2JjX2RhdGEgKmRhdGEgPSBwcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjgyOlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkYXRhLVxcdTAwM2VkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6ODM6XFx0c3RydWN0IG10NzYwM192aWYgKm12aWYgPSAoc3RydWN0IG10NzYwM192aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTg0LVxcdHN0cnVjdCBpZWVlODAyMTFfdHhfaW5mbyAqaW5mbztcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEwMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMDM6dm9pZCBtdDc2MDNfcHJlX3RidHRfdGFza2xldChzdHJ1Y3QgdGFza2xldF9zdHJ1Y3QgKnQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTA0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxMDU6XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGZyb21fdGFza2xldChkZXYsIHQsIG10NzYucHJlX3RidHRfdGFza2xldCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTA2LVxcdHN0cnVjdCBtdDc2X2RldiAqbWRldiA9IFxcdTAwMjZkZXYtXFx1MDAzZW10NzY7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xMjctXFx0XFx0ZGV2LVxcdTAwM2ViZWFjb25fY2hlY2sgPSAwO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjEyODpcXHRtdDc2MDNfbWFjX3N0dWNrX2JlYWNvbl9yZWNvdmVyeShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEyOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEzMy1cXHRcXHRJRUVFODAyMTFfSUZBQ0VfSVRFUl9SRVNVTUVfQUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjEzNDpcXHRcXHRtdDc2MDNfdXBkYXRlX2JlYWNvbl9pdGVyLCBkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTEzNS1cXHRtdDc2X3F1ZXVlX2tpY2soZGV2LCBxKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE0Ni1cXHRcXHRcXHRJRUVFODAyMTFfSUZBQ0VfSVRFUl9SRVNVTUVfQUxMLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jOjE0NzpcXHRcXHRcXHRtdDc2MDNfYWRkX2J1ZmZlcmVkX2JjLCBcXHUwMDI2ZGF0YSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTQ4LVxcdH0gd2hpbGUgKG5mcmFtZXMgIT0gc2tiX3F1ZXVlX2xlbihcXHUwMDI2ZGF0YS5xKSBcXHUwMDI2XFx1MDAyNlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmMtMTY0LVxcdFxcdHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYgPSBpbmZvLVxcdTAwM2Vjb250cm9sLnZpZjtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxNjU6XFx0XFx0c3RydWN0IG10NzYwM192aWYgKm12aWYgPSAoc3RydWN0IG10NzYwM192aWYgKil2aWYtXFx1MDAzZWRydl9wcml2O1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE2Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE4MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxODI6dm9pZCBtdDc2MDNfYmVhY29uX3NldF90aW1lcihzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCBpbnQgaWR4LCBpbnQgaW50dmFsKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2JlYWNvbi5jLTE4My17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xOTMtXFx0aWYgKCFkZXYtXFx1MDAzZW10NzYuYmVhY29uX21hc2sgfHwgKCFpbnR2YWwgXFx1MDAyNlxcdTAwMjYgaWR4IFxcdTAwM2MgMCkpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYzoxOTQ6XFx0XFx0bXQ3NjAzX2lycV9kaXNhYmxlKGRldiwgTVRfSU5UX01BQ19JUlEzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0xOTUtXFx0XFx0bXQ3Nl9jbGVhcihkZXYsIE1UX0FSQl9TQ1IsIE1UX0FSQl9TQ1JfQkNOUV9PUE1PREVfTUFTSyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0yMjAtXFx0XFx0ICBNVF9XRl9BUkJfQkNOX1NUQVJUX0JTUzBuKDEpKSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvYmVhY29uLmM6MjIxOlxcdG10NzYwM19pcnFfZW5hYmxlKGRldiwgTVRfSU5UX01BQ19JUlEzKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9iZWFjb24uYy0yMjItXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6MzojaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTQtI2luY2x1ZGUgXFxcIi4uL3RyYWNlLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjY6dm9pZCBtdDc2MDNfcnhfcG9sbF9jb21wbGV0ZShzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIGVudW0gbXQ3Nl9yeHFfaWQgcSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNy17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjg6XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjEwOlxcdG10NzYwM19pcnFfZW5hYmxlKGRldiwgTVRfSU5UX1JYX0RPTkUocSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy0xMS19XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTEyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYzoxMzppcnFyZXR1cm5fdCBtdDc2MDNfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy0xNC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjE1OlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkZXZfaW5zdGFuY2U7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTE2LVxcdHUzMiBpbnRyO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTM5LVxcdGlmIChpbnRyIFxcdTAwMjYgTVRfSU5UX1RYX0RPTkVfQUxMKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjQwOlxcdFxcdG10NzYwM19pcnFfZGlzYWJsZShkZXYsIE1UX0lOVF9UWF9ET05FX0FMTCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTQxLVxcdFxcdG5hcGlfc2NoZWR1bGUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni50eF9uYXBpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy00NS1cXHRcXHRkZXYtXFx1MDAzZXJ4X3BzZV9jaGVjayA9IDA7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjQ2OlxcdFxcdG10NzYwM19pcnFfZGlzYWJsZShkZXYsIE1UX0lOVF9SWF9ET05FKDApKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNDctXFx0XFx0bmFwaV9zY2hlZHVsZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm5hcGlbMF0pO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jLTUxLVxcdFxcdGRldi1cXHUwMDNlcnhfcHNlX2NoZWNrID0gMDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmM6NTI6XFx0XFx0bXQ3NjAzX2lycV9kaXNhYmxlKGRldiwgTVRfSU5UX1JYX0RPTkUoMSkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2NvcmUuYy01My1cXHRcXHRuYXBpX3NjaGVkdWxlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYubmFwaVsxXSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvY29yZS5jOjU5OnUzMiBtdDc2MDNfcmVnX21hcChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1MzIgYWRkcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9jb3JlLmMtNjAte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjM6I2luY2x1ZGUgXFxcIm10NzYwMy5oXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy00LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYz01PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjptdDc2MDNfcmVzZXRfcmVhZChzdHJ1Y3Qgc2VxX2ZpbGUgKnMsIHZvaWQgKmRhdGEpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTcte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo4OlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEocy1cXHUwMDNlcHJpdmF0ZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTktXFx0c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByZXNldF9jYXVzZV9zdHJbXSA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYz0zMT1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjMyOm10NzYwM19yYWRpb19yZWFkKHN0cnVjdCBzZXFfZmlsZSAqcywgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMzMte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzozNDpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKHMtXFx1MDAzZXByaXZhdGUpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0zNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYz00Mz1zdGF0aWMgaW50XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjQ0Om10NzYwM19lZGNjYV9zZXQodm9pZCAqZGF0YSwgdTY0IHZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNDUte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo0NjpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNDctXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNTItXFx0XFx0XFx0ICBkZXYtXFx1MDAzZW10NzYucmVnaW9uID09IE5MODAyMTFfREZTX0VUU0k7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjUzOlxcdG10NzYwM19pbml0X2VkY2NhKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTU0LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jPTYwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6NjE6bXQ3NjAzX2VkY2NhX2dldCh2b2lkICpkYXRhLCB1NjQgKnZhbClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNjIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo2MzpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZGF0YTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNjQtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNjgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjY5OkRFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX2VkY2NhLCBtdDc2MDNfZWRjY2FfZ2V0LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo3MDpcXHRcXHRcXHQgbXQ3NjAzX2VkY2NhX3NldCwgXFxcIiVsbGRcXFxcblxcXCIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy03MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM9NzI9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo3MzptdDc2MDNfYW1wZHVfc3RhdF9zaG93KHN0cnVjdCBzZXFfZmlsZSAqZmlsZSwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNzQte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzo3NTpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gZmlsZS1cXHUwMDNlcHJpdmF0ZTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtNzYtXFx0aW50IGJvdW5kWzNdLCBpLCByYW5nZTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6OTQ6REVGSU5FX1NIT1dfQVRUUklCVVRFKG10NzYwM19hbXBkdV9zdGF0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtOTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jOjk2OnZvaWQgbXQ3NjAzX2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy05Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMTA0LVxcdGRlYnVnZnNfY3JlYXRlX2ZpbGUoXFxcImFtcGR1X3N0YXRcXFwiLCAwNDAwLCBkaXIsIGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MTA1OlxcdFxcdFxcdCAgICAgXFx1MDAyNm10NzYwM19hbXBkdV9zdGF0X2ZvcHMpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0xMDYtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJ4bWl0LXF1ZXVlc1xcXCIsIGRpcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYy0xMTAtXFx0ZGVidWdmc19jcmVhdGVfZGV2bV9zZXFmaWxlKGRldi1cXHUwMDNlbXQ3Ni5kZXYsIFxcXCJyZXNldFxcXCIsIGRpcixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmM6MTExOlxcdFxcdFxcdFxcdCAgICBtdDc2MDNfcmVzZXRfcmVhZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZGVidWdmcy5jLTExMi1cXHRkZWJ1Z2ZzX2NyZWF0ZV9kZXZtX3NlcWZpbGUoZGV2LVxcdTAwM2VtdDc2LmRldiwgXFxcInJhZGlvXFxcIiwgZGlyLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RlYnVnZnMuYzoxMTM6XFx0XFx0XFx0XFx0ICAgIG10NzYwM19yYWRpb19yZWFkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kZWJ1Z2ZzLmMtMTE0LVxcdGRlYnVnZnNfY3JlYXRlX3U4KFxcXCJzZW5zaXRpdml0eV9saW1pdFxcXCIsIDA2MDAsIGRpcixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MzojaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtNC0jaW5jbHVkZSBcXFwibWFjLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0xND1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjE1Om10NzYwM19yeF9sb29wYmFja19za2Ioc3RydWN0IG10NzYwM19kZXYgKmRldiwgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yOS1cXHRzdHJ1Y3QgaWVlZTgwMjExX3N0YSAqc3RhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjMwOlxcdHN0cnVjdCBtdDc2MDNfc3RhICptc3RhO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTMxLVxcdHN0cnVjdCBtdDc2X3djaWQgKndjaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy00OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzo1MDpcXHRwcml2ID0gbXN0YSA9IGNvbnRhaW5lcl9vZih3Y2lkLCBzdHJ1Y3QgbXQ3NjAzX3N0YSwgd2NpZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtNTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy05NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzo5NTp2b2lkIG10NzYwM19xdWV1ZV9yeF9za2Ioc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfcnhxX2lkIHEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtOTYtXFx0XFx0XFx0IHN0cnVjdCBza19idWZmICpza2IsIHUzMiAqaW5mbylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy05Ny17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6OTg6XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtOTktXFx0X19sZTMyICpyeGQgPSAoX19sZTMyICopc2tiLVxcdTAwM2VkYXRhO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTA4LVxcdFxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxMDk6XFx0XFx0XFx0bXQ3NjAzX3J4X2xvb3BiYWNrX3NrYihkZXYsIHNrYik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTEwLVxcdFxcdHJldHVybjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTExNS1cXHRcXHRmb3IgKHJ4ZCsrOyByeGQgKyA1IFxcdTAwM2M9IGVuZDsgcnhkICs9IDUpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTE2OlxcdFxcdFxcdG10NzYwM19tYWNfYWRkX3R4cyhkZXYsIHJ4ZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTE3LVxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTEyMi1cXHRjYXNlIFBLVF9UWVBFX05PUk1BTDpcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxMjM6XFx0XFx0aWYgKG10NzYwM19tYWNfZmlsbF9yeChkZXYsIHNrYikgPT0gMCkge1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTEyNC1cXHRcXHRcXHRtdDc2X3J4KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYsIHEsIHNrYik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYz0xMzQ9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjEzNTptdDc2MDNfaW5pdF9yeF9xdWV1ZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9xdWV1ZSAqcSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xMzYtXFx0XFx0ICAgICBpbnQgaWR4LCBpbnQgbl9kZXNjLCBpbnQgYnVmc2l6ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE0NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNDU6XFx0bXQ3NjAzX2lycV9lbmFibGUoZGV2LCBNVF9JTlRfUlhfRE9ORShpZHgpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNDYtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNDktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTUwOnN0YXRpYyBpbnQgbXQ3NjAzX3BvbGxfdHgoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBpbnQgYnVkZ2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE1MS17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MTUyOlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMTUzLVxcdGludCBpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE1NC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNTU6XFx0ZGV2ID0gY29udGFpbmVyX29mKG5hcGksIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2LnR4X25hcGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE1Ni1cXHRkZXYtXFx1MDAzZXR4X2RtYV9jaGVjayA9IDA7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xNjItXFx0aWYgKG5hcGlfY29tcGxldGVfZG9uZShuYXBpLCAwKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNjM6XFx0XFx0bXQ3NjAzX2lycV9lbmFibGUoZGV2LCBNVF9JTlRfVFhfRE9ORV9BTEwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE2OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNjk6XFx0bXQ3NjAzX21hY19zdGFfcG9sbChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE3MC1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE3NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxNzY6aW50IG10NzYwM19kbWFfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTE3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xODktXFx0bXQ3Nl93cihkZXYsIE1UX1dQRE1BX1JTVF9JRFgsIH4wKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoxOTA6XFx0bXQ3NjAzX3BzZV9jbGllbnRfcmVzZXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0xOTEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yMTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjIwOlxcdG10NzYwM19pcnFfZW5hYmxlKGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yMjEtXFx0XFx0XFx0ICBNVF9JTlRfVFhfRE9ORShJRUVFODAyMTFfQUNfVk8pIHxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTIyOS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyMzA6XFx0cmV0ID0gbXQ3NjAzX2luaXRfcnhfcXVldWUoZGV2LCBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2LnFfcnhbTVRfUlhRX01DVV0sIDEsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjMxLVxcdFxcdFxcdFxcdCAgIE1UNzYwM19NQ1VfUlhfUklOR19TSVpFLCBNVF9SWF9CVUZfU0laRSk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yMzQtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmM6MjM1OlxcdHJldCA9IG10NzYwM19pbml0X3J4X3F1ZXVlKGRldiwgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5xX3J4W01UX1JYUV9NQUlOXSwgMCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yMzYtXFx0XFx0XFx0XFx0ICAgTVQ3NjAzX1JYX1JJTkdfU0laRSwgTVRfUlhfQlVGX1NJWkUpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZG1hLmMtMjQ1LVxcdG5ldGlmX25hcGlfYWRkX3R4KGRldi1cXHUwMDNlbXQ3Ni50eF9uYXBpX2RldiwgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni50eF9uYXBpLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jOjI0NjpcXHRcXHRcXHQgIG10NzYwM19wb2xsX3R4KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNDctXFx0bmFwaV9lbmFibGUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni50eF9uYXBpKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2RtYS5jLTI1MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYzoyNTI6dm9pZCBtdDc2MDNfZG1hX2NsZWFudXAoc3RydWN0IG10NzYwM19kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9kbWEuYy0yNTMte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMy0jaW5jbHVkZSBcXHUwMDNjbGludXgvb2YuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo0OiNpbmNsdWRlIFxcXCJtdDc2MDMuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy01LSNpbmNsdWRlIFxcXCJlZXByb20uaFxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jPTc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjg6bXQ3NjAzX2VmdXNlX3JlYWQoc3RydWN0IG10NzYwM19kZXYgKmRldiwgdTMyIGJhc2UsIHUxNiBhZGRyLCB1OCAqZGF0YSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy05LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jPTQwPXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo0MTptdDc2MDNfZWZ1c2VfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTQyLXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo0MzpcXHR1MzIgYmFzZSA9IG10NzYwM19yZWdfbWFwKGRldiwgTVRfRUZVU0VfQkFTRSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtNDQtXFx0aW50IGxlbiA9IE1UNzYwM19FRVBST01fU0laRTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTU3LVxcdGZvciAoaSA9IDA7IGkgKyAxNiBcXHUwMDNjPSBsZW47IGkgKz0gMTYpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo1ODpcXHRcXHRyZXQgPSBtdDc2MDNfZWZ1c2VfcmVhZChkZXYsIGJhc2UsIGksIGJ1ZiArIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTU5LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYz02Nj1zdGF0aWMgYm9vbFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjY3Om10NzYwM19oYXNfY2FsX2ZyZWVfZGF0YShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1OCAqZWZ1c2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtNjgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM9OTA9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzo5MTptdDc2MDNfYXBwbHlfY2FsX2ZyZWVfZGF0YShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1OCAqZWZ1c2UpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtOTIte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTExLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjExMjpcXHRpZiAoIW10NzYwM19oYXNfY2FsX2ZyZWVfZGF0YShkZXYsIGVmdXNlKSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xMTMtXFx0XFx0cmV0dXJuO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM9MTI1PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzoxMjY6bXQ3NjAzX2VlcHJvbV9sb2FkKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTI3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTEzMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzoxMzQ6XFx0cmV0dXJuIG10NzYwM19lZnVzZV9pbml0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTM1LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xMzYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTM3OnN0YXRpYyBpbnQgbXQ3NjAzX2NoZWNrX2VlcHJvbShzdHJ1Y3QgbXQ3Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xMzgte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTUxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jOjE1MjpzdGF0aWMgaW5saW5lIGJvb2wgaXNfbXQ3Njg4KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmMtMTUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE1Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYzoxNTc6aW50IG10NzYwM19lZXByb21faW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE1OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xNjEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTYyOlxcdHJldCA9IG10NzYwM19lZXByb21fbG9hZChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE2My1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5jLTE2Ni1cXHRpZiAoZGV2LVxcdTAwM2VtdDc2Lm90cC5kYXRhKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTY3OlxcdFxcdGlmIChtdDc2MDNfY2hlY2tfZWVwcm9tKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpID09IDApXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmM6MTY4OlxcdFxcdFxcdG10NzYwM19hcHBseV9jYWxfZnJlZV9kYXRhKGRldiwgZGV2LVxcdTAwM2VtdDc2Lm90cC5kYXRhKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uYy0xNjktXFx0XFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtNS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaDo2OiNpbmNsdWRlIFxcXCJtdDc2MDMuaFxcXCJcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaC03LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2VlcHJvbS5oOjg6ZW51bSBtdDc2MDNfZWVwcm9tX2ZpZWxkIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9lZXByb20uaC05LVxcdE1UX0VFX0NISVBfSUQgPVxcdFxcdFxcdFxcdDB4MDAwLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtODEtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmg6ODI6ZW51bSBtdDc2MDNfZWVwcm9tX3NvdXJjZSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvZWVwcm9tLmgtODMtXFx0TVRfRUVfU1JDX1BST00sXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMy0jaW5jbHVkZSBcXHUwMDNjbGludXgvZXRoZXJkZXZpY2UuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDojaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTUtI2luY2x1ZGUgXFxcIm1hYy5oXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjg6Y29uc3Qgc3RydWN0IG10NzZfZHJpdmVyX29wcyBtdDc2MDNfZHJ2X29wcyA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOS1cXHQudHh3aV9zaXplID0gTVRfVFhEX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTEtXFx0LnN1cnZleV9mbGFncyA9IFNVUlZFWV9JTkZPX1RJTUVfVFgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjEyOlxcdC50eF9wcmVwYXJlX3NrYiA9IG10NzYwM190eF9wcmVwYXJlX3NrYixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTM6XFx0LnR4X2NvbXBsZXRlX3NrYiA9IG10NzYwM190eF9jb21wbGV0ZV9za2IsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE0OlxcdC5yeF9za2IgPSBtdDc2MDNfcXVldWVfcnhfc2tiLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxNTpcXHQucnhfcG9sbF9jb21wbGV0ZSA9IG10NzYwM19yeF9wb2xsX2NvbXBsZXRlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxNjpcXHQuc3RhX3BzID0gbXQ3NjAzX3N0YV9wcyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTc6XFx0LnN0YV9hZGQgPSBtdDc2MDNfc3RhX2FkZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTg6XFx0LnN0YV9ldmVudCA9IG10NzYwM19zdGFfZXZlbnQsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjE5OlxcdC5zdGFfcmVtb3ZlID0gbXQ3NjAzX3N0YV9yZW1vdmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIwOlxcdC51cGRhdGVfc3VydmV5ID0gbXQ3NjAzX3VwZGF0ZV9jaGFubmVsLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoyMTpcXHQuc2V0X2NoYW5uZWwgPSBtdDc2MDNfc2V0X2NoYW5uZWwsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIyLX07XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9MjQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MjU6bXQ3NjAzX3NldF90bWFjX3RlbXBsYXRlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzQ6XFx0YWRkciA9IG10NzYwM19yZWdfbWFwKGRldiwgTVRfQ0xJRU5UX0JBU0VfUEhZU19BRERSKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzUtXFx0YWRkciArPSBNVF9DTElFTlRfVE1BQ19JTkZPX1RFTVBMQVRFO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTQwPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQxOm10NzYwM19kbWFfc2NoZWRfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00Mi17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjg5OlxcdGlmIChpc19tdDc2MDMoZGV2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOTAtXFx0XFx0cmVzZXJ2ZWRfY291bnQgPSAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTkzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo5NDpcXHRpZiAoaXNfbXQ3NjAzKGRldikgXFx1MDAyNlxcdTAwMjYgbXQ3Nnh4X3JldihkZXYpIFxcdTAwM2U9IE1UNzYwM19SRVZfRTIpIHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtOTUtXFx0XFx0bXQ3Nl93cihkZXYsIE1UX0dST1VQX1RIUkVTSCgwKSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz0xMTQ9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTE1Om10NzYwM19waHlfaW5pdChzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0xMTYte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTEzMz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxMzQ6bXQ3NjAzX21hY19pbml0KHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTEzNS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTk0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoxOTU6XFx0bXQ3NjAzX3NldF90bWFjX3RlbXBsYXRlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTE5Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMTk3LVxcdC8qIEVuYWJsZSBSWCBncm91cCB0byBISUYgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MTk4OlxcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0NMSUVOVF9CQVNFX1BIWVNfQUREUik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTE5OS1cXHRtdDc2X3NldChkZXYsIGFkZHIgKyBNVF9DTElFTlRfUlhJTkYsIE1UX0NMSUVOVF9SWElORl9SWFNIX0dST1VQUyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjI4LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBNVDc2MDNfV1RCTF9TSVpFOyBpKyspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIyOTpcXHRcXHRtdDc2MDNfd3RibF9jbGVhcihkZXYsIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yMzAtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTIzMS1cXHRldGhfYnJvYWRjYXN0X2FkZHIoYmNfYWRkcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjIzMjpcXHRtdDc2MDNfd3RibF9pbml0KGRldiwgTVQ3NjAzX1dUQkxfUkVTRVJWRUQsIC0xLCBiY19hZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjMzLVxcdG10NzZfd2NpZF9pbml0KFxcdTAwMjZkZXYtXFx1MDAzZWdsb2JhbF9zdGEud2NpZCwgMCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9Mjc4PXN0YXRpYyBpbnRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mjc5Om10NzYwM19pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI4MC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjg0LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzoyODU6XFx0cmV0ID0gbXQ3NjAzX2VlcHJvbV9pbml0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI4Ni1cXHRpZiAocmV0IFxcdTAwM2MgMClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0yODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjI4OTpcXHRyZXQgPSBtdDc2MDNfZG1hX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjkwLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMjkzLVxcdG10NzZfd3IoZGV2LCBNVF9XUERNQV9HTE9fQ0ZHLCAweDUyMDAwODUwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mjk0OlxcdG10NzYwM19tYWNfZG1hX3N0YXJ0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTI5NS1cXHRkZXYtXFx1MDAzZXJ4ZmlsdGVyID0gbXQ3Nl9ycihkZXYsIE1UX1dGX1JGQ1IpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTMwMy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzA0OlxcdHJldCA9IG10NzYwM19tY3VfaW5pdChkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMDUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zMDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMwODpcXHRtdDc2MDNfZG1hX3NjaGVkX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzA5OlxcdG10NzYwM19tY3Vfc2V0X2VlcHJvbShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozMTA6XFx0bXQ3NjAzX3BoeV9pbml0KGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjMxMTpcXHRtdDc2MDNfbWFjX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzEyLVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jPTMzMj1zdGF0aWMgY29uc3Qgc3RydWN0IGllZWU4MDIxMV9pZmFjZV9jb21iaW5hdGlvbiBpZl9jb21iW10gPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzQxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNDI6c3RhdGljIHZvaWQgbXQ3NjAzX2xlZF9zZXRfY29uZmlnKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSwgdTggZGVsYXlfb24sXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM0My1cXHRcXHRcXHRcXHQgIHU4IGRlbGF5X29mZilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzQ0LXtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzQ1OlxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYgPSBjb250YWluZXJfb2YobXBoeS1cXHUwMDNlZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzQ2LVxcdFxcdFxcdFxcdFxcdCAgICAgIG10NzYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM1Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzUzOlxcdGFkZHIgPSBtdDc2MDNfcmVnX21hcChkZXYsIE1UX0xFRF9TVEFUVVNfMChtcGh5LVxcdTAwM2VsZWRzLnBpbikpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNTQtXFx0bXQ3Nl93cihkZXYsIGFkZHIsIHZhbCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM1NTpcXHRhZGRyID0gbXQ3NjAzX3JlZ19tYXAoZGV2LCBNVF9MRURfU1RBVFVTXzEobXBoeS1cXHUwMDNlbGVkcy5waW4pKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzU2LVxcdG10NzZfd3IoZGV2LCBhZGRyLCB2YWwpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM2MS1cXHRcXHR2YWwgfD0gTVRfTEVEX0NUUkxfUE9MQVJJVFkobXBoeS1cXHUwMDNlbGVkcy5waW4pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNjI6XFx0YWRkciA9IG10NzYwM19yZWdfbWFwKGRldiwgTVRfTEVEX0NUUkwpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zNjMtXFx0bXQ3Nl93cihkZXYsIGFkZHIsIHZhbCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzY1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozNjY6c3RhdGljIGludCBtdDc2MDNfbGVkX3NldF9ibGluayhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2RldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzY3LVxcdFxcdFxcdFxcdHVuc2lnbmVkIGxvbmcgKmRlbGF5X29uLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM3Ni1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mzc3OlxcdG10NzYwM19sZWRfc2V0X2NvbmZpZyhtcGh5LCBkZWx0YV9vbiwgZGVsdGFfb2ZmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzc4LVxcdHJldHVybiAwO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM4MC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzgxOnN0YXRpYyB2b2lkIG10NzYwM19sZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTM4Mi1cXHRcXHRcXHRcXHQgICAgICBlbnVtIGxlZF9icmlnaHRuZXNzIGJyaWdodG5lc3MpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzg3LVxcdGlmICghYnJpZ2h0bmVzcylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6Mzg4OlxcdFxcdG10NzYwM19sZWRfc2V0X2NvbmZpZyhtcGh5LCAwLCAweGZmKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzg5LVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6MzkwOlxcdFxcdG10NzYwM19sZWRfc2V0X2NvbmZpZyhtcGh5LCAweGZmLCAwKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzkxLX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzkyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzozOTM6c3RhdGljIHUzMiBfX210NzYwM19yZWdfYWRkcihzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2LCB1MzIgYWRkcilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzk0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy0zOTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjM5ODpcXHRyZXR1cm4gbXQ3NjAzX3JlZ19tYXAoZGV2LCBhZGRyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtMzk5LX1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDAwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MDE6c3RhdGljIHUzMiBtdDc2MDNfcnIoc3RydWN0IG10NzZfZGV2ICptZGV2LCB1MzIgb2Zmc2V0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MDIte1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MDM6XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQwNDpcXHR1MzIgYWRkciA9IF9fbXQ3NjAzX3JlZ19hZGRyKGRldiwgb2Zmc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDA1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQwOC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDA5OnN0YXRpYyB2b2lkIG10NzYwM193cihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHUzMiBvZmZzZXQsIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQxMC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQxMTpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDEyOlxcdHUzMiBhZGRyID0gX19tdDc2MDNfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MTMtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDE2LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0MTc6c3RhdGljIHUzMiBtdDc2MDNfcm13KHN0cnVjdCBtdDc2X2RldiAqbWRldiwgdTMyIG9mZnNldCwgdTMyIG1hc2ssIHUzMiB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQxOC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQxOTpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM6NDIwOlxcdHUzMiBhZGRyID0gX19tdDc2MDNfcmVnX2FkZHIoZGV2LCBvZmZzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MjEtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9NDI1PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQyNjptdDc2MDNfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00MjctXFx0XFx0ICAgICBzdHJ1Y3QgcmVndWxhdG9yeV9yZXF1ZXN0ICpyZXF1ZXN0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQyOS1cXHRzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyA9IHdpcGh5X3RvX2llZWU4MDIxMV9odyh3aXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQzMDpcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gaHctXFx1MDAzZXByaXY7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQzMS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYz00Mzc9c3RhdGljIGludFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0Mzg6bXQ3NjAzX3R4cG93ZXJfc2lnbmVkKGludCB2YWwpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQzOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmM9NDUyPXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQ1MzptdDc2MDNfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc2MDNfZGV2ICpkZXYsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jLTQ1NC1cXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9zdXBwb3J0ZWRfYmFuZCAqc2JhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDY1LVxcdGV4dF9wYV9wd3IgPSBlZXByb21bTVRfRUVfVFhfUE9XRVJfVFNTSV9PRkZdO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYzo0NjY6XFx0aWYgKGV4dF9wYSBcXHUwMDI2XFx1MDAyNiBpc19tdDc2MDMoZGV2KSBcXHUwMDI2XFx1MDAyNiBleHRfcGFfcHdyICE9IDAgXFx1MDAyNlxcdTAwMjYgZXh0X3BhX3B3ciAhPSAweGZmKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00NjctXFx0XFx0dGFyZ2V0X3Bvd2VyID0gZXh0X3BhX3B3ciBcXHUwMDI2IH5CSVQoNyk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmMtNDczLVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyAxNDsgaSsrKSB7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQ3NDpcXHRcXHRjdXJfb2Zmc2V0ID0gbXQ3NjAzX3R4cG93ZXJfc2lnbmVkKHJhdGVfcG93ZXJbaV0pO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00NzUtXFx0XFx0bWF4X29mZnNldCA9IG1heChtYXhfb2Zmc2V0LCBjdXJfb2Zmc2V0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2luaXQuYy00OTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvaW5pdC5jOjQ5NjppbnQgbXQ3NjAzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2KVxcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToxMC41NTUwMzExODhaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjozMDIwODgyNTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgTVQ3NjAzIEJ1cyBTdXBwb3J0IGFuZCBEZXZpY2UgUHJvYmluZyoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byBkaWcgaW50byBob3cgdGhlIE1UNzYwMyBjaGlwc2V0IGhhbmRsZXMgZGlmZmVyZW50IGJ1c2VzIGFuZCwgc3BlY2lmaWNhbGx5LCBob3cgdGhlIGRldmljZXMgcHJvYmUgYW5kIGluaXRpYWxpemUuIEkga25vdyB0aGlzIGNoaXBzZXQgZmFpcmx5IHdlbGwsIGJ1dCBhIHF1aWNrIHJlZnJlc2ggaXMgYWx3YXlzIGdvb2QgYmVmb3JlIEkgZGl2ZSBkZWVwZXIuIE15IGZpcnN0IHN0ZXAgaXMgdG8gZm9jdXMgb24gdGhlIGtlcm5lbCBzb3VyY2UgY29kZS4gSSBzaG91bGQgcHJvYmFibHkgc3RhcnQgd2l0aCB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL2AgZGlyZWN0b3J5LlxuXG5JJ2xsIGJlIGxvb2tpbmcgY2xvc2VseSBhdCB0aGUgYHBjaS5jYCwgYHNvYy5jYCBmaWxlcywgYW5kIHRoZSBgS2NvbmZpZ2AgZmlsZXMg4oCTIHRoZXkgc2hvdWxkIGdpdmUgbWUgYSBnb29kIG92ZXJ2aWV3IG9mIHRoZSBzdXBwb3J0ZWQgYnVzIHR5cGVzIGFuZCB0aGUgcmVsZXZhbnQgZGV2aWNlIHByb2Jpbmcgc2VxdWVuY2VzLiBJJ20gZXhwZWN0aW5nIGBwY2kuY2AgdG8gaGFuZGxlIHRoZSBQQ0ktc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24sIGJ1dCBJJ2xsIGFsc28gYmUgd2F0Y2hpbmcgdG8gc2VlIGhvdyB0aGUgY29kZSBpcyBzdHJ1Y3R1cmVkIGluIHRoZSBTT0MgY2FzZSBpbiBgc29jLmNgIGFuZCBob3cgdGhlIGRyaXZlciBpcyBjb25maWd1cmVkIGluIGBLY29uZmlnYC4gVGhpcyB3aWxsIHByb3ZpZGUgYSBnb29kIHBpY3R1cmUgb2YgdGhlIGRpZmZlcmVudCBoYXJkd2FyZSBlbnZpcm9ubWVudHMgdGhhdCB0aGUgbXQ3NjAzIGRyaXZlciBzdXBwb3J0cyBhbmQgaG93IHRoZSBkZXZpY2VzIGRpc2NvdmVyIGFuZCBjb25maWd1cmUgdGhlbXNlbHZlcyB3aXRoaW4gdGhvc2UgYnVzIGFyY2hpdGVjdHVyZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTAyLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MTMuNTc1OTE1NTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTAzMDk2MzQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV9cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jPTgwOT1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3NjAzX2V4aXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uYy04MTYtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjgxNzptb2R1bGVfaW5pdChtdDc2MDNfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvbWFpbi5jOjgxODptb2R1bGVfZXhpdChtdDc2MDNfZXhpdCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjEzLjY3OTAxNjIwNloiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjMwMjgyMjc1OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgdGhlc2UgdGhvdWdodHM6XG5cbioqQW5hbHl6aW5nIHRoZSBNVDc2MDMgV2lyZWxlc3MgRHJpdmVyIEltcGxlbWVudGF0aW9uKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpZyBpbnRvIHRoaXMgTVQ3NjAzIGRyaXZlci4gSSdtIGdvaW5nIHRvIHN0YXJ0IGJ5IHRha2luZyBhIGxvb2sgYXQgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL21haW4uY2AgYXJvdW5kIGxpbmUgODAwLiBUaGF0IHNob3VsZCBnaXZlIG1lIGEgZ29vZCBlbnRyeSBwb2ludCBpbnRvIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIG1vZHVsZSwgYW5kIGhvcGVmdWxseSwgSSBjYW4gZ2V0IGEgaGFuZGxlIG9uIHdoYXQncyBnb2luZyBvbiB3aXRoIHRoZSBNVDc2MDMgaGVyZS4gSSdsbCBuZWVkIHRvIGNvcnJlbGF0ZSB0aGUgcmVnaXN0ZXIgbWFwcyBhbmQgZmlybXdhcmUgaW50ZXJmYWNlIHdpdGggdGhlIG1haW4gbG9vcCBhbmQgYXNzb2NpYXRlZCBzdHJ1Y3R1cmVzLlxuXG5BZnRlciB0aGF0LCBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIFBDSSBpbXBsZW1lbnRhdGlvbiBpbiBgcGNpLmNgLCBhbmQgdGhlIFNPQyBpbXBsZW1lbnRhdGlvbiBpbiBgc29jLmNgIHRvIHNlZSBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHN5c3RlbS4gVGhpcyB3aWxsIGRlcGVuZCBvbiB0aGUgbWFjaGluZSBpdCBydW5zIG9uLCBzbyBJJ2xsIG5lZWQgdG8gc2VlIGhvdyB0aGUgY29kZSBoYW5kbGVzIGRpZmZlcmVudCBjb25maWd1cmF0aW9ucy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIG1vZHVsZXMgaW50ZWdyYXRlIGFuZCBkaWZmZXIgZnJvbSBlYWNoIG90aGVyLiBJJ2xsIG5lZWQgdG8gaWRlbnRpZnkgcG90ZW50aWFsIGJvdHRsZW5lY2tzIG9yIGFyZWFzIG9mIGluZWZmaWNpZW5jeS4gTGV0J3MgZ2V0IGNyYWNraW5nLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDQxMSwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjE2LjcwNzI0NzA4OFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NzYwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogNzkwLFxuICBcIkxpbmVDb3VudFwiOiA0MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgNzkwOlxcdE1PRFVMRV9ERVNDUklQVElPTihcXFwiTWVkaWFUZWsgTVQ3NjAzRSBhbmQgTVQ3Nng4IHdpcmVsZXNzIGRyaXZlclxcXCIpO1xcbiA3OTE6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkR1YWwgQlNEL0dQTFxcXCIpO1xcbiA3OTI6XFx0XFxuIDc5MzpcXHRzdGF0aWMgaW50IF9faW5pdCBtdDc2MDNfaW5pdCh2b2lkKVxcbiA3OTQ6XFx0e1xcbiA3OTU6XFx0XFx0aW50IHJldDtcXG4gNzk2OlxcdFxcbiA3OTc6XFx0XFx0cmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKFxcdTAwMjZtdDc2X3dtYWNfZHJpdmVyKTtcXG4gNzk4OlxcdFxcdGlmIChyZXQpXFxuIDc5OTpcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiA4MDA6XFx0XFxuIDgwMTpcXHQjaWZkZWYgQ09ORklHX1BDSVxcbiA4MDI6XFx0XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3NjAzX3BjaV9kcml2ZXIpO1xcbiA4MDM6XFx0XFx0aWYgKHJldClcXG4gODA0OlxcdFxcdFxcdHBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKFxcdTAwMjZtdDc2X3dtYWNfZHJpdmVyKTtcXG4gODA1OlxcdCNlbmRpZlxcbiA4MDY6XFx0XFx0cmV0dXJuIHJldDtcXG4gODA3OlxcdH1cXG4gODA4OlxcdFxcbiA4MDk6XFx0c3RhdGljIHZvaWQgX19leGl0IG10NzYwM19leGl0KHZvaWQpXFxuIDgxMDpcXHR7XFxuIDgxMTpcXHQjaWZkZWYgQ09ORklHX1BDSVxcbiA4MTI6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc2MDNfcGNpX2RyaXZlcik7XFxuIDgxMzpcXHQjZW5kaWZcXG4gODE0OlxcdFxcdHBsYXRmb3JtX2RyaXZlcl91bnJlZ2lzdGVyKFxcdTAwMjZtdDc2X3dtYWNfZHJpdmVyKTtcXG4gODE1OlxcdH1cXG4gODE2OlxcdFxcbiA4MTc6XFx0bW9kdWxlX2luaXQobXQ3NjAzX2luaXQpO1xcbiA4MTg6XFx0bW9kdWxlX2V4aXQobXQ3NjAzX2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToxNi43MDczOTc0MjhaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxNjY4MjQzNzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IGltbWVkaWF0ZSB0cmFpbiBvZiB0aG91Z2h0OlxuXG4qKkNoZWNraW5nIEtleSBGaWxlcyBmb3IgQ29udGV4dCBhbmQgVW5kZXJzdGFuZGluZyoqXG5cbkFscmlnaHQsIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAgaW50byB0aGlzLCBJIG5lZWQgdG8gZ2V0IGEgbGF5IG9mIHRoZSBsYW5kLiBNeSBpbml0aWFsIGFwcHJvYWNoIGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSB1c3VhbCBzdXNwZWN0czogYHBjaS5jYCwgYHNvYy5jYCwgYW5kIHRoZSBgS2NvbmZpZ2AgZmlsZXMuIEknbSBhc3N1bWluZyB0aGF0J3Mgd2hlcmUgSSdsbCBmaW5kIGEgZm91bmRhdGlvbmFsIHVuZGVyc3RhbmRpbmcgb2YgdGhlIFBDSSBpbnRlcmFjdGlvbiwgdGhlIFN5c3RlbS1vbi1DaGlwIChTb0MpIHNwZWNpZmljcyB0aGF0IGFyZSByZWxldmFudCwgYW5kIHRoZSBvdmVyYWxsIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBnb3Zlcm5pbmcgdGhpcyBtb2R1bGUgb3Igc3lzdGVtLiBHcmFiYmluZyB0aGUgbG93LWhhbmdpbmcgZnJ1aXQgZWFybHkgaGVscHMgdG8gYXZvaWQgd2FzdGVkIHRpbWUuIFRoaXMgYXBwcm9hY2ggYWxsb3dzIG1lIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBjb3JlIGNvbXBvbmVudHMgYW5kIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBiZWZvcmUgZ2V0dGluZyBib2dnZWQgZG93biBpbiBtb3JlIGludHJpY2F0ZSBkZXRhaWxzIG9yIHBvdGVudGlhbCByYWJiaXQgaG9sZXMuIEkgY2FuIHRoZW4gdXNlIHRoaXMga25vd2xlZGdlIHRvIGVzdGFibGlzaCBhIGJldHRlciBtZW50YWwgbW9kZWwgb2YgdGhlIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjExNzAsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjE4LjM3NTY0Mjg5N1oiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5MjAwMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9wY2kuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdFxcbiAgIDM6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAgIDQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbiAgIDU6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BjaS5oXFx1MDAzZVxcbiAgIDY6XFx0XFxuICAgNzpcXHQjaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuICAgODpcXHRcXG4gICA5OlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc2cGNpX2RldmljZV90YWJsZVtdID0ge1xcbiAgMTA6XFx0XFx0eyBQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfTUVESUFURUssIDB4NzYwMykgfSxcXG4gIDExOlxcdFxcdHsgfSxcXG4gIDEyOlxcdH07XFxuICAxMzpcXHRcXG4gIDE0OlxcdHN0YXRpYyBpbnRcXG4gIDE1OlxcdG10NzZwY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4gIDE2OlxcdHtcXG4gIDE3OlxcdFxcdHN0cnVjdCBtdDc2MDNfZGV2ICpkZXY7XFxuICAxODpcXHRcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXY7XFxuICAxOTpcXHRcXHRpbnQgcmV0O1xcbiAgMjA6XFx0XFxuICAyMTpcXHRcXHRyZXQgPSBwY2ltX2VuYWJsZV9kZXZpY2UocGRldik7XFxuICAyMjpcXHRcXHRpZiAocmV0KVxcbiAgMjM6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gIDI0OlxcdFxcbiAgMjU6XFx0XFx0cmV0ID0gcGNpbV9pb21hcF9yZWdpb25zKHBkZXYsIEJJVCgwKSwgcGNpX25hbWUocGRldikpO1xcbiAgMjY6XFx0XFx0aWYgKHJldClcXG4gIDI3OlxcdFxcdFxcdHJldHVybiByZXQ7XFxuICAyODpcXHRcXG4gIDI5OlxcdFxcdHBjaV9zZXRfbWFzdGVyKHBkZXYpO1xcbiAgMzA6XFx0XFxuICAzMTpcXHRcXHRyZXQgPSBkbWFfc2V0X21hc2soXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgRE1BX0JJVF9NQVNLKDMyKSk7XFxuICAzMjpcXHRcXHRpZiAocmV0KVxcbiAgMzM6XFx0XFx0XFx0cmV0dXJuIHJldDtcXG4gIDM0OlxcdFxcbiAgMzU6XFx0XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzYwM19vcHMsXFxuICAzNjpcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm10NzYwM19kcnZfb3BzKTtcXG4gIDM3OlxcdFxcdGlmICghbWRldilcXG4gIDM4OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiAgMzk6XFx0XFxuICA0MDpcXHRcXHRkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xcbiAgNDE6XFx0XFx0bXQ3Nl9tbWlvX2luaXQobWRldiwgcGNpbV9pb21hcF90YWJsZShwZGV2KVswXSk7XFxuICA0MjpcXHRcXG4gIDQzOlxcdFxcdG1kZXYtXFx1MDAzZXJldiA9IChtdDc2X3JyKGRldiwgTVRfSFdfQ0hJUElEKSBcXHUwMDNjXFx1MDAzYyAxNikgfFxcbiAgNDQ6XFx0XFx0XFx0ICAgIChtdDc2X3JyKGRldiwgTVRfSFdfUkVWKSBcXHUwMDI2IDB4ZmYpO1xcbiAgNDU6XFx0XFx0ZGV2X2luZm8obWRldi1cXHUwMDNlZGV2LCBcXFwiQVNJQyByZXZpc2lvbjogJTA0eFxcXFxuXFxcIiwgbWRldi1cXHUwMDNlcmV2KTtcXG4gIDQ2OlxcdFxcbiAgNDc6XFx0XFx0bXQ3Nl93cihkZXYsIE1UX0lOVF9NQVNLX0NTUiwgMCk7XFxuICA0ODpcXHRcXG4gIDQ5OlxcdFxcdHJldCA9IGRldm1fcmVxdWVzdF9pcnEobWRldi1cXHUwMDNlZGV2LCBwZGV2LVxcdTAwM2VpcnEsIG10NzYwM19pcnFfaGFuZGxlcixcXG4gIDUwOlxcdFxcdFxcdFxcdCAgICAgICBJUlFGX1NIQVJFRCwgS0JVSUxEX01PRE5BTUUsIGRldik7XFxuICA1MTpcXHRcXHRpZiAocmV0KVxcbiAgNTI6XFx0XFx0XFx0Z290byBlcnJvcjtcXG4gIDUzOlxcdFxcbiAgNTQ6XFx0XFx0cmV0ID0gbXQ3NjAzX3JlZ2lzdGVyX2RldmljZShkZXYpO1xcbiAgNTU6XFx0XFx0aWYgKHJldClcXG4gIDU2OlxcdFxcdFxcdGdvdG8gZXJyb3I7XFxuICA1NzpcXHRcXG4gIDU4OlxcdFxcdHJldHVybiAwO1xcbiAgNTk6XFx0ZXJyb3I6XFxuICA2MDpcXHRcXHRtdDc2X2ZyZWVfZGV2aWNlKFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpO1xcbiAgNjE6XFx0XFxuICA2MjpcXHRcXHRyZXR1cm4gcmV0O1xcbiAgNjM6XFx0fVxcbiAgNjQ6XFx0XFxuICA2NTpcXHRzdGF0aWMgdm9pZFxcbiAgNjY6XFx0bXQ3NnBjaV9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXFxuICA2NzpcXHR7XFxuICA2ODpcXHRcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYgPSBwY2lfZ2V0X2RydmRhdGEocGRldik7XFxuICA2OTpcXHRcXHRzdHJ1Y3QgbXQ3NjAzX2RldiAqZGV2ID0gY29udGFpbmVyX29mKG1kZXYsIHN0cnVjdCBtdDc2MDNfZGV2LCBtdDc2KTtcXG4gIDcwOlxcdFxcbiAgNzE6XFx0XFx0bXQ3NjAzX3VucmVnaXN0ZXJfZGV2aWNlKGRldik7XFxuICA3MjpcXHR9XFxuICA3MzpcXHRcXG4gIDc0OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc2cGNpX2RldmljZV90YWJsZSk7XFxuICA3NTpcXHRNT0RVTEVfRklSTVdBUkUoTVQ3NjAzX0ZJUk1XQVJFX0UxKTtcXG4gIDc2OlxcdE1PRFVMRV9GSVJNV0FSRShNVDc2MDNfRklSTVdBUkVfRTIpO1xcbiAgNzc6XFx0XFxuICA3ODpcXHRzdHJ1Y3QgcGNpX2RyaXZlciBtdDc2MDNfcGNpX2RyaXZlciA9IHtcXG4gIDc5OlxcdFxcdC5uYW1lXFx0XFx0PSBLQlVJTERfTU9ETkFNRSxcXG4gIDgwOlxcdFxcdC5pZF90YWJsZVxcdD0gbXQ3NnBjaV9kZXZpY2VfdGFibGUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjE4LjM3NTczNzY4N1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMjkwODIxNjQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byBgc29jLmNgKipcblxuQWxyaWdodCwgc28gd2UncmUgYXQgYSBwb2ludCB3aGVyZSB3ZSBuZWVkIHRvIGJlIHRob3JvdWdoLiBJJ3ZlIGJlZW4gZm9jdXNpbmcgb24gW2ltcGxpZWQgcHJlY2VkaW5nIGNvbnRleHQgdGhlIHVzZXIgd291bGQgdW5kZXJzdGFuZCBiYXNlZCBvbiBcIkxldCdzIGFsc28gY2hlY2sgc29jLmNcIl0sIGJ1dCBhIGNydWNpYWwgbmV4dCBzdGVwLCBjb25zaWRlcmluZyB0aGUgc2NvcGUgb2Ygd2hhdCB3ZSdyZSB0YWNrbGluZywgaXMgdG8gZ2l2ZSBgc29jLmNgIGEgY2xvc2UgbG9vay4gSXQncyBwcm9iYWJseSB0aGUgbGluY2hwaW4gaW4gW2ltcGxpZWQgcmVsYXRpb25zaGlwIHRvIHRoZSB1c2VyJ3MgZmllbGQgYW5kIGNvbnRleHRdIHRoYXQgdG91Y2hlcyBvbiBbc3BlY2lmaWMgYXNwZWN0IHRoZSB1c2VyIHdvdWxkIHVuZGVyc3RhbmQgYmFzZWQgb24gXCJzb2MuY1wiXS4gSSB3YW50IHRvIG1ha2Ugc3VyZSB3ZSBoYXZlbid0IG92ZXJsb29rZWQgYW55IGludGVncmF0aW9uIHBvaW50cyBvciBkZXBlbmRlbmNpZXMgd2l0aCB3aGF0IHdlJ3ZlIGFscmVhZHkgZXhhbWluZWQuIFRoaXMgaXMgYWJvdXQgZW5zdXJpbmcgY29tcGxldGUgY292ZXJhZ2UuIFRoZXJlIG1pZ2h0IGJlIHNvbWUgc3VidGxlIGludGVyYWN0aW9ucyBoZXJlIHRoYXQsIGlmIG1pc3NlZCwgd291bGQgbGVhZCB0byByZWFsIGhlYWRhY2hlcyBkb3duIHRoZSBsaW5lLiBJIGFtIHRoaW5raW5nIHBhcnRpY3VsYXJseSBhYm91dCBbc3BlY2lmaWMgcG90ZW50aWFsIGlzc3VlcyB0aGUgdXNlciBtYXkgY29uc2lkZXIsIGJhc2VkIG9uIFwic29jLmNcIiB3aXRoaW4gdGhlIGNvbnRleHRdIGFuZCBtYWtpbmcgc3VyZSB0aGUgaW1wbGljYXRpb25zIG9mIFtsaWtlbHkgYXJlYSBvZiBjb2RlXSBoYXZlIGJlZW4gdGhvcm91Z2hseSB2ZXR0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNjI1LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToyMC42NjY1NjEyN1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2ODU5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9zb2MuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA4MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdFxcbiAgIDM6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2tlcm5lbC5oXFx1MDAzZVxcbiAgIDQ6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L21vZHVsZS5oXFx1MDAzZVxcbiAgIDU6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BsYXRmb3JtX2RldmljZS5oXFx1MDAzZVxcbiAgIDY6XFx0XFxuICAgNzpcXHQjaW5jbHVkZSBcXFwibXQ3NjAzLmhcXFwiXFxuICAgODpcXHRcXG4gICA5OlxcdHN0YXRpYyBpbnRcXG4gIDEwOlxcdG10NzZfd21hY19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbiAgMTE6XFx0e1xcbiAgMTI6XFx0XFx0c3RydWN0IG10NzYwM19kZXYgKmRldjtcXG4gIDEzOlxcdFxcdHZvaWQgX19pb21lbSAqbWVtX2Jhc2U7XFxuICAxNDpcXHRcXHRzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXY7XFxuICAxNTpcXHRcXHRpbnQgaXJxO1xcbiAgMTY6XFx0XFx0aW50IHJldDtcXG4gIDE3OlxcdFxcbiAgMTg6XFx0XFx0aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTtcXG4gIDE5OlxcdFxcdGlmIChpcnEgXFx1MDAzYyAwKVxcbiAgMjA6XFx0XFx0XFx0cmV0dXJuIGlycTtcXG4gIDIxOlxcdFxcbiAgMjI6XFx0XFx0bWVtX2Jhc2UgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XFxuICAyMzpcXHRcXHRpZiAoSVNfRVJSKG1lbV9iYXNlKSlcXG4gIDI0OlxcdFxcdFxcdHJldHVybiBQVFJfRVJSKG1lbV9iYXNlKTtcXG4gIDI1OlxcdFxcbiAgMjY6XFx0XFx0bWRldiA9IG10NzZfYWxsb2NfZGV2aWNlKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIHNpemVvZigqZGV2KSwgXFx1MDAyNm10NzYwM19vcHMsXFxuICAyNzpcXHRcXHRcXHRcXHRcXHQgXFx1MDAyNm10NzYwM19kcnZfb3BzKTtcXG4gIDI4OlxcdFxcdGlmICghbWRldilcXG4gIDI5OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiAgMzA6XFx0XFxuICAzMTpcXHRcXHRkZXYgPSBjb250YWluZXJfb2YobWRldiwgc3RydWN0IG10NzYwM19kZXYsIG10NzYpO1xcbiAgMzI6XFx0XFx0bXQ3Nl9tbWlvX2luaXQobWRldiwgbWVtX2Jhc2UpO1xcbiAgMzM6XFx0XFxuICAzNDpcXHRcXHRtZGV2LVxcdTAwM2VyZXYgPSAobXQ3Nl9ycihkZXYsIE1UX0hXX0NISVBJRCkgXFx1MDAzY1xcdTAwM2MgMTYpIHxcXG4gIDM1OlxcdFxcdFxcdCAgICAobXQ3Nl9ycihkZXYsIE1UX0hXX1JFVikgXFx1MDAyNiAweGZmKTtcXG4gIDM2OlxcdFxcdGRldl9pbmZvKG1kZXYtXFx1MDAzZWRldiwgXFxcIkFTSUMgcmV2aXNpb246ICUwNHhcXFxcblxcXCIsIG1kZXYtXFx1MDAzZXJldik7XFxuICAzNzpcXHRcXG4gIDM4OlxcdFxcdG10NzZfd3IoZGV2LCBNVF9JTlRfTUFTS19DU1IsIDApO1xcbiAgMzk6XFx0XFxuICA0MDpcXHRcXHRyZXQgPSBkZXZtX3JlcXVlc3RfaXJxKG1kZXYtXFx1MDAzZWRldiwgaXJxLCBtdDc2MDNfaXJxX2hhbmRsZXIsXFxuICA0MTpcXHRcXHRcXHRcXHQgICAgICAgSVJRRl9TSEFSRUQsIEtCVUlMRF9NT0ROQU1FLCBkZXYpO1xcbiAgNDI6XFx0XFx0aWYgKHJldClcXG4gIDQzOlxcdFxcdFxcdGdvdG8gZXJyb3I7XFxuICA0NDpcXHRcXG4gIDQ1OlxcdFxcdHJldCA9IG10NzYwM19yZWdpc3Rlcl9kZXZpY2UoZGV2KTtcXG4gIDQ2OlxcdFxcdGlmIChyZXQpXFxuICA0NzpcXHRcXHRcXHRnb3RvIGVycm9yO1xcbiAgNDg6XFx0XFxuICA0OTpcXHRcXHRyZXR1cm4gMDtcXG4gIDUwOlxcdGVycm9yOlxcbiAgNTE6XFx0XFx0bXQ3Nl9mcmVlX2RldmljZShtZGV2KTtcXG4gIDUyOlxcdFxcdHJldHVybiByZXQ7XFxuICA1MzpcXHR9XFxuICA1NDpcXHRcXG4gIDU1OlxcdHN0YXRpYyB2b2lkIG10NzZfd21hY19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4gIDU2OlxcdHtcXG4gIDU3OlxcdFxcdHN0cnVjdCBtdDc2X2RldiAqbWRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpO1xcbiAgNTg6XFx0XFx0c3RydWN0IG10NzYwM19kZXYgKmRldiA9IGNvbnRhaW5lcl9vZihtZGV2LCBzdHJ1Y3QgbXQ3NjAzX2RldiwgbXQ3Nik7XFxuICA1OTpcXHRcXG4gIDYwOlxcdFxcdG10NzYwM191bnJlZ2lzdGVyX2RldmljZShkZXYpO1xcbiAgNjE6XFx0fVxcbiAgNjI6XFx0XFxuICA2MzpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBvZl93bWFjX21hdGNoW10gPSB7XFxuICA2NDpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcIm1lZGlhdGVrLG10NzYyOC13bWFjXFxcIiB9LFxcbiAgNjU6XFx0XFx0e30sXFxuICA2NjpcXHR9O1xcbiAgNjc6XFx0XFxuICA2ODpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBvZl93bWFjX21hdGNoKTtcXG4gIDY5OlxcdE1PRFVMRV9GSVJNV0FSRShNVDc2MjhfRklSTVdBUkVfRTEpO1xcbiAgNzA6XFx0TU9EVUxFX0ZJUk1XQVJFKE1UNzYyOF9GSVJNV0FSRV9FMik7XFxuICA3MTpcXHRcXG4gIDcyOlxcdHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXQ3Nl93bWFjX2RyaXZlciA9IHtcXG4gIDczOlxcdFxcdC5wcm9iZVxcdFxcdD0gbXQ3Nl93bWFjX3Byb2JlLFxcbiAgNzQ6XFx0XFx0LnJlbW92ZVxcdFxcdD0gbXQ3Nl93bWFjX3JlbW92ZSxcXG4gIDc1OlxcdFxcdC5kcml2ZXIgPSB7XFxuICA3NjpcXHRcXHRcXHQubmFtZSA9IFxcXCJtdDc2X3dtYWNcXFwiLFxcbiAgNzc6XFx0XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gb2Zfd21hY19tYXRjaCxcXG4gIDc4OlxcdFxcdH0sXFxuICA3OTpcXHR9O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToyMC42NjY2MzEyMVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoxOTYxNDU5MTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgTVQ3NjAzJ3MgQ29ubmVjdGl2aXR5IE9wdGlvbnMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZmlndXJlIG91dCBob3cgdGhlIE1UNzYwMyBjaGlwc2V0IGhhbmRsZXMgbmV0d29yayBpbnRlcmZhY2VzLiBNeSBpbml0aWFsIGh1bmNoIGlzIHRvIGNoZWNrIGl0cyBVU0IgY2FwYWJpbGl0aWVzLCBzZWUgaWYgaXQgaGFzIGFueSB2aXJ0dWFsIG9yIGVtdWxhdGVkIGludGVyZmFjZXMsIG9yIGlmIGl0J3Mgc3RyaWN0bHkgYSBwaHlzaWNhbCBQQ0llIG9yIFNvQyBkZXZpY2UuIFRoZSBiZXN0IHBsYWNlIHRvIHN0YXJ0LCBnaXZlbiBteSBleHBlcmllbmNlLCBpcyBsaWtlbHkgdGhlIGRyaXZlcidzIEtjb25maWcgZmlsZS4gSSdsbCB0YWtlIGEgbG9vayBhdCBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc2MDMvS2NvbmZpZ2AgdG8gZ2V0IGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGRldmljZSdzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgYnVpbGQtdGltZSBzZXR0aW5ncywgd2hpY2ggc2hvdWxkIGltbWVkaWF0ZWx5IGNsYXJpZnkgaWYgdGhlcmUncyBhbnkgVVNCIHN1cHBvcnQgZGVjbGFyZWQgb3IgaGludGVkIGF0IHdpdGhpbiB0aGUgZHJpdmVyLiBUaGlzIGlzIHVzdWFsbHkgdGhlIHF1aWNrZXN0IHdheSB0byBnZXQgYSBoaWdoLWxldmVsIG92ZXJ2aWV3LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDA5MSwiT3V0cHV0VG9rZW5zIjo0NywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYzLCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MjIuNjI4MDk0OTA3WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk3MjcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UtQ2xlYXJcXG4gICAyOlxcdGNvbmZpZyBNVDc2MDNFXFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiTWVkaWFUZWsgTVQ3NjAzRSAoUENJZSkgYW5kIE1UNzZ4OCBXTEFOIHN1cHBvcnRcXFwiXFxuICAgNDpcXHRcXHRzZWxlY3QgTVQ3Nl9DT1JFXFxuICAgNTpcXHRcXHRkZXBlbmRzIG9uIE1BQzgwMjExXFxuICAgNjpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgIDc6XFx0XFx0aGVscFxcbiAgIDg6XFx0XFx0ICBUaGlzIGFkZHMgc3VwcG9ydCBmb3IgTVQ3NjAzRSBQQ0llIHdpcmVsZXNzIGRldmljZXMgYW5kIHRoZSBXTEFOIGNvcmVcXG4gICA5OlxcdFxcdCAgb24gTVQ3NjI4L01UNzY4OCBTb0MgZGV2aWNlcy4gVGhpcyBmYW1pbHkgc3VwcG9ydHMgSUVFRSA4MDIuMTFuIDJ4MlxcbiAgMTA6XFx0XFx0ICB0byAzMDBNYnBzIFBIWSByYXRlXFxuICAxMTpcXHRcXG4gIDEyOlxcdFxcdCAgVG8gY29tcGlsZSB0aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MjIuNjI4MTk1MTI3WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjQ1NjU0MDMwMjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgV29ydGhGdXp6aW5nIENyaXRlcmlhIGZvciBNVDc2MDMqKlxuXG5Pa2F5LCBsZXQncyBzZWUuIE15IGluaXRpYWwgdGhvdWdodCB3YXMgdG8gcXVpY2tseSBjaGVjayBpZiBRRU1VIG9mZmVyZWQgc29tZSBsZXZlbCBvZiBVU0Igb3Igb3RoZXIgZW11bGF0aW9uIGZvciBtdDc2MDMgb3IganVzdCB0aGUgYmFzZSBtdDc2IG1vZHVsZXMsIG1heWJlIGV2ZW4gaHdzaW0sIHRvIGdpdmUgbWUgYSBsZWcgdXAgb24gZnV6emluZy4gQnV0LCBob2xkIG9uIGEgc2Vjb25kLi4ubXQ3NjAzIGlzIHNwZWNpZmljYWxseSBmb3IgdGhlIE1lZGlhVGVrIE1UNzYwM0UgUENJZSBkZXZpY2UgYW5kIHRoZSBNVDc2MjgvTVQ3Njg4IFNvQ3MuIEkgd2FzIGV4cGVjdGluZyBtYXliZSBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIGVtdWxhdGlvbiBvZiB0aGUgTWVkaWFUZWsgTVQ3NjAzIFBDSWUgb3IgU29DIGRldmljZSwgYnV0IG5vIGRpY2UuIFFFTVUgZG9lc24ndCBzZWVtIHRvIHRvdWNoIHRoYXQgaGFyZHdhcmUgYXQgYWxsLlxuXG5BbHJpZ2h0LCB0aW1lIHRvIGNhcmVmdWxseSByZXZpZXcgc2VjdGlvbiAyIG9mIHRoZSBpbnN0cnVjdGlvbnMuIFRoZSBcIldvcnRoRnV6emluZz1mYWxzZVwiIGNyaXRlcmlhIGFyZSBwcmV0dHkgY2xlYXI6IG5vbi1leGVjdXRhYmxlIGNoYW5nZXMsIHVucmVhY2hhYmxlIGhhcmR3YXJlIChzcGVjaWZpY2FsbHkgdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgR1BVIGRyaXZlcnMgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VKSBhbmQgdW5yZWFjaGFibGUgZXhlY3V0aW9uIHBhdGhzIChkcml2ZXIgdGVhcmRvd24sIFBDSSBob3QtdW5wbHVnKS5cblxuTGV0J3MgYnJlYWsgdGhpcyBkb3duLiBJcyB0aGUgTVQ3NjAzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUvU29DIHdpcmVsZXNzIGRyaXZlcj8gWWVzISBUaGUgTVQ3NjAzRSBpcyBzcGVjaWZpY2FsbHkgTWVkaWFUZWsgaGFyZHdhcmUuIERvZXMgc3RhbmRhcmQgUUVNVSBlbXVsYXRlIHRoZSBNVDc2MDM/IE5vcGUuIFdlIGFscmVhZHkgZXN0YWJsaXNoZWQgdGhhdC4gQW5kIEkgc2hvdWxkIHByb2JhYmx5IGRvIGEgcXVpY2sgc2FuaXR5IGNoZWNrIHRvIHNlZSBpZiB0aGVyZSBpcyBhbnkgVVNCIGludGVyZmFjZSBzdXBwb3J0IHdpdGhpbiBtdDc2MDMgYmVmb3JlIEkgbWFrZSBhIGZpbmFsIGFzc2Vzc21lbnQuIEknbGwgbmVlZCB0byBjaGVjayB0aGUgY29kZWJhc2UgdG8gY29uZmlybSBpZiBhbnkgVVNCIGludGVyZmFjZSBzdXBwb3J0IGV4aXN0cy5cblxuU28sIGdpdmVuIHRoYXQgTVQ3NjAzIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUvU29DIGRyaXZlciBhbmQgbm90IGVtdWxhdGVkIGJ5IFFFTVUsIGFjY29yZGluZyB0byB0aGUgaW5zdHJ1Y3Rpb25zLCB0aGlzIHNlZW1zIGxpa2UgYSBzb2xpZCBjYXNlIGZvciBcIldvcnRoRnV6emluZz1mYWxzZVwiIHNpbmNlIGl0J3Mgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGluIG15IHZpcnR1YWxpemVkIGVudmlyb25tZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDU4MywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4NCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTA1VDEwOjM5OjI3LjE5MzYwMDIxM1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI4NDg5ODc2LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc2MDMuKnVzYlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzc1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MjcuNTIyMDk5ODI5WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjI0MzAyMTk2NzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOlxuXG4qKk5hdmlnYXRpbmcgdGhlIE1UNzYwMyBXaXJlbGVzcyBEcml2ZXIqKlxuXG5Pa2F5LCB0aW1lIHRvIGRpdmUgaW4uIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIGdldCBhIGxheSBvZiB0aGUgbGFuZCB3aXRoaW4gdGhlIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9gIGRpcmVjdG9yeS4gSSB3YW50IHRvIGJ1aWxkIGEgbWVudGFsIG1hcCBvZiB0aGUgY29yZSBmaWxlcyBhbmQgc3RydWN0dXJlcyBhc3NvY2lhdGVkIHdpdGggdGhlIE1UNzYwMyB3aXJlbGVzcyBkcml2ZXIuIEJlZm9yZSBJIHN0YXJ0IGRlYnVnZ2luZyBvciB0cnlpbmcgdG8gdW5kZXJzdGFuZCBhIHNwZWNpZmljIGZ1bmN0aW9uLCBJIG5lZWQgdGhhdCBvdmVydmlldy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiB0aGUgaW5kZXggdG8gZ2V0IGEgc2Vuc2Ugb2YgdGhlIGtleSBtb2R1bGVzLCBoZWFkZXIgZmlsZXMsIGFuZCBpbXBsZW1lbnRhdGlvbiBmaWxlcyBwcmVzZW50LiBUaGlzIHByZWxpbWluYXJ5IHN0ZXAgaXMgY3J1Y2lhbDsgaXQgaGVscHMgbWUgYXZvaWQgZ2V0dGluZyBsb3N0IGluIHRoZSB3ZWVkcyBhbmQgYWxsb3dzIG1lIHRvIGNvbnRleHR1YWxpemUgYW55IHN1YnNlcXVlbnQgaW52ZXN0aWdhdGlvbnMgb3IgYnVnIHJlcG9ydHMgSSBtaWdodCBiZSB3b3JraW5nIHdpdGguIEkgbmVlZCB0byByZWZyZXNoIG15IGZhbWlsaWFyaXR5IHdpdGggdGhpcyBwYXJ0aWN1bGFyIGRyaXZlciwgYW5kIGEgZGlyZWN0b3J5IGluZGV4IHNjYW4gaXMgdGhlIGZhc3Rlc3Qgd2F5IHRvIGFjaGlldmUgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU1MjEsIk91dHB1dFRva2VucyI6MzYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOToyOS45NTIzMjI5NzZaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NjE4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3NjAzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIkZpbGVzXCI6IFtcbiAgICBcImJlYWNvbi5jXCIsXG4gICAgXCJjb3JlLmNcIixcbiAgICBcImRlYnVnZnMuY1wiLFxuICAgIFwiZG1hLmNcIixcbiAgICBcImVlcHJvbS5jXCIsXG4gICAgXCJlZXByb20uaFwiLFxuICAgIFwiaW5pdC5jXCIsXG4gICAgXCJtYWMuY1wiLFxuICAgIFwibWFjLmhcIixcbiAgICBcIm1haW4uY1wiLFxuICAgIFwibWN1LmNcIixcbiAgICBcIm1jdS5oXCIsXG4gICAgXCJtdDc2MDMuaFwiLFxuICAgIFwicGNpLmNcIixcbiAgICBcInJlZ3MuaFwiLFxuICAgIFwic29jLmNcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDVUMTA6Mzk6MjkuOTUyNDIxNzg3WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjUxMTAwMjE3NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgTVQ3NjAzIERyaXZlcidzIEZ1enppbmcgU3VpdGFiaWxpdHkqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIE15IGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBgbXQ3NjAzYCBkcml2ZXIsIHNwZWNpZmljYWxseSB0aGUgYG10NzYwM19tYWNfaW5pdGAgZnVuY3Rpb24sIGlzIGEgdmlhYmxlIHRhcmdldCBmb3IgZnV6emluZy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYW5kIHdoZXRoZXIgdGhlIGNvbmRpdGlvbnMgZm9yIGV4ZWN1dGluZyB0aGF0IGNhbGwgYXJlIG1ldCBpbiB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cblxuRmlyc3QsIEkgdHJhY2VkIHRoZSBjYWxsIGNoYWluIGZvciBgbXQ3NjAzX21hY19pbml0YC4gSXQncyBhIHN0YXRpYyBmdW5jdGlvbiB3aXRoaW4gYGluaXQuY2AgYW5kIGlzIGNhbGxlZCBieSBgbXQ3NjAzX2luaXRfaGFyZHdhcmVgLiBUaGF0IGluIHR1cm4gaXMgY2FsbGVkIGZyb20gZWl0aGVyIGBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlYCBvciBgbXQ3NjAzX3Jlc2V0X3dvcmtgLiBOb3csIGBtdDc2MDNfcmVnaXN0ZXJfZGV2aWNlYCBnZXRzIGNhbGxlZCBkdXJpbmcgdGhlIFBDSSBwcm9iZSAoYG10NzZwY2lfcHJvYmVgKSBvciBmcm9tIGEgcGxhdGZvcm0gcHJvYmUgKGBtdDc2X3dtYWNfcHJvYmVgKS5cblxuSGVyZSdzIHRoZSBwcm9ibGVtOiBuZWl0aGVyIHRoZSBNVDc2MDNFIFBDSWUgbm9yIHRoZSBNVDc2MjggU29DIFdNQUMgaGFyZHdhcmUgaXMgZW11bGF0ZWQgaW4gc3RhbmRhcmQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUuIFRoZXNlIGFyZSBzcGVjaWFsaXplZCBoYXJkd2FyZSBjb21wb25lbnRzLCBhbmQgc3RhbmRhcmQgZnV6emluZyBzZXR1cHMgYXJlICpub3QqIGdvaW5nIHRvIGJlIGFibGUgdG8gcHJvYmUsIG11Y2ggbGVzcyBleGVjdXRlLCB0aGlzIGRyaXZlci4gU29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcywgbGlrZSBVU0IgZ2FkZ2V0cywgYXJlIG91dCBiZWNhdXNlIHRoZXJlJ3Mgbm8gVVNCIGRyaXZlciBmb3IgYG10NzYwM2AuIEl0J3MgUENJIGFuZCBTb0Mtc3BlY2lmaWMuXG5cblRoaXMgY2xlYXJseSBmYWxscyB1bmRlciB0aGUgY2F0ZWdvcnkgb2YgXCJTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUuXCIgU3BlY2lmaWNhbGx5LCB0aGlzIGlzIHNpbWlsYXIgdG8gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMuIFRoZXkgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZSBvciBoYXJkd2FyZS1zcGVjaWZpYyBQQ0llIGNhcmRzIHRoYXQgUUVNVSBkb2Vzbid0IGVtdWxhdGUuXG5cbkxldCdzIHN1bW1hcml6ZSB0aGlzIGNvbmNpc2VseTogdGhlIHBhdGNoIG1vZGlmaWVzIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzYwMy9pbml0LmNgLCBzcGVjaWZpY2FsbHkgYG10NzYwM19tYWNfaW5pdGAuIFRoZSBkcml2ZXIgaXMgZm9yIHRoZSBNVDc2MDNFIFBDSWUgYW5kIE1UNzYyOC9NVDc2ODggU29DLiBJdCBpcyB1bnJlYWNoYWJsZSBpbiBhIHN0YW5kYXJkIFFFTVUgb3IgR0NFIFZNIHdpdGhvdXQgdGhlIGFjdHVhbCBwaHlzaWNhbCBoYXJkd2FyZS4gVGhlcmVmb3JlLCBpdCdzIG5vdCB3b3J0aCBmdXp6aW5nLiBUaGUgYFdvcnRoRnV6emluZ2AgZmxhZyBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAuIFRoZXJlIGFyZSBubyBzcGVjaWZpYyBzeW1ib2xzIG9mIGludGVyZXN0IChgRm9jdXNTeW1ib2xzYCBpcyBlbXB0eSksIGFuZCBubyBzcGVjaWFsIGNvbmZpZ3VyYXRpb25zIChgRW5hYmxlQ29uZmlnc2AgaXMgZW1wdHkpIG5lZWRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU5MDQsIk91dHB1dFRva2VucyI6MTM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTE5LCJUb29sQ2FsbHMiOlsiY29kZXNlYXJjaC1kaXItaW5kZXgiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOTozNS4wNjI0NDYxOVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2NjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIG10NzYwM19tYWNfaW5pdCgpIGluIHRoZSBNZWRpYVRlayBNVDc2MDMgd2lyZWxlc3MgZHJpdmVyIChDT05GSUdfTVQ3NjAzRSkuIFRoaXMgZHJpdmVyIHN1cHBvcnRzIG9ubHkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZGV2aWNlcyAoTVQ3NjAzRSkgYW5kIFNvQyBwbGF0Zm9ybXMgKE1UNzYyOC9NVDc2ODgpLCB3aGljaCBhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSkgYW5kIGRvIG5vdCBzdXBwb3J0IFVTQiBlbXVsYXRpb24uIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgbXQ3NjAzX21hY19pbml0KCkgaW4gdGhlIE1lZGlhVGVrIE1UNzYwMyB3aXJlbGVzcyBkcml2ZXIgKENPTkZJR19NVDc2MDNFKS4gVGhpcyBkcml2ZXIgc3VwcG9ydHMgb25seSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkZXZpY2VzIChNVDc2MDNFKSBhbmQgU29DIHBsYXRmb3JtcyAoTVQ3NjI4L01UNzY4OCksIHdoaWNoIGFyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSBhbmQgZG8gbm90IHN1cHBvcnQgVVNCIGVtdWxhdGlvbi4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wNVQxMDozOTozNS4wNjI0NzYxMVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mjk0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowfh96l[1] Phase: Running StartedAt: 2026-09-05 10:39:46 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowfh96l[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-05 10:39:46 +0000 UTC FinishedAt: 2026-09-05 10:39:50 +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,}