Name: series-workflowsszjg Phase: Failed StartedAt: 2026-07-08 10:03:23 +0000 UTC FinishedAt: 2026-07-08 10:34:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsszjg[0] Phase: Succeeded StartedAt: 2026-07-08 10:03:23 +0000 UTC FinishedAt: 2026-07-08 10:34:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsszjg[0].run-triage Phase: Succeeded StartedAt: 2026-07-08 10:03:23 +0000 UTC FinishedAt: 2026-07-08 10:34:23 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBDb25uZWN0WC00LzUvNi83IGNvcmUgZHJpdmVyIChtbHg1X2NvcmUpLCBzcGVjaWZpY2FsbHkgdGhlIE1QViBkZXZjb20gZXZlbnQgaGFuZGxpbmcuIFRoaXMgY29kZSBwYXRoIGlzIG9ubHkgcmVhY2hhYmxlIHdoZW4gYSBwaHlzaWNhbCBNZWxsYW5veCBQQ0kgZGV2aWNlIGlzIHByZXNlbnQgYW5kIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCwgd2hpY2ggdHJpZ2dlcnMgdGhlIEluZmluaWJhbmQgZGV2aWNlIHJlZ2lzdHJhdGlvbiBhbmQgc3Vic2VxdWVudCBhZmZpbGlhdGlvbiBldmVudHMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgTWVsbGFub3ggaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCBvciBRRU1VLCB0aGlzIGNvZGUgaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiZjYxZDE2OTg3Y2UzNGU4ZmFkOGMzOGUwYzYzNmFhMmIwNWI5ODRkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgOCAxMDozMjozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xuaW5kZXggOGYyYjNhYmUwMDkyMTQuLjliMjdhZmViOWIxMjdlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xuQEAgLTIxMSwxMSAmIzQzOzIxMSwxMSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IG1seDVlX2RldmNvbV9ldmVudF9tcHYoaW50IGV2ZW50LCB2b2lkICpteV9kYXRhLCB2b2lkICpldmVudF9kYXRhKVxuIHtcbi1cdHN0cnVjdCBtbHg1ZV9wcml2ICpzbGF2ZV9wcml2ID0gbXlfZGF0YTtcbiYjNDM7XHRzdHJ1Y3QgbWx4NWVfcHJpdiAqbWFzdGVyX3ByaXYgPSBldmVudF9kYXRhO1xuIFxuIFx0c3dpdGNoIChldmVudCkge1xuIFx0Y2FzZSBNUFZfREVWQ09NX01BU1RFUl9VUDpcbi1cdFx0bWx4NV9kZXZjb21fY29tcF9zZXRfcmVhZHkoc2xhdmVfcHJpdi1cdTAwM2VkZXZjb20sIHRydWUpO1xuJiM0MztcdFx0bWx4NV9kZXZjb21fY29tcF9zZXRfcmVhZHkobWFzdGVyX3ByaXYtXHUwMDNlZGV2Y29tLCB0cnVlKTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIE1QVl9ERVZDT01fTUFTVEVSX0RPV046XG4gXHRcdC8qIG5vIG5lZWQgZm9yIGNvbXAgc2V0IHJlYWR5IGZhbHNlIHNpbmNlIHdlIHVucmVnaXN0ZXIgYWZ0ZXJcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggQ29ubmVjdFgtNC81LzYvNyBjb3JlIGRyaXZlciAobWx4NV9jb3JlKSwgc3BlY2lmaWNhbGx5IHRoZSBNUFYgZGV2Y29tIGV2ZW50IGhhbmRsaW5nLiBUaGlzIGNvZGUgcGF0aCBpcyBvbmx5IHJlYWNoYWJsZSB3aGVuIGEgcGh5c2ljYWwgTWVsbGFub3ggUENJIGRldmljZSBpcyBwcmVzZW50IGFuZCBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQsIHdoaWNoIHRyaWdnZXJzIHRoZSBJbmZpbmliYW5kIGRldmljZSByZWdpc3RyYXRpb24gYW5kIHN1YnNlcXVlbnQgYWZmaWxpYXRpb24gZXZlbnRzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIE1lbGxhbm94IGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgb3IgUUVNVSwgdGhpcyBjb2RlIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiZjYxZDE2OTg3Y2UzNGU4ZmFkOGMzOGUwYzYzNmFhMmIwNWI5ODRkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgOCAxMDozMjozMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IDhmMmIzYWJlMDA5MjE0Li45YjI3YWZlYjliMTI3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBAIC0yMTEsMTEgJiM0MzsyMTEsMTEgQEAgc3RhdGljIHZvaWQgbWx4NWVfZGlzYWJsZV9hc3luY19ldmVudHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAKIHN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpCiB7Ci0Jc3RydWN0IG1seDVlX3ByaXYgKnNsYXZlX3ByaXYgPSBteV9kYXRhOwomIzQzOwlzdHJ1Y3QgbWx4NWVfcHJpdiAqbWFzdGVyX3ByaXYgPSBldmVudF9kYXRhOwogCiAJc3dpdGNoIChldmVudCkgewogCWNhc2UgTVBWX0RFVkNPTV9NQVNURVJfVVA6Ci0JCW1seDVfZGV2Y29tX2NvbXBfc2V0X3JlYWR5KHNsYXZlX3ByaXYtJmd0O2RldmNvbSwgdHJ1ZSk7CiYjNDM7CQltbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShtYXN0ZXJfcHJpdi0mZ3Q7ZGV2Y29tLCB0cnVlKTsKIAkJYnJlYWs7CiAJY2FzZSBNUFZfREVWQ09NX01BU1RFUl9ET1dOOgogCQkvKiBubyBuZWVkIGZvciBjb21wIHNldCByZWFkeSBmYWxzZSBzaW5jZSB3ZSB1bnJlZ2lzdGVyIGFmdGVyCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NzYKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAzMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWVsbGFub3ggbWx4NSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBjaGFuZ2VzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgIGZ1bmN0aW9uIGhhcyBiZWVuIHR3ZWFrZWQuIFRoZSBrZXkgY2hhbmdlIGlzIHRoZSBwb2ludGVyIHVzZWQgaW4gYG1seDVfZGV2Y29tX2NvbXBfc2V0X3JlYWR5YCwgZnJvbSBgc2xhdmVfcHJpdmAgdG8gYG1hc3Rlcl9wcml2YC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIE1lbGxhbm94IG1seDUgZHJpdmVyLCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgaW1wbGljYXRpb25zLgoKVGhlIGZpcnN0IHRoaW5nIHRoYXQganVtcHMgdG8gbWluZCBpcyB0aGUgZnV6emFiaWxpdHkgb2YgdGhpcyBkcml2ZXIuIEdpdmVuIGl0cyBoYXJkd2FyZS1zcGVjaWZpYyBuYXR1cmUsIHBhcnRpY3VsYXJseSB3aXRoIE1lbGxhbm94LCBpcyB0aGlzIGRyaXZlciBldmVuIGVhc2lseSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVU/IFRoZXNlIHNvcnRzIG9mIGhhcmR3YXJlLXNwZWNpZmljIEV0aGVybmV0IGRyaXZlcnMgb2Z0ZW4gcG9zZSBhIGZ1enppbmcgY2hhbGxlbmdlLCB1bmxlc3Mgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBlaXRoZXIgYW4gZW11bGF0b3Igb3IgYSBtb3JlIGdlbmVyaWMgZnJhbWV3b3JrLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB3ZSBjYW4gZXZlbiBmdXp6IHRoZSBtbHg1IGRyaXZlci4KClJpZ2h0LCBteSBpbW1lZGlhdGUgY2hlY2sgaXMgd2hldGhlciBzeXprYWxsZXIgaGFzIGFuIG1seDUgZW11bGF0b3IuIEFuZCB0aGUgcXVpY2sgYW5zd2VyIGlzIG5vLCBpdCBkb2VzbiYjMzk7dC4gTmV4dCwgSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzb2Z0d2FyZSBlbXVsYXRpb25zIG9mIG1seDUgdGhhdCBtaWdodCBiZSBhdmFpbGFibGUuIEdpdmVuIHRoaXMgZHJpdmVyJiMzOTtzIGxvY2F0aW9uLCBJJiMzOTtsbCBzZWFyY2ggdGhyb3VnaCB0aGUgY29kZSBpdHNlbGYsIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNgLCBhbmQgc2VlaW5nIHdoYXQgSSBjYW4gZmluZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZV9kZXZjb21fZXZlbnRfbXB2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTIwNz1zdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjEyOnN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTIxMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMzQ9c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI0Mi1cdFx0XHRcdFx0XHQgICAgICBcdTAwMjZhdHRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyNDM6XHRcdFx0XHRcdFx0ICAgICAgbWx4NWVfZGV2Y29tX2V2ZW50X21wdixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjQ0LVx0XHRcdFx0XHRcdCAgICAgIHByaXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMDgKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgRnV6emFiaWxpdHkgb2YgdGhlIE1lbGxhbm94IG1seDUgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgTWVsbGFub3ggYG1seDVgIGRyaXZlciwgd2hpY2ggaGFuZGxlcyB0aG9zZSBDb25uZWN0WC00LzUvNi83IGFkYXB0ZXJzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGFzIHVzdWFsIHdpdGggdGhlc2UgaGFyZHdhcmUgZHJpdmVycywgdGhhdCBmdXp6aW5nIGl0IGluIGFuIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgaXMgZ29pbmcgdG8gYmUgYSBjaGFsbGVuZ2UuIFVubGVzcywgb2YgY291cnNlLCB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2Ygc3BlY2lhbGl6ZWQgZW11bGF0b3IgYXQgcGxheS4gWW91IGtub3csIGxpa2Ugd2UgaGF2ZSBmb3IgVVNCIHdpdGggYHZoY2lgLCBvciBXaUZpIHdpdGggYG1hYzgwMjExX2h3c2ltYCwgb3IgbmV0d29ya2luZyB3aXRoIGBuZXRkZXZzaW1gLi4uIHRoYXQga2luZCBvZiB0aGluZy4gU28sIHRoZSBrZXkgcXVlc3Rpb24gaXM6IGRvZXMgYSBzaW1pbGFyIGBtbHg1YCBlbXVsYXRvciBleGlzdD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBpdCYjMzk7cyBwdXJlbHkgaGFyZHdhcmUtZGVwZW5kZW50IG9yIGlmIHRoZXJlJiMzOTtzIGEgc29mdHdhcmUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRldmljZSBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbCB0aGF0IEkgY2FuIGxldmVyYWdlLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgdGhlIGNvZGUgcmV2ZWFscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnPTIxPXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L0tjb25maWc6MjI6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnLTIzLXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQ4NQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnkgb2YgdGhlIHByb3ZpZGVkIHRleHQsIGFzc3VtaW5nIEkmIzM5O20gYW4gZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBNZWxsYW5veCBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbi4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgTWVsbGFub3ggRXRoZXJuZXQgZHJpdmVycy4gTXkgaW5zdGluY3QgdGVsbHMgbWUgdGhlIHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBgS2NvbmZpZ2AgZmlsZSB3aXRoaW4gdGhlIGNvcmUgZHJpdmVyIHN0cnVjdHVyZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGhlYWRpbmcgc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnYC4gVGhpcyBmaWxlICpzaG91bGQqIGhvbGQgYWxsIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBmbGFncyBhbmQgZGVmYXVsdCBzZXR0aW5ncyBJJiMzOTttIGxvb2tpbmcgZm9yLiBJdOKAmXMgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGNvbnRyb2xsaW5nIGZlYXR1cmVzIGFuZCBkZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBtbHg1IGNvcmUuIEZyb20gaGVyZSwgSSBjYW4gdHJhY2UgZGVwZW5kZW5jaWVzLCBpZGVudGlmeSB3aGF0JiMzOTtzIGVuYWJsZWQgYnkgZGVmYXVsdCwgYW5kIHBvdGVudGlhbGx5IGZpbmQgdGhlIHNvdXJjZSBvZiBhIGNvbmZpZ3VyYXRpb24gcHJvYmxlbSBvciBhIG5ldyBvcHRpb24gdG8gZW5hYmxlLiBMZXTigJlzIHNlZSB3aGF0JiMzOTtzIGluIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0I1xuICAgMzpcdCMgTWVsbGFub3ggZHJpdmVyIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0Y29uZmlnIE1MWDVfQ09SRVxuICAgNzpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBjb3JlIGRyaXZlclwmIzM0O1xuICAgODpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgIDk6XHRcdHNlbGVjdCBBVVhJTElBUllfQlVTXG4gIDEwOlx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAgMTE6XHRcdGRlcGVuZHMgb24gTUxYRlcgfHwgIU1MWEZXXG4gIDEyOlx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gIDEzOlx0XHRkZXBlbmRzIG9uIFBDSV9IWVBFUlZfSU5URVJGQUNFIHx8ICFQQ0lfSFlQRVJWX0lOVEVSRkFDRVxuICAxNDpcdFx0ZGVwZW5kcyBvbiBIV01PTiB8fCAhSFdNT05cbiAgMTU6XHRcdGhlbHBcbiAgMTY6XHRcdCAgQ29yZSBkcml2ZXIgZm9yIGxvdyBsZXZlbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBDb25uZWN0WC00IGFuZFxuICAxNzpcdFx0ICBDb25uZWN0LUlCIGNhcmRzIGJ5IE1lbGxhbm94IFRlY2hub2xvZ2llcy5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgTUxYNV9GUEdBXG4gIDIwOlx0XHRib29sIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBJbm5vdmEgc3VwcG9ydFwmIzM0O1xuICAyMTpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVcbiAgMjI6XHRcdGhlbHBcbiAgMjM6XHRcdCAgQnVpbGQgc3VwcG9ydCBmb3IgdGhlIElubm92YSBmYW1pbHkgb2YgbmV0d29yayBjYXJkcyBieSBNZWxsYW5veFxuICAyNDpcdFx0ICBUZWNobm9sb2dpZXMuIElubm92YSBuZXR3b3JrIGNhcmRzIGFyZSBjb21wcmlzZWQgb2YgYSBDb25uZWN0WCBjaGlwXG4gIDI1Olx0XHQgIGFuZCBhbiBGUEdBIGNoaXAgb24gb25lIGJvYXJkLiBJZiB5b3Ugc2VsZWN0IHRoaXMgb3B0aW9uLCB0aGVcbiAgMjY6XHRcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXG4gIDI3Olx0XHQgIHNhbmRib3gtc3BlY2lmaWMgY2xpZW50IGRyaXZlcnMuXG4gIDI4Olx0XG4gIDI5Olx0Y29uZmlnIE1MWDVfQ09SRV9FTlxuICAzMDpcdFx0Ym9vbCBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbiAgMzE6XHRcdGRlcGVuZHMgb24gTkVUREVWSUNFUyBcdTAwMjZcdTAwMjYgRVRIRVJORVQgXHUwMDI2XHUwMDI2IElORVQgXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgTUxYNV9DT1JFXG4gIDMyOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gIDMzOlx0XHRzZWxlY3QgUEFHRV9QT09MX1NUQVRTXG4gIDM0Olx0XHRzZWxlY3QgRElNTElCXG4gIDM1Olx0XHRoZWxwXG4gIDM2Olx0XHQgIEV0aGVybmV0IHN1cHBvcnQgaW4gTWVsbGFub3ggVGVjaG5vbG9naWVzIENvbm5lY3RYLTQgTklDLlxuICAzNzpcdFxuICAzODpcdGNvbmZpZyBNTFg1X0VOX0FSRlNcbiAgMzk6XHRcdGJvb2wgXCYjMzQ7TWVsbGFub3ggTUxYNSBldGhlcm5ldCBhY2NlbGVyYXRlZCByZWNlaXZlIGZsb3cgc3RlZXJpbmcgKEFSRlMpIHN1cHBvcnRcJiMzNDtcbiAgNDA6XHRcdGRlcGVuZHMgb24gTUxYNV9DT1JFX0VOIFx1MDAyNlx1MDAyNiBSRlNfQUNDRUxcbiAgNDE6XHRcdGRlZmF1bHQgeVxuICA0MjpcdFx0aGVscFxuICA0MzpcdFx0ICBNZWxsYW5veCBNTFg1IGV0aGVybmV0IGhhcmR3YXJlLWFjY2VsZXJhdGVkIHJlY2VpdmUgZmxvdyBzdGVlcmluZyBzdXBwb3J0LFxuICA0NDpcdFx0ICBFbmFibGVzIGV0aGVybmV0IG5ldGRldmljZSBhcmZzIHN1cHBvcnQgYW5kIG50dXBsZSBmaWx0ZXJpbmcuXG4gIDQ1Olx0XG4gIDQ2Olx0Y29uZmlnIE1MWDVfRU5fUlhORkNcbiAgNDc6XHRcdGJvb2wgXCYjMzQ7TWVsbGFub3ggTUxYNSBldGhlcm5ldCByeCBuZmMgZmxvdyBzdGVlcmluZyBzdXBwb3J0XCYjMzQ7XG4gIDQ4Olx0XHRkZXBlbmRzIG9uIE1MWDVfQ09SRV9FTlxuICA0OTpcdFx0ZGVmYXVsdCB5XG4gIDUwOlx0XHRoZWxwXG4gIDUxOlx0XHQgIE1lbGxhbm94IE1MWDUgZXRoZXJuZXQgcnggbmZjIGZsb3cgc3RlZXJpbmcgc3VwcG9ydFxuICA1MjpcdFx0ICBFbmFibGVzIGV0aHRvb2wgcmVjZWl2ZSBuZXR3b3JrIGZsb3cgY2xhc3NpZmljYXRpb24sIHdoaWNoIGFsbG93cyB1c2VyIGRlZmluZWRcbiAgNTM6XHRcdCAgZmxvdyBydWxlcyB0byBkaXJlY3QgdHJhZmZpYyBpbnRvIGFyYml0cmFyeSByeCBxdWV1ZSB2aWEgZXRodG9vbCBzZXQvZ2V0X3J4bmZjXG4gIDU0Olx0XHQgIEFQSS5cbiAgNTU6XHRcbiAgNTY6XHRjb25maWcgTUxYNV9NUEZTXG4gIDU3Olx0XHRib29sIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBNTFg1IE1QRlMgc3VwcG9ydFwmIzM0O1xuICA1ODpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU5cbiAgNTk6XHRcdGRlZmF1bHQgeVxuICA2MDpcdFx0aGVscFxuICA2MTpcdFx0ICBNZWxsYW5veCBUZWNobm9sb2dpZXMgRXRoZXJuZXQgTXVsdGktUGh5c2ljYWwgRnVuY3Rpb24gU3dpdGNoIChNUEZTKVxuICA2MjpcdFx0ICBzdXBwb3J0IGluIENvbm5lY3RYIE5JQy4gTVBGcyBpcyByZXF1aXJlZCBmb3Igd2hlbiBtdWx0aS1QRiBjb25maWd1cmF0aW9uXG4gIDYzOlx0XHQgIGlzIGVuYWJsZWQgdG8gYWxsb3cgcGFzc2luZyB1c2VyIGNvbmZpZ3VyZWQgdW5pY2FzdCBNQUMgYWRkcmVzc2VzIHRvIHRoZVxuICA2NDpcdFx0ICByZXF1ZXN0aW5nIFBGLlxuICA2NTpcdFxuICA2NjpcdGNvbmZpZyBNTFg1X0VTV0lUQ0hcbiAgNjc6XHRcdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuICA2ODpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXHUwMDI2XHUwMDI2IE5FVF9TV0lUQ0hERVZcbiAgNjk6XHRcdGRlZmF1bHQgeVxuICA3MDpcdFx0aGVscFxuICA3MTpcdFx0ICBNZWxsYW5veCBUZWNobm9sb2dpZXMgRXRoZXJuZXQgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydCBpbiBDb25uZWN0WCBOSUMuXG4gIDcyOlx0XHQgIEUtU3dpdGNoIHByb3ZpZGVzIGludGVybmFsIFNSSU9WIHBhY2tldCBzdGVlcmluZyBhbmQgc3dpdGNoaW5nIGZvciB0aGVcbiAgNzM6XHRcdCAgZW5hYmxlZCBWRnMgYW5kIFBGIGluIHR3byBhdmFpbGFibGUgbW9kZXM6XG4gIDc0Olx0XHQgICAgICAgIExlZ2FjeSBTUklPViBtb2RlIChMMiBtYWMgdmxhbiBzdGVlcmluZyBiYXNlZCkuXG4gIDc1Olx0XHQgICAgICAgIFN3aXRjaGRldiBtb2RlIChlc3dpdGNoIG9mZmxvYWRzKS5cbiAgNzY6XHRcbiAgNzc6XHRjb25maWcgTUxYNV9CUklER0VcbiAgNzg6XHRcdGJvb2xcbiAgNzk6XHRcdGRlcGVuZHMgb24gTUxYNV9FU1dJVENIIFx1MDAyNlx1MDAyNiBCUklER0VcbiAgODA6XHRcdGRlZmF1bHQgeVxuICA4MTpcdFx0aGVscFxuICA4MjpcdFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIEV0aGVybmV0IEJyaWRnaW5nIChCUklER0UpLlxuICA4MzpcdFx0ICBFbmFibGUgb2ZmbG9hZGluZyBGREIgcnVsZXMgZnJvbSBhIGJyaWRnZSBkZXZpY2UgY29udGFpbmluZ1xuICA4NDpcdFx0ICByZXByZXNlbnRvcnMgb2YgbWx4NSB1cGxpbmsgYW5kIFZGIHBvcnRzLiBTdXBwb3J0cyBWTEFOcyAodHJ1bmsgYW5kXG4gIDg1Olx0XHQgIGFjY2VzcyBtb2RlcykuXG4gIDg2Olx0XG4gIDg3Olx0Y29uZmlnIE1MWDVfQ0xTX0FDVFxuICA4ODpcdFx0Ym9vbCBcJiMzNDtNTFg1IFRDIGNsYXNzaWZpZXIgYWN0aW9uIHN1cHBvcnRcJiMzNDtcbiAgODk6XHRcdGRlcGVuZHMgb24gTUxYNV9FU1dJVENIIFx1MDAyNlx1MDAyNiBORVRfQ0xTX0FDVCBcdTAwMjZcdTAwMjYgTkVUX1RDX1NLQl9FWFRcbiAgOTA6XHRcdGRlZmF1bHQgeVxuICA5MTpcdFx0aGVscFxuICA5MjpcdFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIFRDIGNsYXNzaWZpZXIgYWN0aW9uIChORVRfQ0xTX0FDVCksXG4gIDkzOlx0XHQgIHdvcmtzIGluIGJvdGggbmF0aXZlIE5JQyBtb2RlIGFuZCBTd2l0Y2hkZXYgU1JJT1YgbW9kZS5cbiAgOTQ6XHRcdCAgQWN0aW9ucyBnZXQgYXR0YWNoZWQgdG8gYSBIYXJkd2FyZSBvZmZsb2FkZWQgY2xhc3NpZmllcnMgYW5kIGFyZVxuICA5NTpcdFx0ICBpbnZva2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjbGFzc2lmaWNhdGlvbi4gQWN0aW9ucyBhcmUgdXNlZCB0b1xuICA5NjpcdFx0ICBvdmVyd3JpdGUgdGhlIGNsYXNzaWZpY2F0aW9uIHJlc3VsdCwgaW5zdGFudGx5IGRyb3Agb3IgcmVkaXJlY3QgYW5kL29yXG4gIDk3Olx0XHQgIHJlZm9ybWF0IHBhY2tldHMgaW4gd2lyZSBzcGVlZHMgd2l0aG91dCBpbnZvbHZpbmcgdGhlIGhvc3QgY3B1LlxuICA5ODpcdFxuICA5OTpcdFx0ICBJZiBzZXQgdG8gTiwgVEMgb2ZmbG9hZHMgaW4gYm90aCBOSUMgYW5kIHN3aXRjaGRldiBtb2RlcyB3aWxsIGJlIGRpc2FibGVkLlxuIDEwMDpcdFx0ICBJZiB1bnN1cmUsIHNldCB0byBZXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI0MAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDU3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1lbGxhbm94IENvbm5lY3RYIERyaXZlciBJbnZlc3RpZ2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggaGFyZHdhcmUgaGVyZS4gVGhlIGNoYWxsZW5nZSwgYXMgYWx3YXlzIHdpdGggZnV6emluZywgaXMgdGhlIGVudmlyb25tZW50LiBJIGtub3cgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGVtdWxhdGUgTWVsbGFub3ggaGFyZHdhcmUgZGlyZWN0bHkg4oCTIHRoYXQmIzM5O3MgYSBrZXkgbGltaXRhdGlvbi4gQnV0Li4uIHdhaXQsIGJlZm9yZSBJIHJ1bGUgaXQgb3V0IGNvbXBsZXRlbHksIGlzIHRoZXJlICphbnkqIHZpcnR1YWwgZGV2aWNlIG9wdGlvbiBvdXQgdGhlcmUgZm9yIGBtbHg1YD8gSSBuZWVkIHRvIGNoZWNrIGZvciBhIHZpcnR1YWwgZGF0YSBwYXRoIGFic3RyYWN0aW9uLCBzb21ldGhpbmcgbGlrZSBgdmRwYWAgbWF5YmUsIG9yIGEgc2ltaWxhciB0ZWNobm9sb2d5IHRoYXQgbWlnaHQgbGV0IG1lIGludGVyYWN0IHdpdGggdGhlIGRyaXZlciBpbiBhIHRlc3RhYmxlIHdheS4gSSBuZWVkIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyAqYW55dGhpbmcqIEkgY2FuIGxldmVyYWdlIHNob3J0IG9mIHJhdyBoYXJkd2FyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmRwYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDI2NjEgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvdmRwYS9LY29uZmlnPTcyPWNvbmZpZyBNTFg1X1ZEUEFfU1RFRVJJTkdfREVCVUdcbi0tXG5kcml2ZXJzL3ZkcGEvS2NvbmZpZy04MC1cdCAgZGVidWdmcy4gT25jZSBjYW4gcmVhZCB0aGUgY291bnRlcnMgdXNpbmcsIGUuZy46XG5kcml2ZXJzL3ZkcGEvS2NvbmZpZzo4MTpcdCAgY2F0IC9zeXMva2VybmVsL2RlYnVnL21seDUvbWx4NV9jb3JlLnNmLjEvdmRwYS0wL3J4L3VudGFnZ2VkL3VjYXN0L3BhY2tldHNcbmRyaXZlcnMvdmRwYS9LY29uZmlnOjgyOlx0ICBjYXQgL3N5cy9rZXJuZWwvZGVidWcvbWx4NS9tbHg1X2NvcmUuc2YuMS92ZHBhLTAvcngvdW50YWdnZWQvbWNhc3QvYnl0ZXNcbmRyaXZlcnMvdmRwYS9LY29uZmlnLTgzLVxuLS1cbmRyaXZlcnMvdmRwYS9NYWtlZmlsZT01PW9iai0kKENPTkZJR19JRkNWRikgICAgJiM0Mzs9IGlmY3ZmL1xuZHJpdmVycy92ZHBhL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX01MWDVfVkRQQSkgJiM0Mzs9IG1seDUvXG5kcml2ZXJzL3ZkcGEvTWFrZWZpbGUtNy1vYmotJChDT05GSUdfVlBfVkRQQSkgICAgJiM0Mzs9IHZpcnRpb19wY2kvXG4tLVxuZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGU6MTpzdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjdHJlZSkvZHJpdmVycy92ZHBhL21seDUvY29yZVxuZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGUtMi1cbmRyaXZlcnMvdmRwYS9tbHg1L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01MWDVfVkRQQV9ORVQpICYjNDM7PSBtbHg1X3ZkcGEub1xuZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGU6NDptbHg1X3ZkcGEtJChDT05GSUdfTUxYNV9WRFBBX05FVCkgJiM0Mzs9IG5ldC9tbHg1X3ZuZXQubyBjb3JlL3Jlc291cmNlcy5vIGNvcmUvbXIubyBuZXQvZGVidWcub1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtOS0jaW5jbHVkZSBcdTAwM2NsaW51eC92ZHBhLmhcdTAwM2VcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTA6I2luY2x1ZGUgXHUwMDNjbGludXgvbWx4NS9kcml2ZXIuaFx1MDAzZVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMS1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEzLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDpzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE1LVx0dTY0IHN0YXJ0O1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMjYtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjI3OnN0cnVjdCBtbHg1X3ZkcGFfbXIge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0yOC1cdHUzMiBta2V5O1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNDItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjQzOnN0cnVjdCBtbHg1X3ZkcGFfcmVzb3VyY2VzIHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNDQtXHR1MzIgcGRuO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDo0NTpcdHN0cnVjdCBtbHg1X3VhcnNfcGFnZSAqdWFyO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC00Ni1cdHZvaWQgX19pb21lbSAqa2lja19hZGRyO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNTItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjUzOnN0cnVjdCBtbHg1X2NvbnRyb2xfdnEge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC01NC1cdHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGI7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC02OS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6NzA6c3RydWN0IG1seDVfdmRwYV93cV9lbnQge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC03MS1cdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDo3MjpcdHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldjtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNzMtfTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oPTgyPWVudW0ge1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtODUtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjg2OnN0cnVjdCBtbHg1X3ZkcGFfbXJfcmVzb3VyY2VzIHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6ODc6XHRzdHJ1Y3QgbWx4NV92ZHBhX21yICptcltNTFg1X1ZEUEFfTlVNX0FTXTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtODgtXHR1bnNpZ25lZCBpbnQgZ3JvdXAyYXNpZFtNTFg1X1ZEUEFfTlVNVlFfR1JPVVBTXTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEwMi1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTAzOnN0cnVjdCBtbHg1X3ZkcGFfZGV2IHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTA0LVx0c3RydWN0IHZkcGFfZGV2aWNlIHZkZXY7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwNTpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2O1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMDY6XHRzdHJ1Y3QgbWx4NV92ZHBhX3Jlc291cmNlcyByZXM7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwNzpcdHN0cnVjdCBtbHg1X3ZkcGFfbXJfcmVzb3VyY2VzIG1yZXM7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEwOC1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTExNS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTE2Olx0c3RydWN0IG1seDVfY29udHJvbF92cSBjdnE7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTExNy1cdHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTExOS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTIwOlx0c3RydWN0IG1seDVfYXN5bmNfY3R4IGFzeW5jX2N0eDtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTIxLX07XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEyMi1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTIzOnN0cnVjdCBtbHg1X3ZkcGFfYXN5bmNfY21kIHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTI0LVx0aW50IGVycjtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTI1Olx0c3RydWN0IG1seDVfYXN5bmNfd29yayBjYl93b3JrO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMjYtXHRzdHJ1Y3QgY29tcGxldGlvbiBjbWRfZG9uZTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEzNC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTM1OmludCBtbHg1X3ZkcGFfY3JlYXRlX3RpcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHZvaWQgKmluLCB1MzIgKnRpc24pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMzY6dm9pZCBtbHg1X3ZkcGFfZGVzdHJveV90aXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgdGlzbik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzNzppbnQgbWx4NV92ZHBhX2NyZWF0ZV9ycXQoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgaW50IGlubGVuLCB1MzIgKnJxdG4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMzg6aW50IG1seDVfdmRwYV9tb2RpZnlfcnF0KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdm9pZCAqaW4sIGludCBpbmxlbiwgdTMyIHJxdG4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMzk6dm9pZCBtbHg1X3ZkcGFfZGVzdHJveV9ycXQoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgcnF0bik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0MDppbnQgbWx4NV92ZHBhX2NyZWF0ZV90aXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgdTMyICp0aXJuKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQxOnZvaWQgbWx4NV92ZHBhX2Rlc3Ryb3lfdGlyKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyIHRpcm4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDI6aW50IG1seDVfdmRwYV9hbGxvY190cmFuc3BvcnRfZG9tYWluKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyICp0ZG4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDM6dm9pZCBtbHg1X3ZkcGFfZGVhbGxvY190cmFuc3BvcnRfZG9tYWluKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyIHRkbik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0NDppbnQgbWx4NV92ZHBhX2FsbG9jX3Jlc291cmNlcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDU6dm9pZCBtbHg1X3ZkcGFfZnJlZV9yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ2OmludCBtbHg1X3ZkcGFfY3JlYXRlX21rZXkoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgKm1rZXksIHUzMiAqaW4sXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE0Ny1cdFx0XHQgIGludCBpbmxlbik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0ODppbnQgbWx4NV92ZHBhX2Rlc3Ryb3lfbWtleShzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHUzMiBta2V5KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ5OnN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1seDVfdmRwYV9jcmVhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNTAtXHRcdFx0XHRcdCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTUxOmludCBtbHg1X3ZkcGFfaW5pdF9tcl9yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTUyOnZvaWQgbWx4NV92ZHBhX2Rlc3Ryb3lfbXJfcmVzb3VyY2VzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1Mzp2b2lkIG1seDVfdmRwYV9jbGVhbl9tcnMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU0OnZvaWQgbWx4NV92ZHBhX2dldF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1NTpcdFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNTY6dm9pZCBtbHg1X3ZkcGFfcHV0X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU3Olx0XHQgICAgICBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1ODp2b2lkIG1seDVfdmRwYV91cGRhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNTk6XHRcdFx0IHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yLFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNjAtXHRcdFx0IHVuc2lnbmVkIGludCBhc2lkKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTYxOmludCBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2Mi1cdFx0XHRcdHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGIsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2My1cdFx0XHRcdHVuc2lnbmVkIGludCBhc2lkKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTY0OmludCBtbHg1X3ZkcGFfY3JlYXRlX2RtYV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNjU6aW50IG1seDVfdmRwYV9yZXNldF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHVuc2lnbmVkIGludCBhc2lkKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTY2OmludCBtbHg1X3ZkcGFfZXhlY19hc3luY19jbWRzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTY3Olx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfYXN5bmNfY21kICpjbWRzLFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNjgtXHRcdFx0ICAgICAgaW50IG51bV9jbWRzKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTY5LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNzA6I2RlZmluZSBtbHg1X3ZkcGFfZXJyKF9fZGV2LCBmb3JtYXQsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTcxLVx0ZGV2X2VycigoX19kZXYpLVx1MDAzZW1kZXYtXHUwMDNlZGV2aWNlLCBcJiMzNDslczolZDoocGlkICVkKSBlcnJvcjogXCYjMzQ7IGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgICAgXFxcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE3NC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTc1OiNkZWZpbmUgbWx4NV92ZHBhX3dhcm4oX19kZXYsIGZvcm1hdCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE3Ni1cdGRldl93YXJuKChfX2RldiktXHUwMDNlbWRldi1cdTAwM2VkZXZpY2UsIFwmIzM0OyVzOiVkOihwaWQgJWQpIHdhcm5pbmc6IFwmIzM0OyBmb3JtYXQsIF9fZnVuY19fLCBfX0xJTkVfXywgICAgIFxcXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNzgtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE3OTojZGVmaW5lIG1seDVfdmRwYV9pbmZvKF9fZGV2LCBmb3JtYXQsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xODAtXHRkZXZfaW5mbygoX19kZXYpLVx1MDAzZW1kZXYtXHUwMDNlZGV2aWNlLCBcJiMzNDslczolZDoocGlkICVkKTogXCYjMzQ7IGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgICAgICAgICBcXFxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTgyLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxODM6I2RlZmluZSBtbHg1X3ZkcGFfZGJnKF9fZGV2LCBmb3JtYXQsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTg0LVx0ZGV2X2RlYnVnKChfX2RldiktXHUwMDNlbWRldi1cdTAwM2VkZXZpY2UsIFwmIzM0OyVzOiVkOihwaWQgJWQpOiBcJiMzNDsgZm9ybWF0LCBfX2Z1bmNfXywgX19MSU5FX18sICAgICAgICAgICAgXFxcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNy0jaW5jbHVkZSBcdTAwM2NsaW51eC9zdHJpbmcuaFx1MDAzZVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg6I2luY2x1ZGUgXHUwMDNjbGludXgvbWx4NS9xcC5oXHUwMDNlXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTojaW5jbHVkZSBcJiMzNDttbHg1X3ZkcGEuaFwmIzM0O1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEwLVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYz0yMD1zdGF0aWMgaW50IGdldF9vY3RvX2xlbih1NjQgbGVuLCBpbnQgcGFnZV9zaGlmdClcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjgtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6Mjk6c3RhdGljIHZvaWQgbWx4NV9zZXRfYWNjZXNzX21vZGUodm9pZCAqbWtjLCBpbnQgbW9kZSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMC17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM0LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjM1OnN0YXRpYyB2b2lkIHBvcHVsYXRlX210dHMoc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yLCBfX2JlNjQgKm10dClcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNi17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUxLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjUyOnN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTMtXHR1OCBvdXRbTUxYNV9TVF9TWl9CWVRFUyhjcmVhdGVfbWtleV9vdXQpXTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTctXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NTg6c3RydWN0IG1seDVfZGVzdHJveV9ta2V5X21lbSB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTktXHR1OCBvdXRbTUxYNV9TVF9TWl9CWVRFUyhkZXN0cm95X21rZXlfb3V0KV07XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTYyLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjYzOnN0YXRpYyB2b2lkIGZpbGxfY3JlYXRlX2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjQ6XHRcdFx0XHQgIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NTpcdFx0XHRcdCAgc3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICptZW0pXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjYte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03My1cdE1MWDVfU0VUKG1rYywgbWtjLCBsciwgISEobXItXHUwMDNlcGVybSBcdTAwMjYgVkhPU1RfTUFQX1JPKSk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzQ6XHRtbHg1X3NldF9hY2Nlc3NfbW9kZShta2MsIE1MWDVfTUtDX0FDQ0VTU19NT0RFX01UVCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzUtXHRNTFg1X1NFVChta2MsIG1rYywgcXBuLCAweGZmZmZmZik7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg5LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjkwOnN0YXRpYyB2b2lkIGNyZWF0ZV9kaXJlY3RfbXJfZW5kKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo5MTpcdFx0XHRcdCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTI6XHRcdFx0XHQgc3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICptZW0pXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtOTMte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy05NS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo5NjpcdG1yLVx1MDAzZW1yID0gbWx4NV9pZHhfdG9fbWtleShta2V5X2luZGV4KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy05Ny19XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtOTgtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTk6c3RhdGljIHZvaWQgZmlsbF9kZXN0cm95X2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTAwOlx0XHRcdFx0ICAgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yLFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjEwMTpcdFx0XHRcdCAgIHN0cnVjdCBtbHg1X2Rlc3Ryb3lfbWtleV9tZW0gKm1lbSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDIte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDYtXHRNTFg1X1NFVChkZXN0cm95X21rZXlfaW4sIGluLCBvcGNvZGUsIE1MWDVfQ01EX09QX0RFU1RST1lfTUtFWSk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTA3Olx0TUxYNV9TRVQoZGVzdHJveV9ta2V5X2luLCBpbiwgbWtleV9pbmRleCwgbWx4NV9ta2V5X3RvX2lkeChtci1cdTAwM2VtcikpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEwOC19XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTA5LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExMDpzdGF0aWMgdm9pZCBkZXN0cm95X2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTEte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTQtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTE1Olx0bWx4NV92ZHBhX2Rlc3Ryb3lfbWtleShtdmRldiwgbXItXHUwMDNlbXIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTExNi19XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTE3LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExODpzdGF0aWMgdTY0IG1hcF9zdGFydChzdHJ1Y3Qgdmhvc3RfaW90bGJfbWFwICptYXAsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTkte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMjItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTIzOnN0YXRpYyB1NjQgbWFwX2VuZChzdHJ1Y3Qgdmhvc3RfaW90bGJfbWFwICptYXAsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMjQte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMjctXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTI4OnN0YXRpYyB1NjQgbWFwbGVuKHN0cnVjdCB2aG9zdF9pb3RsYl9tYXAgKm1hcCwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEyOS17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEzNS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMzY6c3RhdGljIHU2NCBpbmRpcl9zdGFydF9hZGRyKHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1rZXkpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTM3LXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMzg6XHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqcztcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMzktXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTQwOlx0cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcdTAwMjZta2V5LVx1MDAzZWhlYWQsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yLCBsaXN0KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNDEtXHRpZiAoIXMpXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE0Ni1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNDc6c3RhdGljIHU2NCBpbmRpcl9sZW4oc3RydWN0IG1seDVfdmRwYV9tciAqbWtleSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNDgte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE0OTpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpzO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE1MDpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICplO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE1MS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNTI6XHRzID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNm1rZXktXHUwMDNlaGVhZCwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIsIGxpc3QpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE1My1cdGlmICghcylcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTU1LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE1NjpcdGUgPSBsaXN0X2xhc3RfZW50cnkoXHUwMDI2bWtleS1cdTAwM2VoZWFkLCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciwgbGlzdCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTU3LVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYz0xNjQ9c3RhdGljIHUzMiBrbG1fYmNvdW50KHU2NCBzaXplKVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNjgtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTY5OnN0YXRpYyB2b2lkIGZpbGxfaW5kaXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICpta2V5LCB2b2lkICppbilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNzAte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE3MTpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpkbXI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTcyOlx0c3RydWN0IG1seDVfa2xtICprbG1hcnI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTczOlx0c3RydWN0IG1seDVfa2xtICprbG07XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTc0LVx0Ym9vbCBmaXJzdCA9IHRydWU7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jPTIwND1zdGF0aWMgaW50IGtsbV9ieXRlX3NpemUoaW50IG5rbG1zKVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yMTAtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjExOnN0YXRpYyBpbnQgY3JlYXRlX2RpcmVjdF9rZXlzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjEyLXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyMTM6XHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kcztcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyMTQ6XHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIxNS1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yMjItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRtciwgXHUwMDI2bXItXHUwMDNlaGVhZCwgbGlzdCkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjIyMzpcdFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIyNC1cdFx0aW50IG10dGxlbiwgbXR0Y291bnQ7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI0My1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNDQ6XHRlcnIgPSBtbHg1X3ZkcGFfZXhlY19hc3luY19jbWRzKG12ZGV2LCBjbWRzLCBtci1cdTAwM2VudW1fZGlyZWN0cyk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjQ1LVx0aWYgKGVycikge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI0Ni1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNDc6XHRcdG1seDVfdmRwYV9lcnIobXZkZXYsIFwmIzM0O2Vycm9yIGlzc3VpbmcgTVRUIG1rZXkgY3JlYXRpb24gZm9yIGRpcmVjdCBtcnM6ICVkXFxuXCYjMzQ7LCBlcnIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI0OC1cdFx0Z290byBkb25lO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNTItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRtciwgXHUwMDI2bXItXHUwMDNlaGVhZCwgbGlzdCkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI1MzpcdFx0c3RydWN0IG1seDVfdmRwYV9hc3luY19jbWQgKmNtZCA9IFx1MDAyNmNtZHNbaSYjNDM7JiM0MztdO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI1NDpcdFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI1NS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNTY6XHRcdGNtZF9tZW0gPSBjb250YWluZXJfb2YoY21kLVx1MDAzZW91dCwgc3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtLCBvdXQpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI1Ny1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjYxLVx0XHRcdGVyciA9IGVyciA/IGVyciA6IGNtZC1cdTAwM2VlcnI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjYyOlx0XHRcdG1seDVfdmRwYV9lcnIobXZkZXYsIFwmIzM0O2Vycm9yIGNyZWF0aW5nIE1UVCBta2V5IFsweCVsbHgsIDB4JWxseF06ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI2My1cdFx0XHRcdGRtci1cdTAwM2VzdGFydCwgZG1yLVx1MDAzZWVuZCwgY21kLVx1MDAzZWVycik7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI2OC1cdGZvciAoaSA9IGktMTsgaSBcdTAwM2U9IDA7IGktLSkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI2OTpcdFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI3MC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNzE6XHRcdGNtZF9tZW0gPSBjb250YWluZXJfb2YoY21kc1tpXS5vdXQsIHN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSwgb3V0KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNzItXHRcdGt2ZnJlZShjbWRfbWVtKTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjc4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI3OTpERUZJTkVfRlJFRShmcmVlX2NtZHMsIHN0cnVjdCBtbHg1X3ZkcGFfYXN5bmNfY21kICosIGt2ZnJlZShfVCkpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjgwOkRFRklORV9GUkVFKGZyZWVfY21kX21lbSwgc3RydWN0IG1seDVfZGVzdHJveV9ta2V5X21lbSAqLCBrdmZyZWUoX1QpKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI4MS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODI6c3RhdGljIGludCBkZXN0cm95X2RpcmVjdF9rZXlzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjgzLXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODQ6XHRzdHJ1Y3QgbWx4NV9kZXN0cm95X21rZXlfbWVtICpjbWRfbWVtIF9fZnJlZShmcmVlX2NtZF9tZW0pID0gTlVMTDtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODU6XHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kcyBfX2ZyZWUoZnJlZV9jbWRzKSA9IE5VTEw7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6Mjg2Olx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKmRtcjtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yODctXHRpbnQgZXJyID0gMDtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzAzLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjMwNDpcdGVyciA9IG1seDVfdmRwYV9leGVjX2FzeW5jX2NtZHMobXZkZXYsIGNtZHMsIG1yLVx1MDAzZW51bV9kaXJlY3RzKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMDUtXHRpZiAoZXJyKSB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzA2LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjMwNzpcdFx0bWx4NV92ZHBhX2VycihtdmRldiwgXCYjMzQ7ZXJyb3IgaXNzdWluZyBNVFQgbWtleSBkZWxldGlvbiBmb3IgZGlyZWN0IG1yczogJWRcXG5cJiMzNDssIGVycik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzA4LVx0XHRyZXR1cm4gZXJyO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMTItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRtciwgXHUwMDI2bXItXHUwMDNlaGVhZCwgbGlzdCkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjMxMzpcdFx0c3RydWN0IG1seDVfdmRwYV9hc3luY19jbWQgKmNtZCA9IFx1MDAyNmNtZHNbaSYjNDM7JiM0MztdO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMxNC1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzE3LVx0XHRcdGVyciA9IGVyciA/IGVyciA6IGNtZC1cdTAwM2VlcnI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzE4Olx0XHRcdG1seDVfdmRwYV9lcnIobXZkZXYsIFwmIzM0O2Vycm9yIGRlbGV0aW5nIE1UVCBta2V5IFsweCVsbHgsIDB4JWxseF06ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMxOS1cdFx0XHRcdGRtci1cdTAwM2VzdGFydCwgZG1yLVx1MDAzZWVuZCwgY21kLVx1MDAzZWVycik7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMyNS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozMjY6c3RhdGljIGludCBjcmVhdGVfaW5kaXJlY3Rfa2V5KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzI3LXtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzQ4LVx0TUxYNV9TRVQobWtjLCBta2MsIGxyLCAxKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozNDk6XHRtbHg1X3NldF9hY2Nlc3NfbW9kZShta2MsIE1MWDVfTUtDX0FDQ0VTU19NT0RFX0tMTVMpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM1MC1cdE1MWDVfU0VUKG1rYywgbWtjLCBxcG4sIDB4ZmZmZmZmKTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzU2LVx0ZmlsbF9pbmRpcihtdmRldiwgbXIsIGluKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozNTc6XHRlcnIgPSBtbHg1X3ZkcGFfY3JlYXRlX21rZXkobXZkZXYsIFx1MDAyNm1yLVx1MDAzZW1rZXksIGluLCBpbmxlbik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzU4LVx0a2ZyZWUoaW4pO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjEtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzYyOnN0YXRpYyB2b2lkIGRlc3Ryb3lfaW5kaXJlY3Rfa2V5KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbWtleSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjMte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjM2NDpcdG1seDVfdmRwYV9kZXN0cm95X21rZXkobXZkZXYsIG1rZXktXHUwMDNlbWtleSk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzY1LX1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjYtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzY3OnN0YXRpYyBpbnQgbWFwX2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjgtXHRcdFx0IHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGIpXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQwNS1cdFx0XHRpZiAoIXNnKSB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDA2Olx0XHRcdFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFwmIzM0O3NnIG51bGwuIHN0YXJ0IDB4JWxseCwgZW5kIDB4JWxseFxcblwmIzM0OyxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MDctXHRcdFx0XHRcdCAgICAgICBtYXAtXHUwMDNlc3RhcnQsIG1hcC1cdTAwM2VsYXN0ICYjNDM7IDEpO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MzItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDMzOnN0YXRpYyB2b2lkIHVubWFwX2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MzQte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00NDEtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDQyOnN0YXRpYyBpbnQgYWRkX2RpcmVjdF9jaGFpbihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDQzOlx0XHRcdCAgICBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00NDQtXHRcdFx0ICAgIHU2NCBzdGFydCxcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNDQ4LXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo0NDk6XHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ1MDpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpuO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ1MS1cdExJU1RfSEVBRCh0bXApO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00OTctICovXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDk4OnN0YXRpYyBpbnQgY3JlYXRlX3VzZXJfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ5OTpcdFx0XHQgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yLFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwMC1cdFx0XHQgIHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTAxLXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1MDI6XHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjUwMzpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpuO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwNC1cdHN0cnVjdCB2aG9zdF9pb3RsYl9tYXAgKm1hcDtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTY1LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjU2NjpzdGF0aWMgaW50IGNyZWF0ZV9kbWFfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01Njcte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01ODUtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NTg2Olx0ZXJyID0gbWx4NV92ZHBhX2NyZWF0ZV9ta2V5KG12ZGV2LCBcdTAwMjZtci1cdTAwM2Vta2V5LCBpbiwgaW5sZW4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTU4Ny1cdGlmICghZXJyKVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTMtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NTk0OnN0YXRpYyB2b2lkIGRlc3Ryb3lfZG1hX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTk1LXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1OTY6XHRtbHg1X3ZkcGFfZGVzdHJveV9ta2V5KG12ZGV2LCBtci1cdTAwM2Vta2V5KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTctfVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYz02MjM9c3RhdGljIHZvaWQgcHJ1bmVfaW90bGIoc3RydWN0IHZob3N0X2lvdGxiICppb3RsYilcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjI3LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjYyODpzdGF0aWMgdm9pZCBkZXN0cm95X3VzZXJfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02Mjkte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjYzMDpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpkbXI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjMxOlx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm47XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjMyLVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02NDEtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjQyOnN0YXRpYyB2b2lkIF9tbHg1X3ZkcGFfZGVzdHJveV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY0My17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY2NC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NjU6c3RhdGljIHZvaWQgbWx4NV92ZHBhX21yX2djX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY2Ni17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjY3Olx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgKm1yZXM7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjY4Olx0c3RydWN0IG1seDVfdmRwYV9tciAqbXIsICp0bXA7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjY5Olx0c3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2O1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY3MC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NzE6XHRtcmVzID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtbHg1X3ZkcGFfbXJfcmVzb3VyY2VzLCBnY19kd29ya19lbnQud29yayk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjcyLVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02ODAtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjgxOlx0bXZkZXYgPSBjb250YWluZXJfb2YobXJlcywgc3RydWN0IG1seDVfdmRwYV9kZXYsIG1yZXMpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY4Mi1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02ODMtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobXIsIHRtcCwgXHUwMDI2bXJlcy1cdTAwM2Vtcl9nY19saXN0X2hlYWQsIG1yX2xpc3QpIHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2ODQ6XHRcdF9tbHg1X3ZkcGFfZGVzdHJveV9tcihtdmRldiwgbXIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY4NS1cdH1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjg5LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjY5MDpzdGF0aWMgdm9pZCBfbWx4NV92ZHBhX3B1dF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjkxOlx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY5Mi17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjkzOlx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgKm1yZXMgPSBcdTAwMjZtdmRldi1cdTAwM2VtcmVzO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY5NC1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzA0LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcwNTp2b2lkIG1seDVfdmRwYV9wdXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcwNjpcdFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzA3LXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MDgtXHRtdXRleF9sb2NrKFx1MDAyNm12ZGV2LVx1MDAzZW1yZXMubG9jayk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzA5Olx0X21seDVfdmRwYV9wdXRfbXIobXZkZXYsIG1yKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MTAtXHRtdXRleF91bmxvY2soXHUwMDI2bXZkZXYtXHUwMDNlbXJlcy5sb2NrKTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzEyLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcxMzpzdGF0aWMgdm9pZCBfbWx4NV92ZHBhX2dldF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzE0Olx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcxNS17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcyMS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MjI6dm9pZCBtbHg1X3ZkcGFfZ2V0X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MjM6XHRcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcyNC17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzI1LVx0bXV0ZXhfbG9jayhcdTAwMjZtdmRldi1cdTAwM2VtcmVzLmxvY2spO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcyNjpcdF9tbHg1X3ZkcGFfZ2V0X21yKG12ZGV2LCBtcik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzI3LVx0bXV0ZXhfdW5sb2NrKFx1MDAyNm12ZGV2LVx1MDAzZW1yZXMubG9jayk7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcyOS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MzA6dm9pZCBtbHg1X3ZkcGFfdXBkYXRlX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MzE6XHRcdFx0IHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm5ld19tcixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MzItXHRcdFx0IHVuc2lnbmVkIGludCBhc2lkKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTczMy17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzM0Olx0c3RydWN0IG1seDVfdmRwYV9tciAqb2xkX21yID0gbXZkZXYtXHUwMDNlbXJlcy5tclthc2lkXTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MzUtXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTczNy1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3Mzg6XHRfbWx4NV92ZHBhX3B1dF9tcihtdmRldiwgb2xkX21yKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MzktXHRtdmRldi1cdTAwM2VtcmVzLm1yW2FzaWRdID0gbmV3X21yO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NDMtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzQ0OnN0YXRpYyB2b2lkIG1seDVfdmRwYV9zaG93X21yX2xlYWtzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NDUte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc0NjpcdHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc0Ny1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzUxLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc1MjpcdFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFwmIzM0O21rZXkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVzb3VyY2UgZGVsZXRlOiBcJiMzNDtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NTMtXHRcdFx0XHQgICAgICBcJiMzNDttcjogJXAsIG1rZXk6IDB4JXgsIHJlZmNvdW50OiAldVxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzYwLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc2MTp2b2lkIG1seDVfdmRwYV9jbGVhbl9tcnMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc2Mi17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc2Ni1cdGZvciAoaW50IGkgPSAwOyBpIFx1MDAzYyBNTFg1X1ZEUEFfTlVNX0FTOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3Njc6XHRcdG1seDVfdmRwYV91cGRhdGVfbXIobXZkZXYsIE5VTEwsIGkpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc2OC1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzcwLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc3MTpcdG1seDVfdmRwYV9zaG93X21yX2xlYWtzKG12ZGV2KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NzItfVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc3My1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3NzQ6c3RhdGljIGludCBfbWx4NV92ZHBhX2NyZWF0ZV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6Nzc1Olx0XHRcdFx0c3RydWN0IG1seDVfdmRwYV9tciAqbXIsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzc2LVx0XHRcdFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYilcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODEzLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjgxNDpzdHJ1Y3QgbWx4NV92ZHBhX21yICptbHg1X3ZkcGFfY3JlYXRlX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MTUtXHRcdFx0XHRcdCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTgxNi17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODE3Olx0c3RydWN0IG1seDVfdmRwYV9tciAqbXI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODE4LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODI0LVx0bXV0ZXhfbG9jayhcdTAwMjZtdmRldi1cdTAwM2VtcmVzLmxvY2spO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjgyNTpcdGVyciA9IF9tbHg1X3ZkcGFfY3JlYXRlX21yKG12ZGV2LCBtciwgaW90bGIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTgyNi1cdG11dGV4X3VubG9jayhcdTAwMjZtdmRldi1cdTAwM2VtcmVzLmxvY2spO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MzktXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODQwOmludCBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODQxLVx0XHRcdFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYixcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODU4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg1OTppbnQgbWx4NV92ZHBhX2NyZWF0ZV9kbWFfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2MC17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODYxOlx0c3RydWN0IG1seDVfdmRwYV9tciAqbXI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODYyLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg2MzpcdG1yID0gbWx4NV92ZHBhX2NyZWF0ZV9tcihtdmRldiwgTlVMTCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODY0LVx0aWYgKElTX0VSUihtcikpXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2Ni1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4Njc6XHRtbHg1X3ZkcGFfdXBkYXRlX21yKG12ZGV2LCBtciwgMCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODY4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg2OTpcdHJldHVybiBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihtdmRldiwgTlVMTCwgMCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODcwLX1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzEtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODcyOmludCBtbHg1X3ZkcGFfcmVzZXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1bnNpZ25lZCBpbnQgYXNpZClcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzMte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzYtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODc3Olx0bWx4NV92ZHBhX3VwZGF0ZV9tcihtdmRldiwgTlVMTCwgYXNpZCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODc4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg3OS1cdGlmIChhc2lkID09IDAgXHUwMDI2XHUwMDI2IE1MWDVfQ0FQX0dFTihtdmRldi1cdTAwM2VtZGV2LCB1bWVtX3VpZF8wKSkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg4MDpcdFx0aWYgKG1seDVfdmRwYV9jcmVhdGVfZG1hX21yKG12ZGV2KSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4ODE6XHRcdFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFwmIzM0O2NyZWF0ZSBETUEgTVIgZmFpbGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04ODItXHR9IGVsc2Uge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg4MzpcdFx0bWx4NV92ZHBhX3VwZGF0ZV9jdnFfaW90bGIobXZkZXYsIE5VTEwsIGFzaWQpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg4NC1cdH1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODg4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg4OTppbnQgbWx4NV92ZHBhX2luaXRfbXJfcmVzb3VyY2VzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTAte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg5MTpcdHN0cnVjdCBtbHg1X3ZkcGFfbXJfcmVzb3VyY2VzICptcmVzID0gXHUwMDI2bXZkZXYtXHUwMDNlbXJlcztcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODkzOlx0bXJlcy1cdTAwM2V3cV9nYyA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKFwmIzM0O21seDVfdmRwYV9tcl9nY1wmIzM0Oyk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODk0LVx0aWYgKCFtcmVzLVx1MDAzZXdxX2djKVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTYtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODk3Olx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2bXJlcy1cdTAwM2VnY19kd29ya19lbnQsIG1seDVfdmRwYV9tcl9nY19oYW5kbGVyKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTgtXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTkwNi1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTE0NAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDMwMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGxpY2F0aW9ucyBvZiBhIFN5emJvdC1UZXN0ZWQgTUxYNSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhlIHBhdGNoIGlzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gVGhhdCYjMzk7cyB0aGUgY29yZSBFdGhlcm5ldCBkcml2ZXIgZm9yIHRoZSBNTFg1IGhhcmR3YXJlLCBnb3QgaXQuIEFuZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24sIGBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2YCwgaGludHMgYXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIE1QViBmZWF0dXJlIG9yIHNvbWUgc29ydCBvZiBkZXZpY2UgY29tbXVuaWNhdGlvbiBldmVudCBoYW5kbGluZy4gQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gaXMgdGhpcyBldmVuICpyZWFjaGFibGUqIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IE5vcm1hbGx5LCB0aGVzZSBoYXJkd2FyZSBkcml2ZXJzIGFyZSBjb21wbGV0ZWx5IGluYWNjZXNzaWJsZSBpbiBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSB1bmxlc3MgeW91IGhhdmUgYSBlbXVsYXRlZCBQQ0kgZGV2aWNlLiBBbmQsIGFzIGZhciBhcyBJIGtub3csIHRoZXJlIGlzbiYjMzk7dCBhbiBNTFg1IGVtdWxhdG9yIGluIFFFTVUgb3IgdGhlIGtlcm5lbC4KCk5vdywgd2FpdC4uLiBzeXpib3QgdXNlcyBRRU1VIGFuZCBHQ0UsIGRvZXNuJiMzOTt0IGl0PyBBbmQgU3l6a2FsbGVyIGRlZmluaXRlbHkgZG9lc24mIzM5O3QgaGF2ZSBhbiBNTFg1IGVtdWxhdG9yLiBIbW0uLi4gdGhlIGNvbW1pdCBtZXNzYWdlIHNheXMgJiMzNDtzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcmIzM0Oy4gVGhpcyBtZWFucyBzb21lb25lIHN1Ym1pdHRlZCB0aGUgcGF0Y2gsIGFuZCBzeXpib3QmIzM5O3MgcnVubmluZyB0ZXN0cyBvbiBpdC4gVGhhdCYjMzk7cyBnb29kLCBidXQgaG93IGlzIHRoaXMgZXZlbiAqcG9zc2libGUqPyBJZiB0aGUgcGF0Y2ggaXMgaW4gYSBoYXJkd2FyZSBkcml2ZXIgdGhhdCBpc24mIzM5O3QgYWNjZXNzaWJsZSwgc3l6Ym90IHNob3VsZG4mIzM5O3QgYmUgYWJsZSB0byBmdXp6IGl0ISAKCkkgbmVlZCB0byBkaWcgZGVlcGVyLiBJIGhhdmUgdG8gY2hlY2sgaWYgdGhlIGBtbHg1YCBkcml2ZXIgaXMgZXZlbiByZWFjaGFibGUuIElzIHRoZXJlICphbnkqIGBtbHg1YCBkZXZpY2UgZW11bGF0aW9uPyBDYW4gaXQgYmUgaW5zdGFudGlhdGVkIHZpYSBuZXRkZXZzaW0gb3Igc29tZXRoaW5nPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgc3l6Ym90JiMzOTtzIHRlc3RpbmcgdGhpcy4gVGhpcyBpcyBhbiBpbnRlcmVzdGluZyBjb251bmRydW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L21seHN3LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5ODQyCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipJbnZlc3RpZ2F0aW5nIERyaXZlciBEaWZmZXJlbnRpYXRpb24qKgoKSG1tLCBob2xkIG9uIGEgc2Vjb25kLiBNeSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIG9mZi4gYG1seHN3YCBpcyBhIGRpc3RpbmN0IGRyaXZlciwgaXNuJiMzOTt0IGl0PyBPa2F5LCBzbyB0aGF0IG1lYW5zIHRoZSBhcHByb2FjaCBJIHdhcyB0aGlua2luZyBhYm91dCBlYXJsaWVyIGxpa2VseSB3b24mIzM5O3QgYXBwbHkgZGlyZWN0bHkuIEkgbmVlZCB0byBiZSBtb3JlIHByZWNpc2UgaW4gbXkgaW52ZXN0aWdhdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoZSBzaW11bGF0ZWQgbmV0d29ya2luZyBlbnZpcm9ubWVudCBpcyB3aGF0IEkmIzM5O20gaW50ZXJlc3RlZCBpbiwgdG8gc3RhcnQuIFRvIGNsYXJpZnkgbXkgbWVudGFsIG1vZGVsLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBmb3IgYW55IHJlbGV2YW50IGBtbHg1YCBjb21wb25lbnRzIGluIHRoZSBgZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2AgZGlyZWN0b3J5LiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0LCBnaXZlbiB0aGUgY29udGV4dC4gSSYjMzk7bSBsb29raW5nIGZvciBzaW11bGF0ZWQgbmV0d29yayBkZXZpY2UgZHJpdmVycyBhbmQgSSBuZWVkIHRvIGVzdGFibGlzaCB0aGUgcmVsYXRpb25zaGlwcyB3aXRoaW4gdGhhdCBzaW11bGF0ZWQgZHJpdmVyLiBMZXQmIzM5O3MgZGlnIGluIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21seDUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9uZXRkZXZzaW0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAxMTEKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgbWx4NSBEcml2ZXI6IEEgUmVhbGl0eSBDaGVjayoqCgpPa2F5LCBsZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb2J2aW91cyB0YXJnZXRzIGZvciBmdXp6aW5nIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AuIEkmIzM5O20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gYW55dGhpbmcgdGhhdCBoYW5kbGVzIGV4dGVybmFsIGlucHV0IG9yIHBvdGVudGlhbGx5IGhhcyBjb21wbGV4IHN0YXRlIHRyYW5zaXRpb25zLiBBaCwgaGVyZSYjMzk7cyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtbHg1X2RldmNvbV9zZW5kX2V2ZW50YC4gVGhhdCBzZWVtcyBsaWtlIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byBpbnZlc3RpZ2F0ZS4KCkJ1dCB3YWl0LCBhIHF1aWNrIHJlYWxpdHkgY2hlY2sgaXMgaW4gb3JkZXIuIFRoaXMgaXMgdGhlIE1lbGxhbm94IENvbm5lY3RYIGNvcmUgZHJpdmVyLCBhbmQgbXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGl0JiMzOTtzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgaGFyZHdhcmUuIFRoYXQgbWFrZXMgaXQgbW9yZSBjaGFsbGVuZ2luZyB0byB3b3JrIHdpdGguIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYCByZXF1aXJlcyBhIHBoeXNpY2FsIFBDSSBkZXZpY2Ug4oCTIENvbm5lY3RYLTQvNS82Lzcgc3BlY2lmaWNhbGx5IOKAkyB0byBmdW5jdGlvbi4gV2l0aG91dCB0aGF0IGhhcmR3YXJlIHByZXNlbnQsIHRoZSBgcHJvYmVgIGZ1bmN0aW9uIHdpbGwgbmV2ZXIgZXZlbiBiZSBjYWxsZWQuIENvbnNlcXVlbnRseSwgbm9uZSBvZiB0aGUgY29kZSB3aXRoaW4gd2lsbCBleGVjdXRlLgoKU28sIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgcHJvYmVgIGZ1bmN0aW9uIGFuZCBob3cgaXQgd29ya3MuIFRoYXQmIzM5O3MgdGhlIHJlYWwgZW50cnkgcG9pbnQgSSBuZWVkIHRvIGZvY3VzIG9uLiBMb29rcyBsaWtlIEkmIzM5O20gZ29pbmcgdG8gbmVlZCB0byBsb29rIGF0IGhvdyB0byBlbXVsYXRlIHRoZSBoYXJkd2FyZSB0byBnZXQgYW55d2hlcmUgdXNlZnVsIGluIGEgZnV6emluZyBzY2VuYXJpby4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYz0yMjQxPWludCBtbHg1X3JlY292ZXJfZGV2aWNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yMjUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyMjUyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBtbHg1X2NvcmVfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yMjUzLVx0Lm5hbWUgICAgICAgICAgID0gS0JVSUxEX01PRE5BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNzgwCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogNTM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0aCB0byBhIFBvdGVudGlhbCBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IHNvbWV0aGluZyByZWxhdGVkIHRvIE1lbGxhbm94IENvbm5lY3RYIGhhcmR3YXJlLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFsd2F5cywgJiMzNDtDYW4gUUVNVSBoZWxwIG1lIGhlcmU/JiMzNDsgSSBrbm93IFFFTVUgcHJldHR5IHdlbGw7IGl0IGhhcyB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIGVtdWxhdGVkIE5JQ3MgbGlrZSBgZTEwMDBgLCBgdmlydGlvLW5ldGAsIGFuZCB0aGUgcmVzdC4gQnV0IGRvZXMgaXQgZW11bGF0ZSBhbnkgTWVsbGFub3ggQ29ubmVjdFggdmVyc2lvbnMgbGlrZSB0aGUgNCwgNSwgNiwgb3IgNz8gTm8sIG5vdCBkaXJlY3RseS4gSSByZWNhbGwgc29tZSByZWNlbnQgYWRkaXRpb25zLCBidXQgYG1seDVgIGlzIG5vdCBhbW9uZyB0aGVtLgoKVGhlIG5leHQgdGhvdWdodCBpcyBhbHdheXMgU3l6a2FsbGVyLiBEb2VzIGl0IG9mZmVyIGEgYmFja2Rvb3I/IERvZXMgU3l6a2FsbGVyIGhhdmUgYW55IHdheSB0byByZWFjaCBpdD8KClN5emthbGxlciB1c2VzIGBzeXotZXhlY3V0b3JgLiBDYW4gaXQgaW5qZWN0IFBDSSBkZXZpY2VzPyBXaXRoIGVpdGhlciBgdmhjaWAgb3IgYHZmaW9gPyBObywgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGVtdWxhdGUgYXJiaXRyYXJ5IFBDSSBkZXZpY2VzIGluIGEgZ2VuZXJpYyB3YXkuIEl0IGNhbiBmdXp6IFBDSSBmdW5jdGlvbmFsaXR5IHVzaW5nIGBzeXpfcGNpX2RldmljZWAsICppZiogUENJIGZ1enppbmcgaXMgZW5hYmxlZC4gV2FpdCwgU3l6a2FsbGVyICpkb2VzKiBoYXZlIFBDSSBmdXp6aW5nISBJbnRlcmVzdGluZy4uLgoKU28sIFN5emthbGxlciBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcywgYnV0IGhvdz8gVXNpbmcgdGhlIGBzeXpfcGNpX2RldmljZWAgcHNldWRvLXN5c2NhbGwuIFRoYXQgaW5qZWN0cyBQQ0kgZGV2aWNlcywgYnV0IGhvdz8gVmlydHVhbCBQQ0kgaG9zdCBjb250cm9sbGVyLCByYXcgUENJIGluamVjdGlvbiwgb3IgdXNlci1zcGFjZSBQQ0kgZW11bGF0aW9uPyBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0LiBXYWl0LCB0aGUgYHN5el9wY2lgIG1lY2hhbmlzbS4gRG9lcyB0aGF0IHVzZSBgdmZpb2Agb3Igc2ltaWxhcj8gTm8sIFN5emthbGxlciYjMzk7cyBQQ0kgZnV6emVyIGluIFFFTVUgY29uZmlndXJlcyBQQ0kgY29uZmlnIHNwYWNlLCBNTUlPL1BJTyBpbiBRRU1VPyBObywgaXQgdXNlcyBhIGN1c3RvbSBQQ0kgZGV2aWNlIGluIFFFTVUgb3IgYSBzb2Z0d2FyZSBQQ0kgaG9zdCBicmlkZ2UuIE9rYXksIHRoYXQmIzM5O3Mgd2hhdCYjMzk7cyBpbXBvcnRhbnQuCgpUaGUgY29yZSBxdWVzdGlvbiBub3c6IGNhbiBTeXprYWxsZXIgZnV6eiBQQ0kgZHJpdmVycywgKmluIGdlbmVyYWwqPyBZZXMsIGl0IGNhbiEgSXQgaGFzIGEgYHN5el9wY2lgIHN1YnN5c3RlbSBzcGVjaWZpY2FsbHkgZm9yIHRoaXMgcHVycG9zZS4gRXhjZWxsZW50LiBUaGF0JiMzOTtzIGEgaHVnZSBwb3NpdGl2ZSBpbmRpY2F0b3IuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZXN0YWJsaXNoIHNvbWUgcHJlLWNvbmRpdGlvbnMuIEFyZSBgQ09ORklHX1BDSWAgYW5kIGBDT05GSUdfTUxYNV9DT1JFYCBlbmFibGVkIHdpdGhpbiBTeXprYWxsZXImIzM5O3MgY29uZmlndXJhdGlvbj8gSWYgYm90aCBhcmUgZW5hYmxlZCwgdGhlbiB0aGlzIGNvZGUgcGF0aCAqbWlnaHQqIGJlIHJlYWNoYWJsZSBieSB0aGUgZnV6emVyLiBJdCYjMzk7cyBhIGtleSBmaXJzdCBzdGVwLgoKVGhlIHRhcmdldCBpcyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAuIElzIHRoYXQgZnVuY3Rpb24gcmVhY2hhYmxlPyBJdCYjMzk7cyB0aGUgb25lIG1vZGlmaWVkIGJ5IHRoZSBwYXRjaCwgc28gaWYgd2UgY2FuIHJlYWNoIGl0LCBpdCB3aWxsIGJlIHJlYWNoYWJsZS4KCk5vdywgd2hlcmUgaXMgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgIGxvY2F0ZWQ/IEl0JiMzOTtzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gTGV0JiMzOTtzIGhhdmUgYSBsb29rLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDIwMDpcdFxuIDIwMTpcdHN0YXRpYyB2b2lkIG1seDVlX2VuYWJsZV9hc3luY19ldmVudHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXG4gMjAyOlx0e1xuIDIwMzpcdFx0cHJpdi1cdTAwM2VldmVudHNfbmIubm90aWZpZXJfY2FsbCA9IGFzeW5jX2V2ZW50O1xuIDIwNDpcdFx0bWx4NV9ub3RpZmllcl9yZWdpc3Rlcihwcml2LVx1MDAzZW1kZXYsIFx1MDAyNnByaXYtXHUwMDNlZXZlbnRzX25iKTtcbiAyMDU6XHR9XG4gMjA2Olx0XG4gMjA3Olx0c3RhdGljIHZvaWQgbWx4NWVfZGlzYWJsZV9hc3luY19ldmVudHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXG4gMjA4Olx0e1xuIDIwOTpcdFx0bWx4NV9ub3RpZmllcl91bnJlZ2lzdGVyKHByaXYtXHUwMDNlbWRldiwgXHUwMDI2cHJpdi1cdTAwM2VldmVudHNfbmIpO1xuIDIxMDpcdH1cbiAyMTE6XHRcbiAyMTI6XHRzdGF0aWMgaW50IG1seDVlX2RldmNvbV9ldmVudF9tcHYoaW50IGV2ZW50LCB2b2lkICpteV9kYXRhLCB2b2lkICpldmVudF9kYXRhKVxuIDIxMzpcdHtcbiAyMTQ6XHRcdHN0cnVjdCBtbHg1ZV9wcml2ICptYXN0ZXJfcHJpdiA9IGV2ZW50X2RhdGE7XG4gMjE1Olx0XG4gMjE2Olx0XHRzd2l0Y2ggKGV2ZW50KSB7XG4gMjE3Olx0XHRjYXNlIE1QVl9ERVZDT01fTUFTVEVSX1VQOlxuIDIxODpcdFx0XHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShtYXN0ZXJfcHJpdi1cdTAwM2VkZXZjb20sIHRydWUpO1xuIDIxOTpcdFx0XHRicmVhaztcbiAyMjA6XHRcdGNhc2UgTVBWX0RFVkNPTV9NQVNURVJfRE9XTjpcbiAyMjE6XHRcdFx0Lyogbm8gbmVlZCBmb3IgY29tcCBzZXQgcmVhZHkgZmFsc2Ugc2luY2Ugd2UgdW5yZWdpc3RlciBhZnRlclxuIDIyMjpcdFx0XHQgKiBhbmQgaXQgaHVydHMgY2xlYW51cCBmbG93LlxuIDIyMzpcdFx0XHQgKi9cbiAyMjQ6XHRcdFx0YnJlYWs7XG4gMjI1Olx0XHRjYXNlIE1QVl9ERVZDT01fSVBTRUNfTUFTVEVSX1VQOlxuIDIyNjpcdFx0Y2FzZSBNUFZfREVWQ09NX0lQU0VDX01BU1RFUl9ET1dOOlxuIDIyNzpcdFx0XHRtbHg1ZV9pcHNlY19oYW5kbGVfbXB2X2V2ZW50KGV2ZW50LCBteV9kYXRhLCBldmVudF9kYXRhKTtcbiAyMjg6XHRcdFx0YnJlYWs7XG4gMjI5Olx0XHR9XG4gMjMwOlx0XG4gMjMxOlx0XHRyZXR1cm4gMDtcbiAyMzI6XHR9XG4gMjMzOlx0XG4gMjM0Olx0c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcbiAyMzU6XHR7XG4gMjM2Olx0XHRzdHJ1Y3QgbWx4NV9kZXZjb21fbWF0Y2hfYXR0ciBhdHRyID0ge1xuIDIzNzpcdFx0XHQua2V5LnZhbCA9ICpkYXRhLFxuIDIzODpcdFx0fTtcbiAyMzk6XHRcbiAyNDA6XHRcdHByaXYtXHUwMDNlZGV2Y29tID0gbWx4NV9kZXZjb21fcmVnaXN0ZXJfY29tcG9uZW50KHByaXYtXHUwMDNlbWRldi1cdTAwM2Vwcml2LmRldmMsXG4gMjQxOlx0XHRcdFx0XHRcdFx0ICAgICAgTUxYNV9ERVZDT01fTVBWLFxuIDI0MjpcdFx0XHRcdFx0XHRcdCAgICAgIFx1MDAyNmF0dHIsXG4gMjQzOlx0XHRcdFx0XHRcdFx0ICAgICAgbWx4NWVfZGV2Y29tX2V2ZW50X21wdixcbiAyNDQ6XHRcdFx0XHRcdFx0XHQgICAgICBwcml2KTtcbiAyNDU6XHRcdGlmICghcHJpdi1cdTAwM2VkZXZjb20pXG4gMjQ2Olx0XHRcdHJldHVybiAtRUlOVkFMO1xuIDI0NzpcdFxuIDI0ODpcdFx0aWYgKG1seDVfY29yZV9pc19tcF9tYXN0ZXIocHJpdi1cdTAwM2VtZGV2KSkge1xuIDI0OTpcdFx0XHRtbHg1X2RldmNvbV9zZW5kX2V2ZW50KHByaXYtXHUwMDNlZGV2Y29tLCBNUFZfREVWQ09NX01BU1RFUl9VUCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3NzkKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAzOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgIFJlYWNoYWJpbGl0eSoqCgpPa2F5LCBzbyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAgaXMgcmVnaXN0ZXJlZCB1c2luZyBgbWx4NV9kZXZjb21fcmVnaXN0ZXJfY29tcG9uZW50YC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgY29kZSBwYXRoIGFjdHVhbGx5IGJlIGV4ZWN1dGVkPyBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgc3l6a2FsbGVyIGNvdWxkIGJlIHVzZWQgdG8gdHJpZ2dlciB0aGUgcHJvYmUgb2YgdGhlIGBtbHg1X2NvcmVfZHJpdmVyYCBiZWNhdXNlIGl0IGNhbiBmdXp6IFBDSSBkZXZpY2VzLiBCdXQgaG9sZCBvbiwgdGhlIGBtbHg1X2NvcmVgIGRyaXZlciBpcyBpbmNyZWRpYmx5IGNvbXBsZXguIERvZXMgc3l6a2FsbGVyIGV2ZW4gdGFyZ2V0IGl0IHNwZWNpZmljYWxseSwgb3IgYW0gSSBqdXN0IGxvb2tpbmcgYXQgZ2VuZXJpYyBQQ0kgZnV6emluZz8KCkxldCBtZSBjaGVjay4gRG9lcyBzeXprYWxsZXIgaGF2ZSB0YWlsb3JlZCBkZXNjcmlwdGlvbnMgZm9yIGBtbHg1YCwgb3IgaXMgaXQganVzdCByZWx5aW5nIG9uIHRoZSBnZW5lcmFsIGBzeXpfcGNpX2RldmljZWAgYXBwcm9hY2g/IFJpZ2h0LCBnZW5lcmljIGZ1enppbmcgaW52b2x2ZXMgdXNpbmcgYHN5el9wY2lfZGV2aWNlYCwgcHJvdmlkaW5nIHZlbmRvci9kZXZpY2UgSURzIHRvIG1hdGNoIHRoZSBoYXJkd2FyZSwgYW5kIHRoZW4gZnV6emluZyBNTUlPL1BJTyByZWdpb25zLgoKTm93LCB0aGlzIHByb21wdCBkb2VzIHNwZWNpZnkgdGhhdCBJIHNob3VsZCBtYXJrIHNvbWV0aGluZyBhcyBub3Qgd29ydGggZnV6emluZyBpZiBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBJcyBgbWx4NWAgZXZlbiBhY2Nlc3NpYmxlIGluIGEgdmlydHVhbGl6ZWQgY29udGV4dD8gTm8gc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZm9yIGBtbHg1YCBleGlzdHMgaW4gdGhlIGtlcm5lbCwgbGlrZSBgbWFjODAyMTFfaHdzaW1gIG9yIGB1c2IgZ2FkZ2V0YC4gQW5kIGRlZmluaXRlbHkgbm90IHdpdGggYG5ldGRldnNpbWAuIFdoYXQgYWJvdXQgUUVNVT8gTm9wZSwgbm8gYG1seDVgIGVtdWxhdG9yIGluIFFFTVUuCgpCdXQgd2FpdCBhIG1pbnV0ZSwgdGhlIFBDSSBmdXp6ZXIgKmNhbiogdHJpZ2dlciBQQ0kgcHJvYmUgZnVuY3Rpb25zISBIb3dldmVyLCB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMgd2hldGhlciBpdCBjYW4gcGVuZXRyYXRlIHRoZSBkcml2ZXImIzM5O3MgY29yZSBsb2dpYy4gVGhlIFBDSSBmdXp6ZXIgaXMgZmVlZGluZyByYW5kb20gZGF0YSB0byB0aGUgTU1JTyByZWFkcy4gVGhlIGRyaXZlciB3aWxsIHJlYWQgZnJvbSBNTUlPIGFuZCByZWNlaXZlIHJhbmRvbSBkYXRhLCB3aGljaCB3aWxsIGxpa2VseSBjYXVzZSBhbiBlYXJseSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLiBTbyBJIHNob3VsZCBub3cgY2hlY2sgd2hlcmUgYG1seDVlX2RldmNvbV9pbml0X21wdmAgaXMgY2FsbGVkLCB0byBkZXRlcm1pbmUgaG93IGRlZXAgdGhpcyBnb2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZV9kZXZjb21faW5pdF9tcHYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9MjEyPXN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjIzNDpzdGF0aWMgaW50IG1seDVlX2RldmNvbV9pbml0X21wdihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdTY0ICpkYXRhKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yMzUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9MjcyPXN0YXRpYyBpbnQgYmxvY2tpbmdfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4Ni1cdGNhc2UgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6Mjg3Olx0XHRpZiAobWx4NWVfZGV2Y29tX2luaXRfbXB2KHByaXYsIGRhdGEpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODgtXHRcdFx0cmV0dXJuIE5PVElGWV9CQUQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDA4CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogNjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FIEV2ZW50KioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoaXMgYGJsb2NraW5nX2V2ZW50YCBmdW5jdGlvbiBjYWxsLCBzcGVjaWZpY2FsbHkgdHJpZ2dlcmVkIGJ5IHRoZSBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgZXZlbnQuIFJpZ2h0LCBzbyB3ZSBrbm93IHRoaXMgZXZlbnQgb3JpZ2luYXRlcyBmcm9tIHRoZSBtbHg1IGNvcmUgZHJpdmVyIOKAkyB3aGljaCBtYWtlcyBzZW5zZS4gTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gcGlucG9pbnQgd2hlcmUgKmV4YWN0bHkqIHRoaXMgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGlzIGJlaW5nIGdlbmVyYXRlZCB3aXRoaW4gdGhhdCBkcml2ZXIuIFRpbWUgdG8gdHJhY2UgdGhhdCBiYWNrIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTI3Mj1zdGF0aWMgaW50IGJsb2NraW5nX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODUtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyODY6XHRjYXNlIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkU6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4Ny1cdFx0aWYgKG1seDVlX2RldmNvbV9pbml0X21wdihwcml2LCBkYXRhKSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ0MjQKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEZWJ1Z2dpbmcgdGhlIEdlbmVyYXRpb24gUHJvY2VzcyoqCgpBbHJpZ2h0LCB0aGUgb3V0cHV0JiMzOTtzIHRoZXJlLCBidXQgKndoZXJlKiBpcyBpdCBiZWluZyBjb25qdXJlZD8gQSBxdWljayBjaGVjayBvbiB0aGUgb2J2aW91cyBjYW5kaWRhdGUgb3V0cHV0cyBkaWQgbm90IGV4cG9zZSB3aGVyZSB0aGUgdGV4dCBpcyBjcmVhdGVkLiBUaGlzIHNlZW1zIHVuZXhwZWN0ZWQuIE9rYXksIEkmIzM5O2xsIG5lZWQgdG8gZXhwYW5kIG15IHNlYXJjaC4gVGltZSB0byBkbyBhIGZ1bGwtdGV4dCBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwuIExldCYjMzk7cyBkaWcgaW4gYW5kIGZpbmQgdGhpcyBnZW5lcmF0aW9uIHBvaW50LiBJJiMzOTtsbCBuZWVkIHRvIHRyYWNlIHRoZSBkYXRhIGZsb3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jPTM5NDQ9c3RhdGljIGJvb2wgbWx4NV9pYl9iaW5kX3NsYXZlX3BvcnQoc3RydWN0IG1seDVfaWJfZGV2ICppYmRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzk3OC1cdG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkobXBpLVx1MDAzZW1kZXYsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzk3OTpcdFx0XHRcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORSxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgwLVx0XHRcdFx0ICBcdTAwMjZrZXkpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5ODEtXHRtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KGliZGV2LVx1MDAzZW1kZXYsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzk4MjpcdFx0XHRcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORSxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgzLVx0XHRcdFx0ICBcdTAwMjZrZXkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9MjcyPXN0YXRpYyBpbnQgYmxvY2tpbmdfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4NS1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjI4NjpcdGNhc2UgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjg3LVx0XHRpZiAobWx4NWVfZGV2Y29tX2luaXRfbXB2KHByaXYsIGRhdGEpKVxuLS1cbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaD0zNjg9ZW51bSBtbHg1X2RyaXZlcl9ldmVudCB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oLTM3My1cdE1MWDVfRFJJVkVSX0VWRU5UX1NGX1BFRVJfREVWTElOSyxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaDozNzQ6XHRNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oLTM3NS1cdE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX1JFTU9WRUQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MTUwCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMzUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBtbHg1IEluZmluaWJhbmQgRHJpdmVyIENvbnRleHQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNgLiBOYXR1cmFsbHksIHRoaXMgc2NyZWFtcyBJbmZpbmliYW5kIGFuZCBNZWxsYW5veCBoYXJkd2FyZSAoYG1seDVgKSB0byBtZS4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgZG9lcyB0aGlzIHJlbHkgKnNvbGVseSogb24gdGhlIHBoeXNpY2FsIGhhcmR3YXJlPyBJcyB0aGVyZSBhbnkgc29mdHdhcmUgZW11bGF0aW9uIG9mIHRoZSBgbWx4NWAgZGV2aWNlPyBNeSBpbml0aWFsIHRob3VnaHQgZ29lcyB0byBgdmRwYWAgLSBJIHJlY2FsbCBzZWVpbmcgYGRyaXZlcnMvdmRwYS9tbHg1L2AuIEhvd2V2ZXIsIGB2ZHBhYCBpcyBqdXN0IGEgKmZyYW1ld29yayogZm9yIHZpcnRpbyBkYXRhIHBhdGggYWNjZWxlcmF0aW9uLiBTcGVjaWZpY2FsbHksIGBtbHg1X3ZkcGFgIGlzIGEgZHJpdmVyIHRoYXQgbGV2ZXJhZ2VzIE1lbGxhbm94IGhhcmR3YXJlIHRvIGFjY2VsZXJhdGUgdmlydGlvOyBpdCAqc3RpbGwqIGZ1bmRhbWVudGFsbHkgZGVwZW5kcyBvbiB0aGUgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgKGBtbHg1X2NvcmVfZGV2YCkuIFNvLCBubywgbm8gc29mdHdhcmUgZW11bGF0aW9uIGluIHRoaXMgY29udGV4dC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuCgpOb3csIHdhaXQgYSBtaW51dGUuLi5zeXpib3QgdGVzdGVkIHRoaXMgcGF0Y2g/IEhvdyBkaWQgKnRoYXQqIGhhcHBlbj8gSSBuZWVkIHRvIGNsYXJpZnkgd2hhdCB0aGF0IG1lYW5zLiBUaGUgY29tbWl0IG1lc3NhZ2UganVzdCBzYXlzLCAmIzM0O3N5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldyYjMzQ7LiBUaGF0JiMzOTtzIGEgKnN0YW5kYXJkKiBzeXpib3QgbWVzc2FnZSwgaW5kaWNhdGluZyB0aGUgcGF0Y2ggd2FzIHN1Ym1pdHRlZCBmb3IgdGVzdGluZy4gSXQgZG9lc24mIzM5O3QgbWVhbiBzeXpib3QgYWN0dWFsbHkgZXhlY3V0ZWQgdGhlIGNvZGUgb3IgZm91bmQgYSBidWcuIEl0IHNpbXBseSBtZWFucyBzb21lb25lLCBsaWtlbHkgdmlhIGEgYCNzeXogdGVzdGAgY29tbWFuZCwgcmVxdWVzdGVkIHN5emJvdCB0byBjaGVjayB0aGUgcGF0Y2guCgpDcnVjaWFsbHksIGlmIHRoZSBjb2RlIHBhdGggaXMgKnVucmVhY2hhYmxlKiBpbiBzeXpib3QmIzM5O3MgZW52aXJvbm1lbnQgKFFFTVUvR0NFIHdpdGhvdXQgTWVsbGFub3ggaGFyZHdhcmUpLCBzeXpib3Qgd2lsbCBjb21waWxlIHRoZSBjb2RlLCBib290LCBhbmQgcnVuIHNvbWUgYmFzaWMgZnV6emluZywgcmVwb3J0aW5nIGFuIHVuaW5mb3JtYXRpdmUgJiMzNDtPSyYjMzQ7IGJlY2F1c2UgaXQgZGlkbiYjMzk7dCBjcmFzaC4gSXQgaGFzbiYjMzk7dCBhY3R1YWxseSBmdXp6ZWQgdGhlICptb2RpZmllZCogY29kZS4gU28sIHRoZSBzeXpib3QgdGVzdCByZXN1bHQgaXMgaGlnaGx5IHN1c3BlY3QgaGVyZS4KClRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSYjMzk7bGwgbmVlZCB0byBkaWcgZGVlcGVyLiBJIG5lZWQgdG8gbWFrZSAqYWJzb2x1dGVseSogc3VyZSB0aGVyZSYjMzk7cyBubyB3YXkgdGhlIGBtbHg1YCBmdW5jdGlvbmFsaXR5IGNhbiBiZSBzaW11bGF0ZWQsIGV2ZW4gaW4gYSB2ZXJ5IGJhc2ljIHdheS4gTGV0JiMzOTtzIGRvIGEgbW9yZSB0aG9yb3VnaCBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwgc291cmNlIGZvciBhbnkgbWVudGlvbnMgb2YgYG1seDVgIGNvbWJpbmVkIHdpdGggYHNpbWAgb3IgYGR1bW15YC4gVGhhdCB3aWxsIHByb3ZpZGUgY29uZmlybWF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1LipzaW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTU3MTc9c3RhdGljIGludCBtbHg1ZV9xdWV1ZV9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKm9sZHEsIGludCBxdWV1ZV9pbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTcxOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjU3MTk6XHQvKiBJbiBtbHg1IGEgdHhxIGNhbm5vdCBiZSBzaW1wbHkgc3RvcHBlZCBpbiBpc29sYXRpb24sIG9ubHkgcmVzdGFydGVkLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy01NzIwLVx0ICogbWx4NWVfcXVldWVfc3RhcnQgZG9lcyBub3QgZmFpbCwgd2Ugc3RvcCB0aGUgb2xkIHF1ZXVlIHRoZXJlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MTgwPXN0YXRpYyBpbnQgaHdzX2J3Y19tYXRjaGVyX21vdmUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMjI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoyMjY6aW50IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTIyNy1cdFx0XHRcdCAgICAgIHN0cnVjdCBtbHg1aHdzX3RhYmxlICp0YWJsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTMyMD1tbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZShzdHJ1Y3QgbWx4NWh3c190YWJsZSAqdGFibGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNTItXHRlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjM1MzpcdFx0cmV0ID0gbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKGJ3Y19tYXRjaGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNTQtXHRcdFx0XHRcdFx0XHR0YWJsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzcwOmludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzcxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTM4Nz1pbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM5OS1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6NDAwOlx0XHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNDAxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NTk2PXN0YXRpYyBpbnQgaHdzX2J3Y19ydWxlX2NudF9kZWNfd2l0aF9zaHJpbmsoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo2Mjk6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02MzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NjUzPWludCBtbHg1aHdzX2J3Y19ydWxlX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjYxLVx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo2NjI6XHRcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz05ODg9c3RhdGljIGludCBod3NfYndjX3J1bGVfY250X2luY193aXRoX3JlaGFzaChzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxMDI0OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDI1LVx0XHRcdFx0ICAgdTMyICptYXRjaF9wYXJhbSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTExMjc9bWx4NWh3c19id2NfcnVsZV9jcmVhdGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTE1OC1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTE1OTpcdFx0cmV0ID0gbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKGJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMTYwLVx0XHRcdFx0XHRcdCAgICAgcGFyYW1zLVx1MDAzZW1hdGNoX2J1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTcwPWludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo3MTptbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC03Mi1cdFx0XHRcdCAgc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjc4OmludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTc5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg9ODI9dm9pZCBtbHg1aHdzX2J3Y19ydWxlX2ZyZWUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjg0OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC04NS1cdFx0XHRcdCAgIHUzMiAqbWF0Y2hfcGFyYW0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC04OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6OTA6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtOTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTM4OD1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXRfZmlyc3Qoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDExOlx0cmV0ID0gbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIsIHN1Ym0tXHUwMDNldGJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQxMi1cdFx0XHRcdFx0XHRwcmlvcml0eSwgbWF0Y2hfY3JpdGVyaWEsIG1hc2ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQyNy1kZXN0cm95X21hdGNoZXI6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDI4Olx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVx1MDAzZWJ3Y19tYXRjaGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTQzMz1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLCBpbnQgaWR4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00ODEtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo0ODI6XHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3VibS1cdTAwM2Vid2NfbWF0Y2hlciwgc3VibS1cdTAwM2V0YmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDgzLVx0XHRcdFx0XHRcdHByaW9yaXR5LCBtYXRjaF9jcml0ZXJpYSwgbWFzayxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDk5LWRlc3Ryb3lfbWF0Y2hlcjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MDA6XHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUwMS1mcmVlX21hdGNoZXI6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTUxMT1zdGF0aWMgdm9pZCBod3Nfc3VibWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTIyLVx0aWYgKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MjM6XHRcdG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3VibS1cdTAwM2Vid2NfbWF0Y2hlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTI0LVx0XHRpZiAoaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz03NDk9c3RhdGljIGludCBod3NfY29tcGxleF9zdWJydWxlX2NyZWF0ZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqY21hdGNoZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo3ODM6XHRyZXQgPSBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3VicnVsZSwgbWF0Y2hfcGFyYW1zLCBhY3Rpb25zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4NC1cdFx0XHRcdFx0ICAgICBmbG93X3NvdXJjZSwgYndjX3F1ZXVlX2lkeCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTc5OT1zdGF0aWMgaW50IGh3c19jb21wbGV4X3N1YnJ1bGVfZGVzdHJveShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxNi1cdGJ3Y19ydWxlLVx1MDAzZXJ1bGUtXHUwMDNlc2tpcF9kZWxldGUgPSAhaXNfbGFzdF9ydWxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjgxNzpcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxOC1cdGlmICh1bmxpa2VseShyZXQpKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTU1MQoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDU5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLgoKKipJbnZlc3RpZ2F0aW5nIEV2ZW50IEdlbmVyYXRpb24gUG9pbnRzIGZvciBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FKioKCkFscmlnaHQsIG15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBJJiMzOTt2ZSBzcG90dGVkIGBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5YCBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gTm93LCBteSBtYWluIHF1ZXN0aW9uIGlzLCBhbmQgdGhpcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBwaWN0dXJlLCBhcmUgdGhlcmUgKmFueSogb3RoZXIgaW5zdGFuY2VzIHdpdGhpbiB0aGlzIGNvZGUgYmFzZSwgb3IgaW5kZWVkIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0sIHdoZXJlIHRoZSBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgZXZlbnQgaXMgYWN0dWFsbHkgZ2VuZXJhdGVkPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgcG90ZW50aWFsIHNvdXJjZXMuIEtub3dpbmcgd2hlcmUgZWxzZSB0aGlzIGV2ZW50IGlzIGNyZWF0ZWQgd2lsbCBwcm92aWRlIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBldmVudCBmbG93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTI3Mj1zdGF0aWMgaW50IGJsb2NraW5nX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODUtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyODY6XHRjYXNlIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkU6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4Ny1cdFx0aWYgKG1seDVlX2RldmNvbV9pbml0X21wdihwcml2LCBkYXRhKSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk5OTcKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBNTFg1IEV2ZW50IEhhbmRsaW5nKioKCk9rYXksIHNvIEkgZGlkIGEgZ2xvYmFsIHNlYXJjaCBmb3IgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgLCBhbmQgaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBwcmVzZW50IGluIGJvdGggYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBwaWN0dXJlLiBMZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2AgZGlyZWN0b3J5IGFnYWluIHRvIGJlIHRob3JvdWdoLiBJJiMzOTttIHRyeWluZyB0byBwaWVjZSB0b2dldGhlciB3aGVyZSB0aGUgZXZlbnQgaXMgZ2VuZXJhdGVkIGFuZCBob3cgaXQmIzM5O3MgdXNlZC4gVGhlIHByaW1hcnkgZ29hbCBpcyB0byBtYXAgdGhlIGNhbGwgZmxvdy4KClNwZWNpZmljYWxseSwgSSYjMzk7bSBub3cgZm9jdXNlZCBvbiBmaW5kaW5nIHdoZXJlIGBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5YCBpcyBjYWxsZWQsIGFuZCBwZXJoYXBzIG1vcmUgaW1wb3J0YW50bHksIHdoZXJlIHRoaXMgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGV2ZW50IGlzIGFjdHVhbGx5ICpnZW5lcmF0ZWQqIHdpdGhpbiB0aGUgY29kZS4gVW5kZXJzdGFuZGluZyB0aGUgZXZlbnQgc291cmNlIGlzIGNyaXRpY2FsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYz0zODc3PXN0YXRpYyB2b2lkIG1seDVfaWJfdW5iaW5kX3NsYXZlX3BvcnQoc3RydWN0IG1seDVfaWJfZGV2ICppYmRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg4OS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYzozODkwOlx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShpYmRldi1cdTAwM2VtZGV2LFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM4OTEtXHRcdFx0XHQgIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX1JFTU9WRUQsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg5Mi1cdFx0XHRcdCAgTlVMTCk7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzg5MzpcdG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkobXBpLVx1MDAzZW1kZXYsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg5NC1cdFx0XHRcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fUkVNT1ZFRCxcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM9Mzk0ND1zdGF0aWMgYm9vbCBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydChzdHJ1Y3QgbWx4NV9pYl9kZXYgKmliZGV2LFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTc3LVx0a2V5ID0gbXBpLVx1MDAzZW1kZXYtXHUwMDNlcHJpdi5hZGV2X2lkeDtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYzozOTc4Olx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShtcGktXHUwMDNlbWRldixcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTc5LVx0XHRcdFx0ICBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5ODAtXHRcdFx0XHQgIFx1MDAyNmtleSk7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzk4MTpcdG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkoaWJkZXYtXHUwMDNlbWRldixcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgyLVx0XHRcdFx0ICBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmM9MjkwPUVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX3VwbGlua19uZXRkZXZfZXZlbnRfcmVwbGF5KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyOTI6dm9pZCBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjkzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTI5NS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jOjI5NjpFWFBPUlRfU1lNQk9MKG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yOTctXG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oPTEwMTA9dm9pZCBtbHg1X2NvcmVfdXBsaW5rX25ldGRldl9ldmVudF9yZXBsYXkoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYpO1xuaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oLTEwMTEtXG5pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmg6MTAxMjp2b2lkIG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKTtcbmluY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaC0xMDEzLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTMwMwoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6CgoqKkRpdmluZyBpbnRvIHRoZSBtbHg1IEV2ZW50IFJlcGxheSoqCgpPa2F5LCBzbyBgbWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheWAgaXMgZGVmaW5pdGVseSBjYWxsZWQgZnJvbSB0aGUgYG1seDVgIEluZmluaWJhbmQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZnJvbSBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gVGhhdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRyb2wgZmxvdzsgaG93IGRvZXMgdGhpcyB3aG9sZSBldmVudCByZXBsYXkgbWVjaGFuaXNtIGtpY2sgb2ZmPyBUaGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZSBpczogd2hhdCB0cmlnZ2VycyB0aGUgZ2VuZXJhdGlvbiBvZiBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWA/IFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIHRoZSByZXBsYXkuIFRpbWUgdG8gZGVsdmUgaW50byB0aGUgaW1wbGVtZW50YXRpb24gb2YgYG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXlgIGl0c2VsZjsgSSBuZWVkIHRvIHNlZSB3aGF0IGl0JiMzOTtzIGxvb2tpbmcgZm9yLiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBiYWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyODUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI4NTpcdFx0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNlbWx4NWVfcmVzLnVwbGlua19uZXRkZXZfbG9jayk7XG4gMjg2Olx0XHRtbHg1X2Jsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oZGV2LCBNTFg1X0RSSVZFUl9FVkVOVF9VUExJTktfTkVUREVWLFxuIDI4NzpcdFx0XHRcdFx0XHQgIGRldi1cdTAwM2VtbHg1ZV9yZXMudXBsaW5rX25ldGRldik7XG4gMjg4Olx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGV2LVx1MDAzZW1seDVlX3Jlcy51cGxpbmtfbmV0ZGV2X2xvY2spO1xuIDI4OTpcdH1cbiAyOTA6XHRFWFBPUlRfU1lNQk9MKG1seDVfY29yZV91cGxpbmtfbmV0ZGV2X2V2ZW50X3JlcGxheSk7XG4gMjkxOlx0XG4gMjkyOlx0dm9pZCBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcbiAyOTM6XHR7XG4gMjk0Olx0XHRtbHg1X2Jsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oZGV2LCBldmVudCwgZGF0YSk7XG4gMjk1Olx0fVxuIDI5NjpcdEVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheSk7XG4gMjk3Olx0XG4gMjk4Olx0aW50IG1seDVfY29yZV9nZXRfY2Fwc19tb2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gbWx4NV9jYXBfdHlwZSBjYXBfdHlwZSxcbiAyOTk6XHRcdFx0XHQgICAgZW51bSBtbHg1X2NhcF9tb2RlIGNhcF9tb2RlKVxuIDMwMDpcdHtcbiAzMDE6XHRcdHU4IGluW01MWDVfU1RfU1pfQllURVMocXVlcnlfaGNhX2NhcF9pbildO1xuIDMwMjpcdFx0aW50IG91dF9zeiA9IE1MWDVfU1RfU1pfQllURVMocXVlcnlfaGNhX2NhcF9vdXQpO1xuIDMwMzpcdFx0dm9pZCAqb3V0LCAqaGNhX2NhcHM7XG4gMzA0Olx0XHR1MTYgb3Btb2QgPSAoY2FwX3R5cGUgXHUwMDNjXHUwMDNjIDEpIHwgKGNhcF9tb2RlIFx1MDAyNiAweDAxKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIwNzEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA2NzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVbnJlYWNoYWJpbGl0eSBvZiBhIFNwZWNpZmljIENvZGUgUGF0aCoqCgpPa2F5LCBzbyBgbWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheWAgZXZlbnR1YWxseSBsZWFkcyB0byBgbWx4NV9ibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluYCwgd2hpY2ggaXMgb25seSBjYWxsZWQgZnJvbSBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7QXJlIHRoZXJlIGFueSAqb3RoZXIqIHdheXMgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGlzIGdlbmVyYXRlZD8mIzM0OyBJIGFscmVhZHkgY2hlY2tlZCwgYW5kIGl0JiMzOTtzIHNvbGVseSB3aXRoaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gVGhhdCBtZWFucyB0aGUgb25seSByb3V0ZSB0byBgbWx4NWVfZGV2Y29tX2luaXRfbXB2YCBpcyB0aHJvdWdoIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAsIHdoaWNoIGlzIGFsc28gaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AuCgpBbmQgb2YgY291cnNlLCBgbWx4NV9pYl9iaW5kX3NsYXZlX3BvcnRgICpuZWVkcyogYW4gSW5maW5pYmFuZCBkZXZpY2UsIG1lYW5pbmcgYWN0dWFsIE1lbGxhbm94IGhhcmR3YXJlIGlzIHJlcXVpcmVkLiBTaW5jZSB0aGVyZSYjMzk7cyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gSSBrbm93IG9mIHRoYXQgcmVwbGljYXRlcyBhbGwgdGhhdCwgbGlrZSBpbiBHQ0Ugb3IgUUVNVSwgdGhpcyBwYXRoIGlzIGltbWVkaWF0ZWx5IHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuCgpOb3csIHdhaXQuLi5zeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciwgZG9lc24mIzM5O3QgaXQ/IENvdWxkICp0aGF0KiBwb3RlbnRpYWxseSByZWFjaCBpdD8gVGhlIGZ1enplciBlbXVsYXRlcyBhIFBDSSBkZXZpY2UsIGludGVyY2VwdGluZyBhY2Nlc3NlcyB0byB0aGUgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTy4gSXQgZXNzZW50aWFsbHkgdGhyb3dzIHJhbmRvbSBkYXRhIGF0IHRoZSBkcml2ZXIuIEJ1dCBjYW4gaXQgZXZlbiAqaW5pdGlhbGl6ZSogYG1seDVfY29yZWAgc3VjY2Vzc2Z1bGx5PyBgbWx4NV9jb3JlYCBpcyBpbmNyZWRpYmx5IGNvbXBsZXgsIGRlYWxpbmcgd2l0aCBmaXJtd2FyZSB2aWEgdGhhdCBjb21tYW5kIHF1ZXVlLiBUaGUgZmlybXdhcmUgaW50ZXJmYWNlIGlzIGZhbW91c2x5IGludHJpY2F0ZSDigJMgdGhlIGRyaXZlciBzZW5kcyBjb21tYW5kcywgd2FpdHMgZm9yIHJlc3BvbnNlcy4gVGhlIFBDSSBmdXp6ZXImIzM5O3MgcmFuZG9tIGlucHV0IHdvdWxkIG1vc3QgbGlrZWx5IGNhdXNlIGl0IHRvIGZhaWwgaW5pdGlhbGl6YXRpb24gdmVyeSBlYXJseSDigJMgZmlybXdhcmUgdmVyc2lvbiBtaXNtYXRjaCwgY29tbWFuZCBxdWV1ZSBpc3N1ZXMsIGV0Yy4gSXQmIzM5O3MgYWxtb3N0IGltcG9zc2libGUgZm9yIHJhbmRvbSBkYXRhIHRvIHByb3Blcmx5IHNpbXVsYXRlIHRoZSBmaXJtd2FyZSBpbnRlcmFjdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IHRvIGluaXRpYWxpemUgYG1seDVfY29yZWAsIGxldCBhbG9uZSB0cmlnZ2VyIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAuIFRoaXMgbWFrZXMgaXQgcHJhY3RpY2FsbHkgdW5yZWFjaGFibGUgaW4gdGhlc2UgdmlydHVhbGl6ZWQgdGVzdCBlbnZpcm9ubWVudHMuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0JiMzOTtzIHJldmlzaXQgYW5vdGhlciBtZXRob2QgdG8gdHJpZ2dlciBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAuIFRoYXQgZnVuY3Rpb24gaXMgcmVnaXN0ZXJlZCBhcyBhIGNhbGxiYWNrIHRocm91Z2ggYG1seDVfZGV2Y29tX3JlZ2lzdGVyX2NvbXBvbmVudGAuIFRoZSBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBgbWx4NV9kZXZjb21fc2VuZF9ldmVudGAgaXMgY2FsbGVkIGZvciBgTUxYNV9ERVZDT01fTVBWYC4gTGV0IG1lIGNoZWNrIHdoZXJlIGBtbHg1X2RldmNvbV9zZW5kX2V2ZW50YCBpcyBjYWxsZWQgd2l0aCB0aGF0IGFyZ3VtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1X2RldmNvbV9zZW5kX2V2ZW50JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvaXBzZWNfZnMuYz0yODk0PXZvaWQgbWx4NWVfaXBzZWNfc2VuZF9ldmVudChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgaW50IGV2ZW50KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9pcHNlY19mcy5jLTI4OTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvaXBzZWNfZnMuYzoyODk5Olx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChwcml2LVx1MDAzZWRldmNvbSwgZXZlbnQsIGV2ZW50LCBwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9pcHNlY19mcy5jLTI5MDAtXHR3YWl0X2Zvcl9jb21wbGV0aW9uKFx1MDAyNnByaXYtXHUwMDNlaXBzZWMtXHUwMDNlY29tcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMzQ9c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI0OC1cdGlmIChtbHg1X2NvcmVfaXNfbXBfbWFzdGVyKHByaXYtXHUwMDNlbWRldikpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjQ5Olx0XHRtbHg1X2RldmNvbV9zZW5kX2V2ZW50KHByaXYtXHUwMDNlZGV2Y29tLCBNUFZfREVWQ09NX01BU1RFUl9VUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjUwLVx0XHRcdFx0ICAgICAgIE1QVl9ERVZDT01fTUFTVEVSX1VQLCBwcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTI1Nz1zdGF0aWMgdm9pZCBtbHg1ZV9kZXZjb21fY2xlYW51cF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yNjItXHRpZiAobWx4NV9jb3JlX2lzX21wX21hc3Rlcihwcml2LVx1MDAzZW1kZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjI2MzpcdFx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChwcml2LVx1MDAzZWRldmNvbSwgTVBWX0RFVkNPTV9NQVNURVJfRE9XTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjY0LVx0XHRcdFx0ICAgICAgIE1QVl9ERVZDT01fTUFTVEVSX0RPV04sIHByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9MzMwOD12b2lkIG1seDVfZXN3X29mZmxvYWRzX2RldmNvbV9pbml0KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jOjMzMzU6XHRtbHg1X2RldmNvbV9zZW5kX2V2ZW50KGVzdy1cdTAwM2VkZXZjb20sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzMzYtXHRcdFx0ICAgICAgIEVTV19PRkZMT0FEU19ERVZDT01fUEFJUixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jPTMzNDE9dm9pZCBtbHg1X2Vzd19vZmZsb2Fkc19kZXZjb21fY2xlYW51cChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0zMzQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYzozMzQ2Olx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChlc3ctXHUwMDNlZGV2Y29tLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0zMzQ3LVx0XHRcdCAgICAgICBFU1dfT0ZGTE9BRFNfREVWQ09NX1VOUEFJUixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jPTIwODI9dm9pZCBtbHg1X2xhZ19yZW1vdmVfbWRldihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmMtMjEwMy1cdC8qIFNlbmQgZGV2Y29tIGV2ZW50IHRvIG5vdGlmeSBwZWVycyB0aGF0IGEgZGV2aWNlIGlzIGJlaW5nIHJlbW92ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmM6MjEwNDpcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoZGV2LVx1MDAzZXByaXYuaGNhX2RldmNvbV9jb21wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYy0yMTA1LVx0XHRcdCAgICAgICBMQUdfREVWQ09NX1VOUEFJUiwgTEFHX0RFVkNPTV9VTlBBSVIsIGRldik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYz0yMTEwPXZvaWQgbWx4NV9sYWdfYWRkX21kZXYoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jLTIxMjktXHQvKiBTZW5kIGRldmNvbSBldmVudCB0byBub3RpZnkgcGVlcnMgdGhhdCBhIGRldmljZSB3YXMgYWRkZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmM6MjEzMDpcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoZGV2LVx1MDAzZXByaXYuaGNhX2RldmNvbV9jb21wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYy0yMTMxLVx0XHRcdCAgICAgICBMQUdfREVWQ09NX1BBSVIsIExBR19ERVZDT01fVU5QQUlSLCBkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmM9MjgyPWludCBtbHg1X2RldmNvbV9jb21wX2dldF9zaXplKHN0cnVjdCBtbHg1X2RldmNvbV9jb21wX2RldiAqZGV2Y29tKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmMtMjg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9kZXZjb20uYzoyODk6aW50IG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoc3RydWN0IG1seDVfZGV2Y29tX2NvbXBfZGV2ICpkZXZjb20sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5jLTI5MC1cdFx0XHQgICBpbnQgZXZlbnQsIGludCByb2xsYmFja19ldmVudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5oPTQ3PXZvaWQgbWx4NV9kZXZjb21fdW5yZWdpc3Rlcl9jb21wb25lbnQoc3RydWN0IG1seDVfZGV2Y29tX2NvbXBfZGV2ICpkZXZjb20pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9kZXZjb20uaC00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmg6NDk6aW50IG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoc3RydWN0IG1seDVfZGV2Y29tX2NvbXBfZGV2ICpkZXZjb20sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5oLTUwLVx0XHRcdCAgIGludCBldmVudCwgaW50IHJvbGxiYWNrX2V2ZW50LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTA3NAoJCQkJCQkJb3V0cHV0OiAxNDAKCQkJCQkJCXRob3VnaHRzOiA2NDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgVGhpcyBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgdGhpcyBgbWx4NWVfZGV2Y29tX2luaXRfbXB2YCBmdW5jdGlvbiBpcyB0aGUga2V5LiBTcGVjaWZpY2FsbHksIEkmIzM5O20gY29uY2VybmVkIHRoYXQgYG1seDVfZGV2Y29tX3NlbmRfZXZlbnRgIGlzIGNhbGxlZCB3aXRoaW4uIFRoaXMgY2FsbCB0cmlnZ2VycyBjZXJ0YWluIGFjdGlvbnMgYmFzZWQgb24gd2hldGhlciB0aGUgZGV2aWNlIGlzIGEgJiMzNDttYXN0ZXImIzM0Oy4gVGhpcyBmdW5jdGlvbiBpcyAqY2FsbGVkKiB3aGVuIHRoZSBkcml2ZXIgYWZmaWxpYXRpb24gZXZlbnQgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGlzIHJlY2VpdmVkLgoKTm93LCB3aGVyZSBkb2VzIHRoYXQgZXZlbnQgY29tZSBmcm9tPyBXZWxsLCBhZnRlciBkaWdnaW5nIHRocm91Z2ggdGhlIGNvZGUsIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IGBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FYCBpcyBvbmx5IGdlbmVyYXRlZCBieSBgbWx4NV9pYl9iaW5kX3NsYXZlX3BvcnRgLCBhbmQgdGhpcyBmdW5jdGlvbiBpcyBpdHNlbGYgY2FsbGVkIGR1cmluZyB0aGUgcmVnaXN0cmF0aW9uIGFuZCBiaW5kaW5nIG9mIGFuIEluZmluaWJhbmQgZGV2aWNlLCBzcGVjaWZpY2FsbHkgcmVsYXRpbmcgdG8gTWVsbGFub3ggaGFyZHdhcmUuIFRoaXMgc2VlbXMgdG8gaGFwcGVuIGluIGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNgLgoKQWhhISBUaGlzIGFsc28gaW1wbGllcyB3ZSBuZWVkICpwaHlzaWNhbCogTWVsbGFub3ggaGFyZHdhcmUgZm9yIHRoaXMgY29kZSBwYXRoIHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4gIFRoZXJlIGlzbiYjMzk7dCBhbnkgc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGUgTWVsbGFub3ggaGFyZHdhcmUgaW52b2x2ZWQuIFRoaXMgbWVhbnMgaXQmIzM5O3MgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIHRoZSBlbnZpcm9ubWVudHMgc3l6a2FsbGVyIHR5cGljYWxseSBydW5zIGluLgoKTGV0IG1lIGp1c3QgZG91YmxlIGNoZWNrIG9uZSB0aGluZzogQXJlIHRoZXJlICphbnkqIG90aGVyIHdheXMgdGhpcyBldmVudCBjb3VsZCBiZSB0cmlnZ2VyZWQ/IEEgcXVpY2sgZ2xvYmFsIHNlYXJjaCBmb3IgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGFjcm9zcyB0aGUga2VybmVsIGNvZGUgYmFzZSBjb25maXJtcyB0aGF0IGl0JiMzOTtzIG9ubHkgdXNlZCBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYCwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNgIGFuZCBpbiBhIGhlYWRlciBmaWxlLCBgaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oYC4gU28gdGhlcmUgaXMgbm8gYWx0ZXJuYXRlIHBhdGggZm9yIHRoZSBldmVudCB0byBiZSBnZW5lcmF0ZWQuCgpUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIGEgY29kZSBwYXRoIHRoYXQgaXMgZWZmZWN0aXZlbHkgaW5hY2Nlc3NpYmxlIGluIHRoZSB0YXJnZXQgZW52aXJvbm1lbnRzLiAgR2l2ZW4gdGhlIGluc3RydWN0aW9ucywgSSBuZWVkIHRvIGZsYWcgdGhpcyBhcyBub3Qgd29ydGggZnV6emluZy4gVGhlIHBhdGNoICpvbmx5KiBtb2RpZmllcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgKGBtbHg1YCkgdGhhdCBoYXMgbm8gc29mdHdhcmUgZW11bGF0aW9uLgoKTGV0JiMzOTtzIHJldmlldyB0aGUgcHJvbXB0IGluc3RydWN0aW9uczoKJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgouLi4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4mIzM0OwoKQmluZ28hIFRoaXMgcGVyZmVjdGx5IGRlc2NyaWJlcyB0aGlzIHNjZW5hcmlvLiBUaGlzIHBhdGNoIGlzIGlycmVsZXZhbnQgZm9yIGZ1enppbmcuIEkmIzM5O2xsIGNvbnN0cnVjdCB0aGUgYXBwcm9wcmlhdGUgcmVzcG9uc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY29yZSBkcml2ZXIgKG1seDVfY29yZSksIHNwZWNpZmljYWxseSB0aGUgTVBWIGRldmNvbSBldmVudCBoYW5kbGluZy4gVGhpcyBjb2RlIHBhdGggaXMgb25seSByZWFjaGFibGUgd2hlbiBhIHBoeXNpY2FsIE1lbGxhbm94IFBDSSBkZXZpY2UgaXMgcHJlc2VudCBhbmQgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCB3aGljaCB0cmlnZ2VycyB0aGUgSW5maW5pYmFuZCBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCBzdWJzZXF1ZW50IGFmZmlsaWF0aW9uIGV2ZW50cy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBNZWxsYW5veCBoYXJkd2FyZSBpbiB0aGUga2VybmVsIG9yIFFFTVUsIHRoaXMgY29kZSBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY29yZSBkcml2ZXIgKG1seDVfY29yZSksIHNwZWNpZmljYWxseSB0aGUgTVBWIGRldmNvbSBldmVudCBoYW5kbGluZy4gVGhpcyBjb2RlIHBhdGggaXMgb25seSByZWFjaGFibGUgd2hlbiBhIHBoeXNpY2FsIE1lbGxhbm94IFBDSSBkZXZpY2UgaXMgcHJlc2VudCBhbmQgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCB3aGljaCB0cmlnZ2VycyB0aGUgSW5maW5pYmFuZCBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCBzdWJzZXF1ZW50IGFmZmlsaWF0aW9uIGV2ZW50cy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBNZWxsYW5veCBoYXJkd2FyZSBpbiB0aGUga2VybmVsIG9yIFFFTVUsIHRoaXMgY29kZSBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMyOjMyLjc0NDQ2OTA2N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5MjQ5OTYwNTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggQ29ubmVjdFgtNC81LzYvNyBjb3JlIGRyaXZlciAobWx4NV9jb3JlKSwgc3BlY2lmaWNhbGx5IHRoZSBNUFYgZGV2Y29tIGV2ZW50IGhhbmRsaW5nLiBUaGlzIGNvZGUgcGF0aCBpcyBvbmx5IHJlYWNoYWJsZSB3aGVuIGEgcGh5c2ljYWwgTWVsbGFub3ggUENJIGRldmljZSBpcyBwcmVzZW50IGFuZCBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQsIHdoaWNoIHRyaWdnZXJzIHRoZSBJbmZpbmliYW5kIGRldmljZSByZWdpc3RyYXRpb24gYW5kIHN1YnNlcXVlbnQgYWZmaWxpYXRpb24gZXZlbnRzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIE1lbGxhbm94IGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgb3IgUUVNVSwgdGhpcyBjb2RlIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjozMi43NDQ1MDMxMjdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxODQxMzI5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGJmNjFkMTY5ODdjZTM0ZThmYWQ4YzM4ZTBjNjM2YWEyYjA1Yjk4NGRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgOCAxMDozMjozMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xcbmluZGV4IDhmMmIzYWJlMDA5MjE0Li45YjI3YWZlYjliMTI3ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xcbkBAIC0yMTEsMTEgKzIxMSwxMSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcXG4gXFxuIHN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpXFxuIHtcXG4tXFx0c3RydWN0IG1seDVlX3ByaXYgKnNsYXZlX3ByaXYgPSBteV9kYXRhO1xcbitcXHRzdHJ1Y3QgbWx4NWVfcHJpdiAqbWFzdGVyX3ByaXYgPSBldmVudF9kYXRhO1xcbiBcXG4gXFx0c3dpdGNoIChldmVudCkge1xcbiBcXHRjYXNlIE1QVl9ERVZDT01fTUFTVEVSX1VQOlxcbi1cXHRcXHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShzbGF2ZV9wcml2LVxcdTAwM2VkZXZjb20sIHRydWUpO1xcbitcXHRcXHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShtYXN0ZXJfcHJpdi1cXHUwMDNlZGV2Y29tLCB0cnVlKTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGNhc2UgTVBWX0RFVkNPTV9NQVNURVJfRE9XTjpcXG4gXFx0XFx0Lyogbm8gbmVlZCBmb3IgY29tcCBzZXQgcmVhZHkgZmFsc2Ugc2luY2Ugd2UgdW5yZWdpc3RlciBhZnRlclxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjozMy4xNjM2MjEzOTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk4ODMwODAyNjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggQ29ubmVjdFgtNC81LzYvNyBjb3JlIGRyaXZlciAobWx4NV9jb3JlKSwgc3BlY2lmaWNhbGx5IHRoZSBNUFYgZGV2Y29tIGV2ZW50IGhhbmRsaW5nLiBUaGlzIGNvZGUgcGF0aCBpcyBvbmx5IHJlYWNoYWJsZSB3aGVuIGEgcGh5c2ljYWwgTWVsbGFub3ggUENJIGRldmljZSBpcyBwcmVzZW50IGFuZCBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQsIHdoaWNoIHRyaWdnZXJzIHRoZSBJbmZpbmliYW5kIGRldmljZSByZWdpc3RyYXRpb24gYW5kIHN1YnNlcXVlbnQgYWZmaWxpYXRpb24gZXZlbnRzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIE1lbGxhbm94IGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgb3IgUUVNVSwgdGhpcyBjb2RlIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJmNjFkMTY5ODdjZTM0ZThmYWQ4YzM4ZTBjNjM2YWEyYjA1Yjk4NGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCA4IDEwOjMyOjMxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcbmluZGV4IDhmMmIzYWJlMDA5MjE0Li45YjI3YWZlYjliMTI3ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcbkBAIC0yMTEsMTEgKzIxMSwxMSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IG1seDVlX2RldmNvbV9ldmVudF9tcHYoaW50IGV2ZW50LCB2b2lkICpteV9kYXRhLCB2b2lkICpldmVudF9kYXRhKVxuIHtcbi1cdHN0cnVjdCBtbHg1ZV9wcml2ICpzbGF2ZV9wcml2ID0gbXlfZGF0YTtcbitcdHN0cnVjdCBtbHg1ZV9wcml2ICptYXN0ZXJfcHJpdiA9IGV2ZW50X2RhdGE7XG4gXG4gXHRzd2l0Y2ggKGV2ZW50KSB7XG4gXHRjYXNlIE1QVl9ERVZDT01fTUFTVEVSX1VQOlxuLVx0XHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShzbGF2ZV9wcml2LVx1MDAzZWRldmNvbSwgdHJ1ZSk7XG4rXHRcdG1seDVfZGV2Y29tX2NvbXBfc2V0X3JlYWR5KG1hc3Rlcl9wcml2LVx1MDAzZWRldmNvbSwgdHJ1ZSk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBNUFZfREVWQ09NX01BU1RFUl9ET1dOOlxuIFx0XHQvKiBubyBuZWVkIGZvciBjb21wIHNldCByZWFkeSBmYWxzZSBzaW5jZSB3ZSB1bnJlZ2lzdGVyIGFmdGVyXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjozMy4xNjM2MjI2OTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4Mzg3MzU2MDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE1lbGxhbm94IG1seDUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGNoYW5nZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAgZnVuY3Rpb24gaGFzIGJlZW4gdHdlYWtlZC4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIHBvaW50ZXIgdXNlZCBpbiBgbWx4NV9kZXZjb21fY29tcF9zZXRfcmVhZHlgLCBmcm9tIGBzbGF2ZV9wcml2YCB0byBgbWFzdGVyX3ByaXZgLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBpbXBsaWNhdGlvbnMuXG5cblRoZSBmaXJzdCB0aGluZyB0aGF0IGp1bXBzIHRvIG1pbmQgaXMgdGhlIGZ1enphYmlsaXR5IG9mIHRoaXMgZHJpdmVyLiBHaXZlbiBpdHMgaGFyZHdhcmUtc3BlY2lmaWMgbmF0dXJlLCBwYXJ0aWN1bGFybHkgd2l0aCBNZWxsYW5veCwgaXMgdGhpcyBkcml2ZXIgZXZlbiBlYXNpbHkgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VPyBUaGVzZSBzb3J0cyBvZiBoYXJkd2FyZS1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXJzIG9mdGVuIHBvc2UgYSBmdXp6aW5nIGNoYWxsZW5nZSwgdW5sZXNzIHdlJ3JlIGRlYWxpbmcgd2l0aCBlaXRoZXIgYW4gZW11bGF0b3Igb3IgYSBtb3JlIGdlbmVyaWMgZnJhbWV3b3JrLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB3ZSBjYW4gZXZlbiBmdXp6IHRoZSBtbHg1IGRyaXZlci5cblxuUmlnaHQsIG15IGltbWVkaWF0ZSBjaGVjayBpcyB3aGV0aGVyIHN5emthbGxlciBoYXMgYW4gbWx4NSBlbXVsYXRvci4gQW5kIHRoZSBxdWljayBhbnN3ZXIgaXMgbm8sIGl0IGRvZXNuJ3QuIE5leHQsIEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgc29mdHdhcmUgZW11bGF0aW9ucyBvZiBtbHg1IHRoYXQgbWlnaHQgYmUgYXZhaWxhYmxlLiBHaXZlbiB0aGlzIGRyaXZlcidzIGxvY2F0aW9uLCBJJ2xsIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlIGl0c2VsZiwgc3RhcnRpbmcgd2l0aCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AsIGFuZCBzZWVpbmcgd2hhdCBJIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTc2LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NDEuNTUwOTgwNTI4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5Njc2MjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVlX2RldmNvbV9ldmVudF9tcHZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTIwNz1zdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjEyOnN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yMTMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMzQ9c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjQyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwMjZhdHRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjQzOlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIG1seDVlX2RldmNvbV9ldmVudF9tcHYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yNDQtXFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgcHJpdik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMyOjQxLjYxMDY2MTkxM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxMDI0NDA3MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgRnV6emFiaWxpdHkgb2YgdGhlIE1lbGxhbm94IG1seDUgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIE1lbGxhbm94IGBtbHg1YCBkcml2ZXIsIHdoaWNoIGhhbmRsZXMgdGhvc2UgQ29ubmVjdFgtNC81LzYvNyBhZGFwdGVycy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBhcyB1c3VhbCB3aXRoIHRoZXNlIGhhcmR3YXJlIGRyaXZlcnMsIHRoYXQgZnV6emluZyBpdCBpbiBhbiBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIGlzIGdvaW5nIHRvIGJlIGEgY2hhbGxlbmdlLiBVbmxlc3MsIG9mIGNvdXJzZSwgdGhlcmUncyBzb21lIGtpbmQgb2Ygc3BlY2lhbGl6ZWQgZW11bGF0b3IgYXQgcGxheS4gWW91IGtub3csIGxpa2Ugd2UgaGF2ZSBmb3IgVVNCIHdpdGggYHZoY2lgLCBvciBXaUZpIHdpdGggYG1hYzgwMjExX2h3c2ltYCwgb3IgbmV0d29ya2luZyB3aXRoIGBuZXRkZXZzaW1gLi4uIHRoYXQga2luZCBvZiB0aGluZy4gU28sIHRoZSBrZXkgcXVlc3Rpb24gaXM6IGRvZXMgYSBzaW1pbGFyIGBtbHg1YCBlbXVsYXRvciBleGlzdD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBpdCdzIHB1cmVseSBoYXJkd2FyZS1kZXBlbmRlbnQgb3IgaWYgdGhlcmUncyBhIHNvZnR3YXJlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXZpY2Ugc29tZXdoZXJlIGluIHRoZSBrZXJuZWwgdGhhdCBJIGNhbiBsZXZlcmFnZS4gVGltZSB0byBkaWcgaW4gYW5kIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMDgsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NDUuNzEzMTA1MDQ5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1ODU4ODc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnPTIxPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L0tjb25maWc6MjI6c291cmNlIFxcXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnLTIzLXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NDUuNzY4OTY5MDU0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzEyODc0Mjk3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnkgb2YgdGhlIHByb3ZpZGVkIHRleHQsIGFzc3VtaW5nIEknbSBhbiBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgTWVsbGFub3ggRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBNZWxsYW5veCBFdGhlcm5ldCBkcml2ZXJzLiBNeSBpbnN0aW5jdCB0ZWxscyBtZSB0aGUgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGBLY29uZmlnYCBmaWxlIHdpdGhpbiB0aGUgY29yZSBkcml2ZXIgc3RydWN0dXJlLiBTcGVjaWZpY2FsbHksIEknbSBoZWFkaW5nIHN0cmFpZ2h0IHRvIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZ2AuIFRoaXMgZmlsZSAqc2hvdWxkKiBob2xkIGFsbCB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gZmxhZ3MgYW5kIGRlZmF1bHQgc2V0dGluZ3MgSSdtIGxvb2tpbmcgZm9yLiBJdOKAmXMgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGNvbnRyb2xsaW5nIGZlYXR1cmVzIGFuZCBkZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBtbHg1IGNvcmUuIEZyb20gaGVyZSwgSSBjYW4gdHJhY2UgZGVwZW5kZW5jaWVzLCBpZGVudGlmeSB3aGF0J3MgZW5hYmxlZCBieSBkZWZhdWx0LCBhbmQgcG90ZW50aWFsbHkgZmluZCB0aGUgc291cmNlIG9mIGEgY29uZmlndXJhdGlvbiBwcm9ibGVtIG9yIGEgbmV3IG9wdGlvbiB0byBlbmFibGUuIExldOKAmXMgc2VlIHdoYXQncyBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ4NSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMyOjQ4Ljg5NzcxNDI2NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMzcyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdCNcXG4gICAzOlxcdCMgTWVsbGFub3ggZHJpdmVyIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0Y29uZmlnIE1MWDVfQ09SRVxcbiAgIDc6XFx0XFx0dHJpc3RhdGUgXFxcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgY29yZSBkcml2ZXJcXFwiXFxuICAgODpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgIDk6XFx0XFx0c2VsZWN0IEFVWElMSUFSWV9CVVNcXG4gIDEwOlxcdFxcdHNlbGVjdCBORVRfREVWTElOS1xcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBNTFhGVyB8fCAhTUxYRldcXG4gIDEyOlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG4gIDEzOlxcdFxcdGRlcGVuZHMgb24gUENJX0hZUEVSVl9JTlRFUkZBQ0UgfHwgIVBDSV9IWVBFUlZfSU5URVJGQUNFXFxuICAxNDpcXHRcXHRkZXBlbmRzIG9uIEhXTU9OIHx8ICFIV01PTlxcbiAgMTU6XFx0XFx0aGVscFxcbiAgMTY6XFx0XFx0ICBDb3JlIGRyaXZlciBmb3IgbG93IGxldmVsIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIENvbm5lY3RYLTQgYW5kXFxuICAxNzpcXHRcXHQgIENvbm5lY3QtSUIgY2FyZHMgYnkgTWVsbGFub3ggVGVjaG5vbG9naWVzLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgTUxYNV9GUEdBXFxuICAyMDpcXHRcXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgSW5ub3ZhIHN1cHBvcnRcXFwiXFxuICAyMTpcXHRcXHRkZXBlbmRzIG9uIE1MWDVfQ09SRVxcbiAgMjI6XFx0XFx0aGVscFxcbiAgMjM6XFx0XFx0ICBCdWlsZCBzdXBwb3J0IGZvciB0aGUgSW5ub3ZhIGZhbWlseSBvZiBuZXR3b3JrIGNhcmRzIGJ5IE1lbGxhbm94XFxuICAyNDpcXHRcXHQgIFRlY2hub2xvZ2llcy4gSW5ub3ZhIG5ldHdvcmsgY2FyZHMgYXJlIGNvbXByaXNlZCBvZiBhIENvbm5lY3RYIGNoaXBcXG4gIDI1OlxcdFxcdCAgYW5kIGFuIEZQR0EgY2hpcCBvbiBvbmUgYm9hcmQuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZVxcbiAgMjY6XFx0XFx0ICBtbHg1X2NvcmUgZHJpdmVyIHdpbGwgaW5jbHVkZSB0aGUgSW5ub3ZhIEZQR0EgY29yZSBhbmQgYWxsb3cgYnVpbGRpbmdcXG4gIDI3OlxcdFxcdCAgc2FuZGJveC1zcGVjaWZpYyBjbGllbnQgZHJpdmVycy5cXG4gIDI4OlxcdFxcbiAgMjk6XFx0Y29uZmlnIE1MWDVfQ09SRV9FTlxcbiAgMzA6XFx0XFx0Ym9vbCBcXFwiTWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBFdGhlcm5ldCBzdXBwb3J0XFxcIlxcbiAgMzE6XFx0XFx0ZGVwZW5kcyBvbiBORVRERVZJQ0VTIFxcdTAwMjZcXHUwMDI2IEVUSEVSTkVUIFxcdTAwMjZcXHUwMDI2IElORVQgXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IE1MWDVfQ09SRVxcbiAgMzI6XFx0XFx0c2VsZWN0IFBBR0VfUE9PTFxcbiAgMzM6XFx0XFx0c2VsZWN0IFBBR0VfUE9PTF9TVEFUU1xcbiAgMzQ6XFx0XFx0c2VsZWN0IERJTUxJQlxcbiAgMzU6XFx0XFx0aGVscFxcbiAgMzY6XFx0XFx0ICBFdGhlcm5ldCBzdXBwb3J0IGluIE1lbGxhbm94IFRlY2hub2xvZ2llcyBDb25uZWN0WC00IE5JQy5cXG4gIDM3OlxcdFxcbiAgMzg6XFx0Y29uZmlnIE1MWDVfRU5fQVJGU1xcbiAgMzk6XFx0XFx0Ym9vbCBcXFwiTWVsbGFub3ggTUxYNSBldGhlcm5ldCBhY2NlbGVyYXRlZCByZWNlaXZlIGZsb3cgc3RlZXJpbmcgKEFSRlMpIHN1cHBvcnRcXFwiXFxuICA0MDpcXHRcXHRkZXBlbmRzIG9uIE1MWDVfQ09SRV9FTiBcXHUwMDI2XFx1MDAyNiBSRlNfQUNDRUxcXG4gIDQxOlxcdFxcdGRlZmF1bHQgeVxcbiAgNDI6XFx0XFx0aGVscFxcbiAgNDM6XFx0XFx0ICBNZWxsYW5veCBNTFg1IGV0aGVybmV0IGhhcmR3YXJlLWFjY2VsZXJhdGVkIHJlY2VpdmUgZmxvdyBzdGVlcmluZyBzdXBwb3J0LFxcbiAgNDQ6XFx0XFx0ICBFbmFibGVzIGV0aGVybmV0IG5ldGRldmljZSBhcmZzIHN1cHBvcnQgYW5kIG50dXBsZSBmaWx0ZXJpbmcuXFxuICA0NTpcXHRcXG4gIDQ2OlxcdGNvbmZpZyBNTFg1X0VOX1JYTkZDXFxuICA0NzpcXHRcXHRib29sIFxcXCJNZWxsYW5veCBNTFg1IGV0aGVybmV0IHJ4IG5mYyBmbG93IHN0ZWVyaW5nIHN1cHBvcnRcXFwiXFxuICA0ODpcXHRcXHRkZXBlbmRzIG9uIE1MWDVfQ09SRV9FTlxcbiAgNDk6XFx0XFx0ZGVmYXVsdCB5XFxuICA1MDpcXHRcXHRoZWxwXFxuICA1MTpcXHRcXHQgIE1lbGxhbm94IE1MWDUgZXRoZXJuZXQgcnggbmZjIGZsb3cgc3RlZXJpbmcgc3VwcG9ydFxcbiAgNTI6XFx0XFx0ICBFbmFibGVzIGV0aHRvb2wgcmVjZWl2ZSBuZXR3b3JrIGZsb3cgY2xhc3NpZmljYXRpb24sIHdoaWNoIGFsbG93cyB1c2VyIGRlZmluZWRcXG4gIDUzOlxcdFxcdCAgZmxvdyBydWxlcyB0byBkaXJlY3QgdHJhZmZpYyBpbnRvIGFyYml0cmFyeSByeCBxdWV1ZSB2aWEgZXRodG9vbCBzZXQvZ2V0X3J4bmZjXFxuICA1NDpcXHRcXHQgIEFQSS5cXG4gIDU1OlxcdFxcbiAgNTY6XFx0Y29uZmlnIE1MWDVfTVBGU1xcbiAgNTc6XFx0XFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgTVBGUyBzdXBwb3J0XFxcIlxcbiAgNTg6XFx0XFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU5cXG4gIDU5OlxcdFxcdGRlZmF1bHQgeVxcbiAgNjA6XFx0XFx0aGVscFxcbiAgNjE6XFx0XFx0ICBNZWxsYW5veCBUZWNobm9sb2dpZXMgRXRoZXJuZXQgTXVsdGktUGh5c2ljYWwgRnVuY3Rpb24gU3dpdGNoIChNUEZTKVxcbiAgNjI6XFx0XFx0ICBzdXBwb3J0IGluIENvbm5lY3RYIE5JQy4gTVBGcyBpcyByZXF1aXJlZCBmb3Igd2hlbiBtdWx0aS1QRiBjb25maWd1cmF0aW9uXFxuICA2MzpcXHRcXHQgIGlzIGVuYWJsZWQgdG8gYWxsb3cgcGFzc2luZyB1c2VyIGNvbmZpZ3VyZWQgdW5pY2FzdCBNQUMgYWRkcmVzc2VzIHRvIHRoZVxcbiAgNjQ6XFx0XFx0ICByZXF1ZXN0aW5nIFBGLlxcbiAgNjU6XFx0XFxuICA2NjpcXHRjb25maWcgTUxYNV9FU1dJVENIXFxuICA2NzpcXHRcXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgTUxYNSBTUklPViBFLVN3aXRjaCBzdXBwb3J0XFxcIlxcbiAgNjg6XFx0XFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXFx1MDAyNlxcdTAwMjYgTkVUX1NXSVRDSERFVlxcbiAgNjk6XFx0XFx0ZGVmYXVsdCB5XFxuICA3MDpcXHRcXHRoZWxwXFxuICA3MTpcXHRcXHQgIE1lbGxhbm94IFRlY2hub2xvZ2llcyBFdGhlcm5ldCBTUklPViBFLVN3aXRjaCBzdXBwb3J0IGluIENvbm5lY3RYIE5JQy5cXG4gIDcyOlxcdFxcdCAgRS1Td2l0Y2ggcHJvdmlkZXMgaW50ZXJuYWwgU1JJT1YgcGFja2V0IHN0ZWVyaW5nIGFuZCBzd2l0Y2hpbmcgZm9yIHRoZVxcbiAgNzM6XFx0XFx0ICBlbmFibGVkIFZGcyBhbmQgUEYgaW4gdHdvIGF2YWlsYWJsZSBtb2RlczpcXG4gIDc0OlxcdFxcdCAgICAgICAgTGVnYWN5IFNSSU9WIG1vZGUgKEwyIG1hYyB2bGFuIHN0ZWVyaW5nIGJhc2VkKS5cXG4gIDc1OlxcdFxcdCAgICAgICAgU3dpdGNoZGV2IG1vZGUgKGVzd2l0Y2ggb2ZmbG9hZHMpLlxcbiAgNzY6XFx0XFxuICA3NzpcXHRjb25maWcgTUxYNV9CUklER0VcXG4gIDc4OlxcdFxcdGJvb2xcXG4gIDc5OlxcdFxcdGRlcGVuZHMgb24gTUxYNV9FU1dJVENIIFxcdTAwMjZcXHUwMDI2IEJSSURHRVxcbiAgODA6XFx0XFx0ZGVmYXVsdCB5XFxuICA4MTpcXHRcXHRoZWxwXFxuICA4MjpcXHRcXHQgIG1seDUgQ29ubmVjdFggb2ZmbG9hZHMgc3VwcG9ydCBmb3IgRXRoZXJuZXQgQnJpZGdpbmcgKEJSSURHRSkuXFxuICA4MzpcXHRcXHQgIEVuYWJsZSBvZmZsb2FkaW5nIEZEQiBydWxlcyBmcm9tIGEgYnJpZGdlIGRldmljZSBjb250YWluaW5nXFxuICA4NDpcXHRcXHQgIHJlcHJlc2VudG9ycyBvZiBtbHg1IHVwbGluayBhbmQgVkYgcG9ydHMuIFN1cHBvcnRzIFZMQU5zICh0cnVuayBhbmRcXG4gIDg1OlxcdFxcdCAgYWNjZXNzIG1vZGVzKS5cXG4gIDg2OlxcdFxcbiAgODc6XFx0Y29uZmlnIE1MWDVfQ0xTX0FDVFxcbiAgODg6XFx0XFx0Ym9vbCBcXFwiTUxYNSBUQyBjbGFzc2lmaWVyIGFjdGlvbiBzdXBwb3J0XFxcIlxcbiAgODk6XFx0XFx0ZGVwZW5kcyBvbiBNTFg1X0VTV0lUQ0ggXFx1MDAyNlxcdTAwMjYgTkVUX0NMU19BQ1QgXFx1MDAyNlxcdTAwMjYgTkVUX1RDX1NLQl9FWFRcXG4gIDkwOlxcdFxcdGRlZmF1bHQgeVxcbiAgOTE6XFx0XFx0aGVscFxcbiAgOTI6XFx0XFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIFRDIGNsYXNzaWZpZXIgYWN0aW9uIChORVRfQ0xTX0FDVCksXFxuICA5MzpcXHRcXHQgIHdvcmtzIGluIGJvdGggbmF0aXZlIE5JQyBtb2RlIGFuZCBTd2l0Y2hkZXYgU1JJT1YgbW9kZS5cXG4gIDk0OlxcdFxcdCAgQWN0aW9ucyBnZXQgYXR0YWNoZWQgdG8gYSBIYXJkd2FyZSBvZmZsb2FkZWQgY2xhc3NpZmllcnMgYW5kIGFyZVxcbiAgOTU6XFx0XFx0ICBpbnZva2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjbGFzc2lmaWNhdGlvbi4gQWN0aW9ucyBhcmUgdXNlZCB0b1xcbiAgOTY6XFx0XFx0ICBvdmVyd3JpdGUgdGhlIGNsYXNzaWZpY2F0aW9uIHJlc3VsdCwgaW5zdGFudGx5IGRyb3Agb3IgcmVkaXJlY3QgYW5kL29yXFxuICA5NzpcXHRcXHQgIHJlZm9ybWF0IHBhY2tldHMgaW4gd2lyZSBzcGVlZHMgd2l0aG91dCBpbnZvbHZpbmcgdGhlIGhvc3QgY3B1LlxcbiAgOTg6XFx0XFxuICA5OTpcXHRcXHQgIElmIHNldCB0byBOLCBUQyBvZmZsb2FkcyBpbiBib3RoIE5JQyBhbmQgc3dpdGNoZGV2IG1vZGVzIHdpbGwgYmUgZGlzYWJsZWQuXFxuIDEwMDpcXHRcXHQgIElmIHVuc3VyZSwgc2V0IHRvIFlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NDguODk3ODUxNTY0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0MTgwMDI1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNZWxsYW5veCBDb25uZWN0WCBEcml2ZXIgSW52ZXN0aWdhdGlvbioqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBvbiB0aGUgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0WCBoYXJkd2FyZSBoZXJlLiBUaGUgY2hhbGxlbmdlLCBhcyBhbHdheXMgd2l0aCBmdXp6aW5nLCBpcyB0aGUgZW52aXJvbm1lbnQuIEkga25vdyBTeXprYWxsZXIgZG9lc24ndCBlbXVsYXRlIE1lbGxhbm94IGhhcmR3YXJlIGRpcmVjdGx5IOKAkyB0aGF0J3MgYSBrZXkgbGltaXRhdGlvbi4gQnV0Li4uIHdhaXQsIGJlZm9yZSBJIHJ1bGUgaXQgb3V0IGNvbXBsZXRlbHksIGlzIHRoZXJlICphbnkqIHZpcnR1YWwgZGV2aWNlIG9wdGlvbiBvdXQgdGhlcmUgZm9yIGBtbHg1YD8gSSBuZWVkIHRvIGNoZWNrIGZvciBhIHZpcnR1YWwgZGF0YSBwYXRoIGFic3RyYWN0aW9uLCBzb21ldGhpbmcgbGlrZSBgdmRwYWAgbWF5YmUsIG9yIGEgc2ltaWxhciB0ZWNobm9sb2d5IHRoYXQgbWlnaHQgbGV0IG1lIGludGVyYWN0IHdpdGggdGhlIGRyaXZlciBpbiBhIHRlc3RhYmxlIHdheS4gSSBuZWVkIHRvIHNlZSBpZiB0aGVyZSdzICphbnl0aGluZyogSSBjYW4gbGV2ZXJhZ2Ugc2hvcnQgb2YgcmF3IGhhcmR3YXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjQwLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjo1Mi40Mzk2NTM3NTlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MTY0NTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy92ZHBhL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDI2NjEgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvdmRwYS9LY29uZmlnPTcyPWNvbmZpZyBNTFg1X1ZEUEFfU1RFRVJJTkdfREVCVUdcXG4tLVxcbmRyaXZlcnMvdmRwYS9LY29uZmlnLTgwLVxcdCAgZGVidWdmcy4gT25jZSBjYW4gcmVhZCB0aGUgY291bnRlcnMgdXNpbmcsIGUuZy46XFxuZHJpdmVycy92ZHBhL0tjb25maWc6ODE6XFx0ICBjYXQgL3N5cy9rZXJuZWwvZGVidWcvbWx4NS9tbHg1X2NvcmUuc2YuMS92ZHBhLTAvcngvdW50YWdnZWQvdWNhc3QvcGFja2V0c1xcbmRyaXZlcnMvdmRwYS9LY29uZmlnOjgyOlxcdCAgY2F0IC9zeXMva2VybmVsL2RlYnVnL21seDUvbWx4NV9jb3JlLnNmLjEvdmRwYS0wL3J4L3VudGFnZ2VkL21jYXN0L2J5dGVzXFxuZHJpdmVycy92ZHBhL0tjb25maWctODMtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvTWFrZWZpbGU9NT1vYmotJChDT05GSUdfSUZDVkYpICAgICs9IGlmY3ZmL1xcbmRyaXZlcnMvdmRwYS9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NTFg1X1ZEUEEpICs9IG1seDUvXFxuZHJpdmVycy92ZHBhL01ha2VmaWxlLTctb2JqLSQoQ09ORklHX1ZQX1ZEUEEpICAgICs9IHZpcnRpb19wY2kvXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9NYWtlZmlsZToxOnN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpL2RyaXZlcnMvdmRwYS9tbHg1L2NvcmVcXG5kcml2ZXJzL3ZkcGEvbWx4NS9NYWtlZmlsZS0yLVxcbmRyaXZlcnMvdmRwYS9tbHg1L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01MWDVfVkRQQV9ORVQpICs9IG1seDVfdmRwYS5vXFxuZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGU6NDptbHg1X3ZkcGEtJChDT05GSUdfTUxYNV9WRFBBX05FVCkgKz0gbmV0L21seDVfdm5ldC5vIGNvcmUvcmVzb3VyY2VzLm8gY29yZS9tci5vIG5ldC9kZWJ1Zy5vXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3ZkcGEuaFxcdTAwM2VcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbHg1L2RyaXZlci5oXFx1MDAzZVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTEtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEzLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ6c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTUtXFx0dTY0IHN0YXJ0O1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0yNi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjI3OnN0cnVjdCBtbHg1X3ZkcGFfbXIge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMjgtXFx0dTMyIG1rZXk7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTQyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6NDM6c3RydWN0IG1seDVfdmRwYV9yZXNvdXJjZXMge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNDQtXFx0dTMyIHBkbjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjQ1OlxcdHN0cnVjdCBtbHg1X3VhcnNfcGFnZSAqdWFyO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNDYtXFx0dm9pZCBfX2lvbWVtICpraWNrX2FkZHI7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTUyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6NTM6c3RydWN0IG1seDVfY29udHJvbF92cSB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC01NC1cXHRzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC02OS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjcwOnN0cnVjdCBtbHg1X3ZkcGFfd3FfZW50IHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTcxLVxcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6NzI6XFx0c3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2O1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNzMtfTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg9ODI9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTg1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6ODY6c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6ODc6XFx0c3RydWN0IG1seDVfdmRwYV9tciAqbXJbTUxYNV9WRFBBX05VTV9BU107XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC04OC1cXHR1bnNpZ25lZCBpbnQgZ3JvdXAyYXNpZFtNTFg1X1ZEUEFfTlVNVlFfR1JPVVBTXTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTAyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTAzOnN0cnVjdCBtbHg1X3ZkcGFfZGV2IHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEwNC1cXHRzdHJ1Y3QgdmRwYV9kZXZpY2UgdmRldjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwNTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwNjpcXHRzdHJ1Y3QgbWx4NV92ZHBhX3Jlc291cmNlcyByZXM7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMDc6XFx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgbXJlcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEwOC1cXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTE1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTE2OlxcdHN0cnVjdCBtbHg1X2NvbnRyb2xfdnEgY3ZxO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTE3LVxcdHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTE5LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTIwOlxcdHN0cnVjdCBtbHg1X2FzeW5jX2N0eCBhc3luY19jdHg7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMjEtfTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEyMi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEyMzpzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMjQtXFx0aW50IGVycjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEyNTpcXHRzdHJ1Y3QgbWx4NV9hc3luY193b3JrIGNiX3dvcms7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMjYtXFx0c3RydWN0IGNvbXBsZXRpb24gY21kX2RvbmU7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEzNC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzNTppbnQgbWx4NV92ZHBhX2NyZWF0ZV90aXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgdTMyICp0aXNuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzNjp2b2lkIG1seDVfdmRwYV9kZXN0cm95X3RpcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHUzMiB0aXNuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzNzppbnQgbWx4NV92ZHBhX2NyZWF0ZV9ycXQoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgaW50IGlubGVuLCB1MzIgKnJxdG4pO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTM4OmludCBtbHg1X3ZkcGFfbW9kaWZ5X3JxdChzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHZvaWQgKmluLCBpbnQgaW5sZW4sIHUzMiBycXRuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzOTp2b2lkIG1seDVfdmRwYV9kZXN0cm95X3JxdChzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHUzMiBycXRuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0MDppbnQgbWx4NV92ZHBhX2NyZWF0ZV90aXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgdTMyICp0aXJuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0MTp2b2lkIG1seDVfdmRwYV9kZXN0cm95X3RpcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHUzMiB0aXJuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0MjppbnQgbWx4NV92ZHBhX2FsbG9jX3RyYW5zcG9ydF9kb21haW4oc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgKnRkbik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDM6dm9pZCBtbHg1X3ZkcGFfZGVhbGxvY190cmFuc3BvcnRfZG9tYWluKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyIHRkbik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDQ6aW50IG1seDVfdmRwYV9hbGxvY19yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0NTp2b2lkIG1seDVfdmRwYV9mcmVlX3Jlc291cmNlcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ2OmludCBtbHg1X3ZkcGFfY3JlYXRlX21rZXkoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgKm1rZXksIHUzMiAqaW4sXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNDctXFx0XFx0XFx0ICBpbnQgaW5sZW4pO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ4OmludCBtbHg1X3ZkcGFfZGVzdHJveV9ta2V5KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyIG1rZXkpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ5OnN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1seDVfdmRwYV9jcmVhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTUwLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1MTppbnQgbWx4NV92ZHBhX2luaXRfbXJfcmVzb3VyY2VzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNTI6dm9pZCBtbHg1X3ZkcGFfZGVzdHJveV9tcl9yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1Mzp2b2lkIG1seDVfdmRwYV9jbGVhbl9tcnMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1NDp2b2lkIG1seDVfdmRwYV9nZXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU1OlxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1Njp2b2lkIG1seDVfdmRwYV9wdXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU3OlxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1ODp2b2lkIG1seDVfdmRwYV91cGRhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU5OlxcdFxcdFxcdCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2MC1cXHRcXHRcXHQgdW5zaWduZWQgaW50IGFzaWQpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTYxOmludCBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNjItXFx0XFx0XFx0XFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2My1cXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgYXNpZCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNjQ6aW50IG1seDVfdmRwYV9jcmVhdGVfZG1hX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNjU6aW50IG1seDVfdmRwYV9yZXNldF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHVuc2lnbmVkIGludCBhc2lkKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE2NjppbnQgbWx4NV92ZHBhX2V4ZWNfYXN5bmNfY21kcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNjc6XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9hc3luY19jbWQgKmNtZHMsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNjgtXFx0XFx0XFx0ICAgICAgaW50IG51bV9jbWRzKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2OS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE3MDojZGVmaW5lIG1seDVfdmRwYV9lcnIoX19kZXYsIGZvcm1hdCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNzEtXFx0ZGV2X2VycigoX19kZXYpLVxcdTAwM2VtZGV2LVxcdTAwM2VkZXZpY2UsIFxcXCIlczolZDoocGlkICVkKSBlcnJvcjogXFxcIiBmb3JtYXQsIF9fZnVuY19fLCBfX0xJTkVfXywgICAgICAgIFxcXFxcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTc0LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTc1OiNkZWZpbmUgbWx4NV92ZHBhX3dhcm4oX19kZXYsIGZvcm1hdCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE3Ni1cXHRkZXZfd2FybigoX19kZXYpLVxcdTAwM2VtZGV2LVxcdTAwM2VkZXZpY2UsIFxcXCIlczolZDoocGlkICVkKSB3YXJuaW5nOiBcXFwiIGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgXFxcXFxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNzgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNzk6I2RlZmluZSBtbHg1X3ZkcGFfaW5mbyhfX2RldiwgZm9ybWF0LCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTgwLVxcdGRldl9pbmZvKChfX2RldiktXFx1MDAzZW1kZXYtXFx1MDAzZWRldmljZSwgXFxcIiVzOiVkOihwaWQgJWQpOiBcXFwiIGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgICAgICAgICBcXFxcXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE4Mi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE4MzojZGVmaW5lIG1seDVfdmRwYV9kYmcoX19kZXYsIGZvcm1hdCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xODQtXFx0ZGV2X2RlYnVnKChfX2RldiktXFx1MDAzZW1kZXYtXFx1MDAzZWRldmljZSwgXFxcIiVzOiVkOihwaWQgJWQpOiBcXFwiIGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgICAgICAgIFxcXFxcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdHJpbmcuaFxcdTAwM2VcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODojaW5jbHVkZSBcXHUwMDNjbGludXgvbWx4NS9xcC5oXFx1MDAzZVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo5OiNpbmNsdWRlIFxcXCJtbHg1X3ZkcGEuaFxcXCJcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTAtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM9MjA9c3RhdGljIGludCBnZXRfb2N0b19sZW4odTY0IGxlbiwgaW50IHBhZ2Vfc2hpZnQpXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI5OnN0YXRpYyB2b2lkIG1seDVfc2V0X2FjY2Vzc19tb2RlKHZvaWQgKm1rYywgaW50IG1vZGUpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMwLXtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzU6c3RhdGljIHZvaWQgcG9wdWxhdGVfbXR0cyhzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIsIF9fYmU2NCAqbXR0KVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNi17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTEtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjUyOnN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUzLVxcdHU4IG91dFtNTFg1X1NUX1NaX0JZVEVTKGNyZWF0ZV9ta2V5X291dCldO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTU3LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1ODpzdHJ1Y3QgbWx4NV9kZXN0cm95X21rZXlfbWVtIHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTktXFx0dTggb3V0W01MWDVfU1RfU1pfQllURVMoZGVzdHJveV9ta2V5X291dCldO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTYyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2MzpzdGF0aWMgdm9pZCBmaWxsX2NyZWF0ZV9kaXJlY3RfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NDpcXHRcXHRcXHRcXHQgIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjU6XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbWx4NV9jcmVhdGVfbWtleV9tZW0gKm1lbSlcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjYte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTczLVxcdE1MWDVfU0VUKG1rYywgbWtjLCBsciwgISEobXItXFx1MDAzZXBlcm0gXFx1MDAyNiBWSE9TVF9NQVBfUk8pKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzQ6XFx0bWx4NV9zZXRfYWNjZXNzX21vZGUobWtjLCBNTFg1X01LQ19BQ0NFU1NfTU9ERV9NVFQpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NS1cXHRNTFg1X1NFVChta2MsIG1rYywgcXBuLCAweGZmZmZmZik7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODktXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjkwOnN0YXRpYyB2b2lkIGNyZWF0ZV9kaXJlY3RfbXJfZW5kKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTE6XFx0XFx0XFx0XFx0IHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTI6XFx0XFx0XFx0XFx0IHN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSAqbWVtKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy05My17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtOTUtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjk2OlxcdG1yLVxcdTAwM2VtciA9IG1seDVfaWR4X3RvX21rZXkobWtleV9pbmRleCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTk3LX1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtOTgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjk5OnN0YXRpYyB2b2lkIGZpbGxfZGVzdHJveV9kaXJlY3RfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMDA6XFx0XFx0XFx0XFx0ICAgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yLFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMDE6XFx0XFx0XFx0XFx0ICAgc3RydWN0IG1seDVfZGVzdHJveV9ta2V5X21lbSAqbWVtKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDIte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEwNi1cXHRNTFg1X1NFVChkZXN0cm95X21rZXlfaW4sIGluLCBvcGNvZGUsIE1MWDVfQ01EX09QX0RFU1RST1lfTUtFWSk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjEwNzpcXHRNTFg1X1NFVChkZXN0cm95X21rZXlfaW4sIGluLCBta2V5X2luZGV4LCBtbHg1X21rZXlfdG9faWR4KG1yLVxcdTAwM2VtcikpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDgtfVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDktXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExMDpzdGF0aWMgdm9pZCBkZXN0cm95X2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTExLXtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTQtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExNTpcXHRtbHg1X3ZkcGFfZGVzdHJveV9ta2V5KG12ZGV2LCBtci1cXHUwMDNlbXIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTYtfVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTctXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExODpzdGF0aWMgdTY0IG1hcF9zdGFydChzdHJ1Y3Qgdmhvc3RfaW90bGJfbWFwICptYXAsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTE5LXtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMjItXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjEyMzpzdGF0aWMgdTY0IG1hcF9lbmQoc3RydWN0IHZob3N0X2lvdGxiX21hcCAqbWFwLCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEyNC17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTI3LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMjg6c3RhdGljIHU2NCBtYXBsZW4oc3RydWN0IHZob3N0X2lvdGxiX21hcCAqbWFwLCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEyOS17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTM1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMzY6c3RhdGljIHU2NCBpbmRpcl9zdGFydF9hZGRyKHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1rZXkpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEzNy17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjEzODpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTM5LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNDA6XFx0cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2bWtleS1cXHUwMDNlaGVhZCwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIsIGxpc3QpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNDEtXFx0aWYgKCFzKVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE0Ni1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTQ3OnN0YXRpYyB1NjQgaW5kaXJfbGVuKHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1rZXkpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE0OC17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE0OTpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTUwOlxcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICplO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNTEtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE1MjpcXHRzID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFxcdTAwMjZta2V5LVxcdTAwM2VoZWFkLCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciwgbGlzdCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE1My1cXHRpZiAoIXMpXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTU1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNTY6XFx0ZSA9IGxpc3RfbGFzdF9lbnRyeShcXHUwMDI2bWtleS1cXHUwMDNlaGVhZCwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIsIGxpc3QpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNTctXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM9MTY0PXN0YXRpYyB1MzIga2xtX2Jjb3VudCh1NjQgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNjgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE2OTpzdGF0aWMgdm9pZCBmaWxsX2luZGlyKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbWtleSwgdm9pZCAqaW4pXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE3MC17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE3MTpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNzI6XFx0c3RydWN0IG1seDVfa2xtICprbG1hcnI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE3MzpcXHRzdHJ1Y3QgbWx4NV9rbG0gKmtsbTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTc0LVxcdGJvb2wgZmlyc3QgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jPTIwND1zdGF0aWMgaW50IGtsbV9ieXRlX3NpemUoaW50IG5rbG1zKVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIxMC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjExOnN0YXRpYyBpbnQgY3JlYXRlX2RpcmVjdF9rZXlzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIxMi17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjIxMzpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjE0OlxcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpkbXI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIxNS1cXHRpbnQgZXJyID0gMDtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yMjItXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShkbXIsIFxcdTAwMjZtci1cXHUwMDNlaGVhZCwgbGlzdCkge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyMjM6XFx0XFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yMjQtXFx0XFx0aW50IG10dGxlbiwgbXR0Y291bnQ7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjQzLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNDQ6XFx0ZXJyID0gbWx4NV92ZHBhX2V4ZWNfYXN5bmNfY21kcyhtdmRldiwgY21kcywgbXItXFx1MDAzZW51bV9kaXJlY3RzKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjQ1LVxcdGlmIChlcnIpIHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjQ2LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNDc6XFx0XFx0bWx4NV92ZHBhX2VycihtdmRldiwgXFxcImVycm9yIGlzc3VpbmcgTVRUIG1rZXkgY3JlYXRpb24gZm9yIGRpcmVjdCBtcnM6ICVkXFxcXG5cXFwiLCBlcnIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNDgtXFx0XFx0Z290byBkb25lO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI1Mi1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRtciwgXFx1MDAyNm1yLVxcdTAwM2VoZWFkLCBsaXN0KSB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI1MzpcXHRcXHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kID0gXFx1MDAyNmNtZHNbaSsrXTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjU0OlxcdFxcdHN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSAqY21kX21lbTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjU1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNTY6XFx0XFx0Y21kX21lbSA9IGNvbnRhaW5lcl9vZihjbWQtXFx1MDAzZW91dCwgc3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtLCBvdXQpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNTctXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjYxLVxcdFxcdFxcdGVyciA9IGVyciA/IGVyciA6IGNtZC1cXHUwMDNlZXJyO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNjI6XFx0XFx0XFx0bWx4NV92ZHBhX2VycihtdmRldiwgXFxcImVycm9yIGNyZWF0aW5nIE1UVCBta2V5IFsweCVsbHgsIDB4JWxseF06ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNjMtXFx0XFx0XFx0XFx0ZG1yLVxcdTAwM2VzdGFydCwgZG1yLVxcdTAwM2VlbmQsIGNtZC1cXHUwMDNlZXJyKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNjgtXFx0Zm9yIChpID0gaS0xOyBpIFxcdTAwM2U9IDA7IGktLSkge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNjk6XFx0XFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNzAtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI3MTpcXHRcXHRjbWRfbWVtID0gY29udGFpbmVyX29mKGNtZHNbaV0ub3V0LCBzdHJ1Y3QgbWx4NV9jcmVhdGVfbWtleV9tZW0sIG91dCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI3Mi1cXHRcXHRrdmZyZWUoY21kX21lbSk7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjc4LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNzk6REVGSU5FX0ZSRUUoZnJlZV9jbWRzLCBzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqLCBrdmZyZWUoX1QpKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODA6REVGSU5FX0ZSRUUoZnJlZV9jbWRfbWVtLCBzdHJ1Y3QgbWx4NV9kZXN0cm95X21rZXlfbWVtICosIGt2ZnJlZShfVCkpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI4MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjgyOnN0YXRpYyBpbnQgZGVzdHJveV9kaXJlY3Rfa2V5cyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yODMte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODQ6XFx0c3RydWN0IG1seDVfZGVzdHJveV9ta2V5X21lbSAqY21kX21lbSBfX2ZyZWUoZnJlZV9jbWRfbWVtKSA9IE5VTEw7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI4NTpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kcyBfX2ZyZWUoZnJlZV9jbWRzKSA9IE5VTEw7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI4NjpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yODctXFx0aW50IGVyciA9IDA7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzAzLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozMDQ6XFx0ZXJyID0gbWx4NV92ZHBhX2V4ZWNfYXN5bmNfY21kcyhtdmRldiwgY21kcywgbXItXFx1MDAzZW51bV9kaXJlY3RzKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzA1LVxcdGlmIChlcnIpIHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzA2LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozMDc6XFx0XFx0bWx4NV92ZHBhX2VycihtdmRldiwgXFxcImVycm9yIGlzc3VpbmcgTVRUIG1rZXkgZGVsZXRpb24gZm9yIGRpcmVjdCBtcnM6ICVkXFxcXG5cXFwiLCBlcnIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMDgtXFx0XFx0cmV0dXJuIGVycjtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMTItXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShkbXIsIFxcdTAwMjZtci1cXHUwMDNlaGVhZCwgbGlzdCkge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozMTM6XFx0XFx0c3RydWN0IG1seDVfdmRwYV9hc3luY19jbWQgKmNtZCA9IFxcdTAwMjZjbWRzW2krK107XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMxNC1cXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMTctXFx0XFx0XFx0ZXJyID0gZXJyID8gZXJyIDogY21kLVxcdTAwM2VlcnI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjMxODpcXHRcXHRcXHRtbHg1X3ZkcGFfZXJyKG12ZGV2LCBcXFwiZXJyb3IgZGVsZXRpbmcgTVRUIG1rZXkgWzB4JWxseCwgMHglbGx4XTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMxOS1cXHRcXHRcXHRcXHRkbXItXFx1MDAzZXN0YXJ0LCBkbXItXFx1MDAzZWVuZCwgY21kLVxcdTAwM2VlcnIpO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMyNS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzI2OnN0YXRpYyBpbnQgY3JlYXRlX2luZGlyZWN0X2tleShzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMjcte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM0OC1cXHRNTFg1X1NFVChta2MsIG1rYywgbHIsIDEpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozNDk6XFx0bWx4NV9zZXRfYWNjZXNzX21vZGUobWtjLCBNTFg1X01LQ19BQ0NFU1NfTU9ERV9LTE1TKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzUwLVxcdE1MWDVfU0VUKG1rYywgbWtjLCBxcG4sIDB4ZmZmZmZmKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNTYtXFx0ZmlsbF9pbmRpcihtdmRldiwgbXIsIGluKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzU3OlxcdGVyciA9IG1seDVfdmRwYV9jcmVhdGVfbWtleShtdmRldiwgXFx1MDAyNm1yLVxcdTAwM2Vta2V5LCBpbiwgaW5sZW4pO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNTgtXFx0a2ZyZWUoaW4pO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM2MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzYyOnN0YXRpYyB2b2lkIGRlc3Ryb3lfaW5kaXJlY3Rfa2V5KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbWtleSlcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzYzLXtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzY0OlxcdG1seDVfdmRwYV9kZXN0cm95X21rZXkobXZkZXYsIG1rZXktXFx1MDAzZW1rZXkpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjUtfVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjYtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjM2NzpzdGF0aWMgaW50IG1hcF9kaXJlY3RfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM2OC1cXHRcXHRcXHQgc3RydWN0IHZob3N0X2lvdGxiICppb3RsYilcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MDUtXFx0XFx0XFx0aWYgKCFzZykge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo0MDY6XFx0XFx0XFx0XFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFxcXCJzZyBudWxsLiBzdGFydCAweCVsbHgsIGVuZCAweCVsbHhcXFxcblxcXCIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQwNy1cXHRcXHRcXHRcXHRcXHQgICAgICAgbWFwLVxcdTAwM2VzdGFydCwgbWFwLVxcdTAwM2VsYXN0ICsgMSk7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNDMyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo0MzM6c3RhdGljIHZvaWQgdW5tYXBfZGlyZWN0X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MzQte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ0MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDQyOnN0YXRpYyBpbnQgYWRkX2RpcmVjdF9jaGFpbihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ0MzpcXHRcXHRcXHQgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ0NC1cXHRcXHRcXHQgICAgdTY0IHN0YXJ0LFxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ0OC17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ0OTpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo0NTA6XFx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm47XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ1MS1cXHRMSVNUX0hFQUQodG1wKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00OTctICovXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ5ODpzdGF0aWMgaW50IGNyZWF0ZV91c2VyX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDk5OlxcdFxcdFxcdCAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwMC1cXHRcXHRcXHQgIHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwMS17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjUwMjpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1MDM6XFx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm47XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwNC1cXHRzdHJ1Y3Qgdmhvc3RfaW90bGJfbWFwICptYXA7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTY1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1NjY6c3RhdGljIGludCBjcmVhdGVfZG1hX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTU2Ny17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTg1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1ODY6XFx0ZXJyID0gbWx4NV92ZHBhX2NyZWF0ZV9ta2V5KG12ZGV2LCBcXHUwMDI2bXItXFx1MDAzZW1rZXksIGluLCBpbmxlbik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTU4Ny1cXHRpZiAoIWVycilcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTMtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjU5NDpzdGF0aWMgdm9pZCBkZXN0cm95X2RtYV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTUte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1OTY6XFx0bWx4NV92ZHBhX2Rlc3Ryb3lfbWtleShtdmRldiwgbXItXFx1MDAzZW1rZXkpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTctfVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jPTYyMz1zdGF0aWMgdm9pZCBwcnVuZV9pb3RsYihzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTYyNy1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjI4OnN0YXRpYyB2b2lkIGRlc3Ryb3lfdXNlcl9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02Mjkte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2MzA6XFx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKmRtcjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjMxOlxcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpuO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02MzItXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjQxLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NDI6c3RhdGljIHZvaWQgX21seDVfdmRwYV9kZXN0cm95X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY0My17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjY0LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NjU6c3RhdGljIHZvaWQgbWx4NV92ZHBhX21yX2djX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02NjYte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2Njc6XFx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgKm1yZXM7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjY2ODpcXHRzdHJ1Y3QgbWx4NV92ZHBhX21yICptciwgKnRtcDtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjY5OlxcdHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjcwLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NzE6XFx0bXJlcyA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4NV92ZHBhX21yX3Jlc291cmNlcywgZ2NfZHdvcmtfZW50LndvcmspO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02NzItXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjgwLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2ODE6XFx0bXZkZXYgPSBjb250YWluZXJfb2YobXJlcywgc3RydWN0IG1seDVfdmRwYV9kZXYsIG1yZXMpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02ODItXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY4My1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobXIsIHRtcCwgXFx1MDAyNm1yZXMtXFx1MDAzZW1yX2djX2xpc3RfaGVhZCwgbXJfbGlzdCkge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2ODQ6XFx0XFx0X21seDVfdmRwYV9kZXN0cm95X21yKG12ZGV2LCBtcik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY4NS1cXHR9XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjg5LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2OTA6c3RhdGljIHZvaWQgX21seDVfdmRwYV9wdXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2OTE6XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY5Mi17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjY5MzpcXHRzdHJ1Y3QgbWx4NV92ZHBhX21yX3Jlc291cmNlcyAqbXJlcyA9IFxcdTAwMjZtdmRldi1cXHUwMDNlbXJlcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjk0LVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcwNC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzA1OnZvaWQgbWx4NV92ZHBhX3B1dF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcwNjpcXHRcXHQgICAgICBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcilcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzA3LXtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzA4LVxcdG11dGV4X2xvY2soXFx1MDAyNm12ZGV2LVxcdTAwM2VtcmVzLmxvY2spO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MDk6XFx0X21seDVfdmRwYV9wdXRfbXIobXZkZXYsIG1yKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzEwLVxcdG11dGV4X3VubG9jayhcXHUwMDI2bXZkZXYtXFx1MDAzZW1yZXMubG9jayk7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzEyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MTM6c3RhdGljIHZvaWQgX21seDVfdmRwYV9nZXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MTQ6XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcxNS17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzIxLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MjI6dm9pZCBtbHg1X3ZkcGFfZ2V0X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzIzOlxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MjQte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MjUtXFx0bXV0ZXhfbG9jayhcXHUwMDI2bXZkZXYtXFx1MDAzZW1yZXMubG9jayk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcyNjpcXHRfbWx4NV92ZHBhX2dldF9tcihtdmRldiwgbXIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MjctXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZtdmRldi1cXHUwMDNlbXJlcy5sb2NrKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MjktXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjczMDp2b2lkIG1seDVfdmRwYV91cGRhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MzE6XFx0XFx0XFx0IHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm5ld19tcixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzMyLVxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgYXNpZClcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzMzLXtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzM0OlxcdHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm9sZF9tciA9IG12ZGV2LVxcdTAwM2VtcmVzLm1yW2FzaWRdO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MzUtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzM3LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3Mzg6XFx0X21seDVfdmRwYV9wdXRfbXIobXZkZXYsIG9sZF9tcik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTczOS1cXHRtdmRldi1cXHUwMDNlbXJlcy5tclthc2lkXSA9IG5ld19tcjtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NDMtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc0NDpzdGF0aWMgdm9pZCBtbHg1X3ZkcGFfc2hvd19tcl9sZWFrcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc0NS17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc0NjpcXHRzdHJ1Y3QgbWx4NV92ZHBhX21yICptcjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzQ3LVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc1MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzUyOlxcdFxcdG1seDVfdmRwYV93YXJuKG12ZGV2LCBcXFwibWtleSBzdGlsbCBhbGl2ZSBhZnRlciByZXNvdXJjZSBkZWxldGU6IFxcXCJcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzUzLVxcdFxcdFxcdFxcdCAgICAgIFxcXCJtcjogJXAsIG1rZXk6IDB4JXgsIHJlZmNvdW50OiAldVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NjAtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc2MTp2b2lkIG1seDVfdmRwYV9jbGVhbl9tcnMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NjIte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc2Ni1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIE1MWDVfVkRQQV9OVU1fQVM7IGkrKylcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzY3OlxcdFxcdG1seDVfdmRwYV91cGRhdGVfbXIobXZkZXYsIE5VTEwsIGkpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NjgtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzcwLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3NzE6XFx0bWx4NV92ZHBhX3Nob3dfbXJfbGVha3MobXZkZXYpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NzItfVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NzMtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc3NDpzdGF0aWMgaW50IF9tbHg1X3ZkcGFfY3JlYXRlX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6Nzc1OlxcdFxcdFxcdFxcdHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yLFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NzYtXFx0XFx0XFx0XFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYilcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MTMtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjgxNDpzdHJ1Y3QgbWx4NV92ZHBhX21yICptbHg1X3ZkcGFfY3JlYXRlX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODE1LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MTYte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4MTc6XFx0c3RydWN0IG1seDVfdmRwYV9tciAqbXI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTgxOC1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTgyNC1cXHRtdXRleF9sb2NrKFxcdTAwMjZtdmRldi1cXHUwMDNlbXJlcy5sb2NrKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODI1OlxcdGVyciA9IF9tbHg1X3ZkcGFfY3JlYXRlX21yKG12ZGV2LCBtciwgaW90bGIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MjYtXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZtdmRldi1cXHUwMDNlbXJlcy5sb2NrKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MzktXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg0MDppbnQgbWx4NV92ZHBhX3VwZGF0ZV9jdnFfaW90bGIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NDEtXFx0XFx0XFx0XFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYixcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NTgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg1OTppbnQgbWx4NV92ZHBhX2NyZWF0ZV9kbWFfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NjAte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4NjE6XFx0c3RydWN0IG1seDVfdmRwYV9tciAqbXI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2Mi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODYzOlxcdG1yID0gbWx4NV92ZHBhX2NyZWF0ZV9tcihtdmRldiwgTlVMTCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2NC1cXHRpZiAoSVNfRVJSKG1yKSlcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NjYtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg2NzpcXHRtbHg1X3ZkcGFfdXBkYXRlX21yKG12ZGV2LCBtciwgMCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2OC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODY5OlxcdHJldHVybiBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihtdmRldiwgTlVMTCwgMCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg3MC19XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg3MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODcyOmludCBtbHg1X3ZkcGFfcmVzZXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1bnNpZ25lZCBpbnQgYXNpZClcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODczLXtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzYtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg3NzpcXHRtbHg1X3ZkcGFfdXBkYXRlX21yKG12ZGV2LCBOVUxMLCBhc2lkKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODc4LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzktXFx0aWYgKGFzaWQgPT0gMCBcXHUwMDI2XFx1MDAyNiBNTFg1X0NBUF9HRU4obXZkZXYtXFx1MDAzZW1kZXYsIHVtZW1fdWlkXzApKSB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg4MDpcXHRcXHRpZiAobWx4NV92ZHBhX2NyZWF0ZV9kbWFfbXIobXZkZXYpKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4ODE6XFx0XFx0XFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFxcXCJjcmVhdGUgRE1BIE1SIGZhaWxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg4Mi1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4ODM6XFx0XFx0bWx4NV92ZHBhX3VwZGF0ZV9jdnFfaW90bGIobXZkZXYsIE5VTEwsIGFzaWQpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04ODQtXFx0fVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg4OC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODg5OmludCBtbHg1X3ZkcGFfaW5pdF9tcl9yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTAte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4OTE6XFx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgKm1yZXMgPSBcXHUwMDI2bXZkZXYtXFx1MDAzZW1yZXM7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg5Mi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODkzOlxcdG1yZXMtXFx1MDAzZXdxX2djID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoXFxcIm1seDVfdmRwYV9tcl9nY1xcXCIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTQtXFx0aWYgKCFtcmVzLVxcdTAwM2V3cV9nYylcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTYtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg5NzpcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2bXJlcy1cXHUwMDNlZ2NfZHdvcmtfZW50LCBtbHg1X3ZkcGFfbXJfZ2NfaGFuZGxlcik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg5OC1cXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy05MDYtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMyOjUyLjQ5ODgyNjQ0NFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTM3MzE1NTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIGEgU3l6Ym90LVRlc3RlZCBNTFg1IERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoZSBwYXRjaCBpcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AuIFRoYXQncyB0aGUgY29yZSBFdGhlcm5ldCBkcml2ZXIgZm9yIHRoZSBNTFg1IGhhcmR3YXJlLCBnb3QgaXQuIEFuZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24sIGBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2YCwgaGludHMgYXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIE1QViBmZWF0dXJlIG9yIHNvbWUgc29ydCBvZiBkZXZpY2UgY29tbXVuaWNhdGlvbiBldmVudCBoYW5kbGluZy4gQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gaXMgdGhpcyBldmVuICpyZWFjaGFibGUqIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IE5vcm1hbGx5LCB0aGVzZSBoYXJkd2FyZSBkcml2ZXJzIGFyZSBjb21wbGV0ZWx5IGluYWNjZXNzaWJsZSBpbiBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSB1bmxlc3MgeW91IGhhdmUgYSBlbXVsYXRlZCBQQ0kgZGV2aWNlLiBBbmQsIGFzIGZhciBhcyBJIGtub3csIHRoZXJlIGlzbid0IGFuIE1MWDUgZW11bGF0b3IgaW4gUUVNVSBvciB0aGUga2VybmVsLlxuXG5Ob3csIHdhaXQuLi4gc3l6Ym90IHVzZXMgUUVNVSBhbmQgR0NFLCBkb2Vzbid0IGl0PyBBbmQgU3l6a2FsbGVyIGRlZmluaXRlbHkgZG9lc24ndCBoYXZlIGFuIE1MWDUgZW11bGF0b3IuIEhtbS4uLiB0aGUgY29tbWl0IG1lc3NhZ2Ugc2F5cyBcInN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1wiLiBUaGlzIG1lYW5zIHNvbWVvbmUgc3VibWl0dGVkIHRoZSBwYXRjaCwgYW5kIHN5emJvdCdzIHJ1bm5pbmcgdGVzdHMgb24gaXQuIFRoYXQncyBnb29kLCBidXQgaG93IGlzIHRoaXMgZXZlbiAqcG9zc2libGUqPyBJZiB0aGUgcGF0Y2ggaXMgaW4gYSBoYXJkd2FyZSBkcml2ZXIgdGhhdCBpc24ndCBhY2Nlc3NpYmxlLCBzeXpib3Qgc2hvdWxkbid0IGJlIGFibGUgdG8gZnV6eiBpdCEgXG5cbkkgbmVlZCB0byBkaWcgZGVlcGVyLiBJIGhhdmUgdG8gY2hlY2sgaWYgdGhlIGBtbHg1YCBkcml2ZXIgaXMgZXZlbiByZWFjaGFibGUuIElzIHRoZXJlICphbnkqIGBtbHg1YCBkZXZpY2UgZW11bGF0aW9uPyBDYW4gaXQgYmUgaW5zdGFudGlhdGVkIHZpYSBuZXRkZXZzaW0gb3Igc29tZXRoaW5nPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgc3l6Ym90J3MgdGVzdGluZyB0aGlzLiBUaGlzIGlzIGFuIGludGVyZXN0aW5nIGNvbnVuZHJ1bS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkxNDQsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NTguNjM2MTQ0MjE1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODI3ODY0MDQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwidG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvbWx4c3cvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjo1OC44MTg5NDA5MDlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE2NTE3Mzk4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipJbnZlc3RpZ2F0aW5nIERyaXZlciBEaWZmZXJlbnRpYXRpb24qKlxuXG5IbW0sIGhvbGQgb24gYSBzZWNvbmQuIE15IGluaXRpYWwgYXNzdW1wdGlvbiB3YXMgb2ZmLiBgbWx4c3dgIGlzIGEgZGlzdGluY3QgZHJpdmVyLCBpc24ndCBpdD8gT2theSwgc28gdGhhdCBtZWFucyB0aGUgYXBwcm9hY2ggSSB3YXMgdGhpbmtpbmcgYWJvdXQgZWFybGllciBsaWtlbHkgd29uJ3QgYXBwbHkgZGlyZWN0bHkuIEkgbmVlZCB0byBiZSBtb3JlIHByZWNpc2UgaW4gbXkgaW52ZXN0aWdhdGlvbi4gTGV0J3Mgc2VlLi4uIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhlIHNpbXVsYXRlZCBuZXR3b3JraW5nIGVudmlyb25tZW50IGlzIHdoYXQgSSdtIGludGVyZXN0ZWQgaW4sIHRvIHN0YXJ0LiBUbyBjbGFyaWZ5IG15IG1lbnRhbCBtb2RlbCwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgZm9yIGFueSByZWxldmFudCBgbWx4NWAgY29tcG9uZW50cyBpbiB0aGUgYGRyaXZlcnMvbmV0L25ldGRldnNpbS9gIGRpcmVjdG9yeS4gVGhhdCdzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0LCBnaXZlbiB0aGUgY29udGV4dC4gSSdtIGxvb2tpbmcgZm9yIHNpbXVsYXRlZCBuZXR3b3JrIGRldmljZSBkcml2ZXJzIGFuZCBJIG5lZWQgdG8gZXN0YWJsaXNoIHRoZSByZWxhdGlvbnNoaXBzIHdpdGhpbiB0aGF0IHNpbXVsYXRlZCBkcml2ZXIuIExldCdzIGRpZyBpbiBhbmQgc2VlIHdoYXQncyB3aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTg0MiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjAxLjk4NDExNzA2N1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ5MDQwMzI3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbHg1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L25ldGRldnNpbS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjAyLjEzMzE2NjQzNFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTM2NDUyODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIG1seDUgRHJpdmVyOiBBIFJlYWxpdHkgQ2hlY2sqKlxuXG5Pa2F5LCBsZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIHRhcmdldHMgZm9yIGZ1enppbmcgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gSSdtIHNwZWNpZmljYWxseSBpbnRlcmVzdGVkIGluIGFueXRoaW5nIHRoYXQgaGFuZGxlcyBleHRlcm5hbCBpbnB1dCBvciBwb3RlbnRpYWxseSBoYXMgY29tcGxleCBzdGF0ZSB0cmFuc2l0aW9ucy4gQWgsIGhlcmUncyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtbHg1X2RldmNvbV9zZW5kX2V2ZW50YC4gVGhhdCBzZWVtcyBsaWtlIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byBpbnZlc3RpZ2F0ZS5cblxuQnV0IHdhaXQsIGEgcXVpY2sgcmVhbGl0eSBjaGVjayBpcyBpbiBvcmRlci4gVGhpcyBpcyB0aGUgTWVsbGFub3ggQ29ubmVjdFggY29yZSBkcml2ZXIsIGFuZCBteSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQncyB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIGhhcmR3YXJlLiBUaGF0IG1ha2VzIGl0IG1vcmUgY2hhbGxlbmdpbmcgdG8gd29yayB3aXRoLiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AgcmVxdWlyZXMgYSBwaHlzaWNhbCBQQ0kgZGV2aWNlIOKAkyBDb25uZWN0WC00LzUvNi83IHNwZWNpZmljYWxseSDigJMgdG8gZnVuY3Rpb24uIFdpdGhvdXQgdGhhdCBoYXJkd2FyZSBwcmVzZW50LCB0aGUgYHByb2JlYCBmdW5jdGlvbiB3aWxsIG5ldmVyIGV2ZW4gYmUgY2FsbGVkLiBDb25zZXF1ZW50bHksIG5vbmUgb2YgdGhlIGNvZGUgd2l0aGluIHdpbGwgZXhlY3V0ZS5cblxuU28sIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgcHJvYmVgIGZ1bmN0aW9uIGFuZCBob3cgaXQgd29ya3MuIFRoYXQncyB0aGUgcmVhbCBlbnRyeSBwb2ludCBJIG5lZWQgdG8gZm9jdXMgb24uIExvb2tzIGxpa2UgSSdtIGdvaW5nIHRvIG5lZWQgdG8gbG9vayBhdCBob3cgdG8gZW11bGF0ZSB0aGUgaGFyZHdhcmUgdG8gZ2V0IGFueXdoZXJlIHVzZWZ1bCBpbiBhIGZ1enppbmcgc2NlbmFyaW8uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMTExLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjA3LjI2OTYyMjYwMloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1MTE5MTY3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYz0yMjQxPWludCBtbHg1X3JlY292ZXJfZGV2aWNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTIyNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyMjUyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBtbHg1X2NvcmVfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjI1My1cXHQubmFtZSAgICAgICAgICAgPSBLQlVJTERfTU9ETkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6MDguNTIwODE4ODU1WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk0MjQwMTE4NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRoIHRvIGEgUG90ZW50aWFsIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IHNvbWV0aGluZyByZWxhdGVkIHRvIE1lbGxhbm94IENvbm5lY3RYIGhhcmR3YXJlLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFsd2F5cywgXCJDYW4gUUVNVSBoZWxwIG1lIGhlcmU/XCIgSSBrbm93IFFFTVUgcHJldHR5IHdlbGw7IGl0IGhhcyB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIGVtdWxhdGVkIE5JQ3MgbGlrZSBgZTEwMDBgLCBgdmlydGlvLW5ldGAsIGFuZCB0aGUgcmVzdC4gQnV0IGRvZXMgaXQgZW11bGF0ZSBhbnkgTWVsbGFub3ggQ29ubmVjdFggdmVyc2lvbnMgbGlrZSB0aGUgNCwgNSwgNiwgb3IgNz8gTm8sIG5vdCBkaXJlY3RseS4gSSByZWNhbGwgc29tZSByZWNlbnQgYWRkaXRpb25zLCBidXQgYG1seDVgIGlzIG5vdCBhbW9uZyB0aGVtLlxuXG5UaGUgbmV4dCB0aG91Z2h0IGlzIGFsd2F5cyBTeXprYWxsZXIuIERvZXMgaXQgb2ZmZXIgYSBiYWNrZG9vcj8gRG9lcyBTeXprYWxsZXIgaGF2ZSBhbnkgd2F5IHRvIHJlYWNoIGl0P1xuXG5TeXprYWxsZXIgdXNlcyBgc3l6LWV4ZWN1dG9yYC4gQ2FuIGl0IGluamVjdCBQQ0kgZGV2aWNlcz8gV2l0aCBlaXRoZXIgYHZoY2lgIG9yIGB2ZmlvYD8gTm8sIFN5emthbGxlciBkb2Vzbid0IGVtdWxhdGUgYXJiaXRyYXJ5IFBDSSBkZXZpY2VzIGluIGEgZ2VuZXJpYyB3YXkuIEl0IGNhbiBmdXp6IFBDSSBmdW5jdGlvbmFsaXR5IHVzaW5nIGBzeXpfcGNpX2RldmljZWAsICppZiogUENJIGZ1enppbmcgaXMgZW5hYmxlZC4gV2FpdCwgU3l6a2FsbGVyICpkb2VzKiBoYXZlIFBDSSBmdXp6aW5nISBJbnRlcmVzdGluZy4uLlxuXG5TbywgU3l6a2FsbGVyIGNhbiBlbXVsYXRlIFBDSSBkZXZpY2VzLCBidXQgaG93PyBVc2luZyB0aGUgYHN5el9wY2lfZGV2aWNlYCBwc2V1ZG8tc3lzY2FsbC4gVGhhdCBpbmplY3RzIFBDSSBkZXZpY2VzLCBidXQgaG93PyBWaXJ0dWFsIFBDSSBob3N0IGNvbnRyb2xsZXIsIHJhdyBQQ0kgaW5qZWN0aW9uLCBvciB1c2VyLXNwYWNlIFBDSSBlbXVsYXRpb24/IEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQuIFdhaXQsIHRoZSBgc3l6X3BjaWAgbWVjaGFuaXNtLiBEb2VzIHRoYXQgdXNlIGB2ZmlvYCBvciBzaW1pbGFyPyBObywgU3l6a2FsbGVyJ3MgUENJIGZ1enplciBpbiBRRU1VIGNvbmZpZ3VyZXMgUENJIGNvbmZpZyBzcGFjZSwgTU1JTy9QSU8gaW4gUUVNVT8gTm8sIGl0IHVzZXMgYSBjdXN0b20gUENJIGRldmljZSBpbiBRRU1VIG9yIGEgc29mdHdhcmUgUENJIGhvc3QgYnJpZGdlLiBPa2F5LCB0aGF0J3Mgd2hhdCdzIGltcG9ydGFudC5cblxuVGhlIGNvcmUgcXVlc3Rpb24gbm93OiBjYW4gU3l6a2FsbGVyIGZ1enogUENJIGRyaXZlcnMsICppbiBnZW5lcmFsKj8gWWVzLCBpdCBjYW4hIEl0IGhhcyBhIGBzeXpfcGNpYCBzdWJzeXN0ZW0gc3BlY2lmaWNhbGx5IGZvciB0aGlzIHB1cnBvc2UuIEV4Y2VsbGVudC4gVGhhdCdzIGEgaHVnZSBwb3NpdGl2ZSBpbmRpY2F0b3IuXG5cbkFscmlnaHQsIGxldCdzIGVzdGFibGlzaCBzb21lIHByZS1jb25kaXRpb25zLiBBcmUgYENPTkZJR19QQ0lgIGFuZCBgQ09ORklHX01MWDVfQ09SRWAgZW5hYmxlZCB3aXRoaW4gU3l6a2FsbGVyJ3MgY29uZmlndXJhdGlvbj8gSWYgYm90aCBhcmUgZW5hYmxlZCwgdGhlbiB0aGlzIGNvZGUgcGF0aCAqbWlnaHQqIGJlIHJlYWNoYWJsZSBieSB0aGUgZnV6emVyLiBJdCdzIGEga2V5IGZpcnN0IHN0ZXAuXG5cblRoZSB0YXJnZXQgaXMgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgLiBJcyB0aGF0IGZ1bmN0aW9uIHJlYWNoYWJsZT8gSXQncyB0aGUgb25lIG1vZGlmaWVkIGJ5IHRoZSBwYXRjaCwgc28gaWYgd2UgY2FuIHJlYWNoIGl0LCBpdCB3aWxsIGJlIHJlYWNoYWJsZS5cblxuTm93LCB3aGVyZSBpcyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAgbG9jYXRlZD8gSXQncyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AuIExldCdzIGhhdmUgYSBsb29rLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDc4MCwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMzoxNy45NDQ4MzI3MzhaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQ5ODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjAwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjAwOlxcdFxcbiAyMDE6XFx0c3RhdGljIHZvaWQgbWx4NWVfZW5hYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcXG4gMjAyOlxcdHtcXG4gMjAzOlxcdFxcdHByaXYtXFx1MDAzZWV2ZW50c19uYi5ub3RpZmllcl9jYWxsID0gYXN5bmNfZXZlbnQ7XFxuIDIwNDpcXHRcXHRtbHg1X25vdGlmaWVyX3JlZ2lzdGVyKHByaXYtXFx1MDAzZW1kZXYsIFxcdTAwMjZwcml2LVxcdTAwM2VldmVudHNfbmIpO1xcbiAyMDU6XFx0fVxcbiAyMDY6XFx0XFxuIDIwNzpcXHRzdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcXG4gMjA4OlxcdHtcXG4gMjA5OlxcdFxcdG1seDVfbm90aWZpZXJfdW5yZWdpc3Rlcihwcml2LVxcdTAwM2VtZGV2LCBcXHUwMDI2cHJpdi1cXHUwMDNlZXZlbnRzX25iKTtcXG4gMjEwOlxcdH1cXG4gMjExOlxcdFxcbiAyMTI6XFx0c3RhdGljIGludCBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2KGludCBldmVudCwgdm9pZCAqbXlfZGF0YSwgdm9pZCAqZXZlbnRfZGF0YSlcXG4gMjEzOlxcdHtcXG4gMjE0OlxcdFxcdHN0cnVjdCBtbHg1ZV9wcml2ICptYXN0ZXJfcHJpdiA9IGV2ZW50X2RhdGE7XFxuIDIxNTpcXHRcXG4gMjE2OlxcdFxcdHN3aXRjaCAoZXZlbnQpIHtcXG4gMjE3OlxcdFxcdGNhc2UgTVBWX0RFVkNPTV9NQVNURVJfVVA6XFxuIDIxODpcXHRcXHRcXHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShtYXN0ZXJfcHJpdi1cXHUwMDNlZGV2Y29tLCB0cnVlKTtcXG4gMjE5OlxcdFxcdFxcdGJyZWFrO1xcbiAyMjA6XFx0XFx0Y2FzZSBNUFZfREVWQ09NX01BU1RFUl9ET1dOOlxcbiAyMjE6XFx0XFx0XFx0Lyogbm8gbmVlZCBmb3IgY29tcCBzZXQgcmVhZHkgZmFsc2Ugc2luY2Ugd2UgdW5yZWdpc3RlciBhZnRlclxcbiAyMjI6XFx0XFx0XFx0ICogYW5kIGl0IGh1cnRzIGNsZWFudXAgZmxvdy5cXG4gMjIzOlxcdFxcdFxcdCAqL1xcbiAyMjQ6XFx0XFx0XFx0YnJlYWs7XFxuIDIyNTpcXHRcXHRjYXNlIE1QVl9ERVZDT01fSVBTRUNfTUFTVEVSX1VQOlxcbiAyMjY6XFx0XFx0Y2FzZSBNUFZfREVWQ09NX0lQU0VDX01BU1RFUl9ET1dOOlxcbiAyMjc6XFx0XFx0XFx0bWx4NWVfaXBzZWNfaGFuZGxlX21wdl9ldmVudChldmVudCwgbXlfZGF0YSwgZXZlbnRfZGF0YSk7XFxuIDIyODpcXHRcXHRcXHRicmVhaztcXG4gMjI5OlxcdFxcdH1cXG4gMjMwOlxcdFxcbiAyMzE6XFx0XFx0cmV0dXJuIDA7XFxuIDIzMjpcXHR9XFxuIDIzMzpcXHRcXG4gMjM0OlxcdHN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2luaXRfbXB2KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCB1NjQgKmRhdGEpXFxuIDIzNTpcXHR7XFxuIDIzNjpcXHRcXHRzdHJ1Y3QgbWx4NV9kZXZjb21fbWF0Y2hfYXR0ciBhdHRyID0ge1xcbiAyMzc6XFx0XFx0XFx0LmtleS52YWwgPSAqZGF0YSxcXG4gMjM4OlxcdFxcdH07XFxuIDIzOTpcXHRcXG4gMjQwOlxcdFxcdHByaXYtXFx1MDAzZWRldmNvbSA9IG1seDVfZGV2Y29tX3JlZ2lzdGVyX2NvbXBvbmVudChwcml2LVxcdTAwM2VtZGV2LVxcdTAwM2Vwcml2LmRldmMsXFxuIDI0MTpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBNTFg1X0RFVkNPTV9NUFYsXFxuIDI0MjpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBcXHUwMDI2YXR0cixcXG4gMjQzOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIG1seDVlX2RldmNvbV9ldmVudF9tcHYsXFxuIDI0NDpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBwcml2KTtcXG4gMjQ1OlxcdFxcdGlmICghcHJpdi1cXHUwMDNlZGV2Y29tKVxcbiAyNDY6XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIDI0NzpcXHRcXG4gMjQ4OlxcdFxcdGlmIChtbHg1X2NvcmVfaXNfbXBfbWFzdGVyKHByaXYtXFx1MDAzZW1kZXYpKSB7XFxuIDI0OTpcXHRcXHRcXHRtbHg1X2RldmNvbV9zZW5kX2V2ZW50KHByaXYtXFx1MDAzZWRldmNvbSwgTVBWX0RFVkNPTV9NQVNURVJfVVAsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjE3Ljk0NTE4NTY1OFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NDU5NjAzODAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2YCBSZWFjaGFiaWxpdHkqKlxuXG5Pa2F5LCBzbyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAgaXMgcmVnaXN0ZXJlZCB1c2luZyBgbWx4NV9kZXZjb21fcmVnaXN0ZXJfY29tcG9uZW50YC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgY29kZSBwYXRoIGFjdHVhbGx5IGJlIGV4ZWN1dGVkPyBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgc3l6a2FsbGVyIGNvdWxkIGJlIHVzZWQgdG8gdHJpZ2dlciB0aGUgcHJvYmUgb2YgdGhlIGBtbHg1X2NvcmVfZHJpdmVyYCBiZWNhdXNlIGl0IGNhbiBmdXp6IFBDSSBkZXZpY2VzLiBCdXQgaG9sZCBvbiwgdGhlIGBtbHg1X2NvcmVgIGRyaXZlciBpcyBpbmNyZWRpYmx5IGNvbXBsZXguIERvZXMgc3l6a2FsbGVyIGV2ZW4gdGFyZ2V0IGl0IHNwZWNpZmljYWxseSwgb3IgYW0gSSBqdXN0IGxvb2tpbmcgYXQgZ2VuZXJpYyBQQ0kgZnV6emluZz9cblxuTGV0IG1lIGNoZWNrLiBEb2VzIHN5emthbGxlciBoYXZlIHRhaWxvcmVkIGRlc2NyaXB0aW9ucyBmb3IgYG1seDVgLCBvciBpcyBpdCBqdXN0IHJlbHlpbmcgb24gdGhlIGdlbmVyYWwgYHN5el9wY2lfZGV2aWNlYCBhcHByb2FjaD8gUmlnaHQsIGdlbmVyaWMgZnV6emluZyBpbnZvbHZlcyB1c2luZyBgc3l6X3BjaV9kZXZpY2VgLCBwcm92aWRpbmcgdmVuZG9yL2RldmljZSBJRHMgdG8gbWF0Y2ggdGhlIGhhcmR3YXJlLCBhbmQgdGhlbiBmdXp6aW5nIE1NSU8vUElPIHJlZ2lvbnMuXG5cbk5vdywgdGhpcyBwcm9tcHQgZG9lcyBzcGVjaWZ5IHRoYXQgSSBzaG91bGQgbWFyayBzb21ldGhpbmcgYXMgbm90IHdvcnRoIGZ1enppbmcgaWYgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2l0aCBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4gSXMgYG1seDVgIGV2ZW4gYWNjZXNzaWJsZSBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQ/IE5vIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGZvciBgbWx4NWAgZXhpc3RzIGluIHRoZSBrZXJuZWwsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvciBgdXNiIGdhZGdldGAuIEFuZCBkZWZpbml0ZWx5IG5vdCB3aXRoIGBuZXRkZXZzaW1gLiBXaGF0IGFib3V0IFFFTVU/IE5vcGUsIG5vIGBtbHg1YCBlbXVsYXRvciBpbiBRRU1VLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZSwgdGhlIFBDSSBmdXp6ZXIgKmNhbiogdHJpZ2dlciBQQ0kgcHJvYmUgZnVuY3Rpb25zISBIb3dldmVyLCB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMgd2hldGhlciBpdCBjYW4gcGVuZXRyYXRlIHRoZSBkcml2ZXIncyBjb3JlIGxvZ2ljLiBUaGUgUENJIGZ1enplciBpcyBmZWVkaW5nIHJhbmRvbSBkYXRhIHRvIHRoZSBNTUlPIHJlYWRzLiBUaGUgZHJpdmVyIHdpbGwgcmVhZCBmcm9tIE1NSU8gYW5kIHJlY2VpdmUgcmFuZG9tIGRhdGEsIHdoaWNoIHdpbGwgbGlrZWx5IGNhdXNlIGFuIGVhcmx5IGluaXRpYWxpemF0aW9uIGZhaWx1cmUuIFNvIEkgc2hvdWxkIG5vdyBjaGVjayB3aGVyZSBgbWx4NWVfZGV2Y29tX2luaXRfbXB2YCBpcyBjYWxsZWQsIHRvIGRldGVybWluZSBob3cgZGVlcCB0aGlzIGdvZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNzc5LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6MjUuNDA0NzkyMDA5WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTkzMjY5ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWVfZGV2Y29tX2luaXRfbXB2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMTI9c3RhdGljIGludCBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2KGludCBldmVudCwgdm9pZCAqbXlfZGF0YSwgdm9pZCAqZXZlbnRfZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjM0OnN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2luaXRfbXB2KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCB1NjQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yMzUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yNzI9c3RhdGljIGludCBibG9ja2luZ19ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODYtXFx0Y2FzZSBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6Mjg3OlxcdFxcdGlmIChtbHg1ZV9kZXZjb21faW5pdF9tcHYocHJpdiwgZGF0YSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODgtXFx0XFx0XFx0cmV0dXJuIE5PVElGWV9CQUQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjI1Ljc2NDEyMzg0OVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDY3MTIxOTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORSBFdmVudCoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBgYmxvY2tpbmdfZXZlbnRgIGZ1bmN0aW9uIGNhbGwsIHNwZWNpZmljYWxseSB0cmlnZ2VyZWQgYnkgdGhlIGBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FYCBldmVudC4gUmlnaHQsIHNvIHdlIGtub3cgdGhpcyBldmVudCBvcmlnaW5hdGVzIGZyb20gdGhlIG1seDUgY29yZSBkcml2ZXIg4oCTIHdoaWNoIG1ha2VzIHNlbnNlLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBwaW5wb2ludCB3aGVyZSAqZXhhY3RseSogdGhpcyBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgaXMgYmVpbmcgZ2VuZXJhdGVkIHdpdGhpbiB0aGF0IGRyaXZlci4gVGltZSB0byB0cmFjZSB0aGF0IGJhY2shXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MDA4LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6MjguODMxMjQ4MTY2WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mzg0MjA2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yNzI9c3RhdGljIGludCBibG9ja2luZ19ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODUtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyODY6XFx0Y2FzZSBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjg3LVxcdFxcdGlmIChtbHg1ZV9kZXZjb21faW5pdF9tcHYocHJpdiwgZGF0YSkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjI4Ljg5NTA5NjA3MVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODYzNjM1NDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEZWJ1Z2dpbmcgdGhlIEdlbmVyYXRpb24gUHJvY2VzcyoqXG5cbkFscmlnaHQsIHRoZSBvdXRwdXQncyB0aGVyZSwgYnV0ICp3aGVyZSogaXMgaXQgYmVpbmcgY29uanVyZWQ/IEEgcXVpY2sgY2hlY2sgb24gdGhlIG9idmlvdXMgY2FuZGlkYXRlIG91dHB1dHMgZGlkIG5vdCBleHBvc2Ugd2hlcmUgdGhlIHRleHQgaXMgY3JlYXRlZC4gVGhpcyBzZWVtcyB1bmV4cGVjdGVkLiBPa2F5LCBJJ2xsIG5lZWQgdG8gZXhwYW5kIG15IHNlYXJjaC4gVGltZSB0byBkbyBhIGZ1bGwtdGV4dCBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwuIExldCdzIGRpZyBpbiBhbmQgZmluZCB0aGlzIGdlbmVyYXRpb24gcG9pbnQuIEknbGwgbmVlZCB0byB0cmFjZSB0aGUgZGF0YSBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDQyNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjMxLjc1ODczNDI3NloiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAyNDg1NDA3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM9Mzk0ND1zdGF0aWMgYm9vbCBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydChzdHJ1Y3QgbWx4NV9pYl9kZXYgKmliZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5NzgtXFx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShtcGktXFx1MDAzZW1kZXYsXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jOjM5Nzk6XFx0XFx0XFx0XFx0ICBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgwLVxcdFxcdFxcdFxcdCAgXFx1MDAyNmtleSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5ODEtXFx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShpYmRldi1cXHUwMDNlbWRldixcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzk4MjpcXHRcXHRcXHRcXHQgIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkUsXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5ODMtXFx0XFx0XFx0XFx0ICBcXHUwMDI2a2V5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9MjcyPXN0YXRpYyBpbnQgYmxvY2tpbmdfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjg1LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6Mjg2OlxcdGNhc2UgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4Ny1cXHRcXHRpZiAobWx4NWVfZGV2Y29tX2luaXRfbXB2KHByaXYsIGRhdGEpKVxcbi0tXFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oPTM2OD1lbnVtIG1seDVfZHJpdmVyX2V2ZW50IHtcXG4tLVxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaC0zNzMtXFx0TUxYNV9EUklWRVJfRVZFTlRfU0ZfUEVFUl9ERVZMSU5LLFxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaDozNzQ6XFx0TUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORSxcXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMzc1LVxcdE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX1JFTU9WRUQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjMzLjc4MzU5NTUzMloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTU0NTQ0NDk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBtbHg1IEluZmluaWJhbmQgRHJpdmVyIENvbnRleHQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gTmF0dXJhbGx5LCB0aGlzIHNjcmVhbXMgSW5maW5pYmFuZCBhbmQgTWVsbGFub3ggaGFyZHdhcmUgKGBtbHg1YCkgdG8gbWUuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhpcyByZWx5ICpzb2xlbHkqIG9uIHRoZSBwaHlzaWNhbCBoYXJkd2FyZT8gSXMgdGhlcmUgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGUgYG1seDVgIGRldmljZT8gTXkgaW5pdGlhbCB0aG91Z2h0IGdvZXMgdG8gYHZkcGFgIC0gSSByZWNhbGwgc2VlaW5nIGBkcml2ZXJzL3ZkcGEvbWx4NS9gLiBIb3dldmVyLCBgdmRwYWAgaXMganVzdCBhICpmcmFtZXdvcmsqIGZvciB2aXJ0aW8gZGF0YSBwYXRoIGFjY2VsZXJhdGlvbi4gU3BlY2lmaWNhbGx5LCBgbWx4NV92ZHBhYCBpcyBhIGRyaXZlciB0aGF0IGxldmVyYWdlcyBNZWxsYW5veCBoYXJkd2FyZSB0byBhY2NlbGVyYXRlIHZpcnRpbzsgaXQgKnN0aWxsKiBmdW5kYW1lbnRhbGx5IGRlcGVuZHMgb24gdGhlIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIChgbWx4NV9jb3JlX2RldmApLiBTbywgbm8sIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGlzIGNvbnRleHQuIFRoYXQncyB0aGUgYmFzZWxpbmUuXG5cbk5vdywgd2FpdCBhIG1pbnV0ZS4uLnN5emJvdCB0ZXN0ZWQgdGhpcyBwYXRjaD8gSG93IGRpZCAqdGhhdCogaGFwcGVuPyBJIG5lZWQgdG8gY2xhcmlmeSB3aGF0IHRoYXQgbWVhbnMuIFRoZSBjb21taXQgbWVzc2FnZSBqdXN0IHNheXMsIFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XCIuIFRoYXQncyBhICpzdGFuZGFyZCogc3l6Ym90IG1lc3NhZ2UsIGluZGljYXRpbmcgdGhlIHBhdGNoIHdhcyBzdWJtaXR0ZWQgZm9yIHRlc3RpbmcuIEl0IGRvZXNuJ3QgbWVhbiBzeXpib3QgYWN0dWFsbHkgZXhlY3V0ZWQgdGhlIGNvZGUgb3IgZm91bmQgYSBidWcuIEl0IHNpbXBseSBtZWFucyBzb21lb25lLCBsaWtlbHkgdmlhIGEgYCNzeXogdGVzdGAgY29tbWFuZCwgcmVxdWVzdGVkIHN5emJvdCB0byBjaGVjayB0aGUgcGF0Y2guXG5cbkNydWNpYWxseSwgaWYgdGhlIGNvZGUgcGF0aCBpcyAqdW5yZWFjaGFibGUqIGluIHN5emJvdCdzIGVudmlyb25tZW50IChRRU1VL0dDRSB3aXRob3V0IE1lbGxhbm94IGhhcmR3YXJlKSwgc3l6Ym90IHdpbGwgY29tcGlsZSB0aGUgY29kZSwgYm9vdCwgYW5kIHJ1biBzb21lIGJhc2ljIGZ1enppbmcsIHJlcG9ydGluZyBhbiB1bmluZm9ybWF0aXZlIFwiT0tcIiBiZWNhdXNlIGl0IGRpZG4ndCBjcmFzaC4gSXQgaGFzbid0IGFjdHVhbGx5IGZ1enplZCB0aGUgKm1vZGlmaWVkKiBjb2RlLiBTbywgdGhlIHN5emJvdCB0ZXN0IHJlc3VsdCBpcyBoaWdobHkgc3VzcGVjdCBoZXJlLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbGwgbmVlZCB0byBkaWcgZGVlcGVyLiBJIG5lZWQgdG8gbWFrZSAqYWJzb2x1dGVseSogc3VyZSB0aGVyZSdzIG5vIHdheSB0aGUgYG1seDVgIGZ1bmN0aW9uYWxpdHkgY2FuIGJlIHNpbXVsYXRlZCwgZXZlbiBpbiBhIHZlcnkgYmFzaWMgd2F5LiBMZXQncyBkbyBhIG1vcmUgdGhvcm91Z2ggc2VhcmNoIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZSBmb3IgYW55IG1lbnRpb25zIG9mIGBtbHg1YCBjb21iaW5lZCB3aXRoIGBzaW1gIG9yIGBkdW1teWAuIFRoYXQgd2lsbCBwcm92aWRlIGNvbmZpcm1hdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUxNTAsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6NDAuNzM4MTQyNjQ3WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTA3NDM2MzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NS4qc2ltXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9NTcxNz1zdGF0aWMgaW50IG1seDVlX3F1ZXVlX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqb2xkcSwgaW50IHF1ZXVlX2luZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTcxOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzo1NzE5OlxcdC8qIEluIG1seDUgYSB0eHEgY2Fubm90IGJlIHNpbXBseSBzdG9wcGVkIGluIGlzb2xhdGlvbiwgb25seSByZXN0YXJ0ZWQuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy01NzIwLVxcdCAqIG1seDVlX3F1ZXVlX3N0YXJ0IGRvZXMgbm90IGZhaWwsIHdlIHN0b3AgdGhlIG9sZCBxdWV1ZSB0aGVyZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MTgwPXN0YXRpYyBpbnQgaHdzX2J3Y19tYXRjaGVyX21vdmUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoyMjY6aW50IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjctXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0zMjA9bWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGUoc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNTItXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzUzOlxcdFxcdHJldCA9IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShid2NfbWF0Y2hlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM1NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHR0YWJsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzcwOmludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM3MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTM4Nz1pbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzk5LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjQwMDpcXHRcXHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTQwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NTk2PXN0YXRpYyBpbnQgaHdzX2J3Y19ydWxlX2NudF9kZWNfd2l0aF9zaHJpbmsoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02MjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo2Mjk6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjMwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NjUzPWludCBtbHg1aHdzX2J3Y19ydWxlX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NjEtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6NjYyOlxcdFxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjYzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz05ODg9c3RhdGljIGludCBod3NfYndjX3J1bGVfY250X2luY193aXRoX3JlaGFzaChzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTEwMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxMDI0OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTAyNS1cXHRcXHRcXHRcXHQgICB1MzIgKm1hdGNoX3BhcmFtLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0xMTI3PW1seDVod3NfYndjX3J1bGVfY3JlYXRlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTE1OC1cXHRlbHNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxMTU5OlxcdFxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfY3JlYXRlX3NpbXBsZShid2NfcnVsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTExNjAtXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBwYXJhbXMtXFx1MDAzZW1hdGNoX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg9NzA9aW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo3MTptbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzItXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbWx4NWh3c190YWJsZSAqdGFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6Nzg6aW50IG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaD04Mj12b2lkIG1seDVod3NfYndjX3J1bGVfZnJlZShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo4NDppbnQgbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTg1LVxcdFxcdFxcdFxcdCAgIHUzMiAqbWF0Y2hfcGFyYW0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6OTA6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTM4OD1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXRfZmlyc3Qoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDExOlxcdHJldCA9IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlciwgc3VibS1cXHUwMDNldGJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MTItXFx0XFx0XFx0XFx0XFx0XFx0cHJpb3JpdHksIG1hdGNoX2NyaXRlcmlhLCBtYXNrLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQyNy1kZXN0cm95X21hdGNoZXI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjQyODpcXHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN1Ym0tXFx1MDAzZWJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDI5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTQzMz1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLCBpbnQgaWR4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQ4MS1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDgyOlxcdHJldCA9IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlciwgc3VibS1cXHUwMDNldGJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00ODMtXFx0XFx0XFx0XFx0XFx0XFx0cHJpb3JpdHksIG1hdGNoX2NyaXRlcmlhLCBtYXNrLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQ5OS1kZXN0cm95X21hdGNoZXI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjUwMDpcXHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN1Ym0tXFx1MDAzZWJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTAxLWZyZWVfbWF0Y2hlcjpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz01MTE9c3RhdGljIHZvaWQgaHdzX3N1Ym1hdGNoZXJfZGVzdHJveShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqY21hdGNoZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTIyLVxcdGlmIChzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlcikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MjM6XFx0XFx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUyNC1cXHRcXHRpZiAoaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTc0OT1zdGF0aWMgaW50IGh3c19jb21wbGV4X3N1YnJ1bGVfY3JlYXRlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03ODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjc4MzpcXHRyZXQgPSBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3VicnVsZSwgbWF0Y2hfcGFyYW1zLCBhY3Rpb25zLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03ODQtXFx0XFx0XFx0XFx0XFx0ICAgICBmbG93X3NvdXJjZSwgYndjX3F1ZXVlX2lkeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9Nzk5PXN0YXRpYyBpbnQgaHdzX2NvbXBsZXhfc3VicnVsZV9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy04MTYtXFx0YndjX3J1bGUtXFx1MDAzZXJ1bGUtXFx1MDAzZXNraXBfZGVsZXRlID0gIWlzX2xhc3RfcnVsZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6ODE3OlxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy04MTgtXFx0aWYgKHVubGlrZWx5KHJldCkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjQwLjkyODg5MTE3MVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzkwODc3NzI5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLlxuXG4qKkludmVzdGlnYXRpbmcgRXZlbnQgR2VuZXJhdGlvbiBQb2ludHMgZm9yIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkUqKlxuXG5BbHJpZ2h0LCBteSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgSSd2ZSBzcG90dGVkIGBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5YCBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gTm93LCBteSBtYWluIHF1ZXN0aW9uIGlzLCBhbmQgdGhpcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBwaWN0dXJlLCBhcmUgdGhlcmUgKmFueSogb3RoZXIgaW5zdGFuY2VzIHdpdGhpbiB0aGlzIGNvZGUgYmFzZSwgb3IgaW5kZWVkIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0sIHdoZXJlIHRoZSBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgZXZlbnQgaXMgYWN0dWFsbHkgZ2VuZXJhdGVkPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgcG90ZW50aWFsIHNvdXJjZXMuIEtub3dpbmcgd2hlcmUgZWxzZSB0aGlzIGV2ZW50IGlzIGNyZWF0ZWQgd2lsbCBwcm92aWRlIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBldmVudCBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTU1MSwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjQ0LjMxOTc3MTg3WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTQyNDc0NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yNzI9c3RhdGljIGludCBibG9ja2luZ19ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODUtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyODY6XFx0Y2FzZSBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjg3LVxcdFxcdGlmIChtbHg1ZV9kZXZjb21faW5pdF9tcHYocHJpdiwgZGF0YSkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjQ0LjM4MTIwMjMxNVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTA4MTkxNDc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgTUxYNSBFdmVudCBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEkgZGlkIGEgZ2xvYmFsIHNlYXJjaCBmb3IgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgLCBhbmQgaXQgbG9va3MgbGlrZSBpdCdzIHByZXNlbnQgaW4gYm90aCBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNgLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBidXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgcGljdHVyZS4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9gIGRpcmVjdG9yeSBhZ2FpbiB0byBiZSB0aG9yb3VnaC4gSSdtIHRyeWluZyB0byBwaWVjZSB0b2dldGhlciB3aGVyZSB0aGUgZXZlbnQgaXMgZ2VuZXJhdGVkIGFuZCBob3cgaXQncyB1c2VkLiBUaGUgcHJpbWFyeSBnb2FsIGlzIHRvIG1hcCB0aGUgY2FsbCBmbG93LlxuXG5TcGVjaWZpY2FsbHksIEknbSBub3cgZm9jdXNlZCBvbiBmaW5kaW5nIHdoZXJlIGBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5YCBpcyBjYWxsZWQsIGFuZCBwZXJoYXBzIG1vcmUgaW1wb3J0YW50bHksIHdoZXJlIHRoaXMgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGV2ZW50IGlzIGFjdHVhbGx5ICpnZW5lcmF0ZWQqIHdpdGhpbiB0aGUgY29kZS4gVW5kZXJzdGFuZGluZyB0aGUgZXZlbnQgc291cmNlIGlzIGNyaXRpY2FsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTk5NywiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMzo0OC4yODkzOTU5OVoiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk5Mzg3NDU5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM9Mzg3Nz1zdGF0aWMgdm9pZCBtbHg1X2liX3VuYmluZF9zbGF2ZV9wb3J0KHN0cnVjdCBtbHg1X2liX2RldiAqaWJkZXYsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg4OS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzg5MDpcXHRtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KGliZGV2LVxcdTAwM2VtZGV2LFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zODkxLVxcdFxcdFxcdFxcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fUkVNT1ZFRCxcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg5Mi1cXHRcXHRcXHRcXHQgIE5VTEwpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYzozODkzOlxcdG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkobXBpLVxcdTAwM2VtZGV2LFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zODk0LVxcdFxcdFxcdFxcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fUkVNT1ZFRCxcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYz0zOTQ0PXN0YXRpYyBib29sIG1seDVfaWJfYmluZF9zbGF2ZV9wb3J0KHN0cnVjdCBtbHg1X2liX2RldiAqaWJkZXYsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzk3Ny1cXHRrZXkgPSBtcGktXFx1MDAzZW1kZXYtXFx1MDAzZXByaXYuYWRldl9pZHg7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jOjM5Nzg6XFx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShtcGktXFx1MDAzZW1kZXYsXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5NzktXFx0XFx0XFx0XFx0ICBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgwLVxcdFxcdFxcdFxcdCAgXFx1MDAyNmtleSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jOjM5ODE6XFx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShpYmRldi1cXHUwMDNlbWRldixcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzk4Mi1cXHRcXHRcXHRcXHQgIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jPTI5MD1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV91cGxpbmtfbmV0ZGV2X2V2ZW50X3JlcGxheSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyOTI6dm9pZCBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTI5My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTI5NS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyOTY6RVhQT1JUX1NZTUJPTChtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTI5Ny1cXG4tLVxcbmluY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaD0xMDEwPXZvaWQgbWx4NV9jb3JlX3VwbGlua19uZXRkZXZfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KTtcXG5pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgtMTAxMS1cXG5pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmg6MTAxMjp2b2lkIG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKTtcXG5pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgtMTAxMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6NTAuMjgzMjc1MDlaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE5MjU5MzY3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6XG5cbioqRGl2aW5nIGludG8gdGhlIG1seDUgRXZlbnQgUmVwbGF5KipcblxuT2theSwgc28gYG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXlgIGlzIGRlZmluaXRlbHkgY2FsbGVkIGZyb20gdGhlIGBtbHg1YCBJbmZpbmliYW5kIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZyb20gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AuIFRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRyb2wgZmxvdzsgaG93IGRvZXMgdGhpcyB3aG9sZSBldmVudCByZXBsYXkgbWVjaGFuaXNtIGtpY2sgb2ZmPyBUaGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZSBpczogd2hhdCB0cmlnZ2VycyB0aGUgZ2VuZXJhdGlvbiBvZiBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWA/IFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQgb2YgdGhlIHJlcGxheS4gVGltZSB0byBkZWx2ZSBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgbWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheWAgaXRzZWxmOyBJIG5lZWQgdG8gc2VlIHdoYXQgaXQncyBsb29raW5nIGZvci4gSSBuZWVkIHRvIHRyYWNlIHRoaXMgYmFjay5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEzMDMsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMzo1My40NzU4NzA4MzZaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE1MDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjg1LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjg1OlxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmRldi1cXHUwMDNlbWx4NWVfcmVzLnVwbGlua19uZXRkZXZfbG9jayk7XFxuIDI4NjpcXHRcXHRtbHg1X2Jsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oZGV2LCBNTFg1X0RSSVZFUl9FVkVOVF9VUExJTktfTkVUREVWLFxcbiAyODc6XFx0XFx0XFx0XFx0XFx0XFx0ICBkZXYtXFx1MDAzZW1seDVlX3Jlcy51cGxpbmtfbmV0ZGV2KTtcXG4gMjg4OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtbHg1ZV9yZXMudXBsaW5rX25ldGRldl9sb2NrKTtcXG4gMjg5OlxcdH1cXG4gMjkwOlxcdEVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX3VwbGlua19uZXRkZXZfZXZlbnRfcmVwbGF5KTtcXG4gMjkxOlxcdFxcbiAyOTI6XFx0dm9pZCBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcXG4gMjkzOlxcdHtcXG4gMjk0OlxcdFxcdG1seDVfYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbihkZXYsIGV2ZW50LCBkYXRhKTtcXG4gMjk1OlxcdH1cXG4gMjk2OlxcdEVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheSk7XFxuIDI5NzpcXHRcXG4gMjk4OlxcdGludCBtbHg1X2NvcmVfZ2V0X2NhcHNfbW9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIG1seDVfY2FwX3R5cGUgY2FwX3R5cGUsXFxuIDI5OTpcXHRcXHRcXHRcXHQgICAgZW51bSBtbHg1X2NhcF9tb2RlIGNhcF9tb2RlKVxcbiAzMDA6XFx0e1xcbiAzMDE6XFx0XFx0dTggaW5bTUxYNV9TVF9TWl9CWVRFUyhxdWVyeV9oY2FfY2FwX2luKV07XFxuIDMwMjpcXHRcXHRpbnQgb3V0X3N6ID0gTUxYNV9TVF9TWl9CWVRFUyhxdWVyeV9oY2FfY2FwX291dCk7XFxuIDMwMzpcXHRcXHR2b2lkICpvdXQsICpoY2FfY2FwcztcXG4gMzA0OlxcdFxcdHUxNiBvcG1vZCA9IChjYXBfdHlwZSBcXHUwMDNjXFx1MDAzYyAxKSB8IChjYXBfbW9kZSBcXHUwMDI2IDB4MDEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMzo1My40NzU5ODcxNDZaIiwiU2VxIjozMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTE3MDY1MTg3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFVucmVhY2hhYmlsaXR5IG9mIGEgU3BlY2lmaWMgQ29kZSBQYXRoKipcblxuT2theSwgc28gYG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXlgIGV2ZW50dWFsbHkgbGVhZHMgdG8gYG1seDVfYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbmAsIHdoaWNoIGlzIG9ubHkgY2FsbGVkIGZyb20gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIkFyZSB0aGVyZSBhbnkgKm90aGVyKiB3YXlzIGBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FYCBpcyBnZW5lcmF0ZWQ/XCIgSSBhbHJlYWR5IGNoZWNrZWQsIGFuZCBpdCdzIHNvbGVseSB3aXRoaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gVGhhdCBtZWFucyB0aGUgb25seSByb3V0ZSB0byBgbWx4NWVfZGV2Y29tX2luaXRfbXB2YCBpcyB0aHJvdWdoIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAsIHdoaWNoIGlzIGFsc28gaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AuXG5cbkFuZCBvZiBjb3Vyc2UsIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAgKm5lZWRzKiBhbiBJbmZpbmliYW5kIGRldmljZSwgbWVhbmluZyBhY3R1YWwgTWVsbGFub3ggaGFyZHdhcmUgaXMgcmVxdWlyZWQuIFNpbmNlIHRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIEkga25vdyBvZiB0aGF0IHJlcGxpY2F0ZXMgYWxsIHRoYXQsIGxpa2UgaW4gR0NFIG9yIFFFTVUsIHRoaXMgcGF0aCBpcyBpbW1lZGlhdGVseSB1bnJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LlxuXG5Ob3csIHdhaXQuLi5zeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciwgZG9lc24ndCBpdD8gQ291bGQgKnRoYXQqIHBvdGVudGlhbGx5IHJlYWNoIGl0PyBUaGUgZnV6emVyIGVtdWxhdGVzIGEgUENJIGRldmljZSwgaW50ZXJjZXB0aW5nIGFjY2Vzc2VzIHRvIHRoZSBQQ0kgY29uZmlnIHNwYWNlIGFuZCBNTUlPLiBJdCBlc3NlbnRpYWxseSB0aHJvd3MgcmFuZG9tIGRhdGEgYXQgdGhlIGRyaXZlci4gQnV0IGNhbiBpdCBldmVuICppbml0aWFsaXplKiBgbWx4NV9jb3JlYCBzdWNjZXNzZnVsbHk/IGBtbHg1X2NvcmVgIGlzIGluY3JlZGlibHkgY29tcGxleCwgZGVhbGluZyB3aXRoIGZpcm13YXJlIHZpYSB0aGF0IGNvbW1hbmQgcXVldWUuIFRoZSBmaXJtd2FyZSBpbnRlcmZhY2UgaXMgZmFtb3VzbHkgaW50cmljYXRlIOKAkyB0aGUgZHJpdmVyIHNlbmRzIGNvbW1hbmRzLCB3YWl0cyBmb3IgcmVzcG9uc2VzLiBUaGUgUENJIGZ1enplcidzIHJhbmRvbSBpbnB1dCB3b3VsZCBtb3N0IGxpa2VseSBjYXVzZSBpdCB0byBmYWlsIGluaXRpYWxpemF0aW9uIHZlcnkgZWFybHkg4oCTIGZpcm13YXJlIHZlcnNpb24gbWlzbWF0Y2gsIGNvbW1hbmQgcXVldWUgaXNzdWVzLCBldGMuIEl0J3MgYWxtb3N0IGltcG9zc2libGUgZm9yIHJhbmRvbSBkYXRhIHRvIHByb3Blcmx5IHNpbXVsYXRlIHRoZSBmaXJtd2FyZSBpbnRlcmFjdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IHRvIGluaXRpYWxpemUgYG1seDVfY29yZWAsIGxldCBhbG9uZSB0cmlnZ2VyIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAuIFRoaXMgbWFrZXMgaXQgcHJhY3RpY2FsbHkgdW5yZWFjaGFibGUgaW4gdGhlc2UgdmlydHVhbGl6ZWQgdGVzdCBlbnZpcm9ubWVudHMuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQncyByZXZpc2l0IGFub3RoZXIgbWV0aG9kIHRvIHRyaWdnZXIgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgLiBUaGF0IGZ1bmN0aW9uIGlzIHJlZ2lzdGVyZWQgYXMgYSBjYWxsYmFjayB0aHJvdWdoIGBtbHg1X2RldmNvbV9yZWdpc3Rlcl9jb21wb25lbnRgLiBUaGUgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIHdoZW4gYG1seDVfZGV2Y29tX3NlbmRfZXZlbnRgIGlzIGNhbGxlZCBmb3IgYE1MWDVfREVWQ09NX01QVmAuIExldCBtZSBjaGVjayB3aGVyZSBgbWx4NV9kZXZjb21fc2VuZF9ldmVudGAgaXMgY2FsbGVkIHdpdGggdGhhdCBhcmd1bWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIwNzEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NzAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozNDowMi42NDY2NDE3MjFaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3MDQyNzI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVfZGV2Y29tX3NlbmRfZXZlbnRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvaXBzZWNfZnMuYz0yODk0PXZvaWQgbWx4NWVfaXBzZWNfc2VuZF9ldmVudChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgaW50IGV2ZW50KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2lwc2VjX2ZzLmMtMjg5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvaXBzZWNfZnMuYzoyODk5OlxcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQocHJpdi1cXHUwMDNlZGV2Y29tLCBldmVudCwgZXZlbnQsIHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9pcHNlY19mcy5jLTI5MDAtXFx0d2FpdF9mb3JfY29tcGxldGlvbihcXHUwMDI2cHJpdi1cXHUwMDNlaXBzZWMtXFx1MDAzZWNvbXApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMzQ9c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjQ4LVxcdGlmIChtbHg1X2NvcmVfaXNfbXBfbWFzdGVyKHByaXYtXFx1MDAzZW1kZXYpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyNDk6XFx0XFx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChwcml2LVxcdTAwM2VkZXZjb20sIE1QVl9ERVZDT01fTUFTVEVSX1VQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjUwLVxcdFxcdFxcdFxcdCAgICAgICBNUFZfREVWQ09NX01BU1RFUl9VUCwgcHJpdik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTI1Nz1zdGF0aWMgdm9pZCBtbHg1ZV9kZXZjb21fY2xlYW51cF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI2Mi1cXHRpZiAobWx4NV9jb3JlX2lzX21wX21hc3Rlcihwcml2LVxcdTAwM2VtZGV2KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjYzOlxcdFxcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQocHJpdi1cXHUwMDNlZGV2Y29tLCBNUFZfREVWQ09NX01BU1RFUl9ET1dOLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjY0LVxcdFxcdFxcdFxcdCAgICAgICBNUFZfREVWQ09NX01BU1RFUl9ET1dOLCBwcml2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9MzMwOD12b2lkIG1seDVfZXN3X29mZmxvYWRzX2RldmNvbV9pbml0KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMtMzMzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jOjMzMzU6XFx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChlc3ctXFx1MDAzZWRldmNvbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzMzYtXFx0XFx0XFx0ICAgICAgIEVTV19PRkZMT0FEU19ERVZDT01fUEFJUixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9MzM0MT12b2lkIG1seDVfZXN3X29mZmxvYWRzX2RldmNvbV9jbGVhbnVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMtMzM0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jOjMzNDY6XFx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChlc3ctXFx1MDAzZWRldmNvbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzNDctXFx0XFx0XFx0ICAgICAgIEVTV19PRkZMT0FEU19ERVZDT01fVU5QQUlSLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYz0yMDgyPXZvaWQgbWx4NV9sYWdfcmVtb3ZlX21kZXYoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmMtMjEwMy1cXHQvKiBTZW5kIGRldmNvbSBldmVudCB0byBub3RpZnkgcGVlcnMgdGhhdCBhIGRldmljZSBpcyBiZWluZyByZW1vdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYzoyMTA0OlxcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoZGV2LVxcdTAwM2Vwcml2LmhjYV9kZXZjb21fY29tcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jLTIxMDUtXFx0XFx0XFx0ICAgICAgIExBR19ERVZDT01fVU5QQUlSLCBMQUdfREVWQ09NX1VOUEFJUiwgZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmM9MjExMD12b2lkIG1seDVfbGFnX2FkZF9tZGV2KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jLTIxMjktXFx0LyogU2VuZCBkZXZjb20gZXZlbnQgdG8gbm90aWZ5IHBlZXJzIHRoYXQgYSBkZXZpY2Ugd2FzIGFkZGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYzoyMTMwOlxcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoZGV2LVxcdTAwM2Vwcml2LmhjYV9kZXZjb21fY29tcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jLTIxMzEtXFx0XFx0XFx0ICAgICAgIExBR19ERVZDT01fUEFJUiwgTEFHX0RFVkNPTV9VTlBBSVIsIGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5jPTI4Mj1pbnQgbWx4NV9kZXZjb21fY29tcF9nZXRfc2l6ZShzdHJ1Y3QgbWx4NV9kZXZjb21fY29tcF9kZXYgKmRldmNvbSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmMtMjg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmM6Mjg5OmludCBtbHg1X2RldmNvbV9zZW5kX2V2ZW50KHN0cnVjdCBtbHg1X2RldmNvbV9jb21wX2RldiAqZGV2Y29tLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmMtMjkwLVxcdFxcdFxcdCAgIGludCBldmVudCwgaW50IHJvbGxiYWNrX2V2ZW50LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9kZXZjb20uaD00Nz12b2lkIG1seDVfZGV2Y29tX3VucmVnaXN0ZXJfY29tcG9uZW50KHN0cnVjdCBtbHg1X2RldmNvbV9jb21wX2RldiAqZGV2Y29tKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5oLTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmg6NDk6aW50IG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoc3RydWN0IG1seDVfZGV2Y29tX2NvbXBfZGV2ICpkZXZjb20sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9kZXZjb20uaC01MC1cXHRcXHRcXHQgICBpbnQgZXZlbnQsIGludCByb2xsYmFja19ldmVudCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzQ6MDIuNzEzNjg5MTc2WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkyODA3MDU0MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgVGhpcyBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IHRoaXMgYG1seDVlX2RldmNvbV9pbml0X21wdmAgZnVuY3Rpb24gaXMgdGhlIGtleS4gU3BlY2lmaWNhbGx5LCBJJ20gY29uY2VybmVkIHRoYXQgYG1seDVfZGV2Y29tX3NlbmRfZXZlbnRgIGlzIGNhbGxlZCB3aXRoaW4uIFRoaXMgY2FsbCB0cmlnZ2VycyBjZXJ0YWluIGFjdGlvbnMgYmFzZWQgb24gd2hldGhlciB0aGUgZGV2aWNlIGlzIGEgXCJtYXN0ZXJcIi4gVGhpcyBmdW5jdGlvbiBpcyAqY2FsbGVkKiB3aGVuIHRoZSBkcml2ZXIgYWZmaWxpYXRpb24gZXZlbnQgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGlzIHJlY2VpdmVkLlxuXG5Ob3csIHdoZXJlIGRvZXMgdGhhdCBldmVudCBjb21lIGZyb20/IFdlbGwsIGFmdGVyIGRpZ2dpbmcgdGhyb3VnaCB0aGUgY29kZSwgaXQncyBwcmV0dHkgY2xlYXIgdGhhdCBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgaXMgb25seSBnZW5lcmF0ZWQgYnkgYG1seDVfaWJfYmluZF9zbGF2ZV9wb3J0YCwgYW5kIHRoaXMgZnVuY3Rpb24gaXMgaXRzZWxmIGNhbGxlZCBkdXJpbmcgdGhlIHJlZ2lzdHJhdGlvbiBhbmQgYmluZGluZyBvZiBhbiBJbmZpbmliYW5kIGRldmljZSwgc3BlY2lmaWNhbGx5IHJlbGF0aW5nIHRvIE1lbGxhbm94IGhhcmR3YXJlLiBUaGlzIHNlZW1zIHRvIGhhcHBlbiBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC5cblxuQWhhISBUaGlzIGFsc28gaW1wbGllcyB3ZSBuZWVkICpwaHlzaWNhbCogTWVsbGFub3ggaGFyZHdhcmUgZm9yIHRoaXMgY29kZSBwYXRoIHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4gIFRoZXJlIGlzbid0IGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoZSBNZWxsYW5veCBoYXJkd2FyZSBpbnZvbHZlZC4gVGhpcyBtZWFucyBpdCdzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCB0aGUgZW52aXJvbm1lbnRzIHN5emthbGxlciB0eXBpY2FsbHkgcnVucyBpbi5cblxuTGV0IG1lIGp1c3QgZG91YmxlIGNoZWNrIG9uZSB0aGluZzogQXJlIHRoZXJlICphbnkqIG90aGVyIHdheXMgdGhpcyBldmVudCBjb3VsZCBiZSB0cmlnZ2VyZWQ/IEEgcXVpY2sgZ2xvYmFsIHNlYXJjaCBmb3IgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGFjcm9zcyB0aGUga2VybmVsIGNvZGUgYmFzZSBjb25maXJtcyB0aGF0IGl0J3Mgb25seSB1c2VkIGluIGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNgLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AgYW5kIGluIGEgaGVhZGVyIGZpbGUsIGBpbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhgLiBTbyB0aGVyZSBpcyBubyBhbHRlcm5hdGUgcGF0aCBmb3IgdGhlIGV2ZW50IHRvIGJlIGdlbmVyYXRlZC5cblxuVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyBhIGNvZGUgcGF0aCB0aGF0IGlzIGVmZmVjdGl2ZWx5IGluYWNjZXNzaWJsZSBpbiB0aGUgdGFyZ2V0IGVudmlyb25tZW50cy4gIEdpdmVuIHRoZSBpbnN0cnVjdGlvbnMsIEkgbmVlZCB0byBmbGFnIHRoaXMgYXMgbm90IHdvcnRoIGZ1enppbmcuIFRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIChgbWx4NWApIHRoYXQgaGFzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbi5cblxuTGV0J3MgcmV2aWV3IHRoZSBwcm9tcHQgaW5zdHJ1Y3Rpb25zOlxuXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLi4uXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cIlxuXG5CaW5nbyEgVGhpcyBwZXJmZWN0bHkgZGVzY3JpYmVzIHRoaXMgc2NlbmFyaW8uIFRoaXMgcGF0Y2ggaXMgaXJyZWxldmFudCBmb3IgZnV6emluZy4gSSdsbCBjb25zdHJ1Y3QgdGhlIGFwcHJvcHJpYXRlIHJlc3BvbnNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTA3NCwiT3V0cHV0VG9rZW5zIjoxNDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzQ6MTEuOTk0Mzk3NDgxWiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY29yZSBkcml2ZXIgKG1seDVfY29yZSksIHNwZWNpZmljYWxseSB0aGUgTVBWIGRldmNvbSBldmVudCBoYW5kbGluZy4gVGhpcyBjb2RlIHBhdGggaXMgb25seSByZWFjaGFibGUgd2hlbiBhIHBoeXNpY2FsIE1lbGxhbm94IFBDSSBkZXZpY2UgaXMgcHJlc2VudCBhbmQgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCB3aGljaCB0cmlnZ2VycyB0aGUgSW5maW5pYmFuZCBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCBzdWJzZXF1ZW50IGFmZmlsaWF0aW9uIGV2ZW50cy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBNZWxsYW5veCBoYXJkd2FyZSBpbiB0aGUga2VybmVsIG9yIFFFTVUsIHRoaXMgY29kZSBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY29yZSBkcml2ZXIgKG1seDVfY29yZSksIHNwZWNpZmljYWxseSB0aGUgTVBWIGRldmNvbSBldmVudCBoYW5kbGluZy4gVGhpcyBjb2RlIHBhdGggaXMgb25seSByZWFjaGFibGUgd2hlbiBhIHBoeXNpY2FsIE1lbGxhbm94IFBDSSBkZXZpY2UgaXMgcHJlc2VudCBhbmQgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCB3aGljaCB0cmlnZ2VycyB0aGUgSW5maW5pYmFuZCBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCBzdWJzZXF1ZW50IGFmZmlsaWF0aW9uIGV2ZW50cy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBNZWxsYW5veCBoYXJkd2FyZSBpbiB0aGUga2VybmVsIG9yIFFFTVUsIHRoaXMgY29kZSBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowsszjg[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-08 10:03:23 +0000 UTC FinishedAt: 2026-07-08 10:34:13 +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+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWxsYW5veCBDb25uZWN0WC00LzUvNi83IGNvcmUgZHJpdmVyIChtbHg1X2NvcmUpLCBzcGVjaWZpY2FsbHkgdGhlIE1QViBkZXZjb20gZXZlbnQgaGFuZGxpbmcuIFRoaXMgY29kZSBwYXRoIGlzIG9ubHkgcmVhY2hhYmxlIHdoZW4gYSBwaHlzaWNhbCBNZWxsYW5veCBQQ0kgZGV2aWNlIGlzIHByZXNlbnQgYW5kIHN1Y2Nlc3NmdWxseSBpbml0aWFsaXplZCwgd2hpY2ggdHJpZ2dlcnMgdGhlIEluZmluaWJhbmQgZGV2aWNlIHJlZ2lzdHJhdGlvbiBhbmQgc3Vic2VxdWVudCBhZmZpbGlhdGlvbiBldmVudHMuIFNpbmNlIHRoZXJlIGlzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgTWVsbGFub3ggaGFyZHdhcmUgaW4gdGhlIGtlcm5lbCBvciBRRU1VLCB0aGlzIGNvZGUgaXMgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSB1c2VkIGJ5IHN5emthbGxlci4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzI8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCBiZjYxZDE2OTg3Y2UzNGU4ZmFkOGMzOGUwYzYzNmFhMmIwNWI5ODRkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFdlZCBKdWwgOCAxMDozMjozMSAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xuaW5kZXggOGYyYjNhYmUwMDkyMTQuLjliMjdhZmViOWIxMjdlIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xuQEAgLTIxMSwxMSAmIzQzOzIxMSwxMSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IG1seDVlX2RldmNvbV9ldmVudF9tcHYoaW50IGV2ZW50LCB2b2lkICpteV9kYXRhLCB2b2lkICpldmVudF9kYXRhKVxuIHtcbi1cdHN0cnVjdCBtbHg1ZV9wcml2ICpzbGF2ZV9wcml2ID0gbXlfZGF0YTtcbiYjNDM7XHRzdHJ1Y3QgbWx4NWVfcHJpdiAqbWFzdGVyX3ByaXYgPSBldmVudF9kYXRhO1xuIFxuIFx0c3dpdGNoIChldmVudCkge1xuIFx0Y2FzZSBNUFZfREVWQ09NX01BU1RFUl9VUDpcbi1cdFx0bWx4NV9kZXZjb21fY29tcF9zZXRfcmVhZHkoc2xhdmVfcHJpdi1cdTAwM2VkZXZjb20sIHRydWUpO1xuJiM0MztcdFx0bWx4NV9kZXZjb21fY29tcF9zZXRfcmVhZHkobWFzdGVyX3ByaXYtXHUwMDNlZGV2Y29tLCB0cnVlKTtcbiBcdFx0YnJlYWs7XG4gXHRjYXNlIE1QVl9ERVZDT01fTUFTVEVSX0RPV046XG4gXHRcdC8qIG5vIG5lZWQgZm9yIGNvbXAgc2V0IHJlYWR5IGZhbHNlIHNpbmNlIHdlIHVucmVnaXN0ZXIgYWZ0ZXJcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMjwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggQ29ubmVjdFgtNC81LzYvNyBjb3JlIGRyaXZlciAobWx4NV9jb3JlKSwgc3BlY2lmaWNhbGx5IHRoZSBNUFYgZGV2Y29tIGV2ZW50IGhhbmRsaW5nLiBUaGlzIGNvZGUgcGF0aCBpcyBvbmx5IHJlYWNoYWJsZSB3aGVuIGEgcGh5c2ljYWwgTWVsbGFub3ggUENJIGRldmljZSBpcyBwcmVzZW50IGFuZCBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQsIHdoaWNoIHRyaWdnZXJzIHRoZSBJbmZpbmliYW5kIGRldmljZSByZWdpc3RyYXRpb24gYW5kIHN1YnNlcXVlbnQgYWZmaWxpYXRpb24gZXZlbnRzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIE1lbGxhbm94IGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgb3IgUUVNVSwgdGhpcyBjb2RlIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiZjYxZDE2OTg3Y2UzNGU4ZmFkOGMzOGUwYzYzNmFhMmIwNWI5ODRkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFdlZCBKdWwgOCAxMDozMjozMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCmluZGV4IDhmMmIzYWJlMDA5MjE0Li45YjI3YWZlYjliMTI3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jCkBAIC0yMTEsMTEgJiM0MzsyMTEsMTEgQEAgc3RhdGljIHZvaWQgbWx4NWVfZGlzYWJsZV9hc3luY19ldmVudHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpCiAKIHN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpCiB7Ci0Jc3RydWN0IG1seDVlX3ByaXYgKnNsYXZlX3ByaXYgPSBteV9kYXRhOwomIzQzOwlzdHJ1Y3QgbWx4NWVfcHJpdiAqbWFzdGVyX3ByaXYgPSBldmVudF9kYXRhOwogCiAJc3dpdGNoIChldmVudCkgewogCWNhc2UgTVBWX0RFVkNPTV9NQVNURVJfVVA6Ci0JCW1seDVfZGV2Y29tX2NvbXBfc2V0X3JlYWR5KHNsYXZlX3ByaXYtJmd0O2RldmNvbSwgdHJ1ZSk7CiYjNDM7CQltbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShtYXN0ZXJfcHJpdi0mZ3Q7ZGV2Y29tLCB0cnVlKTsKIAkJYnJlYWs7CiAJY2FzZSBNUFZfREVWQ09NX01BU1RFUl9ET1dOOgogCQkvKiBubyBuZWVkIGZvciBjb21wIHNldCByZWFkeSBmYWxzZSBzaW5jZSB3ZSB1bnJlZ2lzdGVyIGFmdGVyCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5NzYKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAzMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTWVsbGFub3ggbWx4NSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCBjaGFuZ2VzIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gU3BlY2lmaWNhbGx5LCB0aGUgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgIGZ1bmN0aW9uIGhhcyBiZWVuIHR3ZWFrZWQuIFRoZSBrZXkgY2hhbmdlIGlzIHRoZSBwb2ludGVyIHVzZWQgaW4gYG1seDVfZGV2Y29tX2NvbXBfc2V0X3JlYWR5YCwgZnJvbSBgc2xhdmVfcHJpdmAgdG8gYG1hc3Rlcl9wcml2YC4gVGhpcyBpcyBkZWZpbml0ZWx5IGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIE1lbGxhbm94IG1seDUgZHJpdmVyLCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgaW1wbGljYXRpb25zLgoKVGhlIGZpcnN0IHRoaW5nIHRoYXQganVtcHMgdG8gbWluZCBpcyB0aGUgZnV6emFiaWxpdHkgb2YgdGhpcyBkcml2ZXIuIEdpdmVuIGl0cyBoYXJkd2FyZS1zcGVjaWZpYyBuYXR1cmUsIHBhcnRpY3VsYXJseSB3aXRoIE1lbGxhbm94LCBpcyB0aGlzIGRyaXZlciBldmVuIGVhc2lseSByZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVU/IFRoZXNlIHNvcnRzIG9mIGhhcmR3YXJlLXNwZWNpZmljIEV0aGVybmV0IGRyaXZlcnMgb2Z0ZW4gcG9zZSBhIGZ1enppbmcgY2hhbGxlbmdlLCB1bmxlc3Mgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBlaXRoZXIgYW4gZW11bGF0b3Igb3IgYSBtb3JlIGdlbmVyaWMgZnJhbWV3b3JrLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB3ZSBjYW4gZXZlbiBmdXp6IHRoZSBtbHg1IGRyaXZlci4KClJpZ2h0LCBteSBpbW1lZGlhdGUgY2hlY2sgaXMgd2hldGhlciBzeXprYWxsZXIgaGFzIGFuIG1seDUgZW11bGF0b3IuIEFuZCB0aGUgcXVpY2sgYW5zd2VyIGlzIG5vLCBpdCBkb2VzbiYjMzk7dC4gTmV4dCwgSSBzaG91bGQgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBzb2Z0d2FyZSBlbXVsYXRpb25zIG9mIG1seDUgdGhhdCBtaWdodCBiZSBhdmFpbGFibGUuIEdpdmVuIHRoaXMgZHJpdmVyJiMzOTtzIGxvY2F0aW9uLCBJJiMzOTtsbCBzZWFyY2ggdGhyb3VnaCB0aGUgY29kZSBpdHNlbGYsIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNgLCBhbmQgc2VlaW5nIHdoYXQgSSBjYW4gZmluZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZV9kZXZjb21fZXZlbnRfbXB2JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTIwNz1zdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjEyOnN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTIxMy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMzQ9c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI0Mi1cdFx0XHRcdFx0XHQgICAgICBcdTAwMjZhdHRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyNDM6XHRcdFx0XHRcdFx0ICAgICAgbWx4NWVfZGV2Y29tX2V2ZW50X21wdixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjQ0LVx0XHRcdFx0XHRcdCAgICAgIHByaXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMDgKCQkJCQkJCW91dHB1dDogMzUKCQkJCQkJCXRob3VnaHRzOiAxMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyB0aGUgRnV6emFiaWxpdHkgb2YgdGhlIE1lbGxhbm94IG1seDUgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgTWVsbGFub3ggYG1seDVgIGRyaXZlciwgd2hpY2ggaGFuZGxlcyB0aG9zZSBDb25uZWN0WC00LzUvNi83IGFkYXB0ZXJzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIGFzIHVzdWFsIHdpdGggdGhlc2UgaGFyZHdhcmUgZHJpdmVycywgdGhhdCBmdXp6aW5nIGl0IGluIGFuIGVudmlyb25tZW50IGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgaXMgZ29pbmcgdG8gYmUgYSBjaGFsbGVuZ2UuIFVubGVzcywgb2YgY291cnNlLCB0aGVyZSYjMzk7cyBzb21lIGtpbmQgb2Ygc3BlY2lhbGl6ZWQgZW11bGF0b3IgYXQgcGxheS4gWW91IGtub3csIGxpa2Ugd2UgaGF2ZSBmb3IgVVNCIHdpdGggYHZoY2lgLCBvciBXaUZpIHdpdGggYG1hYzgwMjExX2h3c2ltYCwgb3IgbmV0d29ya2luZyB3aXRoIGBuZXRkZXZzaW1gLi4uIHRoYXQga2luZCBvZiB0aGluZy4gU28sIHRoZSBrZXkgcXVlc3Rpb24gaXM6IGRvZXMgYSBzaW1pbGFyIGBtbHg1YCBlbXVsYXRvciBleGlzdD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBpdCYjMzk7cyBwdXJlbHkgaGFyZHdhcmUtZGVwZW5kZW50IG9yIGlmIHRoZXJlJiMzOTtzIGEgc29mdHdhcmUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRldmljZSBzb21ld2hlcmUgaW4gdGhlIGtlcm5lbCB0aGF0IEkgY2FuIGxldmVyYWdlLiBUaW1lIHRvIGRpZyBpbiBhbmQgc2VlIHdoYXQgdGhlIGNvZGUgcmV2ZWFscy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnPTIxPXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg0L0tjb25maWdcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L0tjb25maWc6MjI6c291cmNlIFwmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnLTIzLXNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9LY29uZmlnXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzQ4NQoJCQkJCQkJb3V0cHV0OiA0NQoJCQkJCQkJdGhvdWdodHM6IDI0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnkgb2YgdGhlIHByb3ZpZGVkIHRleHQsIGFzc3VtaW5nIEkmIzM5O20gYW4gZXhwZXJ0OgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBNZWxsYW5veCBEcml2ZXIgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBsZXQmIzM5O3MgZGl2ZSBpbi4gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgTWVsbGFub3ggRXRoZXJuZXQgZHJpdmVycy4gTXkgaW5zdGluY3QgdGVsbHMgbWUgdGhlIHBsYWNlIHRvIHN0YXJ0IGlzIHRoZSBgS2NvbmZpZ2AgZmlsZSB3aXRoaW4gdGhlIGNvcmUgZHJpdmVyIHN0cnVjdHVyZS4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIGhlYWRpbmcgc3RyYWlnaHQgdG8gYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9LY29uZmlnYC4gVGhpcyBmaWxlICpzaG91bGQqIGhvbGQgYWxsIHRoZSBjb25kaXRpb25hbCBjb21waWxhdGlvbiBmbGFncyBhbmQgZGVmYXVsdCBzZXR0aW5ncyBJJiMzOTttIGxvb2tpbmcgZm9yLiBJdOKAmXMgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGNvbnRyb2xsaW5nIGZlYXR1cmVzIGFuZCBkZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBtbHg1IGNvcmUuIEZyb20gaGVyZSwgSSBjYW4gdHJhY2UgZGVwZW5kZW5jaWVzLCBpZGVudGlmeSB3aGF0JiMzOTtzIGVuYWJsZWQgYnkgZGVmYXVsdCwgYW5kIHBvdGVudGlhbGx5IGZpbmQgdGhlIHNvdXJjZSBvZiBhIGNvbmZpZ3VyYXRpb24gcHJvYmxlbSBvciBhIG5ldyBvcHRpb24gdG8gZW5hYmxlLiBMZXTigJlzIHNlZSB3aGF0JiMzOTtzIGluIHRoZXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XG4gICAyOlx0I1xuICAgMzpcdCMgTWVsbGFub3ggZHJpdmVyIGNvbmZpZ3VyYXRpb25cbiAgIDQ6XHQjXG4gICA1Olx0XG4gICA2Olx0Y29uZmlnIE1MWDVfQ09SRVxuICAgNzpcdFx0dHJpc3RhdGUgXCYjMzQ7TWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBjb3JlIGRyaXZlclwmIzM0O1xuICAgODpcdFx0ZGVwZW5kcyBvbiBQQ0lcbiAgIDk6XHRcdHNlbGVjdCBBVVhJTElBUllfQlVTXG4gIDEwOlx0XHRzZWxlY3QgTkVUX0RFVkxJTktcbiAgMTE6XHRcdGRlcGVuZHMgb24gTUxYRlcgfHwgIU1MWEZXXG4gIDEyOlx0XHRkZXBlbmRzIG9uIFBUUF8xNTg4X0NMT0NLX09QVElPTkFMXG4gIDEzOlx0XHRkZXBlbmRzIG9uIFBDSV9IWVBFUlZfSU5URVJGQUNFIHx8ICFQQ0lfSFlQRVJWX0lOVEVSRkFDRVxuICAxNDpcdFx0ZGVwZW5kcyBvbiBIV01PTiB8fCAhSFdNT05cbiAgMTU6XHRcdGhlbHBcbiAgMTY6XHRcdCAgQ29yZSBkcml2ZXIgZm9yIGxvdyBsZXZlbCBmdW5jdGlvbmFsaXR5IG9mIHRoZSBDb25uZWN0WC00IGFuZFxuICAxNzpcdFx0ICBDb25uZWN0LUlCIGNhcmRzIGJ5IE1lbGxhbm94IFRlY2hub2xvZ2llcy5cbiAgMTg6XHRcbiAgMTk6XHRjb25maWcgTUxYNV9GUEdBXG4gIDIwOlx0XHRib29sIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBJbm5vdmEgc3VwcG9ydFwmIzM0O1xuICAyMTpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVcbiAgMjI6XHRcdGhlbHBcbiAgMjM6XHRcdCAgQnVpbGQgc3VwcG9ydCBmb3IgdGhlIElubm92YSBmYW1pbHkgb2YgbmV0d29yayBjYXJkcyBieSBNZWxsYW5veFxuICAyNDpcdFx0ICBUZWNobm9sb2dpZXMuIElubm92YSBuZXR3b3JrIGNhcmRzIGFyZSBjb21wcmlzZWQgb2YgYSBDb25uZWN0WCBjaGlwXG4gIDI1Olx0XHQgIGFuZCBhbiBGUEdBIGNoaXAgb24gb25lIGJvYXJkLiBJZiB5b3Ugc2VsZWN0IHRoaXMgb3B0aW9uLCB0aGVcbiAgMjY6XHRcdCAgbWx4NV9jb3JlIGRyaXZlciB3aWxsIGluY2x1ZGUgdGhlIElubm92YSBGUEdBIGNvcmUgYW5kIGFsbG93IGJ1aWxkaW5nXG4gIDI3Olx0XHQgIHNhbmRib3gtc3BlY2lmaWMgY2xpZW50IGRyaXZlcnMuXG4gIDI4Olx0XG4gIDI5Olx0Y29uZmlnIE1MWDVfQ09SRV9FTlxuICAzMDpcdFx0Ym9vbCBcJiMzNDtNZWxsYW5veCA1dGggZ2VuZXJhdGlvbiBuZXR3b3JrIGFkYXB0ZXJzIChDb25uZWN0WCBzZXJpZXMpIEV0aGVybmV0IHN1cHBvcnRcJiMzNDtcbiAgMzE6XHRcdGRlcGVuZHMgb24gTkVUREVWSUNFUyBcdTAwMjZcdTAwMjYgRVRIRVJORVQgXHUwMDI2XHUwMDI2IElORVQgXHUwMDI2XHUwMDI2IFBDSSBcdTAwMjZcdTAwMjYgTUxYNV9DT1JFXG4gIDMyOlx0XHRzZWxlY3QgUEFHRV9QT09MXG4gIDMzOlx0XHRzZWxlY3QgUEFHRV9QT09MX1NUQVRTXG4gIDM0Olx0XHRzZWxlY3QgRElNTElCXG4gIDM1Olx0XHRoZWxwXG4gIDM2Olx0XHQgIEV0aGVybmV0IHN1cHBvcnQgaW4gTWVsbGFub3ggVGVjaG5vbG9naWVzIENvbm5lY3RYLTQgTklDLlxuICAzNzpcdFxuICAzODpcdGNvbmZpZyBNTFg1X0VOX0FSRlNcbiAgMzk6XHRcdGJvb2wgXCYjMzQ7TWVsbGFub3ggTUxYNSBldGhlcm5ldCBhY2NlbGVyYXRlZCByZWNlaXZlIGZsb3cgc3RlZXJpbmcgKEFSRlMpIHN1cHBvcnRcJiMzNDtcbiAgNDA6XHRcdGRlcGVuZHMgb24gTUxYNV9DT1JFX0VOIFx1MDAyNlx1MDAyNiBSRlNfQUNDRUxcbiAgNDE6XHRcdGRlZmF1bHQgeVxuICA0MjpcdFx0aGVscFxuICA0MzpcdFx0ICBNZWxsYW5veCBNTFg1IGV0aGVybmV0IGhhcmR3YXJlLWFjY2VsZXJhdGVkIHJlY2VpdmUgZmxvdyBzdGVlcmluZyBzdXBwb3J0LFxuICA0NDpcdFx0ICBFbmFibGVzIGV0aGVybmV0IG5ldGRldmljZSBhcmZzIHN1cHBvcnQgYW5kIG50dXBsZSBmaWx0ZXJpbmcuXG4gIDQ1Olx0XG4gIDQ2Olx0Y29uZmlnIE1MWDVfRU5fUlhORkNcbiAgNDc6XHRcdGJvb2wgXCYjMzQ7TWVsbGFub3ggTUxYNSBldGhlcm5ldCByeCBuZmMgZmxvdyBzdGVlcmluZyBzdXBwb3J0XCYjMzQ7XG4gIDQ4Olx0XHRkZXBlbmRzIG9uIE1MWDVfQ09SRV9FTlxuICA0OTpcdFx0ZGVmYXVsdCB5XG4gIDUwOlx0XHRoZWxwXG4gIDUxOlx0XHQgIE1lbGxhbm94IE1MWDUgZXRoZXJuZXQgcnggbmZjIGZsb3cgc3RlZXJpbmcgc3VwcG9ydFxuICA1MjpcdFx0ICBFbmFibGVzIGV0aHRvb2wgcmVjZWl2ZSBuZXR3b3JrIGZsb3cgY2xhc3NpZmljYXRpb24sIHdoaWNoIGFsbG93cyB1c2VyIGRlZmluZWRcbiAgNTM6XHRcdCAgZmxvdyBydWxlcyB0byBkaXJlY3QgdHJhZmZpYyBpbnRvIGFyYml0cmFyeSByeCBxdWV1ZSB2aWEgZXRodG9vbCBzZXQvZ2V0X3J4bmZjXG4gIDU0Olx0XHQgIEFQSS5cbiAgNTU6XHRcbiAgNTY6XHRjb25maWcgTUxYNV9NUEZTXG4gIDU3Olx0XHRib29sIFwmIzM0O01lbGxhbm94IFRlY2hub2xvZ2llcyBNTFg1IE1QRlMgc3VwcG9ydFwmIzM0O1xuICA1ODpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU5cbiAgNTk6XHRcdGRlZmF1bHQgeVxuICA2MDpcdFx0aGVscFxuICA2MTpcdFx0ICBNZWxsYW5veCBUZWNobm9sb2dpZXMgRXRoZXJuZXQgTXVsdGktUGh5c2ljYWwgRnVuY3Rpb24gU3dpdGNoIChNUEZTKVxuICA2MjpcdFx0ICBzdXBwb3J0IGluIENvbm5lY3RYIE5JQy4gTVBGcyBpcyByZXF1aXJlZCBmb3Igd2hlbiBtdWx0aS1QRiBjb25maWd1cmF0aW9uXG4gIDYzOlx0XHQgIGlzIGVuYWJsZWQgdG8gYWxsb3cgcGFzc2luZyB1c2VyIGNvbmZpZ3VyZWQgdW5pY2FzdCBNQUMgYWRkcmVzc2VzIHRvIHRoZVxuICA2NDpcdFx0ICByZXF1ZXN0aW5nIFBGLlxuICA2NTpcdFxuICA2NjpcdGNvbmZpZyBNTFg1X0VTV0lUQ0hcbiAgNjc6XHRcdGJvb2wgXCYjMzQ7TWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydFwmIzM0O1xuICA2ODpcdFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXHUwMDI2XHUwMDI2IE5FVF9TV0lUQ0hERVZcbiAgNjk6XHRcdGRlZmF1bHQgeVxuICA3MDpcdFx0aGVscFxuICA3MTpcdFx0ICBNZWxsYW5veCBUZWNobm9sb2dpZXMgRXRoZXJuZXQgU1JJT1YgRS1Td2l0Y2ggc3VwcG9ydCBpbiBDb25uZWN0WCBOSUMuXG4gIDcyOlx0XHQgIEUtU3dpdGNoIHByb3ZpZGVzIGludGVybmFsIFNSSU9WIHBhY2tldCBzdGVlcmluZyBhbmQgc3dpdGNoaW5nIGZvciB0aGVcbiAgNzM6XHRcdCAgZW5hYmxlZCBWRnMgYW5kIFBGIGluIHR3byBhdmFpbGFibGUgbW9kZXM6XG4gIDc0Olx0XHQgICAgICAgIExlZ2FjeSBTUklPViBtb2RlIChMMiBtYWMgdmxhbiBzdGVlcmluZyBiYXNlZCkuXG4gIDc1Olx0XHQgICAgICAgIFN3aXRjaGRldiBtb2RlIChlc3dpdGNoIG9mZmxvYWRzKS5cbiAgNzY6XHRcbiAgNzc6XHRjb25maWcgTUxYNV9CUklER0VcbiAgNzg6XHRcdGJvb2xcbiAgNzk6XHRcdGRlcGVuZHMgb24gTUxYNV9FU1dJVENIIFx1MDAyNlx1MDAyNiBCUklER0VcbiAgODA6XHRcdGRlZmF1bHQgeVxuICA4MTpcdFx0aGVscFxuICA4MjpcdFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIEV0aGVybmV0IEJyaWRnaW5nIChCUklER0UpLlxuICA4MzpcdFx0ICBFbmFibGUgb2ZmbG9hZGluZyBGREIgcnVsZXMgZnJvbSBhIGJyaWRnZSBkZXZpY2UgY29udGFpbmluZ1xuICA4NDpcdFx0ICByZXByZXNlbnRvcnMgb2YgbWx4NSB1cGxpbmsgYW5kIFZGIHBvcnRzLiBTdXBwb3J0cyBWTEFOcyAodHJ1bmsgYW5kXG4gIDg1Olx0XHQgIGFjY2VzcyBtb2RlcykuXG4gIDg2Olx0XG4gIDg3Olx0Y29uZmlnIE1MWDVfQ0xTX0FDVFxuICA4ODpcdFx0Ym9vbCBcJiMzNDtNTFg1IFRDIGNsYXNzaWZpZXIgYWN0aW9uIHN1cHBvcnRcJiMzNDtcbiAgODk6XHRcdGRlcGVuZHMgb24gTUxYNV9FU1dJVENIIFx1MDAyNlx1MDAyNiBORVRfQ0xTX0FDVCBcdTAwMjZcdTAwMjYgTkVUX1RDX1NLQl9FWFRcbiAgOTA6XHRcdGRlZmF1bHQgeVxuICA5MTpcdFx0aGVscFxuICA5MjpcdFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIFRDIGNsYXNzaWZpZXIgYWN0aW9uIChORVRfQ0xTX0FDVCksXG4gIDkzOlx0XHQgIHdvcmtzIGluIGJvdGggbmF0aXZlIE5JQyBtb2RlIGFuZCBTd2l0Y2hkZXYgU1JJT1YgbW9kZS5cbiAgOTQ6XHRcdCAgQWN0aW9ucyBnZXQgYXR0YWNoZWQgdG8gYSBIYXJkd2FyZSBvZmZsb2FkZWQgY2xhc3NpZmllcnMgYW5kIGFyZVxuICA5NTpcdFx0ICBpbnZva2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjbGFzc2lmaWNhdGlvbi4gQWN0aW9ucyBhcmUgdXNlZCB0b1xuICA5NjpcdFx0ICBvdmVyd3JpdGUgdGhlIGNsYXNzaWZpY2F0aW9uIHJlc3VsdCwgaW5zdGFudGx5IGRyb3Agb3IgcmVkaXJlY3QgYW5kL29yXG4gIDk3Olx0XHQgIHJlZm9ybWF0IHBhY2tldHMgaW4gd2lyZSBzcGVlZHMgd2l0aG91dCBpbnZvbHZpbmcgdGhlIGhvc3QgY3B1LlxuICA5ODpcdFxuICA5OTpcdFx0ICBJZiBzZXQgdG8gTiwgVEMgb2ZmbG9hZHMgaW4gYm90aCBOSUMgYW5kIHN3aXRjaGRldiBtb2RlcyB3aWxsIGJlIGRpc2FibGVkLlxuIDEwMDpcdFx0ICBJZiB1bnN1cmUsIHNldCB0byBZXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI0MAoJCQkJCQkJb3V0cHV0OiAyNwoJCQkJCQkJdGhvdWdodHM6IDU3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk1lbGxhbm94IENvbm5lY3RYIERyaXZlciBJbnZlc3RpZ2F0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZm9jdXNpbmcgb24gdGhlIGRyaXZlciBmb3IgTWVsbGFub3ggQ29ubmVjdFggaGFyZHdhcmUgaGVyZS4gVGhlIGNoYWxsZW5nZSwgYXMgYWx3YXlzIHdpdGggZnV6emluZywgaXMgdGhlIGVudmlyb25tZW50LiBJIGtub3cgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGVtdWxhdGUgTWVsbGFub3ggaGFyZHdhcmUgZGlyZWN0bHkg4oCTIHRoYXQmIzM5O3MgYSBrZXkgbGltaXRhdGlvbi4gQnV0Li4uIHdhaXQsIGJlZm9yZSBJIHJ1bGUgaXQgb3V0IGNvbXBsZXRlbHksIGlzIHRoZXJlICphbnkqIHZpcnR1YWwgZGV2aWNlIG9wdGlvbiBvdXQgdGhlcmUgZm9yIGBtbHg1YD8gSSBuZWVkIHRvIGNoZWNrIGZvciBhIHZpcnR1YWwgZGF0YSBwYXRoIGFic3RyYWN0aW9uLCBzb21ldGhpbmcgbGlrZSBgdmRwYWAgbWF5YmUsIG9yIGEgc2ltaWxhciB0ZWNobm9sb2d5IHRoYXQgbWlnaHQgbGV0IG1lIGludGVyYWN0IHdpdGggdGhlIGRyaXZlciBpbiBhIHRlc3RhYmxlIHdheS4gSSBuZWVkIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyAqYW55dGhpbmcqIEkgY2FuIGxldmVyYWdlIHNob3J0IG9mIHJhdyBoYXJkd2FyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvdmRwYS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7XG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDI2NjEgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvdmRwYS9LY29uZmlnPTcyPWNvbmZpZyBNTFg1X1ZEUEFfU1RFRVJJTkdfREVCVUdcbi0tXG5kcml2ZXJzL3ZkcGEvS2NvbmZpZy04MC1cdCAgZGVidWdmcy4gT25jZSBjYW4gcmVhZCB0aGUgY291bnRlcnMgdXNpbmcsIGUuZy46XG5kcml2ZXJzL3ZkcGEvS2NvbmZpZzo4MTpcdCAgY2F0IC9zeXMva2VybmVsL2RlYnVnL21seDUvbWx4NV9jb3JlLnNmLjEvdmRwYS0wL3J4L3VudGFnZ2VkL3VjYXN0L3BhY2tldHNcbmRyaXZlcnMvdmRwYS9LY29uZmlnOjgyOlx0ICBjYXQgL3N5cy9rZXJuZWwvZGVidWcvbWx4NS9tbHg1X2NvcmUuc2YuMS92ZHBhLTAvcngvdW50YWdnZWQvbWNhc3QvYnl0ZXNcbmRyaXZlcnMvdmRwYS9LY29uZmlnLTgzLVxuLS1cbmRyaXZlcnMvdmRwYS9NYWtlZmlsZT01PW9iai0kKENPTkZJR19JRkNWRikgICAgJiM0Mzs9IGlmY3ZmL1xuZHJpdmVycy92ZHBhL01ha2VmaWxlOjY6b2JqLSQoQ09ORklHX01MWDVfVkRQQSkgJiM0Mzs9IG1seDUvXG5kcml2ZXJzL3ZkcGEvTWFrZWZpbGUtNy1vYmotJChDT05GSUdfVlBfVkRQQSkgICAgJiM0Mzs9IHZpcnRpb19wY2kvXG4tLVxuZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGU6MTpzdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjdHJlZSkvZHJpdmVycy92ZHBhL21seDUvY29yZVxuZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGUtMi1cbmRyaXZlcnMvdmRwYS9tbHg1L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01MWDVfVkRQQV9ORVQpICYjNDM7PSBtbHg1X3ZkcGEub1xuZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGU6NDptbHg1X3ZkcGEtJChDT05GSUdfTUxYNV9WRFBBX05FVCkgJiM0Mzs9IG5ldC9tbHg1X3ZuZXQubyBjb3JlL3Jlc291cmNlcy5vIGNvcmUvbXIubyBuZXQvZGVidWcub1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtOS0jaW5jbHVkZSBcdTAwM2NsaW51eC92ZHBhLmhcdTAwM2VcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTA6I2luY2x1ZGUgXHUwMDNjbGludXgvbWx4NS9kcml2ZXIuaFx1MDAzZVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMS1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEzLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDpzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE1LVx0dTY0IHN0YXJ0O1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMjYtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjI3OnN0cnVjdCBtbHg1X3ZkcGFfbXIge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0yOC1cdHUzMiBta2V5O1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNDItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjQzOnN0cnVjdCBtbHg1X3ZkcGFfcmVzb3VyY2VzIHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNDQtXHR1MzIgcGRuO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDo0NTpcdHN0cnVjdCBtbHg1X3VhcnNfcGFnZSAqdWFyO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC00Ni1cdHZvaWQgX19pb21lbSAqa2lja19hZGRyO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNTItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjUzOnN0cnVjdCBtbHg1X2NvbnRyb2xfdnEge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC01NC1cdHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGI7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC02OS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6NzA6c3RydWN0IG1seDVfdmRwYV93cV9lbnQge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC03MS1cdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDo3MjpcdHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldjtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNzMtfTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oPTgyPWVudW0ge1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtODUtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjg2OnN0cnVjdCBtbHg1X3ZkcGFfbXJfcmVzb3VyY2VzIHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6ODc6XHRzdHJ1Y3QgbWx4NV92ZHBhX21yICptcltNTFg1X1ZEUEFfTlVNX0FTXTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtODgtXHR1bnNpZ25lZCBpbnQgZ3JvdXAyYXNpZFtNTFg1X1ZEUEFfTlVNVlFfR1JPVVBTXTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEwMi1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTAzOnN0cnVjdCBtbHg1X3ZkcGFfZGV2IHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTA0LVx0c3RydWN0IHZkcGFfZGV2aWNlIHZkZXY7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwNTpcdHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2O1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMDY6XHRzdHJ1Y3QgbWx4NV92ZHBhX3Jlc291cmNlcyByZXM7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwNzpcdHN0cnVjdCBtbHg1X3ZkcGFfbXJfcmVzb3VyY2VzIG1yZXM7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEwOC1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTExNS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTE2Olx0c3RydWN0IG1seDVfY29udHJvbF92cSBjdnE7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTExNy1cdHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTExOS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTIwOlx0c3RydWN0IG1seDVfYXN5bmNfY3R4IGFzeW5jX2N0eDtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTIxLX07XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEyMi1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTIzOnN0cnVjdCBtbHg1X3ZkcGFfYXN5bmNfY21kIHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTI0LVx0aW50IGVycjtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTI1Olx0c3RydWN0IG1seDVfYXN5bmNfd29yayBjYl93b3JrO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMjYtXHRzdHJ1Y3QgY29tcGxldGlvbiBjbWRfZG9uZTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEzNC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTM1OmludCBtbHg1X3ZkcGFfY3JlYXRlX3RpcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHZvaWQgKmluLCB1MzIgKnRpc24pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMzY6dm9pZCBtbHg1X3ZkcGFfZGVzdHJveV90aXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgdGlzbik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzNzppbnQgbWx4NV92ZHBhX2NyZWF0ZV9ycXQoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgaW50IGlubGVuLCB1MzIgKnJxdG4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMzg6aW50IG1seDVfdmRwYV9tb2RpZnlfcnF0KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdm9pZCAqaW4sIGludCBpbmxlbiwgdTMyIHJxdG4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMzk6dm9pZCBtbHg1X3ZkcGFfZGVzdHJveV9ycXQoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgcnF0bik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0MDppbnQgbWx4NV92ZHBhX2NyZWF0ZV90aXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgdTMyICp0aXJuKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQxOnZvaWQgbWx4NV92ZHBhX2Rlc3Ryb3lfdGlyKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyIHRpcm4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDI6aW50IG1seDVfdmRwYV9hbGxvY190cmFuc3BvcnRfZG9tYWluKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyICp0ZG4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDM6dm9pZCBtbHg1X3ZkcGFfZGVhbGxvY190cmFuc3BvcnRfZG9tYWluKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyIHRkbik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0NDppbnQgbWx4NV92ZHBhX2FsbG9jX3Jlc291cmNlcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDU6dm9pZCBtbHg1X3ZkcGFfZnJlZV9yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ2OmludCBtbHg1X3ZkcGFfY3JlYXRlX21rZXkoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgKm1rZXksIHUzMiAqaW4sXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE0Ny1cdFx0XHQgIGludCBpbmxlbik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0ODppbnQgbWx4NV92ZHBhX2Rlc3Ryb3lfbWtleShzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHUzMiBta2V5KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ5OnN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1seDVfdmRwYV9jcmVhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNTAtXHRcdFx0XHRcdCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTUxOmludCBtbHg1X3ZkcGFfaW5pdF9tcl9yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTUyOnZvaWQgbWx4NV92ZHBhX2Rlc3Ryb3lfbXJfcmVzb3VyY2VzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1Mzp2b2lkIG1seDVfdmRwYV9jbGVhbl9tcnMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU0OnZvaWQgbWx4NV92ZHBhX2dldF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1NTpcdFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNTY6dm9pZCBtbHg1X3ZkcGFfcHV0X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU3Olx0XHQgICAgICBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1ODp2b2lkIG1seDVfdmRwYV91cGRhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNTk6XHRcdFx0IHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yLFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNjAtXHRcdFx0IHVuc2lnbmVkIGludCBhc2lkKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTYxOmludCBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2Mi1cdFx0XHRcdHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGIsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2My1cdFx0XHRcdHVuc2lnbmVkIGludCBhc2lkKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTY0OmludCBtbHg1X3ZkcGFfY3JlYXRlX2RtYV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNjU6aW50IG1seDVfdmRwYV9yZXNldF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHVuc2lnbmVkIGludCBhc2lkKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTY2OmludCBtbHg1X3ZkcGFfZXhlY19hc3luY19jbWRzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTY3Olx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfYXN5bmNfY21kICpjbWRzLFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNjgtXHRcdFx0ICAgICAgaW50IG51bV9jbWRzKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTY5LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNzA6I2RlZmluZSBtbHg1X3ZkcGFfZXJyKF9fZGV2LCBmb3JtYXQsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTcxLVx0ZGV2X2VycigoX19kZXYpLVx1MDAzZW1kZXYtXHUwMDNlZGV2aWNlLCBcJiMzNDslczolZDoocGlkICVkKSBlcnJvcjogXCYjMzQ7IGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgICAgXFxcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE3NC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTc1OiNkZWZpbmUgbWx4NV92ZHBhX3dhcm4oX19kZXYsIGZvcm1hdCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE3Ni1cdGRldl93YXJuKChfX2RldiktXHUwMDNlbWRldi1cdTAwM2VkZXZpY2UsIFwmIzM0OyVzOiVkOihwaWQgJWQpIHdhcm5pbmc6IFwmIzM0OyBmb3JtYXQsIF9fZnVuY19fLCBfX0xJTkVfXywgICAgIFxcXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNzgtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE3OTojZGVmaW5lIG1seDVfdmRwYV9pbmZvKF9fZGV2LCBmb3JtYXQsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xODAtXHRkZXZfaW5mbygoX19kZXYpLVx1MDAzZW1kZXYtXHUwMDNlZGV2aWNlLCBcJiMzNDslczolZDoocGlkICVkKTogXCYjMzQ7IGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgICAgICAgICBcXFxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTgyLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxODM6I2RlZmluZSBtbHg1X3ZkcGFfZGJnKF9fZGV2LCBmb3JtYXQsIC4uLikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTg0LVx0ZGV2X2RlYnVnKChfX2RldiktXHUwMDNlbWRldi1cdTAwM2VkZXZpY2UsIFwmIzM0OyVzOiVkOihwaWQgJWQpOiBcJiMzNDsgZm9ybWF0LCBfX2Z1bmNfXywgX19MSU5FX18sICAgICAgICAgICAgXFxcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNy0jaW5jbHVkZSBcdTAwM2NsaW51eC9zdHJpbmcuaFx1MDAzZVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg6I2luY2x1ZGUgXHUwMDNjbGludXgvbWx4NS9xcC5oXHUwMDNlXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTojaW5jbHVkZSBcJiMzNDttbHg1X3ZkcGEuaFwmIzM0O1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEwLVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYz0yMD1zdGF0aWMgaW50IGdldF9vY3RvX2xlbih1NjQgbGVuLCBpbnQgcGFnZV9zaGlmdClcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjgtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6Mjk6c3RhdGljIHZvaWQgbWx4NV9zZXRfYWNjZXNzX21vZGUodm9pZCAqbWtjLCBpbnQgbW9kZSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMC17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM0LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjM1OnN0YXRpYyB2b2lkIHBvcHVsYXRlX210dHMoc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yLCBfX2JlNjQgKm10dClcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNi17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUxLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjUyOnN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTMtXHR1OCBvdXRbTUxYNV9TVF9TWl9CWVRFUyhjcmVhdGVfbWtleV9vdXQpXTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTctXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NTg6c3RydWN0IG1seDVfZGVzdHJveV9ta2V5X21lbSB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTktXHR1OCBvdXRbTUxYNV9TVF9TWl9CWVRFUyhkZXN0cm95X21rZXlfb3V0KV07XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTYyLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjYzOnN0YXRpYyB2b2lkIGZpbGxfY3JlYXRlX2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjQ6XHRcdFx0XHQgIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NTpcdFx0XHRcdCAgc3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICptZW0pXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjYte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03My1cdE1MWDVfU0VUKG1rYywgbWtjLCBsciwgISEobXItXHUwMDNlcGVybSBcdTAwMjYgVkhPU1RfTUFQX1JPKSk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzQ6XHRtbHg1X3NldF9hY2Nlc3NfbW9kZShta2MsIE1MWDVfTUtDX0FDQ0VTU19NT0RFX01UVCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzUtXHRNTFg1X1NFVChta2MsIG1rYywgcXBuLCAweGZmZmZmZik7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg5LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjkwOnN0YXRpYyB2b2lkIGNyZWF0ZV9kaXJlY3RfbXJfZW5kKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo5MTpcdFx0XHRcdCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTI6XHRcdFx0XHQgc3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICptZW0pXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtOTMte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy05NS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo5NjpcdG1yLVx1MDAzZW1yID0gbWx4NV9pZHhfdG9fbWtleShta2V5X2luZGV4KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy05Ny19XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtOTgtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTk6c3RhdGljIHZvaWQgZmlsbF9kZXN0cm95X2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTAwOlx0XHRcdFx0ICAgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yLFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjEwMTpcdFx0XHRcdCAgIHN0cnVjdCBtbHg1X2Rlc3Ryb3lfbWtleV9tZW0gKm1lbSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDIte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDYtXHRNTFg1X1NFVChkZXN0cm95X21rZXlfaW4sIGluLCBvcGNvZGUsIE1MWDVfQ01EX09QX0RFU1RST1lfTUtFWSk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTA3Olx0TUxYNV9TRVQoZGVzdHJveV9ta2V5X2luLCBpbiwgbWtleV9pbmRleCwgbWx4NV9ta2V5X3RvX2lkeChtci1cdTAwM2VtcikpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEwOC19XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTA5LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExMDpzdGF0aWMgdm9pZCBkZXN0cm95X2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTEte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTQtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTE1Olx0bWx4NV92ZHBhX2Rlc3Ryb3lfbWtleShtdmRldiwgbXItXHUwMDNlbXIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTExNi19XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTE3LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExODpzdGF0aWMgdTY0IG1hcF9zdGFydChzdHJ1Y3Qgdmhvc3RfaW90bGJfbWFwICptYXAsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTkte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMjItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTIzOnN0YXRpYyB1NjQgbWFwX2VuZChzdHJ1Y3Qgdmhvc3RfaW90bGJfbWFwICptYXAsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMjQte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMjctXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTI4OnN0YXRpYyB1NjQgbWFwbGVuKHN0cnVjdCB2aG9zdF9pb3RsYl9tYXAgKm1hcCwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEyOS17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEzNS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMzY6c3RhdGljIHU2NCBpbmRpcl9zdGFydF9hZGRyKHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1rZXkpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTM3LXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMzg6XHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqcztcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMzktXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTQwOlx0cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcdTAwMjZta2V5LVx1MDAzZWhlYWQsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yLCBsaXN0KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNDEtXHRpZiAoIXMpXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE0Ni1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNDc6c3RhdGljIHU2NCBpbmRpcl9sZW4oc3RydWN0IG1seDVfdmRwYV9tciAqbWtleSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNDgte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE0OTpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpzO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE1MDpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICplO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE1MS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNTI6XHRzID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFx1MDAyNm1rZXktXHUwMDNlaGVhZCwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIsIGxpc3QpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE1My1cdGlmICghcylcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTU1LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE1NjpcdGUgPSBsaXN0X2xhc3RfZW50cnkoXHUwMDI2bWtleS1cdTAwM2VoZWFkLCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciwgbGlzdCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTU3LVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYz0xNjQ9c3RhdGljIHUzMiBrbG1fYmNvdW50KHU2NCBzaXplKVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNjgtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTY5OnN0YXRpYyB2b2lkIGZpbGxfaW5kaXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICpta2V5LCB2b2lkICppbilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNzAte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE3MTpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpkbXI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTcyOlx0c3RydWN0IG1seDVfa2xtICprbG1hcnI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTczOlx0c3RydWN0IG1seDVfa2xtICprbG07XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTc0LVx0Ym9vbCBmaXJzdCA9IHRydWU7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jPTIwND1zdGF0aWMgaW50IGtsbV9ieXRlX3NpemUoaW50IG5rbG1zKVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yMTAtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjExOnN0YXRpYyBpbnQgY3JlYXRlX2RpcmVjdF9rZXlzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjEyLXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyMTM6XHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kcztcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyMTQ6XHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIxNS1cdGludCBlcnIgPSAwO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yMjItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRtciwgXHUwMDI2bXItXHUwMDNlaGVhZCwgbGlzdCkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjIyMzpcdFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIyNC1cdFx0aW50IG10dGxlbiwgbXR0Y291bnQ7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI0My1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNDQ6XHRlcnIgPSBtbHg1X3ZkcGFfZXhlY19hc3luY19jbWRzKG12ZGV2LCBjbWRzLCBtci1cdTAwM2VudW1fZGlyZWN0cyk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjQ1LVx0aWYgKGVycikge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI0Ni1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNDc6XHRcdG1seDVfdmRwYV9lcnIobXZkZXYsIFwmIzM0O2Vycm9yIGlzc3VpbmcgTVRUIG1rZXkgY3JlYXRpb24gZm9yIGRpcmVjdCBtcnM6ICVkXFxuXCYjMzQ7LCBlcnIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI0OC1cdFx0Z290byBkb25lO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNTItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRtciwgXHUwMDI2bXItXHUwMDNlaGVhZCwgbGlzdCkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI1MzpcdFx0c3RydWN0IG1seDVfdmRwYV9hc3luY19jbWQgKmNtZCA9IFx1MDAyNmNtZHNbaSYjNDM7JiM0MztdO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI1NDpcdFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI1NS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNTY6XHRcdGNtZF9tZW0gPSBjb250YWluZXJfb2YoY21kLVx1MDAzZW91dCwgc3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtLCBvdXQpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI1Ny1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjYxLVx0XHRcdGVyciA9IGVyciA/IGVyciA6IGNtZC1cdTAwM2VlcnI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjYyOlx0XHRcdG1seDVfdmRwYV9lcnIobXZkZXYsIFwmIzM0O2Vycm9yIGNyZWF0aW5nIE1UVCBta2V5IFsweCVsbHgsIDB4JWxseF06ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI2My1cdFx0XHRcdGRtci1cdTAwM2VzdGFydCwgZG1yLVx1MDAzZWVuZCwgY21kLVx1MDAzZWVycik7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI2OC1cdGZvciAoaSA9IGktMTsgaSBcdTAwM2U9IDA7IGktLSkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI2OTpcdFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI3MC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNzE6XHRcdGNtZF9tZW0gPSBjb250YWluZXJfb2YoY21kc1tpXS5vdXQsIHN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSwgb3V0KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNzItXHRcdGt2ZnJlZShjbWRfbWVtKTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjc4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI3OTpERUZJTkVfRlJFRShmcmVlX2NtZHMsIHN0cnVjdCBtbHg1X3ZkcGFfYXN5bmNfY21kICosIGt2ZnJlZShfVCkpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjgwOkRFRklORV9GUkVFKGZyZWVfY21kX21lbSwgc3RydWN0IG1seDVfZGVzdHJveV9ta2V5X21lbSAqLCBrdmZyZWUoX1QpKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI4MS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODI6c3RhdGljIGludCBkZXN0cm95X2RpcmVjdF9rZXlzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjgzLXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODQ6XHRzdHJ1Y3QgbWx4NV9kZXN0cm95X21rZXlfbWVtICpjbWRfbWVtIF9fZnJlZShmcmVlX2NtZF9tZW0pID0gTlVMTDtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODU6XHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kcyBfX2ZyZWUoZnJlZV9jbWRzKSA9IE5VTEw7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6Mjg2Olx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKmRtcjtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yODctXHRpbnQgZXJyID0gMDtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzAzLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjMwNDpcdGVyciA9IG1seDVfdmRwYV9leGVjX2FzeW5jX2NtZHMobXZkZXYsIGNtZHMsIG1yLVx1MDAzZW51bV9kaXJlY3RzKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMDUtXHRpZiAoZXJyKSB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzA2LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjMwNzpcdFx0bWx4NV92ZHBhX2VycihtdmRldiwgXCYjMzQ7ZXJyb3IgaXNzdWluZyBNVFQgbWtleSBkZWxldGlvbiBmb3IgZGlyZWN0IG1yczogJWRcXG5cJiMzNDssIGVycik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzA4LVx0XHRyZXR1cm4gZXJyO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMTItXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRtciwgXHUwMDI2bXItXHUwMDNlaGVhZCwgbGlzdCkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjMxMzpcdFx0c3RydWN0IG1seDVfdmRwYV9hc3luY19jbWQgKmNtZCA9IFx1MDAyNmNtZHNbaSYjNDM7JiM0MztdO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMxNC1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzE3LVx0XHRcdGVyciA9IGVyciA/IGVyciA6IGNtZC1cdTAwM2VlcnI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzE4Olx0XHRcdG1seDVfdmRwYV9lcnIobXZkZXYsIFwmIzM0O2Vycm9yIGRlbGV0aW5nIE1UVCBta2V5IFsweCVsbHgsIDB4JWxseF06ICVkXFxuXCYjMzQ7LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMxOS1cdFx0XHRcdGRtci1cdTAwM2VzdGFydCwgZG1yLVx1MDAzZWVuZCwgY21kLVx1MDAzZWVycik7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMyNS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozMjY6c3RhdGljIGludCBjcmVhdGVfaW5kaXJlY3Rfa2V5KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzI3LXtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzQ4LVx0TUxYNV9TRVQobWtjLCBta2MsIGxyLCAxKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozNDk6XHRtbHg1X3NldF9hY2Nlc3NfbW9kZShta2MsIE1MWDVfTUtDX0FDQ0VTU19NT0RFX0tMTVMpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM1MC1cdE1MWDVfU0VUKG1rYywgbWtjLCBxcG4sIDB4ZmZmZmZmKTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzU2LVx0ZmlsbF9pbmRpcihtdmRldiwgbXIsIGluKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozNTc6XHRlcnIgPSBtbHg1X3ZkcGFfY3JlYXRlX21rZXkobXZkZXYsIFx1MDAyNm1yLVx1MDAzZW1rZXksIGluLCBpbmxlbik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzU4LVx0a2ZyZWUoaW4pO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjEtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzYyOnN0YXRpYyB2b2lkIGRlc3Ryb3lfaW5kaXJlY3Rfa2V5KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbWtleSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjMte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjM2NDpcdG1seDVfdmRwYV9kZXN0cm95X21rZXkobXZkZXYsIG1rZXktXHUwMDNlbWtleSk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzY1LX1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjYtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzY3OnN0YXRpYyBpbnQgbWFwX2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjgtXHRcdFx0IHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGIpXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQwNS1cdFx0XHRpZiAoIXNnKSB7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDA2Olx0XHRcdFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFwmIzM0O3NnIG51bGwuIHN0YXJ0IDB4JWxseCwgZW5kIDB4JWxseFxcblwmIzM0OyxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MDctXHRcdFx0XHRcdCAgICAgICBtYXAtXHUwMDNlc3RhcnQsIG1hcC1cdTAwM2VsYXN0ICYjNDM7IDEpO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MzItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDMzOnN0YXRpYyB2b2lkIHVubWFwX2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MzQte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00NDEtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDQyOnN0YXRpYyBpbnQgYWRkX2RpcmVjdF9jaGFpbihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDQzOlx0XHRcdCAgICBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00NDQtXHRcdFx0ICAgIHU2NCBzdGFydCxcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNDQ4LXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo0NDk6XHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ1MDpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpuO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ1MS1cdExJU1RfSEVBRCh0bXApO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00OTctICovXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDk4OnN0YXRpYyBpbnQgY3JlYXRlX3VzZXJfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ5OTpcdFx0XHQgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yLFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwMC1cdFx0XHQgIHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTAxLXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1MDI6XHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjUwMzpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpuO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwNC1cdHN0cnVjdCB2aG9zdF9pb3RsYl9tYXAgKm1hcDtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTY1LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjU2NjpzdGF0aWMgaW50IGNyZWF0ZV9kbWFfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01Njcte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01ODUtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NTg2Olx0ZXJyID0gbWx4NV92ZHBhX2NyZWF0ZV9ta2V5KG12ZGV2LCBcdTAwMjZtci1cdTAwM2Vta2V5LCBpbiwgaW5sZW4pO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTU4Ny1cdGlmICghZXJyKVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTMtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NTk0OnN0YXRpYyB2b2lkIGRlc3Ryb3lfZG1hX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTk1LXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1OTY6XHRtbHg1X3ZkcGFfZGVzdHJveV9ta2V5KG12ZGV2LCBtci1cdTAwM2Vta2V5KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTctfVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYz02MjM9c3RhdGljIHZvaWQgcHJ1bmVfaW90bGIoc3RydWN0IHZob3N0X2lvdGxiICppb3RsYilcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjI3LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjYyODpzdGF0aWMgdm9pZCBkZXN0cm95X3VzZXJfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02Mjkte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjYzMDpcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpkbXI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjMxOlx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm47XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjMyLVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02NDEtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjQyOnN0YXRpYyB2b2lkIF9tbHg1X3ZkcGFfZGVzdHJveV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY0My17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY2NC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NjU6c3RhdGljIHZvaWQgbWx4NV92ZHBhX21yX2djX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY2Ni17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjY3Olx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgKm1yZXM7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjY4Olx0c3RydWN0IG1seDVfdmRwYV9tciAqbXIsICp0bXA7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjY5Olx0c3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2O1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY3MC1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NzE6XHRtcmVzID0gY29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBtbHg1X3ZkcGFfbXJfcmVzb3VyY2VzLCBnY19kd29ya19lbnQud29yayk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjcyLVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02ODAtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjgxOlx0bXZkZXYgPSBjb250YWluZXJfb2YobXJlcywgc3RydWN0IG1seDVfdmRwYV9kZXYsIG1yZXMpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY4Mi1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02ODMtXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobXIsIHRtcCwgXHUwMDI2bXJlcy1cdTAwM2Vtcl9nY19saXN0X2hlYWQsIG1yX2xpc3QpIHtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2ODQ6XHRcdF9tbHg1X3ZkcGFfZGVzdHJveV9tcihtdmRldiwgbXIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY4NS1cdH1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjg5LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjY5MDpzdGF0aWMgdm9pZCBfbWx4NV92ZHBhX3B1dF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjkxOlx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY5Mi17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjkzOlx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgKm1yZXMgPSBcdTAwMjZtdmRldi1cdTAwM2VtcmVzO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY5NC1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzA0LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcwNTp2b2lkIG1seDVfdmRwYV9wdXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcwNjpcdFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzA3LXtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MDgtXHRtdXRleF9sb2NrKFx1MDAyNm12ZGV2LVx1MDAzZW1yZXMubG9jayk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzA5Olx0X21seDVfdmRwYV9wdXRfbXIobXZkZXYsIG1yKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MTAtXHRtdXRleF91bmxvY2soXHUwMDI2bXZkZXYtXHUwMDNlbXJlcy5sb2NrKTtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzEyLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcxMzpzdGF0aWMgdm9pZCBfbWx4NV92ZHBhX2dldF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzE0Olx0XHRcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcxNS17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcyMS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MjI6dm9pZCBtbHg1X3ZkcGFfZ2V0X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MjM6XHRcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcyNC17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzI1LVx0bXV0ZXhfbG9jayhcdTAwMjZtdmRldi1cdTAwM2VtcmVzLmxvY2spO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcyNjpcdF9tbHg1X3ZkcGFfZ2V0X21yKG12ZGV2LCBtcik7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzI3LVx0bXV0ZXhfdW5sb2NrKFx1MDAyNm12ZGV2LVx1MDAzZW1yZXMubG9jayk7XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcyOS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MzA6dm9pZCBtbHg1X3ZkcGFfdXBkYXRlX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MzE6XHRcdFx0IHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm5ld19tcixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MzItXHRcdFx0IHVuc2lnbmVkIGludCBhc2lkKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTczMy17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzM0Olx0c3RydWN0IG1seDVfdmRwYV9tciAqb2xkX21yID0gbXZkZXYtXHUwMDNlbXJlcy5tclthc2lkXTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MzUtXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTczNy1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3Mzg6XHRfbWx4NV92ZHBhX3B1dF9tcihtdmRldiwgb2xkX21yKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MzktXHRtdmRldi1cdTAwM2VtcmVzLm1yW2FzaWRdID0gbmV3X21yO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NDMtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzQ0OnN0YXRpYyB2b2lkIG1seDVfdmRwYV9zaG93X21yX2xlYWtzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NDUte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc0NjpcdHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc0Ny1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzUxLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc1MjpcdFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFwmIzM0O21rZXkgc3RpbGwgYWxpdmUgYWZ0ZXIgcmVzb3VyY2UgZGVsZXRlOiBcJiMzNDtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NTMtXHRcdFx0XHQgICAgICBcJiMzNDttcjogJXAsIG1rZXk6IDB4JXgsIHJlZmNvdW50OiAldVxcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzYwLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc2MTp2b2lkIG1seDVfdmRwYV9jbGVhbl9tcnMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc2Mi17XG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc2Ni1cdGZvciAoaW50IGkgPSAwOyBpIFx1MDAzYyBNTFg1X1ZEUEFfTlVNX0FTOyBpJiM0MzsmIzQzOylcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3Njc6XHRcdG1seDVfdmRwYV91cGRhdGVfbXIobXZkZXYsIE5VTEwsIGkpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc2OC1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzcwLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc3MTpcdG1seDVfdmRwYV9zaG93X21yX2xlYWtzKG12ZGV2KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NzItfVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc3My1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3NzQ6c3RhdGljIGludCBfbWx4NV92ZHBhX2NyZWF0ZV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6Nzc1Olx0XHRcdFx0c3RydWN0IG1seDVfdmRwYV9tciAqbXIsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzc2LVx0XHRcdFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYilcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODEzLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjgxNDpzdHJ1Y3QgbWx4NV92ZHBhX21yICptbHg1X3ZkcGFfY3JlYXRlX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MTUtXHRcdFx0XHRcdCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTgxNi17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODE3Olx0c3RydWN0IG1seDVfdmRwYV9tciAqbXI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODE4LVx0aW50IGVycjtcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODI0LVx0bXV0ZXhfbG9jayhcdTAwMjZtdmRldi1cdTAwM2VtcmVzLmxvY2spO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjgyNTpcdGVyciA9IF9tbHg1X3ZkcGFfY3JlYXRlX21yKG12ZGV2LCBtciwgaW90bGIpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTgyNi1cdG11dGV4X3VubG9jayhcdTAwMjZtdmRldi1cdTAwM2VtcmVzLmxvY2spO1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MzktXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODQwOmludCBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODQxLVx0XHRcdFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYixcbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODU4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg1OTppbnQgbWx4NV92ZHBhX2NyZWF0ZV9kbWFfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2MC17XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODYxOlx0c3RydWN0IG1seDVfdmRwYV9tciAqbXI7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODYyLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg2MzpcdG1yID0gbWx4NV92ZHBhX2NyZWF0ZV9tcihtdmRldiwgTlVMTCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODY0LVx0aWYgKElTX0VSUihtcikpXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2Ni1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4Njc6XHRtbHg1X3ZkcGFfdXBkYXRlX21yKG12ZGV2LCBtciwgMCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODY4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg2OTpcdHJldHVybiBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihtdmRldiwgTlVMTCwgMCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODcwLX1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzEtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODcyOmludCBtbHg1X3ZkcGFfcmVzZXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1bnNpZ25lZCBpbnQgYXNpZClcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzMte1xuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzYtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODc3Olx0bWx4NV92ZHBhX3VwZGF0ZV9tcihtdmRldiwgTlVMTCwgYXNpZCk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODc4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg3OS1cdGlmIChhc2lkID09IDAgXHUwMDI2XHUwMDI2IE1MWDVfQ0FQX0dFTihtdmRldi1cdTAwM2VtZGV2LCB1bWVtX3VpZF8wKSkge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg4MDpcdFx0aWYgKG1seDVfdmRwYV9jcmVhdGVfZG1hX21yKG12ZGV2KSlcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4ODE6XHRcdFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFwmIzM0O2NyZWF0ZSBETUEgTVIgZmFpbGVkXFxuXCYjMzQ7KTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04ODItXHR9IGVsc2Uge1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg4MzpcdFx0bWx4NV92ZHBhX3VwZGF0ZV9jdnFfaW90bGIobXZkZXYsIE5VTEwsIGFzaWQpO1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg4NC1cdH1cbi0tXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODg4LVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg4OTppbnQgbWx4NV92ZHBhX2luaXRfbXJfcmVzb3VyY2VzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldilcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTAte1xuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg5MTpcdHN0cnVjdCBtbHg1X3ZkcGFfbXJfcmVzb3VyY2VzICptcmVzID0gXHUwMDI2bXZkZXYtXHUwMDNlbXJlcztcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTItXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODkzOlx0bXJlcy1cdTAwM2V3cV9nYyA9IGNyZWF0ZV9zaW5nbGV0aHJlYWRfd29ya3F1ZXVlKFwmIzM0O21seDVfdmRwYV9tcl9nY1wmIzM0Oyk7XG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODk0LVx0aWYgKCFtcmVzLVx1MDAzZXdxX2djKVxuLS1cbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTYtXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODk3Olx0SU5JVF9ERUxBWUVEX1dPUksoXHUwMDI2bXJlcy1cdTAwM2VnY19kd29ya19lbnQsIG1seDVfdmRwYV9tcl9nY19oYW5kbGVyKTtcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTgtXG4tLVxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTkwNi1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxOTE0NAoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDMwMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGxpY2F0aW9ucyBvZiBhIFN5emJvdC1UZXN0ZWQgTUxYNSBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gdGhlIHBhdGNoIGlzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gVGhhdCYjMzk7cyB0aGUgY29yZSBFdGhlcm5ldCBkcml2ZXIgZm9yIHRoZSBNTFg1IGhhcmR3YXJlLCBnb3QgaXQuIEFuZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24sIGBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2YCwgaGludHMgYXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIE1QViBmZWF0dXJlIG9yIHNvbWUgc29ydCBvZiBkZXZpY2UgY29tbXVuaWNhdGlvbiBldmVudCBoYW5kbGluZy4gQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gaXMgdGhpcyBldmVuICpyZWFjaGFibGUqIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IE5vcm1hbGx5LCB0aGVzZSBoYXJkd2FyZSBkcml2ZXJzIGFyZSBjb21wbGV0ZWx5IGluYWNjZXNzaWJsZSBpbiBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSB1bmxlc3MgeW91IGhhdmUgYSBlbXVsYXRlZCBQQ0kgZGV2aWNlLiBBbmQsIGFzIGZhciBhcyBJIGtub3csIHRoZXJlIGlzbiYjMzk7dCBhbiBNTFg1IGVtdWxhdG9yIGluIFFFTVUgb3IgdGhlIGtlcm5lbC4KCk5vdywgd2FpdC4uLiBzeXpib3QgdXNlcyBRRU1VIGFuZCBHQ0UsIGRvZXNuJiMzOTt0IGl0PyBBbmQgU3l6a2FsbGVyIGRlZmluaXRlbHkgZG9lc24mIzM5O3QgaGF2ZSBhbiBNTFg1IGVtdWxhdG9yLiBIbW0uLi4gdGhlIGNvbW1pdCBtZXNzYWdlIHNheXMgJiMzNDtzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcmIzM0Oy4gVGhpcyBtZWFucyBzb21lb25lIHN1Ym1pdHRlZCB0aGUgcGF0Y2gsIGFuZCBzeXpib3QmIzM5O3MgcnVubmluZyB0ZXN0cyBvbiBpdC4gVGhhdCYjMzk7cyBnb29kLCBidXQgaG93IGlzIHRoaXMgZXZlbiAqcG9zc2libGUqPyBJZiB0aGUgcGF0Y2ggaXMgaW4gYSBoYXJkd2FyZSBkcml2ZXIgdGhhdCBpc24mIzM5O3QgYWNjZXNzaWJsZSwgc3l6Ym90IHNob3VsZG4mIzM5O3QgYmUgYWJsZSB0byBmdXp6IGl0ISAKCkkgbmVlZCB0byBkaWcgZGVlcGVyLiBJIGhhdmUgdG8gY2hlY2sgaWYgdGhlIGBtbHg1YCBkcml2ZXIgaXMgZXZlbiByZWFjaGFibGUuIElzIHRoZXJlICphbnkqIGBtbHg1YCBkZXZpY2UgZW11bGF0aW9uPyBDYW4gaXQgYmUgaW5zdGFudGlhdGVkIHZpYSBuZXRkZXZzaW0gb3Igc29tZXRoaW5nPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgc3l6Ym90JiMzOTtzIHRlc3RpbmcgdGhpcy4gVGhpcyBpcyBhbiBpbnRlcmVzdGluZyBjb251bmRydW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWx4NSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL2RyaXZlcnMvbmV0L21seHN3LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5ODQyCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIHByZXNlbnRlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipJbnZlc3RpZ2F0aW5nIERyaXZlciBEaWZmZXJlbnRpYXRpb24qKgoKSG1tLCBob2xkIG9uIGEgc2Vjb25kLiBNeSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIG9mZi4gYG1seHN3YCBpcyBhIGRpc3RpbmN0IGRyaXZlciwgaXNuJiMzOTt0IGl0PyBPa2F5LCBzbyB0aGF0IG1lYW5zIHRoZSBhcHByb2FjaCBJIHdhcyB0aGlua2luZyBhYm91dCBlYXJsaWVyIGxpa2VseSB3b24mIzM5O3QgYXBwbHkgZGlyZWN0bHkuIEkgbmVlZCB0byBiZSBtb3JlIHByZWNpc2UgaW4gbXkgaW52ZXN0aWdhdGlvbi4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoZSBzaW11bGF0ZWQgbmV0d29ya2luZyBlbnZpcm9ubWVudCBpcyB3aGF0IEkmIzM5O20gaW50ZXJlc3RlZCBpbiwgdG8gc3RhcnQuIFRvIGNsYXJpZnkgbXkgbWVudGFsIG1vZGVsLCBJIHNob3VsZCBwcm9iYWJseSBjaGVjayBmb3IgYW55IHJlbGV2YW50IGBtbHg1YCBjb21wb25lbnRzIGluIHRoZSBgZHJpdmVycy9uZXQvbmV0ZGV2c2ltL2AgZGlyZWN0b3J5LiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0LCBnaXZlbiB0aGUgY29udGV4dC4gSSYjMzk7bSBsb29raW5nIGZvciBzaW11bGF0ZWQgbmV0d29yayBkZXZpY2UgZHJpdmVycyBhbmQgSSBuZWVkIHRvIGVzdGFibGlzaCB0aGUgcmVsYXRpb25zaGlwcyB3aXRoaW4gdGhhdCBzaW11bGF0ZWQgZHJpdmVyLiBMZXQmIzM5O3MgZGlnIGluIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21seDUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9uZXRkZXZzaW0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjAxMTEKCQkJCQkJCW91dHB1dDogNDAKCQkJCQkJCXRob3VnaHRzOiAxNzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgbWx4NSBEcml2ZXI6IEEgUmVhbGl0eSBDaGVjayoqCgpPa2F5LCBsZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb2J2aW91cyB0YXJnZXRzIGZvciBmdXp6aW5nIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AuIEkmIzM5O20gc3BlY2lmaWNhbGx5IGludGVyZXN0ZWQgaW4gYW55dGhpbmcgdGhhdCBoYW5kbGVzIGV4dGVybmFsIGlucHV0IG9yIHBvdGVudGlhbGx5IGhhcyBjb21wbGV4IHN0YXRlIHRyYW5zaXRpb25zLiBBaCwgaGVyZSYjMzk7cyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtbHg1X2RldmNvbV9zZW5kX2V2ZW50YC4gVGhhdCBzZWVtcyBsaWtlIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byBpbnZlc3RpZ2F0ZS4KCkJ1dCB3YWl0LCBhIHF1aWNrIHJlYWxpdHkgY2hlY2sgaXMgaW4gb3JkZXIuIFRoaXMgaXMgdGhlIE1lbGxhbm94IENvbm5lY3RYIGNvcmUgZHJpdmVyLCBhbmQgbXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGl0JiMzOTtzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgaGFyZHdhcmUuIFRoYXQgbWFrZXMgaXQgbW9yZSBjaGFsbGVuZ2luZyB0byB3b3JrIHdpdGguIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYCByZXF1aXJlcyBhIHBoeXNpY2FsIFBDSSBkZXZpY2Ug4oCTIENvbm5lY3RYLTQvNS82Lzcgc3BlY2lmaWNhbGx5IOKAkyB0byBmdW5jdGlvbi4gV2l0aG91dCB0aGF0IGhhcmR3YXJlIHByZXNlbnQsIHRoZSBgcHJvYmVgIGZ1bmN0aW9uIHdpbGwgbmV2ZXIgZXZlbiBiZSBjYWxsZWQuIENvbnNlcXVlbnRseSwgbm9uZSBvZiB0aGUgY29kZSB3aXRoaW4gd2lsbCBleGVjdXRlLgoKU28sIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgcHJvYmVgIGZ1bmN0aW9uIGFuZCBob3cgaXQgd29ya3MuIFRoYXQmIzM5O3MgdGhlIHJlYWwgZW50cnkgcG9pbnQgSSBuZWVkIHRvIGZvY3VzIG9uLiBMb29rcyBsaWtlIEkmIzM5O20gZ29pbmcgdG8gbmVlZCB0byBsb29rIGF0IGhvdyB0byBlbXVsYXRlIHRoZSBoYXJkd2FyZSB0byBnZXQgYW55d2hlcmUgdXNlZnVsIGluIGEgZnV6emluZyBzY2VuYXJpby4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGNpX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYz0yMjQxPWludCBtbHg1X3JlY292ZXJfZGV2aWNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yMjUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyMjUyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBtbHg1X2NvcmVfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yMjUzLVx0Lm5hbWUgICAgICAgICAgID0gS0JVSUxEX01PRE5BTUUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIwNzgwCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogNTM4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0aCB0byBhIFBvdGVudGlhbCBWdWxuZXJhYmlsaXR5KioKCk9rYXksIHNvIHdlJiMzOTtyZSBsb29raW5nIGF0IGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IHNvbWV0aGluZyByZWxhdGVkIHRvIE1lbGxhbm94IENvbm5lY3RYIGhhcmR3YXJlLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFsd2F5cywgJiMzNDtDYW4gUUVNVSBoZWxwIG1lIGhlcmU/JiMzNDsgSSBrbm93IFFFTVUgcHJldHR5IHdlbGw7IGl0IGhhcyB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIGVtdWxhdGVkIE5JQ3MgbGlrZSBgZTEwMDBgLCBgdmlydGlvLW5ldGAsIGFuZCB0aGUgcmVzdC4gQnV0IGRvZXMgaXQgZW11bGF0ZSBhbnkgTWVsbGFub3ggQ29ubmVjdFggdmVyc2lvbnMgbGlrZSB0aGUgNCwgNSwgNiwgb3IgNz8gTm8sIG5vdCBkaXJlY3RseS4gSSByZWNhbGwgc29tZSByZWNlbnQgYWRkaXRpb25zLCBidXQgYG1seDVgIGlzIG5vdCBhbW9uZyB0aGVtLgoKVGhlIG5leHQgdGhvdWdodCBpcyBhbHdheXMgU3l6a2FsbGVyLiBEb2VzIGl0IG9mZmVyIGEgYmFja2Rvb3I/IERvZXMgU3l6a2FsbGVyIGhhdmUgYW55IHdheSB0byByZWFjaCBpdD8KClN5emthbGxlciB1c2VzIGBzeXotZXhlY3V0b3JgLiBDYW4gaXQgaW5qZWN0IFBDSSBkZXZpY2VzPyBXaXRoIGVpdGhlciBgdmhjaWAgb3IgYHZmaW9gPyBObywgU3l6a2FsbGVyIGRvZXNuJiMzOTt0IGVtdWxhdGUgYXJiaXRyYXJ5IFBDSSBkZXZpY2VzIGluIGEgZ2VuZXJpYyB3YXkuIEl0IGNhbiBmdXp6IFBDSSBmdW5jdGlvbmFsaXR5IHVzaW5nIGBzeXpfcGNpX2RldmljZWAsICppZiogUENJIGZ1enppbmcgaXMgZW5hYmxlZC4gV2FpdCwgU3l6a2FsbGVyICpkb2VzKiBoYXZlIFBDSSBmdXp6aW5nISBJbnRlcmVzdGluZy4uLgoKU28sIFN5emthbGxlciBjYW4gZW11bGF0ZSBQQ0kgZGV2aWNlcywgYnV0IGhvdz8gVXNpbmcgdGhlIGBzeXpfcGNpX2RldmljZWAgcHNldWRvLXN5c2NhbGwuIFRoYXQgaW5qZWN0cyBQQ0kgZGV2aWNlcywgYnV0IGhvdz8gVmlydHVhbCBQQ0kgaG9zdCBjb250cm9sbGVyLCByYXcgUENJIGluamVjdGlvbiwgb3IgdXNlci1zcGFjZSBQQ0kgZW11bGF0aW9uPyBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0LiBXYWl0LCB0aGUgYHN5el9wY2lgIG1lY2hhbmlzbS4gRG9lcyB0aGF0IHVzZSBgdmZpb2Agb3Igc2ltaWxhcj8gTm8sIFN5emthbGxlciYjMzk7cyBQQ0kgZnV6emVyIGluIFFFTVUgY29uZmlndXJlcyBQQ0kgY29uZmlnIHNwYWNlLCBNTUlPL1BJTyBpbiBRRU1VPyBObywgaXQgdXNlcyBhIGN1c3RvbSBQQ0kgZGV2aWNlIGluIFFFTVUgb3IgYSBzb2Z0d2FyZSBQQ0kgaG9zdCBicmlkZ2UuIE9rYXksIHRoYXQmIzM5O3Mgd2hhdCYjMzk7cyBpbXBvcnRhbnQuCgpUaGUgY29yZSBxdWVzdGlvbiBub3c6IGNhbiBTeXprYWxsZXIgZnV6eiBQQ0kgZHJpdmVycywgKmluIGdlbmVyYWwqPyBZZXMsIGl0IGNhbiEgSXQgaGFzIGEgYHN5el9wY2lgIHN1YnN5c3RlbSBzcGVjaWZpY2FsbHkgZm9yIHRoaXMgcHVycG9zZS4gRXhjZWxsZW50LiBUaGF0JiMzOTtzIGEgaHVnZSBwb3NpdGl2ZSBpbmRpY2F0b3IuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZXN0YWJsaXNoIHNvbWUgcHJlLWNvbmRpdGlvbnMuIEFyZSBgQ09ORklHX1BDSWAgYW5kIGBDT05GSUdfTUxYNV9DT1JFYCBlbmFibGVkIHdpdGhpbiBTeXprYWxsZXImIzM5O3MgY29uZmlndXJhdGlvbj8gSWYgYm90aCBhcmUgZW5hYmxlZCwgdGhlbiB0aGlzIGNvZGUgcGF0aCAqbWlnaHQqIGJlIHJlYWNoYWJsZSBieSB0aGUgZnV6emVyLiBJdCYjMzk7cyBhIGtleSBmaXJzdCBzdGVwLgoKVGhlIHRhcmdldCBpcyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAuIElzIHRoYXQgZnVuY3Rpb24gcmVhY2hhYmxlPyBJdCYjMzk7cyB0aGUgb25lIG1vZGlmaWVkIGJ5IHRoZSBwYXRjaCwgc28gaWYgd2UgY2FuIHJlYWNoIGl0LCBpdCB3aWxsIGJlIHJlYWNoYWJsZS4KCk5vdywgd2hlcmUgaXMgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgIGxvY2F0ZWQ/IEl0JiMzOTtzIGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gTGV0JiMzOTtzIGhhdmUgYSBsb29rLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMDAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDIwMDpcdFxuIDIwMTpcdHN0YXRpYyB2b2lkIG1seDVlX2VuYWJsZV9hc3luY19ldmVudHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXG4gMjAyOlx0e1xuIDIwMzpcdFx0cHJpdi1cdTAwM2VldmVudHNfbmIubm90aWZpZXJfY2FsbCA9IGFzeW5jX2V2ZW50O1xuIDIwNDpcdFx0bWx4NV9ub3RpZmllcl9yZWdpc3Rlcihwcml2LVx1MDAzZW1kZXYsIFx1MDAyNnByaXYtXHUwMDNlZXZlbnRzX25iKTtcbiAyMDU6XHR9XG4gMjA2Olx0XG4gMjA3Olx0c3RhdGljIHZvaWQgbWx4NWVfZGlzYWJsZV9hc3luY19ldmVudHMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXG4gMjA4Olx0e1xuIDIwOTpcdFx0bWx4NV9ub3RpZmllcl91bnJlZ2lzdGVyKHByaXYtXHUwMDNlbWRldiwgXHUwMDI2cHJpdi1cdTAwM2VldmVudHNfbmIpO1xuIDIxMDpcdH1cbiAyMTE6XHRcbiAyMTI6XHRzdGF0aWMgaW50IG1seDVlX2RldmNvbV9ldmVudF9tcHYoaW50IGV2ZW50LCB2b2lkICpteV9kYXRhLCB2b2lkICpldmVudF9kYXRhKVxuIDIxMzpcdHtcbiAyMTQ6XHRcdHN0cnVjdCBtbHg1ZV9wcml2ICptYXN0ZXJfcHJpdiA9IGV2ZW50X2RhdGE7XG4gMjE1Olx0XG4gMjE2Olx0XHRzd2l0Y2ggKGV2ZW50KSB7XG4gMjE3Olx0XHRjYXNlIE1QVl9ERVZDT01fTUFTVEVSX1VQOlxuIDIxODpcdFx0XHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShtYXN0ZXJfcHJpdi1cdTAwM2VkZXZjb20sIHRydWUpO1xuIDIxOTpcdFx0XHRicmVhaztcbiAyMjA6XHRcdGNhc2UgTVBWX0RFVkNPTV9NQVNURVJfRE9XTjpcbiAyMjE6XHRcdFx0Lyogbm8gbmVlZCBmb3IgY29tcCBzZXQgcmVhZHkgZmFsc2Ugc2luY2Ugd2UgdW5yZWdpc3RlciBhZnRlclxuIDIyMjpcdFx0XHQgKiBhbmQgaXQgaHVydHMgY2xlYW51cCBmbG93LlxuIDIyMzpcdFx0XHQgKi9cbiAyMjQ6XHRcdFx0YnJlYWs7XG4gMjI1Olx0XHRjYXNlIE1QVl9ERVZDT01fSVBTRUNfTUFTVEVSX1VQOlxuIDIyNjpcdFx0Y2FzZSBNUFZfREVWQ09NX0lQU0VDX01BU1RFUl9ET1dOOlxuIDIyNzpcdFx0XHRtbHg1ZV9pcHNlY19oYW5kbGVfbXB2X2V2ZW50KGV2ZW50LCBteV9kYXRhLCBldmVudF9kYXRhKTtcbiAyMjg6XHRcdFx0YnJlYWs7XG4gMjI5Olx0XHR9XG4gMjMwOlx0XG4gMjMxOlx0XHRyZXR1cm4gMDtcbiAyMzI6XHR9XG4gMjMzOlx0XG4gMjM0Olx0c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcbiAyMzU6XHR7XG4gMjM2Olx0XHRzdHJ1Y3QgbWx4NV9kZXZjb21fbWF0Y2hfYXR0ciBhdHRyID0ge1xuIDIzNzpcdFx0XHQua2V5LnZhbCA9ICpkYXRhLFxuIDIzODpcdFx0fTtcbiAyMzk6XHRcbiAyNDA6XHRcdHByaXYtXHUwMDNlZGV2Y29tID0gbWx4NV9kZXZjb21fcmVnaXN0ZXJfY29tcG9uZW50KHByaXYtXHUwMDNlbWRldi1cdTAwM2Vwcml2LmRldmMsXG4gMjQxOlx0XHRcdFx0XHRcdFx0ICAgICAgTUxYNV9ERVZDT01fTVBWLFxuIDI0MjpcdFx0XHRcdFx0XHRcdCAgICAgIFx1MDAyNmF0dHIsXG4gMjQzOlx0XHRcdFx0XHRcdFx0ICAgICAgbWx4NWVfZGV2Y29tX2V2ZW50X21wdixcbiAyNDQ6XHRcdFx0XHRcdFx0XHQgICAgICBwcml2KTtcbiAyNDU6XHRcdGlmICghcHJpdi1cdTAwM2VkZXZjb20pXG4gMjQ2Olx0XHRcdHJldHVybiAtRUlOVkFMO1xuIDI0NzpcdFxuIDI0ODpcdFx0aWYgKG1seDVfY29yZV9pc19tcF9tYXN0ZXIocHJpdi1cdTAwM2VtZGV2KSkge1xuIDI0OTpcdFx0XHRtbHg1X2RldmNvbV9zZW5kX2V2ZW50KHByaXYtXHUwMDNlZGV2Y29tLCBNUFZfREVWQ09NX01BU1RFUl9VUCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3NzkKCQkJCQkJCW91dHB1dDogNTIKCQkJCQkJCXRob3VnaHRzOiAzOTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgIFJlYWNoYWJpbGl0eSoqCgpPa2F5LCBzbyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAgaXMgcmVnaXN0ZXJlZCB1c2luZyBgbWx4NV9kZXZjb21fcmVnaXN0ZXJfY29tcG9uZW50YC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgY29kZSBwYXRoIGFjdHVhbGx5IGJlIGV4ZWN1dGVkPyBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgc3l6a2FsbGVyIGNvdWxkIGJlIHVzZWQgdG8gdHJpZ2dlciB0aGUgcHJvYmUgb2YgdGhlIGBtbHg1X2NvcmVfZHJpdmVyYCBiZWNhdXNlIGl0IGNhbiBmdXp6IFBDSSBkZXZpY2VzLiBCdXQgaG9sZCBvbiwgdGhlIGBtbHg1X2NvcmVgIGRyaXZlciBpcyBpbmNyZWRpYmx5IGNvbXBsZXguIERvZXMgc3l6a2FsbGVyIGV2ZW4gdGFyZ2V0IGl0IHNwZWNpZmljYWxseSwgb3IgYW0gSSBqdXN0IGxvb2tpbmcgYXQgZ2VuZXJpYyBQQ0kgZnV6emluZz8KCkxldCBtZSBjaGVjay4gRG9lcyBzeXprYWxsZXIgaGF2ZSB0YWlsb3JlZCBkZXNjcmlwdGlvbnMgZm9yIGBtbHg1YCwgb3IgaXMgaXQganVzdCByZWx5aW5nIG9uIHRoZSBnZW5lcmFsIGBzeXpfcGNpX2RldmljZWAgYXBwcm9hY2g/IFJpZ2h0LCBnZW5lcmljIGZ1enppbmcgaW52b2x2ZXMgdXNpbmcgYHN5el9wY2lfZGV2aWNlYCwgcHJvdmlkaW5nIHZlbmRvci9kZXZpY2UgSURzIHRvIG1hdGNoIHRoZSBoYXJkd2FyZSwgYW5kIHRoZW4gZnV6emluZyBNTUlPL1BJTyByZWdpb25zLgoKTm93LCB0aGlzIHByb21wdCBkb2VzIHNwZWNpZnkgdGhhdCBJIHNob3VsZCBtYXJrIHNvbWV0aGluZyBhcyBub3Qgd29ydGggZnV6emluZyBpZiBjb2RlIHBhdGhzIGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwgZXZlbiB3aXRoIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLiBJcyBgbWx4NWAgZXZlbiBhY2Nlc3NpYmxlIGluIGEgdmlydHVhbGl6ZWQgY29udGV4dD8gTm8gc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZm9yIGBtbHg1YCBleGlzdHMgaW4gdGhlIGtlcm5lbCwgbGlrZSBgbWFjODAyMTFfaHdzaW1gIG9yIGB1c2IgZ2FkZ2V0YC4gQW5kIGRlZmluaXRlbHkgbm90IHdpdGggYG5ldGRldnNpbWAuIFdoYXQgYWJvdXQgUUVNVT8gTm9wZSwgbm8gYG1seDVgIGVtdWxhdG9yIGluIFFFTVUuCgpCdXQgd2FpdCBhIG1pbnV0ZSwgdGhlIFBDSSBmdXp6ZXIgKmNhbiogdHJpZ2dlciBQQ0kgcHJvYmUgZnVuY3Rpb25zISBIb3dldmVyLCB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMgd2hldGhlciBpdCBjYW4gcGVuZXRyYXRlIHRoZSBkcml2ZXImIzM5O3MgY29yZSBsb2dpYy4gVGhlIFBDSSBmdXp6ZXIgaXMgZmVlZGluZyByYW5kb20gZGF0YSB0byB0aGUgTU1JTyByZWFkcy4gVGhlIGRyaXZlciB3aWxsIHJlYWQgZnJvbSBNTUlPIGFuZCByZWNlaXZlIHJhbmRvbSBkYXRhLCB3aGljaCB3aWxsIGxpa2VseSBjYXVzZSBhbiBlYXJseSBpbml0aWFsaXphdGlvbiBmYWlsdXJlLiBTbyBJIHNob3VsZCBub3cgY2hlY2sgd2hlcmUgYG1seDVlX2RldmNvbV9pbml0X21wdmAgaXMgY2FsbGVkLCB0byBkZXRlcm1pbmUgaG93IGRlZXAgdGhpcyBnb2VzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1ZV9kZXZjb21faW5pdF9tcHYmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9MjEyPXN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yMzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjIzNDpzdGF0aWMgaW50IG1seDVlX2RldmNvbV9pbml0X21wdihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgdTY0ICpkYXRhKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yMzUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9MjcyPXN0YXRpYyBpbnQgYmxvY2tpbmdfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4Ni1cdGNhc2UgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6Mjg3Olx0XHRpZiAobWx4NWVfZGV2Y29tX2luaXRfbXB2KHByaXYsIGRhdGEpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODgtXHRcdFx0cmV0dXJuIE5PVElGWV9CQUQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0MDA4CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogNjYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FIEV2ZW50KioKCk9rYXksIHNvIEkmIzM5O20gZGlnZ2luZyBpbnRvIHRoaXMgYGJsb2NraW5nX2V2ZW50YCBmdW5jdGlvbiBjYWxsLCBzcGVjaWZpY2FsbHkgdHJpZ2dlcmVkIGJ5IHRoZSBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgZXZlbnQuIFJpZ2h0LCBzbyB3ZSBrbm93IHRoaXMgZXZlbnQgb3JpZ2luYXRlcyBmcm9tIHRoZSBtbHg1IGNvcmUgZHJpdmVyIOKAkyB3aGljaCBtYWtlcyBzZW5zZS4gTm93LCB0aGUgbmV4dCBsb2dpY2FsIHN0ZXAgaXMgdG8gcGlucG9pbnQgd2hlcmUgKmV4YWN0bHkqIHRoaXMgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGlzIGJlaW5nIGdlbmVyYXRlZCB3aXRoaW4gdGhhdCBkcml2ZXIuIFRpbWUgdG8gdHJhY2UgdGhhdCBiYWNrIQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTI3Mj1zdGF0aWMgaW50IGJsb2NraW5nX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODUtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyODY6XHRjYXNlIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkU6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4Ny1cdFx0aWYgKG1seDVlX2RldmNvbV9pbml0X21wdihwcml2LCBkYXRhKSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjQ0MjQKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiAxNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEZWJ1Z2dpbmcgdGhlIEdlbmVyYXRpb24gUHJvY2VzcyoqCgpBbHJpZ2h0LCB0aGUgb3V0cHV0JiMzOTtzIHRoZXJlLCBidXQgKndoZXJlKiBpcyBpdCBiZWluZyBjb25qdXJlZD8gQSBxdWljayBjaGVjayBvbiB0aGUgb2J2aW91cyBjYW5kaWRhdGUgb3V0cHV0cyBkaWQgbm90IGV4cG9zZSB3aGVyZSB0aGUgdGV4dCBpcyBjcmVhdGVkLiBUaGlzIHNlZW1zIHVuZXhwZWN0ZWQuIE9rYXksIEkmIzM5O2xsIG5lZWQgdG8gZXhwYW5kIG15IHNlYXJjaC4gVGltZSB0byBkbyBhIGZ1bGwtdGV4dCBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwuIExldCYjMzk7cyBkaWcgaW4gYW5kIGZpbmQgdGhpcyBnZW5lcmF0aW9uIHBvaW50LiBJJiMzOTtsbCBuZWVkIHRvIHRyYWNlIHRoZSBkYXRhIGZsb3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMzPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O01MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jPTM5NDQ9c3RhdGljIGJvb2wgbWx4NV9pYl9iaW5kX3NsYXZlX3BvcnQoc3RydWN0IG1seDVfaWJfZGV2ICppYmRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzk3OC1cdG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkobXBpLVx1MDAzZW1kZXYsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzk3OTpcdFx0XHRcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORSxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgwLVx0XHRcdFx0ICBcdTAwMjZrZXkpO1xuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5ODEtXHRtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KGliZGV2LVx1MDAzZW1kZXYsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzk4MjpcdFx0XHRcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORSxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgzLVx0XHRcdFx0ICBcdTAwMjZrZXkpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9MjcyPXN0YXRpYyBpbnQgYmxvY2tpbmdfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4NS1cdFx0YnJlYWs7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjI4NjpcdGNhc2UgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORTpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjg3LVx0XHRpZiAobWx4NWVfZGV2Y29tX2luaXRfbXB2KHByaXYsIGRhdGEpKVxuLS1cbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaD0zNjg9ZW51bSBtbHg1X2RyaXZlcl9ldmVudCB7XG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oLTM3My1cdE1MWDVfRFJJVkVSX0VWRU5UX1NGX1BFRVJfREVWTElOSyxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaDozNzQ6XHRNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oLTM3NS1cdE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX1JFTU9WRUQsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjMzPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1MTUwCgkJCQkJCQlvdXRwdXQ6IDM4CgkJCQkJCQl0aG91Z2h0czogMzUzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEFuYWx5c2lzIG9mIHRoZSBtbHg1IEluZmluaWJhbmQgRHJpdmVyIENvbnRleHQqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgY29kZSwgc3BlY2lmaWNhbGx5IGluIGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNgLiBOYXR1cmFsbHksIHRoaXMgc2NyZWFtcyBJbmZpbmliYW5kIGFuZCBNZWxsYW5veCBoYXJkd2FyZSAoYG1seDVgKSB0byBtZS4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgZG9lcyB0aGlzIHJlbHkgKnNvbGVseSogb24gdGhlIHBoeXNpY2FsIGhhcmR3YXJlPyBJcyB0aGVyZSBhbnkgc29mdHdhcmUgZW11bGF0aW9uIG9mIHRoZSBgbWx4NWAgZGV2aWNlPyBNeSBpbml0aWFsIHRob3VnaHQgZ29lcyB0byBgdmRwYWAgLSBJIHJlY2FsbCBzZWVpbmcgYGRyaXZlcnMvdmRwYS9tbHg1L2AuIEhvd2V2ZXIsIGB2ZHBhYCBpcyBqdXN0IGEgKmZyYW1ld29yayogZm9yIHZpcnRpbyBkYXRhIHBhdGggYWNjZWxlcmF0aW9uLiBTcGVjaWZpY2FsbHksIGBtbHg1X3ZkcGFgIGlzIGEgZHJpdmVyIHRoYXQgbGV2ZXJhZ2VzIE1lbGxhbm94IGhhcmR3YXJlIHRvIGFjY2VsZXJhdGUgdmlydGlvOyBpdCAqc3RpbGwqIGZ1bmRhbWVudGFsbHkgZGVwZW5kcyBvbiB0aGUgcGh5c2ljYWwgTWVsbGFub3ggaGFyZHdhcmUgKGBtbHg1X2NvcmVfZGV2YCkuIFNvLCBubywgbm8gc29mdHdhcmUgZW11bGF0aW9uIGluIHRoaXMgY29udGV4dC4gVGhhdCYjMzk7cyB0aGUgYmFzZWxpbmUuCgpOb3csIHdhaXQgYSBtaW51dGUuLi5zeXpib3QgdGVzdGVkIHRoaXMgcGF0Y2g/IEhvdyBkaWQgKnRoYXQqIGhhcHBlbj8gSSBuZWVkIHRvIGNsYXJpZnkgd2hhdCB0aGF0IG1lYW5zLiBUaGUgY29tbWl0IG1lc3NhZ2UganVzdCBzYXlzLCAmIzM0O3N5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldyYjMzQ7LiBUaGF0JiMzOTtzIGEgKnN0YW5kYXJkKiBzeXpib3QgbWVzc2FnZSwgaW5kaWNhdGluZyB0aGUgcGF0Y2ggd2FzIHN1Ym1pdHRlZCBmb3IgdGVzdGluZy4gSXQgZG9lc24mIzM5O3QgbWVhbiBzeXpib3QgYWN0dWFsbHkgZXhlY3V0ZWQgdGhlIGNvZGUgb3IgZm91bmQgYSBidWcuIEl0IHNpbXBseSBtZWFucyBzb21lb25lLCBsaWtlbHkgdmlhIGEgYCNzeXogdGVzdGAgY29tbWFuZCwgcmVxdWVzdGVkIHN5emJvdCB0byBjaGVjayB0aGUgcGF0Y2guCgpDcnVjaWFsbHksIGlmIHRoZSBjb2RlIHBhdGggaXMgKnVucmVhY2hhYmxlKiBpbiBzeXpib3QmIzM5O3MgZW52aXJvbm1lbnQgKFFFTVUvR0NFIHdpdGhvdXQgTWVsbGFub3ggaGFyZHdhcmUpLCBzeXpib3Qgd2lsbCBjb21waWxlIHRoZSBjb2RlLCBib290LCBhbmQgcnVuIHNvbWUgYmFzaWMgZnV6emluZywgcmVwb3J0aW5nIGFuIHVuaW5mb3JtYXRpdmUgJiMzNDtPSyYjMzQ7IGJlY2F1c2UgaXQgZGlkbiYjMzk7dCBjcmFzaC4gSXQgaGFzbiYjMzk7dCBhY3R1YWxseSBmdXp6ZWQgdGhlICptb2RpZmllZCogY29kZS4gU28sIHRoZSBzeXpib3QgdGVzdCByZXN1bHQgaXMgaGlnaGx5IHN1c3BlY3QgaGVyZS4KClRvIGJlIGFic29sdXRlbHkgc3VyZSwgSSYjMzk7bGwgbmVlZCB0byBkaWcgZGVlcGVyLiBJIG5lZWQgdG8gbWFrZSAqYWJzb2x1dGVseSogc3VyZSB0aGVyZSYjMzk7cyBubyB3YXkgdGhlIGBtbHg1YCBmdW5jdGlvbmFsaXR5IGNhbiBiZSBzaW11bGF0ZWQsIGV2ZW4gaW4gYSB2ZXJ5IGJhc2ljIHdheS4gTGV0JiMzOTtzIGRvIGEgbW9yZSB0aG9yb3VnaCBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwgc291cmNlIGZvciBhbnkgbWVudGlvbnMgb2YgYG1seDVgIGNvbWJpbmVkIHdpdGggYHNpbWAgb3IgYGR1bW15YC4gVGhhdCB3aWxsIHByb3ZpZGUgY29uZmlybWF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1LipzaW0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTU3MTc9c3RhdGljIGludCBtbHg1ZV9xdWV1ZV9zdG9wKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHZvaWQgKm9sZHEsIGludCBxdWV1ZV9pbmRleClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTcxOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjU3MTk6XHQvKiBJbiBtbHg1IGEgdHhxIGNhbm5vdCBiZSBzaW1wbHkgc3RvcHBlZCBpbiBpc29sYXRpb24sIG9ubHkgcmVzdGFydGVkLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy01NzIwLVx0ICogbWx4NWVfcXVldWVfc3RhcnQgZG9lcyBub3QgZmFpbCwgd2Ugc3RvcCB0aGUgb2xkIHF1ZXVlIHRoZXJlLlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MTgwPXN0YXRpYyBpbnQgaHdzX2J3Y19tYXRjaGVyX21vdmUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMjI1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoyMjY6aW50IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTIyNy1cdFx0XHRcdCAgICAgIHN0cnVjdCBtbHg1aHdzX3RhYmxlICp0YWJsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTMyMD1tbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZShzdHJ1Y3QgbWx4NWh3c190YWJsZSAqdGFibGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNTItXHRlbHNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjM1MzpcdFx0cmV0ID0gbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKGJ3Y19tYXRjaGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNTQtXHRcdFx0XHRcdFx0XHR0YWJsZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM2OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzcwOmludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzcxLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTM4Nz1pbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM5OS1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6NDAwOlx0XHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNDAxLVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NTk2PXN0YXRpYyBpbnQgaHdzX2J3Y19ydWxlX2NudF9kZWNfd2l0aF9zaHJpbmsoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjI4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo2Mjk6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02MzAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NjUzPWludCBtbHg1aHdzX2J3Y19ydWxlX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjYxLVx0ZWxzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo2NjI6XHRcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NjMtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz05ODg9c3RhdGljIGludCBod3NfYndjX3J1bGVfY250X2luY193aXRoX3JlaGFzaChzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDIzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxMDI0OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMDI1LVx0XHRcdFx0ICAgdTMyICptYXRjaF9wYXJhbSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTExMjc9bWx4NWh3c19id2NfcnVsZV9jcmVhdGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTE1OC1cdGVsc2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MTE1OTpcdFx0cmV0ID0gbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKGJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0xMTYwLVx0XHRcdFx0XHRcdCAgICAgcGFyYW1zLVx1MDAzZW1hdGNoX2J1Zixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oPTcwPWludFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo3MTptbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC03Mi1cdFx0XHRcdCAgc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjc4OmludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTc5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg9ODI9dm9pZCBtbHg1aHdzX2J3Y19ydWxlX2ZyZWUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oOjg0OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC04NS1cdFx0XHRcdCAgIHUzMiAqbWF0Y2hfcGFyYW0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaC04OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6OTA6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtOTEtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTM4OD1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXRfZmlyc3Qoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDExOlx0cmV0ID0gbWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGVfc2ltcGxlKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIsIHN1Ym0tXHUwMDNldGJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQxMi1cdFx0XHRcdFx0XHRwcmlvcml0eSwgbWF0Y2hfY3JpdGVyaWEsIG1hc2ssXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQyNy1kZXN0cm95X21hdGNoZXI6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDI4Olx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVx1MDAzZWJ3Y19tYXRjaGVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTQzMz1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLCBpbnQgaWR4LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00ODEtXHQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo0ODI6XHRyZXQgPSBtbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3VibS1cdTAwM2Vid2NfbWF0Y2hlciwgc3VibS1cdTAwM2V0YmwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDgzLVx0XHRcdFx0XHRcdHByaW9yaXR5LCBtYXRjaF9jcml0ZXJpYSwgbWFzayxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDk5LWRlc3Ryb3lfbWF0Y2hlcjpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MDA6XHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUwMS1mcmVlX21hdGNoZXI6XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTUxMT1zdGF0aWMgdm9pZCBod3Nfc3VibWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTIyLVx0aWYgKHN1Ym0tXHUwMDNlYndjX21hdGNoZXIpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MjM6XHRcdG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3VibS1cdTAwM2Vid2NfbWF0Y2hlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTI0LVx0XHRpZiAoaWR4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz03NDk9c3RhdGljIGludCBod3NfY29tcGxleF9zdWJydWxlX2NyZWF0ZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqY21hdGNoZXIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo3ODM6XHRyZXQgPSBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3VicnVsZSwgbWF0Y2hfcGFyYW1zLCBhY3Rpb25zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTc4NC1cdFx0XHRcdFx0ICAgICBmbG93X3NvdXJjZSwgYndjX3F1ZXVlX2lkeCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTc5OT1zdGF0aWMgaW50IGh3c19jb21wbGV4X3N1YnJ1bGVfZGVzdHJveShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxNi1cdGJ3Y19ydWxlLVx1MDAzZXJ1bGUtXHUwMDNlc2tpcF9kZWxldGUgPSAhaXNfbGFzdF9ydWxlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjgxNzpcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTgxOC1cdGlmICh1bmxpa2VseShyZXQpKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTU1MQoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDU5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLgoKKipJbnZlc3RpZ2F0aW5nIEV2ZW50IEdlbmVyYXRpb24gUG9pbnRzIGZvciBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FKioKCkFscmlnaHQsIG15IGluaXRpYWwgb2JzZXJ2YXRpb24gaXMgdGhhdCBJJiMzOTt2ZSBzcG90dGVkIGBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5YCBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gTm93LCBteSBtYWluIHF1ZXN0aW9uIGlzLCBhbmQgdGhpcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBwaWN0dXJlLCBhcmUgdGhlcmUgKmFueSogb3RoZXIgaW5zdGFuY2VzIHdpdGhpbiB0aGlzIGNvZGUgYmFzZSwgb3IgaW5kZWVkIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0sIHdoZXJlIHRoZSBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgZXZlbnQgaXMgYWN0dWFsbHkgZ2VuZXJhdGVkPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgcG90ZW50aWFsIHNvdXJjZXMuIEtub3dpbmcgd2hlcmUgZWxzZSB0aGlzIGV2ZW50IGlzIGNyZWF0ZWQgd2lsbCBwcm92aWRlIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBldmVudCBmbG93LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTI3Mj1zdGF0aWMgaW50IGJsb2NraW5nX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsIHVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQgKmRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODUtXHRcdGJyZWFrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyODY6XHRjYXNlIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkU6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4Ny1cdFx0aWYgKG1seDVlX2RldmNvbV9pbml0X21wdihwcml2LCBkYXRhKSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjk5OTcKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAxMzEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqSW52ZXN0aWdhdGluZyBNTFg1IEV2ZW50IEhhbmRsaW5nKioKCk9rYXksIHNvIEkgZGlkIGEgZ2xvYmFsIHNlYXJjaCBmb3IgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgLCBhbmQgaXQgbG9va3MgbGlrZSBpdCYjMzk7cyBwcmVzZW50IGluIGJvdGggYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQsIGJ1dCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgZnVsbCBwaWN0dXJlLiBMZXQgbWUgZG91YmxlLWNoZWNrIHRoZSBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2AgZGlyZWN0b3J5IGFnYWluIHRvIGJlIHRob3JvdWdoLiBJJiMzOTttIHRyeWluZyB0byBwaWVjZSB0b2dldGhlciB3aGVyZSB0aGUgZXZlbnQgaXMgZ2VuZXJhdGVkIGFuZCBob3cgaXQmIzM5O3MgdXNlZC4gVGhlIHByaW1hcnkgZ29hbCBpcyB0byBtYXAgdGhlIGNhbGwgZmxvdy4KClNwZWNpZmljYWxseSwgSSYjMzk7bSBub3cgZm9jdXNlZCBvbiBmaW5kaW5nIHdoZXJlIGBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5YCBpcyBjYWxsZWQsIGFuZCBwZXJoYXBzIG1vcmUgaW1wb3J0YW50bHksIHdoZXJlIHRoaXMgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGV2ZW50IGlzIGFjdHVhbGx5ICpnZW5lcmF0ZWQqIHdpdGhpbiB0aGUgY29kZS4gVW5kZXJzdGFuZGluZyB0aGUgZXZlbnQgc291cmNlIGlzIGNyaXRpY2FsLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYz0zODc3PXN0YXRpYyB2b2lkIG1seDVfaWJfdW5iaW5kX3NsYXZlX3BvcnQoc3RydWN0IG1seDVfaWJfZGV2ICppYmRldixcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg4OS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYzozODkwOlx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShpYmRldi1cdTAwM2VtZGV2LFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM4OTEtXHRcdFx0XHQgIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX1JFTU9WRUQsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg5Mi1cdFx0XHRcdCAgTlVMTCk7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzg5MzpcdG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkobXBpLVx1MDAzZW1kZXYsXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg5NC1cdFx0XHRcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fUkVNT1ZFRCxcbi0tXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM9Mzk0ND1zdGF0aWMgYm9vbCBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydChzdHJ1Y3QgbWx4NV9pYl9kZXYgKmliZGV2LFxuLS1cbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTc3LVx0a2V5ID0gbXBpLVx1MDAzZW1kZXYtXHUwMDNlcHJpdi5hZGV2X2lkeDtcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYzozOTc4Olx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShtcGktXHUwMDNlbWRldixcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTc5LVx0XHRcdFx0ICBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5ODAtXHRcdFx0XHQgIFx1MDAyNmtleSk7XG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzk4MTpcdG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkoaWJkZXYtXHUwMDNlbWRldixcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgyLVx0XHRcdFx0ICBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmM9MjkwPUVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX3VwbGlua19uZXRkZXZfZXZlbnRfcmVwbGF5KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjkxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyOTI6dm9pZCBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjkzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTI5NS19XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jOjI5NjpFWFBPUlRfU1lNQk9MKG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yOTctXG4tLVxuaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oPTEwMTA9dm9pZCBtbHg1X2NvcmVfdXBsaW5rX25ldGRldl9ldmVudF9yZXBsYXkoc3RydWN0IG1seDVfY29yZV9kZXYgKm1kZXYpO1xuaW5jbHVkZS9saW51eC9tbHg1L2RyaXZlci5oLTEwMTEtXG5pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmg6MTAxMjp2b2lkIG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKTtcbmluY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaC0xMDEzLVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzMTMwMwoJCQkJCQkJb3V0cHV0OiA0NwoJCQkJCQkJdGhvdWdodHM6IDgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6CgoqKkRpdmluZyBpbnRvIHRoZSBtbHg1IEV2ZW50IFJlcGxheSoqCgpPa2F5LCBzbyBgbWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheWAgaXMgZGVmaW5pdGVseSBjYWxsZWQgZnJvbSB0aGUgYG1seDVgIEluZmluaWJhbmQgZHJpdmVyLCBzcGVjaWZpY2FsbHkgZnJvbSBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gVGhhdCYjMzk7cyB0aGUgc3RhcnRpbmcgcG9pbnQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRyb2wgZmxvdzsgaG93IGRvZXMgdGhpcyB3aG9sZSBldmVudCByZXBsYXkgbWVjaGFuaXNtIGtpY2sgb2ZmPyBUaGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZSBpczogd2hhdCB0cmlnZ2VycyB0aGUgZ2VuZXJhdGlvbiBvZiBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWA/IFRoYXQmIzM5O3MgdGhlIGtleSB0byB1bmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIHRoZSByZXBsYXkuIFRpbWUgdG8gZGVsdmUgaW50byB0aGUgaW1wbGVtZW50YXRpb24gb2YgYG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXlgIGl0c2VsZjsgSSBuZWVkIHRvIHNlZSB3aGF0IGl0JiMzOTtzIGxvb2tpbmcgZm9yLiBJIG5lZWQgdG8gdHJhY2UgdGhpcyBiYWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyODUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7IDI4NTpcdFx0bXV0ZXhfbG9jayhcdTAwMjZkZXYtXHUwMDNlbWx4NWVfcmVzLnVwbGlua19uZXRkZXZfbG9jayk7XG4gMjg2Olx0XHRtbHg1X2Jsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oZGV2LCBNTFg1X0RSSVZFUl9FVkVOVF9VUExJTktfTkVUREVWLFxuIDI4NzpcdFx0XHRcdFx0XHQgIGRldi1cdTAwM2VtbHg1ZV9yZXMudXBsaW5rX25ldGRldik7XG4gMjg4Olx0XHRtdXRleF91bmxvY2soXHUwMDI2ZGV2LVx1MDAzZW1seDVlX3Jlcy51cGxpbmtfbmV0ZGV2X2xvY2spO1xuIDI4OTpcdH1cbiAyOTA6XHRFWFBPUlRfU1lNQk9MKG1seDVfY29yZV91cGxpbmtfbmV0ZGV2X2V2ZW50X3JlcGxheSk7XG4gMjkxOlx0XG4gMjkyOlx0dm9pZCBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcbiAyOTM6XHR7XG4gMjk0Olx0XHRtbHg1X2Jsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oZGV2LCBldmVudCwgZGF0YSk7XG4gMjk1Olx0fVxuIDI5NjpcdEVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheSk7XG4gMjk3Olx0XG4gMjk4Olx0aW50IG1seDVfY29yZV9nZXRfY2Fwc19tb2RlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIGVudW0gbWx4NV9jYXBfdHlwZSBjYXBfdHlwZSxcbiAyOTk6XHRcdFx0XHQgICAgZW51bSBtbHg1X2NhcF9tb2RlIGNhcF9tb2RlKVxuIDMwMDpcdHtcbiAzMDE6XHRcdHU4IGluW01MWDVfU1RfU1pfQllURVMocXVlcnlfaGNhX2NhcF9pbildO1xuIDMwMjpcdFx0aW50IG91dF9zeiA9IE1MWDVfU1RfU1pfQllURVMocXVlcnlfaGNhX2NhcF9vdXQpO1xuIDMwMzpcdFx0dm9pZCAqb3V0LCAqaGNhX2NhcHM7XG4gMzA0Olx0XHR1MTYgb3Btb2QgPSAoY2FwX3R5cGUgXHUwMDNjXHUwMDNjIDEpIHwgKGNhcF9tb2RlIFx1MDAyNiAweDAxKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTA6MzM8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzIwNzEKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiA2NzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBVbnJlYWNoYWJpbGl0eSBvZiBhIFNwZWNpZmljIENvZGUgUGF0aCoqCgpPa2F5LCBzbyBgbWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheWAgZXZlbnR1YWxseSBsZWFkcyB0byBgbWx4NV9ibG9ja2luZ19ub3RpZmllcl9jYWxsX2NoYWluYCwgd2hpY2ggaXMgb25seSBjYWxsZWQgZnJvbSBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7QXJlIHRoZXJlIGFueSAqb3RoZXIqIHdheXMgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGlzIGdlbmVyYXRlZD8mIzM0OyBJIGFscmVhZHkgY2hlY2tlZCwgYW5kIGl0JiMzOTtzIHNvbGVseSB3aXRoaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gVGhhdCBtZWFucyB0aGUgb25seSByb3V0ZSB0byBgbWx4NWVfZGV2Y29tX2luaXRfbXB2YCBpcyB0aHJvdWdoIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAsIHdoaWNoIGlzIGFsc28gaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AuCgpBbmQgb2YgY291cnNlLCBgbWx4NV9pYl9iaW5kX3NsYXZlX3BvcnRgICpuZWVkcyogYW4gSW5maW5pYmFuZCBkZXZpY2UsIG1lYW5pbmcgYWN0dWFsIE1lbGxhbm94IGhhcmR3YXJlIGlzIHJlcXVpcmVkLiBTaW5jZSB0aGVyZSYjMzk7cyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gSSBrbm93IG9mIHRoYXQgcmVwbGljYXRlcyBhbGwgdGhhdCwgbGlrZSBpbiBHQ0Ugb3IgUUVNVSwgdGhpcyBwYXRoIGlzIGltbWVkaWF0ZWx5IHVucmVhY2hhYmxlIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuCgpOb3csIHdhaXQuLi5zeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciwgZG9lc24mIzM5O3QgaXQ/IENvdWxkICp0aGF0KiBwb3RlbnRpYWxseSByZWFjaCBpdD8gVGhlIGZ1enplciBlbXVsYXRlcyBhIFBDSSBkZXZpY2UsIGludGVyY2VwdGluZyBhY2Nlc3NlcyB0byB0aGUgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTy4gSXQgZXNzZW50aWFsbHkgdGhyb3dzIHJhbmRvbSBkYXRhIGF0IHRoZSBkcml2ZXIuIEJ1dCBjYW4gaXQgZXZlbiAqaW5pdGlhbGl6ZSogYG1seDVfY29yZWAgc3VjY2Vzc2Z1bGx5PyBgbWx4NV9jb3JlYCBpcyBpbmNyZWRpYmx5IGNvbXBsZXgsIGRlYWxpbmcgd2l0aCBmaXJtd2FyZSB2aWEgdGhhdCBjb21tYW5kIHF1ZXVlLiBUaGUgZmlybXdhcmUgaW50ZXJmYWNlIGlzIGZhbW91c2x5IGludHJpY2F0ZSDigJMgdGhlIGRyaXZlciBzZW5kcyBjb21tYW5kcywgd2FpdHMgZm9yIHJlc3BvbnNlcy4gVGhlIFBDSSBmdXp6ZXImIzM5O3MgcmFuZG9tIGlucHV0IHdvdWxkIG1vc3QgbGlrZWx5IGNhdXNlIGl0IHRvIGZhaWwgaW5pdGlhbGl6YXRpb24gdmVyeSBlYXJseSDigJMgZmlybXdhcmUgdmVyc2lvbiBtaXNtYXRjaCwgY29tbWFuZCBxdWV1ZSBpc3N1ZXMsIGV0Yy4gSXQmIzM5O3MgYWxtb3N0IGltcG9zc2libGUgZm9yIHJhbmRvbSBkYXRhIHRvIHByb3Blcmx5IHNpbXVsYXRlIHRoZSBmaXJtd2FyZSBpbnRlcmFjdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IHRvIGluaXRpYWxpemUgYG1seDVfY29yZWAsIGxldCBhbG9uZSB0cmlnZ2VyIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAuIFRoaXMgbWFrZXMgaXQgcHJhY3RpY2FsbHkgdW5yZWFjaGFibGUgaW4gdGhlc2UgdmlydHVhbGl6ZWQgdGVzdCBlbnZpcm9ubWVudHMuCgpKdXN0IHRvIGJlIGFic29sdXRlbHkgc3VyZSwgbGV0JiMzOTtzIHJldmlzaXQgYW5vdGhlciBtZXRob2QgdG8gdHJpZ2dlciBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAuIFRoYXQgZnVuY3Rpb24gaXMgcmVnaXN0ZXJlZCBhcyBhIGNhbGxiYWNrIHRocm91Z2ggYG1seDVfZGV2Y29tX3JlZ2lzdGVyX2NvbXBvbmVudGAuIFRoZSBjYWxsYmFjayBpcyB0cmlnZ2VyZWQgd2hlbiBgbWx4NV9kZXZjb21fc2VuZF9ldmVudGAgaXMgY2FsbGVkIGZvciBgTUxYNV9ERVZDT01fTVBWYC4gTGV0IG1lIGNoZWNrIHdoZXJlIGBtbHg1X2RldmNvbV9zZW5kX2V2ZW50YCBpcyBjYWxsZWQgd2l0aCB0aGF0IGFyZ3VtZW50LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozNDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttbHg1X2RldmNvbV9zZW5kX2V2ZW50JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvaXBzZWNfZnMuYz0yODk0PXZvaWQgbWx4NWVfaXBzZWNfc2VuZF9ldmVudChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgaW50IGV2ZW50KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9pcHNlY19mcy5jLTI4OTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvaXBzZWNfZnMuYzoyODk5Olx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChwcml2LVx1MDAzZWRldmNvbSwgZXZlbnQsIGV2ZW50LCBwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9pcHNlY19mcy5jLTI5MDAtXHR3YWl0X2Zvcl9jb21wbGV0aW9uKFx1MDAyNnByaXYtXHUwMDNlaXBzZWMtXHUwMDNlY29tcCk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMzQ9c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI0OC1cdGlmIChtbHg1X2NvcmVfaXNfbXBfbWFzdGVyKHByaXYtXHUwMDNlbWRldikpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjQ5Olx0XHRtbHg1X2RldmNvbV9zZW5kX2V2ZW50KHByaXYtXHUwMDNlZGV2Y29tLCBNUFZfREVWQ09NX01BU1RFUl9VUCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjUwLVx0XHRcdFx0ICAgICAgIE1QVl9ERVZDT01fTUFTVEVSX1VQLCBwcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTI1Nz1zdGF0aWMgdm9pZCBtbHg1ZV9kZXZjb21fY2xlYW51cF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yNjItXHRpZiAobWx4NV9jb3JlX2lzX21wX21hc3Rlcihwcml2LVx1MDAzZW1kZXYpKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jOjI2MzpcdFx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChwcml2LVx1MDAzZWRldmNvbSwgTVBWX0RFVkNPTV9NQVNURVJfRE9XTixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjY0LVx0XHRcdFx0ICAgICAgIE1QVl9ERVZDT01fTUFTVEVSX0RPV04sIHByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9MzMwOD12b2lkIG1seDVfZXN3X29mZmxvYWRzX2RldmNvbV9pbml0KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzMzQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jOjMzMzU6XHRtbHg1X2RldmNvbV9zZW5kX2V2ZW50KGVzdy1cdTAwM2VkZXZjb20sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzMzYtXHRcdFx0ICAgICAgIEVTV19PRkZMT0FEU19ERVZDT01fUEFJUixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jPTMzNDE9dm9pZCBtbHg1X2Vzd19vZmZsb2Fkc19kZXZjb21fY2xlYW51cChzdHJ1Y3QgbWx4NV9lc3dpdGNoICplc3cpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0zMzQ1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYzozMzQ2Olx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChlc3ctXHUwMDNlZGV2Y29tLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYy0zMzQ3LVx0XHRcdCAgICAgICBFU1dfT0ZGTE9BRFNfREVWQ09NX1VOUEFJUixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jPTIwODI9dm9pZCBtbHg1X2xhZ19yZW1vdmVfbWRldihzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmMtMjEwMy1cdC8qIFNlbmQgZGV2Y29tIGV2ZW50IHRvIG5vdGlmeSBwZWVycyB0aGF0IGEgZGV2aWNlIGlzIGJlaW5nIHJlbW92ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmM6MjEwNDpcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoZGV2LVx1MDAzZXByaXYuaGNhX2RldmNvbV9jb21wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYy0yMTA1LVx0XHRcdCAgICAgICBMQUdfREVWQ09NX1VOUEFJUiwgTEFHX0RFVkNPTV9VTlBBSVIsIGRldik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYz0yMTEwPXZvaWQgbWx4NV9sYWdfYWRkX21kZXYoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jLTIxMjktXHQvKiBTZW5kIGRldmNvbSBldmVudCB0byBub3RpZnkgcGVlcnMgdGhhdCBhIGRldmljZSB3YXMgYWRkZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmM6MjEzMDpcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoZGV2LVx1MDAzZXByaXYuaGNhX2RldmNvbV9jb21wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYy0yMTMxLVx0XHRcdCAgICAgICBMQUdfREVWQ09NX1BBSVIsIExBR19ERVZDT01fVU5QQUlSLCBkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmM9MjgyPWludCBtbHg1X2RldmNvbV9jb21wX2dldF9zaXplKHN0cnVjdCBtbHg1X2RldmNvbV9jb21wX2RldiAqZGV2Y29tKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmMtMjg4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9kZXZjb20uYzoyODk6aW50IG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoc3RydWN0IG1seDVfZGV2Y29tX2NvbXBfZGV2ICpkZXZjb20sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5jLTI5MC1cdFx0XHQgICBpbnQgZXZlbnQsIGludCByb2xsYmFja19ldmVudCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5oPTQ3PXZvaWQgbWx4NV9kZXZjb21fdW5yZWdpc3Rlcl9jb21wb25lbnQoc3RydWN0IG1seDVfZGV2Y29tX2NvbXBfZGV2ICpkZXZjb20pO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9kZXZjb20uaC00OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmg6NDk6aW50IG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoc3RydWN0IG1seDVfZGV2Y29tX2NvbXBfZGV2ICpkZXZjb20sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5oLTUwLVx0XHRcdCAgIGludCBldmVudCwgaW50IHJvbGxiYWNrX2V2ZW50LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxMDozNDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTA3NAoJCQkJCQkJb3V0cHV0OiAxNDAKCQkJCQkJCXRob3VnaHRzOiA2NDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgVGhpcyBQYXRjaCoqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgdGhpcyBgbWx4NWVfZGV2Y29tX2luaXRfbXB2YCBmdW5jdGlvbiBpcyB0aGUga2V5LiBTcGVjaWZpY2FsbHksIEkmIzM5O20gY29uY2VybmVkIHRoYXQgYG1seDVfZGV2Y29tX3NlbmRfZXZlbnRgIGlzIGNhbGxlZCB3aXRoaW4uIFRoaXMgY2FsbCB0cmlnZ2VycyBjZXJ0YWluIGFjdGlvbnMgYmFzZWQgb24gd2hldGhlciB0aGUgZGV2aWNlIGlzIGEgJiMzNDttYXN0ZXImIzM0Oy4gVGhpcyBmdW5jdGlvbiBpcyAqY2FsbGVkKiB3aGVuIHRoZSBkcml2ZXIgYWZmaWxpYXRpb24gZXZlbnQgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGlzIHJlY2VpdmVkLgoKTm93LCB3aGVyZSBkb2VzIHRoYXQgZXZlbnQgY29tZSBmcm9tPyBXZWxsLCBhZnRlciBkaWdnaW5nIHRocm91Z2ggdGhlIGNvZGUsIGl0JiMzOTtzIHByZXR0eSBjbGVhciB0aGF0IGBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FYCBpcyBvbmx5IGdlbmVyYXRlZCBieSBgbWx4NV9pYl9iaW5kX3NsYXZlX3BvcnRgLCBhbmQgdGhpcyBmdW5jdGlvbiBpcyBpdHNlbGYgY2FsbGVkIGR1cmluZyB0aGUgcmVnaXN0cmF0aW9uIGFuZCBiaW5kaW5nIG9mIGFuIEluZmluaWJhbmQgZGV2aWNlLCBzcGVjaWZpY2FsbHkgcmVsYXRpbmcgdG8gTWVsbGFub3ggaGFyZHdhcmUuIFRoaXMgc2VlbXMgdG8gaGFwcGVuIGluIGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNgLgoKQWhhISBUaGlzIGFsc28gaW1wbGllcyB3ZSBuZWVkICpwaHlzaWNhbCogTWVsbGFub3ggaGFyZHdhcmUgZm9yIHRoaXMgY29kZSBwYXRoIHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4gIFRoZXJlIGlzbiYjMzk7dCBhbnkgc29mdHdhcmUgZW11bGF0aW9uIGZvciB0aGUgTWVsbGFub3ggaGFyZHdhcmUgaW52b2x2ZWQuIFRoaXMgbWVhbnMgaXQmIzM5O3MgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIHRoZSBlbnZpcm9ubWVudHMgc3l6a2FsbGVyIHR5cGljYWxseSBydW5zIGluLgoKTGV0IG1lIGp1c3QgZG91YmxlIGNoZWNrIG9uZSB0aGluZzogQXJlIHRoZXJlICphbnkqIG90aGVyIHdheXMgdGhpcyBldmVudCBjb3VsZCBiZSB0cmlnZ2VyZWQ/IEEgcXVpY2sgZ2xvYmFsIHNlYXJjaCBmb3IgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGFjcm9zcyB0aGUga2VybmVsIGNvZGUgYmFzZSBjb25maXJtcyB0aGF0IGl0JiMzOTtzIG9ubHkgdXNlZCBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYCwgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNgIGFuZCBpbiBhIGhlYWRlciBmaWxlLCBgaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oYC4gU28gdGhlcmUgaXMgbm8gYWx0ZXJuYXRlIHBhdGggZm9yIHRoZSBldmVudCB0byBiZSBnZW5lcmF0ZWQuCgpUaGVyZWZvcmUsIHRoaXMgcGF0Y2ggaXMgbW9kaWZ5aW5nIGEgY29kZSBwYXRoIHRoYXQgaXMgZWZmZWN0aXZlbHkgaW5hY2Nlc3NpYmxlIGluIHRoZSB0YXJnZXQgZW52aXJvbm1lbnRzLiAgR2l2ZW4gdGhlIGluc3RydWN0aW9ucywgSSBuZWVkIHRvIGZsYWcgdGhpcyBhcyBub3Qgd29ydGggZnV6emluZy4gVGhlIHBhdGNoICpvbmx5KiBtb2RpZmllcyBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgKGBtbHg1YCkgdGhhdCBoYXMgbm8gc29mdHdhcmUgZW11bGF0aW9uLgoKTGV0JiMzOTtzIHJldmlldyB0aGUgcHJvbXB0IGluc3RydWN0aW9uczoKJiMzNDtSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgouLi4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4mIzM0OwoKQmluZ28hIFRoaXMgcGVyZmVjdGx5IGRlc2NyaWJlcyB0aGlzIHNjZW5hcmlvLiBUaGlzIHBhdGNoIGlzIGlycmVsZXZhbnQgZm9yIGZ1enppbmcuIEkmIzM5O2xsIGNvbnN0cnVjdCB0aGUgYXBwcm9wcmlhdGUgcmVzcG9uc2UuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDEwOjM0PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY29yZSBkcml2ZXIgKG1seDVfY29yZSksIHNwZWNpZmljYWxseSB0aGUgTVBWIGRldmNvbSBldmVudCBoYW5kbGluZy4gVGhpcyBjb2RlIHBhdGggaXMgb25seSByZWFjaGFibGUgd2hlbiBhIHBoeXNpY2FsIE1lbGxhbm94IFBDSSBkZXZpY2UgaXMgcHJlc2VudCBhbmQgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCB3aGljaCB0cmlnZ2VycyB0aGUgSW5maW5pYmFuZCBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCBzdWJzZXF1ZW50IGFmZmlsaWF0aW9uIGV2ZW50cy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBNZWxsYW5veCBoYXJkd2FyZSBpbiB0aGUga2VybmVsIG9yIFFFTVUsIHRoaXMgY29kZSBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY29yZSBkcml2ZXIgKG1seDVfY29yZSksIHNwZWNpZmljYWxseSB0aGUgTVBWIGRldmNvbSBldmVudCBoYW5kbGluZy4gVGhpcyBjb2RlIHBhdGggaXMgb25seSByZWFjaGFibGUgd2hlbiBhIHBoeXNpY2FsIE1lbGxhbm94IFBDSSBkZXZpY2UgaXMgcHJlc2VudCBhbmQgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCB3aGljaCB0cmlnZ2VycyB0aGUgSW5maW5pYmFuZCBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCBzdWJzZXF1ZW50IGFmZmlsaWF0aW9uIGV2ZW50cy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBNZWxsYW5veCBoYXJkd2FyZSBpbiB0aGUga2VybmVsIG9yIFFFTVUsIHRoaXMgY29kZSBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMyOjMyLjc0NDQ2OTA2N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjk5MjQ5OTYwNTM0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggQ29ubmVjdFgtNC81LzYvNyBjb3JlIGRyaXZlciAobWx4NV9jb3JlKSwgc3BlY2lmaWNhbGx5IHRoZSBNUFYgZGV2Y29tIGV2ZW50IGhhbmRsaW5nLiBUaGlzIGNvZGUgcGF0aCBpcyBvbmx5IHJlYWNoYWJsZSB3aGVuIGEgcGh5c2ljYWwgTWVsbGFub3ggUENJIGRldmljZSBpcyBwcmVzZW50IGFuZCBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQsIHdoaWNoIHRyaWdnZXJzIHRoZSBJbmZpbmliYW5kIGRldmljZSByZWdpc3RyYXRpb24gYW5kIHN1YnNlcXVlbnQgYWZmaWxpYXRpb24gZXZlbnRzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIE1lbGxhbm94IGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgb3IgUUVNVSwgdGhpcyBjb2RlIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjozMi43NDQ1MDMxMjdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQxODQxMzI5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGJmNjFkMTY5ODdjZTM0ZThmYWQ4YzM4ZTBjNjM2YWEyYjA1Yjk4NGRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFdlZCBKdWwgOCAxMDozMjozMSAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xcbmluZGV4IDhmMmIzYWJlMDA5MjE0Li45YjI3YWZlYjliMTI3ZSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1xcbkBAIC0yMTEsMTEgKzIxMSwxMSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcXG4gXFxuIHN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpXFxuIHtcXG4tXFx0c3RydWN0IG1seDVlX3ByaXYgKnNsYXZlX3ByaXYgPSBteV9kYXRhO1xcbitcXHRzdHJ1Y3QgbWx4NWVfcHJpdiAqbWFzdGVyX3ByaXYgPSBldmVudF9kYXRhO1xcbiBcXG4gXFx0c3dpdGNoIChldmVudCkge1xcbiBcXHRjYXNlIE1QVl9ERVZDT01fTUFTVEVSX1VQOlxcbi1cXHRcXHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShzbGF2ZV9wcml2LVxcdTAwM2VkZXZjb20sIHRydWUpO1xcbitcXHRcXHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShtYXN0ZXJfcHJpdi1cXHUwMDNlZGV2Y29tLCB0cnVlKTtcXG4gXFx0XFx0YnJlYWs7XFxuIFxcdGNhc2UgTVBWX0RFVkNPTV9NQVNURVJfRE9XTjpcXG4gXFx0XFx0Lyogbm8gbmVlZCBmb3IgY29tcCBzZXQgcmVhZHkgZmFsc2Ugc2luY2Ugd2UgdW5yZWdpc3RlciBhZnRlclxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjozMy4xNjM2MjEzOTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk4ODMwODAyNjkwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgTWVsbGFub3ggQ29ubmVjdFgtNC81LzYvNyBjb3JlIGRyaXZlciAobWx4NV9jb3JlKSwgc3BlY2lmaWNhbGx5IHRoZSBNUFYgZGV2Y29tIGV2ZW50IGhhbmRsaW5nLiBUaGlzIGNvZGUgcGF0aCBpcyBvbmx5IHJlYWNoYWJsZSB3aGVuIGEgcGh5c2ljYWwgTWVsbGFub3ggUENJIGRldmljZSBpcyBwcmVzZW50IGFuZCBzdWNjZXNzZnVsbHkgaW5pdGlhbGl6ZWQsIHdoaWNoIHRyaWdnZXJzIHRoZSBJbmZpbmliYW5kIGRldmljZSByZWdpc3RyYXRpb24gYW5kIHN1YnNlcXVlbnQgYWZmaWxpYXRpb24gZXZlbnRzLiBTaW5jZSB0aGVyZSBpcyBubyBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIE1lbGxhbm94IGhhcmR3YXJlIGluIHRoZSBrZXJuZWwgb3IgUUVNVSwgdGhpcyBjb2RlIGlzIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUgdXNlZCBieSBzeXprYWxsZXIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGJmNjFkMTY5ODdjZTM0ZThmYWQ4YzM4ZTBjNjM2YWEyYjA1Yjk4NGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCA4IDEwOjMyOjMxIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcbmluZGV4IDhmMmIzYWJlMDA5MjE0Li45YjI3YWZlYjliMTI3ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcbkBAIC0yMTEsMTEgKzIxMSwxMSBAQCBzdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcbiBcbiBzdGF0aWMgaW50IG1seDVlX2RldmNvbV9ldmVudF9tcHYoaW50IGV2ZW50LCB2b2lkICpteV9kYXRhLCB2b2lkICpldmVudF9kYXRhKVxuIHtcbi1cdHN0cnVjdCBtbHg1ZV9wcml2ICpzbGF2ZV9wcml2ID0gbXlfZGF0YTtcbitcdHN0cnVjdCBtbHg1ZV9wcml2ICptYXN0ZXJfcHJpdiA9IGV2ZW50X2RhdGE7XG4gXG4gXHRzd2l0Y2ggKGV2ZW50KSB7XG4gXHRjYXNlIE1QVl9ERVZDT01fTUFTVEVSX1VQOlxuLVx0XHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShzbGF2ZV9wcml2LVx1MDAzZWRldmNvbSwgdHJ1ZSk7XG4rXHRcdG1seDVfZGV2Y29tX2NvbXBfc2V0X3JlYWR5KG1hc3Rlcl9wcml2LVx1MDAzZWRldmNvbSwgdHJ1ZSk7XG4gXHRcdGJyZWFrO1xuIFx0Y2FzZSBNUFZfREVWQ09NX01BU1RFUl9ET1dOOlxuIFx0XHQvKiBubyBuZWVkIGZvciBjb21wIHNldCByZWFkeSBmYWxzZSBzaW5jZSB3ZSB1bnJlZ2lzdGVyIGFmdGVyXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjozMy4xNjM2MjI2OTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4Mzg3MzU2MDE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE1lbGxhbm94IG1seDUgRHJpdmVyIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGNoYW5nZXMgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNgLiBTcGVjaWZpY2FsbHksIHRoZSBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAgZnVuY3Rpb24gaGFzIGJlZW4gdHdlYWtlZC4gVGhlIGtleSBjaGFuZ2UgaXMgdGhlIHBvaW50ZXIgdXNlZCBpbiBgbWx4NV9kZXZjb21fY29tcF9zZXRfcmVhZHlgLCBmcm9tIGBzbGF2ZV9wcml2YCB0byBgbWFzdGVyX3ByaXZgLiBUaGlzIGlzIGRlZmluaXRlbHkgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgTWVsbGFub3ggbWx4NSBkcml2ZXIsIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBpbXBsaWNhdGlvbnMuXG5cblRoZSBmaXJzdCB0aGluZyB0aGF0IGp1bXBzIHRvIG1pbmQgaXMgdGhlIGZ1enphYmlsaXR5IG9mIHRoaXMgZHJpdmVyLiBHaXZlbiBpdHMgaGFyZHdhcmUtc3BlY2lmaWMgbmF0dXJlLCBwYXJ0aWN1bGFybHkgd2l0aCBNZWxsYW5veCwgaXMgdGhpcyBkcml2ZXIgZXZlbiBlYXNpbHkgcmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VPyBUaGVzZSBzb3J0cyBvZiBoYXJkd2FyZS1zcGVjaWZpYyBFdGhlcm5ldCBkcml2ZXJzIG9mdGVuIHBvc2UgYSBmdXp6aW5nIGNoYWxsZW5nZSwgdW5sZXNzIHdlJ3JlIGRlYWxpbmcgd2l0aCBlaXRoZXIgYW4gZW11bGF0b3Igb3IgYSBtb3JlIGdlbmVyaWMgZnJhbWV3b3JrLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB3ZSBjYW4gZXZlbiBmdXp6IHRoZSBtbHg1IGRyaXZlci5cblxuUmlnaHQsIG15IGltbWVkaWF0ZSBjaGVjayBpcyB3aGV0aGVyIHN5emthbGxlciBoYXMgYW4gbWx4NSBlbXVsYXRvci4gQW5kIHRoZSBxdWljayBhbnN3ZXIgaXMgbm8sIGl0IGRvZXNuJ3QuIE5leHQsIEkgc2hvdWxkIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgc29mdHdhcmUgZW11bGF0aW9ucyBvZiBtbHg1IHRoYXQgbWlnaHQgYmUgYXZhaWxhYmxlLiBHaXZlbiB0aGlzIGRyaXZlcidzIGxvY2F0aW9uLCBJJ2xsIHNlYXJjaCB0aHJvdWdoIHRoZSBjb2RlIGl0c2VsZiwgc3RhcnRpbmcgd2l0aCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AsIGFuZCBzZWVpbmcgd2hhdCBJIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTc2LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NDEuNTUwOTgwNTI4WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5Njc2MjI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVlX2RldmNvbV9ldmVudF9tcHZcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTIwNz1zdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjExLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjEyOnN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2V2ZW50X21wdihpbnQgZXZlbnQsIHZvaWQgKm15X2RhdGEsIHZvaWQgKmV2ZW50X2RhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yMTMte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMzQ9c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjQyLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIFxcdTAwMjZhdHRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjQzOlxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIG1seDVlX2RldmNvbV9ldmVudF9tcHYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yNDQtXFx0XFx0XFx0XFx0XFx0XFx0ICAgICAgcHJpdik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMyOjQxLjYxMDY2MTkxM1oiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxMDI0NDA3MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqSW52ZXN0aWdhdGluZyB0aGUgRnV6emFiaWxpdHkgb2YgdGhlIE1lbGxhbm94IG1seDUgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIE1lbGxhbm94IGBtbHg1YCBkcml2ZXIsIHdoaWNoIGhhbmRsZXMgdGhvc2UgQ29ubmVjdFgtNC81LzYvNyBhZGFwdGVycy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBhcyB1c3VhbCB3aXRoIHRoZXNlIGhhcmR3YXJlIGRyaXZlcnMsIHRoYXQgZnV6emluZyBpdCBpbiBhbiBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIGlzIGdvaW5nIHRvIGJlIGEgY2hhbGxlbmdlLiBVbmxlc3MsIG9mIGNvdXJzZSwgdGhlcmUncyBzb21lIGtpbmQgb2Ygc3BlY2lhbGl6ZWQgZW11bGF0b3IgYXQgcGxheS4gWW91IGtub3csIGxpa2Ugd2UgaGF2ZSBmb3IgVVNCIHdpdGggYHZoY2lgLCBvciBXaUZpIHdpdGggYG1hYzgwMjExX2h3c2ltYCwgb3IgbmV0d29ya2luZyB3aXRoIGBuZXRkZXZzaW1gLi4uIHRoYXQga2luZCBvZiB0aGluZy4gU28sIHRoZSBrZXkgcXVlc3Rpb24gaXM6IGRvZXMgYSBzaW1pbGFyIGBtbHg1YCBlbXVsYXRvciBleGlzdD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hldGhlciBpdCdzIHB1cmVseSBoYXJkd2FyZS1kZXBlbmRlbnQgb3IgaWYgdGhlcmUncyBhIHNvZnR3YXJlIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXZpY2Ugc29tZXdoZXJlIGluIHRoZSBrZXJuZWwgdGhhdCBJIGNhbiBsZXZlcmFnZS4gVGltZSB0byBkaWcgaW4gYW5kIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwMDgsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NDUuNzEzMTA1MDQ5WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU1ODU4ODc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnPTIxPXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L0tjb25maWc6MjI6c291cmNlIFxcXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9LY29uZmlnLTIzLXNvdXJjZSBcXFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4c3cvS2NvbmZpZ1xcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NDUuNzY4OTY5MDU0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzEyODc0Mjk3MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgZmlyc3QtcGVyc29uIHN1bW1hcnkgb2YgdGhlIHByb3ZpZGVkIHRleHQsIGFzc3VtaW5nIEknbSBhbiBleHBlcnQ6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgTWVsbGFub3ggRHJpdmVyIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBNZWxsYW5veCBFdGhlcm5ldCBkcml2ZXJzLiBNeSBpbnN0aW5jdCB0ZWxscyBtZSB0aGUgcGxhY2UgdG8gc3RhcnQgaXMgdGhlIGBLY29uZmlnYCBmaWxlIHdpdGhpbiB0aGUgY29yZSBkcml2ZXIgc3RydWN0dXJlLiBTcGVjaWZpY2FsbHksIEknbSBoZWFkaW5nIHN0cmFpZ2h0IHRvIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZ2AuIFRoaXMgZmlsZSAqc2hvdWxkKiBob2xkIGFsbCB0aGUgY29uZGl0aW9uYWwgY29tcGlsYXRpb24gZmxhZ3MgYW5kIGRlZmF1bHQgc2V0dGluZ3MgSSdtIGxvb2tpbmcgZm9yLiBJdOKAmXMgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGNvbnRyb2xsaW5nIGZlYXR1cmVzIGFuZCBkZXBlbmRlbmNpZXMgd2l0aGluIHRoZSBtbHg1IGNvcmUuIEZyb20gaGVyZSwgSSBjYW4gdHJhY2UgZGVwZW5kZW5jaWVzLCBpZGVudGlmeSB3aGF0J3MgZW5hYmxlZCBieSBkZWZhdWx0LCBhbmQgcG90ZW50aWFsbHkgZmluZCB0aGUgc291cmNlIG9mIGEgY29uZmlndXJhdGlvbiBwcm9ibGVtIG9yIGEgbmV3IG9wdGlvbiB0byBlbmFibGUuIExldOKAmXMgc2VlIHdoYXQncyBpbiB0aGVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzQ4NSwiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMyOjQ4Ljg5NzcxNDI2NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzMzcyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAxMDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICAgMTpcXHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG4gICAyOlxcdCNcXG4gICAzOlxcdCMgTWVsbGFub3ggZHJpdmVyIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0Y29uZmlnIE1MWDVfQ09SRVxcbiAgIDc6XFx0XFx0dHJpc3RhdGUgXFxcIk1lbGxhbm94IDV0aCBnZW5lcmF0aW9uIG5ldHdvcmsgYWRhcHRlcnMgKENvbm5lY3RYIHNlcmllcykgY29yZSBkcml2ZXJcXFwiXFxuICAgODpcXHRcXHRkZXBlbmRzIG9uIFBDSVxcbiAgIDk6XFx0XFx0c2VsZWN0IEFVWElMSUFSWV9CVVNcXG4gIDEwOlxcdFxcdHNlbGVjdCBORVRfREVWTElOS1xcbiAgMTE6XFx0XFx0ZGVwZW5kcyBvbiBNTFhGVyB8fCAhTUxYRldcXG4gIDEyOlxcdFxcdGRlcGVuZHMgb24gUFRQXzE1ODhfQ0xPQ0tfT1BUSU9OQUxcXG4gIDEzOlxcdFxcdGRlcGVuZHMgb24gUENJX0hZUEVSVl9JTlRFUkZBQ0UgfHwgIVBDSV9IWVBFUlZfSU5URVJGQUNFXFxuICAxNDpcXHRcXHRkZXBlbmRzIG9uIEhXTU9OIHx8ICFIV01PTlxcbiAgMTU6XFx0XFx0aGVscFxcbiAgMTY6XFx0XFx0ICBDb3JlIGRyaXZlciBmb3IgbG93IGxldmVsIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIENvbm5lY3RYLTQgYW5kXFxuICAxNzpcXHRcXHQgIENvbm5lY3QtSUIgY2FyZHMgYnkgTWVsbGFub3ggVGVjaG5vbG9naWVzLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRjb25maWcgTUxYNV9GUEdBXFxuICAyMDpcXHRcXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgSW5ub3ZhIHN1cHBvcnRcXFwiXFxuICAyMTpcXHRcXHRkZXBlbmRzIG9uIE1MWDVfQ09SRVxcbiAgMjI6XFx0XFx0aGVscFxcbiAgMjM6XFx0XFx0ICBCdWlsZCBzdXBwb3J0IGZvciB0aGUgSW5ub3ZhIGZhbWlseSBvZiBuZXR3b3JrIGNhcmRzIGJ5IE1lbGxhbm94XFxuICAyNDpcXHRcXHQgIFRlY2hub2xvZ2llcy4gSW5ub3ZhIG5ldHdvcmsgY2FyZHMgYXJlIGNvbXByaXNlZCBvZiBhIENvbm5lY3RYIGNoaXBcXG4gIDI1OlxcdFxcdCAgYW5kIGFuIEZQR0EgY2hpcCBvbiBvbmUgYm9hcmQuIElmIHlvdSBzZWxlY3QgdGhpcyBvcHRpb24sIHRoZVxcbiAgMjY6XFx0XFx0ICBtbHg1X2NvcmUgZHJpdmVyIHdpbGwgaW5jbHVkZSB0aGUgSW5ub3ZhIEZQR0EgY29yZSBhbmQgYWxsb3cgYnVpbGRpbmdcXG4gIDI3OlxcdFxcdCAgc2FuZGJveC1zcGVjaWZpYyBjbGllbnQgZHJpdmVycy5cXG4gIDI4OlxcdFxcbiAgMjk6XFx0Y29uZmlnIE1MWDVfQ09SRV9FTlxcbiAgMzA6XFx0XFx0Ym9vbCBcXFwiTWVsbGFub3ggNXRoIGdlbmVyYXRpb24gbmV0d29yayBhZGFwdGVycyAoQ29ubmVjdFggc2VyaWVzKSBFdGhlcm5ldCBzdXBwb3J0XFxcIlxcbiAgMzE6XFx0XFx0ZGVwZW5kcyBvbiBORVRERVZJQ0VTIFxcdTAwMjZcXHUwMDI2IEVUSEVSTkVUIFxcdTAwMjZcXHUwMDI2IElORVQgXFx1MDAyNlxcdTAwMjYgUENJIFxcdTAwMjZcXHUwMDI2IE1MWDVfQ09SRVxcbiAgMzI6XFx0XFx0c2VsZWN0IFBBR0VfUE9PTFxcbiAgMzM6XFx0XFx0c2VsZWN0IFBBR0VfUE9PTF9TVEFUU1xcbiAgMzQ6XFx0XFx0c2VsZWN0IERJTUxJQlxcbiAgMzU6XFx0XFx0aGVscFxcbiAgMzY6XFx0XFx0ICBFdGhlcm5ldCBzdXBwb3J0IGluIE1lbGxhbm94IFRlY2hub2xvZ2llcyBDb25uZWN0WC00IE5JQy5cXG4gIDM3OlxcdFxcbiAgMzg6XFx0Y29uZmlnIE1MWDVfRU5fQVJGU1xcbiAgMzk6XFx0XFx0Ym9vbCBcXFwiTWVsbGFub3ggTUxYNSBldGhlcm5ldCBhY2NlbGVyYXRlZCByZWNlaXZlIGZsb3cgc3RlZXJpbmcgKEFSRlMpIHN1cHBvcnRcXFwiXFxuICA0MDpcXHRcXHRkZXBlbmRzIG9uIE1MWDVfQ09SRV9FTiBcXHUwMDI2XFx1MDAyNiBSRlNfQUNDRUxcXG4gIDQxOlxcdFxcdGRlZmF1bHQgeVxcbiAgNDI6XFx0XFx0aGVscFxcbiAgNDM6XFx0XFx0ICBNZWxsYW5veCBNTFg1IGV0aGVybmV0IGhhcmR3YXJlLWFjY2VsZXJhdGVkIHJlY2VpdmUgZmxvdyBzdGVlcmluZyBzdXBwb3J0LFxcbiAgNDQ6XFx0XFx0ICBFbmFibGVzIGV0aGVybmV0IG5ldGRldmljZSBhcmZzIHN1cHBvcnQgYW5kIG50dXBsZSBmaWx0ZXJpbmcuXFxuICA0NTpcXHRcXG4gIDQ2OlxcdGNvbmZpZyBNTFg1X0VOX1JYTkZDXFxuICA0NzpcXHRcXHRib29sIFxcXCJNZWxsYW5veCBNTFg1IGV0aGVybmV0IHJ4IG5mYyBmbG93IHN0ZWVyaW5nIHN1cHBvcnRcXFwiXFxuICA0ODpcXHRcXHRkZXBlbmRzIG9uIE1MWDVfQ09SRV9FTlxcbiAgNDk6XFx0XFx0ZGVmYXVsdCB5XFxuICA1MDpcXHRcXHRoZWxwXFxuICA1MTpcXHRcXHQgIE1lbGxhbm94IE1MWDUgZXRoZXJuZXQgcnggbmZjIGZsb3cgc3RlZXJpbmcgc3VwcG9ydFxcbiAgNTI6XFx0XFx0ICBFbmFibGVzIGV0aHRvb2wgcmVjZWl2ZSBuZXR3b3JrIGZsb3cgY2xhc3NpZmljYXRpb24sIHdoaWNoIGFsbG93cyB1c2VyIGRlZmluZWRcXG4gIDUzOlxcdFxcdCAgZmxvdyBydWxlcyB0byBkaXJlY3QgdHJhZmZpYyBpbnRvIGFyYml0cmFyeSByeCBxdWV1ZSB2aWEgZXRodG9vbCBzZXQvZ2V0X3J4bmZjXFxuICA1NDpcXHRcXHQgIEFQSS5cXG4gIDU1OlxcdFxcbiAgNTY6XFx0Y29uZmlnIE1MWDVfTVBGU1xcbiAgNTc6XFx0XFx0Ym9vbCBcXFwiTWVsbGFub3ggVGVjaG5vbG9naWVzIE1MWDUgTVBGUyBzdXBwb3J0XFxcIlxcbiAgNTg6XFx0XFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU5cXG4gIDU5OlxcdFxcdGRlZmF1bHQgeVxcbiAgNjA6XFx0XFx0aGVscFxcbiAgNjE6XFx0XFx0ICBNZWxsYW5veCBUZWNobm9sb2dpZXMgRXRoZXJuZXQgTXVsdGktUGh5c2ljYWwgRnVuY3Rpb24gU3dpdGNoIChNUEZTKVxcbiAgNjI6XFx0XFx0ICBzdXBwb3J0IGluIENvbm5lY3RYIE5JQy4gTVBGcyBpcyByZXF1aXJlZCBmb3Igd2hlbiBtdWx0aS1QRiBjb25maWd1cmF0aW9uXFxuICA2MzpcXHRcXHQgIGlzIGVuYWJsZWQgdG8gYWxsb3cgcGFzc2luZyB1c2VyIGNvbmZpZ3VyZWQgdW5pY2FzdCBNQUMgYWRkcmVzc2VzIHRvIHRoZVxcbiAgNjQ6XFx0XFx0ICByZXF1ZXN0aW5nIFBGLlxcbiAgNjU6XFx0XFxuICA2NjpcXHRjb25maWcgTUxYNV9FU1dJVENIXFxuICA2NzpcXHRcXHRib29sIFxcXCJNZWxsYW5veCBUZWNobm9sb2dpZXMgTUxYNSBTUklPViBFLVN3aXRjaCBzdXBwb3J0XFxcIlxcbiAgNjg6XFx0XFx0ZGVwZW5kcyBvbiBNTFg1X0NPUkVfRU4gXFx1MDAyNlxcdTAwMjYgTkVUX1NXSVRDSERFVlxcbiAgNjk6XFx0XFx0ZGVmYXVsdCB5XFxuICA3MDpcXHRcXHRoZWxwXFxuICA3MTpcXHRcXHQgIE1lbGxhbm94IFRlY2hub2xvZ2llcyBFdGhlcm5ldCBTUklPViBFLVN3aXRjaCBzdXBwb3J0IGluIENvbm5lY3RYIE5JQy5cXG4gIDcyOlxcdFxcdCAgRS1Td2l0Y2ggcHJvdmlkZXMgaW50ZXJuYWwgU1JJT1YgcGFja2V0IHN0ZWVyaW5nIGFuZCBzd2l0Y2hpbmcgZm9yIHRoZVxcbiAgNzM6XFx0XFx0ICBlbmFibGVkIFZGcyBhbmQgUEYgaW4gdHdvIGF2YWlsYWJsZSBtb2RlczpcXG4gIDc0OlxcdFxcdCAgICAgICAgTGVnYWN5IFNSSU9WIG1vZGUgKEwyIG1hYyB2bGFuIHN0ZWVyaW5nIGJhc2VkKS5cXG4gIDc1OlxcdFxcdCAgICAgICAgU3dpdGNoZGV2IG1vZGUgKGVzd2l0Y2ggb2ZmbG9hZHMpLlxcbiAgNzY6XFx0XFxuICA3NzpcXHRjb25maWcgTUxYNV9CUklER0VcXG4gIDc4OlxcdFxcdGJvb2xcXG4gIDc5OlxcdFxcdGRlcGVuZHMgb24gTUxYNV9FU1dJVENIIFxcdTAwMjZcXHUwMDI2IEJSSURHRVxcbiAgODA6XFx0XFx0ZGVmYXVsdCB5XFxuICA4MTpcXHRcXHRoZWxwXFxuICA4MjpcXHRcXHQgIG1seDUgQ29ubmVjdFggb2ZmbG9hZHMgc3VwcG9ydCBmb3IgRXRoZXJuZXQgQnJpZGdpbmcgKEJSSURHRSkuXFxuICA4MzpcXHRcXHQgIEVuYWJsZSBvZmZsb2FkaW5nIEZEQiBydWxlcyBmcm9tIGEgYnJpZGdlIGRldmljZSBjb250YWluaW5nXFxuICA4NDpcXHRcXHQgIHJlcHJlc2VudG9ycyBvZiBtbHg1IHVwbGluayBhbmQgVkYgcG9ydHMuIFN1cHBvcnRzIFZMQU5zICh0cnVuayBhbmRcXG4gIDg1OlxcdFxcdCAgYWNjZXNzIG1vZGVzKS5cXG4gIDg2OlxcdFxcbiAgODc6XFx0Y29uZmlnIE1MWDVfQ0xTX0FDVFxcbiAgODg6XFx0XFx0Ym9vbCBcXFwiTUxYNSBUQyBjbGFzc2lmaWVyIGFjdGlvbiBzdXBwb3J0XFxcIlxcbiAgODk6XFx0XFx0ZGVwZW5kcyBvbiBNTFg1X0VTV0lUQ0ggXFx1MDAyNlxcdTAwMjYgTkVUX0NMU19BQ1QgXFx1MDAyNlxcdTAwMjYgTkVUX1RDX1NLQl9FWFRcXG4gIDkwOlxcdFxcdGRlZmF1bHQgeVxcbiAgOTE6XFx0XFx0aGVscFxcbiAgOTI6XFx0XFx0ICBtbHg1IENvbm5lY3RYIG9mZmxvYWRzIHN1cHBvcnQgZm9yIFRDIGNsYXNzaWZpZXIgYWN0aW9uIChORVRfQ0xTX0FDVCksXFxuICA5MzpcXHRcXHQgIHdvcmtzIGluIGJvdGggbmF0aXZlIE5JQyBtb2RlIGFuZCBTd2l0Y2hkZXYgU1JJT1YgbW9kZS5cXG4gIDk0OlxcdFxcdCAgQWN0aW9ucyBnZXQgYXR0YWNoZWQgdG8gYSBIYXJkd2FyZSBvZmZsb2FkZWQgY2xhc3NpZmllcnMgYW5kIGFyZVxcbiAgOTU6XFx0XFx0ICBpbnZva2VkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBjbGFzc2lmaWNhdGlvbi4gQWN0aW9ucyBhcmUgdXNlZCB0b1xcbiAgOTY6XFx0XFx0ICBvdmVyd3JpdGUgdGhlIGNsYXNzaWZpY2F0aW9uIHJlc3VsdCwgaW5zdGFudGx5IGRyb3Agb3IgcmVkaXJlY3QgYW5kL29yXFxuICA5NzpcXHRcXHQgIHJlZm9ybWF0IHBhY2tldHMgaW4gd2lyZSBzcGVlZHMgd2l0aG91dCBpbnZvbHZpbmcgdGhlIGhvc3QgY3B1LlxcbiAgOTg6XFx0XFxuICA5OTpcXHRcXHQgIElmIHNldCB0byBOLCBUQyBvZmZsb2FkcyBpbiBib3RoIE5JQyBhbmQgc3dpdGNoZGV2IG1vZGVzIHdpbGwgYmUgZGlzYWJsZWQuXFxuIDEwMDpcXHRcXHQgIElmIHVuc3VyZSwgc2V0IHRvIFlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NDguODk3ODUxNTY0WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU0MTgwMDI1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNZWxsYW5veCBDb25uZWN0WCBEcml2ZXIgSW52ZXN0aWdhdGlvbioqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBvbiB0aGUgZHJpdmVyIGZvciBNZWxsYW5veCBDb25uZWN0WCBoYXJkd2FyZSBoZXJlLiBUaGUgY2hhbGxlbmdlLCBhcyBhbHdheXMgd2l0aCBmdXp6aW5nLCBpcyB0aGUgZW52aXJvbm1lbnQuIEkga25vdyBTeXprYWxsZXIgZG9lc24ndCBlbXVsYXRlIE1lbGxhbm94IGhhcmR3YXJlIGRpcmVjdGx5IOKAkyB0aGF0J3MgYSBrZXkgbGltaXRhdGlvbi4gQnV0Li4uIHdhaXQsIGJlZm9yZSBJIHJ1bGUgaXQgb3V0IGNvbXBsZXRlbHksIGlzIHRoZXJlICphbnkqIHZpcnR1YWwgZGV2aWNlIG9wdGlvbiBvdXQgdGhlcmUgZm9yIGBtbHg1YD8gSSBuZWVkIHRvIGNoZWNrIGZvciBhIHZpcnR1YWwgZGF0YSBwYXRoIGFic3RyYWN0aW9uLCBzb21ldGhpbmcgbGlrZSBgdmRwYWAgbWF5YmUsIG9yIGEgc2ltaWxhciB0ZWNobm9sb2d5IHRoYXQgbWlnaHQgbGV0IG1lIGludGVyYWN0IHdpdGggdGhlIGRyaXZlciBpbiBhIHRlc3RhYmxlIHdheS4gSSBuZWVkIHRvIHNlZSBpZiB0aGVyZSdzICphbnl0aGluZyogSSBjYW4gbGV2ZXJhZ2Ugc2hvcnQgb2YgcmF3IGhhcmR3YXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MjQwLCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjo1Mi40Mzk2NTM3NTlaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU5MTY0NTI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy92ZHBhL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJcXG5GdWxsIG91dHB1dCBpcyB0b28gbG9uZywgc2hvd2luZyA1MDAgb3V0IG9mIDI2NjEgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvdmRwYS9LY29uZmlnPTcyPWNvbmZpZyBNTFg1X1ZEUEFfU1RFRVJJTkdfREVCVUdcXG4tLVxcbmRyaXZlcnMvdmRwYS9LY29uZmlnLTgwLVxcdCAgZGVidWdmcy4gT25jZSBjYW4gcmVhZCB0aGUgY291bnRlcnMgdXNpbmcsIGUuZy46XFxuZHJpdmVycy92ZHBhL0tjb25maWc6ODE6XFx0ICBjYXQgL3N5cy9rZXJuZWwvZGVidWcvbWx4NS9tbHg1X2NvcmUuc2YuMS92ZHBhLTAvcngvdW50YWdnZWQvdWNhc3QvcGFja2V0c1xcbmRyaXZlcnMvdmRwYS9LY29uZmlnOjgyOlxcdCAgY2F0IC9zeXMva2VybmVsL2RlYnVnL21seDUvbWx4NV9jb3JlLnNmLjEvdmRwYS0wL3J4L3VudGFnZ2VkL21jYXN0L2J5dGVzXFxuZHJpdmVycy92ZHBhL0tjb25maWctODMtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvTWFrZWZpbGU9NT1vYmotJChDT05GSUdfSUZDVkYpICAgICs9IGlmY3ZmL1xcbmRyaXZlcnMvdmRwYS9NYWtlZmlsZTo2Om9iai0kKENPTkZJR19NTFg1X1ZEUEEpICs9IG1seDUvXFxuZHJpdmVycy92ZHBhL01ha2VmaWxlLTctb2JqLSQoQ09ORklHX1ZQX1ZEUEEpICAgICs9IHZpcnRpb19wY2kvXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9NYWtlZmlsZToxOnN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyY3RyZWUpL2RyaXZlcnMvdmRwYS9tbHg1L2NvcmVcXG5kcml2ZXJzL3ZkcGEvbWx4NS9NYWtlZmlsZS0yLVxcbmRyaXZlcnMvdmRwYS9tbHg1L01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX01MWDVfVkRQQV9ORVQpICs9IG1seDVfdmRwYS5vXFxuZHJpdmVycy92ZHBhL21seDUvTWFrZWZpbGU6NDptbHg1X3ZkcGEtJChDT05GSUdfTUxYNV9WRFBBX05FVCkgKz0gbmV0L21seDVfdm5ldC5vIGNvcmUvcmVzb3VyY2VzLm8gY29yZS9tci5vIG5ldC9kZWJ1Zy5vXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3ZkcGEuaFxcdTAwM2VcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwOiNpbmNsdWRlIFxcdTAwM2NsaW51eC9tbHg1L2RyaXZlci5oXFx1MDAzZVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTEtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEzLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ6c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTUtXFx0dTY0IHN0YXJ0O1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0yNi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjI3OnN0cnVjdCBtbHg1X3ZkcGFfbXIge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMjgtXFx0dTMyIG1rZXk7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTQyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6NDM6c3RydWN0IG1seDVfdmRwYV9yZXNvdXJjZXMge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNDQtXFx0dTMyIHBkbjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjQ1OlxcdHN0cnVjdCBtbHg1X3VhcnNfcGFnZSAqdWFyO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNDYtXFx0dm9pZCBfX2lvbWVtICpraWNrX2FkZHI7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTUyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6NTM6c3RydWN0IG1seDVfY29udHJvbF92cSB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC01NC1cXHRzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC02OS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjcwOnN0cnVjdCBtbHg1X3ZkcGFfd3FfZW50IHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTcxLVxcdHN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6NzI6XFx0c3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2O1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtNzMtfTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg9ODI9ZW51bSB7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTg1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6ODY6c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6ODc6XFx0c3RydWN0IG1seDVfdmRwYV9tciAqbXJbTUxYNV9WRFBBX05VTV9BU107XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC04OC1cXHR1bnNpZ25lZCBpbnQgZ3JvdXAyYXNpZFtNTFg1X1ZEUEFfTlVNVlFfR1JPVVBTXTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTAyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTAzOnN0cnVjdCBtbHg1X3ZkcGFfZGV2IHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEwNC1cXHRzdHJ1Y3QgdmRwYV9kZXZpY2UgdmRldjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwNTpcXHRzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqbWRldjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEwNjpcXHRzdHJ1Y3QgbWx4NV92ZHBhX3Jlc291cmNlcyByZXM7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxMDc6XFx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgbXJlcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEwOC1cXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTE1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTE2OlxcdHN0cnVjdCBtbHg1X2NvbnRyb2xfdnEgY3ZxO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTE3LVxcdHN0cnVjdCB3b3JrcXVldWVfc3RydWN0ICp3cTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTE5LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTIwOlxcdHN0cnVjdCBtbHg1X2FzeW5jX2N0eCBhc3luY19jdHg7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMjEtfTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEyMi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEyMzpzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMjQtXFx0aW50IGVycjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEyNTpcXHRzdHJ1Y3QgbWx4NV9hc3luY193b3JrIGNiX3dvcms7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xMjYtXFx0c3RydWN0IGNvbXBsZXRpb24gY21kX2RvbmU7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTEzNC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzNTppbnQgbWx4NV92ZHBhX2NyZWF0ZV90aXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgdTMyICp0aXNuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzNjp2b2lkIG1seDVfdmRwYV9kZXN0cm95X3RpcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHUzMiB0aXNuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzNzppbnQgbWx4NV92ZHBhX2NyZWF0ZV9ycXQoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgaW50IGlubGVuLCB1MzIgKnJxdG4pO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTM4OmludCBtbHg1X3ZkcGFfbW9kaWZ5X3JxdChzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHZvaWQgKmluLCBpbnQgaW5sZW4sIHUzMiBycXRuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjEzOTp2b2lkIG1seDVfdmRwYV9kZXN0cm95X3JxdChzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHUzMiBycXRuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0MDppbnQgbWx4NV92ZHBhX2NyZWF0ZV90aXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB2b2lkICppbiwgdTMyICp0aXJuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0MTp2b2lkIG1seDVfdmRwYV9kZXN0cm95X3RpcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHUzMiB0aXJuKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0MjppbnQgbWx4NV92ZHBhX2FsbG9jX3RyYW5zcG9ydF9kb21haW4oc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgKnRkbik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDM6dm9pZCBtbHg1X3ZkcGFfZGVhbGxvY190cmFuc3BvcnRfZG9tYWluKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyIHRkbik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNDQ6aW50IG1seDVfdmRwYV9hbGxvY19yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE0NTp2b2lkIG1seDVfdmRwYV9mcmVlX3Jlc291cmNlcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ2OmludCBtbHg1X3ZkcGFfY3JlYXRlX21rZXkoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1MzIgKm1rZXksIHUzMiAqaW4sXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNDctXFx0XFx0XFx0ICBpbnQgaW5sZW4pO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ4OmludCBtbHg1X3ZkcGFfZGVzdHJveV9ta2V5KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgdTMyIG1rZXkpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTQ5OnN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1seDVfdmRwYV9jcmVhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTUwLVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1MTppbnQgbWx4NV92ZHBhX2luaXRfbXJfcmVzb3VyY2VzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNTI6dm9pZCBtbHg1X3ZkcGFfZGVzdHJveV9tcl9yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1Mzp2b2lkIG1seDVfdmRwYV9jbGVhbl9tcnMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1NDp2b2lkIG1seDVfdmRwYV9nZXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU1OlxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1Njp2b2lkIG1seDVfdmRwYV9wdXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU3OlxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE1ODp2b2lkIG1seDVfdmRwYV91cGRhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTU5OlxcdFxcdFxcdCBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2MC1cXHRcXHRcXHQgdW5zaWduZWQgaW50IGFzaWQpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTYxOmludCBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNjItXFx0XFx0XFx0XFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2My1cXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgYXNpZCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNjQ6aW50IG1seDVfdmRwYV9jcmVhdGVfZG1hX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNjU6aW50IG1seDVfdmRwYV9yZXNldF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHVuc2lnbmVkIGludCBhc2lkKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE2NjppbnQgbWx4NV92ZHBhX2V4ZWNfYXN5bmNfY21kcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNjc6XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9hc3luY19jbWQgKmNtZHMsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNjgtXFx0XFx0XFx0ICAgICAgaW50IG51bV9jbWRzKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE2OS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE3MDojZGVmaW5lIG1seDVfdmRwYV9lcnIoX19kZXYsIGZvcm1hdCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNzEtXFx0ZGV2X2VycigoX19kZXYpLVxcdTAwM2VtZGV2LVxcdTAwM2VkZXZpY2UsIFxcXCIlczolZDoocGlkICVkKSBlcnJvcjogXFxcIiBmb3JtYXQsIF9fZnVuY19fLCBfX0xJTkVfXywgICAgICAgIFxcXFxcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTc0LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmg6MTc1OiNkZWZpbmUgbWx4NV92ZHBhX3dhcm4oX19kZXYsIGZvcm1hdCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE3Ni1cXHRkZXZfd2FybigoX19kZXYpLVxcdTAwM2VtZGV2LVxcdTAwM2VkZXZpY2UsIFxcXCIlczolZDoocGlkICVkKSB3YXJuaW5nOiBcXFwiIGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgXFxcXFxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xNzgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaDoxNzk6I2RlZmluZSBtbHg1X3ZkcGFfaW5mbyhfX2RldiwgZm9ybWF0LCAuLi4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbWx4NV92ZHBhLmgtMTgwLVxcdGRldl9pbmZvKChfX2RldiktXFx1MDAzZW1kZXYtXFx1MDAzZWRldmljZSwgXFxcIiVzOiVkOihwaWQgJWQpOiBcXFwiIGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgICAgICAgICBcXFxcXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oLTE4Mi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21seDVfdmRwYS5oOjE4MzojZGVmaW5lIG1seDVfdmRwYV9kYmcoX19kZXYsIGZvcm1hdCwgLi4uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tbHg1X3ZkcGEuaC0xODQtXFx0ZGV2X2RlYnVnKChfX2RldiktXFx1MDAzZW1kZXYtXFx1MDAzZWRldmljZSwgXFxcIiVzOiVkOihwaWQgJWQpOiBcXFwiIGZvcm1hdCwgX19mdW5jX18sIF9fTElORV9fLCAgICAgICAgICAgIFxcXFxcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03LSNpbmNsdWRlIFxcdTAwM2NsaW51eC9zdHJpbmcuaFxcdTAwM2VcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODojaW5jbHVkZSBcXHUwMDNjbGludXgvbWx4NS9xcC5oXFx1MDAzZVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo5OiNpbmNsdWRlIFxcXCJtbHg1X3ZkcGEuaFxcXCJcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTAtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM9MjA9c3RhdGljIGludCBnZXRfb2N0b19sZW4odTY0IGxlbiwgaW50IHBhZ2Vfc2hpZnQpXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI5OnN0YXRpYyB2b2lkIG1seDVfc2V0X2FjY2Vzc19tb2RlKHZvaWQgKm1rYywgaW50IG1vZGUpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMwLXtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzU6c3RhdGljIHZvaWQgcG9wdWxhdGVfbXR0cyhzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIsIF9fYmU2NCAqbXR0KVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNi17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTEtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjUyOnN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUzLVxcdHU4IG91dFtNTFg1X1NUX1NaX0JZVEVTKGNyZWF0ZV9ta2V5X291dCldO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTU3LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1ODpzdHJ1Y3QgbWx4NV9kZXN0cm95X21rZXlfbWVtIHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTktXFx0dTggb3V0W01MWDVfU1RfU1pfQllURVMoZGVzdHJveV9ta2V5X291dCldO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTYyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2MzpzdGF0aWMgdm9pZCBmaWxsX2NyZWF0ZV9kaXJlY3RfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NDpcXHRcXHRcXHRcXHQgIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjU6XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbWx4NV9jcmVhdGVfbWtleV9tZW0gKm1lbSlcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjYte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTczLVxcdE1MWDVfU0VUKG1rYywgbWtjLCBsciwgISEobXItXFx1MDAzZXBlcm0gXFx1MDAyNiBWSE9TVF9NQVBfUk8pKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzQ6XFx0bWx4NV9zZXRfYWNjZXNzX21vZGUobWtjLCBNTFg1X01LQ19BQ0NFU1NfTU9ERV9NVFQpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NS1cXHRNTFg1X1NFVChta2MsIG1rYywgcXBuLCAweGZmZmZmZik7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODktXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjkwOnN0YXRpYyB2b2lkIGNyZWF0ZV9kaXJlY3RfbXJfZW5kKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTE6XFx0XFx0XFx0XFx0IHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6OTI6XFx0XFx0XFx0XFx0IHN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSAqbWVtKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy05My17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtOTUtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjk2OlxcdG1yLVxcdTAwM2VtciA9IG1seDVfaWR4X3RvX21rZXkobWtleV9pbmRleCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTk3LX1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtOTgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjk5OnN0YXRpYyB2b2lkIGZpbGxfZGVzdHJveV9kaXJlY3RfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMDA6XFx0XFx0XFx0XFx0ICAgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yLFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMDE6XFx0XFx0XFx0XFx0ICAgc3RydWN0IG1seDVfZGVzdHJveV9ta2V5X21lbSAqbWVtKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDIte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEwNi1cXHRNTFg1X1NFVChkZXN0cm95X21rZXlfaW4sIGluLCBvcGNvZGUsIE1MWDVfQ01EX09QX0RFU1RST1lfTUtFWSk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjEwNzpcXHRNTFg1X1NFVChkZXN0cm95X21rZXlfaW4sIGluLCBta2V5X2luZGV4LCBtbHg1X21rZXlfdG9faWR4KG1yLVxcdTAwM2VtcikpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDgtfVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMDktXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExMDpzdGF0aWMgdm9pZCBkZXN0cm95X2RpcmVjdF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTExLXtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTQtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExNTpcXHRtbHg1X3ZkcGFfZGVzdHJveV9ta2V5KG12ZGV2LCBtci1cXHUwMDNlbXIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTYtfVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMTctXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjExODpzdGF0aWMgdTY0IG1hcF9zdGFydChzdHJ1Y3Qgdmhvc3RfaW90bGJfbWFwICptYXAsIHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICptcilcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTE5LXtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xMjItXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjEyMzpzdGF0aWMgdTY0IG1hcF9lbmQoc3RydWN0IHZob3N0X2lvdGxiX21hcCAqbWFwLCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEyNC17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTI3LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMjg6c3RhdGljIHU2NCBtYXBsZW4oc3RydWN0IHZob3N0X2lvdGxiX21hcCAqbWFwLCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEyOS17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTM1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxMzY6c3RhdGljIHU2NCBpbmRpcl9zdGFydF9hZGRyKHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1rZXkpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTEzNy17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjEzODpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTM5LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNDA6XFx0cyA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbChcXHUwMDI2bWtleS1cXHUwMDNlaGVhZCwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIsIGxpc3QpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNDEtXFx0aWYgKCFzKVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE0Ni1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTQ3OnN0YXRpYyB1NjQgaW5kaXJfbGVuKHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1rZXkpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE0OC17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE0OTpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MTUwOlxcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICplO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNTEtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE1MjpcXHRzID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKFxcdTAwMjZta2V5LVxcdTAwM2VoZWFkLCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciwgbGlzdCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE1My1cXHRpZiAoIXMpXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTU1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNTY6XFx0ZSA9IGxpc3RfbGFzdF9lbnRyeShcXHUwMDI2bWtleS1cXHUwMDNlaGVhZCwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIsIGxpc3QpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNTctXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM9MTY0PXN0YXRpYyB1MzIga2xtX2Jjb3VudCh1NjQgc2l6ZSlcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0xNjgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE2OTpzdGF0aWMgdm9pZCBmaWxsX2luZGlyKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbWtleSwgdm9pZCAqaW4pXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTE3MC17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE3MTpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoxNzI6XFx0c3RydWN0IG1seDVfa2xtICprbG1hcnI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjE3MzpcXHRzdHJ1Y3QgbWx4NV9rbG0gKmtsbTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMTc0LVxcdGJvb2wgZmlyc3QgPSB0cnVlO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jPTIwND1zdGF0aWMgaW50IGtsbV9ieXRlX3NpemUoaW50IG5rbG1zKVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIxMC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjExOnN0YXRpYyBpbnQgY3JlYXRlX2RpcmVjdF9rZXlzKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIxMi17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjIxMzpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjE0OlxcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpkbXI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTIxNS1cXHRpbnQgZXJyID0gMDtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yMjItXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShkbXIsIFxcdTAwMjZtci1cXHUwMDNlaGVhZCwgbGlzdCkge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyMjM6XFx0XFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yMjQtXFx0XFx0aW50IG10dGxlbiwgbXR0Y291bnQ7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjQzLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNDQ6XFx0ZXJyID0gbWx4NV92ZHBhX2V4ZWNfYXN5bmNfY21kcyhtdmRldiwgY21kcywgbXItXFx1MDAzZW51bV9kaXJlY3RzKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjQ1LVxcdGlmIChlcnIpIHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjQ2LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNDc6XFx0XFx0bWx4NV92ZHBhX2VycihtdmRldiwgXFxcImVycm9yIGlzc3VpbmcgTVRUIG1rZXkgY3JlYXRpb24gZm9yIGRpcmVjdCBtcnM6ICVkXFxcXG5cXFwiLCBlcnIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNDgtXFx0XFx0Z290byBkb25lO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI1Mi1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5KGRtciwgXFx1MDAyNm1yLVxcdTAwM2VoZWFkLCBsaXN0KSB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI1MzpcXHRcXHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kID0gXFx1MDAyNmNtZHNbaSsrXTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjU0OlxcdFxcdHN0cnVjdCBtbHg1X2NyZWF0ZV9ta2V5X21lbSAqY21kX21lbTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjU1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNTY6XFx0XFx0Y21kX21lbSA9IGNvbnRhaW5lcl9vZihjbWQtXFx1MDAzZW91dCwgc3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtLCBvdXQpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNTctXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjYxLVxcdFxcdFxcdGVyciA9IGVyciA/IGVyciA6IGNtZC1cXHUwMDNlZXJyO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNjI6XFx0XFx0XFx0bWx4NV92ZHBhX2VycihtdmRldiwgXFxcImVycm9yIGNyZWF0aW5nIE1UVCBta2V5IFsweCVsbHgsIDB4JWxseF06ICVkXFxcXG5cXFwiLFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNjMtXFx0XFx0XFx0XFx0ZG1yLVxcdTAwM2VzdGFydCwgZG1yLVxcdTAwM2VlbmQsIGNtZC1cXHUwMDNlZXJyKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNjgtXFx0Zm9yIChpID0gaS0xOyBpIFxcdTAwM2U9IDA7IGktLSkge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNjk6XFx0XFx0c3RydWN0IG1seDVfY3JlYXRlX21rZXlfbWVtICpjbWRfbWVtO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yNzAtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI3MTpcXHRcXHRjbWRfbWVtID0gY29udGFpbmVyX29mKGNtZHNbaV0ub3V0LCBzdHJ1Y3QgbWx4NV9jcmVhdGVfbWtleV9tZW0sIG91dCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI3Mi1cXHRcXHRrdmZyZWUoY21kX21lbSk7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMjc4LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyNzk6REVGSU5FX0ZSRUUoZnJlZV9jbWRzLCBzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqLCBrdmZyZWUoX1QpKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODA6REVGSU5FX0ZSRUUoZnJlZV9jbWRfbWVtLCBzdHJ1Y3QgbWx4NV9kZXN0cm95X21rZXlfbWVtICosIGt2ZnJlZShfVCkpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTI4MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MjgyOnN0YXRpYyBpbnQgZGVzdHJveV9kaXJlY3Rfa2V5cyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yODMte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzoyODQ6XFx0c3RydWN0IG1seDVfZGVzdHJveV9ta2V5X21lbSAqY21kX21lbSBfX2ZyZWUoZnJlZV9jbWRfbWVtKSA9IE5VTEw7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI4NTpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2FzeW5jX2NtZCAqY21kcyBfX2ZyZWUoZnJlZV9jbWRzKSA9IE5VTEw7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjI4NjpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0yODctXFx0aW50IGVyciA9IDA7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzAzLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozMDQ6XFx0ZXJyID0gbWx4NV92ZHBhX2V4ZWNfYXN5bmNfY21kcyhtdmRldiwgY21kcywgbXItXFx1MDAzZW51bV9kaXJlY3RzKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzA1LVxcdGlmIChlcnIpIHtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzA2LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozMDc6XFx0XFx0bWx4NV92ZHBhX2VycihtdmRldiwgXFxcImVycm9yIGlzc3VpbmcgTVRUIG1rZXkgZGVsZXRpb24gZm9yIGRpcmVjdCBtcnM6ICVkXFxcXG5cXFwiLCBlcnIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMDgtXFx0XFx0cmV0dXJuIGVycjtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMTItXFx0bGlzdF9mb3JfZWFjaF9lbnRyeShkbXIsIFxcdTAwMjZtci1cXHUwMDNlaGVhZCwgbGlzdCkge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozMTM6XFx0XFx0c3RydWN0IG1seDVfdmRwYV9hc3luY19jbWQgKmNtZCA9IFxcdTAwMjZjbWRzW2krK107XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMxNC1cXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMTctXFx0XFx0XFx0ZXJyID0gZXJyID8gZXJyIDogY21kLVxcdTAwM2VlcnI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjMxODpcXHRcXHRcXHRtbHg1X3ZkcGFfZXJyKG12ZGV2LCBcXFwiZXJyb3IgZGVsZXRpbmcgTVRUIG1rZXkgWzB4JWxseCwgMHglbGx4XTogJWRcXFxcblxcXCIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMxOS1cXHRcXHRcXHRcXHRkbXItXFx1MDAzZXN0YXJ0LCBkbXItXFx1MDAzZWVuZCwgY21kLVxcdTAwM2VlcnIpO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTMyNS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzI2OnN0YXRpYyBpbnQgY3JlYXRlX2luZGlyZWN0X2tleShzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zMjcte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM0OC1cXHRNTFg1X1NFVChta2MsIG1rYywgbHIsIDEpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzozNDk6XFx0bWx4NV9zZXRfYWNjZXNzX21vZGUobWtjLCBNTFg1X01LQ19BQ0NFU1NfTU9ERV9LTE1TKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzUwLVxcdE1MWDVfU0VUKG1rYywgbWtjLCBxcG4sIDB4ZmZmZmZmKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNTYtXFx0ZmlsbF9pbmRpcihtdmRldiwgbXIsIGluKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzU3OlxcdGVyciA9IG1seDVfdmRwYV9jcmVhdGVfbWtleShtdmRldiwgXFx1MDAyNm1yLVxcdTAwM2Vta2V5LCBpbiwgaW5sZW4pO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNTgtXFx0a2ZyZWUoaW4pO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM2MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzYyOnN0YXRpYyB2b2lkIGRlc3Ryb3lfaW5kaXJlY3Rfa2V5KHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbWtleSlcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtMzYzLXtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6MzY0OlxcdG1seDVfdmRwYV9kZXN0cm95X21rZXkobXZkZXYsIG1rZXktXFx1MDAzZW1rZXkpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjUtfVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy0zNjYtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjM2NzpzdGF0aWMgaW50IG1hcF9kaXJlY3RfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCBzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqbXIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTM2OC1cXHRcXHRcXHQgc3RydWN0IHZob3N0X2lvdGxiICppb3RsYilcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MDUtXFx0XFx0XFx0aWYgKCFzZykge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo0MDY6XFx0XFx0XFx0XFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFxcXCJzZyBudWxsLiBzdGFydCAweCVsbHgsIGVuZCAweCVsbHhcXFxcblxcXCIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQwNy1cXHRcXHRcXHRcXHRcXHQgICAgICAgbWFwLVxcdTAwM2VzdGFydCwgbWFwLVxcdTAwM2VsYXN0ICsgMSk7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNDMyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo0MzM6c3RhdGljIHZvaWQgdW5tYXBfZGlyZWN0X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00MzQte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ0MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDQyOnN0YXRpYyBpbnQgYWRkX2RpcmVjdF9jaGFpbihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ0MzpcXHRcXHRcXHQgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ0NC1cXHRcXHRcXHQgICAgdTY0IHN0YXJ0LFxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ0OC17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ0OTpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo0NTA6XFx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm47XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTQ1MS1cXHRMSVNUX0hFQUQodG1wKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy00OTctICovXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjQ5ODpzdGF0aWMgaW50IGNyZWF0ZV91c2VyX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NDk5OlxcdFxcdFxcdCAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwMC1cXHRcXHRcXHQgIHN0cnVjdCB2aG9zdF9pb3RsYiAqaW90bGIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwMS17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjUwMjpcXHRzdHJ1Y3QgbWx4NV92ZHBhX2RpcmVjdF9tciAqZG1yO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1MDM6XFx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKm47XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTUwNC1cXHRzdHJ1Y3Qgdmhvc3RfaW90bGJfbWFwICptYXA7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTY1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1NjY6c3RhdGljIGludCBjcmVhdGVfZG1hX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTU2Ny17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNTg1LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1ODY6XFx0ZXJyID0gbWx4NV92ZHBhX2NyZWF0ZV9ta2V5KG12ZGV2LCBcXHUwMDI2bXItXFx1MDAzZW1rZXksIGluLCBpbmxlbik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTU4Ny1cXHRpZiAoIWVycilcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTMtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjU5NDpzdGF0aWMgdm9pZCBkZXN0cm95X2RtYV9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTUte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo1OTY6XFx0bWx4NV92ZHBhX2Rlc3Ryb3lfbWtleShtdmRldiwgbXItXFx1MDAzZW1rZXkpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy01OTctfVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jPTYyMz1zdGF0aWMgdm9pZCBwcnVuZV9pb3RsYihzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTYyNy1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjI4OnN0YXRpYyB2b2lkIGRlc3Ryb3lfdXNlcl9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02Mjkte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2MzA6XFx0c3RydWN0IG1seDVfdmRwYV9kaXJlY3RfbXIgKmRtcjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjMxOlxcdHN0cnVjdCBtbHg1X3ZkcGFfZGlyZWN0X21yICpuO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02MzItXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjQxLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NDI6c3RhdGljIHZvaWQgX21seDVfdmRwYV9kZXN0cm95X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldiwgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY0My17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjY0LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NjU6c3RhdGljIHZvaWQgbWx4NV92ZHBhX21yX2djX2hhbmRsZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02NjYte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2Njc6XFx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgKm1yZXM7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjY2ODpcXHRzdHJ1Y3QgbWx4NV92ZHBhX21yICptciwgKnRtcDtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NjY5OlxcdHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjcwLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2NzE6XFx0bXJlcyA9IGNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgbWx4NV92ZHBhX21yX3Jlc291cmNlcywgZ2NfZHdvcmtfZW50LndvcmspO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02NzItXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjgwLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2ODE6XFx0bXZkZXYgPSBjb250YWluZXJfb2YobXJlcywgc3RydWN0IG1seDVfdmRwYV9kZXYsIG1yZXMpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy02ODItXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY4My1cXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobXIsIHRtcCwgXFx1MDAyNm1yZXMtXFx1MDAzZW1yX2djX2xpc3RfaGVhZCwgbXJfbGlzdCkge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2ODQ6XFx0XFx0X21seDVfdmRwYV9kZXN0cm95X21yKG12ZGV2LCBtcik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY4NS1cXHR9XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjg5LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2OTA6c3RhdGljIHZvaWQgX21seDVfdmRwYV9wdXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo2OTE6XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTY5Mi17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjY5MzpcXHRzdHJ1Y3QgbWx4NV92ZHBhX21yX3Jlc291cmNlcyAqbXJlcyA9IFxcdTAwMjZtdmRldi1cXHUwMDNlbXJlcztcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNjk0LVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcwNC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzA1OnZvaWQgbWx4NV92ZHBhX3B1dF9tcihzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYsXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcwNjpcXHRcXHQgICAgICBzdHJ1Y3QgbWx4NV92ZHBhX21yICptcilcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzA3LXtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzA4LVxcdG11dGV4X2xvY2soXFx1MDAyNm12ZGV2LVxcdTAwM2VtcmVzLmxvY2spO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MDk6XFx0X21seDVfdmRwYV9wdXRfbXIobXZkZXYsIG1yKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzEwLVxcdG11dGV4X3VubG9jayhcXHUwMDI2bXZkZXYtXFx1MDAzZW1yZXMubG9jayk7XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzEyLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MTM6c3RhdGljIHZvaWQgX21seDVfdmRwYV9nZXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MTQ6XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVfdmRwYV9tciAqbXIpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTcxNS17XFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzIxLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MjI6dm9pZCBtbHg1X3ZkcGFfZ2V0X21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzIzOlxcdFxcdCAgICAgIHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MjQte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MjUtXFx0bXV0ZXhfbG9jayhcXHUwMDI2bXZkZXYtXFx1MDAzZW1yZXMubG9jayk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjcyNjpcXHRfbWx4NV92ZHBhX2dldF9tcihtdmRldiwgbXIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MjctXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZtdmRldi1cXHUwMDNlbXJlcy5sb2NrKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MjktXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjczMDp2b2lkIG1seDVfdmRwYV91cGRhdGVfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3MzE6XFx0XFx0XFx0IHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm5ld19tcixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzMyLVxcdFxcdFxcdCB1bnNpZ25lZCBpbnQgYXNpZClcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzMzLXtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzM0OlxcdHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm9sZF9tciA9IG12ZGV2LVxcdTAwM2VtcmVzLm1yW2FzaWRdO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03MzUtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzM3LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3Mzg6XFx0X21seDVfdmRwYV9wdXRfbXIobXZkZXYsIG9sZF9tcik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTczOS1cXHRtdmRldi1cXHUwMDNlbXJlcy5tclthc2lkXSA9IG5ld19tcjtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NDMtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc0NDpzdGF0aWMgdm9pZCBtbHg1X3ZkcGFfc2hvd19tcl9sZWFrcyhzdHJ1Y3QgbWx4NV92ZHBhX2RldiAqbXZkZXYpXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc0NS17XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc0NjpcXHRzdHJ1Y3QgbWx4NV92ZHBhX21yICptcjtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzQ3LVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc1MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzUyOlxcdFxcdG1seDVfdmRwYV93YXJuKG12ZGV2LCBcXFwibWtleSBzdGlsbCBhbGl2ZSBhZnRlciByZXNvdXJjZSBkZWxldGU6IFxcXCJcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzUzLVxcdFxcdFxcdFxcdCAgICAgIFxcXCJtcjogJXAsIG1rZXk6IDB4JXgsIHJlZmNvdW50OiAldVxcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NjAtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc2MTp2b2lkIG1seDVfdmRwYV9jbGVhbl9tcnMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NjIte1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTc2Ni1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIE1MWDVfVkRQQV9OVU1fQVM7IGkrKylcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6NzY3OlxcdFxcdG1seDVfdmRwYV91cGRhdGVfbXIobXZkZXYsIE5VTEwsIGkpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NjgtXFxuLS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtNzcwLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo3NzE6XFx0bWx4NV92ZHBhX3Nob3dfbXJfbGVha3MobXZkZXYpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NzItfVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NzMtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjc3NDpzdGF0aWMgaW50IF9tbHg1X3ZkcGFfY3JlYXRlX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6Nzc1OlxcdFxcdFxcdFxcdHN0cnVjdCBtbHg1X3ZkcGFfbXIgKm1yLFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy03NzYtXFx0XFx0XFx0XFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYilcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MTMtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjgxNDpzdHJ1Y3QgbWx4NV92ZHBhX21yICptbHg1X3ZkcGFfY3JlYXRlX21yKHN0cnVjdCBtbHg1X3ZkcGFfZGV2ICptdmRldixcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODE1LVxcdFxcdFxcdFxcdFxcdCBzdHJ1Y3Qgdmhvc3RfaW90bGIgKmlvdGxiKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MTYte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4MTc6XFx0c3RydWN0IG1seDVfdmRwYV9tciAqbXI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTgxOC1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTgyNC1cXHRtdXRleF9sb2NrKFxcdTAwMjZtdmRldi1cXHUwMDNlbXJlcy5sb2NrKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODI1OlxcdGVyciA9IF9tbHg1X3ZkcGFfY3JlYXRlX21yKG12ZGV2LCBtciwgaW90bGIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MjYtXFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZtdmRldi1cXHUwMDNlbXJlcy5sb2NrKTtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04MzktXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg0MDppbnQgbWx4NV92ZHBhX3VwZGF0ZV9jdnFfaW90bGIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LFxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NDEtXFx0XFx0XFx0XFx0c3RydWN0IHZob3N0X2lvdGxiICppb3RsYixcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NTgtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg1OTppbnQgbWx4NV92ZHBhX2NyZWF0ZV9kbWFfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NjAte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4NjE6XFx0c3RydWN0IG1seDVfdmRwYV9tciAqbXI7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2Mi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODYzOlxcdG1yID0gbWx4NV92ZHBhX2NyZWF0ZV9tcihtdmRldiwgTlVMTCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2NC1cXHRpZiAoSVNfRVJSKG1yKSlcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NjYtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg2NzpcXHRtbHg1X3ZkcGFfdXBkYXRlX21yKG12ZGV2LCBtciwgMCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg2OC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODY5OlxcdHJldHVybiBtbHg1X3ZkcGFfdXBkYXRlX2N2cV9pb3RsYihtdmRldiwgTlVMTCwgMCk7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg3MC19XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg3MS1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODcyOmludCBtbHg1X3ZkcGFfcmVzZXRfbXIoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2LCB1bnNpZ25lZCBpbnQgYXNpZClcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODczLXtcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzYtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg3NzpcXHRtbHg1X3ZkcGFfdXBkYXRlX21yKG12ZGV2LCBOVUxMLCBhc2lkKTtcXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmMtODc4LVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04NzktXFx0aWYgKGFzaWQgPT0gMCBcXHUwMDI2XFx1MDAyNiBNTFg1X0NBUF9HRU4obXZkZXYtXFx1MDAzZW1kZXYsIHVtZW1fdWlkXzApKSB7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg4MDpcXHRcXHRpZiAobWx4NV92ZHBhX2NyZWF0ZV9kbWFfbXIobXZkZXYpKVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4ODE6XFx0XFx0XFx0bWx4NV92ZHBhX3dhcm4obXZkZXYsIFxcXCJjcmVhdGUgRE1BIE1SIGZhaWxlZFxcXFxuXFxcIik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg4Mi1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4ODM6XFx0XFx0bWx4NV92ZHBhX3VwZGF0ZV9jdnFfaW90bGIobXZkZXYsIE5VTEwsIGFzaWQpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04ODQtXFx0fVxcbi0tXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg4OC1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODg5OmludCBtbHg1X3ZkcGFfaW5pdF9tcl9yZXNvdXJjZXMoc3RydWN0IG1seDVfdmRwYV9kZXYgKm12ZGV2KVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTAte1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYzo4OTE6XFx0c3RydWN0IG1seDVfdmRwYV9tcl9yZXNvdXJjZXMgKm1yZXMgPSBcXHUwMDI2bXZkZXYtXFx1MDAzZW1yZXM7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg5Mi1cXG5kcml2ZXJzL3ZkcGEvbWx4NS9jb3JlL21yLmM6ODkzOlxcdG1yZXMtXFx1MDAzZXdxX2djID0gY3JlYXRlX3NpbmdsZXRocmVhZF93b3JrcXVldWUoXFxcIm1seDVfdmRwYV9tcl9nY1xcXCIpO1xcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTQtXFx0aWYgKCFtcmVzLVxcdTAwM2V3cV9nYylcXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy04OTYtXFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jOjg5NzpcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2bXJlcy1cXHUwMDNlZ2NfZHdvcmtfZW50LCBtbHg1X3ZkcGFfbXJfZ2NfaGFuZGxlcik7XFxuZHJpdmVycy92ZHBhL21seDUvY29yZS9tci5jLTg5OC1cXG4tLVxcbmRyaXZlcnMvdmRwYS9tbHg1L2NvcmUvbXIuYy05MDYtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMyOjUyLjQ5ODgyNjQ0NFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTM3MzE1NTgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIGEgU3l6Ym90LVRlc3RlZCBNTFg1IERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIHRoZSBwYXRjaCBpcyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AuIFRoYXQncyB0aGUgY29yZSBFdGhlcm5ldCBkcml2ZXIgZm9yIHRoZSBNTFg1IGhhcmR3YXJlLCBnb3QgaXQuIEFuZCB0aGUgc3BlY2lmaWMgZnVuY3Rpb24sIGBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2YCwgaGludHMgYXQgc29tZXRoaW5nIHJlbGF0ZWQgdG8gdGhlIE1QViBmZWF0dXJlIG9yIHNvbWUgc29ydCBvZiBkZXZpY2UgY29tbXVuaWNhdGlvbiBldmVudCBoYW5kbGluZy4gQnV0IGhvbGQgb24gYSBzZWNvbmQuLi4gaXMgdGhpcyBldmVuICpyZWFjaGFibGUqIGluIGEgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQ/IE5vcm1hbGx5LCB0aGVzZSBoYXJkd2FyZSBkcml2ZXJzIGFyZSBjb21wbGV0ZWx5IGluYWNjZXNzaWJsZSBpbiBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSB1bmxlc3MgeW91IGhhdmUgYSBlbXVsYXRlZCBQQ0kgZGV2aWNlLiBBbmQsIGFzIGZhciBhcyBJIGtub3csIHRoZXJlIGlzbid0IGFuIE1MWDUgZW11bGF0b3IgaW4gUUVNVSBvciB0aGUga2VybmVsLlxuXG5Ob3csIHdhaXQuLi4gc3l6Ym90IHVzZXMgUUVNVSBhbmQgR0NFLCBkb2Vzbid0IGl0PyBBbmQgU3l6a2FsbGVyIGRlZmluaXRlbHkgZG9lc24ndCBoYXZlIGFuIE1MWDUgZW11bGF0b3IuIEhtbS4uLiB0aGUgY29tbWl0IG1lc3NhZ2Ugc2F5cyBcInN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1wiLiBUaGlzIG1lYW5zIHNvbWVvbmUgc3VibWl0dGVkIHRoZSBwYXRjaCwgYW5kIHN5emJvdCdzIHJ1bm5pbmcgdGVzdHMgb24gaXQuIFRoYXQncyBnb29kLCBidXQgaG93IGlzIHRoaXMgZXZlbiAqcG9zc2libGUqPyBJZiB0aGUgcGF0Y2ggaXMgaW4gYSBoYXJkd2FyZSBkcml2ZXIgdGhhdCBpc24ndCBhY2Nlc3NpYmxlLCBzeXpib3Qgc2hvdWxkbid0IGJlIGFibGUgdG8gZnV6eiBpdCEgXG5cbkkgbmVlZCB0byBkaWcgZGVlcGVyLiBJIGhhdmUgdG8gY2hlY2sgaWYgdGhlIGBtbHg1YCBkcml2ZXIgaXMgZXZlbiByZWFjaGFibGUuIElzIHRoZXJlICphbnkqIGBtbHg1YCBkZXZpY2UgZW11bGF0aW9uPyBDYW4gaXQgYmUgaW5zdGFudGlhdGVkIHZpYSBuZXRkZXZzaW0gb3Igc29tZXRoaW5nPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgc3l6Ym90J3MgdGVzdGluZyB0aGlzLiBUaGlzIGlzIGFuIGludGVyZXN0aW5nIGNvbnVuZHJ1bS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkxNDQsIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMDEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzI6NTguNjM2MTQ0MjE1WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODI3ODY0MDQsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwidG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvZHJpdmVycy9uZXQvbWx4c3cvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMjo1OC44MTg5NDA5MDlaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE2NTE3Mzk4NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IGludGVycHJldGF0aW9uIG9mIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBwcmVzZW50ZWQgaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipJbnZlc3RpZ2F0aW5nIERyaXZlciBEaWZmZXJlbnRpYXRpb24qKlxuXG5IbW0sIGhvbGQgb24gYSBzZWNvbmQuIE15IGluaXRpYWwgYXNzdW1wdGlvbiB3YXMgb2ZmLiBgbWx4c3dgIGlzIGEgZGlzdGluY3QgZHJpdmVyLCBpc24ndCBpdD8gT2theSwgc28gdGhhdCBtZWFucyB0aGUgYXBwcm9hY2ggSSB3YXMgdGhpbmtpbmcgYWJvdXQgZWFybGllciBsaWtlbHkgd29uJ3QgYXBwbHkgZGlyZWN0bHkuIEkgbmVlZCB0byBiZSBtb3JlIHByZWNpc2UgaW4gbXkgaW52ZXN0aWdhdGlvbi4gTGV0J3Mgc2VlLi4uIHRoZSBhcmNoaXRlY3R1cmUgb2YgdGhlIHNpbXVsYXRlZCBuZXR3b3JraW5nIGVudmlyb25tZW50IGlzIHdoYXQgSSdtIGludGVyZXN0ZWQgaW4sIHRvIHN0YXJ0LiBUbyBjbGFyaWZ5IG15IG1lbnRhbCBtb2RlbCwgSSBzaG91bGQgcHJvYmFibHkgY2hlY2sgZm9yIGFueSByZWxldmFudCBgbWx4NWAgY29tcG9uZW50cyBpbiB0aGUgYGRyaXZlcnMvbmV0L25ldGRldnNpbS9gIGRpcmVjdG9yeS4gVGhhdCdzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIHN0YXJ0LCBnaXZlbiB0aGUgY29udGV4dC4gSSdtIGxvb2tpbmcgZm9yIHNpbXVsYXRlZCBuZXR3b3JrIGRldmljZSBkcml2ZXJzIGFuZCBJIG5lZWQgdG8gZXN0YWJsaXNoIHRoZSByZWxhdGlvbnNoaXBzIHdpdGhpbiB0aGF0IHNpbXVsYXRlZCBkcml2ZXIuIExldCdzIGRpZyBpbiBhbmQgc2VlIHdoYXQncyB3aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTg0MiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjAxLjk4NDExNzA2N1oiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ5MDQwMzI3LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbHg1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L25ldGRldnNpbS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjAyLjEzMzE2NjQzNFoiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTM2NDUyODk4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgdGhlIG1seDUgRHJpdmVyOiBBIFJlYWxpdHkgQ2hlY2sqKlxuXG5Pa2F5LCBsZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIHRhcmdldHMgZm9yIGZ1enppbmcgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gSSdtIHNwZWNpZmljYWxseSBpbnRlcmVzdGVkIGluIGFueXRoaW5nIHRoYXQgaGFuZGxlcyBleHRlcm5hbCBpbnB1dCBvciBwb3RlbnRpYWxseSBoYXMgY29tcGxleCBzdGF0ZSB0cmFuc2l0aW9ucy4gQWgsIGhlcmUncyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAsIHdoaWNoIGlzIGNhbGxlZCBmcm9tIGBtbHg1X2RldmNvbV9zZW5kX2V2ZW50YC4gVGhhdCBzZWVtcyBsaWtlIGEgZ29vZCBzdGFydGluZyBwb2ludCB0byBpbnZlc3RpZ2F0ZS5cblxuQnV0IHdhaXQsIGEgcXVpY2sgcmVhbGl0eSBjaGVjayBpcyBpbiBvcmRlci4gVGhpcyBpcyB0aGUgTWVsbGFub3ggQ29ubmVjdFggY29yZSBkcml2ZXIsIGFuZCBteSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgaXQncyB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIGhhcmR3YXJlLiBUaGF0IG1ha2VzIGl0IG1vcmUgY2hhbGxlbmdpbmcgdG8gd29yayB3aXRoLiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AgcmVxdWlyZXMgYSBwaHlzaWNhbCBQQ0kgZGV2aWNlIOKAkyBDb25uZWN0WC00LzUvNi83IHNwZWNpZmljYWxseSDigJMgdG8gZnVuY3Rpb24uIFdpdGhvdXQgdGhhdCBoYXJkd2FyZSBwcmVzZW50LCB0aGUgYHByb2JlYCBmdW5jdGlvbiB3aWxsIG5ldmVyIGV2ZW4gYmUgY2FsbGVkLiBDb25zZXF1ZW50bHksIG5vbmUgb2YgdGhlIGNvZGUgd2l0aGluIHdpbGwgZXhlY3V0ZS5cblxuU28sIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCBgcHJvYmVgIGZ1bmN0aW9uIGFuZCBob3cgaXQgd29ya3MuIFRoYXQncyB0aGUgcmVhbCBlbnRyeSBwb2ludCBJIG5lZWQgdG8gZm9jdXMgb24uIExvb2tzIGxpa2UgSSdtIGdvaW5nIHRvIG5lZWQgdG8gbG9vayBhdCBob3cgdG8gZW11bGF0ZSB0aGUgaGFyZHdhcmUgdG8gZ2V0IGFueXdoZXJlIHVzZWZ1bCBpbiBhIGZ1enppbmcgc2NlbmFyaW8uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMTExLCJPdXRwdXRUb2tlbnMiOjQwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTc3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjA3LjI2OTYyMjYwMloiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI1MTE5MTY3MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYz0yMjQxPWludCBtbHg1X3JlY292ZXJfZGV2aWNlKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTIyNTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyMjUyOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBtbHg1X2NvcmVfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMtMjI1My1cXHQubmFtZSAgICAgICAgICAgPSBLQlVJTERfTU9ETkFNRSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6MDguNTIwODE4ODU1WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjk0MjQwMTE4NDMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRoIHRvIGEgUG90ZW50aWFsIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBzbyB3ZSdyZSBsb29raW5nIGF0IGEgUENJIGRyaXZlciwgc3BlY2lmaWNhbGx5IHNvbWV0aGluZyByZWxhdGVkIHRvIE1lbGxhbm94IENvbm5lY3RYIGhhcmR3YXJlLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzIGFsd2F5cywgXCJDYW4gUUVNVSBoZWxwIG1lIGhlcmU/XCIgSSBrbm93IFFFTVUgcHJldHR5IHdlbGw7IGl0IGhhcyB0aGUgdXN1YWwgc3VzcGVjdHMgZm9yIGVtdWxhdGVkIE5JQ3MgbGlrZSBgZTEwMDBgLCBgdmlydGlvLW5ldGAsIGFuZCB0aGUgcmVzdC4gQnV0IGRvZXMgaXQgZW11bGF0ZSBhbnkgTWVsbGFub3ggQ29ubmVjdFggdmVyc2lvbnMgbGlrZSB0aGUgNCwgNSwgNiwgb3IgNz8gTm8sIG5vdCBkaXJlY3RseS4gSSByZWNhbGwgc29tZSByZWNlbnQgYWRkaXRpb25zLCBidXQgYG1seDVgIGlzIG5vdCBhbW9uZyB0aGVtLlxuXG5UaGUgbmV4dCB0aG91Z2h0IGlzIGFsd2F5cyBTeXprYWxsZXIuIERvZXMgaXQgb2ZmZXIgYSBiYWNrZG9vcj8gRG9lcyBTeXprYWxsZXIgaGF2ZSBhbnkgd2F5IHRvIHJlYWNoIGl0P1xuXG5TeXprYWxsZXIgdXNlcyBgc3l6LWV4ZWN1dG9yYC4gQ2FuIGl0IGluamVjdCBQQ0kgZGV2aWNlcz8gV2l0aCBlaXRoZXIgYHZoY2lgIG9yIGB2ZmlvYD8gTm8sIFN5emthbGxlciBkb2Vzbid0IGVtdWxhdGUgYXJiaXRyYXJ5IFBDSSBkZXZpY2VzIGluIGEgZ2VuZXJpYyB3YXkuIEl0IGNhbiBmdXp6IFBDSSBmdW5jdGlvbmFsaXR5IHVzaW5nIGBzeXpfcGNpX2RldmljZWAsICppZiogUENJIGZ1enppbmcgaXMgZW5hYmxlZC4gV2FpdCwgU3l6a2FsbGVyICpkb2VzKiBoYXZlIFBDSSBmdXp6aW5nISBJbnRlcmVzdGluZy4uLlxuXG5TbywgU3l6a2FsbGVyIGNhbiBlbXVsYXRlIFBDSSBkZXZpY2VzLCBidXQgaG93PyBVc2luZyB0aGUgYHN5el9wY2lfZGV2aWNlYCBwc2V1ZG8tc3lzY2FsbC4gVGhhdCBpbmplY3RzIFBDSSBkZXZpY2VzLCBidXQgaG93PyBWaXJ0dWFsIFBDSSBob3N0IGNvbnRyb2xsZXIsIHJhdyBQQ0kgaW5qZWN0aW9uLCBvciB1c2VyLXNwYWNlIFBDSSBlbXVsYXRpb24/IEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQuIFdhaXQsIHRoZSBgc3l6X3BjaWAgbWVjaGFuaXNtLiBEb2VzIHRoYXQgdXNlIGB2ZmlvYCBvciBzaW1pbGFyPyBObywgU3l6a2FsbGVyJ3MgUENJIGZ1enplciBpbiBRRU1VIGNvbmZpZ3VyZXMgUENJIGNvbmZpZyBzcGFjZSwgTU1JTy9QSU8gaW4gUUVNVT8gTm8sIGl0IHVzZXMgYSBjdXN0b20gUENJIGRldmljZSBpbiBRRU1VIG9yIGEgc29mdHdhcmUgUENJIGhvc3QgYnJpZGdlLiBPa2F5LCB0aGF0J3Mgd2hhdCdzIGltcG9ydGFudC5cblxuVGhlIGNvcmUgcXVlc3Rpb24gbm93OiBjYW4gU3l6a2FsbGVyIGZ1enogUENJIGRyaXZlcnMsICppbiBnZW5lcmFsKj8gWWVzLCBpdCBjYW4hIEl0IGhhcyBhIGBzeXpfcGNpYCBzdWJzeXN0ZW0gc3BlY2lmaWNhbGx5IGZvciB0aGlzIHB1cnBvc2UuIEV4Y2VsbGVudC4gVGhhdCdzIGEgaHVnZSBwb3NpdGl2ZSBpbmRpY2F0b3IuXG5cbkFscmlnaHQsIGxldCdzIGVzdGFibGlzaCBzb21lIHByZS1jb25kaXRpb25zLiBBcmUgYENPTkZJR19QQ0lgIGFuZCBgQ09ORklHX01MWDVfQ09SRWAgZW5hYmxlZCB3aXRoaW4gU3l6a2FsbGVyJ3MgY29uZmlndXJhdGlvbj8gSWYgYm90aCBhcmUgZW5hYmxlZCwgdGhlbiB0aGlzIGNvZGUgcGF0aCAqbWlnaHQqIGJlIHJlYWNoYWJsZSBieSB0aGUgZnV6emVyLiBJdCdzIGEga2V5IGZpcnN0IHN0ZXAuXG5cblRoZSB0YXJnZXQgaXMgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgLiBJcyB0aGF0IGZ1bmN0aW9uIHJlYWNoYWJsZT8gSXQncyB0aGUgb25lIG1vZGlmaWVkIGJ5IHRoZSBwYXRjaCwgc28gaWYgd2UgY2FuIHJlYWNoIGl0LCBpdCB3aWxsIGJlIHJlYWNoYWJsZS5cblxuTm93LCB3aGVyZSBpcyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAgbG9jYXRlZD8gSXQncyBpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AuIExldCdzIGhhdmUgYSBsb29rLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDc4MCwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUzOCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMzoxNy45NDQ4MzI3MzhaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzQ5ODcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjAwLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjAwOlxcdFxcbiAyMDE6XFx0c3RhdGljIHZvaWQgbWx4NWVfZW5hYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcXG4gMjAyOlxcdHtcXG4gMjAzOlxcdFxcdHByaXYtXFx1MDAzZWV2ZW50c19uYi5ub3RpZmllcl9jYWxsID0gYXN5bmNfZXZlbnQ7XFxuIDIwNDpcXHRcXHRtbHg1X25vdGlmaWVyX3JlZ2lzdGVyKHByaXYtXFx1MDAzZW1kZXYsIFxcdTAwMjZwcml2LVxcdTAwM2VldmVudHNfbmIpO1xcbiAyMDU6XFx0fVxcbiAyMDY6XFx0XFxuIDIwNzpcXHRzdGF0aWMgdm9pZCBtbHg1ZV9kaXNhYmxlX2FzeW5jX2V2ZW50cyhzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdilcXG4gMjA4OlxcdHtcXG4gMjA5OlxcdFxcdG1seDVfbm90aWZpZXJfdW5yZWdpc3Rlcihwcml2LVxcdTAwM2VtZGV2LCBcXHUwMDI2cHJpdi1cXHUwMDNlZXZlbnRzX25iKTtcXG4gMjEwOlxcdH1cXG4gMjExOlxcdFxcbiAyMTI6XFx0c3RhdGljIGludCBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2KGludCBldmVudCwgdm9pZCAqbXlfZGF0YSwgdm9pZCAqZXZlbnRfZGF0YSlcXG4gMjEzOlxcdHtcXG4gMjE0OlxcdFxcdHN0cnVjdCBtbHg1ZV9wcml2ICptYXN0ZXJfcHJpdiA9IGV2ZW50X2RhdGE7XFxuIDIxNTpcXHRcXG4gMjE2OlxcdFxcdHN3aXRjaCAoZXZlbnQpIHtcXG4gMjE3OlxcdFxcdGNhc2UgTVBWX0RFVkNPTV9NQVNURVJfVVA6XFxuIDIxODpcXHRcXHRcXHRtbHg1X2RldmNvbV9jb21wX3NldF9yZWFkeShtYXN0ZXJfcHJpdi1cXHUwMDNlZGV2Y29tLCB0cnVlKTtcXG4gMjE5OlxcdFxcdFxcdGJyZWFrO1xcbiAyMjA6XFx0XFx0Y2FzZSBNUFZfREVWQ09NX01BU1RFUl9ET1dOOlxcbiAyMjE6XFx0XFx0XFx0Lyogbm8gbmVlZCBmb3IgY29tcCBzZXQgcmVhZHkgZmFsc2Ugc2luY2Ugd2UgdW5yZWdpc3RlciBhZnRlclxcbiAyMjI6XFx0XFx0XFx0ICogYW5kIGl0IGh1cnRzIGNsZWFudXAgZmxvdy5cXG4gMjIzOlxcdFxcdFxcdCAqL1xcbiAyMjQ6XFx0XFx0XFx0YnJlYWs7XFxuIDIyNTpcXHRcXHRjYXNlIE1QVl9ERVZDT01fSVBTRUNfTUFTVEVSX1VQOlxcbiAyMjY6XFx0XFx0Y2FzZSBNUFZfREVWQ09NX0lQU0VDX01BU1RFUl9ET1dOOlxcbiAyMjc6XFx0XFx0XFx0bWx4NWVfaXBzZWNfaGFuZGxlX21wdl9ldmVudChldmVudCwgbXlfZGF0YSwgZXZlbnRfZGF0YSk7XFxuIDIyODpcXHRcXHRcXHRicmVhaztcXG4gMjI5OlxcdFxcdH1cXG4gMjMwOlxcdFxcbiAyMzE6XFx0XFx0cmV0dXJuIDA7XFxuIDIzMjpcXHR9XFxuIDIzMzpcXHRcXG4gMjM0OlxcdHN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2luaXRfbXB2KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCB1NjQgKmRhdGEpXFxuIDIzNTpcXHR7XFxuIDIzNjpcXHRcXHRzdHJ1Y3QgbWx4NV9kZXZjb21fbWF0Y2hfYXR0ciBhdHRyID0ge1xcbiAyMzc6XFx0XFx0XFx0LmtleS52YWwgPSAqZGF0YSxcXG4gMjM4OlxcdFxcdH07XFxuIDIzOTpcXHRcXG4gMjQwOlxcdFxcdHByaXYtXFx1MDAzZWRldmNvbSA9IG1seDVfZGV2Y29tX3JlZ2lzdGVyX2NvbXBvbmVudChwcml2LVxcdTAwM2VtZGV2LVxcdTAwM2Vwcml2LmRldmMsXFxuIDI0MTpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBNTFg1X0RFVkNPTV9NUFYsXFxuIDI0MjpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBcXHUwMDI2YXR0cixcXG4gMjQzOlxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgIG1seDVlX2RldmNvbV9ldmVudF9tcHYsXFxuIDI0NDpcXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgICBwcml2KTtcXG4gMjQ1OlxcdFxcdGlmICghcHJpdi1cXHUwMDNlZGV2Y29tKVxcbiAyNDY6XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIDI0NzpcXHRcXG4gMjQ4OlxcdFxcdGlmIChtbHg1X2NvcmVfaXNfbXBfbWFzdGVyKHByaXYtXFx1MDAzZW1kZXYpKSB7XFxuIDI0OTpcXHRcXHRcXHRtbHg1X2RldmNvbV9zZW5kX2V2ZW50KHByaXYtXFx1MDAzZWRldmNvbSwgTVBWX0RFVkNPTV9NQVNURVJfVVAsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjE3Ljk0NTE4NTY1OFoiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NDU5NjAzODAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIGBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2YCBSZWFjaGFiaWxpdHkqKlxuXG5Pa2F5LCBzbyBgbWx4NWVfZGV2Y29tX2V2ZW50X21wdmAgaXMgcmVnaXN0ZXJlZCB1c2luZyBgbWx4NV9kZXZjb21fcmVnaXN0ZXJfY29tcG9uZW50YC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbiBpcywgY2FuIHRoaXMgY29kZSBwYXRoIGFjdHVhbGx5IGJlIGV4ZWN1dGVkPyBNeSBmaXJzdCB0aG91Z2h0IGlzIHdoZXRoZXIgc3l6a2FsbGVyIGNvdWxkIGJlIHVzZWQgdG8gdHJpZ2dlciB0aGUgcHJvYmUgb2YgdGhlIGBtbHg1X2NvcmVfZHJpdmVyYCBiZWNhdXNlIGl0IGNhbiBmdXp6IFBDSSBkZXZpY2VzLiBCdXQgaG9sZCBvbiwgdGhlIGBtbHg1X2NvcmVgIGRyaXZlciBpcyBpbmNyZWRpYmx5IGNvbXBsZXguIERvZXMgc3l6a2FsbGVyIGV2ZW4gdGFyZ2V0IGl0IHNwZWNpZmljYWxseSwgb3IgYW0gSSBqdXN0IGxvb2tpbmcgYXQgZ2VuZXJpYyBQQ0kgZnV6emluZz9cblxuTGV0IG1lIGNoZWNrLiBEb2VzIHN5emthbGxlciBoYXZlIHRhaWxvcmVkIGRlc2NyaXB0aW9ucyBmb3IgYG1seDVgLCBvciBpcyBpdCBqdXN0IHJlbHlpbmcgb24gdGhlIGdlbmVyYWwgYHN5el9wY2lfZGV2aWNlYCBhcHByb2FjaD8gUmlnaHQsIGdlbmVyaWMgZnV6emluZyBpbnZvbHZlcyB1c2luZyBgc3l6X3BjaV9kZXZpY2VgLCBwcm92aWRpbmcgdmVuZG9yL2RldmljZSBJRHMgdG8gbWF0Y2ggdGhlIGhhcmR3YXJlLCBhbmQgdGhlbiBmdXp6aW5nIE1NSU8vUElPIHJlZ2lvbnMuXG5cbk5vdywgdGhpcyBwcm9tcHQgZG9lcyBzcGVjaWZ5IHRoYXQgSSBzaG91bGQgbWFyayBzb21ldGhpbmcgYXMgbm90IHdvcnRoIGZ1enppbmcgaWYgY29kZSBwYXRocyBhcmUgdW5yZWFjaGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsIGV2ZW4gd2l0aCBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4gSXMgYG1seDVgIGV2ZW4gYWNjZXNzaWJsZSBpbiBhIHZpcnR1YWxpemVkIGNvbnRleHQ/IE5vIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGZvciBgbWx4NWAgZXhpc3RzIGluIHRoZSBrZXJuZWwsIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvciBgdXNiIGdhZGdldGAuIEFuZCBkZWZpbml0ZWx5IG5vdCB3aXRoIGBuZXRkZXZzaW1gLiBXaGF0IGFib3V0IFFFTVU/IE5vcGUsIG5vIGBtbHg1YCBlbXVsYXRvciBpbiBRRU1VLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZSwgdGhlIFBDSSBmdXp6ZXIgKmNhbiogdHJpZ2dlciBQQ0kgcHJvYmUgZnVuY3Rpb25zISBIb3dldmVyLCB0aGUgY3JpdGljYWwgcXVlc3Rpb24gaXMgd2hldGhlciBpdCBjYW4gcGVuZXRyYXRlIHRoZSBkcml2ZXIncyBjb3JlIGxvZ2ljLiBUaGUgUENJIGZ1enplciBpcyBmZWVkaW5nIHJhbmRvbSBkYXRhIHRvIHRoZSBNTUlPIHJlYWRzLiBUaGUgZHJpdmVyIHdpbGwgcmVhZCBmcm9tIE1NSU8gYW5kIHJlY2VpdmUgcmFuZG9tIGRhdGEsIHdoaWNoIHdpbGwgbGlrZWx5IGNhdXNlIGFuIGVhcmx5IGluaXRpYWxpemF0aW9uIGZhaWx1cmUuIFNvIEkgc2hvdWxkIG5vdyBjaGVjayB3aGVyZSBgbWx4NWVfZGV2Y29tX2luaXRfbXB2YCBpcyBjYWxsZWQsIHRvIGRldGVybWluZSBob3cgZGVlcCB0aGlzIGdvZXMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNzc5LCJPdXRwdXRUb2tlbnMiOjUyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6Mzk2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6MjUuNDA0NzkyMDA5WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNTkzMjY5ODksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NWVfZGV2Y29tX2luaXRfbXB2XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMTI9c3RhdGljIGludCBtbHg1ZV9kZXZjb21fZXZlbnRfbXB2KGludCBldmVudCwgdm9pZCAqbXlfZGF0YSwgdm9pZCAqZXZlbnRfZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjM0OnN0YXRpYyBpbnQgbWx4NWVfZGV2Y29tX2luaXRfbXB2KHN0cnVjdCBtbHg1ZV9wcml2ICpwcml2LCB1NjQgKmRhdGEpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yMzUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yNzI9c3RhdGljIGludCBibG9ja2luZ19ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODYtXFx0Y2FzZSBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6Mjg3OlxcdFxcdGlmIChtbHg1ZV9kZXZjb21faW5pdF9tcHYocHJpdiwgZGF0YSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODgtXFx0XFx0XFx0cmV0dXJuIE5PVElGWV9CQUQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjI1Ljc2NDEyMzg0OVoiLCJTZXEiOjIxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDY3MTIxOTE3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORSBFdmVudCoqXG5cbk9rYXksIHNvIEknbSBkaWdnaW5nIGludG8gdGhpcyBgYmxvY2tpbmdfZXZlbnRgIGZ1bmN0aW9uIGNhbGwsIHNwZWNpZmljYWxseSB0cmlnZ2VyZWQgYnkgdGhlIGBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FYCBldmVudC4gUmlnaHQsIHNvIHdlIGtub3cgdGhpcyBldmVudCBvcmlnaW5hdGVzIGZyb20gdGhlIG1seDUgY29yZSBkcml2ZXIg4oCTIHdoaWNoIG1ha2VzIHNlbnNlLiBOb3csIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBwaW5wb2ludCB3aGVyZSAqZXhhY3RseSogdGhpcyBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgaXMgYmVpbmcgZ2VuZXJhdGVkIHdpdGhpbiB0aGF0IGRyaXZlci4gVGltZSB0byB0cmFjZSB0aGF0IGJhY2shXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0MDA4LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6MjguODMxMjQ4MTY2WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2Mzg0MjA2NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yNzI9c3RhdGljIGludCBibG9ja2luZ19ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODUtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyODY6XFx0Y2FzZSBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjg3LVxcdFxcdGlmIChtbHg1ZV9kZXZjb21faW5pdF9tcHYocHJpdiwgZGF0YSkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjI4Ljg5NTA5NjA3MVoiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyODYzNjM1NDI1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEZWJ1Z2dpbmcgdGhlIEdlbmVyYXRpb24gUHJvY2VzcyoqXG5cbkFscmlnaHQsIHRoZSBvdXRwdXQncyB0aGVyZSwgYnV0ICp3aGVyZSogaXMgaXQgYmVpbmcgY29uanVyZWQ/IEEgcXVpY2sgY2hlY2sgb24gdGhlIG9idmlvdXMgY2FuZGlkYXRlIG91dHB1dHMgZGlkIG5vdCBleHBvc2Ugd2hlcmUgdGhlIHRleHQgaXMgY3JlYXRlZC4gVGhpcyBzZWVtcyB1bmV4cGVjdGVkLiBPa2F5LCBJJ2xsIG5lZWQgdG8gZXhwYW5kIG15IHNlYXJjaC4gVGltZSB0byBkbyBhIGZ1bGwtdGV4dCBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwuIExldCdzIGRpZyBpbiBhbmQgZmluZCB0aGlzIGdlbmVyYXRpb24gcG9pbnQuIEknbGwgbmVlZCB0byB0cmFjZSB0aGUgZGF0YSBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDQyNCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjMxLjc1ODczNDI3NloiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjAyNDg1NDA3NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM9Mzk0ND1zdGF0aWMgYm9vbCBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydChzdHJ1Y3QgbWx4NV9pYl9kZXYgKmliZGV2LFxcbi0tXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5NzgtXFx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShtcGktXFx1MDAzZW1kZXYsXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jOjM5Nzk6XFx0XFx0XFx0XFx0ICBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgwLVxcdFxcdFxcdFxcdCAgXFx1MDAyNmtleSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5ODEtXFx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShpYmRldi1cXHUwMDNlbWRldixcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzk4MjpcXHRcXHRcXHRcXHQgIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkUsXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5ODMtXFx0XFx0XFx0XFx0ICBcXHUwMDI2a2V5KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9MjcyPXN0YXRpYyBpbnQgYmxvY2tpbmdfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2NrICpuYiwgdW5zaWduZWQgbG9uZyBldmVudCwgdm9pZCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjg1LVxcdFxcdGJyZWFrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6Mjg2OlxcdGNhc2UgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORTpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI4Ny1cXHRcXHRpZiAobWx4NWVfZGV2Y29tX2luaXRfbXB2KHByaXYsIGRhdGEpKVxcbi0tXFxuaW5jbHVkZS9saW51eC9tbHg1L2RldmljZS5oPTM2OD1lbnVtIG1seDVfZHJpdmVyX2V2ZW50IHtcXG4tLVxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaC0zNzMtXFx0TUxYNV9EUklWRVJfRVZFTlRfU0ZfUEVFUl9ERVZMSU5LLFxcbmluY2x1ZGUvbGludXgvbWx4NS9kZXZpY2UuaDozNzQ6XFx0TUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORSxcXG5pbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmgtMzc1LVxcdE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX1JFTU9WRUQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjMzLjc4MzU5NTUzMloiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2OTU0NTQ0NDk1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIHRoZSBtbHg1IEluZmluaWJhbmQgRHJpdmVyIENvbnRleHQqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGNvZGUsIHNwZWNpZmljYWxseSBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gTmF0dXJhbGx5LCB0aGlzIHNjcmVhbXMgSW5maW5pYmFuZCBhbmQgTWVsbGFub3ggaGFyZHdhcmUgKGBtbHg1YCkgdG8gbWUuIFRoZSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGRvZXMgdGhpcyByZWx5ICpzb2xlbHkqIG9uIHRoZSBwaHlzaWNhbCBoYXJkd2FyZT8gSXMgdGhlcmUgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBvZiB0aGUgYG1seDVgIGRldmljZT8gTXkgaW5pdGlhbCB0aG91Z2h0IGdvZXMgdG8gYHZkcGFgIC0gSSByZWNhbGwgc2VlaW5nIGBkcml2ZXJzL3ZkcGEvbWx4NS9gLiBIb3dldmVyLCBgdmRwYWAgaXMganVzdCBhICpmcmFtZXdvcmsqIGZvciB2aXJ0aW8gZGF0YSBwYXRoIGFjY2VsZXJhdGlvbi4gU3BlY2lmaWNhbGx5LCBgbWx4NV92ZHBhYCBpcyBhIGRyaXZlciB0aGF0IGxldmVyYWdlcyBNZWxsYW5veCBoYXJkd2FyZSB0byBhY2NlbGVyYXRlIHZpcnRpbzsgaXQgKnN0aWxsKiBmdW5kYW1lbnRhbGx5IGRlcGVuZHMgb24gdGhlIHBoeXNpY2FsIE1lbGxhbm94IGhhcmR3YXJlIChgbWx4NV9jb3JlX2RldmApLiBTbywgbm8sIG5vIHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGlzIGNvbnRleHQuIFRoYXQncyB0aGUgYmFzZWxpbmUuXG5cbk5vdywgd2FpdCBhIG1pbnV0ZS4uLnN5emJvdCB0ZXN0ZWQgdGhpcyBwYXRjaD8gSG93IGRpZCAqdGhhdCogaGFwcGVuPyBJIG5lZWQgdG8gY2xhcmlmeSB3aGF0IHRoYXQgbWVhbnMuIFRoZSBjb21taXQgbWVzc2FnZSBqdXN0IHNheXMsIFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XCIuIFRoYXQncyBhICpzdGFuZGFyZCogc3l6Ym90IG1lc3NhZ2UsIGluZGljYXRpbmcgdGhlIHBhdGNoIHdhcyBzdWJtaXR0ZWQgZm9yIHRlc3RpbmcuIEl0IGRvZXNuJ3QgbWVhbiBzeXpib3QgYWN0dWFsbHkgZXhlY3V0ZWQgdGhlIGNvZGUgb3IgZm91bmQgYSBidWcuIEl0IHNpbXBseSBtZWFucyBzb21lb25lLCBsaWtlbHkgdmlhIGEgYCNzeXogdGVzdGAgY29tbWFuZCwgcmVxdWVzdGVkIHN5emJvdCB0byBjaGVjayB0aGUgcGF0Y2guXG5cbkNydWNpYWxseSwgaWYgdGhlIGNvZGUgcGF0aCBpcyAqdW5yZWFjaGFibGUqIGluIHN5emJvdCdzIGVudmlyb25tZW50IChRRU1VL0dDRSB3aXRob3V0IE1lbGxhbm94IGhhcmR3YXJlKSwgc3l6Ym90IHdpbGwgY29tcGlsZSB0aGUgY29kZSwgYm9vdCwgYW5kIHJ1biBzb21lIGJhc2ljIGZ1enppbmcsIHJlcG9ydGluZyBhbiB1bmluZm9ybWF0aXZlIFwiT0tcIiBiZWNhdXNlIGl0IGRpZG4ndCBjcmFzaC4gSXQgaGFzbid0IGFjdHVhbGx5IGZ1enplZCB0aGUgKm1vZGlmaWVkKiBjb2RlLiBTbywgdGhlIHN5emJvdCB0ZXN0IHJlc3VsdCBpcyBoaWdobHkgc3VzcGVjdCBoZXJlLlxuXG5UbyBiZSBhYnNvbHV0ZWx5IHN1cmUsIEknbGwgbmVlZCB0byBkaWcgZGVlcGVyLiBJIG5lZWQgdG8gbWFrZSAqYWJzb2x1dGVseSogc3VyZSB0aGVyZSdzIG5vIHdheSB0aGUgYG1seDVgIGZ1bmN0aW9uYWxpdHkgY2FuIGJlIHNpbXVsYXRlZCwgZXZlbiBpbiBhIHZlcnkgYmFzaWMgd2F5LiBMZXQncyBkbyBhIG1vcmUgdGhvcm91Z2ggc2VhcmNoIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZSBmb3IgYW55IG1lbnRpb25zIG9mIGBtbHg1YCBjb21iaW5lZCB3aXRoIGBzaW1gIG9yIGBkdW1teWAuIFRoYXQgd2lsbCBwcm92aWRlIGNvbmZpcm1hdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjUxNTAsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6NDAuNzM4MTQyNjQ3WiIsIlNlcSI6MjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxOTA3NDM2MzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWx4NS4qc2ltXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM9NTcxNz1zdGF0aWMgaW50IG1seDVlX3F1ZXVlX3N0b3Aoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdm9pZCAqb2xkcSwgaW50IHF1ZXVlX2luZGV4KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtNTcxOC17XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzo1NzE5OlxcdC8qIEluIG1seDUgYSB0eHEgY2Fubm90IGJlIHNpbXBseSBzdG9wcGVkIGluIGlzb2xhdGlvbiwgb25seSByZXN0YXJ0ZWQuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy01NzIwLVxcdCAqIG1seDVlX3F1ZXVlX3N0YXJ0IGRvZXMgbm90IGZhaWwsIHdlIHN0b3AgdGhlIG9sZCBxdWV1ZSB0aGVyZS5cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9MTgwPXN0YXRpYyBpbnQgaHdzX2J3Y19tYXRjaGVyX21vdmUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoyMjY6aW50IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqYndjX21hdGNoZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0yMjctXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0zMjA9bWx4NWh3c19id2NfbWF0Y2hlcl9jcmVhdGUoc3RydWN0IG1seDVod3NfdGFibGUgKnRhYmxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy0zNTItXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzUzOlxcdFxcdHJldCA9IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShid2NfbWF0Y2hlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM1NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHR0YWJsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6MzcwOmludCBtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTM3MS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jPTM4Nz1pbnQgbWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMzk5LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jOjQwMDpcXHRcXHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKGJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTQwMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NTk2PXN0YXRpYyBpbnQgaHdzX2J3Y19ydWxlX2NudF9kZWNfd2l0aF9zaHJpbmsoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02MjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzo2Mjk6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjMwLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM9NjUzPWludCBtbHg1aHdzX2J3Y19ydWxlX2Rlc3Ryb3koc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYy02NjEtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmM6NjYyOlxcdFxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtNjYzLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz05ODg9c3RhdGljIGludCBod3NfYndjX3J1bGVfY250X2luY193aXRoX3JlaGFzaChzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTEwMjMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxMDI0OmludCBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTAyNS1cXHRcXHRcXHRcXHQgICB1MzIgKm1hdGNoX3BhcmFtLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYz0xMTI3PW1seDVod3NfYndjX3J1bGVfY3JlYXRlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpid2NfbWF0Y2hlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmMtMTE1OC1cXHRlbHNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuYzoxMTU5OlxcdFxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfY3JlYXRlX3NpbXBsZShid2NfcnVsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5jLTExNjAtXFx0XFx0XFx0XFx0XFx0XFx0ICAgICBwYXJhbXMtXFx1MDAzZW1hdGNoX2J1ZixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg9NzA9aW50XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo3MTptbHg1aHdzX2J3Y19tYXRjaGVyX2NyZWF0ZV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtNzItXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgbWx4NWh3c190YWJsZSAqdGFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTc3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6Nzg6aW50IG1seDVod3NfYndjX21hdGNoZXJfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaD04Mj12b2lkIG1seDVod3NfYndjX3J1bGVfZnJlZShzdHJ1Y3QgbWx4NWh3c19id2NfcnVsZSAqYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmgtODMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2MuaDo4NDppbnQgbWx4NWh3c19id2NfcnVsZV9jcmVhdGVfc2ltcGxlKHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTg1LVxcdFxcdFxcdFxcdCAgIHUzMiAqbWF0Y2hfcGFyYW0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTg5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjLmg6OTA6aW50IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoc3RydWN0IG1seDVod3NfYndjX3J1bGUgKmJ3Y19ydWxlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Yy5oLTkxLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTM4OD1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXRfZmlyc3Qoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQxMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDExOlxcdHJldCA9IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlciwgc3VibS1cXHUwMDNldGJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00MTItXFx0XFx0XFx0XFx0XFx0XFx0cHJpb3JpdHksIG1hdGNoX2NyaXRlcmlhLCBtYXNrLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQyNy1kZXN0cm95X21hdGNoZXI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjQyODpcXHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN1Ym0tXFx1MDAzZWJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNDI5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTQzMz1zdGF0aWMgaW50IGh3c19zdWJtYXRjaGVyX2luaXQoc3RydWN0IG1seDVod3NfYndjX21hdGNoZXIgKmNtYXRjaGVyLCBpbnQgaWR4LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQ4MS1cXHQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6NDgyOlxcdHJldCA9IG1seDVod3NfYndjX21hdGNoZXJfY3JlYXRlX3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlciwgc3VibS1cXHUwMDNldGJsLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy00ODMtXFx0XFx0XFx0XFx0XFx0XFx0cHJpb3JpdHksIG1hdGNoX2NyaXRlcmlhLCBtYXNrLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTQ5OS1kZXN0cm95X21hdGNoZXI6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjUwMDpcXHRtbHg1aHdzX2J3Y19tYXRjaGVyX2Rlc3Ryb3lfc2ltcGxlKHN1Ym0tXFx1MDAzZWJ3Y19tYXRjaGVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTAxLWZyZWVfbWF0Y2hlcjpcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYz01MTE9c3RhdGljIHZvaWQgaHdzX3N1Ym1hdGNoZXJfZGVzdHJveShzdHJ1Y3QgbWx4NWh3c19id2NfbWF0Y2hlciAqY21hdGNoZXIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmMtNTIyLVxcdGlmIChzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlcikge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYzo1MjM6XFx0XFx0bWx4NWh3c19id2NfbWF0Y2hlcl9kZXN0cm95X3NpbXBsZShzdWJtLVxcdTAwM2Vid2NfbWF0Y2hlcik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jLTUyNC1cXHRcXHRpZiAoaWR4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jPTc0OT1zdGF0aWMgaW50IGh3c19jb21wbGV4X3N1YnJ1bGVfY3JlYXRlKHN0cnVjdCBtbHg1aHdzX2J3Y19tYXRjaGVyICpjbWF0Y2hlcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03ODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2h3cy9id2NfY29tcGxleC5jOjc4MzpcXHRyZXQgPSBtbHg1aHdzX2J3Y19ydWxlX2NyZWF0ZV9zaW1wbGUoc3VicnVsZSwgbWF0Y2hfcGFyYW1zLCBhY3Rpb25zLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy03ODQtXFx0XFx0XFx0XFx0XFx0ICAgICBmbG93X3NvdXJjZSwgYndjX3F1ZXVlX2lkeCk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM9Nzk5PXN0YXRpYyBpbnQgaHdzX2NvbXBsZXhfc3VicnVsZV9kZXN0cm95KHN0cnVjdCBtbHg1aHdzX2J3Y19ydWxlICpid2NfcnVsZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy04MTYtXFx0YndjX3J1bGUtXFx1MDAzZXJ1bGUtXFx1MDAzZXNraXBfZGVsZXRlID0gIWlzX2xhc3RfcnVsZTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvaHdzL2J3Y19jb21wbGV4LmM6ODE3OlxcdHJldCA9IG1seDVod3NfYndjX3J1bGVfZGVzdHJveV9zaW1wbGUoYndjX3J1bGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9od3MvYndjX2NvbXBsZXguYy04MTgtXFx0aWYgKHVubGlrZWx5KHJldCkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjQwLjkyODg5MTE3MVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzkwODc3NzI5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLlxuXG4qKkludmVzdGlnYXRpbmcgRXZlbnQgR2VuZXJhdGlvbiBQb2ludHMgZm9yIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkUqKlxuXG5BbHJpZ2h0LCBteSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgSSd2ZSBzcG90dGVkIGBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5YCBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC4gTm93LCBteSBtYWluIHF1ZXN0aW9uIGlzLCBhbmQgdGhpcyBpcyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjb21wbGV0ZSBwaWN0dXJlLCBhcmUgdGhlcmUgKmFueSogb3RoZXIgaW5zdGFuY2VzIHdpdGhpbiB0aGlzIGNvZGUgYmFzZSwgb3IgaW5kZWVkIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0sIHdoZXJlIHRoZSBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgZXZlbnQgaXMgYWN0dWFsbHkgZ2VuZXJhdGVkPyBJIG5lZWQgdG8gdHJhY2sgZG93biBhbGwgcG90ZW50aWFsIHNvdXJjZXMuIEtub3dpbmcgd2hlcmUgZWxzZSB0aGlzIGV2ZW50IGlzIGNyZWF0ZWQgd2lsbCBwcm92aWRlIGEgY29tcHJlaGVuc2l2ZSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBldmVudCBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTU1MSwiT3V0cHV0VG9rZW5zIjo0OSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjU5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjQ0LjMxOTc3MTg3WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MTQyNDc0NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yNzI9c3RhdGljIGludCBibG9ja2luZ19ldmVudChzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLCB1bnNpZ25lZCBsb25nIGV2ZW50LCB2b2lkICpkYXRhKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYy0yODUtXFx0XFx0YnJlYWs7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyODY6XFx0Y2FzZSBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FOlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjg3LVxcdFxcdGlmIChtbHg1ZV9kZXZjb21faW5pdF9tcHYocHJpdiwgZGF0YSkpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDEwOjMzOjQ0LjM4MTIwMjMxNVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozOTA4MTkxNDc1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgTUxYNSBFdmVudCBIYW5kbGluZyoqXG5cbk9rYXksIHNvIEkgZGlkIGEgZ2xvYmFsIHNlYXJjaCBmb3IgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgLCBhbmQgaXQgbG9va3MgbGlrZSBpdCdzIHByZXNlbnQgaW4gYm90aCBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYCBhbmQgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmNgLiBUaGF0J3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBidXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGZ1bGwgcGljdHVyZS4gTGV0IG1lIGRvdWJsZS1jaGVjayB0aGUgYGRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9gIGRpcmVjdG9yeSBhZ2FpbiB0byBiZSB0aG9yb3VnaC4gSSdtIHRyeWluZyB0byBwaWVjZSB0b2dldGhlciB3aGVyZSB0aGUgZXZlbnQgaXMgZ2VuZXJhdGVkIGFuZCBob3cgaXQncyB1c2VkLiBUaGUgcHJpbWFyeSBnb2FsIGlzIHRvIG1hcCB0aGUgY2FsbCBmbG93LlxuXG5TcGVjaWZpY2FsbHksIEknbSBub3cgZm9jdXNlZCBvbiBmaW5kaW5nIHdoZXJlIGBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5YCBpcyBjYWxsZWQsIGFuZCBwZXJoYXBzIG1vcmUgaW1wb3J0YW50bHksIHdoZXJlIHRoaXMgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGV2ZW50IGlzIGFjdHVhbGx5ICpnZW5lcmF0ZWQqIHdpdGhpbiB0aGUgY29kZS4gVW5kZXJzdGFuZGluZyB0aGUgZXZlbnQgc291cmNlIGlzIGNyaXRpY2FsLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyOTk5NywiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzMSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMzo0OC4yODkzOTU5OVoiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk5Mzg3NDU5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM9Mzg3Nz1zdGF0aWMgdm9pZCBtbHg1X2liX3VuYmluZF9zbGF2ZV9wb3J0KHN0cnVjdCBtbHg1X2liX2RldiAqaWJkZXYsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg4OS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmM6Mzg5MDpcXHRtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KGliZGV2LVxcdTAwM2VtZGV2LFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zODkxLVxcdFxcdFxcdFxcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fUkVNT1ZFRCxcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzg5Mi1cXHRcXHRcXHRcXHQgIE5VTEwpO1xcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYzozODkzOlxcdG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkobXBpLVxcdTAwM2VtZGV2LFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zODk0LVxcdFxcdFxcdFxcdCAgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fUkVNT1ZFRCxcXG4tLVxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYz0zOTQ0PXN0YXRpYyBib29sIG1seDVfaWJfYmluZF9zbGF2ZV9wb3J0KHN0cnVjdCBtbHg1X2liX2RldiAqaWJkZXYsXFxuLS1cXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzk3Ny1cXHRrZXkgPSBtcGktXFx1MDAzZW1kZXYtXFx1MDAzZXByaXYuYWRldl9pZHg7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jOjM5Nzg6XFx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShtcGktXFx1MDAzZW1kZXYsXFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jLTM5NzktXFx0XFx0XFx0XFx0ICBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FLFxcbmRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uYy0zOTgwLVxcdFxcdFxcdFxcdCAgXFx1MDAyNmtleSk7XFxuZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jOjM5ODE6XFx0bWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheShpYmRldi1cXHUwMDNlbWRldixcXG5kcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmMtMzk4Mi1cXHRcXHRcXHRcXHQgIE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jPTI5MD1FWFBPUlRfU1lNQk9MKG1seDVfY29yZV91cGxpbmtfbmV0ZGV2X2V2ZW50X3JlcGxheSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYy0yOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyOTI6dm9pZCBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTI5My17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTI5NS19XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYzoyOTY6RVhQT1JUX1NZTUJPTChtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbWFpbi5jLTI5Ny1cXG4tLVxcbmluY2x1ZGUvbGludXgvbWx4NS9kcml2ZXIuaD0xMDEwPXZvaWQgbWx4NV9jb3JlX3VwbGlua19uZXRkZXZfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2KTtcXG5pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgtMTAxMS1cXG5pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmg6MTAxMjp2b2lkIG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXkoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldiwgdTMyIGV2ZW50LCB2b2lkICpkYXRhKTtcXG5pbmNsdWRlL2xpbnV4L21seDUvZHJpdmVyLmgtMTAxMy1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzM6NTAuMjgzMjc1MDlaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE5MjU5MzY3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGFuYWx5emluZyB0aGlzIGNvZGU6XG5cbioqRGl2aW5nIGludG8gdGhlIG1seDUgRXZlbnQgUmVwbGF5KipcblxuT2theSwgc28gYG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXlgIGlzIGRlZmluaXRlbHkgY2FsbGVkIGZyb20gdGhlIGBtbHg1YCBJbmZpbmliYW5kIGRyaXZlciwgc3BlY2lmaWNhbGx5IGZyb20gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AuIFRoYXQncyB0aGUgc3RhcnRpbmcgcG9pbnQuIE5vdywgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRyb2wgZmxvdzsgaG93IGRvZXMgdGhpcyB3aG9sZSBldmVudCByZXBsYXkgbWVjaGFuaXNtIGtpY2sgb2ZmPyBUaGUgY3JpdGljYWwgcXVlc3Rpb24gaGVyZSBpczogd2hhdCB0cmlnZ2VycyB0aGUgZ2VuZXJhdGlvbiBvZiBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWA/IFRoYXQncyB0aGUga2V5IHRvIHVuZGVyc3RhbmRpbmcgdGhlIGNvbnRleHQgb2YgdGhlIHJlcGxheS4gVGltZSB0byBkZWx2ZSBpbnRvIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBgbWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheWAgaXRzZWxmOyBJIG5lZWQgdG8gc2VlIHdoYXQgaXQncyBsb29raW5nIGZvci4gSSBuZWVkIHRvIHRyYWNlIHRoaXMgYmFjay5cblxuXG4iLCJJbnB1dFRva2VucyI6MzEzMDMsIk91dHB1dFRva2VucyI6NDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMzo1My40NzU4NzA4MzZaIiwiU2VxIjozMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE1MDgwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjg1LFxuICBcIkxpbmVDb3VudFwiOiAyMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMjg1OlxcdFxcdG11dGV4X2xvY2soXFx1MDAyNmRldi1cXHUwMDNlbWx4NWVfcmVzLnVwbGlua19uZXRkZXZfbG9jayk7XFxuIDI4NjpcXHRcXHRtbHg1X2Jsb2NraW5nX25vdGlmaWVyX2NhbGxfY2hhaW4oZGV2LCBNTFg1X0RSSVZFUl9FVkVOVF9VUExJTktfTkVUREVWLFxcbiAyODc6XFx0XFx0XFx0XFx0XFx0XFx0ICBkZXYtXFx1MDAzZW1seDVlX3Jlcy51cGxpbmtfbmV0ZGV2KTtcXG4gMjg4OlxcdFxcdG11dGV4X3VubG9jayhcXHUwMDI2ZGV2LVxcdTAwM2VtbHg1ZV9yZXMudXBsaW5rX25ldGRldl9sb2NrKTtcXG4gMjg5OlxcdH1cXG4gMjkwOlxcdEVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX3VwbGlua19uZXRkZXZfZXZlbnRfcmVwbGF5KTtcXG4gMjkxOlxcdFxcbiAyOTI6XFx0dm9pZCBtbHg1X2NvcmVfbXBfZXZlbnRfcmVwbGF5KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYsIHUzMiBldmVudCwgdm9pZCAqZGF0YSlcXG4gMjkzOlxcdHtcXG4gMjk0OlxcdFxcdG1seDVfYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbihkZXYsIGV2ZW50LCBkYXRhKTtcXG4gMjk1OlxcdH1cXG4gMjk2OlxcdEVYUE9SVF9TWU1CT0wobWx4NV9jb3JlX21wX2V2ZW50X3JlcGxheSk7XFxuIDI5NzpcXHRcXG4gMjk4OlxcdGludCBtbHg1X2NvcmVfZ2V0X2NhcHNfbW9kZShzdHJ1Y3QgbWx4NV9jb3JlX2RldiAqZGV2LCBlbnVtIG1seDVfY2FwX3R5cGUgY2FwX3R5cGUsXFxuIDI5OTpcXHRcXHRcXHRcXHQgICAgZW51bSBtbHg1X2NhcF9tb2RlIGNhcF9tb2RlKVxcbiAzMDA6XFx0e1xcbiAzMDE6XFx0XFx0dTggaW5bTUxYNV9TVF9TWl9CWVRFUyhxdWVyeV9oY2FfY2FwX2luKV07XFxuIDMwMjpcXHRcXHRpbnQgb3V0X3N6ID0gTUxYNV9TVF9TWl9CWVRFUyhxdWVyeV9oY2FfY2FwX291dCk7XFxuIDMwMzpcXHRcXHR2b2lkICpvdXQsICpoY2FfY2FwcztcXG4gMzA0OlxcdFxcdHUxNiBvcG1vZCA9IChjYXBfdHlwZSBcXHUwMDNjXFx1MDAzYyAxKSB8IChjYXBfbW9kZSBcXHUwMDI2IDB4MDEpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozMzo1My40NzU5ODcxNDZaIiwiU2VxIjozMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6OTE3MDY1MTg3NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIFVucmVhY2hhYmlsaXR5IG9mIGEgU3BlY2lmaWMgQ29kZSBQYXRoKipcblxuT2theSwgc28gYG1seDVfY29yZV9tcF9ldmVudF9yZXBsYXlgIGV2ZW50dWFsbHkgbGVhZHMgdG8gYG1seDVfYmxvY2tpbmdfbm90aWZpZXJfY2FsbF9jaGFpbmAsIHdoaWNoIGlzIG9ubHkgY2FsbGVkIGZyb20gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIkFyZSB0aGVyZSBhbnkgKm90aGVyKiB3YXlzIGBNTFg1X0RSSVZFUl9FVkVOVF9BRkZJTElBVElPTl9ET05FYCBpcyBnZW5lcmF0ZWQ/XCIgSSBhbHJlYWR5IGNoZWNrZWQsIGFuZCBpdCdzIHNvbGVseSB3aXRoaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AgYW5kIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jYC4gVGhhdCBtZWFucyB0aGUgb25seSByb3V0ZSB0byBgbWx4NWVfZGV2Y29tX2luaXRfbXB2YCBpcyB0aHJvdWdoIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAsIHdoaWNoIGlzIGFsc28gaW4gYGRyaXZlcnMvaW5maW5pYmFuZC9ody9tbHg1L21haW4uY2AuXG5cbkFuZCBvZiBjb3Vyc2UsIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAgKm5lZWRzKiBhbiBJbmZpbmliYW5kIGRldmljZSwgbWVhbmluZyBhY3R1YWwgTWVsbGFub3ggaGFyZHdhcmUgaXMgcmVxdWlyZWQuIFNpbmNlIHRoZXJlJ3Mgbm8gc29mdHdhcmUgZW11bGF0aW9uIEkga25vdyBvZiB0aGF0IHJlcGxpY2F0ZXMgYWxsIHRoYXQsIGxpa2UgaW4gR0NFIG9yIFFFTVUsIHRoaXMgcGF0aCBpcyBpbW1lZGlhdGVseSB1bnJlYWNoYWJsZSBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50LlxuXG5Ob3csIHdhaXQuLi5zeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciwgZG9lc24ndCBpdD8gQ291bGQgKnRoYXQqIHBvdGVudGlhbGx5IHJlYWNoIGl0PyBUaGUgZnV6emVyIGVtdWxhdGVzIGEgUENJIGRldmljZSwgaW50ZXJjZXB0aW5nIGFjY2Vzc2VzIHRvIHRoZSBQQ0kgY29uZmlnIHNwYWNlIGFuZCBNTUlPLiBJdCBlc3NlbnRpYWxseSB0aHJvd3MgcmFuZG9tIGRhdGEgYXQgdGhlIGRyaXZlci4gQnV0IGNhbiBpdCBldmVuICppbml0aWFsaXplKiBgbWx4NV9jb3JlYCBzdWNjZXNzZnVsbHk/IGBtbHg1X2NvcmVgIGlzIGluY3JlZGlibHkgY29tcGxleCwgZGVhbGluZyB3aXRoIGZpcm13YXJlIHZpYSB0aGF0IGNvbW1hbmQgcXVldWUuIFRoZSBmaXJtd2FyZSBpbnRlcmZhY2UgaXMgZmFtb3VzbHkgaW50cmljYXRlIOKAkyB0aGUgZHJpdmVyIHNlbmRzIGNvbW1hbmRzLCB3YWl0cyBmb3IgcmVzcG9uc2VzLiBUaGUgUENJIGZ1enplcidzIHJhbmRvbSBpbnB1dCB3b3VsZCBtb3N0IGxpa2VseSBjYXVzZSBpdCB0byBmYWlsIGluaXRpYWxpemF0aW9uIHZlcnkgZWFybHkg4oCTIGZpcm13YXJlIHZlcnNpb24gbWlzbWF0Y2gsIGNvbW1hbmQgcXVldWUgaXNzdWVzLCBldGMuIEl0J3MgYWxtb3N0IGltcG9zc2libGUgZm9yIHJhbmRvbSBkYXRhIHRvIHByb3Blcmx5IHNpbXVsYXRlIHRoZSBmaXJtd2FyZSBpbnRlcmFjdGlvbiwgd2hpY2ggaXMgbmVjZXNzYXJ5IHRvIGluaXRpYWxpemUgYG1seDVfY29yZWAsIGxldCBhbG9uZSB0cmlnZ2VyIGBtbHg1X2liX2JpbmRfc2xhdmVfcG9ydGAuIFRoaXMgbWFrZXMgaXQgcHJhY3RpY2FsbHkgdW5yZWFjaGFibGUgaW4gdGhlc2UgdmlydHVhbGl6ZWQgdGVzdCBlbnZpcm9ubWVudHMuXG5cbkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQncyByZXZpc2l0IGFub3RoZXIgbWV0aG9kIHRvIHRyaWdnZXIgYG1seDVlX2RldmNvbV9ldmVudF9tcHZgLiBUaGF0IGZ1bmN0aW9uIGlzIHJlZ2lzdGVyZWQgYXMgYSBjYWxsYmFjayB0aHJvdWdoIGBtbHg1X2RldmNvbV9yZWdpc3Rlcl9jb21wb25lbnRgLiBUaGUgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIHdoZW4gYG1seDVfZGV2Y29tX3NlbmRfZXZlbnRgIGlzIGNhbGxlZCBmb3IgYE1MWDVfREVWQ09NX01QVmAuIExldCBtZSBjaGVjayB3aGVyZSBgbWx4NV9kZXZjb21fc2VuZF9ldmVudGAgaXMgY2FsbGVkIHdpdGggdGhhdCBhcmd1bWVudC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIwNzEsIk91dHB1dFRva2VucyI6NDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NzAsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxMDozNDowMi42NDY2NDE3MjFaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3MDQyNzI1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1seDVfZGV2Y29tX3NlbmRfZXZlbnRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvaXBzZWNfZnMuYz0yODk0PXZvaWQgbWx4NWVfaXBzZWNfc2VuZF9ldmVudChzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwgaW50IGV2ZW50KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2lwc2VjX2ZzLmMtMjg5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwvaXBzZWNfZnMuYzoyODk5OlxcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQocHJpdi1cXHUwMDNlZGV2Y29tLCBldmVudCwgZXZlbnQsIHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9pcHNlY19mcy5jLTI5MDAtXFx0d2FpdF9mb3JfY29tcGxldGlvbihcXHUwMDI2cHJpdi1cXHUwMDNlaXBzZWMtXFx1MDAzZWNvbXApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYz0yMzQ9c3RhdGljIGludCBtbHg1ZV9kZXZjb21faW5pdF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHU2NCAqZGF0YSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjQ4LVxcdGlmIChtbHg1X2NvcmVfaXNfbXBfbWFzdGVyKHByaXYtXFx1MDAzZW1kZXYpKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uYzoyNDk6XFx0XFx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChwcml2LVxcdTAwM2VkZXZjb20sIE1QVl9ERVZDT01fTUFTVEVSX1VQLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjUwLVxcdFxcdFxcdFxcdCAgICAgICBNUFZfREVWQ09NX01BU1RFUl9VUCwgcHJpdik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jPTI1Nz1zdGF0aWMgdm9pZCBtbHg1ZV9kZXZjb21fY2xlYW51cF9tcHYoc3RydWN0IG1seDVlX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fbWFpbi5jLTI2Mi1cXHRpZiAobWx4NV9jb3JlX2lzX21wX21hc3Rlcihwcml2LVxcdTAwM2VtZGV2KSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmM6MjYzOlxcdFxcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQocHJpdi1cXHUwMDNlZGV2Y29tLCBNUFZfREVWQ09NX01BU1RFUl9ET1dOLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9tYWluLmMtMjY0LVxcdFxcdFxcdFxcdCAgICAgICBNUFZfREVWQ09NX01BU1RFUl9ET1dOLCBwcml2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9MzMwOD12b2lkIG1seDVfZXN3X29mZmxvYWRzX2RldmNvbV9pbml0KHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMtMzMzNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jOjMzMzU6XFx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChlc3ctXFx1MDAzZWRldmNvbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzMzYtXFx0XFx0XFx0ICAgICAgIEVTV19PRkZMT0FEU19ERVZDT01fUEFJUixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmM9MzM0MT12b2lkIG1seDVfZXN3X29mZmxvYWRzX2RldmNvbV9jbGVhbnVwKHN0cnVjdCBtbHg1X2Vzd2l0Y2ggKmVzdylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMtMzM0NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jOjMzNDY6XFx0bWx4NV9kZXZjb21fc2VuZF9ldmVudChlc3ctXFx1MDAzZWRldmNvbSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jLTMzNDctXFx0XFx0XFx0ICAgICAgIEVTV19PRkZMT0FEU19ERVZDT01fVU5QQUlSLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYz0yMDgyPXZvaWQgbWx4NV9sYWdfcmVtb3ZlX21kZXYoc3RydWN0IG1seDVfY29yZV9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmMtMjEwMy1cXHQvKiBTZW5kIGRldmNvbSBldmVudCB0byBub3RpZnkgcGVlcnMgdGhhdCBhIGRldmljZSBpcyBiZWluZyByZW1vdmVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYzoyMTA0OlxcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoZGV2LVxcdTAwM2Vwcml2LmhjYV9kZXZjb21fY29tcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jLTIxMDUtXFx0XFx0XFx0ICAgICAgIExBR19ERVZDT01fVU5QQUlSLCBMQUdfREVWQ09NX1VOUEFJUiwgZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9sYWcvbGFnLmM9MjExMD12b2lkIG1seDVfbGFnX2FkZF9tZGV2KHN0cnVjdCBtbHg1X2NvcmVfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jLTIxMjktXFx0LyogU2VuZCBkZXZjb20gZXZlbnQgdG8gbm90aWZ5IHBlZXJzIHRoYXQgYSBkZXZpY2Ugd2FzIGFkZGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xhZy9sYWcuYzoyMTMwOlxcdG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoZGV2LVxcdTAwM2Vwcml2LmhjYV9kZXZjb21fY29tcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGFnL2xhZy5jLTIxMzEtXFx0XFx0XFx0ICAgICAgIExBR19ERVZDT01fUEFJUiwgTEFHX0RFVkNPTV9VTlBBSVIsIGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5jPTI4Mj1pbnQgbWx4NV9kZXZjb21fY29tcF9nZXRfc2l6ZShzdHJ1Y3QgbWx4NV9kZXZjb21fY29tcF9kZXYgKmRldmNvbSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmMtMjg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmM6Mjg5OmludCBtbHg1X2RldmNvbV9zZW5kX2V2ZW50KHN0cnVjdCBtbHg1X2RldmNvbV9jb21wX2RldiAqZGV2Y29tLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmMtMjkwLVxcdFxcdFxcdCAgIGludCBldmVudCwgaW50IHJvbGxiYWNrX2V2ZW50LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9kZXZjb20uaD00Nz12b2lkIG1seDVfZGV2Y29tX3VucmVnaXN0ZXJfY29tcG9uZW50KHN0cnVjdCBtbHg1X2RldmNvbV9jb21wX2RldiAqZGV2Y29tKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvbGliL2RldmNvbS5oLTQ4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9saWIvZGV2Y29tLmg6NDk6aW50IG1seDVfZGV2Y29tX3NlbmRfZXZlbnQoc3RydWN0IG1seDVfZGV2Y29tX2NvbXBfZGV2ICpkZXZjb20sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2xpYi9kZXZjb20uaC01MC1cXHRcXHRcXHQgICBpbnQgZXZlbnQsIGludCByb2xsYmFja19ldmVudCxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzQ6MDIuNzEzNjg5MTc2WiIsIlNlcSI6MzUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjkyODA3MDU0MTUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgVGhpcyBQYXRjaCoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IHRoaXMgYG1seDVlX2RldmNvbV9pbml0X21wdmAgZnVuY3Rpb24gaXMgdGhlIGtleS4gU3BlY2lmaWNhbGx5LCBJJ20gY29uY2VybmVkIHRoYXQgYG1seDVfZGV2Y29tX3NlbmRfZXZlbnRgIGlzIGNhbGxlZCB3aXRoaW4uIFRoaXMgY2FsbCB0cmlnZ2VycyBjZXJ0YWluIGFjdGlvbnMgYmFzZWQgb24gd2hldGhlciB0aGUgZGV2aWNlIGlzIGEgXCJtYXN0ZXJcIi4gVGhpcyBmdW5jdGlvbiBpcyAqY2FsbGVkKiB3aGVuIHRoZSBkcml2ZXIgYWZmaWxpYXRpb24gZXZlbnQgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGlzIHJlY2VpdmVkLlxuXG5Ob3csIHdoZXJlIGRvZXMgdGhhdCBldmVudCBjb21lIGZyb20/IFdlbGwsIGFmdGVyIGRpZ2dpbmcgdGhyb3VnaCB0aGUgY29kZSwgaXQncyBwcmV0dHkgY2xlYXIgdGhhdCBgTUxYNV9EUklWRVJfRVZFTlRfQUZGSUxJQVRJT05fRE9ORWAgaXMgb25seSBnZW5lcmF0ZWQgYnkgYG1seDVfaWJfYmluZF9zbGF2ZV9wb3J0YCwgYW5kIHRoaXMgZnVuY3Rpb24gaXMgaXRzZWxmIGNhbGxlZCBkdXJpbmcgdGhlIHJlZ2lzdHJhdGlvbiBhbmQgYmluZGluZyBvZiBhbiBJbmZpbmliYW5kIGRldmljZSwgc3BlY2lmaWNhbGx5IHJlbGF0aW5nIHRvIE1lbGxhbm94IGhhcmR3YXJlLiBUaGlzIHNlZW1zIHRvIGhhcHBlbiBpbiBgZHJpdmVycy9pbmZpbmliYW5kL2h3L21seDUvbWFpbi5jYC5cblxuQWhhISBUaGlzIGFsc28gaW1wbGllcyB3ZSBuZWVkICpwaHlzaWNhbCogTWVsbGFub3ggaGFyZHdhcmUgZm9yIHRoaXMgY29kZSBwYXRoIHRvIGV2ZW4gYmUgY29uc2lkZXJlZC4gIFRoZXJlIGlzbid0IGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIHRoZSBNZWxsYW5veCBoYXJkd2FyZSBpbnZvbHZlZC4gVGhpcyBtZWFucyBpdCdzIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLCB0aGUgZW52aXJvbm1lbnRzIHN5emthbGxlciB0eXBpY2FsbHkgcnVucyBpbi5cblxuTGV0IG1lIGp1c3QgZG91YmxlIGNoZWNrIG9uZSB0aGluZzogQXJlIHRoZXJlICphbnkqIG90aGVyIHdheXMgdGhpcyBldmVudCBjb3VsZCBiZSB0cmlnZ2VyZWQ/IEEgcXVpY2sgZ2xvYmFsIHNlYXJjaCBmb3IgYE1MWDVfRFJJVkVSX0VWRU5UX0FGRklMSUFUSU9OX0RPTkVgIGFjcm9zcyB0aGUga2VybmVsIGNvZGUgYmFzZSBjb25maXJtcyB0aGF0IGl0J3Mgb25seSB1c2VkIGluIGBkcml2ZXJzL2luZmluaWJhbmQvaHcvbWx4NS9tYWluLmNgLCBgZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX21haW4uY2AgYW5kIGluIGEgaGVhZGVyIGZpbGUsIGBpbmNsdWRlL2xpbnV4L21seDUvZGV2aWNlLmhgLiBTbyB0aGVyZSBpcyBubyBhbHRlcm5hdGUgcGF0aCBmb3IgdGhlIGV2ZW50IHRvIGJlIGdlbmVyYXRlZC5cblxuVGhlcmVmb3JlLCB0aGlzIHBhdGNoIGlzIG1vZGlmeWluZyBhIGNvZGUgcGF0aCB0aGF0IGlzIGVmZmVjdGl2ZWx5IGluYWNjZXNzaWJsZSBpbiB0aGUgdGFyZ2V0IGVudmlyb25tZW50cy4gIEdpdmVuIHRoZSBpbnN0cnVjdGlvbnMsIEkgbmVlZCB0byBmbGFnIHRoaXMgYXMgbm90IHdvcnRoIGZ1enppbmcuIFRoZSBwYXRjaCAqb25seSogbW9kaWZpZXMgaGFyZHdhcmUtc3BlY2lmaWMgZHJpdmVyIChgbWx4NWApIHRoYXQgaGFzIG5vIHNvZnR3YXJlIGVtdWxhdGlvbi5cblxuTGV0J3MgcmV2aWV3IHRoZSBwcm9tcHQgaW5zdHJ1Y3Rpb25zOlxuXCJSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLi4uXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cIlxuXG5CaW5nbyEgVGhpcyBwZXJmZWN0bHkgZGVzY3JpYmVzIHRoaXMgc2NlbmFyaW8uIFRoaXMgcGF0Y2ggaXMgaXJyZWxldmFudCBmb3IgZnV6emluZy4gSSdsbCBjb25zdHJ1Y3QgdGhlIGFwcHJvcHJpYXRlIHJlc3BvbnNlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTA3NCwiT3V0cHV0VG9rZW5zIjoxNDAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo2NDQsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTA6MzQ6MTEuOTk0Mzk3NDgxWiIsIlNlcSI6MzYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjU0NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY29yZSBkcml2ZXIgKG1seDVfY29yZSksIHNwZWNpZmljYWxseSB0aGUgTVBWIGRldmNvbSBldmVudCBoYW5kbGluZy4gVGhpcyBjb2RlIHBhdGggaXMgb25seSByZWFjaGFibGUgd2hlbiBhIHBoeXNpY2FsIE1lbGxhbm94IFBDSSBkZXZpY2UgaXMgcHJlc2VudCBhbmQgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCB3aGljaCB0cmlnZ2VycyB0aGUgSW5maW5pYmFuZCBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCBzdWJzZXF1ZW50IGFmZmlsaWF0aW9uIGV2ZW50cy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBNZWxsYW5veCBoYXJkd2FyZSBpbiB0aGUga2VybmVsIG9yIFFFTVUsIHRoaXMgY29kZSBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lbGxhbm94IENvbm5lY3RYLTQvNS82LzcgY29yZSBkcml2ZXIgKG1seDVfY29yZSksIHNwZWNpZmljYWxseSB0aGUgTVBWIGRldmNvbSBldmVudCBoYW5kbGluZy4gVGhpcyBjb2RlIHBhdGggaXMgb25seSByZWFjaGFibGUgd2hlbiBhIHBoeXNpY2FsIE1lbGxhbm94IFBDSSBkZXZpY2UgaXMgcHJlc2VudCBhbmQgc3VjY2Vzc2Z1bGx5IGluaXRpYWxpemVkLCB3aGljaCB0cmlnZ2VycyB0aGUgSW5maW5pYmFuZCBkZXZpY2UgcmVnaXN0cmF0aW9uIGFuZCBzdWJzZXF1ZW50IGFmZmlsaWF0aW9uIGV2ZW50cy4gU2luY2UgdGhlcmUgaXMgbm8gc29mdHdhcmUgZW11bGF0aW9uIGZvciBNZWxsYW5veCBoYXJkd2FyZSBpbiB0aGUga2VybmVsIG9yIFFFTVUsIHRoaXMgY29kZSBpcyBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VIHVzZWQgYnkgc3l6a2FsbGVyLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowsszjg[1] Phase: Running StartedAt: 2026-07-08 10:34:23 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowsszjg[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-08 10:34:23 +0000 UTC FinishedAt: 2026-07-08 10:34:29 +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,}