Name: series-workflow7mxxf Phase: Failed StartedAt: 2026-09-03 09:20:40 +0000 UTC FinishedAt: 2026-09-03 09:41:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7mxxf[0] Phase: Succeeded StartedAt: 2026-09-03 09:20:40 +0000 UTC FinishedAt: 2026-09-03 09:40:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7mxxf[0].run-triage Phase: Succeeded StartedAt: 2026-09-03 09:20:40 +0000 UTC FinishedAt: 2026-09-03 09:40:55 +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+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyOWEyNGIzZDg1NDU4YTJhM2I3MTMzYzQ0OWVhNzBhZTYxNmQ5ZTU2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBTZXAgMyAwOTozODozNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLmE0ZDAwYmY4MTQyMzcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xuQEAgLTMxMCw2ICYjNDM7MzEwLDEzIEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sXG4gXHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWZsYWdzIFx1MDAyNiBTVE1NQUNfRkxBR19FWFRfU05BUFNIT1RfRU4pXG4gXHRcdHJldHVybiAtRUJVU1k7XG4gXG4mIzQzO1x0LyogVGhlIFhHTUFDIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxlciBjbGVhcnMgVFNJUyBieSByZWFkaW5nXG4mIzQzO1x0ICogWEdNQUNfVElNRVNUQU1QX1NUQVRVUywgd2hpY2ggd291bGQgcmFjZSB3aXRoIHRoZSBUU0lTIHBvbGxcbiYjNDM7XHQgKiBiZWxvdy4gIE1hc2sgWEdNQUNfVFNJRSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjcm9zcy10aW1lc3RhbXBcbiYjNDM7XHQgKiBzbyB0aGUgaGFuZGxlciBkb2VzIG5vdCBydW4gd2hpbGUgd2Ugb3duIHRoZSBzbmFwc2hvdCBGSUZPLlxuJiM0MztcdCAqL1xuJiM0MztcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCBYR01BQ19UU0lFLCAwKTtcbiYjNDM7XG4gXHRtdXRleF9sb2NrKFx1MDAyNnByaXYtXHUwMDNlYXV4X3RzX2xvY2spO1xuIFx0LyogRW5hYmxlIEludGVybmFsIHNuYXBzaG90IHRyaWdnZXIgKi9cbiBcdGFjcl92YWx1ZSA9IHJlYWRsKHB0cGFkZHIgJiM0MzsgUFRQX0FDUik7XG5AQCAtMzI5LDYgJiM0MzszMzYsNyBAQCBzdGF0aWMgaW50IHNtdGdfY3Jvc3N0c3RhbXAoa3RpbWVfdCAqZGV2aWNlLCBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCAqc3lzdGVtLFxuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4gXHRcdG11dGV4X3VubG9jayhcdTAwMjZwcml2LVx1MDAzZWF1eF90c19sb2NrKTtcbiYjNDM7XHRcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXHR3cml0ZWwoYWNyX3ZhbHVlLCBwdHBhZGRyICYjNDM7IFBUUF9BQ1IpO1xuQEAgLTM1Myw2ICYjNDM7MzYxLDcgQEAgc3RhdGljIGludCBzbXRnX2Nyb3NzdHN0YW1wKGt0aW1lX3QgKmRldmljZSwgc3RydWN0IHN5c3RlbV9jb3VudGVydmFsX3QgKnN5c3RlbSxcbiBcdHJldCA9IHJlYWRsX3BvbGxfdGltZW91dChwcml2LVx1MDAzZWlvYWRkciAmIzQzOyBYR01BQ19JTlRfU1RBVFVTLCB2LFxuIFx0XHRcdFx0ICh2IFx1MDAyNiBYR01BQ19JTlRfVFNJUyksIDEwMCwgMTAwMDApO1xuIFx0aWYgKHJldCkge1xuJiM0MztcdFx0c3RtbWFjX21hY19pcnFfbW9kaWZ5KHByaXYsIDAsIFhHTUFDX1RTSUUpO1xuIFx0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcJiMzNDslczogV2FpdCBmb3IgdGltZSBzeW5jIG9wZXJhdGlvbiB0aW1lb3V0XFxuXCYjMzQ7LFxuIFx0XHRcdCAgIF9fZnVuY19fKTtcbiBcdFx0cmV0dXJuIHJldDtcbkBAIC0zNzUsNiAmIzQzOzM4NCw4IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sXG4gXHRcdHJlYWRfdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cHJpdi1cdTAwM2VwdHBfbG9jaywgZmxhZ3MpO1xuIFx0fVxuIFxuJiM0MztcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcbiYjNDM7XG4gXHRnZXRfc210Z3RpbWUocHJpdi1cdTAwM2VtaWksIFNNVEdfTURJT19BRERSLCBcdTAwMjZzbXRnX3RpbWUpO1xuIFx0c3lzdGVtLVx1MDAzZWN5Y2xlcyA9IHNtdGdfdGltZTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxuaW5kZXggZjhhYjM0N2Y3YjViOS4uMDNjYmFlMzI2OTk1YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmhcbkBAIC04Nyw3ICYjNDM7ODcsNyBAQFxuICNkZWZpbmUgWEdNQUNfVFNJRVx0XHRcdEJJVCgxMilcbiAjZGVmaW5lIFhHTUFDX0xQSUlFXHRcdFx0QklUKDUpXG4gI2RlZmluZSBYR01BQ19QTVRJRVx0XHRcdEJJVCg0KVxuLSNkZWZpbmUgWEdNQUNfSU5UX0RFRkFVTFRfRU5cdFx0KFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUpXG4mIzQzOyNkZWZpbmUgWEdNQUNfSU5UX0RFRkFVTFRfRU5cdFx0KFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUgfCBYR01BQ19UU0lFKVxuICNkZWZpbmUgWEdNQUNfUXhfVFhfRkxPV19DVFJMKHgpXHQoMHgwMDAwMDA3MCAmIzQzOyAoeCkgKiA0KVxuICNkZWZpbmUgWEdNQUNfUFRcdFx0XHRHRU5NQVNLKDMxLCAxNilcbiAjZGVmaW5lIFhHTUFDX1RGRVx0XHRcdEJJVCgxKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuY1xuaW5kZXggMWE4OGNiYWVkNzBjYS4uODkxYjdjZWVhMmQ0NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXG5AQCAtMTE1NCw2ICYjNDM7MTE1NCw0OSBAQCBzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiM0Mzt2b2lkIGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuJiM0Mzt7XG4mIzQzO1x0dTMyIHRzX3N0YXR1cywgcGVuZGluZ19zbmFwc2hvdHMsIGFjcl92YWx1ZSwgY2hhbm5lbDtcbiYjNDM7XHRzdHJ1Y3QgcHRwX2Nsb2NrX2V2ZW50IGV2ZW50O1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4mIzQzO1x0dTY0IHB0cF90aW1lO1xuJiM0MztcdGludCBpO1xuJiM0MztcbiYjNDM7XHQvKiBSZWFkIFhHTUFDX1RJTUVTVEFNUF9TVEFUVVMgdG8gZ2V0IHRoZSBBVVggc25hcHNob3RcbiYjNDM7XHQgKiBjb3VudC4gIFRoaXMgcmVhZCBhbHNvIGNsZWFycyB0aGUgVFNJUyBiaXQgaW5cbiYjNDM7XHQgKiBYR01BQ19JTlRfU1RBVFVTLlxuJiM0MztcdCAqIFRYIHRpbWVzdGFtcCBwb2xsaW5nIG1heSBoYXZlIGFscmVhZHkgY2xlYXJlZCBUU0lTXG4mIzQzO1x0ICogYW5kIEFVWFRTVFJJRywgc28gcmVseSBvbiBBVFNOUyBpbnN0ZWFkLlxuJiM0MztcdCAqIFRYVFNDIGlzIGNsZWFyZWQgYnkgWEdNQUNfVFhUSU1FU1RBTVBfU0VDLCBub3QgYnlcbiYjNDM7XHQgKiB0aGlzIHJlZ2lzdGVyLCBzbyB0aGVyZSBpcyBubyBjb25mbGljdC5cbiYjNDM7XHQgKi9cbiYjNDM7XHR0c19zdGF0dXMgPSByZWFkbChwcml2LVx1MDAzZWlvYWRkciAmIzQzOyBYR01BQ19USU1FU1RBTVBfU1RBVFVTKTtcbiYjNDM7XG4mIzQzO1x0aWYgKCEocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWZsYWdzIFx1MDAyNiBTVE1NQUNfRkxBR19FWFRfU05BUFNIT1RfRU4pKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRwZW5kaW5nX3NuYXBzaG90cyA9IEZJRUxEX0dFVChYR01BQ19USU1FU1RBTVBfQVRTTlNfTUFTSywgdHNfc3RhdHVzKTtcbiYjNDM7XHRpZiAoIXBlbmRpbmdfc25hcHNob3RzKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRhY3JfdmFsdWUgPSByZWFkbChwcml2LVx1MDAzZXB0cGFkZHIgJiM0MzsgUFRQX0FDUik7XG4mIzQzO1x0Y2hhbm5lbCA9IEZJRUxEX0dFVChQVFBfQUNSX01BU0ssIGFjcl92YWx1ZSk7XG4mIzQzO1x0aWYgKCFjaGFubmVsKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdGNoYW5uZWwgPSBpbG9nMihjaGFubmVsKTtcbiYjNDM7XG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcGVuZGluZ19zbmFwc2hvdHM7IGkmIzQzOyYjNDM7KSB7XG4mIzQzO1x0XHRyZWFkX2xvY2tfaXJxc2F2ZShcdTAwMjZwcml2LVx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XG4mIzQzO1x0XHRzdG1tYWNfZ2V0X3B0cHRpbWUocHJpdiwgcHJpdi1cdTAwM2VwdHBhZGRyLCBcdTAwMjZwdHBfdGltZSk7XG4mIzQzO1x0XHRyZWFkX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnByaXYtXHUwMDNlcHRwX2xvY2ssIGZsYWdzKTtcbiYjNDM7XG4mIzQzO1x0XHRldmVudC50eXBlID0gUFRQX0NMT0NLX0VYVFRTO1xuJiM0MztcdFx0ZXZlbnQuaW5kZXggPSBjaGFubmVsO1xuJiM0MztcdFx0ZXZlbnQudGltZXN0YW1wID0gcHRwX3RpbWU7XG4mIzQzO1x0XHRwdHBfY2xvY2tfZXZlbnQocHJpdi1cdTAwM2VwdHBfY2xvY2ssIFx1MDAyNmV2ZW50KTtcbiYjNDM7XHR9XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCBkd3hnbWFjMl9mbGV4X3Bwc19jb25maWcodm9pZCBfX2lvbWVtICppb2FkZHIsIGludCBpbmRleCxcbiBcdFx0XHRcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Bwc19jZmcgKmNmZywgYm9vbCBlbmFibGUsXG4gXHRcdFx0XHQgICAgdTMyIHN1Yl9zZWNvbmRfaW5jLCB1MzIgc3lzdGltZV9mbGFncylcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmNcbmluZGV4IDI2NTY3MTE3MGJmNmUuLmViYTg3NDEwZjk4NWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xuQEAgLTI1OCw3ICYjNDM7MjU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XG4gXHRcdC5kbWEgPSBcdTAwMjZkd3hnbWFjMjEwX2RtYV9vcHMsXG4gXHRcdC5tYWMgPSBcdTAwMjZkd3hnbWFjMjEwX29wcyxcbiBcdFx0LnZsYW4gPSBcdTAwMjZkd3hnbWFjMjEwX3ZsYW5fb3BzLFxuLVx0XHQuaHd0aW1lc3RhbXAgPSBcdTAwMjZzdG1tYWNfcHRwLFxuJiM0MztcdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2ZHd4Z21hYzJfcHRwLFxuIFx0XHQucHRwID0gXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXG4gXHRcdC5tb2RlID0gTlVMTCxcbiBcdFx0LnRjID0gXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxuQEAgLTI4MCw3ICYjNDM7MjgwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XG4gXHRcdC5kbWEgPSBcdTAwMjZkd3hnbWFjMjEwX2RtYV9vcHMsXG4gXHRcdC5tYWMgPSBcdTAwMjZkd3hsZ21hYzJfb3BzLFxuIFx0XHQudmxhbiA9IFx1MDAyNmR3eGxnbWFjMl92bGFuX29wcyxcbi1cdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2c3RtbWFjX3B0cCxcbiYjNDM7XHRcdC5od3RpbWVzdGFtcCA9IFx1MDAyNmR3eGdtYWMyX3B0cCxcbiBcdFx0LnB0cCA9IFx1MDAyNnN0bW1hY19wdHBfY2xvY2tfb3BzLFxuIFx0XHQubW9kZSA9IE5VTEwsXG4gXHRcdC50YyA9IFx1MDAyNmR3bWFjNTEwX3RjX29wcyxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcbmluZGV4IGZlMThmOThmYWU0NTEuLjVhMzA4ZTc5ZGI0YTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaFxuQEAgLTY3Miw2ICYjNDM7NjcyLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgbmRlc2Nfb3BzO1xuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIHN0bW1hY19wdHA7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHdtYWMxMDAwX3B0cDtcbiYjNDM7ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHd4Z21hYzJfcHRwO1xuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzIHJpbmdfbW9kZV9vcHM7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHM7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY1xuaW5kZXggYjlhOTg1ZmE3NzJjOS4uOWQ3ZDI0MjU5YWJkNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY1xuQEAgLTI3NywzICYjNDM7Mjc3LDE1IEBAIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHdtYWMxMDAwX3B0cCA9IHtcbiBcdC5nZXRfcHRwdGltZSA9IGR3bWFjMTAwMF9nZXRfcHRwdGltZSxcbiBcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXG4gfTtcbiYjNDM7XG4mIzQzO2NvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHd4Z21hYzJfcHRwID0ge1xuJiM0MztcdC5jb25maWdfaHdfdHN0YW1waW5nID0gY29uZmlnX2h3X3RzdGFtcGluZyxcbiYjNDM7XHQuaW5pdF9zeXN0aW1lID0gaW5pdF9zeXN0aW1lLFxuJiM0MztcdC5jb25maWdfc3ViX3NlY29uZF9pbmNyZW1lbnQgPSBjb25maWdfc3ViX3NlY29uZF9pbmNyZW1lbnQsXG4mIzQzO1x0LmNvbmZpZ19hZGRlbmQgPSBjb25maWdfYWRkZW5kLFxuJiM0MztcdC5hZGp1c3Rfc3lzdGltZSA9IGFkanVzdF9zeXN0aW1lLFxuJiM0MztcdC5nZXRfc3lzdGltZSA9IGdldF9zeXN0aW1lLFxuJiM0MztcdC5nZXRfcHRwdGltZSA9IGdldF9wdHB0aW1lLFxuJiM0MztcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCxcbiYjNDM7XHQuaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5ID0gaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5LFxuJiM0Mzt9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaFxuaW5kZXggM2ZlMGUzYTgwZTgwYS4uZGFkZTA5NjE0MTYzYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oXG5AQCAtMTAzLDYgJiM0MzsxMDMsNyBAQCBpbnQgZHdtYWMxMDAwX3B0cF9lbmFibGUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXG4gXG4gdm9pZCBkd21hYzEwMDBfZ2V0X3B0cHRpbWUodm9pZCBfX2lvbWVtICpwdHBhZGRyLCB1NjQgKnB0cF90aW1lKTtcbiB2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG4mIzQzO3ZvaWQgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gc3RtbWFjX3B0cF9jbG9ja19vcHM7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBkd21hYzEwMDBfcHRwX2Nsb2NrX29wcztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgU1RNTUFDIERXWEdNQUMgKDEwRyBNQUMpIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxpbmcgYW5kIEFsdGVyYSBTb0NGUEdBIGV0aGVybmV0IGdsdWUgZHJpdmVyLiBUaGVzZSBjb2RlIHBhdGhzIHJlcXVpcmUgcGh5c2ljYWwgU29DL0ZQR0EgaGFyZHdhcmUgKHN1Y2ggYXMgSW50ZWwvQWx0ZXJhIFNvQ0ZQR0Egb3IgTnZpZGlhIFRlZ3JhIHBsYXRmb3JtcykgdGhhdCBpcyBub3QgYXZhaWxhYmxlIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI5YTI0YjNkODU0NThhMmEzYjcxMzNjNDQ5ZWE3MGFlNjE2ZDllNTYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IFNlcCAzIDA5OjM4OjM2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jCmluZGV4IDFkN2YwYTU3ZDI4ODkuLmE0ZDAwYmY4MTQyMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMKQEAgLTMxMCw2ICYjNDM7MzEwLDEzIEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sCiAJaWYgKHByaXYtJmd0O3BsYXQtJmd0O2ZsYWdzICZhbXA7IFNUTU1BQ19GTEFHX0VYVF9TTkFQU0hPVF9FTikKIAkJcmV0dXJuIC1FQlVTWTsKIAomIzQzOwkvKiBUaGUgWEdNQUMgdGltZXN0YW1wIGludGVycnVwdCBoYW5kbGVyIGNsZWFycyBUU0lTIGJ5IHJlYWRpbmcKJiM0MzsJICogWEdNQUNfVElNRVNUQU1QX1NUQVRVUywgd2hpY2ggd291bGQgcmFjZSB3aXRoIHRoZSBUU0lTIHBvbGwKJiM0MzsJICogYmVsb3cuICBNYXNrIFhHTUFDX1RTSUUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY3Jvc3MtdGltZXN0YW1wCiYjNDM7CSAqIHNvIHRoZSBoYW5kbGVyIGRvZXMgbm90IHJ1biB3aGlsZSB3ZSBvd24gdGhlIHNuYXBzaG90IEZJRk8uCiYjNDM7CSAqLwomIzQzOwlzdG1tYWNfbWFjX2lycV9tb2RpZnkocHJpdiwgWEdNQUNfVFNJRSwgMCk7CiYjNDM7CiAJbXV0ZXhfbG9jaygmYW1wO3ByaXYtJmd0O2F1eF90c19sb2NrKTsKIAkvKiBFbmFibGUgSW50ZXJuYWwgc25hcHNob3QgdHJpZ2dlciAqLwogCWFjcl92YWx1ZSA9IHJlYWRsKHB0cGFkZHIgJiM0MzsgUFRQX0FDUik7CkBAIC0zMjksNiAmIzQzOzMzNiw3IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCW11dGV4X3VubG9jaygmYW1wO3ByaXYtJmd0O2F1eF90c19sb2NrKTsKJiM0MzsJCXN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXdyaXRlbChhY3JfdmFsdWUsIHB0cGFkZHIgJiM0MzsgUFRQX0FDUik7CkBAIC0zNTMsNiAmIzQzOzM2MSw3IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sCiAJcmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0KHByaXYtJmd0O2lvYWRkciAmIzQzOyBYR01BQ19JTlRfU1RBVFVTLCB2LAogCQkJCSAodiAmYW1wOyBYR01BQ19JTlRfVFNJUyksIDEwMCwgMTAwMDApOwogCWlmIChyZXQpIHsKJiM0MzsJCXN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTsKIAkJbmV0ZGV2X2Vycihwcml2LSZndDtkZXYsICYjMzQ7JXM6IFdhaXQgZm9yIHRpbWUgc3luYyBvcGVyYXRpb24gdGltZW91dFxuJiMzNDssCiAJCQkgICBfX2Z1bmNfXyk7CiAJCXJldHVybiByZXQ7CkBAIC0zNzUsNiAmIzQzOzM4NCw4IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sCiAJCXJlYWRfdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtwcml2LSZndDtwdHBfbG9jaywgZmxhZ3MpOwogCX0KIAomIzQzOwlzdG1tYWNfbWFjX2lycV9tb2RpZnkocHJpdiwgMCwgWEdNQUNfVFNJRSk7CiYjNDM7CiAJZ2V0X3NtdGd0aW1lKHByaXYtJmd0O21paSwgU01UR19NRElPX0FERFIsICZhbXA7c210Z190aW1lKTsKIAlzeXN0ZW0tJmd0O2N5Y2xlcyA9IHNtdGdfdGltZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgKaW5kZXggZjhhYjM0N2Y3YjViOS4uMDNjYmFlMzI2OTk1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oCkBAIC04Nyw3ICYjNDM7ODcsNyBAQAogI2RlZmluZSBYR01BQ19UU0lFCQkJQklUKDEyKQogI2RlZmluZSBYR01BQ19MUElJRQkJCUJJVCg1KQogI2RlZmluZSBYR01BQ19QTVRJRQkJCUJJVCg0KQotI2RlZmluZSBYR01BQ19JTlRfREVGQVVMVF9FTgkJKFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUpCiYjNDM7I2RlZmluZSBYR01BQ19JTlRfREVGQVVMVF9FTgkJKFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUgfCBYR01BQ19UU0lFKQogI2RlZmluZSBYR01BQ19ReF9UWF9GTE9XX0NUUkwoeCkJKDB4MDAwMDAwNzAgJiM0MzsgKHgpICogNCkKICNkZWZpbmUgWEdNQUNfUFQJCQlHRU5NQVNLKDMxLCAxNikKICNkZWZpbmUgWEdNQUNfVEZFCQkJQklUKDEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMKaW5kZXggMWE4OGNiYWVkNzBjYS4uODkxYjdjZWVhMmQ0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYwpAQCAtMTE1NCw2ICYjNDM7MTE1NCw0OSBAQCBzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKQogCXJldHVybiAwOwogfQogCiYjNDM7dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKJiM0Mzt7CiYjNDM7CXUzMiB0c19zdGF0dXMsIHBlbmRpbmdfc25hcHNob3RzLCBhY3JfdmFsdWUsIGNoYW5uZWw7CiYjNDM7CXN0cnVjdCBwdHBfY2xvY2tfZXZlbnQgZXZlbnQ7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiYjNDM7CXU2NCBwdHBfdGltZTsKJiM0MzsJaW50IGk7CiYjNDM7CiYjNDM7CS8qIFJlYWQgWEdNQUNfVElNRVNUQU1QX1NUQVRVUyB0byBnZXQgdGhlIEFVWCBzbmFwc2hvdAomIzQzOwkgKiBjb3VudC4gIFRoaXMgcmVhZCBhbHNvIGNsZWFycyB0aGUgVFNJUyBiaXQgaW4KJiM0MzsJICogWEdNQUNfSU5UX1NUQVRVUy4KJiM0MzsJICogVFggdGltZXN0YW1wIHBvbGxpbmcgbWF5IGhhdmUgYWxyZWFkeSBjbGVhcmVkIFRTSVMKJiM0MzsJICogYW5kIEFVWFRTVFJJRywgc28gcmVseSBvbiBBVFNOUyBpbnN0ZWFkLgomIzQzOwkgKiBUWFRTQyBpcyBjbGVhcmVkIGJ5IFhHTUFDX1RYVElNRVNUQU1QX1NFQywgbm90IGJ5CiYjNDM7CSAqIHRoaXMgcmVnaXN0ZXIsIHNvIHRoZXJlIGlzIG5vIGNvbmZsaWN0LgomIzQzOwkgKi8KJiM0MzsJdHNfc3RhdHVzID0gcmVhZGwocHJpdi0mZ3Q7aW9hZGRyICYjNDM7IFhHTUFDX1RJTUVTVEFNUF9TVEFUVVMpOwomIzQzOwomIzQzOwlpZiAoIShwcml2LSZndDtwbGF0LSZndDtmbGFncyAmYW1wOyBTVE1NQUNfRkxBR19FWFRfU05BUFNIT1RfRU4pKQomIzQzOwkJcmV0dXJuOwomIzQzOwomIzQzOwlwZW5kaW5nX3NuYXBzaG90cyA9IEZJRUxEX0dFVChYR01BQ19USU1FU1RBTVBfQVRTTlNfTUFTSywgdHNfc3RhdHVzKTsKJiM0MzsJaWYgKCFwZW5kaW5nX3NuYXBzaG90cykKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJYWNyX3ZhbHVlID0gcmVhZGwocHJpdi0mZ3Q7cHRwYWRkciAmIzQzOyBQVFBfQUNSKTsKJiM0MzsJY2hhbm5lbCA9IEZJRUxEX0dFVChQVFBfQUNSX01BU0ssIGFjcl92YWx1ZSk7CiYjNDM7CWlmICghY2hhbm5lbCkKJiM0MzsJCXJldHVybjsKJiM0MzsJY2hhbm5lbCA9IGlsb2cyKGNoYW5uZWwpOwomIzQzOwomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgcGVuZGluZ19zbmFwc2hvdHM7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQlyZWFkX2xvY2tfaXJxc2F2ZSgmYW1wO3ByaXYtJmd0O3B0cF9sb2NrLCBmbGFncyk7CiYjNDM7CQlzdG1tYWNfZ2V0X3B0cHRpbWUocHJpdiwgcHJpdi0mZ3Q7cHRwYWRkciwgJmFtcDtwdHBfdGltZSk7CiYjNDM7CQlyZWFkX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7cHJpdi0mZ3Q7cHRwX2xvY2ssIGZsYWdzKTsKJiM0MzsKJiM0MzsJCWV2ZW50LnR5cGUgPSBQVFBfQ0xPQ0tfRVhUVFM7CiYjNDM7CQlldmVudC5pbmRleCA9IGNoYW5uZWw7CiYjNDM7CQlldmVudC50aW1lc3RhbXAgPSBwdHBfdGltZTsKJiM0MzsJCXB0cF9jbG9ja19ldmVudChwcml2LSZndDtwdHBfY2xvY2ssICZhbXA7ZXZlbnQpOwomIzQzOwl9CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBkd3hnbWFjMl9mbGV4X3Bwc19jb25maWcodm9pZCBfX2lvbWVtICppb2FkZHIsIGludCBpbmRleCwKIAkJCQkgICAgc3RydWN0IHN0bW1hY19wcHNfY2ZnICpjZmcsIGJvb2wgZW5hYmxlLAogCQkJCSAgICB1MzIgc3ViX3NlY29uZF9pbmMsIHUzMiBzeXN0aW1lX2ZsYWdzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jCmluZGV4IDI2NTY3MTE3MGJmNmUuLmViYTg3NDEwZjk4NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMKQEAgLTI1OCw3ICYjNDM7MjU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7CiAJCS5kbWEgPSAmYW1wO2R3eGdtYWMyMTBfZG1hX29wcywKIAkJLm1hYyA9ICZhbXA7ZHd4Z21hYzIxMF9vcHMsCiAJCS52bGFuID0gJmFtcDtkd3hnbWFjMjEwX3ZsYW5fb3BzLAotCQkuaHd0aW1lc3RhbXAgPSAmYW1wO3N0bW1hY19wdHAsCiYjNDM7CQkuaHd0aW1lc3RhbXAgPSAmYW1wO2R3eGdtYWMyX3B0cCwKIAkJLnB0cCA9ICZhbXA7c3RtbWFjX3B0cF9jbG9ja19vcHMsCiAJCS5tb2RlID0gTlVMTCwKIAkJLnRjID0gJmFtcDtkd21hYzUxMF90Y19vcHMsCkBAIC0yODAsNyAmIzQzOzI4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkgewogCQkuZG1hID0gJmFtcDtkd3hnbWFjMjEwX2RtYV9vcHMsCiAJCS5tYWMgPSAmYW1wO2R3eGxnbWFjMl9vcHMsCiAJCS52bGFuID0gJmFtcDtkd3hsZ21hYzJfdmxhbl9vcHMsCi0JCS5od3RpbWVzdGFtcCA9ICZhbXA7c3RtbWFjX3B0cCwKJiM0MzsJCS5od3RpbWVzdGFtcCA9ICZhbXA7ZHd4Z21hYzJfcHRwLAogCQkucHRwID0gJmFtcDtzdG1tYWNfcHRwX2Nsb2NrX29wcywKIAkJLm1vZGUgPSBOVUxMLAogCQkudGMgPSAmYW1wO2R3bWFjNTEwX3RjX29wcywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaAppbmRleCBmZTE4Zjk4ZmFlNDUxLi41YTMwOGU3OWRiNGE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oCkBAIC02NzIsNiAmIzQzOzY3Miw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzIG5kZXNjX29wczsKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgc3RtbWFjX3B0cDsKIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3bWFjMTAwMF9wdHA7CiYjNDM7ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHd4Z21hYzJfcHRwOwogCiBleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyByaW5nX21vZGVfb3BzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jCmluZGV4IGI5YTk4NWZhNzcyYzkuLjlkN2QyNDI1OWFiZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jCkBAIC0yNzcsMyAmIzQzOzI3NywxNSBAQCBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3bWFjMTAwMF9wdHAgPSB7CiAJLmdldF9wdHB0aW1lID0gZHdtYWMxMDAwX2dldF9wdHB0aW1lLAogCS50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsCiB9OwomIzQzOwomIzQzO2NvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHd4Z21hYzJfcHRwID0gewomIzQzOwkuY29uZmlnX2h3X3RzdGFtcGluZyA9IGNvbmZpZ19od190c3RhbXBpbmcsCiYjNDM7CS5pbml0X3N5c3RpbWUgPSBpbml0X3N5c3RpbWUsCiYjNDM7CS5jb25maWdfc3ViX3NlY29uZF9pbmNyZW1lbnQgPSBjb25maWdfc3ViX3NlY29uZF9pbmNyZW1lbnQsCiYjNDM7CS5jb25maWdfYWRkZW5kID0gY29uZmlnX2FkZGVuZCwKJiM0MzsJLmFkanVzdF9zeXN0aW1lID0gYWRqdXN0X3N5c3RpbWUsCiYjNDM7CS5nZXRfc3lzdGltZSA9IGdldF9zeXN0aW1lLAomIzQzOwkuZ2V0X3B0cHRpbWUgPSBnZXRfcHRwdGltZSwKJiM0MzsJLnRpbWVzdGFtcF9pbnRlcnJ1cHQgPSBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0LAomIzQzOwkuaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5ID0gaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5LAomIzQzO307CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmgKaW5kZXggM2ZlMGUzYTgwZTgwYS4uZGFkZTA5NjE0MTYzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaApAQCAtMTAzLDYgJiM0MzsxMDMsNyBAQCBpbnQgZHdtYWMxMDAwX3B0cF9lbmFibGUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsCiAKIHZvaWQgZHdtYWMxMDAwX2dldF9wdHB0aW1lKHZvaWQgX19pb21lbSAqcHRwYWRkciwgdTY0ICpwdHBfdGltZSk7CiB2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7CiYjNDM7dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gc3RtbWFjX3B0cF9jbG9ja19vcHM7CiBleHRlcm4gY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIGR3bWFjMTAwMF9wdHBfY2xvY2tfb3BzOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTM2CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMzQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIGluIGZyb250IG9mIG1lLCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBmdXp6LXdvcnRoeS4gQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoZSBjb2RlLCBJIG5lZWQgdG8gZ2V0IGEgaGlnaC1sZXZlbCB2aWV3IG9mIHRoZSBsYW5kc2NhcGUuIEZpcnN0LCBsZXQmIzM5O3MgbG9vayBhdCB3aGF0JiMzOTtzIGJlZW4gdG91Y2hlZC4gSXQgbG9va3MgbGlrZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBgc3RtbWFjYCBkcml2ZXIsIHNwZWNpZmljYWxseSBpdHMgaW50ZXJhY3Rpb24gd2l0aCB2YXJpb3VzIFBIWS9NQUMgY29tcG9uZW50czogYGR3bWFjLXNvY2ZwZ2EuY2AsIGBkd3hnbWFjMi5oYCwgYGR3eGdtYWMyX2NvcmUuY2AsIGBod2lmLmNgLCBgaHdpZi5oYCwgYHN0bW1hY19od3RzdGFtcC5jYCwgYW5kIGBzdG1tYWNfcHRwLmhgLgoKTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uIGlzOiB3aGF0IGlzIHRoZSBuYXR1cmUgb2YgdGhpcyBgc3RtbWFjYCAvIGBkd21hY2A/IENhbiB0aGVzZSBjb21wb25lbnRzIGFjdHVhbGx5IGJlIGV4ZXJjaXNlZCBhbmQgdGVzdGVkPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlc2UgYXJlIFBDSS1iYXNlZCwgcGxhdGZvcm0tYmFzZWQsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5LiBEb2VzIGBzdG1tYWNgIGhhdmUgUENJIGdsdWUsIGxpa2UgYHN0bW1hY19wY2lgIG9yIHNpbWlsYXIgZHJpdmVycz8gT3IgYXJlIHRoZXNlIHNwZWNpZmljYWxseSBlbWJlZGRlZCBFdGhlcm5ldCBjb250cm9sbGVycywgcGVyaGFwcyBwaHlzaWNhbC1vbmx5PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBgZHd4Z21hYzJgIGlzIHVzZWQgd2l0aCBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlcy4gQW5kIHRoZW4sIHRoZSBjcml0aWNhbCBxdWVzdGlvbiwgd2hhdCBhYm91dCBRRU1VPyBDYW4gSSBlYXNpbHkgZW11bGF0ZSB0aGlzIHNldHVwPyBJZiBJIGNhbiYjMzk7dCBlbXVsYXRlIGl0LCB0aGlzIGlzIGdvaW5nIHRvIGJlIGZhciBtb3JlIGRpZmZpY3VsdC4KCk15IG5leHQgc3RlcCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUga2VybmVsIHNvdXJjZSBhbmQgc2VhcmNoIGZvciB0aGUgYHN0bW1hY2AgZHJpdmVycyBhbmQgdGhlaXIgYXNzb2NpYXRlZCBLY29uZmlnIG9wdGlvbnMuIFRoYXQgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZXNlIGNvbXBvbmVudHMgYXJlIGNvbmZpZ3VyZWQgYW5kIGhvdyB0aGV5IGFyZSB1c2VkLiBUaGlzIHdpbGwgaGVscCBtZSBldmFsdWF0ZSB3aGV0aGVyIEkgY2FuIGVhc2lseSByZXByb2R1Y2UgYSB0ZXN0IGVudmlyb25tZW50IGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTVE1NQUNfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjpjb25maWcgU1RNTUFDX0VUSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIE11bHRpLUdpZ2FiaXQgRXRoZXJuZXQgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOD1pZiBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5OmNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzAtXHR0cmlzdGF0ZSBcJiMzNDtTVE1NQUMgUGxhdGZvcm0gYnVzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3MT1lbmRpZiAjIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzk4PWNvbmZpZyBEV01BQ19NT1RPUkNPTU1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDA3OmNvbmZpZyBTVE1NQUNfUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwOC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NDIwCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmV2aWV3aW5nIHRoaXMgY29kZToKCioqRGl2aW5nIGludG8gdGhlIERXTUFDIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgdGltZSB0byBkaWcgaW50byB0aGlzIGBEV01BQ19TT0NGUEdBYCBidXNpbmVzcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGNvbmZpZ3VyZWQsIHNvIEkmIzM5O2xsIHN0YXJ0IGJ5IGNoZWNraW5nIHRoZSByZWxldmFudCBmaWxlcy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IHNjYW4gYGR3bWFjLXNvY2ZwZ2EuY2AsIHNpbmNlIHRoYXQgc2VlbXMgdG8gYmUgdGhlIGNvcmUgb2YgaXQsIGFuZCB0aGVuIEkmIzM5O2xsIGFsc28gZ2xhbmNlIGF0IGBkd3hnbWFjYCDigJMgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBjcm9zcy1jb21wYXRpYmlsaXR5IG9yIGRlcGVuZGVuY2llcy4gVGhlIG1haW4gZ29hbCBoZXJlIGlzIHRvIGdldCBhIHNvbGlkIGdyYXNwIG9uIHRoZSBjb25maWd1cmF0aW9uLiBNeSBtYWluIHN0b3Agd2lsbCBiZSB0aGUgYEtjb25maWdgIGZpbGVzIHRoYXQgY29udHJvbCBgRFdNQUNfU09DRlBHQWAgYW5kIG90aGVyIHNpbWlsYXIgYHN0bW1hY2AgY29uZmlndXJhdGlvbnMuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBkZWNpc2lvbi1tYWtpbmcgaGFwcGVucy4gSSBuZWVkIHRvIHBpbnBvaW50IHRoZSBkZXBlbmRlbmNpZXMsIG9wdGlvbnMsIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtTT0NGUEdBJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjk9Y29uZmlnIFNUTU1BQ19QTEFURk9STVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUtXHQgIFRoaXMgaXMgdGhlIGRyaXZlciB1c2VkIG9uIHNldmVyYWwgU29DczpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY6XHQgIFNUaSwgQWxsd2lubmVyLCBBbWxvZ2ljIE1lc29uLCBBbHRlcmEgU09DRlBHQS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOTE9Y29uZmlnIERXTUFDX1MzMlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDM6Y29uZmlnIERXTUFDX1NPQ0ZQR0FcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjA0Olx0dHJpc3RhdGUgXCYjMzQ7U09DRlBHQSBkd21hYyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNTpcdGRlZmF1bHQgQVJDSF9JTlRFTF9TT0NGUEdBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNjpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDctXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjExLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTI6XHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gQWx0ZXJhIFNPQ0ZQR0FcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTQ6XHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTUtXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9Mjg9b2JqLSQoQ09ORklHX0RXTUFDX1MzMilcdFx0JiM0Mzs9IGR3bWFjLXMzMi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOTpvYmotJChDT05GSUdfRFdNQUNfU09DRlBHQSlcdCYjNDM7PSBkd21hYy1hbHRyLXNvY2ZwZ2Eub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMzAtb2JqLSQoQ09ORklHX0RXTUFDX1NPUEhHTylcdCYjNDM7PSBkd21hYy1zb3BoZ28ub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDczNTYKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBkd3hnbWFjMiBEcml2ZXImIzM5O3MgQ2FwYWJpbGl0aWVzKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBzcGVjaWZpYyBmdW5jdGlvbnMg4oCTIGBkd3hnbWFjMjEwX29wc2AsIGBkd3hnbWFjMl9wdHBgLCBhbmQgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgIOKAkyBhcmUgdXNlZCB3aXRoaW4gdGhlIGBkd3hnbWFjMmAgZHJpdmVyIGNvbnRleHQuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gdXNlIHRoZXNlIGZ1bmN0aW9uIG5hbWVzIGFzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgYSBkZWVwZXIgaW52ZXN0aWdhdGlvbi4gSSB3YW50IHRvIHVuZGVyc3RhbmQgdGhlaXIgcHVycG9zZSwgaG93IHRoZXkmIzM5O3JlIGNhbGxlZCwgd2hhdCBkYXRhIHRoZXkgb3BlcmF0ZSBvbiwgYW5kIGVzc2VudGlhbGx5LCB3aGF0IHRoZWlyIHJvbGUgaXMgaW4gdGhlIGJpZ2dlciBwaWN0dXJlIG9mIHRoZSBkcml2ZXLigJlzIGZ1bmN0aW9uYWxpdHkuIEFyZSB0aGV5IGNvcmUgb3BlcmF0aW9ucywgcmVsYXRlZCB0byBQVFAgKFByZWNpc2lvbiBUaW1lIFByb3RvY29sKSwgb3IgaGFuZGxpbmcgc3BlY2lmaWMgaW50ZXJydXB0IHNjZW5hcmlvcz8gRGl2aW5nIGludG8gdGhlIGNvZGViYXNlIHRvIHRyYWNlIHRoZXNlIGlkZW50aWZpZXJzIGlzIHRoZSBvYnZpb3VzIGZpcnN0IHN0ZXAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBlYWNoIG9mIHRoZXNlIGNvbnRyaWJ1dGVzIHRvIHRoZSBvdmVyYWxsIGJlaGF2aW9yIG9mIHRoZSBFdGhlcm5ldCBjb250cm9sbGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2R3eGdtYWMyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3MjAgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTM9c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS05LVx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTY1Mj1pbnQgZHdtYWM0X3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTM6aW50IGR3eGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTQtaW50IGR3eGxnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzoxOTojaW5jbHVkZSBcJiMzNDtkd3hnbWFjMi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtMjAtI2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTQ2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NDY1OmV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hnbWFjMjEwX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY2LWV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hsZ21hYzJfb3BzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0Njc6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZG1hX29wcyBkd3hnbWFjMjEwX2RtYV9vcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjQ2ODpleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyBkd3hnbWFjMjEwX2Rlc2Nfb3BzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaC00NjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0LSNpbmNsdWRlIFwmIzM0O2R3eGxnbWFjMi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU6I2luY2x1ZGUgXCYjMzQ7ZHd4Z21hYzIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2NvcmVfaW5pdChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xOC1cdFx0XHQgICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MzE6c3RhdGljIHZvaWQgZHd4Z21hYzJfaXJxX21vZGlmeShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGRpc2FibGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzItXHRcdFx0XHR1MzIgZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo0NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl91cGRhdGVfY2FwcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1MTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfbWFjKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTY3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjY4OnN0YXRpYyBpbnQgZHd4Z21hYzJfcnhfaXBjKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTY5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtODItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6ODM6c3RhdGljIHZvaWQgZHd4Z21hYzJfcnhfcXVldWVfZW5hYmxlKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1OCBtb2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTg0LVx0XHRcdFx0ICAgICB1MzIgcXVldWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjk3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3J4X3F1ZXVlX3ByaW8oc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBwcmlvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTk4LVx0XHRcdFx0ICAgdTMyIHF1ZXVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTM4OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3R4X3F1ZXVlX3ByaW8oc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBwcmlvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzOS1cdFx0XHRcdCAgIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9yeF9xdWV1ZV9yb3V0aW5nKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1Ni1cdFx0XHRcdCAgICAgIHU4IHBhY2tldCwgdTMyIHF1ZXVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTYxOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcnhfcm91dGluZyBkd3hnbWFjMl9yb3V0ZV9wb3NzaWJpbGl0aWVzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTYyLVx0XHR7IFhHTUFDX0FWQ1BRLCBYR01BQ19BVkNQUV9TSElGVCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNzEtXHQvKiByb3V0aW5nIGNvbmZpZ3VyYXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNzI6XHR2YWx1ZSBcdTAwMjY9IH5kd3hnbWFjMl9yb3V0ZV9wb3NzaWJpbGl0aWVzW3BhY2tldCAtIDFdLnJlZ19tYXNrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE3MzpcdHZhbHVlIHw9IChxdWV1ZSBcdTAwM2NcdTAwM2MgZHd4Z21hYzJfcm91dGVfcG9zc2liaWxpdGllc1twYWNrZXQgLSAxXS5yZWdfc2hpZnQpIFx1MDAyNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE3NDpcdFx0IGR3eGdtYWMyX3JvdXRlX3Bvc3NpYmlsaXRpZXNbcGFja2V0IC0gMV0ucmVnX21hc2s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTc1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTg1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3Byb2dfbXRsX3J4X2FsZ29yaXRobXMoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTg2LVx0XHRcdFx0XHQgICAgdTMyIHJ4X2FsZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjIwNzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9wcm9nX210bF90eF9hbGdvcml0aG1zKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTIwOC1cdFx0XHRcdFx0ICAgIHUzMiB0eF9hbGcpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI0NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoyNDU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X210bF90eF9xdWV1ZV93ZWlnaHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI0Ni1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI1NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9tYXBfbXRsX3RvX2RtYShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIHF1ZXVlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI1NS1cdFx0XHRcdCAgICB1MzIgY2hhbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI3MTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9jb25maWdfY2JzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0yNzItXHRcdFx0XHRzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI5MDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9kdW1wX3JlZ3Moc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiAqcmVnX3NwYWNlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI5MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoyOTk6c3RhdGljIGludCBkd3hnbWFjMl9ob3N0X2lycV9zdGF0dXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTMwMC1cdFx0XHRcdCAgICBzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzICp4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MzM2OnN0YXRpYyBpbnQgZHd4Z21hYzJfaG9zdF9tdGxfaXJxX3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzM3LVx0XHRcdFx0XHRzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGNoYW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTM1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzozNTY6c3RhdGljIHZvaWQgZHd4Z21hYzJfZmxvd19jdHJsKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1bnNpZ25lZCBpbnQgZHVwbGV4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTM1Ny1cdFx0XHQgICAgICAgdW5zaWduZWQgaW50IGZjLCB1bnNpZ25lZCBpbnQgcGF1c2VfdGltZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjM3NzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9wbXQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHVuc2lnbmVkIGxvbmcgbW9kZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zNzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6Mzk1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF91bWFjX2FkZHIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzk2LVx0XHRcdFx0ICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQwOTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9nZXRfdW1hY19hZGRyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQxMC1cdFx0XHRcdCAgIHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQyODpzdGF0aWMgaW50IGR3eGdtYWMyX3NldF9scGlfbW9kZShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00MjktXHRcdFx0XHQgZW51bSBzdG1tYWNfbHBpX21vZGUgbW9kZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ1MjpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfZWVlX3BscyhzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgaW50IGxpbmspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDUzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ2NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfZWVlX3RpbWVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCBpbnQgbHMsIGludCB0dylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NjYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NDc0OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9tY2hhc2godm9pZCBfX2lvbWVtICppb2FkZHIsIHUzMiAqbWNmaWx0ZXJiaXRzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQ3NS1cdFx0XHRcdGludCBtY2JpdHNsb2cyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00OTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NDk3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDk4LVx0XHRcdFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjUzMjpcdGR3eGdtYWMyX3NldF9tY2hhc2goaW9hZGRyLCBtY19maWx0ZXIsIG1jYml0c2xvZzIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTUzMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTQxLVx0XHRuZXRkZXZfZm9yX2VhY2hfdWNfYWRkcihoYSwgZGV2KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTQyOlx0XHRcdGR3eGdtYWMyX3NldF91bWFjX2FkZHIoaHcsIGhhLVx1MDAzZWFkZHIsIHJlZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTQzLVx0XHRcdHJlZyYjNDM7JiM0Mzs7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1NTU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X21hY19sb29wYmFjayh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTU2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjU2NzpzdGF0aWMgaW50IGR3eGdtYWMyX3Jzc193cml0ZV9yZWcodm9pZCBfX2lvbWVtICppb2FkZHIsIGJvb2wgaXNfa2V5LCBpbnQgaWR4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU2OC1cdFx0XHRcdCAgdTMyIHZhbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjU4MjpzdGF0aWMgaW50IGR3eGdtYWMyX3Jzc19jb25maWd1cmUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTgzLVx0XHRcdFx0ICBzdHJ1Y3Qgc3RtbWFjX3JzcyAqY2ZnLCB1MzIgbnVtX3J4cSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTk3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgKEFSUkFZX1NJWkUoY2ZnLVx1MDAzZWtleSkgLyBzaXplb2YodTMyKSk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTk4Olx0XHRyZXQgPSBkd3hnbWFjMl9yc3Nfd3JpdGVfcmVnKGlvYWRkciwgdHJ1ZSwgaSwga2V5W2ldKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01OTktXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTYwMy1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY2ZnLVx1MDAzZXRhYmxlKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo2MDQ6XHRcdHJldCA9IGR3eGdtYWMyX3Jzc193cml0ZV9yZWcoaW9hZGRyLCBmYWxzZSwgaSwgY2ZnLVx1MDAzZXRhYmxlW2ldKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy02MDUtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTYwOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIG51bV9yeHE7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjYxMDpcdFx0ZHd4Z21hYzJfbWFwX210bF90b19kbWEoaHcsIGksIFhHTUFDX1FERE1BQ0gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTYxMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM9MTA1NT1zdGF0aWMgaW50IGR3eGdtYWMzX3J4cF9jb25maWcodm9pZCBfX2lvbWVtICppb2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTE0MzpzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNDQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMTU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjExNTc6dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMTU4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE5OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMjAwOnN0YXRpYyBpbnQgZHd4Z21hYzJfZmxleF9wcHNfY29uZmlnKHZvaWQgX19pb21lbSAqaW9hZGRyLCBpbnQgaW5kZXgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTIwMS1cdFx0XHRcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Bwc19jZmcgKmNmZywgYm9vbCBlbmFibGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyNjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI2NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zYXJjX2NvbmZpZ3VyZSh2b2lkIF9faW9tZW0gKmlvYWRkciwgaW50IHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMjY1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMjczOnN0YXRpYyBpbnQgZHd4Z21hYzJfZmlsdGVyX3dhaXQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI3NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI4NDpzdGF0aWMgaW50IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgZmlsdGVyX25vLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyODUtXHRcdFx0XHR1OCByZWcsIHUzMiAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMjkxOlx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3dhaXQoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyOTItXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzMDE6XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd2FpdChodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMwMi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTMwOTpzdGF0aWMgaW50IGR3eGdtYWMyX2ZpbHRlcl93cml0ZShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGZpbHRlcl9ubyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzEwLVx0XHRcdFx0IHU4IHJlZywgdTMyIGRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTMxNjpcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl93YWl0KGh3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzE3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzI4Olx0cmV0dXJuIGR3eGdtYWMyX2ZpbHRlcl93YWl0KGh3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzI5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzMzE6c3RhdGljIGludCBkd3hnbWFjMl9jb25maWdfbDNfZmlsdGVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgZmlsdGVyX25vLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMzItXHRcdFx0XHQgICAgIGJvb2wgZW4sIGJvb2wgaXB2NiwgYm9vbCBzYSwgYm9vbCBpbnYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTM0MzpcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzTDRfQ1RSTCwgXHUwMDI2dmFsdWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNDQtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzNzQ6XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNMNF9DVFJMLCB2YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM3NS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNzgtXHRpZiAoc2EpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzc5Olx0XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNfQUREUjAsIG1hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzgwLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzgyLVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzgzOlx0XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNfQUREUjEsIG1hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzg0LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzg4LVx0aWYgKCFlbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzg5Olx0XHRyZXR1cm4gZHd4Z21hYzJfZmlsdGVyX3dyaXRlKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzTDRfQ1RSTCwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM5MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzk0OnN0YXRpYyBpbnQgZHd4Z21hYzJfY29uZmlnX2w0X2ZpbHRlcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGZpbHRlcl9ubyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzk1LVx0XHRcdFx0ICAgICBib29sIGVuLCBib29sIHVkcCwgYm9vbCBzYSwgYm9vbCBpbnYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQwNjpcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzTDRfQ1RSTCwgXHUwMDI2dmFsdWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MDctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0MzA6XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNMNF9DVFJMLCB2YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQzNDpcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0w0X0FERFIsIFx1MDAyNnZhbHVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDM1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDQ2Olx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3dyaXRlKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0w0X0FERFIsIHZhbHVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDQ3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ1MC1cdGlmICghZW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ1MTpcdFx0cmV0dXJuIGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0NTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ1Njpjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hnbWFjMjEwX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDU3Olx0LmNvcmVfaW5pdCA9IGR3eGdtYWMyX2NvcmVfaW5pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDU4Olx0LmlycV9tb2RpZnkgPSBkd3hnbWFjMl9pcnFfbW9kaWZ5LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTk6XHQudXBkYXRlX2NhcHMgPSBkd3hnbWFjMl91cGRhdGVfY2FwcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDYwOlx0LnNldF9tYWMgPSBkd3hnbWFjMl9zZXRfbWFjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjE6XHQucnhfaXBjID0gZHd4Z21hYzJfcnhfaXBjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjI6XHQucnhfcXVldWVfZW5hYmxlID0gZHd4Z21hYzJfcnhfcXVldWVfZW5hYmxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjM6XHQucnhfcXVldWVfcHJpbyA9IGR3eGdtYWMyX3J4X3F1ZXVlX3ByaW8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2NDpcdC50eF9xdWV1ZV9wcmlvID0gZHd4Z21hYzJfdHhfcXVldWVfcHJpbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY1Olx0LnJ4X3F1ZXVlX3JvdXRpbmcgPSBkd3hnbWFjMl9yeF9xdWV1ZV9yb3V0aW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjY6XHQucHJvZ19tdGxfcnhfYWxnb3JpdGhtcyA9IGR3eGdtYWMyX3Byb2dfbXRsX3J4X2FsZ29yaXRobXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2NzpcdC5wcm9nX210bF90eF9hbGdvcml0aG1zID0gZHd4Z21hYzJfcHJvZ19tdGxfdHhfYWxnb3JpdGhtcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY4Olx0LnNldF9tdGxfdHhfcXVldWVfd2VpZ2h0ID0gZHd4Z21hYzJfc2V0X210bF90eF9xdWV1ZV93ZWlnaHQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2OTpcdC5tYXBfbXRsX3RvX2RtYSA9IGR3eGdtYWMyX21hcF9tdGxfdG9fZG1hLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NzA6XHQuY29uZmlnX2NicyA9IGR3eGdtYWMyX2NvbmZpZ19jYnMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3MTpcdC5kdW1wX3JlZ3MgPSBkd3hnbWFjMl9kdW1wX3JlZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3MjpcdC5ob3N0X2lycV9zdGF0dXMgPSBkd3hnbWFjMl9ob3N0X2lycV9zdGF0dXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3MzpcdC5ob3N0X210bF9pcnFfc3RhdHVzID0gZHd4Z21hYzJfaG9zdF9tdGxfaXJxX3N0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc0Olx0LmZsb3dfY3RybCA9IGR3eGdtYWMyX2Zsb3dfY3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc1Olx0LnBtdCA9IGR3eGdtYWMyX3BtdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc2Olx0LnNldF91bWFjX2FkZHIgPSBkd3hnbWFjMl9zZXRfdW1hY19hZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0Nzc6XHQuZ2V0X3VtYWNfYWRkciA9IGR3eGdtYWMyX2dldF91bWFjX2FkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3ODpcdC5zZXRfbHBpX21vZGUgPSBkd3hnbWFjMl9zZXRfbHBpX21vZGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3OTpcdC5zZXRfZWVlX3RpbWVyID0gZHd4Z21hYzJfc2V0X2VlZV90aW1lcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDgwOlx0LnNldF9lZWVfcGxzID0gZHd4Z21hYzJfc2V0X2VlZV9wbHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4MS1cdC5kZWJ1ZyA9IE5VTEwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ4MjpcdC5zZXRfZmlsdGVyID0gZHd4Z21hYzJfc2V0X2ZpbHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDgzLVx0LnNhZmV0eV9mZWF0X2NvbmZpZyA9IGR3eGdtYWMzX3NhZmV0eV9mZWF0X2NvbmZpZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4NS1cdC5zYWZldHlfZmVhdF9kdW1wID0gZHd4Z21hYzNfc2FmZXR5X2ZlYXRfZHVtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDg2Olx0LnNldF9tYWNfbG9vcGJhY2sgPSBkd3hnbWFjMl9zZXRfbWFjX2xvb3BiYWNrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0ODc6XHQucnNzX2NvbmZpZ3VyZSA9IGR3eGdtYWMyX3Jzc19jb25maWd1cmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4OC1cdC5yeHBfY29uZmlnID0gZHd4Z21hYzNfcnhwX2NvbmZpZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDg5Olx0LmdldF9tYWNfdHhfdGltZXN0YW1wID0gZHd4Z21hYzJfZ2V0X21hY190eF90aW1lc3RhbXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MDpcdC5mbGV4X3Bwc19jb25maWcgPSBkd3hnbWFjMl9mbGV4X3Bwc19jb25maWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MTpcdC5zYXJjX2NvbmZpZ3VyZSA9IGR3eGdtYWMyX3NhcmNfY29uZmlndXJlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0OTI6XHQuY29uZmlnX2wzX2ZpbHRlciA9IGR3eGdtYWMyX2NvbmZpZ19sM19maWx0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MzpcdC5jb25maWdfbDRfZmlsdGVyID0gZHd4Z21hYzJfY29uZmlnX2w0X2ZpbHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDk0LVx0LmZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyA9IGR3eGdtYWMzX2ZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM9MTUxMT1jb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hsZ21hYzJfb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTI6XHQuY29yZV9pbml0ID0gZHd4Z21hYzJfY29yZV9pbml0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTM6XHQuaXJxX21vZGlmeSA9IGR3eGdtYWMyX2lycV9tb2RpZnksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUxNDpcdC5zZXRfbWFjID0gZHd4Z21hYzJfc2V0X21hYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTE1Olx0LnJ4X2lwYyA9IGR3eGdtYWMyX3J4X2lwYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTE2LVx0LnJ4X3F1ZXVlX2VuYWJsZSA9IGR3eGxnbWFjMl9yeF9xdWV1ZV9lbmFibGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUxNzpcdC5yeF9xdWV1ZV9wcmlvID0gZHd4Z21hYzJfcnhfcXVldWVfcHJpbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTE4Olx0LnR4X3F1ZXVlX3ByaW8gPSBkd3hnbWFjMl90eF9xdWV1ZV9wcmlvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTk6XHQucnhfcXVldWVfcm91dGluZyA9IGR3eGdtYWMyX3J4X3F1ZXVlX3JvdXRpbmcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyMDpcdC5wcm9nX210bF9yeF9hbGdvcml0aG1zID0gZHd4Z21hYzJfcHJvZ19tdGxfcnhfYWxnb3JpdGhtcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTIxOlx0LnByb2dfbXRsX3R4X2FsZ29yaXRobXMgPSBkd3hnbWFjMl9wcm9nX210bF90eF9hbGdvcml0aG1zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjI6XHQuc2V0X210bF90eF9xdWV1ZV93ZWlnaHQgPSBkd3hnbWFjMl9zZXRfbXRsX3R4X3F1ZXVlX3dlaWdodCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTIzOlx0Lm1hcF9tdGxfdG9fZG1hID0gZHd4Z21hYzJfbWFwX210bF90b19kbWEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyNDpcdC5jb25maWdfY2JzID0gZHd4Z21hYzJfY29uZmlnX2NicyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTI1Olx0LmR1bXBfcmVncyA9IGR3eGdtYWMyX2R1bXBfcmVncyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTI2Olx0Lmhvc3RfaXJxX3N0YXR1cyA9IGR3eGdtYWMyX2hvc3RfaXJxX3N0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTI3Olx0Lmhvc3RfbXRsX2lycV9zdGF0dXMgPSBkd3hnbWFjMl9ob3N0X210bF9pcnFfc3RhdHVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1Mjg6XHQuZmxvd19jdHJsID0gZHd4Z21hYzJfZmxvd19jdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1Mjk6XHQucG10ID0gZHd4Z21hYzJfcG10LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MzA6XHQuc2V0X3VtYWNfYWRkciA9IGR3eGdtYWMyX3NldF91bWFjX2FkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUzMTpcdC5nZXRfdW1hY19hZGRyID0gZHd4Z21hYzJfZ2V0X3VtYWNfYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTMyOlx0LnNldF9scGlfbW9kZSA9IGR3eGdtYWMyX3NldF9scGlfbW9kZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTMzOlx0LnNldF9lZWVfdGltZXIgPSBkd3hnbWFjMl9zZXRfZWVlX3RpbWVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MzQ6XHQuc2V0X2VlZV9wbHMgPSBkd3hnbWFjMl9zZXRfZWVlX3BscyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTM1LVx0LmRlYnVnID0gTlVMTCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTM2Olx0LnNldF9maWx0ZXIgPSBkd3hnbWFjMl9zZXRfZmlsdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1MzctXHQuc2FmZXR5X2ZlYXRfY29uZmlnID0gZHd4Z21hYzNfc2FmZXR5X2ZlYXRfY29uZmlnLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTM5LVx0LnNhZmV0eV9mZWF0X2R1bXAgPSBkd3hnbWFjM19zYWZldHlfZmVhdF9kdW1wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NDA6XHQuc2V0X21hY19sb29wYmFjayA9IGR3eGdtYWMyX3NldF9tYWNfbG9vcGJhY2ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0MTpcdC5yc3NfY29uZmlndXJlID0gZHd4Z21hYzJfcnNzX2NvbmZpZ3VyZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTQyLVx0LnJ4cF9jb25maWcgPSBkd3hnbWFjM19yeHBfY29uZmlnLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NDM6XHQuZ2V0X21hY190eF90aW1lc3RhbXAgPSBkd3hnbWFjMl9nZXRfbWFjX3R4X3RpbWVzdGFtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ0Olx0LmZsZXhfcHBzX2NvbmZpZyA9IGR3eGdtYWMyX2ZsZXhfcHBzX2NvbmZpZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ1Olx0LnNhcmNfY29uZmlndXJlID0gZHd4Z21hYzJfc2FyY19jb25maWd1cmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0NjpcdC5jb25maWdfbDNfZmlsdGVyID0gZHd4Z21hYzJfY29uZmlnX2wzX2ZpbHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ3Olx0LmNvbmZpZ19sNF9maWx0ZXIgPSBkd3hnbWFjMl9jb25maWdfbDRfZmlsdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1NDgtXHQuZnBlX21hcF9wcmVlbXB0aW9uX2NsYXNzID0gZHd4Z21hYzNfZnBlX21hcF9wcmVlbXB0aW9uX2NsYXNzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NTE6aW50IGR3eGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTktI2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTA6I2luY2x1ZGUgXCYjMzQ7ZHd4Z21hYzIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTI6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfdHhfc3RhdHVzKHN0cnVjdCBzdG1tYWNfZXh0cmFfc3RhdHMgKngsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEzLVx0XHRcdFx0ICBzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHZvaWQgX19pb21lbSAqaW9hZGRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI2OnN0YXRpYyBpbnQgZHd4Z21hYzJfZ2V0X3J4X3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzICp4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yNy1cdFx0XHRcdCAgc3RydWN0IGRtYV9kZXNjICpwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjQ5OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF90eF9vd25lcihzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTUwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzo1NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfcnhfb3duZXIoc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgZGlzYWJsZV9yeF9pYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjY0OnN0YXRpYyB1MTYgZHd4Z21hYzJfd3JiYWNrX2dldF9yeF92bGFuX3RjaShzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTY1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzo2OTpzdGF0aWMgYm9vbCBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdmFsaWQoc3RydWN0IGRtYV9kZXNjICpwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy03MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy03OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6Nzk6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfcnhfZnJhbWVfbGVuKHN0cnVjdCBkbWFfZGVzYyAqcCwgaW50IHJ4X2NvZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtODAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjg0OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2VuYWJsZV90eF90aW1lc3RhbXAoc3RydWN0IGRtYV9kZXNjICpwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy04NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy04OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6ODk6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfdHhfdGltZXN0YW1wX3N0YXR1cyhzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTkwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzo5NDpzdGF0aWMgaW5saW5lIHZvaWQgZHd4Z21hYzJfZ2V0X3RpbWVzdGFtcCh2b2lkICpkZXNjLCB1MzIgYXRzLCB1NjQgKnRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy05NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjEwNTpzdGF0aWMgaW50IGR3eGdtYWMyX3J4X2NoZWNrX3RpbWVzdGFtcCh2b2lkICpkZXNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTI0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxMjU6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfcnhfdGltZXN0YW1wX3N0YXR1cyh2b2lkICpkZXNjLCB2b2lkICpuZXh0X2Rlc2MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEyNi1cdFx0XHRcdFx0ICAgIHUzMiBhdHMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMzItXHRpZiAobGlrZWx5KHJkZXMzIFx1MDAyNiBYR01BQ19SREVTM19DREEpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxMzM6XHRcdHJldCA9IGR3eGdtYWMyX3J4X2NoZWNrX3RpbWVzdGFtcChuZXh0X2Rlc2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMzQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjEzODpzdGF0aWMgdm9pZCBkd3hnbWFjMl9pbml0X3J4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgZGlzYWJsZV9yeF9pYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTM5LVx0XHRcdFx0ICB1OCBkZXNjcmlwdG9yX21vZGUsIGludCBlbmQsIGludCBiZnNpemUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE0MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjE0MTpcdGR3eGdtYWMyX3NldF9yeF9vd25lcihwLCBkaXNhYmxlX3J4X2ljKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTQyLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxNDQ6c3RhdGljIHZvaWQgZHd4Z21hYzJfaW5pdF90eF9kZXNjKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTggZGVzY3JpcHRvcl9tb2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xNDUtXHRcdFx0XHQgIGludCBlbmQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xNTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjE1MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9wcmVwYXJlX3R4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgaXNfZnMsIGludCBsZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE1NC1cdFx0XHRcdCAgICAgYm9vbCBjc3VtX2ZsYWcsIHU4IGRlc2NyaXB0b3JfbW9kZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTkyOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3ByZXBhcmVfdHNvX3R4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgaXNfZnMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE5My1cdFx0XHRcdFx0IGludCBsZW4xLCBpbnQgbGVuMiwgYm9vbCB0eF9vd24sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjIzMDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9yZWxlYXNlX3R4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCB1OCBkZXNjcmlwdG9yX21vZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTIzMS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjIzODpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfdHhfaWMoc3RydWN0IGRtYV9kZXNjICpwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yMzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoyNDM6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X21zcyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHVuc2lnbmVkIGludCBtc3MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI0NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI1MTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfYWRkcihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGRtYV9hZGRyX3QgYWRkcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjU3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2NsZWFyKHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjU4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjY1OnN0YXRpYyBpbnQgZHd4Z21hYzJfZ2V0X3J4X2hhc2goc3RydWN0IGRtYV9kZXNjICpwLCB1MzIgKmhhc2gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI2Ni1cdFx0XHRcdGVudW0gcGt0X2hhc2hfdHlwZXMgKnR5cGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI5MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9nZXRfcnhfaGVhZGVyX2xlbihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHVuc2lnbmVkIGludCAqbGVuKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yOTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoyOTk6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3NlY19hZGRyKHN0cnVjdCBkbWFfZGVzYyAqcCwgZG1hX2FkZHJfdCBhZGRyLCBib29sIGlzX3ZhbGlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMDAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozMDU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3NhcmMoc3RydWN0IGRtYV9kZXNjICpwLCB1MzIgc2FyY190eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozMTA6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3ZsYW5fdGFnKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTE2IHRhZywgdTE2IGlubmVyX3RhZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzExLVx0XHRcdFx0ICB1MzIgaW5uZXJfdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzM1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF92bGFuKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTMyIHR5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMzNi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM0MDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfdGJzKHN0cnVjdCBkbWFfZWRlc2MgKnAsIHUzMiBzZWMsIHUzMiBuc2VjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zNDEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNDg6Y29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyBkd3hnbWFjMjEwX2Rlc2Nfb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNDk6XHQudHhfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3R4X3N0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzUwOlx0LnJ4X3N0YXR1cyA9IGR3eGdtYWMyX2dldF9yeF9zdGF0dXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MTpcdC5zZXRfdHhfb3duZXIgPSBkd3hnbWFjMl9zZXRfdHhfb3duZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MjpcdC5zZXRfcnhfb3duZXIgPSBkd3hnbWFjMl9zZXRfcnhfb3duZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MzpcdC5nZXRfcnhfdmxhbl90Y2kgPSBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdGNpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTQ6XHQuZ2V0X3J4X3ZsYW5fdmFsaWQgPSBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdmFsaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1NTpcdC5nZXRfcnhfZnJhbWVfbGVuID0gZHd4Z21hYzJfZ2V0X3J4X2ZyYW1lX2xlbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzU2Olx0LmVuYWJsZV90eF90aW1lc3RhbXAgPSBkd3hnbWFjMl9lbmFibGVfdHhfdGltZXN0YW1wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTc6XHQuZ2V0X3R4X3RpbWVzdGFtcF9zdGF0dXMgPSBkd3hnbWFjMl9nZXRfdHhfdGltZXN0YW1wX3N0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzU4Olx0LmdldF9yeF90aW1lc3RhbXBfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3J4X3RpbWVzdGFtcF9zdGF0dXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1OTpcdC5nZXRfdGltZXN0YW1wID0gZHd4Z21hYzJfZ2V0X3RpbWVzdGFtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzYwOlx0LnNldF90eF9pYyA9IGR3eGdtYWMyX3NldF90eF9pYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzYxOlx0LnByZXBhcmVfdHhfZGVzYyA9IGR3eGdtYWMyX3ByZXBhcmVfdHhfZGVzYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzYyOlx0LnByZXBhcmVfdHNvX3R4X2Rlc2MgPSBkd3hnbWFjMl9wcmVwYXJlX3Rzb190eF9kZXNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjM6XHQucmVsZWFzZV90eF9kZXNjID0gZHd4Z21hYzJfcmVsZWFzZV90eF9kZXNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjQ6XHQuaW5pdF9yeF9kZXNjID0gZHd4Z21hYzJfaW5pdF9yeF9kZXNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjU6XHQuaW5pdF90eF9kZXNjID0gZHd4Z21hYzJfaW5pdF90eF9kZXNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjY6XHQuc2V0X21zcyA9IGR3eGdtYWMyX3NldF9tc3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM2NzpcdC5zZXRfYWRkciA9IGR3eGdtYWMyX3NldF9hZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjg6XHQuY2xlYXIgPSBkd3hnbWFjMl9jbGVhcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY5Olx0LmdldF9yeF9oYXNoID0gZHd4Z21hYzJfZ2V0X3J4X2hhc2gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM3MDpcdC5nZXRfcnhfaGVhZGVyX2xlbiA9IGR3eGdtYWMyX2dldF9yeF9oZWFkZXJfbGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNzE6XHQuc2V0X3NlY19hZGRyID0gZHd4Z21hYzJfc2V0X3NlY19hZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNzI6XHQuc2V0X3NhcmMgPSBkd3hnbWFjMl9zZXRfc2FyYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzczOlx0LnNldF92bGFuX3RhZyA9IGR3eGdtYWMyX3NldF92bGFuX3RhZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6Mzc0Olx0LnNldF92bGFuID0gZHd4Z21hYzJfc2V0X3ZsYW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM3NTpcdC5zZXRfdGJzID0gZHd4Z21hYzJfc2V0X3RicyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzc2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmMtOC0jaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmM6OTojaW5jbHVkZSBcJiMzNDtkd3hnbWFjMi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kbWEuYy0xMC1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NTAyCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGlnZ2luZyBpbnRvIHRoZSBEcml2ZXIgQ29kZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgZmlsZXM6IGBkd21hYy1zb2NmcGdhLmNgLCBgZHd4Z21hYzJfcHRwYCwgYW5kIGBod2lmLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgaGFyZHdhcmUgY29udGV4dCBmb3IgYGR3eGdtYWMyYC4gSXQmIzM5O3MgYSBmYW1pbGlhciBpbnRlcmZhY2UgYnV0IEkgbmVlZCB0byBxdWlja2x5IHJlZnJlc2ggbXkgbWVtb3J5LgoKSG1tLCB3aGVyZSBpcyBgZHd4Z21hYzJgIGFjdHVhbGx5IGJlaW5nICp1c2VkKj8gSSBuZWVkIHRvIHRyYWNlIHRoaXMgYmFjay4gVGhlIG1vc3QgZGlyZWN0IGFwcHJvYWNoIGlzIHRvIGNoZWNrIGZvciBjYWxscyB0byBgZHd4Z21hYzJfc2V0dXBgIGZ1bmN0aW9uIOKAkyB0aGF0JiMzOTtsbCBnaXZlIG1lIGEgc3Ryb25nIHN0YXJ0aW5nIHBvaW50IGZvciB0aGUgZHJpdmVyIGluaXRpYWxpemF0aW9uIHBhdGguIEFsdGVybmF0aXZlbHksIEkgY2FuIHNlYXJjaCBmb3IgaW5zdGFuY2VzIHdoZXJlIGBEV1hHTUFDYCBod2lmIGVudHJpZXMgYXJlIGJlaW5nIGVtcGxveWVkLCBhcyB0aGF0IHdvdWxkIHN1Z2dlc3QgYSBtb3JlIGFic3RyYWN0IGludGVyZmFjZS4gRWl0aGVyIG9mIHRoZXNlIHNob3VsZCBnZXQgbWUgdG8gdGhlIHJpZ2h0IHBsYWNlIHRvIHVuZGVyc3RhbmQgd2hpY2ggaGFyZHdhcmUgaXMgYWN0dWFsbHkgbGV2ZXJhZ2luZyB0aGlzIGBkd3hnbWFjMmAgZnVuY3Rpb25hbGl0eS4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1NUTU1BQ19EV1hHTUFDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NzojaWZuZGVmIF9fU1RNTUFDX0RXWEdNQUMyX0hfX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo4OiNkZWZpbmUgX19TVE1NQUNfRFdYR01BQzJfSF9fXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaD00Njg9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgZHd4Z21hYzIxMF9kZXNjX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0NzA6I2VuZGlmIC8qIF9fU1RNTUFDX0RXWEdNQUMyX0hfXyAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTA3NgoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSBpbW1lZGlhdGUgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byBgaHdpZi5jYCoqCgpPa2F5LCBJIG5lZWQgdG8gZ2V0IGludG8gdGhlIGNvZGUuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHplcm8gaW4gb24gYGh3aWYuY2AuIFRoYXQmIzM5O3Mgd2hlcmUgSSBzaG91bGQgYmUgbG9va2luZyBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0LiBBbmQgSSB0aGluayB0aGF0IGxpbmVzIDI1OCBhbmQgMjgwIGFyZSB0aGUgbW9zdCBsaWtlbHkgaG90c3BvdHMuIEkgbmVlZCB0byB0YWtlIGEgbG9vayBhdCB3aGF0JiMzOTtzIGdvaW5nIG9uIGFyb3VuZCB0aG9zZSBsaW5lIG51bWJlcnMuIEkgZXhwZWN0IHRvIGJlIGFibGUgdG8gcXVpY2tseSB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBjb2RlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI0NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjQ1Olx0XHRcdC5zZXR1cCA9IGR3bWFjNF9zZXR1cCxcbiAyNDY6XHRcdFx0LnF1aXJrcyA9IE5VTEwsXG4gMjQ3Olx0XHR9LCB7XG4gMjQ4Olx0XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxuIDI0OTpcdFx0XHQubWluX2lkID0gRFdYR01BQ19DT1JFXzJfMTAsXG4gMjUwOlx0XHRcdC5kZXZfaWQgPSBEV1hHTUFDX0lELFxuIDI1MTpcdFx0XHQucmVncyA9IHtcbiAyNTI6XHRcdFx0XHQucHRwX29mZiA9IFBUUF9YR01BQ19PRkZTRVQsXG4gMjUzOlx0XHRcdFx0Lm1tY19vZmYgPSBNTUNfWEdNQUNfT0ZGU0VULFxuIDI1NDpcdFx0XHRcdC5lc3Rfb2ZmID0gRVNUX1hHTUFDX09GRlNFVCxcbiAyNTU6XHRcdFx0XHQuZnBlX3JlZyA9IFx1MDAyNmR3eGdtYWMzX2ZwZV9yZWcsXG4gMjU2Olx0XHRcdH0sXG4gMjU3Olx0XHRcdC5kZXNjID0gXHUwMDI2ZHd4Z21hYzIxMF9kZXNjX29wcyxcbiAyNTg6XHRcdFx0LmRtYSA9IFx1MDAyNmR3eGdtYWMyMTBfZG1hX29wcyxcbiAyNTk6XHRcdFx0Lm1hYyA9IFx1MDAyNmR3eGdtYWMyMTBfb3BzLFxuIDI2MDpcdFx0XHQudmxhbiA9IFx1MDAyNmR3eGdtYWMyMTBfdmxhbl9vcHMsXG4gMjYxOlx0XHRcdC5od3RpbWVzdGFtcCA9IFx1MDAyNmR3eGdtYWMyX3B0cCxcbiAyNjI6XHRcdFx0LnB0cCA9IFx1MDAyNnN0bW1hY19wdHBfY2xvY2tfb3BzLFxuIDI2MzpcdFx0XHQubW9kZSA9IE5VTEwsXG4gMjY0Olx0XHRcdC50YyA9IFx1MDAyNmR3bWFjNTEwX3RjX29wcyxcbiAyNjU6XHRcdFx0Lm1tYyA9IFx1MDAyNmR3eGdtYWNfbW1jX29wcyxcbiAyNjY6XHRcdFx0LmVzdCA9IFx1MDAyNmR3bWFjNTEwX2VzdF9vcHMsXG4gMjY3Olx0XHRcdC5zZXR1cCA9IGR3eGdtYWMyX3NldHVwLFxuIDI2ODpcdFx0XHQucXVpcmtzID0gTlVMTCxcbiAyNjk6XHRcdH0sIHtcbiAyNzA6XHRcdFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXG4gMjcxOlx0XHRcdC5taW5faWQgPSBEV1hMR01BQ19DT1JFXzJfMDAsXG4gMjcyOlx0XHRcdC5kZXZfaWQgPSBEV1hMR01BQ19JRCxcbiAyNzM6XHRcdFx0LnJlZ3MgPSB7XG4gMjc0Olx0XHRcdFx0LnB0cF9vZmYgPSBQVFBfWEdNQUNfT0ZGU0VULFxuIDI3NTpcdFx0XHRcdC5tbWNfb2ZmID0gTU1DX1hHTUFDX09GRlNFVCxcbiAyNzY6XHRcdFx0XHQuZXN0X29mZiA9IEVTVF9YR01BQ19PRkZTRVQsXG4gMjc3Olx0XHRcdFx0LmZwZV9yZWcgPSBcdTAwMjZkd3hnbWFjM19mcGVfcmVnLFxuIDI3ODpcdFx0XHR9LFxuIDI3OTpcdFx0XHQuZGVzYyA9IFx1MDAyNmR3eGdtYWMyMTBfZGVzY19vcHMsXG4gMjgwOlx0XHRcdC5kbWEgPSBcdTAwMjZkd3hnbWFjMjEwX2RtYV9vcHMsXG4gMjgxOlx0XHRcdC5tYWMgPSBcdTAwMjZkd3hsZ21hYzJfb3BzLFxuIDI4MjpcdFx0XHQudmxhbiA9IFx1MDAyNmR3eGxnbWFjMl92bGFuX29wcyxcbiAyODM6XHRcdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2ZHd4Z21hYzJfcHRwLFxuIDI4NDpcdFx0XHQucHRwID0gXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXG4gMjg1Olx0XHRcdC5tb2RlID0gTlVMTCxcbiAyODY6XHRcdFx0LnRjID0gXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxuIDI4NzpcdFx0XHQubW1jID0gXHUwMDI2ZHd4Z21hY19tbWNfb3BzLFxuIDI4ODpcdFx0XHQuZXN0ID0gXHUwMDI2ZHdtYWM1MTBfZXN0X29wcyxcbiAyODk6XHRcdFx0LnNldHVwID0gZHd4bGdtYWMyX3NldHVwLFxuIDI5MDpcdFx0fSxcbiAyOTE6XHR9O1xuIDI5MjpcdFxuIDI5MzpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkgKlxuIDI5NDpcdHN0bW1hY19od2lmX2ZpbmQoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlLCB1OCBzbnBzdmVyLCB1OCBkZXZfaWQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MjAzCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgYW5hbHl6aW5nIHRoaXMgY29kZToKCioqSW52ZXN0aWdhdGluZyBTVE1NQUMgRHJpdmVyIENvbXBhdGliaWxpdHkqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggZHJpdmVycyBhbmQgcGxhdGZvcm1zIGFyZSBwcm9iaW5nIHRoZSBTVE1NQUMgRXRoZXJuZXQgZHJpdmVyIHdpdGggdGhvc2Ugc3BlY2lmaWMgRGlnaXRhbCBXb3JsZCAoRFcpIE1BQyBjb3JlIElEczogYERXTUFDX0NPUkVfWEdNQUNgIGFuZCBgZHd4Z21hYzJgLiBNeSBpbnN0aW5jdCBpcyB0byBmaXJzdCBmb2N1cyBvbiB0aG9zZSBpZGVudGlmaWVycyBiZWNhdXNlIHRoZXkmIzM5O3JlIHRoZSBkaXJlY3QgaG9va3MsIHRoZSAmIzM0O2tleXMmIzM0OyBpZiB5b3Ugd2lsbC4KClRoZW4sIHRvIGJyb2FkZW4gdGhlIHNlYXJjaCBhbmQgZW5zdXJlIEkmIzM5O20gZ2V0dGluZyBhIGNvbXBsZXRlIHBpY3R1cmUsIEkgbmVlZCB0byBsb29rIGJleW9uZCB0aG9zZSBleGFjdCBpZGVudGlmaWVycy4gU28sIEkmIzM5O2xsIGJyb2FkZW4gbXkgc2VhcmNoIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZSB0byBpbmNsdWRlIHJlbGF0ZWQgaWRlbnRpZmllcnMgdGhhdCBTVE1NQUMgbWlnaHQgYmUgdXNpbmcsIHN1Y2ggYXMgdGhlIG1vcmUgZ2VuZXJpYyBgRFdYR01BQ2AgYW5kIGBEV1hMR01BQ2AuIFRoaXMgZXhwYW5kZWQgc2VhcmNoIHNob3VsZCBhbGxvdyBtZSB0byBjYXRjaCBhbnkgcG90ZW50aWFsIHZhcmlhdGlvbnMgaW4gbmFtaW5nIGNvbnZlbnRpb25zIG9yIGFsaWFzZXMgdGhlIGNvZGUgbWlnaHQgYmUgZW1wbG95aW5nLiBJdCYjMzk7cyBhYm91dCBiZWluZyB0aG9yb3VnaCBhbmQgbm90IG1pc3NpbmcgYW55IGNvbm5lY3Rpb25zLiBJIG5lZWQgdG8gc2VlIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB3aGVyZSBTVE1NQUMgaXMgYmVpbmcgdXNlZCB3aXRoIHRoaXMgdHlwZSBvZiBNQUMgY29yZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RFdYR01BQ3xEV1hMR01BQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00MC0jZGVmaW5lIERXTUFDX0NPUkVfNV8yMFx0XHQweDUyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0MTojZGVmaW5lIERXWEdNQUNfQ09SRV8yXzEwXHQweDIxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0MjojZGVmaW5lIERXWEdNQUNfQ09SRV8yXzIwXHQweDIyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0MzojZGVmaW5lIERXWExHTUFDX0NPUkVfMl8wMFx0MHgyMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00NS0vKiBEZXZpY2UgSUQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQ2OiNkZWZpbmUgRFdYR01BQ19JRFx0XHQweDc2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0NzojZGVmaW5lIERXWExHTUFDX0lEXHRcdDB4MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NzojaWZuZGVmIF9fU1RNTUFDX0RXWEdNQUMyX0hfX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo4OiNkZWZpbmUgX19TVE1NQUNfRFdYR01BQzJfSF9fXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaD00Njg9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgZHd4Z21hYzIxMF9kZXNjX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0NzA6I2VuZGlmIC8qIF9fU1RNTUFDX0RXWEdNQUMyX0hfXyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jPTM2Mj1zdGF0aWMgaW50IGR3eGdtYWMyX2dldF9od19mZWF0dXJlKHZvaWQgX19pb21lbSAqaW9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jLTM5Mi1cdGRtYV9jYXAtXHUwMDNlbWJwc18xMDAwID0gKGh3X2NhcCBcdTAwMjYgWEdNQUNfSFdGRUFUX0dNSUlTRUwpIFx1MDAzZVx1MDAzZSAxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmM6MzkzOlx0aWYgKGRtYV9jYXAtXHUwMDNlbWJwc18xMDAwIFx1MDAyNlx1MDAyNiBwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdYR01BQ19DT1JFXzJfMjApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kbWEuYy0zOTQtXHRcdGRtYV9jYXAtXHUwMDNlbWJwc18xMF8xMDAgPSAxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hsZ21hYzIuaDo3OiNpZm5kZWYgX19TVE1NQUNfRFdYTEdNQUMyX0hfX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4bGdtYWMyLmg6ODojZGVmaW5lIF9fU1RNTUFDX0RXWExHTUFDMl9IX19cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4bGdtYWMyLmgtMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hsZ21hYzIuaDoyMjojZW5kaWYgLyogX19TVE1NQUNfRFdYTEdNQUMyX0hfXyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYz0xMTE9c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0OC1cdFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjQ5Olx0XHQubWluX2lkID0gRFdYR01BQ19DT1JFXzJfMTAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjUwOlx0XHQuZGV2X2lkID0gRFdYR01BQ19JRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNTEtXHRcdC5yZWdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNzAtXHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjI3MTpcdFx0Lm1pbl9pZCA9IERXWExHTUFDX0NPUkVfMl8wMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNzI6XHRcdC5kZXZfaWQgPSBEV1hMR01BQ19JRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNzMtXHRcdC5yZWdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NzI9c3RhdGljIHZvaWQgc3RtbWFjX3hnbWFjMl9jMjJfZm9ybWF0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IHBoeWFkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy03Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6Nzc6XHRpZiAocHJpdi1cdTAwM2VzeW5vcHN5c19pZCBcdTAwM2MgRFdYR01BQ19DT1JFXzJfMjApIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNzgtXHRcdC8qIFVudGlsIHZlciAyLjIwIFhHTUFDIGRvZXMgbm90IHN1cHBvcnQgQzIyIGFkZHIgXHUwMDNlPSA0LiBUaG9zZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9MTMyPXN0YXRpYyBpbnQgc3RtbWFjX3hnbWFjMl9tZGlvX3JlYWRfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHlhZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMTM4LVx0LyogVW50aWwgdmVyIDIuMjAgWEdNQUMgZG9lcyBub3Qgc3VwcG9ydCBDMjIgYWRkciBcdTAwM2U9IDQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6MTM5Olx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXWEdNQUNfQ09SRV8yXzIwIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy0xNDAtXHQgICAgcGh5YWRkciBcdTAwM2UgTUlJX1hHTUFDX01BWF9DMjJBRERSKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9MTk1PXN0YXRpYyBpbnQgc3RtbWFjX3hnbWFjMl9tZGlvX3dyaXRlX2MyMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5YWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTIwMS1cdC8qIFVudGlsIHZlciAyLjIwIFhHTUFDIGRvZXMgbm90IHN1cHBvcnQgQzIyIGFkZHIgXHUwMDNlPSA0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjIwMjpcdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzYyBEV1hHTUFDX0NPUkVfMl8yMCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMjAzLVx0ICAgIHBoeWFkZHIgXHUwMDNlIE1JSV9YR01BQ19NQVhfQzIyQUREUilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTU5NT1pbnQgc3RtbWFjX21kaW9fcmVnaXN0ZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02MjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjYyODpcdFx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXWEdNQUNfQ09SRV8yXzIwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYyOS1cdFx0XHQvKiBSaWdodCBub3cgb25seSBDMjIgcGh5cyBhcmUgc3VwcG9ydGVkICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4NjI3CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogNDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4KCioqRXhhbWluaW5nIHRoZSBkd21hYy1zb2NmcGdhIERyaXZlcioqCgpBbHJpZ2h0LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIHRvIHVuZGVyc3RhbmQgdGhlIHJvbGUgb2YgYGR3bWFjLXNvY2ZwZ2EuY2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHByZWNpc2VseSB3aGF0IHRoaXMgZHJpdmVyICpkb2VzKiBpbiB0aGUgZ3JhbmQgc2NoZW1lIG9mIHRoaW5ncy4gU3BlY2lmaWNhbGx5LCBob3cgZG9lcyBpdCBmaXQgaW50byB0aGUgYnJvYWRlciBFdGhlcm5ldCBkcml2ZXIgZWNvc3lzdGVtIOKAkyB3aGF0JiMzOTtzIGl0cyByZWxhdGlvbnNoaXAgd2l0aCBgc3RtbWFjYD8gVGhhdCYjMzk7cyB0aGUgY29yZSBxdWVzdGlvbi4gVG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMsIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIGdldCBteSBleWVzIG9uIHRoZSBzb3VyY2UgY29kZSBvZiBgZHdtYWMtc29jZnBnYS5jYC4gSSYjMzk7bGwgZGVsdmUgaW50byB0aGUgY29kZSB0byB0cmFjZSB0aGUgaW50ZXJhY3Rpb25zLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkga2V5IGNvbmZpZ3VyYXRpb24gYXNwZWN0cyB0aGF0IHNoZWQgbGlnaHQgb24gaG93IGl0IGNvbW11bmljYXRlcyBhbmQgaW50ZWdyYXRlcyB3aXRoIHRoZSBgc3RtbWFjYCBmcmFtZXdvcmsuIFVuZGVyc3RhbmRpbmcgdGhlIGNvZGUmIzM5O3Mgc3RydWN0dXJlIGFuZCB0aGUgc3BlY2lmaWMgY2FsbHMgaXQgbWFrZXMgd2lsbCBpbGx1bWluYXRlIGl0cyBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdC8qIENvcHlyaWdodCBBbHRlcmEgQ29ycG9yYXRpb24gKEMpIDIwMTQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gICAzOlx0ICpcbiAgIDQ6XHQgKiBBZG9wdGVkIGZyb20gZHdtYWMtc3RpLmNcbiAgIDU6XHQgKi9cbiAgIDY6XHRcbiAgIDc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9tZmQvYWx0ZXJhLXN5c21nci5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvY2xvY2tzb3VyY2VfaWRzLmhcdTAwM2VcbiAgIDk6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9vZi5oXHUwMDNlXG4gIDEwOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvb2ZfYWRkcmVzcy5oXHUwMDNlXG4gIDExOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvb2ZfbmV0LmhcdTAwM2VcbiAgMTI6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9waHkuaFx1MDAzZVxuICAxMzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlZ21hcC5oXHUwMDNlXG4gIDE0Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvbWRpby9tZGlvLXJlZ21hcC5oXHUwMDNlXG4gIDE1Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvcGNzLWx5bnguaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbiAgMTc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9zdG1tYWMuaFx1MDAzZVxuICAxODpcdFxuICAxOTpcdCNpbmNsdWRlIFwmIzM0O2R3eGdtYWMyLmhcJiMzNDtcbiAgMjA6XHQjaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuICAyMTpcdCNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG4gIDIyOlx0I2luY2x1ZGUgXCYjMzQ7c3RtbWFjX3B0cC5oXCYjMzQ7XG4gIDIzOlx0XG4gIDI0Olx0I2RlZmluZSBTWVNNR1JfRU1BQ0dSUF9DVFJMX1BIWVNFTF9FTlVNX0dNSUlfTUlJIDB4MFxuICAyNTpcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QSFlTRUxfRU5VTV9SR01JSSAweDFcbiAgMjY6XHQjZGVmaW5lIFNZU01HUl9FTUFDR1JQX0NUUkxfUEhZU0VMX0VOVU1fUk1JSSAweDJcbiAgMjc6XHQjZGVmaW5lIFNZU01HUl9FTUFDR1JQX0NUUkxfUEhZU0VMX1dJRFRIIDJcbiAgMjg6XHQjZGVmaW5lIFNZU01HUl9FTUFDR1JQX0NUUkxfUEhZU0VMX01BU0sgMHgwMDAwMDAwM1xuICAyOTpcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QVFBfUkVGX0NMS19NQVNLIDB4MDAwMDAwMTBcbiAgMzA6XHQjZGVmaW5lIFNZU01HUl9HRU4xMF9FTUFDR1JQX0NUUkxfUFRQX1JFRl9DTEtfTUFTSyAweDAwMDAwMTAwXG4gIDMxOlx0XG4gIDMyOlx0I2RlZmluZSBTWVNNR1JfRlBHQUdSUF9NT0RVTEVfUkVHICAweDAwMDAwMDI4XG4gIDMzOlx0I2RlZmluZSBTWVNNR1JfRlBHQUdSUF9NT0RVTEVfRU1BQyAweDAwMDAwMDA0XG4gIDM0Olx0I2RlZmluZSBTWVNNR1JfRlBHQUlOVEZfRU1BQ19SRUdcdDB4MDAwMDAwNzBcbiAgMzU6XHQjZGVmaW5lIFNZU01HUl9GUEdBSU5URl9FTUFDX0JJVFx0MHgxXG4gIDM2Olx0XG4gIDM3Olx0I2RlZmluZSBFTUFDX1NQTElUVEVSX0NUUkxfUkVHXHRcdFx0MHgwXG4gIDM4Olx0I2RlZmluZSBFTUFDX1NQTElUVEVSX0NUUkxfU1BFRURfTUFTS1x0XHQweDNcbiAgMzk6XHQjZGVmaW5lIEVNQUNfU1BMSVRURVJfQ1RSTF9TUEVFRF8xMFx0XHQweDJcbiAgNDA6XHQjZGVmaW5lIEVNQUNfU1BMSVRURVJfQ1RSTF9TUEVFRF8xMDBcdFx0MHgzXG4gIDQxOlx0I2RlZmluZSBFTUFDX1NQTElUVEVSX0NUUkxfU1BFRURfMTAwMFx0XHQweDBcbiAgNDI6XHRcbiAgNDM6XHQjZGVmaW5lIFNHTUlJX0FEQVBURVJfQ1RSTF9SRUdcdFx0MHgwMFxuICA0NDpcdCNkZWZpbmUgU0dNSUlfQURBUFRFUl9FTkFCTEVcdFx0MHgwMDAwXG4gIDQ1Olx0I2RlZmluZSBTR01JSV9BREFQVEVSX0RJU0FCTEVcdFx0MHgwMDAxXG4gIDQ2Olx0XG4gIDQ3Olx0I2RlZmluZSBTTVRHX01ESU9fQUREUlx0XHQweDE1XG4gIDQ4Olx0I2RlZmluZSBTTVRHX1RTQ19XT1JEMFx0XHQweENcbiAgNDk6XHQjZGVmaW5lIFNNVEdfVFNDX1dPUkQxXHRcdDB4RFxuICA1MDpcdCNkZWZpbmUgU01UR19UU0NfV09SRDJcdFx0MHhFXG4gIDUxOlx0I2RlZmluZSBTTVRHX1RTQ19XT1JEM1x0XHQweEZcbiAgNTI6XHQjZGVmaW5lIFNNVEdfVFNDX1NISUZUXHRcdDE2XG4gIDUzOlx0XG4gIDU0Olx0c3RydWN0IHNvY2ZwZ2FfZHdtYWM7XG4gIDU1Olx0c3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHtcbiAgNTY6XHRcdGludCAoKnNldF9waHlfbW9kZSkoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjX3ByaXYsXG4gIDU3Olx0XHRcdFx0ICAgIHN0cnVjdCBkZXZpY2UgKmRldik7XG4gIDU4Olx0XHR2b2lkICgqc2V0dXBfcGxhdF9kYXQpKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hY19wcml2KTtcbiAgNTk6XHR9O1xuICA2MDpcdFxuICA2MTpcdHN0cnVjdCBzb2NmcGdhX2R3bWFjIHtcbiAgNjI6XHRcdHUzMlx0cmVnX29mZnNldDtcbiAgNjM6XHRcdHUzMlx0cmVnX3NoaWZ0O1xuICA2NDpcdFx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbiAgNjU6XHRcdHN0cnVjdCByZWdtYXAgKnN5c19tZ3JfYmFzZV9hZGRyO1xuICA2NjpcdFx0c3RydWN0IHJlc2V0X2NvbnRyb2wgKnN0bW1hY19yc3Q7XG4gIDY3Olx0XHRzdHJ1Y3QgcmVzZXRfY29udHJvbCAqc3RtbWFjX29jcF9yc3Q7XG4gIDY4Olx0XHR2b2lkIF9faW9tZW0gKnNwbGl0dGVyX2Jhc2U7XG4gIDY5Olx0XHR2b2lkIF9faW9tZW0gKnRzZV9wY3NfYmFzZTtcbiAgNzA6XHRcdHZvaWQgX19pb21lbSAqc2dtaWlfYWRhcHRlcl9iYXNlO1xuICA3MTpcdFx0Ym9vbCBmMmhfcHRwX3JlZl9jbGs7XG4gIDcyOlx0XHRjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgKm9wcztcbiAgNzM6XHR9O1xuICA3NDpcdFxuICA3NTpcdHN0YXRpYyBwaHlfaW50ZXJmYWNlX3Qgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbiAgNzY6XHR7XG4gIDc3Olx0XHRyZXR1cm4gZHdtYWMtXHUwMDNlcGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZTtcbiAgNzg6XHR9XG4gIDc5Olx0XG4gIDgwOlx0c3RhdGljIHZvaWQgc29jZnBnYV9zZ21paV9jb25maWcoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjLCBib29sIGVuYWJsZSlcbiAgODE6XHR7XG4gIDgyOlx0XHR1MTYgdmFsID0gZW5hYmxlID8gU0dNSUlfQURBUFRFUl9FTkFCTEUgOiBTR01JSV9BREFQVEVSX0RJU0FCTEU7XG4gIDgzOlx0XG4gIDg0Olx0XHR3cml0ZXcodmFsLCBkd21hYy1cdTAwM2VzZ21paV9hZGFwdGVyX2Jhc2UgJiM0MzsgU0dNSUlfQURBUFRFUl9DVFJMX1JFRyk7XG4gIDg1Olx0fVxuICA4NjpcdFxuICA4NzpcdHN0YXRpYyB2b2lkIHNvY2ZwZ2FfZHdtYWNfZml4X21hY19zcGVlZCh2b2lkICpic3BfcHJpdixcbiAgODg6XHRcdFx0XHRcdFx0cGh5X2ludGVyZmFjZV90IGludGVyZmFjZSwgaW50IHNwZWVkLFxuICA4OTpcdFx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgbW9kZSlcbiAgOTA6XHR7XG4gIDkxOlx0XHRzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMgPSAoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKilic3BfcHJpdjtcbiAgOTI6XHRcdHZvaWQgX19pb21lbSAqc2dtaWlfYWRhcHRlcl9iYXNlID0gZHdtYWMtXHUwMDNlc2dtaWlfYWRhcHRlcl9iYXNlO1xuICA5MzpcdFx0cGh5X2ludGVyZmFjZV90IHBoeW1vZGUgPSBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoZHdtYWMpO1xuICA5NDpcdFx0dm9pZCBfX2lvbWVtICpzcGxpdHRlcl9iYXNlID0gZHdtYWMtXHUwMDNlc3BsaXR0ZXJfYmFzZTtcbiAgOTU6XHRcdHUzMiB2YWw7XG4gIDk2Olx0XG4gIDk3Olx0XHRpZiAoc2dtaWlfYWRhcHRlcl9iYXNlKVxuICA5ODpcdFx0XHRzb2NmcGdhX3NnbWlpX2NvbmZpZyhkd21hYywgZmFsc2UpO1xuICA5OTpcdFxuIDEwMDpcdFx0aWYgKHNwbGl0dGVyX2Jhc2UpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA3MTIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA3MzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB0aGlzIHBhdGNoIGFmZmVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIHBsYXRmb3JtLCBzcGVjaWZpY2FsbHkgdGhlIGBkd21hYy1zb2NmcGdhLmNgIGZpbGUuIFRoaXMgdGVsbHMgbWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhbiBBUk0gb3IgQVJNNjQtYmFzZWQgZGV2aWNlIHRoYXQgcmVsaWVzIG9uIGEgRGV2aWNlIFRyZWUuIEJ1dCB3aGF0JiMzOTtzIGFjdHVhbGx5ICpjaGFuZ2VkKiBpbiB0aGUgcGF0Y2g/IExldCYjMzk7cyB0cmFjZSBpdCB0aHJvdWdoIHRoZSBmaWxlcy4KCiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jYDogIEkgc2VlIGBzdG1tYWNfbWFjX2lycV9tb2RpZnlgIGJlaW5nIGNhbGxlZCB0byBkaXNhYmxlIGFuZCB0aGVuIHJlLWVuYWJsZSB0aGUgdGltZXN0YW1wIGludGVycnVwdCBpbiBgc210Z19jcm9zc3RzdGFtcCgpYC4gIEludGVyZXN0aW5nLgoKKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oYDogVGhpcyBkZWZpbmVzIHRoZSBkZWZhdWx0IGludGVycnVwdCBlbmFibGUgbWFzaywgYFhHTUFDX0lOVF9ERUZBVUxUX0VOYC4gSXQgaW5jbHVkZXMgdGltZXN0YW1wLXJlbGF0ZWQgaW50ZXJydXB0cy4KCiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jYDogQSBuZXcgZnVuY3Rpb24sIGBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KClgLCBoYXMgYmVlbiBhZGRlZC4gIFRoaXMgaXMgYSBzaWduaWZpY2FudCBjaGFuZ2UsIGxpa2VseSB0aGUgY29yZSBvZiB0aGUgdGltZXN0YW1wIGZ1bmN0aW9uYWxpdHkuCgoqICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY2A6IFRoaXMgaXMgd2hlcmUgdGhlIGludGVyZmFjZSB0YWJsZSAoYC5od3RpbWVzdGFtcGApIGlzIHVwZGF0ZWQgZm9yIGBEV01BQ19DT1JFX1hHTUFDYCBkZXZpY2VzLiAgQ3J1Y2lhbGx5LCBpdCBzd2l0Y2hlcyBmcm9tIGBzdG1tYWNfcHRwYCB0byBgZHd4Z21hYzJfcHRwYC4gVGhpcyBpbXBsaWVzIGEgZnVuZGFtZW50YWwgc2hpZnQgaW4gaG93IGhhcmR3YXJlIHRpbWVzdGFtcGluZyBpcyBoYW5kbGVkIGZvciB0aGVzZSBYR01BQyBjb3Jlcy4gIFdlJiMzOTtyZSBnb2luZyBmcm9tIGEgZ2VuZXJpYyBQVFAgaW1wbGVtZW50YXRpb24gdG8gYSBtb3JlIHNwZWNpYWxpemVkIGBkd3hnbWFjMmAgb25lLgoKKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhgOiBKdXN0IGFuIGV4dGVybmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBuZXcgYGR3eGdtYWMyX3B0cGAuIEV4cGVjdGVkLgoKKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY2A6IFRoZSBkZWZpbml0aW9uIG9mIGBkd3hnbWFjMl9wdHBgIGlzIHRoZSBoZWFydCBvZiB0aGUgY2hhbmdlcy4gIEl0JiMzOTtzIGEgc3RydWN0dXJlIGNvbnRhaW5pbmcgYWxsIHRoZSBoYXJkd2FyZSB0aW1lc3RhbXBpbmcgZnVuY3Rpb25zIHNwZWNpZmljIHRvIHRoaXMgbmV3IGltcGxlbWVudGF0aW9uLiBUaGUgbmV3IHN0cnVjdHVyZSBpbmNsdWRlcyBjYWxsYmFja3MgZm9yIGNvbmZpZ3VyaW5nIHRoZSBoYXJkd2FyZSwgaGFuZGxpbmcgc3ViLXNlY29uZCBpbmNyZW1lbnQsIGFuZCBhZGp1c3Rpbmcgc3lzdGVtIHRpbWUuCgoqICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaGA6IFRoZSBwcm90b3R5cGUgZm9yIHRoZSBuZXcgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgIGlzIGRlZmluZWQgaGVyZS4KClNvLCB0aGlzIHBhdGNoIGlzIGNsZWFybHkgYWJvdXQgcmVmaW5pbmcgaGFyZHdhcmUgdGltZXN0YW1waW5nIHN1cHBvcnQgZm9yIHRoZSBYR01BQyBjb3JlIHdpdGhpbiB0aGUgU1RNTUFDIGRyaXZlci4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBldmVuICp3b3JrKiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBTVE1NQUMsIGVzcGVjaWFsbHkgRFdYR01BQywgcmVsaWVzIG9uIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzLiBJcyBpdCBhIHN0cmljdCBoYXJkd2FyZSBkZXZpY2U/CgpJIG5lZWQgdG8gcXVpY2tseSBjaGVjayBpZiBRRU1VIGVtdWxhdGVzIFNUTU1BQyBvciBhbnkgb2YgdGhlIERXTUFDIG9yIERXWEdNQUMgZGV2aWNlcyBhdCBhbGwuICBPciBpcyBTVE1NQUMgYSBQQ0kgZHJpdmVyIG9yIHBsYXRmb3JtIGRyaXZlcj8gTGV0IG1lIGNoZWNrIGBTVE1NQUNfUENJYCBhbmQgc2VlIHdoYXQgUENJIElEcyBhcmUgaW4gYHN0bW1hY19wY2kuY2Agb3Igb3RoZXIgc3RtbWFjIFBDSSBkcml2ZXJzIHRvIHNlZSBpZiBhbnkgb2YgdGhlIGhhcmR3YXJlIGlzIGVtdWxhdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTQxNT1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaW50ZWxfZXRoX3BjaV9pZF90YWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjE0MTc6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGludGVsX2V0aF9wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE4LVx0Lm5hbWUgPSBcJiMzNDtpbnRlbC1ldGgtcGNpXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTQyNzptb2R1bGVfcGNpX2RyaXZlcihpbnRlbF9ldGhfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MjgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz02MDI9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGxvb25nc29uX2R3bWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNjAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo2MDQ6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGxvb25nc29uX2R3bWFjX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNjA1LVx0Lm5hbWUgPSBEUklWRVJfTkFNRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NjE0Om1vZHVsZV9wY2lfZHJpdmVyKGxvb25nc29uX2R3bWFjX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0zNzE9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGR3bWFjX21vdG9yY29tbV9wY2lfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzczOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBkd21hY19tb3RvcmNvbW1fcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3NC1cdC5uYW1lID0gRFJJVkVSX05BTUUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzgyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzgzOm1vZHVsZV9wY2lfZHJpdmVyKGR3bWFjX21vdG9yY29tbV9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM4NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTI6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHN0bW1hY19wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMjI6bW9kdWxlX3BjaV9kcml2ZXIoc3RtbWFjX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMyNjIKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIFhHTUFDIERyaXZlciBJbXBsZW1lbnRhdGlvbnMqKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgdGhlc2UgWEdNQUMgY29yZXMgYXJlIGJlaW5nIHVzZWQgaW4gZGlmZmVyZW50IERXTUFDIGRyaXZlcnMuIEZpcnN0LCBJJiMzOTttIHRoaW5raW5nLCAmIzM0O0xldCYjMzk7cyBzdGFydCBieSBsb29raW5nIGF0IGEgZmV3IGxpa2VseSBzdXNwZWN0czogYHN0bW1hY19wY2kuY2AsIGBkd21hYy1pbnRlbC5jYCwgYGR3bWFjLWxvb25nc29uLmNgLCBgZHdtYWMtc29jZnBnYS5jYCwgYW5kIHNvIG9uLiYjMzQ7IFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGJhc2VsaW5lLgoKQnV0IHdhaXQgYSBtaW51dGUsIGEgbW9yZSBlZmZpY2llbnQgYXBwcm9hY2ggd291bGQgYmUgdG8gbmFycm93IHRoZSBzY29wZSBmcm9tIHRoZSBzdGFydC4gJiMzNDtMZXQmIzM5O3Mgc2VlIHdoaWNoIGRyaXZlcnMgYXJlICphY3R1YWxseSogdXRpbGl6aW5nIGBEV01BQ19DT1JFX1hHTUFDYCBvciBzcGVjaWZpY2FsbHkgcHJvYmluZyBmb3IgYGR3eGdtYWMyYC4mIzM0OyBJdCYjMzk7cyBtdWNoIG1vcmUgc3VyZ2ljYWwuCgpSaWdodCwgdGltZSB0byBnZXQgdG8gd29yay4gTm93LCB0aGUgZmFzdGVzdCBhbmQgbW9zdCBjb21wcmVoZW5zaXZlIGFwcHJvYWNoIHRvIHVuZGVyc3RhbmQgdGhlIGRyaXZlcnMgd291bGQgYmUgYSBxdWljayBjb2RlYmFzZSBzZWFyY2guIFNvLCBJIG5lZWQgdG8gJiMzNDtzZWFyY2ggZm9yIGBEV01BQ19DT1JFX1hHTUFDYCBpbiB0aGUgZW50aXJlIGNvZGViYXNlLiYjMzQ7IFRoaXMgc2hvdWxkIHJldmVhbCBhbGwgaW5zdGFuY2VzIG9mIHRoZSBtYWNybyYjMzk7cyB1c2UsIHByb3ZpZGluZyB0aGUgZm91bmRhdGlvbiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGhhcmR3YXJlIGFuZCB0aGUgc29mdHdhcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0RXTUFDX0NPUkVfWEdNQUMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NTE6XHRyZXR1cm4gY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQgfHwgY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01Mi19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTU4MD1zdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01ODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NTg0Olx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01ODUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYz0yMTQ9c3RhdGljIGludCB0ZWdyYV9tZ2JlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jOjMyNjpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzI3LVx0cGxhdC1cdTAwM2VmbGFncyB8PSBTVE1NQUNfRkxBR19UU09fRU47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTIxPXN0YXRpYyB2b2lkIHN0bW1hY19nZXRfdmVyc2lvbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTQ5LVx0dmVyLVx1MDAzZXNucHN2ZXIgPSBGSUVMRF9HRVQoRFdNQUNfU05QU1ZFUiwgdmVyc2lvbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6NTA6XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNTEtXHRcdHZlci1cdTAwM2VkZXZfaWQgPSBGSUVMRF9HRVQoRFdNQUNfVVNFUlZFUiwgdmVyc2lvbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTExMT1zdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19od2lmX2VudHJ5IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjQ3LVx0fSwge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjI0ODpcdFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjQ5LVx0XHQubWluX2lkID0gRFdYR01BQ19DT1JFXzJfMTAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI2OS1cdH0sIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNzA6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI3MS1cdFx0Lm1pbl9pZCA9IERXWExHTUFDX0NPUkVfMl8wMCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9Mjk0PXN0bW1hY19od2lmX2ZpbmQoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlLCB1OCBzbnBzdmVyLCB1OCBkZXZfaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTMwNi1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzozMDc6XHRcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQyBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zMDgtXHRcdCAgICBkZXZfaWQgIT0gZW50cnktXHUwMDNlZGV2X2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYz0yOD1zdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy01NS1cdGN0cmwgPSByZWFkbChlc3RfYWRkciAmIzQzOyBFU1RfQ09OVFJPTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmM6NTY6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtNTctXHRcdGN0cmwgXHUwMDI2PSB+RVNUX1hHTUFDX1BUT1Y7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jPTgzPXN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtMTUwLVx0aWYgKHN0YXR1cyBcdTAwMjYgRVNUX0JUUkUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYzoxNTE6XHRcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy0xNTItXHRcdFx0YnRybCA9IEZJRUxEX0dFVChFU1RfWEdNQUNfQlRSTCwgc3RhdHVzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTMwMT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9nZXRkcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMDgtXHRcdHN0cnNjcHkoaW5mby1cdTAwM2Vkcml2ZXIsIEdNQUNfRVRIVE9PTF9OQU1FLCBzaXplb2YoaW5mby1cdTAwM2Vkcml2ZXIpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzA5Olx0ZWxzZSBpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMTAtXHRcdHN0cnNjcHkoaW5mby1cdTAwM2Vkcml2ZXIsIFhHTUFDX0VUSFRPT0xfTkFNRSwgc2l6ZW9mKGluZm8tXHUwMDNlZHJpdmVyKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0zNTA9c3RhdGljIGludCBzdG1tYWNfZXRodG9vbF9nZXRfcmVnc19sZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzU0Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU1LVx0XHRyZXR1cm4gWEdNQUNfUkVHU0laRSAqIDQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0zNjE9c3RhdGljIHZvaWQgc3RtbWFjX2V0aHRvb2xfZ3JlZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3NS1cdFx0ICAgICAgIE5VTV9EV01BQzRfRE1BX1JFR1MgKiA0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6Mzc2Olx0fSBlbHNlIGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzc3LVx0XHRtZW1jcHkoXHUwMDI2cmVnX3NwYWNlW0VUSFRPT0xfRE1BX09GRlNFVF0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NDI9c3RhdGljIGludCBzdG1tYWNfaHd0c3RhbXBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTgtXHRcdFx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXTUFDX0NPUkVfM183MCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5Olx0XHRcdCAgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2MC1cdFx0XHRcdHRzX2V2ZW50X2VuID0gUFRQX1RDUl9UU0VWTlRFTkE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NTQ1PXN0YXRpYyBpbnQgc3RtbWFjX2RtYV9jYXBfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY1ODAtXHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAuaGFsZl9kdXBsZXgpID8gXCYjMzQ7WVwmIzM0OyA6IFwmIzM0O05cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NTgxOlx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTgyLVx0XHRzZXFfcHJpbnRmKHNlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MDQtXHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAuYXRpbWVfc3RhbXApID8gXCYjMzQ7WVwmIzM0OyA6IFwmIzM0O05cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NjA1Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjYwNi1cdFx0c2VxX3ByaW50ZihzZXEsIFwmIzM0O1xcdFRpbWVzdGFtcCBTeXN0ZW0gVGltZSBTb3VyY2U6ICVzXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjYxMy1cdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdNQUNfQ09SRV80XzAwIHx8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY2MTQ6XHQgICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MTUtXHRcdHNlcV9wcmludGYoc2VxLCBcJiMzNDtcXHRJUCBDaGVja3N1bSBPZmZsb2FkIGluIFJYOiAlc1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNDc9c3RhdGljIHZvaWQgc3RtbWFjX3ByaW50X2FjdHBoeWlmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNjM6XHRjYXNlIERXTUFDX0NPUkVfWEdNQUM6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNjQtXHRcdHBoeWlmX3RhYmxlID0gc3RtbWFjX2R3eGdtYWNfcGh5aWY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03Mzg5PXN0YXRpYyBpbnQgc3RtbWFjX2h3X2luaXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzUxMS1cdGlmICgocHJpdi1cdTAwM2VzeW5vcHN5c19pZCBcdTAwM2U9IERXTUFDX0NPUkVfM181MCB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NTEyOlx0ICAgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTEzLVx0ICAgICFwcml2LVx1MDAzZXBsYXQtXHUwMDNlcml3dF9vZmYpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc3Nzg9c3RhdGljIGludCBfX3N0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzk4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Nzk4NjpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc5ODctXHRcdG5kZXYtXHUwMDNlbWF4X210dSA9IFhHTUFDX0pVTUJPX0xFTjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTUzNj1zdGF0aWMgdTMyIHN0bW1hY19jbGtfY3NyX3NldChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy01NTQtXHRcdHJhdGVzID0gc3RtbWFjX3N1bjhpX2Nzcl90b19tZGM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjU1NTpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTU1Ni1cdFx0cmF0ZXMgPSBzdG1tYWNfeGdtYWNfY3NyX3RvX21kYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTU5NT1pbnQgc3RtbWFjX21kaW9fcmVnaXN0ZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjYyMjpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjIzLVx0XHRuZXdfYnVzLVx1MDAzZXJlYWQgPSBcdTAwMjZzdG1tYWNfeGdtYWMyX21kaW9fcmVhZF9jMjI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjUtXHQvKiBMb29rcyBsaWtlIHdlIG5lZWQgYSBkdW1teSByZWFkIGZvciBYR01BQyBvbmx5IGFuZCBDNDUgUEhZcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo2NjY6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjctXHRcdHN0bW1hY194Z21hYzJfbWRpb19yZWFkX2M0NShuZXdfYnVzLCAwLCAwLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz00MTQ9c3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU0NS1cdGlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXCYjMzQ7c25wcyxkd3hnbWFjXCYjMzQ7KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NTQ2Olx0XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy01NDctXHRcdHBsYXQtXHUwMDNlcG10ID0gdHJ1ZTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc2MDkKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMzY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBSZWFjaGFiaWxpdHkgb2YgRGVzaWduV2FyZSBYR01BQyBDb2RlIFBhdGhzIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBEV01BQ19DT1JFX1hHTUFDYCBzdHVmZi4gRmlyc3QsIEkgc2VlIGl0IGRlZmluZWQgaW4gYSBmZXcgcGxhY2VzOiBgZHdtYWMtc29jZnBnYS5jYCBmb3IgQWx0ZXJhIEFnaWxleDUsIGBkd21hYy10ZWdyYS5jYCBmb3IgTnZpZGlhIFRlZ3JhLCBhbmQgYHN0bW1hY19wbGF0Zm9ybS5jYCBmb3IgZGV2aWNlcyBjb21wYXRpYmxlIHdpdGggJiMzNDtzbnBzLGR3eGdtYWMmIzM0Oy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgYW55IG9mIHRoaXMgY2FuIGFjdHVhbGx5IGJlIHJlYWNoZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpLCBvciBpZiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHNvbGVseSBwaHlzaWNhbCBTb0NzLgoKTm93LCBsZXQmIzM5O3MgcmVmZXIgdG8gdGhlIGluc3RydWN0aW9ucyBwcm92aWRlZC4gVGhlIGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY29kZSBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgaW5zdHJ1Y3Rpb25zIGV4cGxpY2l0bHkgc2F5IHRoYXQgd2Ugc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgY2hhbmdlcyBhcmUgbGltaXRlZCB0byB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLgoKSSYjMzk7bSB0aGlua2luZywgZG9lcyBRRU1VIGV2ZW4gZW11bGF0ZSAmIzM0O3NucHMsZHd4Z21hYyYjMzQ7IG9yIGFueXRoaW5nIHJlbGF0ZWQgdG8gdGhvc2Ugc3BlY2lmaWMgU29Dcz8gTGV0JiMzOTtzIHNlZSB3aGF0IFFFTVUgKmRvZXMqIHN1cHBvcnQgZm9yIHN0bW1hYy9kZXNpZ253YXJlIG1hYy4gSSBzZWUgYSBsb3Qgb2Ygb3B0aW9uczogYGFsbHdpbm5lci1hMTAtZW1hY2AsIGBjYWRlbmNlX2dlbWAsIGV0Yy4sIGJ1dCBub3RoaW5nIHRoYXQgc2NyZWFtcyAmIzM0O0Rlc2lnbldhcmUgMTBHYiBFdGhlcm5ldCYjMzQ7IG9yIEFsdGVyYSBTb0MgRlBHQS4gSSYjMzk7bSBub3Qgc2VlaW5nIGFueSBgZHd4Z21hY2AgZXF1aXZhbGVudCBpbiBRRU1VLiBOb3BlLCBRRU1VIGRvZXMgTk9UIGVtdWxhdGUgU3lub3BzeXMgRGVzaWduV2FyZSBFbnRlcnByaXNlIDEwRyBFdGhlcm5ldCBNQUMgb3IgQWx0ZXJhIFNvQyBGUEdBIEFnaWxleDUuIEludGVsIHN0bW1hYyBpcyBhIGRpZmZlcmVudCBzdG9yeSwgdXNpbmcgR01BQzQvR01BQzUvRFdNQUNfQ09SRV9HTUFDNC9HTUFDLiBMb29uZ3NvbiB1c2VzIERXTUFDX0NPUkVfR01BQy4KCk1vcmVvdmVyLCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgYW55IEludGVsIHN0bW1hYyBQQ0kgLyBMb29uZ3NvbiBQQ0kgLyBNb3RvcmNvbW0gUENJLiBJdCBlbXVsYXRlcyB0aGUgdXN1YWwgc3VzcGVjdHMgbGlrZSBlMTAwMCwgZTEwMDBlLCBpZ2IsIGFuZCBzbyBvbi4KClRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMsIGNhbiBTeXprYWxsZXIgYWN0dWFsbHkgKnJlYWNoKiBwbGF0Zm9ybSBkcml2ZXJzLCBvciBhcmUgdGhlc2Ugc3BlY2lmaWMgQVJNL1NvQyBkcml2ZXJzIChBbHRlcmEgc29jZnBnYSwgTnZpZGlhIFRlZ3JhLCBTeW5vcHN5cyBkd3hnbWFjKSBmdW5kYW1lbnRhbGx5IHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmU/IEkmIzM5O3ZlIGdvdCB0byBjb25zaWRlciB0aGlzLiBMZXQmIzM5O3MgbG9vayBhdCBzaW1pbGFyIGNhc2VzIGFuZCBndWlkZWxpbmVzLgoKSSBuZWVkIHRvIHF1aWNrbHkgY2hlY2sgaWYgc3l6a2FsbGVyIG9yIGFueSBmdXp6aW5nIGJlbmNobWFya3MgYWNjb3VudCBmb3IgZXRoZXJuZXQgZHJpdmVycyBvbiBlbWJlZGRlZCBTb0NzLgoKT2ssIHRoZSBpbnN0cnVjdGlvbnMgYXJlIGNsZWFyOiBpZiB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gQWxzbywgaWYgdGhlIGNvZGUgaXMgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoIG9yIFNtYXJ0TklDIGRyaXZlcnMsIGxpa2UgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUsIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZS4gRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyBzdWNoIGFzIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIGFyZSBhbHNvIG5vdCBmdXp6YWJsZS4KClNvLCBjYW4gdGhpcyBjb2RlIChzcGVjaWZpY2FsbHkgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgLCBvciB0aGUgY29kZSBpbiBgZHdtYWMtc29jZnBnYS5jYCwgb3IgYGR3eGdtYWMyX3B0cGApIGJlIHJlYWNoZWQgaW4gUUVNVSBvciBHQ0U/CgpMZXQmIzM5O3MgYnJlYWsgaXQgZG93bjoKMS4gYGR3bWFjLXNvY2ZwZ2EuY2A6IFRoaXMgaXMgQWx0ZXJhIFNPQ0ZQR0EuIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgYHNtdGdfY3Jvc3N0c3RhbXBgIGlzIGNhbGxlZCBmb3IgUFRQIGNyb3NzLXRpbWVzdGFtcGluZyBvbiBBbHRlcmEgQWdpbGV4L1N0cmF0aXggU09DRlBHQS4gVGhlIGNvZGUgaW50ZXJhY3RzIGRpcmVjdGx5IHdpdGggRlBHQSByZWdpc3RlcnMgYW5kIE1ESU8gcmVnaXN0ZXJzIG9mIHRoZSBTTVRHIHRpbWUgY2FyZCAvIE1ESU8gaGFyZHdhcmUgKHZpYSBgZ2V0X3NtdGd0aW1lYCkuIFRoaXMgZmVlbHMgdmVyeSBoYXJkd2FyZS1zcGVjaWZpYy4KCjIuIGBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0YDogVGhpcyBoYW5kbGVzIHRpbWVzdGFtcCBpbnRlcnJ1cHRzIGZvciB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSAxMEcgRXRoZXJuZXQgTUFDIChgZHd4Z21hYzJgKS4gVGhlIGNvZGUgcmVhZHMgZnJvbSByZWdpc3RlcnMgbGlrZSBgWEdNQUNfVElNRVNUQU1QX1NUQVRVU2AgYW5kIGBQVFBfQUNSYCBhbmQgZGlzcGF0Y2hlcyBQVFAgZXZlbnRzLiBUaGlzIGlzIGhvb2tlZCBieSBgc3RtbWFjX2h3aWZfZW50cnlgIGZvciBgRFdNQUNfQ09SRV9YR01BQ2AuIEl0JiMzOTtzIHJlZ2lzdGVyZWQgaW4gYGR3eGdtYWMyX3B0cC50aW1lc3RhbXBfaW50ZXJydXB0YC4gU28gd2hlbiBleGFjdGx5IGlzIHRoaXMgYHRpbWVzdGFtcF9pbnRlcnJ1cHRgIGNhbGxlZD8gTGV0JiMzOTtzIGNoZWNrIGZvciBob3cgdGhpcyBpbnRlcnJ1cHQgaGFuZGxlciBpcyBjYWxsZWQuIFRpbWUgdG8gZ3JlcCBmb3IgYHRpbWVzdGFtcF9pbnRlcnJ1cHRgIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGltZXN0YW1wX2ludGVycnVwdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jPTUxMz12b2lkIGR3bWFjMTAwMF9nZXRfcHRwdGltZSh2b2lkIF9faW9tZW0gKnB0cGFkZHIsIHU2NCAqcHRwX3RpbWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYy01MjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jOjUyMzp2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMtNTI0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTU1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmM6NTUzOnN0YXRpYyB2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0X2NmZyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGJvb2wgZW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTU1NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYz01Njc9aW50IGR3bWFjMTAwMF9wdHBfZW5hYmxlKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMtNjAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYzo2MDE6XHRcdGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0X2NmZyhwcml2LCBvbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTYwMi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jPTExNDM9c3RhdGljIGludCBkd3hnbWFjMl9nZXRfbWFjX3R4X3RpbWVzdGFtcChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTY0ICp0cylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMTU3OnZvaWQgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE1OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oPTQ5Nz1zdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmgtNTA2LVx0dm9pZCAoKmdldF9wdHB0aW1lKSh2b2lkIF9faW9tZW0gKmlvYWRkciwgdTY0ICpwdHBfdGltZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg6NTA3Olx0dm9pZCAoKnRpbWVzdGFtcF9pbnRlcnJ1cHQpKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmgtNTA4LVx0dm9pZCAoKmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSkoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmgtNTI0LVx0c3RtbWFjX2RvX3ZvaWRfY2FsbGJhY2soX19wcml2LCBwdHAsIGdldF9wdHB0aW1lLCBfX2FyZ3MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg6NTI1OiNkZWZpbmUgc3RtbWFjX3RpbWVzdGFtcF9pbnRlcnJ1cHQoX19wcml2LCBfX2FyZ3MuLi4pIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg6NTI2Olx0c3RtbWFjX2RvX3ZvaWRfY2FsbGJhY2soX19wcml2LCBwdHAsIHRpbWVzdGFtcF9pbnRlcnJ1cHQsIF9fYXJncylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaC01MjctI2RlZmluZSBzdG1tYWNfaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5KF9fcHJpdiwgX19hcmdzLi4uKSBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jPTIwND1zdGF0aWMgdm9pZCBnZXRfcHRwdGltZSh2b2lkIF9faW9tZW0gKnB0cGFkZHIsIHU2NCAqcHRwX3RpbWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM6MjE0OnN0YXRpYyB2b2lkIHRpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjE1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yNTg9Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBzdG1tYWNfcHRwID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI2NS1cdC5nZXRfcHRwdGltZSA9IGdldF9wdHB0aW1lLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM6MjY2Olx0LnRpbWVzdGFtcF9pbnRlcnJ1cHQgPSB0aW1lc3RhbXBfaW50ZXJydXB0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjY3LVx0Lmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSA9IGh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yNzA9Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd21hYzEwMDBfcHRwID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI3Ny1cdC5nZXRfcHRwdGltZSA9IGR3bWFjMTAwMF9nZXRfcHRwdGltZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jOjI3ODpcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yNzktfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yODE9Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd3hnbWFjMl9wdHAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjg4LVx0LmdldF9wdHB0aW1lID0gZ2V0X3B0cHRpbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYzoyODk6XHQudGltZXN0YW1wX2ludGVycnVwdCA9IGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yOTAtXHQuaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5ID0gaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjIwOT1zdGF0aWMgdm9pZCBzdG1tYWNfY29tbW9uX2ludGVycnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MjQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MjQ1Olx0XHRzdG1tYWNfdGltZXN0YW1wX2ludGVycnVwdChwcml2LCBwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjI0Ni1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmg9MTA0PXZvaWQgZHdtYWMxMDAwX2dldF9wdHB0aW1lKHZvaWQgX19pb21lbSAqcHRwYWRkciwgdTY0ICpwdHBfdGltZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmg6MTA1OnZvaWQgZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaDoxMDY6dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmgtMTA3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTk4OQoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHF1ZXN0aW9uIGlzOiB3aGF0IGFjdHVhbGx5IGtpY2tzIG9mZiB0aGUgYHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0YCBmdW5jdGlvbj8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRyb2wgZmxvdyBoZXJlLiBTbywgSSBzZWUgdGhhdCB0aGlzIGludGVycnVwdCBpcyBsaWtlbHkgaGFuZGxlZCBieSBgc3RtbWFjX2NvbW1vbl9pbnRlcnJ1cHRgLCBhbmQgdGhhdCYjMzk7cyBmb3VuZCBpbiBgc3RtbWFjX21haW4uY2AuCgoqKkRpdmluZyBpbnRvIHRoZSBJbnRlcnJ1cHQgSGFuZGxpbmcqKgoKSSYjMzk7bSB6ZXJvaW5nIGluIG9uIGBzdG1tYWNfbWFpbi5jYCBub3csIHNwZWNpZmljYWxseSBhcm91bmQgbGluZXMgNjIwOSB0byA2MjUwLiBUaGF0JiMzOTtzIHRoZSBsaWtlbHkgcmVnaW9uIHdoZXJlIHRoZSBpbnRlcnJ1cHQgbG9naWMgaXMgaGFuZGxlZC4gSSYjMzk7bGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aGF0IHNlY3Rpb24gb2YgdGhlIGNvZGUgdG8gdHJhY2UgdGhlIGNvbmRpdGlvbnMgdGhhdCBsZWFkIHRvIHRoZSBgc3RtbWFjX3RpbWVzdGFtcF9pbnRlcnJ1cHRgIGJlaW5nIGNhbGxlZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGludGVycnVwdCBlbmFibGUvZGlzYWJsZSBtZWNoYW5pc21zIGFuZCBpbnRlcnJ1cHQgc3RhdHVzIGNoZWNrcyB0aGF0IHRha2UgcGxhY2UgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuIE15IGdvYWwgaXMgdG8gbWFwIHRoZSBwYXRoIG9mIGV4ZWN1dGlvbiB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaXMgdHJpZ2dlcmVkIGFuZCB3aGF0IHRoZSBjcml0aWNhbCBwaWVjZXMgb2YgY29udGV4dCBhcmUgZm9yIGl0cyBvcGVyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDYyMDUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7NjIwNTpcdFxuNjIwNjpcdFx0cmV0dXJuIDA7XG42MjA3Olx0fVxuNjIwODpcdFxuNjIwOTpcdHN0YXRpYyB2b2lkIHN0bW1hY19jb21tb25faW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbjYyMTA6XHR7XG42MjExOlx0XHR1OCByeF9jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbjYyMTI6XHRcdHU4IHR4X2NudCA9IHByaXYtXHUwMDNlcGxhdC1cdTAwM2V0eF9xdWV1ZXNfdG9fdXNlO1xuNjIxMzpcdFx0dTggcXVldWVzX2NvdW50O1xuNjIxNDpcdFx0Ym9vbCB4bWFjO1xuNjIxNTpcdFx0dTggcXVldWU7XG42MjE2Olx0XG42MjE3Olx0XHR4bWFjID0gZHdtYWNfaXNfeG1hYyhwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlKTtcbjYyMTg6XHRcdHF1ZXVlc19jb3VudCA9IChyeF9jbnQgXHUwMDNlIHR4X2NudCkgPyByeF9jbnQgOiB0eF9jbnQ7XG42MjE5Olx0XG42MjIwOlx0XHRpZiAocHJpdi1cdTAwM2VpcnFfd2FrZSlcbjYyMjE6XHRcdFx0cG1fd2FrZXVwX2V2ZW50KHByaXYtXHUwMDNlZGV2aWNlLCAwKTtcbjYyMjI6XHRcbjYyMjM6XHRcdGlmIChwcml2LVx1MDAzZWRtYV9jYXAuZXN0c2VsKVxuNjIyNDpcdFx0XHRzdG1tYWNfZXN0X2lycV9zdGF0dXMocHJpdiwgcHJpdiwgcHJpdi1cdTAwM2VkZXYsXG42MjI1Olx0XHRcdFx0XHQgICAgICBcdTAwMjZwcml2LVx1MDAzZXhzdGF0cywgdHhfY250KTtcbjYyMjY6XHRcbjYyMjc6XHRcdGlmIChzdG1tYWNfZnBlX3N1cHBvcnRlZChwcml2KSlcbjYyMjg6XHRcdFx0c3RtbWFjX2ZwZV9pcnFfc3RhdHVzKHByaXYpO1xuNjIyOTpcdFxuNjIzMDpcdFx0LyogVG8gaGFuZGxlIEdNQUMgb3duIGludGVycnVwdHMgKi9cbjYyMzE6XHRcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQyB8fCB4bWFjKSB7XG42MjMyOlx0XHRcdGludCBzdGF0dXMgPSBzdG1tYWNfaG9zdF9pcnFfc3RhdHVzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNleHN0YXRzKTtcbjYyMzM6XHRcbjYyMzQ6XHRcdFx0aWYgKHVubGlrZWx5KHN0YXR1cykpIHtcbjYyMzU6XHRcdFx0XHQvKiBGb3IgTFBJIHdlIG5lZWQgdG8gc2F2ZSB0aGUgdHggc3RhdHVzICovXG42MjM2Olx0XHRcdFx0aWYgKHN0YXR1cyBcdTAwMjYgQ09SRV9JUlFfVFhfUEFUSF9JTl9MUElfTU9ERSlcbjYyMzc6XHRcdFx0XHRcdHByaXYtXHUwMDNldHhfcGF0aF9pbl9scGlfbW9kZSA9IHRydWU7XG42MjM4Olx0XHRcdFx0aWYgKHN0YXR1cyBcdTAwMjYgQ09SRV9JUlFfVFhfUEFUSF9FWElUX0xQSV9NT0RFKVxuNjIzOTpcdFx0XHRcdFx0cHJpdi1cdTAwM2V0eF9wYXRoX2luX2xwaV9tb2RlID0gZmFsc2U7XG42MjQwOlx0XHRcdH1cbjYyNDE6XHRcbjYyNDI6XHRcdFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFx1MDAzYyBxdWV1ZXNfY291bnQ7IHF1ZXVlJiM0MzsmIzQzOylcbjYyNDM6XHRcdFx0XHRzdG1tYWNfaG9zdF9tdGxfaXJxX3N0YXR1cyhwcml2LCBwcml2LVx1MDAzZWh3LCBxdWV1ZSk7XG42MjQ0Olx0XG42MjQ1Olx0XHRcdHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0KHByaXYsIHByaXYpO1xuNjI0NjpcdFx0fVxuNjI0NzpcdH1cbjYyNDg6XHRcbjYyNDk6XHQvKipcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMwNTAKCQkJCQkJCW91dHB1dDogMTEyCgkJCQkJCQl0aG91Z2h0czogMTM3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgU3VpdGFiaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGZpcnN0IHRoaW5nIEkmIzM5O20gZG9pbmcgaXMgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIHRhcmdldCBoYXJkd2FyZSBvZiB0aGUgY29kZSBtb2RpZmljYXRpb25zIGluIHRoaXMgcGF0Y2guIEkgc2VlIHJlZmVyZW5jZXMgdG8gYERXTUFDX0NPUkVfWEdNQUNgIGFuZCBgZHdtYWMtc29jZnBnYWAuICBgZHdtYWMtc29jZnBnYWAgaW1tZWRpYXRlbHkgZmxhZ3MgYXMgQWx0ZXJhL0ludGVsIFNPQ0ZQR0EsIHNwZWNpZmljYWxseSBBZ2lsZXggNSwgU3RyYXRpeCAxMCwgb3Igc2ltaWxhci4gIEkgYWxzbyBzZWUgbWVudGlvbiBvZiBgZHdtYWMtdGVncmFgIChOVklESUEgVGVncmEpIGFuZCBgc25wcyxkd3hnbWFjYCAoU3lub3BzeXMgRGVzaWduV2FyZSBFbnRlcnByaXNlIDEwRyBFdGhlcm5ldCBNQUMpLiAgTm9uZSBvZiB0aGVzZSBkZXZpY2UgdHlwZXMgYXJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLCB3aGljaCBpcyBhIGtleSBjb25zaWRlcmF0aW9uLgoKTm93LCBJJiMzOTttIGNoZWNraW5nIHRvIHNlZSAqaWYqIFFFTVUgZXZlbiBwcm92aWRlcyBlbXVsYXRpb24gZm9yIGFueSBTVE1NQUMgb3IgRFdNQUMgY29udHJvbGxlcnMuIEkgZmluZCB0aGF0IFFFTVUgaGFzIGBhbGx3aW5uZXItYTEwLWVtYWNgLCB3aGljaCBpcyBub3QgYSBEV01BQyBidXQgaXMgYSBzdW40aSBlbWFjLiBFdmVuIGlmIFFFTVUgKmRpZCogZW11bGF0ZSBhIGJhc2ljIERXTUFDIChsaWtlIHN1bjhpIG9yIHN0bTMyKSwgbm9uZSBvZiB0aG9zZSB3b3VsZCBiZSBYR01BQyAoMTBHYnBzIE1BQykgb3IgdGhlIEFsdGVyYS9JbnRlbCBTT0NGUEdBIHZlcnNpb24gKGBkd21hYy1zb2NmcGdhYCkuCgpUaGVuIHRoZSB0aG91Z2h0IHN0cmlrZXMgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIFBDSSBlbXVsYXRpb25zLiBUaGUgc2hvcnQgYW5zd2VyIGlzIG5vOyBRRU1VIGxhY2tzIHNwZWNpZmljIG1vZGVscyBmb3IgdGhlIEludGVsIEVsa2hhcnQgTGFrZS9UaWdlciBMYWtlIFBTRSBkd21hYywgTG9vbmdzb24gb3IgTW90b3Jjb21tIFBDSSBldGhlcm5ldCBpbXBsZW1lbnRhdGlvbnMuCgpMb29raW5nIGNsb3NlbHkgYXQgdGhlIHNwZWNpZmljIGZpbGVzIGJlaW5nIG1vZGlmaWVkLCBJIHNlZSBgZHdtYWMtc29jZnBnYS5jYCwgd2hpY2ggaXMgdGhlIEFsdGVyYSBTT0NGUEdBLXNwZWNpZmljIGRyaXZlciB0aGF0IGRlYWxzIHdpdGggdGhlIFNNVEcgdGltZSBzdGFtcCBjYXJkIGludGVyZmFjZS4gVGhlIG90aGVyIGZpbGVzLCBgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdGAgaW4gYGR3eGdtYWMyX2NvcmUuY2AgYW5kIGEgZmV3IG90aGVycywgYXJlIGRlYWxpbmcgd2l0aCB0aGUgRFdYR01BQyAoMTBHYnBzIERlc2lnbldhcmUgTUFDKSB0aW1lc3RhbXAgZnVuY3Rpb25hbGl0eS4KCk5vdywgSSYjMzk7bSByZS1yZWFkaW5nIHRoZSBydWxlcyByZWdhcmRpbmcgd2hhdCBtYWtlcyBhIHBhdGNoICpub3QqIHdvcnRoIGZ1enppbmcuICBUaGlzIGluY2x1ZGVzIHRoaW5ncyB0aGF0IGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhpcyBpbmNsdWRlcyBjb2RlIHRoYXQgcmVsaWVzIG9uIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIFFFTVUuCgpHaXZlbiB0aGUgcnVsZSBzZXQsIHRoZSBjZW50cmFsIHF1ZXN0aW9uIGJlY29tZXM6IGFyZSBTVE1NQUMgLyBEV1hHTUFDIC8gRFdNQUNfU09DRlBHQSBmZWF0dXJlcyByZWFjaGFibGUgd2l0aGluIFFFTVUgb3IgR0NFPyBUaGUgYW5zd2VyIGlzIGEgY2xlYXIgbm8uCgoxLiAgYERXTUFDLVNvQ0ZQR0FgIHJlcXVpcmVzIHJlYWwgQWx0ZXJhL0ludGVsIFNvQyBGUEdBIGhhcmR3YXJlIHdpdGggc3BlY2lmaWMgc3lzdGVtIG1hbmFnZXIgcmVnaXN0ZXJzIGFuZCBGUEdBIGZhYnJpYyBpbnRlcmZhY2VzLgoyLiAgYERXWEdNQUNgIGlzIGEgU3lub3BzeXMgMTBHIEV0aGVybmV0IE1BQyBJUCwgZm91bmQgb25seSBpbiBzcGVjaWZpYyBwaHlzaWNhbCBTb0NzIGxpa2UgQWx0ZXJhIEFnaWxleCA1IGFuZCBOdmlkaWEgVGVncmEyMzQvVGhvci4KMy4gIFN0YW5kYXJkIFFFTVUgZG9lcyAqbm90KiBlbXVsYXRlIHRoZXNlIFN5bm9wc3lzIERXWEdNQUMgb3IgQWx0ZXJhIFNvQyBGUEdBIEV0aGVybmV0IGNvbnRyb2xsZXJzLgo0LiAgR0NFIGRvZXNuJiMzOTt0IHByb3ZpZGUgZW11bGF0aW9uIGVpdGhlci4KClRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgbm90IHJlYWNoYWJsZSBpbiB0aGVzZSBlbnZpcm9ubWVudHMuICBJIGRvdWJsZS1jaGVjayB0aGUgZmlsZXMgYW5kIHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlIGNoYW5nZXMsIGFuZCBJJiMzOTttIGxvb2tpbmcgZm9yIGFueSBvdGhlciBtb2RpZmljYXRpb25zLiBUaGUgZGlmZnMgY29uZmlybSB0aGF0IGFsbCBtb2RpZmljYXRpb25zIGFyZSBjb25maW5lZCB0byBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgY29kZSB0aGF0IHJlbGllcyBvbiB0aGVzZSBwaHlzaWNhbCBTb0NzIGFuZCBGUEdBcy4gIFRoZSBwYXRjaCBpbXBhY3RzIHRoaW5ncyBsaWtlIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxpbmcgZm9yIERXWEdNQUMgYW5kIGNyb3NzLXRpbWVzdGFtcGluZyBpbiB0aGUgQWx0ZXJhIFNvQ0ZQR0EgZHJpdmVyLiAgQm90aCBhcmUgbm90IGFjY2Vzc2libGUgaW4gUUVNVSBvciBHQ0UuCgpUaGUgY29uY2x1c2lvbiBpcyB0aGF0IHRoaXMgcGF0Y2ggaXMgbm90IHN1aXRhYmxlIGZvciBmdXp6aW5nLiAgVGhlIGBXb3J0aEZ1enppbmdgIGZsYWcgc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLiBUaGVyZSBhcmUgbm8gc3BlY2lmaWMgc3ltYm9scyBvciBjb25maWd1cmF0aW9ucyB0byBlbmFibGUgb3IgZm9jdXMgb24gc2luY2UgdGhlIGNvZGUgY2FuJiMzOTt0IGJlIGV4ZWN1dGVkLCBhbmQgdGhlIHJlYXNvbmluZyBpcyBjbGVhcjogdGhlIGNoYW5nZXMgYXJlIGhhcmR3YXJlLWRlcGVuZGVudCBhbmQgY2FuJiMzOTt0IGJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFLgoKRmluYWxseSwgSSYjMzk7bSBzZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmb3IgdGhlIGBzZXQtcmVzdWx0c2AgdG9vbDoKCiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYAoqICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAKKiAgIGBFbmFibGVDb25maWdzYDogYFtdYAoqICAgYFJlYXNvbmluZ2A6IENvbmNpc2UgZXhwbGFuYXRpb24gb2Ygd2h5IGl0IGlzIGBmYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTeW5vcHN5cyBTVE1NQUMgRFdYR01BQyAoMTBHIE1BQykgdGltZXN0YW1wIGludGVycnVwdCBoYW5kbGluZyBhbmQgQWx0ZXJhIFNvQ0ZQR0EgZXRoZXJuZXQgZ2x1ZSBkcml2ZXIuIFRoZXNlIGNvZGUgcGF0aHMgcmVxdWlyZSBwaHlzaWNhbCBTb0MvRlBHQSBoYXJkd2FyZSAoc3VjaCBhcyBJbnRlbC9BbHRlcmEgU29DRlBHQSBvciBOdmlkaWEgVGVncmEgcGxhdGZvcm1zKSB0aGF0IGlzIG5vdCBhdmFpbGFibGUgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTo0MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzg6MzcuMzA2MzQ1MTQ2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3MDcyNjMxNzUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM4OjM3LjMwNjM1MTk2NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU3MjMzODgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjlhMjRiM2Q4NTQ1OGEyYTNiNzEzM2M0NDllYTcwYWU2MTZkOWU1NlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IFNlcCAzIDA5OjM4OjM2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLmE0ZDAwYmY4MTQyMzcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuQEAgLTMxMCw2ICszMTAsMTMgQEAgc3RhdGljIGludCBzbXRnX2Nyb3NzdHN0YW1wKGt0aW1lX3QgKmRldmljZSwgc3RydWN0IHN5c3RlbV9jb3VudGVydmFsX3QgKnN5c3RlbSxcXG4gXFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWZsYWdzIFxcdTAwMjYgU1RNTUFDX0ZMQUdfRVhUX1NOQVBTSE9UX0VOKVxcbiBcXHRcXHRyZXR1cm4gLUVCVVNZO1xcbiBcXG4rXFx0LyogVGhlIFhHTUFDIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxlciBjbGVhcnMgVFNJUyBieSByZWFkaW5nXFxuK1xcdCAqIFhHTUFDX1RJTUVTVEFNUF9TVEFUVVMsIHdoaWNoIHdvdWxkIHJhY2Ugd2l0aCB0aGUgVFNJUyBwb2xsXFxuK1xcdCAqIGJlbG93LiAgTWFzayBYR01BQ19UU0lFIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGNyb3NzLXRpbWVzdGFtcFxcbitcXHQgKiBzbyB0aGUgaGFuZGxlciBkb2VzIG5vdCBydW4gd2hpbGUgd2Ugb3duIHRoZSBzbmFwc2hvdCBGSUZPLlxcbitcXHQgKi9cXG4rXFx0c3RtbWFjX21hY19pcnFfbW9kaWZ5KHByaXYsIFhHTUFDX1RTSUUsIDApO1xcbitcXG4gXFx0bXV0ZXhfbG9jayhcXHUwMDI2cHJpdi1cXHUwMDNlYXV4X3RzX2xvY2spO1xcbiBcXHQvKiBFbmFibGUgSW50ZXJuYWwgc25hcHNob3QgdHJpZ2dlciAqL1xcbiBcXHRhY3JfdmFsdWUgPSByZWFkbChwdHBhZGRyICsgUFRQX0FDUik7XFxuQEAgLTMyOSw2ICszMzYsNyBAQCBzdGF0aWMgaW50IHNtdGdfY3Jvc3N0c3RhbXAoa3RpbWVfdCAqZGV2aWNlLCBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCAqc3lzdGVtLFxcbiBcXHRcXHRicmVhaztcXG4gXFx0ZGVmYXVsdDpcXG4gXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwcml2LVxcdTAwM2VhdXhfdHNfbG9jayk7XFxuK1xcdFxcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdH1cXG4gXFx0d3JpdGVsKGFjcl92YWx1ZSwgcHRwYWRkciArIFBUUF9BQ1IpO1xcbkBAIC0zNTMsNiArMzYxLDcgQEAgc3RhdGljIGludCBzbXRnX2Nyb3NzdHN0YW1wKGt0aW1lX3QgKmRldmljZSwgc3RydWN0IHN5c3RlbV9jb3VudGVydmFsX3QgKnN5c3RlbSxcXG4gXFx0cmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0KHByaXYtXFx1MDAzZWlvYWRkciArIFhHTUFDX0lOVF9TVEFUVVMsIHYsXFxuIFxcdFxcdFxcdFxcdCAodiBcXHUwMDI2IFhHTUFDX0lOVF9UU0lTKSwgMTAwLCAxMDAwMCk7XFxuIFxcdGlmIChyZXQpIHtcXG4rXFx0XFx0c3RtbWFjX21hY19pcnFfbW9kaWZ5KHByaXYsIDAsIFhHTUFDX1RTSUUpO1xcbiBcXHRcXHRuZXRkZXZfZXJyKHByaXYtXFx1MDAzZWRldiwgXFxcIiVzOiBXYWl0IGZvciB0aW1lIHN5bmMgb3BlcmF0aW9uIHRpbWVvdXRcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCAgIF9fZnVuY19fKTtcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG5AQCAtMzc1LDYgKzM4NCw4IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sXFxuIFxcdFxcdHJlYWRfdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNnByaXYtXFx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XFxuIFxcdH1cXG4gXFxuK1xcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcXG4rXFxuIFxcdGdldF9zbXRndGltZShwcml2LVxcdTAwM2VtaWksIFNNVEdfTURJT19BRERSLCBcXHUwMDI2c210Z190aW1lKTtcXG4gXFx0c3lzdGVtLVxcdTAwM2VjeWNsZXMgPSBzbXRnX3RpbWU7XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxcbmluZGV4IGY4YWIzNDdmN2I1YjkuLjAzY2JhZTMyNjk5NWIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmhcXG5AQCAtODcsNyArODcsNyBAQFxcbiAjZGVmaW5lIFhHTUFDX1RTSUVcXHRcXHRcXHRCSVQoMTIpXFxuICNkZWZpbmUgWEdNQUNfTFBJSUVcXHRcXHRcXHRCSVQoNSlcXG4gI2RlZmluZSBYR01BQ19QTVRJRVxcdFxcdFxcdEJJVCg0KVxcbi0jZGVmaW5lIFhHTUFDX0lOVF9ERUZBVUxUX0VOXFx0XFx0KFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUpXFxuKyNkZWZpbmUgWEdNQUNfSU5UX0RFRkFVTFRfRU5cXHRcXHQoWEdNQUNfTFBJSUUgfCBYR01BQ19QTVRJRSB8IFhHTUFDX1RTSUUpXFxuICNkZWZpbmUgWEdNQUNfUXhfVFhfRkxPV19DVFJMKHgpXFx0KDB4MDAwMDAwNzAgKyAoeCkgKiA0KVxcbiAjZGVmaW5lIFhHTUFDX1BUXFx0XFx0XFx0R0VOTUFTSygzMSwgMTYpXFxuICNkZWZpbmUgWEdNQUNfVEZFXFx0XFx0XFx0QklUKDEpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuY1xcbmluZGV4IDFhODhjYmFlZDcwY2EuLjg5MWI3Y2VlYTJkNDUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXFxuQEAgLTExNTQsNiArMTE1NCw0OSBAQCBzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKVxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4rdm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4re1xcbitcXHR1MzIgdHNfc3RhdHVzLCBwZW5kaW5nX3NuYXBzaG90cywgYWNyX3ZhbHVlLCBjaGFubmVsO1xcbitcXHRzdHJ1Y3QgcHRwX2Nsb2NrX2V2ZW50IGV2ZW50O1xcbitcXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbitcXHR1NjQgcHRwX3RpbWU7XFxuK1xcdGludCBpO1xcbitcXG4rXFx0LyogUmVhZCBYR01BQ19USU1FU1RBTVBfU1RBVFVTIHRvIGdldCB0aGUgQVVYIHNuYXBzaG90XFxuK1xcdCAqIGNvdW50LiAgVGhpcyByZWFkIGFsc28gY2xlYXJzIHRoZSBUU0lTIGJpdCBpblxcbitcXHQgKiBYR01BQ19JTlRfU1RBVFVTLlxcbitcXHQgKiBUWCB0aW1lc3RhbXAgcG9sbGluZyBtYXkgaGF2ZSBhbHJlYWR5IGNsZWFyZWQgVFNJU1xcbitcXHQgKiBhbmQgQVVYVFNUUklHLCBzbyByZWx5IG9uIEFUU05TIGluc3RlYWQuXFxuK1xcdCAqIFRYVFNDIGlzIGNsZWFyZWQgYnkgWEdNQUNfVFhUSU1FU1RBTVBfU0VDLCBub3QgYnlcXG4rXFx0ICogdGhpcyByZWdpc3Rlciwgc28gdGhlcmUgaXMgbm8gY29uZmxpY3QuXFxuK1xcdCAqL1xcbitcXHR0c19zdGF0dXMgPSByZWFkbChwcml2LVxcdTAwM2Vpb2FkZHIgKyBYR01BQ19USU1FU1RBTVBfU1RBVFVTKTtcXG4rXFxuK1xcdGlmICghKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWZsYWdzIFxcdTAwMjYgU1RNTUFDX0ZMQUdfRVhUX1NOQVBTSE9UX0VOKSlcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4rXFx0cGVuZGluZ19zbmFwc2hvdHMgPSBGSUVMRF9HRVQoWEdNQUNfVElNRVNUQU1QX0FUU05TX01BU0ssIHRzX3N0YXR1cyk7XFxuK1xcdGlmICghcGVuZGluZ19zbmFwc2hvdHMpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdGFjcl92YWx1ZSA9IHJlYWRsKHByaXYtXFx1MDAzZXB0cGFkZHIgKyBQVFBfQUNSKTtcXG4rXFx0Y2hhbm5lbCA9IEZJRUxEX0dFVChQVFBfQUNSX01BU0ssIGFjcl92YWx1ZSk7XFxuK1xcdGlmICghY2hhbm5lbClcXG4rXFx0XFx0cmV0dXJuO1xcbitcXHRjaGFubmVsID0gaWxvZzIoY2hhbm5lbCk7XFxuK1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgcGVuZGluZ19zbmFwc2hvdHM7IGkrKykge1xcbitcXHRcXHRyZWFkX2xvY2tfaXJxc2F2ZShcXHUwMDI2cHJpdi1cXHUwMDNlcHRwX2xvY2ssIGZsYWdzKTtcXG4rXFx0XFx0c3RtbWFjX2dldF9wdHB0aW1lKHByaXYsIHByaXYtXFx1MDAzZXB0cGFkZHIsIFxcdTAwMjZwdHBfdGltZSk7XFxuK1xcdFxcdHJlYWRfdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNnByaXYtXFx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XFxuK1xcbitcXHRcXHRldmVudC50eXBlID0gUFRQX0NMT0NLX0VYVFRTO1xcbitcXHRcXHRldmVudC5pbmRleCA9IGNoYW5uZWw7XFxuK1xcdFxcdGV2ZW50LnRpbWVzdGFtcCA9IHB0cF90aW1lO1xcbitcXHRcXHRwdHBfY2xvY2tfZXZlbnQocHJpdi1cXHUwMDNlcHRwX2Nsb2NrLCBcXHUwMDI2ZXZlbnQpO1xcbitcXHR9XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgZHd4Z21hYzJfZmxleF9wcHNfY29uZmlnKHZvaWQgX19pb21lbSAqaW9hZGRyLCBpbnQgaW5kZXgsXFxuIFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Bwc19jZmcgKmNmZywgYm9vbCBlbmFibGUsXFxuIFxcdFxcdFxcdFxcdCAgICB1MzIgc3ViX3NlY29uZF9pbmMsIHUzMiBzeXN0aW1lX2ZsYWdzKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmNcXG5pbmRleCAyNjU2NzExNzBiZjZlLi5lYmE4NzQxMGY5ODVhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xcbkBAIC0yNTgsNyArMjU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XFxuIFxcdFxcdC5kbWEgPSBcXHUwMDI2ZHd4Z21hYzIxMF9kbWFfb3BzLFxcbiBcXHRcXHQubWFjID0gXFx1MDAyNmR3eGdtYWMyMTBfb3BzLFxcbiBcXHRcXHQudmxhbiA9IFxcdTAwMjZkd3hnbWFjMjEwX3ZsYW5fb3BzLFxcbi1cXHRcXHQuaHd0aW1lc3RhbXAgPSBcXHUwMDI2c3RtbWFjX3B0cCxcXG4rXFx0XFx0Lmh3dGltZXN0YW1wID0gXFx1MDAyNmR3eGdtYWMyX3B0cCxcXG4gXFx0XFx0LnB0cCA9IFxcdTAwMjZzdG1tYWNfcHRwX2Nsb2NrX29wcyxcXG4gXFx0XFx0Lm1vZGUgPSBOVUxMLFxcbiBcXHRcXHQudGMgPSBcXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxcbkBAIC0yODAsNyArMjgwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XFxuIFxcdFxcdC5kbWEgPSBcXHUwMDI2ZHd4Z21hYzIxMF9kbWFfb3BzLFxcbiBcXHRcXHQubWFjID0gXFx1MDAyNmR3eGxnbWFjMl9vcHMsXFxuIFxcdFxcdC52bGFuID0gXFx1MDAyNmR3eGxnbWFjMl92bGFuX29wcyxcXG4tXFx0XFx0Lmh3dGltZXN0YW1wID0gXFx1MDAyNnN0bW1hY19wdHAsXFxuK1xcdFxcdC5od3RpbWVzdGFtcCA9IFxcdTAwMjZkd3hnbWFjMl9wdHAsXFxuIFxcdFxcdC5wdHAgPSBcXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXFxuIFxcdFxcdC5tb2RlID0gTlVMTCxcXG4gXFx0XFx0LnRjID0gXFx1MDAyNmR3bWFjNTEwX3RjX29wcyxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oXFxuaW5kZXggZmUxOGY5OGZhZTQ1MS4uNWEzMDhlNzlkYjRhOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcXG5AQCAtNjcyLDYgKzY3Miw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzIG5kZXNjX29wcztcXG4gXFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIHN0bW1hY19wdHA7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3bWFjMTAwMF9wdHA7XFxuK2V4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3eGdtYWMyX3B0cDtcXG4gXFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzIHJpbmdfbW9kZV9vcHM7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzIGNoYWluX21vZGVfb3BzO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXFxuaW5kZXggYjlhOTg1ZmE3NzJjOS4uOWQ3ZDI0MjU5YWJkNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXFxuQEAgLTI3NywzICsyNzcsMTUgQEAgY29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd21hYzEwMDBfcHRwID0ge1xcbiBcXHQuZ2V0X3B0cHRpbWUgPSBkd21hYzEwMDBfZ2V0X3B0cHRpbWUsXFxuIFxcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXFxuIH07XFxuK1xcbitjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3eGdtYWMyX3B0cCA9IHtcXG4rXFx0LmNvbmZpZ19od190c3RhbXBpbmcgPSBjb25maWdfaHdfdHN0YW1waW5nLFxcbitcXHQuaW5pdF9zeXN0aW1lID0gaW5pdF9zeXN0aW1lLFxcbitcXHQuY29uZmlnX3N1Yl9zZWNvbmRfaW5jcmVtZW50ID0gY29uZmlnX3N1Yl9zZWNvbmRfaW5jcmVtZW50LFxcbitcXHQuY29uZmlnX2FkZGVuZCA9IGNvbmZpZ19hZGRlbmQsXFxuK1xcdC5hZGp1c3Rfc3lzdGltZSA9IGFkanVzdF9zeXN0aW1lLFxcbitcXHQuZ2V0X3N5c3RpbWUgPSBnZXRfc3lzdGltZSxcXG4rXFx0LmdldF9wdHB0aW1lID0gZ2V0X3B0cHRpbWUsXFxuK1xcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCxcXG4rXFx0Lmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSA9IGh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSxcXG4rfTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oXFxuaW5kZXggM2ZlMGUzYTgwZTgwYS4uZGFkZTA5NjE0MTYzYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhcXG5AQCAtMTAzLDYgKzEwMyw3IEBAIGludCBkd21hYzEwMDBfcHRwX2VuYWJsZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcXG4gXFxuIHZvaWQgZHdtYWMxMDAwX2dldF9wdHB0aW1lKHZvaWQgX19pb21lbSAqcHRwYWRkciwgdTY0ICpwdHBfdGltZSk7XFxuIHZvaWQgZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG4rdm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuIFxcbiBleHRlcm4gY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIHN0bW1hY19wdHBfY2xvY2tfb3BzO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIGR3bWFjMTAwMF9wdHBfY2xvY2tfb3BzO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozODozNy43NjQzMTIyMjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjEyNjYxNDY1MjQ0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDI5YTI0YjNkODU0NThhMmEzYjcxMzNjNDQ5ZWE3MGFlNjE2ZDllNTZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IFNlcCAzIDA5OjM4OjM2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG5pbmRleCAxZDdmMGE1N2QyODg5Li5hNGQwMGJmODE0MjM3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbkBAIC0zMTAsNiArMzEwLDEzIEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sXG4gXHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWZsYWdzIFx1MDAyNiBTVE1NQUNfRkxBR19FWFRfU05BUFNIT1RfRU4pXG4gXHRcdHJldHVybiAtRUJVU1k7XG4gXG4rXHQvKiBUaGUgWEdNQUMgdGltZXN0YW1wIGludGVycnVwdCBoYW5kbGVyIGNsZWFycyBUU0lTIGJ5IHJlYWRpbmdcbitcdCAqIFhHTUFDX1RJTUVTVEFNUF9TVEFUVVMsIHdoaWNoIHdvdWxkIHJhY2Ugd2l0aCB0aGUgVFNJUyBwb2xsXG4rXHQgKiBiZWxvdy4gIE1hc2sgWEdNQUNfVFNJRSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjcm9zcy10aW1lc3RhbXBcbitcdCAqIHNvIHRoZSBoYW5kbGVyIGRvZXMgbm90IHJ1biB3aGlsZSB3ZSBvd24gdGhlIHNuYXBzaG90IEZJRk8uXG4rXHQgKi9cbitcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCBYR01BQ19UU0lFLCAwKTtcbitcbiBcdG11dGV4X2xvY2soXHUwMDI2cHJpdi1cdTAwM2VhdXhfdHNfbG9jayk7XG4gXHQvKiBFbmFibGUgSW50ZXJuYWwgc25hcHNob3QgdHJpZ2dlciAqL1xuIFx0YWNyX3ZhbHVlID0gcmVhZGwocHRwYWRkciArIFBUUF9BQ1IpO1xuQEAgLTMyOSw2ICszMzYsNyBAQCBzdGF0aWMgaW50IHNtdGdfY3Jvc3N0c3RhbXAoa3RpbWVfdCAqZGV2aWNlLCBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCAqc3lzdGVtLFxuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4gXHRcdG11dGV4X3VubG9jayhcdTAwMjZwcml2LVx1MDAzZWF1eF90c19sb2NrKTtcbitcdFx0c3RtbWFjX21hY19pcnFfbW9kaWZ5KHByaXYsIDAsIFhHTUFDX1RTSUUpO1xuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbiBcdHdyaXRlbChhY3JfdmFsdWUsIHB0cGFkZHIgKyBQVFBfQUNSKTtcbkBAIC0zNTMsNiArMzYxLDcgQEAgc3RhdGljIGludCBzbXRnX2Nyb3NzdHN0YW1wKGt0aW1lX3QgKmRldmljZSwgc3RydWN0IHN5c3RlbV9jb3VudGVydmFsX3QgKnN5c3RlbSxcbiBcdHJldCA9IHJlYWRsX3BvbGxfdGltZW91dChwcml2LVx1MDAzZWlvYWRkciArIFhHTUFDX0lOVF9TVEFUVVMsIHYsXG4gXHRcdFx0XHQgKHYgXHUwMDI2IFhHTUFDX0lOVF9UU0lTKSwgMTAwLCAxMDAwMCk7XG4gXHRpZiAocmV0KSB7XG4rXHRcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcbiBcdFx0bmV0ZGV2X2Vycihwcml2LVx1MDAzZWRldiwgXCIlczogV2FpdCBmb3IgdGltZSBzeW5jIG9wZXJhdGlvbiB0aW1lb3V0XFxuXCIsXG4gXHRcdFx0ICAgX19mdW5jX18pO1xuIFx0XHRyZXR1cm4gcmV0O1xuQEAgLTM3NSw2ICszODQsOCBAQCBzdGF0aWMgaW50IHNtdGdfY3Jvc3N0c3RhbXAoa3RpbWVfdCAqZGV2aWNlLCBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCAqc3lzdGVtLFxuIFx0XHRyZWFkX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnByaXYtXHUwMDNlcHRwX2xvY2ssIGZsYWdzKTtcbiBcdH1cbiBcbitcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcbitcbiBcdGdldF9zbXRndGltZShwcml2LVx1MDAzZW1paSwgU01UR19NRElPX0FERFIsIFx1MDAyNnNtdGdfdGltZSk7XG4gXHRzeXN0ZW0tXHUwMDNlY3ljbGVzID0gc210Z190aW1lO1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oXG5pbmRleCBmOGFiMzQ3ZjdiNWI5Li4wM2NiYWUzMjY5OTViIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxuQEAgLTg3LDcgKzg3LDcgQEBcbiAjZGVmaW5lIFhHTUFDX1RTSUVcdFx0XHRCSVQoMTIpXG4gI2RlZmluZSBYR01BQ19MUElJRVx0XHRcdEJJVCg1KVxuICNkZWZpbmUgWEdNQUNfUE1USUVcdFx0XHRCSVQoNClcbi0jZGVmaW5lIFhHTUFDX0lOVF9ERUZBVUxUX0VOXHRcdChYR01BQ19MUElJRSB8IFhHTUFDX1BNVElFKVxuKyNkZWZpbmUgWEdNQUNfSU5UX0RFRkFVTFRfRU5cdFx0KFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUgfCBYR01BQ19UU0lFKVxuICNkZWZpbmUgWEdNQUNfUXhfVFhfRkxPV19DVFJMKHgpXHQoMHgwMDAwMDA3MCArICh4KSAqIDQpXG4gI2RlZmluZSBYR01BQ19QVFx0XHRcdEdFTk1BU0soMzEsIDE2KVxuICNkZWZpbmUgWEdNQUNfVEZFXHRcdFx0QklUKDEpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXG5pbmRleCAxYTg4Y2JhZWQ3MGNhLi44OTFiN2NlZWEyZDQ1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmNcbkBAIC0xMTU0LDYgKzExNTQsNDkgQEAgc3RhdGljIGludCBkd3hnbWFjMl9nZXRfbWFjX3R4X3RpbWVzdGFtcChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTY0ICp0cylcbiBcdHJldHVybiAwO1xuIH1cbiBcbit2b2lkIGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuK3tcbitcdHUzMiB0c19zdGF0dXMsIHBlbmRpbmdfc25hcHNob3RzLCBhY3JfdmFsdWUsIGNoYW5uZWw7XG4rXHRzdHJ1Y3QgcHRwX2Nsb2NrX2V2ZW50IGV2ZW50O1xuK1x0dW5zaWduZWQgbG9uZyBmbGFncztcbitcdHU2NCBwdHBfdGltZTtcbitcdGludCBpO1xuK1xuK1x0LyogUmVhZCBYR01BQ19USU1FU1RBTVBfU1RBVFVTIHRvIGdldCB0aGUgQVVYIHNuYXBzaG90XG4rXHQgKiBjb3VudC4gIFRoaXMgcmVhZCBhbHNvIGNsZWFycyB0aGUgVFNJUyBiaXQgaW5cbitcdCAqIFhHTUFDX0lOVF9TVEFUVVMuXG4rXHQgKiBUWCB0aW1lc3RhbXAgcG9sbGluZyBtYXkgaGF2ZSBhbHJlYWR5IGNsZWFyZWQgVFNJU1xuK1x0ICogYW5kIEFVWFRTVFJJRywgc28gcmVseSBvbiBBVFNOUyBpbnN0ZWFkLlxuK1x0ICogVFhUU0MgaXMgY2xlYXJlZCBieSBYR01BQ19UWFRJTUVTVEFNUF9TRUMsIG5vdCBieVxuK1x0ICogdGhpcyByZWdpc3Rlciwgc28gdGhlcmUgaXMgbm8gY29uZmxpY3QuXG4rXHQgKi9cbitcdHRzX3N0YXR1cyA9IHJlYWRsKHByaXYtXHUwMDNlaW9hZGRyICsgWEdNQUNfVElNRVNUQU1QX1NUQVRVUyk7XG4rXG4rXHRpZiAoIShwcml2LVx1MDAzZXBsYXQtXHUwMDNlZmxhZ3MgXHUwMDI2IFNUTU1BQ19GTEFHX0VYVF9TTkFQU0hPVF9FTikpXG4rXHRcdHJldHVybjtcbitcbitcdHBlbmRpbmdfc25hcHNob3RzID0gRklFTERfR0VUKFhHTUFDX1RJTUVTVEFNUF9BVFNOU19NQVNLLCB0c19zdGF0dXMpO1xuK1x0aWYgKCFwZW5kaW5nX3NuYXBzaG90cylcbitcdFx0cmV0dXJuO1xuK1xuK1x0YWNyX3ZhbHVlID0gcmVhZGwocHJpdi1cdTAwM2VwdHBhZGRyICsgUFRQX0FDUik7XG4rXHRjaGFubmVsID0gRklFTERfR0VUKFBUUF9BQ1JfTUFTSywgYWNyX3ZhbHVlKTtcbitcdGlmICghY2hhbm5lbClcbitcdFx0cmV0dXJuO1xuK1x0Y2hhbm5lbCA9IGlsb2cyKGNoYW5uZWwpO1xuK1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcGVuZGluZ19zbmFwc2hvdHM7IGkrKykge1xuK1x0XHRyZWFkX2xvY2tfaXJxc2F2ZShcdTAwMjZwcml2LVx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XG4rXHRcdHN0bW1hY19nZXRfcHRwdGltZShwcml2LCBwcml2LVx1MDAzZXB0cGFkZHIsIFx1MDAyNnB0cF90aW1lKTtcbitcdFx0cmVhZF91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZwcml2LVx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XG4rXG4rXHRcdGV2ZW50LnR5cGUgPSBQVFBfQ0xPQ0tfRVhUVFM7XG4rXHRcdGV2ZW50LmluZGV4ID0gY2hhbm5lbDtcbitcdFx0ZXZlbnQudGltZXN0YW1wID0gcHRwX3RpbWU7XG4rXHRcdHB0cF9jbG9ja19ldmVudChwcml2LVx1MDAzZXB0cF9jbG9jaywgXHUwMDI2ZXZlbnQpO1xuK1x0fVxuK31cbitcbiBzdGF0aWMgaW50IGR3eGdtYWMyX2ZsZXhfcHBzX2NvbmZpZyh2b2lkIF9faW9tZW0gKmlvYWRkciwgaW50IGluZGV4LFxuIFx0XHRcdFx0ICAgIHN0cnVjdCBzdG1tYWNfcHBzX2NmZyAqY2ZnLCBib29sIGVuYWJsZSxcbiBcdFx0XHRcdCAgICB1MzIgc3ViX3NlY29uZF9pbmMsIHUzMiBzeXN0aW1lX2ZsYWdzKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xuaW5kZXggMjY1NjcxMTcwYmY2ZS4uZWJhODc0MTBmOTg1YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jXG5AQCAtMjU4LDcgKzI1OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkge1xuIFx0XHQuZG1hID0gXHUwMDI2ZHd4Z21hYzIxMF9kbWFfb3BzLFxuIFx0XHQubWFjID0gXHUwMDI2ZHd4Z21hYzIxMF9vcHMsXG4gXHRcdC52bGFuID0gXHUwMDI2ZHd4Z21hYzIxMF92bGFuX29wcyxcbi1cdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2c3RtbWFjX3B0cCxcbitcdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2ZHd4Z21hYzJfcHRwLFxuIFx0XHQucHRwID0gXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXG4gXHRcdC5tb2RlID0gTlVMTCxcbiBcdFx0LnRjID0gXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxuQEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19od2lmX2VudHJ5IHtcbiBcdFx0LmRtYSA9IFx1MDAyNmR3eGdtYWMyMTBfZG1hX29wcyxcbiBcdFx0Lm1hYyA9IFx1MDAyNmR3eGxnbWFjMl9vcHMsXG4gXHRcdC52bGFuID0gXHUwMDI2ZHd4bGdtYWMyX3ZsYW5fb3BzLFxuLVx0XHQuaHd0aW1lc3RhbXAgPSBcdTAwMjZzdG1tYWNfcHRwLFxuK1x0XHQuaHd0aW1lc3RhbXAgPSBcdTAwMjZkd3hnbWFjMl9wdHAsXG4gXHRcdC5wdHAgPSBcdTAwMjZzdG1tYWNfcHRwX2Nsb2NrX29wcyxcbiBcdFx0Lm1vZGUgPSBOVUxMLFxuIFx0XHQudGMgPSBcdTAwMjZkd21hYzUxMF90Y19vcHMsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oXG5pbmRleCBmZTE4Zjk4ZmFlNDUxLi41YTMwOGU3OWRiNGE5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcbkBAIC02NzIsNiArNjcyLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgbmRlc2Nfb3BzO1xuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIHN0bW1hY19wdHA7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHdtYWMxMDAwX3B0cDtcbitleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd3hnbWFjMl9wdHA7XG4gXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgcmluZ19tb2RlX29wcztcbiBleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyBjaGFpbl9tb2RlX29wcztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXG5pbmRleCBiOWE5ODVmYTc3MmM5Li45ZDdkMjQyNTlhYmQ0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXG5AQCAtMjc3LDMgKzI3NywxNSBAQCBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3bWFjMTAwMF9wdHAgPSB7XG4gXHQuZ2V0X3B0cHRpbWUgPSBkd21hYzEwMDBfZ2V0X3B0cHRpbWUsXG4gXHQudGltZXN0YW1wX2ludGVycnVwdCA9IGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0LFxuIH07XG4rXG4rY29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd3hnbWFjMl9wdHAgPSB7XG4rXHQuY29uZmlnX2h3X3RzdGFtcGluZyA9IGNvbmZpZ19od190c3RhbXBpbmcsXG4rXHQuaW5pdF9zeXN0aW1lID0gaW5pdF9zeXN0aW1lLFxuK1x0LmNvbmZpZ19zdWJfc2Vjb25kX2luY3JlbWVudCA9IGNvbmZpZ19zdWJfc2Vjb25kX2luY3JlbWVudCxcbitcdC5jb25maWdfYWRkZW5kID0gY29uZmlnX2FkZGVuZCxcbitcdC5hZGp1c3Rfc3lzdGltZSA9IGFkanVzdF9zeXN0aW1lLFxuK1x0LmdldF9zeXN0aW1lID0gZ2V0X3N5c3RpbWUsXG4rXHQuZ2V0X3B0cHRpbWUgPSBnZXRfcHRwdGltZSxcbitcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCxcbitcdC5od3RzdGFtcF9jb3JyZWN0X2xhdGVuY3kgPSBod3RzdGFtcF9jb3JyZWN0X2xhdGVuY3ksXG4rfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhcbmluZGV4IDNmZTBlM2E4MGU4MGEuLmRhZGUwOTYxNDE2M2IgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaFxuQEAgLTEwMyw2ICsxMDMsNyBAQCBpbnQgZHdtYWMxMDAwX3B0cF9lbmFibGUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXG4gXG4gdm9pZCBkd21hYzEwMDBfZ2V0X3B0cHRpbWUodm9pZCBfX2lvbWVtICpwdHBhZGRyLCB1NjQgKnB0cF90aW1lKTtcbiB2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG4rdm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG4gXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBzdG1tYWNfcHRwX2Nsb2NrX29wcztcbiBleHRlcm4gY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIGR3bWFjMTAwMF9wdHBfY2xvY2tfb3BzO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzg6MzcuNzY0MzEzOTU3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDMwMjc3MjI1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGluIGZyb250IG9mIG1lLCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCBpZiBpdCdzIGZ1enotd29ydGh5LiBCZWZvcmUgSSBkaXZlIHRvbyBkZWVwIGludG8gdGhlIGNvZGUsIEkgbmVlZCB0byBnZXQgYSBoaWdoLWxldmVsIHZpZXcgb2YgdGhlIGxhbmRzY2FwZS4gRmlyc3QsIGxldCdzIGxvb2sgYXQgd2hhdCdzIGJlZW4gdG91Y2hlZC4gSXQgbG9va3MgbGlrZSB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIGBzdG1tYWNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGl0cyBpbnRlcmFjdGlvbiB3aXRoIHZhcmlvdXMgUEhZL01BQyBjb21wb25lbnRzOiBgZHdtYWMtc29jZnBnYS5jYCwgYGR3eGdtYWMyLmhgLCBgZHd4Z21hYzJfY29yZS5jYCwgYGh3aWYuY2AsIGBod2lmLmhgLCBgc3RtbWFjX2h3dHN0YW1wLmNgLCBhbmQgYHN0bW1hY19wdHAuaGAuXG5cbk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBpczogd2hhdCBpcyB0aGUgbmF0dXJlIG9mIHRoaXMgYHN0bW1hY2AgLyBgZHdtYWNgPyBDYW4gdGhlc2UgY29tcG9uZW50cyBhY3R1YWxseSBiZSBleGVyY2lzZWQgYW5kIHRlc3RlZD8gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXNlIGFyZSBQQ0ktYmFzZWQsIHBsYXRmb3JtLWJhc2VkLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseS4gRG9lcyBgc3RtbWFjYCBoYXZlIFBDSSBnbHVlLCBsaWtlIGBzdG1tYWNfcGNpYCBvciBzaW1pbGFyIGRyaXZlcnM/IE9yIGFyZSB0aGVzZSBzcGVjaWZpY2FsbHkgZW1iZWRkZWQgRXRoZXJuZXQgY29udHJvbGxlcnMsIHBlcmhhcHMgcGh5c2ljYWwtb25seT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgYGR3eGdtYWMyYCBpcyB1c2VkIHdpdGggUENJIG9yIHBsYXRmb3JtIGRldmljZXMuIEFuZCB0aGVuLCB0aGUgY3JpdGljYWwgcXVlc3Rpb24sIHdoYXQgYWJvdXQgUUVNVT8gQ2FuIEkgZWFzaWx5IGVtdWxhdGUgdGhpcyBzZXR1cD8gSWYgSSBjYW4ndCBlbXVsYXRlIGl0LCB0aGlzIGlzIGdvaW5nIHRvIGJlIGZhciBtb3JlIGRpZmZpY3VsdC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBrZXJuZWwgc291cmNlIGFuZCBzZWFyY2ggZm9yIHRoZSBgc3RtbWFjYCBkcml2ZXJzIGFuZCB0aGVpciBhc3NvY2lhdGVkIEtjb25maWcgb3B0aW9ucy4gVGhhdCB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlc2UgY29tcG9uZW50cyBhcmUgY29uZmlndXJlZCBhbmQgaG93IHRoZXkgYXJlIHVzZWQuIFRoaXMgd2lsbCBoZWxwIG1lIGV2YWx1YXRlIHdoZXRoZXIgSSBjYW4gZWFzaWx5IHJlcHJvZHVjZSBhIHRlc3QgZW52aXJvbm1lbnQgZm9yIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxMzYsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNDEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOToyMC43OTIwMzgzOTlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ5MDk2NDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNUTU1BQ19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTg9aWYgU1RNTUFDX0VUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTpjb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBsYXRmb3JtIGJ1cyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzE9ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOToyMC44NDY5NTI1OTdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0ODQ0OTEzNTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmV2aWV3aW5nIHRoaXMgY29kZTpcblxuKipEaXZpbmcgaW50byB0aGUgRFdNQUMgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIHRpbWUgdG8gZGlnIGludG8gdGhpcyBgRFdNQUNfU09DRlBHQWAgYnVzaW5lc3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGRyaXZlciBpcyBjb25maWd1cmVkLCBzbyBJJ2xsIHN0YXJ0IGJ5IGNoZWNraW5nIHRoZSByZWxldmFudCBmaWxlcy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiBgZHdtYWMtc29jZnBnYS5jYCwgc2luY2UgdGhhdCBzZWVtcyB0byBiZSB0aGUgY29yZSBvZiBpdCwgYW5kIHRoZW4gSSdsbCBhbHNvIGdsYW5jZSBhdCBgZHd4Z21hY2Ag4oCTIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBjcm9zcy1jb21wYXRpYmlsaXR5IG9yIGRlcGVuZGVuY2llcy4gVGhlIG1haW4gZ29hbCBoZXJlIGlzIHRvIGdldCBhIHNvbGlkIGdyYXNwIG9uIHRoZSBjb25maWd1cmF0aW9uLiBNeSBtYWluIHN0b3Agd2lsbCBiZSB0aGUgYEtjb25maWdgIGZpbGVzIHRoYXQgY29udHJvbCBgRFdNQUNfU09DRlBHQWAgYW5kIG90aGVyIHNpbWlsYXIgYHN0bW1hY2AgY29uZmlndXJhdGlvbnMuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGRlY2lzaW9uLW1ha2luZyBoYXBwZW5zLiBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGRlcGVuZGVuY2llcywgb3B0aW9ucywgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NDIwLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MjUuNjkxODY4MjUyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyOTE4MDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlNPQ0ZQR0FcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjk9Y29uZmlnIFNUTU1BQ19QTEFURk9STVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNS1cXHQgIFRoaXMgaXMgdGhlIGRyaXZlciB1c2VkIG9uIHNldmVyYWwgU29DczpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM2OlxcdCAgU1RpLCBBbGx3aW5uZXIsIEFtbG9naWMgTWVzb24sIEFsdGVyYSBTT0NGUEdBLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjA0OlxcdHRyaXN0YXRlIFxcXCJTT0NGUEdBIGR3bWFjIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDU6XFx0ZGVmYXVsdCBBUkNIX0lOVEVMX1NPQ0ZQR0FcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNjpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjA3LVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxMS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTI6XFx0ICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVyIG9uIEFsdGVyYSBTT0NGUEdBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTQ6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNS1cXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0yOD1vYmotJChDT05GSUdfRFdNQUNfUzMyKVxcdFxcdCs9IGR3bWFjLXMzMi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0RXTUFDX1NPQ0ZQR0EpXFx0Kz0gZHdtYWMtYWx0ci1zb2NmcGdhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0zMC1vYmotJChDT05GSUdfRFdNQUNfU09QSEdPKVxcdCs9IGR3bWFjLXNvcGhnby5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM5OjI1Ljc0NDc5MzA2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NjM5Nzc3NzE5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgZHd4Z21hYzIgRHJpdmVyJ3MgQ2FwYWJpbGl0aWVzKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIHNwZWNpZmljIGZ1bmN0aW9ucyDigJMgYGR3eGdtYWMyMTBfb3BzYCwgYGR3eGdtYWMyX3B0cGAsIGFuZCBgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdGAg4oCTIGFyZSB1c2VkIHdpdGhpbiB0aGUgYGR3eGdtYWMyYCBkcml2ZXIgY29udGV4dC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byB1c2UgdGhlc2UgZnVuY3Rpb24gbmFtZXMgYXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciBhIGRlZXBlciBpbnZlc3RpZ2F0aW9uLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB0aGVpciBwdXJwb3NlLCBob3cgdGhleSdyZSBjYWxsZWQsIHdoYXQgZGF0YSB0aGV5IG9wZXJhdGUgb24sIGFuZCBlc3NlbnRpYWxseSwgd2hhdCB0aGVpciByb2xlIGlzIGluIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVy4oCZcyBmdW5jdGlvbmFsaXR5LiBBcmUgdGhleSBjb3JlIG9wZXJhdGlvbnMsIHJlbGF0ZWQgdG8gUFRQIChQcmVjaXNpb24gVGltZSBQcm90b2NvbCksIG9yIGhhbmRsaW5nIHNwZWNpZmljIGludGVycnVwdCBzY2VuYXJpb3M/IERpdmluZyBpbnRvIHRoZSBjb2RlYmFzZSB0byB0cmFjZSB0aGVzZSBpZGVudGlmaWVycyBpcyB0aGUgb2J2aW91cyBmaXJzdCBzdGVwLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgZWFjaCBvZiB0aGVzZSBjb250cmlidXRlcyB0byB0aGUgb3ZlcmFsbCBiZWhhdmlvciBvZiB0aGUgRXRoZXJuZXQgY29udHJvbGxlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NzM1NiwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM5OjMyLjE0MjU3MzIxMVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTE2MDI5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkd3hnbWFjMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3MjAgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTM9c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1xcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTctXFx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcXHQgICAgICBzdG1tYWNfdGMubyBkd3hnbWFjMl9jb3JlLm8gZHd4Z21hYzJfZG1hLm8gZHd4Z21hYzJfZGVzY3MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtOS1cXHQgICAgICBzdG1tYWNfeGRwLm8gc3RtbWFjX2VzdC5vIHN0bW1hY19mcGUubyBzdG1tYWNfdmxhbi5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTY1Mj1pbnQgZHdtYWM0X3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUzOmludCBkd3hnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1NC1pbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjE5OiNpbmNsdWRlIFxcXCJkd3hnbWFjMi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy0yMC0jaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTQ2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjQ2NTpleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19vcHMgZHd4Z21hYzIxMF9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaC00NjYtZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzIGR3eGxnbWFjMl9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0Njc6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZG1hX29wcyBkd3hnbWFjMjEwX2RtYV9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0Njg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgZHd4Z21hYzIxMF9kZXNjX29wcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTQ2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNC0jaW5jbHVkZSBcXFwiZHd4bGdtYWMyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1OiNpbmNsdWRlIFxcXCJkd3hnbWFjMi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTc6c3RhdGljIHZvaWQgZHd4Z21hYzJfY29yZV9pbml0KHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xOC1cXHRcXHRcXHQgICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MzE6c3RhdGljIHZvaWQgZHd4Z21hYzJfaXJxX21vZGlmeShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGRpc2FibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTMyLVxcdFxcdFxcdFxcdHUzMiBlbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3VwZGF0ZV9jYXBzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1MTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfbWFjKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGVuYWJsZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTY3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo2ODpzdGF0aWMgaW50IGR3eGdtYWMyX3J4X2lwYyhzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNjkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTgyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo4MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9yeF9xdWV1ZV9lbmFibGUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHU4IG1vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTg0LVxcdFxcdFxcdFxcdCAgICAgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo5NzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9yeF9xdWV1ZV9wcmlvKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgcHJpbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtOTgtXFx0XFx0XFx0XFx0ICAgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTM4OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3R4X3F1ZXVlX3ByaW8oc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBwcmlvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzktXFx0XFx0XFx0XFx0ICAgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3J4X3F1ZXVlX3JvdXRpbmcoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1Ni1cXHRcXHRcXHRcXHQgICAgICB1OCBwYWNrZXQsIHUzMiBxdWV1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE2MTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIGR3eGdtYWMyX3JvdXRlX3Bvc3NpYmlsaXRpZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTYyLVxcdFxcdHsgWEdNQUNfQVZDUFEsIFhHTUFDX0FWQ1BRX1NISUZUIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTcxLVxcdC8qIHJvdXRpbmcgY29uZmlndXJhdGlvbiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNzI6XFx0dmFsdWUgXFx1MDAyNj0gfmR3eGdtYWMyX3JvdXRlX3Bvc3NpYmlsaXRpZXNbcGFja2V0IC0gMV0ucmVnX21hc2s7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE3MzpcXHR2YWx1ZSB8PSAocXVldWUgXFx1MDAzY1xcdTAwM2MgZHd4Z21hYzJfcm91dGVfcG9zc2liaWxpdGllc1twYWNrZXQgLSAxXS5yZWdfc2hpZnQpIFxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTc0OlxcdFxcdCBkd3hnbWFjMl9yb3V0ZV9wb3NzaWJpbGl0aWVzW3BhY2tldCAtIDFdLnJlZ19tYXNrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxODU6c3RhdGljIHZvaWQgZHd4Z21hYzJfcHJvZ19tdGxfcnhfYWxnb3JpdGhtcyhzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTg2LVxcdFxcdFxcdFxcdFxcdCAgICB1MzIgcnhfYWxnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTIwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MjA3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3Byb2dfbXRsX3R4X2FsZ29yaXRobXMoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTIwOC1cXHRcXHRcXHRcXHRcXHQgICAgdTMyIHR4X2FsZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0yNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI0NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfbXRsX3R4X3F1ZXVlX3dlaWdodChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI0Ni1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MjU0OnN0YXRpYyB2b2lkIGR3eGdtYWMyX21hcF9tdGxfdG9fZG1hKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgcXVldWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI1NS1cXHRcXHRcXHRcXHQgICAgdTMyIGNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoyNzE6c3RhdGljIHZvaWQgZHd4Z21hYzJfY29uZmlnX2NicyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI3Mi1cXHRcXHRcXHRcXHRzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0yODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI5MDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9kdW1wX3JlZ3Moc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiAqcmVnX3NwYWNlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0yOTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6Mjk5OnN0YXRpYyBpbnQgZHd4Z21hYzJfaG9zdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzAwLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzICp4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTMzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MzM2OnN0YXRpYyBpbnQgZHd4Z21hYzJfaG9zdF9tdGxfaXJxX3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTMzNy1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzozNTY6c3RhdGljIHZvaWQgZHd4Z21hYzJfZmxvd19jdHJsKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1bnNpZ25lZCBpbnQgZHVwbGV4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zNTctXFx0XFx0XFx0ICAgICAgIHVuc2lnbmVkIGludCBmYywgdW5zaWduZWQgaW50IHBhdXNlX3RpbWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzozNzc6c3RhdGljIHZvaWQgZHd4Z21hYzJfcG10KHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1bnNpZ25lZCBsb25nIG1vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTM3OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzozOTU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzk2LVxcdFxcdFxcdFxcdCAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDA4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo0MDk6c3RhdGljIHZvaWQgZHd4Z21hYzJfZ2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDEwLVxcdFxcdFxcdFxcdCAgIHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00MjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQyODpzdGF0aWMgaW50IGR3eGdtYWMyX3NldF9scGlfbW9kZShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDI5LVxcdFxcdFxcdFxcdCBlbnVtIHN0bW1hY19scGlfbW9kZSBtb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQ1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NDUyOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9lZWVfcGxzKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCBpbnQgbGluaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ2NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfZWVlX3RpbWVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCBpbnQgbHMsIGludCB0dylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ3NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfbWNoYXNoKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1MzIgKm1jZmlsdGVyYml0cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDc1LVxcdFxcdFxcdFxcdGludCBtY2JpdHNsb2cyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQ5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NDk3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQ5OC1cXHRcXHRcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTUzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTMyOlxcdGR3eGdtYWMyX3NldF9tY2hhc2goaW9hZGRyLCBtY19maWx0ZXIsIG1jYml0c2xvZzIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01MzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTQxLVxcdFxcdG5ldGRldl9mb3JfZWFjaF91Y19hZGRyKGhhLCBkZXYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTQyOlxcdFxcdFxcdGR3eGdtYWMyX3NldF91bWFjX2FkZHIoaHcsIGhhLVxcdTAwM2VhZGRyLCByZWcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01NDMtXFx0XFx0XFx0cmVnKys7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1NTU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X21hY19sb29wYmFjayh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1Njc6c3RhdGljIGludCBkd3hnbWFjMl9yc3Nfd3JpdGVfcmVnKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGlzX2tleSwgaW50IGlkeCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTY4LVxcdFxcdFxcdFxcdCAgdTMyIHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjU4MjpzdGF0aWMgaW50IGR3eGdtYWMyX3Jzc19jb25maWd1cmUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU4My1cXHRcXHRcXHRcXHQgIHN0cnVjdCBzdG1tYWNfcnNzICpjZmcsIHUzMiBudW1fcnhxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU5Ny1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgKEFSUkFZX1NJWkUoY2ZnLVxcdTAwM2VrZXkpIC8gc2l6ZW9mKHUzMikpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTk4OlxcdFxcdHJldCA9IGR3eGdtYWMyX3Jzc193cml0ZV9yZWcoaW9hZGRyLCB0cnVlLCBpLCBrZXlbaV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01OTktXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy02MDMtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoY2ZnLVxcdTAwM2V0YWJsZSk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo2MDQ6XFx0XFx0cmV0ID0gZHd4Z21hYzJfcnNzX3dyaXRlX3JlZyhpb2FkZHIsIGZhbHNlLCBpLCBjZmctXFx1MDAzZXRhYmxlW2ldKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNjA1LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNjA5LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBudW1fcnhxOyBpKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjYxMDpcXHRcXHRkd3hnbWFjMl9tYXBfbXRsX3RvX2RtYShodywgaSwgWEdNQUNfUURETUFDSCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTYxMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYz0xMDU1PXN0YXRpYyBpbnQgZHd4Z21hYzNfcnhwX2NvbmZpZyh2b2lkIF9faW9tZW0gKmlvYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMTQzOnN0YXRpYyBpbnQgZHd4Z21hYzJfZ2V0X21hY190eF90aW1lc3RhbXAoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHU2NCAqdHMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjExNTc6dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE1OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE5OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTIwMDpzdGF0aWMgaW50IGR3eGdtYWMyX2ZsZXhfcHBzX2NvbmZpZyh2b2lkIF9faW9tZW0gKmlvYWRkciwgaW50IGluZGV4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMjAxLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Bwc19jZmcgKmNmZywgYm9vbCBlbmFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI2NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zYXJjX2NvbmZpZ3VyZSh2b2lkIF9faW9tZW0gKmlvYWRkciwgaW50IHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI2NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI3MzpzdGF0aWMgaW50IGR3eGdtYWMyX2ZpbHRlcl93YWl0KHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMjc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMjgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMjg0OnN0YXRpYyBpbnQgZHd4Z21hYzJfZmlsdGVyX3JlYWQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBmaWx0ZXJfbm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyODUtXFx0XFx0XFx0XFx0dTggcmVnLCB1MzIgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI5MTpcXHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd2FpdChodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyOTItXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzAxOlxcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl93YWl0KGh3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMwMi1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzMDk6c3RhdGljIGludCBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBmaWx0ZXJfbm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMTAtXFx0XFx0XFx0XFx0IHU4IHJlZywgdTMyIGRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTMxNjpcXHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd2FpdChodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMTctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzI4OlxcdHJldHVybiBkd3hnbWFjMl9maWx0ZXJfd2FpdChodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMjktfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzMxOnN0YXRpYyBpbnQgZHd4Z21hYzJfY29uZmlnX2wzX2ZpbHRlcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGZpbHRlcl9ubyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMzMi1cXHRcXHRcXHRcXHQgICAgIGJvb2wgZW4sIGJvb2wgaXB2NiwgYm9vbCBzYSwgYm9vbCBpbnYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTM0MzpcXHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfcmVhZChodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIFxcdTAwMjZ2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNDQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzc0OlxcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIHZhbHVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM3NS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNzgtXFx0aWYgKHNhKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzNzk6XFx0XFx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3dyaXRlKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzX0FERFIwLCBtYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzODAtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzgyLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzODM6XFx0XFx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3dyaXRlKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzX0FERFIxLCBtYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzODQtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzg4LVxcdGlmICghZW4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzODk6XFx0XFx0cmV0dXJuIGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzkwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzOTQ6c3RhdGljIGludCBkd3hnbWFjMl9jb25maWdfbDRfZmlsdGVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgZmlsdGVyX25vLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzk1LVxcdFxcdFxcdFxcdCAgICAgYm9vbCBlbiwgYm9vbCB1ZHAsIGJvb2wgc2EsIGJvb2wgaW52LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0MDY6XFx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3JlYWQoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNMNF9DVFJMLCBcXHUwMDI2dmFsdWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDA3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQzMDpcXHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNMNF9DVFJMLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDM0OlxcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0w0X0FERFIsIFxcdTAwMjZ2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MzUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDQ2OlxcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MNF9BRERSLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0NDctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDUwLVxcdGlmICghZW4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTE6XFx0XFx0cmV0dXJuIGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDUyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTY6Y29uc3Qgc3RydWN0IHN0bW1hY19vcHMgZHd4Z21hYzIxMF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTc6XFx0LmNvcmVfaW5pdCA9IGR3eGdtYWMyX2NvcmVfaW5pdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ1ODpcXHQuaXJxX21vZGlmeSA9IGR3eGdtYWMyX2lycV9tb2RpZnksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTk6XFx0LnVwZGF0ZV9jYXBzID0gZHd4Z21hYzJfdXBkYXRlX2NhcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjA6XFx0LnNldF9tYWMgPSBkd3hnbWFjMl9zZXRfbWFjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDYxOlxcdC5yeF9pcGMgPSBkd3hnbWFjMl9yeF9pcGMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjI6XFx0LnJ4X3F1ZXVlX2VuYWJsZSA9IGR3eGdtYWMyX3J4X3F1ZXVlX2VuYWJsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2MzpcXHQucnhfcXVldWVfcHJpbyA9IGR3eGdtYWMyX3J4X3F1ZXVlX3ByaW8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjQ6XFx0LnR4X3F1ZXVlX3ByaW8gPSBkd3hnbWFjMl90eF9xdWV1ZV9wcmlvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY1OlxcdC5yeF9xdWV1ZV9yb3V0aW5nID0gZHd4Z21hYzJfcnhfcXVldWVfcm91dGluZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2NjpcXHQucHJvZ19tdGxfcnhfYWxnb3JpdGhtcyA9IGR3eGdtYWMyX3Byb2dfbXRsX3J4X2FsZ29yaXRobXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0Njc6XFx0LnByb2dfbXRsX3R4X2FsZ29yaXRobXMgPSBkd3hnbWFjMl9wcm9nX210bF90eF9hbGdvcml0aG1zLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY4OlxcdC5zZXRfbXRsX3R4X3F1ZXVlX3dlaWdodCA9IGR3eGdtYWMyX3NldF9tdGxfdHhfcXVldWVfd2VpZ2h0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY5OlxcdC5tYXBfbXRsX3RvX2RtYSA9IGR3eGdtYWMyX21hcF9tdGxfdG9fZG1hLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDcwOlxcdC5jb25maWdfY2JzID0gZHd4Z21hYzJfY29uZmlnX2NicyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3MTpcXHQuZHVtcF9yZWdzID0gZHd4Z21hYzJfZHVtcF9yZWdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDcyOlxcdC5ob3N0X2lycV9zdGF0dXMgPSBkd3hnbWFjMl9ob3N0X2lycV9zdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NzM6XFx0Lmhvc3RfbXRsX2lycV9zdGF0dXMgPSBkd3hnbWFjMl9ob3N0X210bF9pcnFfc3RhdHVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc0OlxcdC5mbG93X2N0cmwgPSBkd3hnbWFjMl9mbG93X2N0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NzU6XFx0LnBtdCA9IGR3eGdtYWMyX3BtdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3NjpcXHQuc2V0X3VtYWNfYWRkciA9IGR3eGdtYWMyX3NldF91bWFjX2FkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0Nzc6XFx0LmdldF91bWFjX2FkZHIgPSBkd3hnbWFjMl9nZXRfdW1hY19hZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc4OlxcdC5zZXRfbHBpX21vZGUgPSBkd3hnbWFjMl9zZXRfbHBpX21vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0Nzk6XFx0LnNldF9lZWVfdGltZXIgPSBkd3hnbWFjMl9zZXRfZWVlX3RpbWVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDgwOlxcdC5zZXRfZWVlX3BscyA9IGR3eGdtYWMyX3NldF9lZWVfcGxzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDgxLVxcdC5kZWJ1ZyA9IE5VTEwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0ODI6XFx0LnNldF9maWx0ZXIgPSBkd3hnbWFjMl9zZXRfZmlsdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDgzLVxcdC5zYWZldHlfZmVhdF9jb25maWcgPSBkd3hnbWFjM19zYWZldHlfZmVhdF9jb25maWcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4NS1cXHQuc2FmZXR5X2ZlYXRfZHVtcCA9IGR3eGdtYWMzX3NhZmV0eV9mZWF0X2R1bXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0ODY6XFx0LnNldF9tYWNfbG9vcGJhY2sgPSBkd3hnbWFjMl9zZXRfbWFjX2xvb3BiYWNrLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDg3OlxcdC5yc3NfY29uZmlndXJlID0gZHd4Z21hYzJfcnNzX2NvbmZpZ3VyZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4OC1cXHQucnhwX2NvbmZpZyA9IGR3eGdtYWMzX3J4cF9jb25maWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0ODk6XFx0LmdldF9tYWNfdHhfdGltZXN0YW1wID0gZHd4Z21hYzJfZ2V0X21hY190eF90aW1lc3RhbXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0OTA6XFx0LmZsZXhfcHBzX2NvbmZpZyA9IGR3eGdtYWMyX2ZsZXhfcHBzX2NvbmZpZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MTpcXHQuc2FyY19jb25maWd1cmUgPSBkd3hnbWFjMl9zYXJjX2NvbmZpZ3VyZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MjpcXHQuY29uZmlnX2wzX2ZpbHRlciA9IGR3eGdtYWMyX2NvbmZpZ19sM19maWx0ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0OTM6XFx0LmNvbmZpZ19sNF9maWx0ZXIgPSBkd3hnbWFjMl9jb25maWdfbDRfZmlsdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDk0LVxcdC5mcGVfbWFwX3ByZWVtcHRpb25fY2xhc3MgPSBkd3hnbWFjM19mcGVfbWFwX3ByZWVtcHRpb25fY2xhc3MsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM9MTUxMT1jb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hsZ21hYzJfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTEyOlxcdC5jb3JlX2luaXQgPSBkd3hnbWFjMl9jb3JlX2luaXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTM6XFx0LmlycV9tb2RpZnkgPSBkd3hnbWFjMl9pcnFfbW9kaWZ5LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTE0OlxcdC5zZXRfbWFjID0gZHd4Z21hYzJfc2V0X21hYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUxNTpcXHQucnhfaXBjID0gZHd4Z21hYzJfcnhfaXBjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTE2LVxcdC5yeF9xdWV1ZV9lbmFibGUgPSBkd3hsZ21hYzJfcnhfcXVldWVfZW5hYmxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTE3OlxcdC5yeF9xdWV1ZV9wcmlvID0gZHd4Z21hYzJfcnhfcXVldWVfcHJpbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUxODpcXHQudHhfcXVldWVfcHJpbyA9IGR3eGdtYWMyX3R4X3F1ZXVlX3ByaW8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTk6XFx0LnJ4X3F1ZXVlX3JvdXRpbmcgPSBkd3hnbWFjMl9yeF9xdWV1ZV9yb3V0aW5nLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTIwOlxcdC5wcm9nX210bF9yeF9hbGdvcml0aG1zID0gZHd4Z21hYzJfcHJvZ19tdGxfcnhfYWxnb3JpdGhtcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyMTpcXHQucHJvZ19tdGxfdHhfYWxnb3JpdGhtcyA9IGR3eGdtYWMyX3Byb2dfbXRsX3R4X2FsZ29yaXRobXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjI6XFx0LnNldF9tdGxfdHhfcXVldWVfd2VpZ2h0ID0gZHd4Z21hYzJfc2V0X210bF90eF9xdWV1ZV93ZWlnaHQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjM6XFx0Lm1hcF9tdGxfdG9fZG1hID0gZHd4Z21hYzJfbWFwX210bF90b19kbWEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjQ6XFx0LmNvbmZpZ19jYnMgPSBkd3hnbWFjMl9jb25maWdfY2JzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTI1OlxcdC5kdW1wX3JlZ3MgPSBkd3hnbWFjMl9kdW1wX3JlZ3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjY6XFx0Lmhvc3RfaXJxX3N0YXR1cyA9IGR3eGdtYWMyX2hvc3RfaXJxX3N0YXR1cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyNzpcXHQuaG9zdF9tdGxfaXJxX3N0YXR1cyA9IGR3eGdtYWMyX2hvc3RfbXRsX2lycV9zdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1Mjg6XFx0LmZsb3dfY3RybCA9IGR3eGdtYWMyX2Zsb3dfY3RybCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyOTpcXHQucG10ID0gZHd4Z21hYzJfcG10LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTMwOlxcdC5zZXRfdW1hY19hZGRyID0gZHd4Z21hYzJfc2V0X3VtYWNfYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUzMTpcXHQuZ2V0X3VtYWNfYWRkciA9IGR3eGdtYWMyX2dldF91bWFjX2FkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MzI6XFx0LnNldF9scGlfbW9kZSA9IGR3eGdtYWMyX3NldF9scGlfbW9kZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUzMzpcXHQuc2V0X2VlZV90aW1lciA9IGR3eGdtYWMyX3NldF9lZWVfdGltZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MzQ6XFx0LnNldF9lZWVfcGxzID0gZHd4Z21hYzJfc2V0X2VlZV9wbHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1MzUtXFx0LmRlYnVnID0gTlVMTCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUzNjpcXHQuc2V0X2ZpbHRlciA9IGR3eGdtYWMyX3NldF9maWx0ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1MzctXFx0LnNhZmV0eV9mZWF0X2NvbmZpZyA9IGR3eGdtYWMzX3NhZmV0eV9mZWF0X2NvbmZpZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTM5LVxcdC5zYWZldHlfZmVhdF9kdW1wID0gZHd4Z21hYzNfc2FmZXR5X2ZlYXRfZHVtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0MDpcXHQuc2V0X21hY19sb29wYmFjayA9IGR3eGdtYWMyX3NldF9tYWNfbG9vcGJhY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NDE6XFx0LnJzc19jb25maWd1cmUgPSBkd3hnbWFjMl9yc3NfY29uZmlndXJlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTQyLVxcdC5yeHBfY29uZmlnID0gZHd4Z21hYzNfcnhwX2NvbmZpZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0MzpcXHQuZ2V0X21hY190eF90aW1lc3RhbXAgPSBkd3hnbWFjMl9nZXRfbWFjX3R4X3RpbWVzdGFtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0NDpcXHQuZmxleF9wcHNfY29uZmlnID0gZHd4Z21hYzJfZmxleF9wcHNfY29uZmlnLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ1OlxcdC5zYXJjX2NvbmZpZ3VyZSA9IGR3eGdtYWMyX3NhcmNfY29uZmlndXJlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ2OlxcdC5jb25maWdfbDNfZmlsdGVyID0gZHd4Z21hYzJfY29uZmlnX2wzX2ZpbHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0NzpcXHQuY29uZmlnX2w0X2ZpbHRlciA9IGR3eGdtYWMyX2NvbmZpZ19sNF9maWx0ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1NDgtXFx0LmZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyA9IGR3eGdtYWMzX2ZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTUxOmludCBkd3hnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy05LSNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjEwOiNpbmNsdWRlIFxcXCJkd3hnbWFjMi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxMjpzdGF0aWMgaW50IGR3eGdtYWMyX2dldF90eF9zdGF0dXMoc3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyAqeCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEzLVxcdFxcdFxcdFxcdCAgc3RydWN0IGRtYV9kZXNjICpwLCB2b2lkIF9faW9tZW0gKmlvYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoyNjpzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9yeF9zdGF0dXMoc3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyAqeCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI3LVxcdFxcdFxcdFxcdCAgc3RydWN0IGRtYV9kZXNjICpwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy00OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjQ5OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF90eF9vd25lcihzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy01MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6NTQ6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3J4X293bmVyKHN0cnVjdCBkbWFfZGVzYyAqcCwgaW50IGRpc2FibGVfcnhfaWMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy01NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6NjQ6c3RhdGljIHUxNiBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdGNpKHN0cnVjdCBkbWFfZGVzYyAqcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzo2OTpzdGF0aWMgYm9vbCBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdmFsaWQoc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy03OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjc5OnN0YXRpYyBpbnQgZHd4Z21hYzJfZ2V0X3J4X2ZyYW1lX2xlbihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGludCByeF9jb2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy04MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6ODQ6c3RhdGljIHZvaWQgZHd4Z21hYzJfZW5hYmxlX3R4X3RpbWVzdGFtcChzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy04NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6ODk6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfdHhfdGltZXN0YW1wX3N0YXR1cyhzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy05MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6OTQ6c3RhdGljIGlubGluZSB2b2lkIGR3eGdtYWMyX2dldF90aW1lc3RhbXAodm9pZCAqZGVzYywgdTMyIGF0cywgdTY0ICp0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTk1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTA0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTA1OnN0YXRpYyBpbnQgZHd4Z21hYzJfcnhfY2hlY2tfdGltZXN0YW1wKHZvaWQgKmRlc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxMjU6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfcnhfdGltZXN0YW1wX3N0YXR1cyh2b2lkICpkZXNjLCB2b2lkICpuZXh0X2Rlc2MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMjYtXFx0XFx0XFx0XFx0XFx0ICAgIHUzMiBhdHMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEzMi1cXHRpZiAobGlrZWx5KHJkZXMzIFxcdTAwMjYgWEdNQUNfUkRFUzNfQ0RBKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjEzMzpcXHRcXHRyZXQgPSBkd3hnbWFjMl9yeF9jaGVja190aW1lc3RhbXAobmV4dF9kZXNjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTM4OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2luaXRfcnhfZGVzYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGludCBkaXNhYmxlX3J4X2ljLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTM5LVxcdFxcdFxcdFxcdCAgdTggZGVzY3JpcHRvcl9tb2RlLCBpbnQgZW5kLCBpbnQgYmZzaXplKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTQwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjE0MTpcXHRkd3hnbWFjMl9zZXRfcnhfb3duZXIocCwgZGlzYWJsZV9yeF9pYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xNDItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTQ0OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2luaXRfdHhfZGVzYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHU4IGRlc2NyaXB0b3JfbW9kZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE0NS1cXHRcXHRcXHRcXHQgIGludCBlbmQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjE1MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9wcmVwYXJlX3R4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgaXNfZnMsIGludCBsZW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xNTQtXFx0XFx0XFx0XFx0ICAgICBib29sIGNzdW1fZmxhZywgdTggZGVzY3JpcHRvcl9tb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxOTI6c3RhdGljIHZvaWQgZHd4Z21hYzJfcHJlcGFyZV90c29fdHhfZGVzYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGludCBpc19mcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE5My1cXHRcXHRcXHRcXHRcXHQgaW50IGxlbjEsIGludCBsZW4yLCBib29sIHR4X293bixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjMwOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3JlbGVhc2VfdHhfZGVzYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHU4IGRlc2NyaXB0b3JfbW9kZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTIzMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTIzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjIzODpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfdHhfaWMoc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjQzOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9tc3Moc3RydWN0IGRtYV9kZXNjICpwLCB1bnNpZ25lZCBpbnQgbXNzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjUxOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9hZGRyKHN0cnVjdCBkbWFfZGVzYyAqcCwgZG1hX2FkZHJfdCBhZGRyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjU3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2NsZWFyKHN0cnVjdCBkbWFfZGVzYyAqcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI1OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI2NTpzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9yeF9oYXNoKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTMyICpoYXNoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjY2LVxcdFxcdFxcdFxcdGVudW0gcGt0X2hhc2hfdHlwZXMgKnR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI5MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9nZXRfcnhfaGVhZGVyX2xlbihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHVuc2lnbmVkIGludCAqbGVuKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjk0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6Mjk5OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9zZWNfYWRkcihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGRtYV9hZGRyX3QgYWRkciwgYm9vbCBpc192YWxpZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMwMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjMwNTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfc2FyYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHUzMiBzYXJjX3R5cGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozMTA6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3ZsYW5fdGFnKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTE2IHRhZywgdTE2IGlubmVyX3RhZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMxMS1cXHRcXHRcXHRcXHQgIHUzMiBpbm5lcl90eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozMzU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3ZsYW4oc3RydWN0IGRtYV9kZXNjICpwLCB1MzIgdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMzNi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM0MDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfdGJzKHN0cnVjdCBkbWFfZWRlc2MgKnAsIHUzMiBzZWMsIHUzMiBuc2VjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzQ4OmNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgZHd4Z21hYzIxMF9kZXNjX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM0OTpcXHQudHhfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3R4X3N0YXR1cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MDpcXHQucnhfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3J4X3N0YXR1cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MTpcXHQuc2V0X3R4X293bmVyID0gZHd4Z21hYzJfc2V0X3R4X293bmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzUyOlxcdC5zZXRfcnhfb3duZXIgPSBkd3hnbWFjMl9zZXRfcnhfb3duZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTM6XFx0LmdldF9yeF92bGFuX3RjaSA9IGR3eGdtYWMyX3dyYmFja19nZXRfcnhfdmxhbl90Y2ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTQ6XFx0LmdldF9yeF92bGFuX3ZhbGlkID0gZHd4Z21hYzJfd3JiYWNrX2dldF9yeF92bGFuX3ZhbGlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzU1OlxcdC5nZXRfcnhfZnJhbWVfbGVuID0gZHd4Z21hYzJfZ2V0X3J4X2ZyYW1lX2xlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1NjpcXHQuZW5hYmxlX3R4X3RpbWVzdGFtcCA9IGR3eGdtYWMyX2VuYWJsZV90eF90aW1lc3RhbXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTc6XFx0LmdldF90eF90aW1lc3RhbXBfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3R4X3RpbWVzdGFtcF9zdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTg6XFx0LmdldF9yeF90aW1lc3RhbXBfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3J4X3RpbWVzdGFtcF9zdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTk6XFx0LmdldF90aW1lc3RhbXAgPSBkd3hnbWFjMl9nZXRfdGltZXN0YW1wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzYwOlxcdC5zZXRfdHhfaWMgPSBkd3hnbWFjMl9zZXRfdHhfaWMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjE6XFx0LnByZXBhcmVfdHhfZGVzYyA9IGR3eGdtYWMyX3ByZXBhcmVfdHhfZGVzYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM2MjpcXHQucHJlcGFyZV90c29fdHhfZGVzYyA9IGR3eGdtYWMyX3ByZXBhcmVfdHNvX3R4X2Rlc2MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjM6XFx0LnJlbGVhc2VfdHhfZGVzYyA9IGR3eGdtYWMyX3JlbGVhc2VfdHhfZGVzYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM2NDpcXHQuaW5pdF9yeF9kZXNjID0gZHd4Z21hYzJfaW5pdF9yeF9kZXNjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY1OlxcdC5pbml0X3R4X2Rlc2MgPSBkd3hnbWFjMl9pbml0X3R4X2Rlc2MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjY6XFx0LnNldF9tc3MgPSBkd3hnbWFjMl9zZXRfbXNzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY3OlxcdC5zZXRfYWRkciA9IGR3eGdtYWMyX3NldF9hZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY4OlxcdC5jbGVhciA9IGR3eGdtYWMyX2NsZWFyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY5OlxcdC5nZXRfcnhfaGFzaCA9IGR3eGdtYWMyX2dldF9yeF9oYXNoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzcwOlxcdC5nZXRfcnhfaGVhZGVyX2xlbiA9IGR3eGdtYWMyX2dldF9yeF9oZWFkZXJfbGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzcxOlxcdC5zZXRfc2VjX2FkZHIgPSBkd3hnbWFjMl9zZXRfc2VjX2FkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNzI6XFx0LnNldF9zYXJjID0gZHd4Z21hYzJfc2V0X3NhcmMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNzM6XFx0LnNldF92bGFuX3RhZyA9IGR3eGdtYWMyX3NldF92bGFuX3RhZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM3NDpcXHQuc2V0X3ZsYW4gPSBkd3hnbWFjMl9zZXRfdmxhbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM3NTpcXHQuc2V0X3RicyA9IGR3eGdtYWMyX3NldF90YnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zNzYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jLTgtI2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jOjk6I2luY2x1ZGUgXFxcImR3eGdtYWMyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmMtMTAtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM5OjMyLjE5MTczODA0OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM4NzA5NjMyNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGlnZ2luZyBpbnRvIHRoZSBEcml2ZXIgQ29kZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGZpbGVzOiBgZHdtYWMtc29jZnBnYS5jYCwgYGR3eGdtYWMyX3B0cGAsIGFuZCBgaHdpZi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGhhcmR3YXJlIGNvbnRleHQgZm9yIGBkd3hnbWFjMmAuIEl0J3MgYSBmYW1pbGlhciBpbnRlcmZhY2UgYnV0IEkgbmVlZCB0byBxdWlja2x5IHJlZnJlc2ggbXkgbWVtb3J5LlxuXG5IbW0sIHdoZXJlIGlzIGBkd3hnbWFjMmAgYWN0dWFsbHkgYmVpbmcgKnVzZWQqPyBJIG5lZWQgdG8gdHJhY2UgdGhpcyBiYWNrLiBUaGUgbW9zdCBkaXJlY3QgYXBwcm9hY2ggaXMgdG8gY2hlY2sgZm9yIGNhbGxzIHRvIGBkd3hnbWFjMl9zZXR1cGAgZnVuY3Rpb24g4oCTIHRoYXQnbGwgZ2l2ZSBtZSBhIHN0cm9uZyBzdGFydGluZyBwb2ludCBmb3IgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBwYXRoLiBBbHRlcm5hdGl2ZWx5LCBJIGNhbiBzZWFyY2ggZm9yIGluc3RhbmNlcyB3aGVyZSBgRFdYR01BQ2AgaHdpZiBlbnRyaWVzIGFyZSBiZWluZyBlbXBsb3llZCwgYXMgdGhhdCB3b3VsZCBzdWdnZXN0IGEgbW9yZSBhYnN0cmFjdCBpbnRlcmZhY2UuIEVpdGhlciBvZiB0aGVzZSBzaG91bGQgZ2V0IG1lIHRvIHRoZSByaWdodCBwbGFjZSB0byB1bmRlcnN0YW5kIHdoaWNoIGhhcmR3YXJlIGlzIGFjdHVhbGx5IGxldmVyYWdpbmcgdGhpcyBgZHd4Z21hYzJgIGZ1bmN0aW9uYWxpdHkuIExldCdzIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NTAyLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MzYuMDYyNzA0MTk3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODgyMDQ3NzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiU1RNTUFDX0RXWEdNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjc6I2lmbmRlZiBfX1NUTU1BQ19EV1hHTUFDMl9IX19cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjg6I2RlZmluZSBfX1NUTU1BQ19EV1hHTUFDMl9IX19cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oPTQ2OD1leHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyBkd3hnbWFjMjEwX2Rlc2Nfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NDcwOiNlbmRpZiAvKiBfX1NUTU1BQ19EV1hHTUFDMl9IX18gKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MzYuNDUwOTE0OThaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjU5ODAyNTg4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSBpbW1lZGlhdGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIGBod2lmLmNgKipcblxuT2theSwgSSBuZWVkIHRvIGdldCBpbnRvIHRoZSBjb2RlLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIGBod2lmLmNgLiBUaGF0J3Mgd2hlcmUgSSBzaG91bGQgYmUgbG9va2luZyBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0LiBBbmQgSSB0aGluayB0aGF0IGxpbmVzIDI1OCBhbmQgMjgwIGFyZSB0aGUgbW9zdCBsaWtlbHkgaG90c3BvdHMuIEkgbmVlZCB0byB0YWtlIGEgbG9vayBhdCB3aGF0J3MgZ29pbmcgb24gYXJvdW5kIHRob3NlIGxpbmUgbnVtYmVycy4gSSBleHBlY3QgdG8gYmUgYWJsZSB0byBxdWlja2x5IHplcm8gaW4gb24gdGhlIHJlbGV2YW50IGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MDc2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MzkuMDQ4OTQzODQxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg3NTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNDUsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyNDU6XFx0XFx0XFx0LnNldHVwID0gZHdtYWM0X3NldHVwLFxcbiAyNDY6XFx0XFx0XFx0LnF1aXJrcyA9IE5VTEwsXFxuIDI0NzpcXHRcXHR9LCB7XFxuIDI0ODpcXHRcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQyxcXG4gMjQ5OlxcdFxcdFxcdC5taW5faWQgPSBEV1hHTUFDX0NPUkVfMl8xMCxcXG4gMjUwOlxcdFxcdFxcdC5kZXZfaWQgPSBEV1hHTUFDX0lELFxcbiAyNTE6XFx0XFx0XFx0LnJlZ3MgPSB7XFxuIDI1MjpcXHRcXHRcXHRcXHQucHRwX29mZiA9IFBUUF9YR01BQ19PRkZTRVQsXFxuIDI1MzpcXHRcXHRcXHRcXHQubW1jX29mZiA9IE1NQ19YR01BQ19PRkZTRVQsXFxuIDI1NDpcXHRcXHRcXHRcXHQuZXN0X29mZiA9IEVTVF9YR01BQ19PRkZTRVQsXFxuIDI1NTpcXHRcXHRcXHRcXHQuZnBlX3JlZyA9IFxcdTAwMjZkd3hnbWFjM19mcGVfcmVnLFxcbiAyNTY6XFx0XFx0XFx0fSxcXG4gMjU3OlxcdFxcdFxcdC5kZXNjID0gXFx1MDAyNmR3eGdtYWMyMTBfZGVzY19vcHMsXFxuIDI1ODpcXHRcXHRcXHQuZG1hID0gXFx1MDAyNmR3eGdtYWMyMTBfZG1hX29wcyxcXG4gMjU5OlxcdFxcdFxcdC5tYWMgPSBcXHUwMDI2ZHd4Z21hYzIxMF9vcHMsXFxuIDI2MDpcXHRcXHRcXHQudmxhbiA9IFxcdTAwMjZkd3hnbWFjMjEwX3ZsYW5fb3BzLFxcbiAyNjE6XFx0XFx0XFx0Lmh3dGltZXN0YW1wID0gXFx1MDAyNmR3eGdtYWMyX3B0cCxcXG4gMjYyOlxcdFxcdFxcdC5wdHAgPSBcXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXFxuIDI2MzpcXHRcXHRcXHQubW9kZSA9IE5VTEwsXFxuIDI2NDpcXHRcXHRcXHQudGMgPSBcXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxcbiAyNjU6XFx0XFx0XFx0Lm1tYyA9IFxcdTAwMjZkd3hnbWFjX21tY19vcHMsXFxuIDI2NjpcXHRcXHRcXHQuZXN0ID0gXFx1MDAyNmR3bWFjNTEwX2VzdF9vcHMsXFxuIDI2NzpcXHRcXHRcXHQuc2V0dXAgPSBkd3hnbWFjMl9zZXR1cCxcXG4gMjY4OlxcdFxcdFxcdC5xdWlya3MgPSBOVUxMLFxcbiAyNjk6XFx0XFx0fSwge1xcbiAyNzA6XFx0XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXFxuIDI3MTpcXHRcXHRcXHQubWluX2lkID0gRFdYTEdNQUNfQ09SRV8yXzAwLFxcbiAyNzI6XFx0XFx0XFx0LmRldl9pZCA9IERXWExHTUFDX0lELFxcbiAyNzM6XFx0XFx0XFx0LnJlZ3MgPSB7XFxuIDI3NDpcXHRcXHRcXHRcXHQucHRwX29mZiA9IFBUUF9YR01BQ19PRkZTRVQsXFxuIDI3NTpcXHRcXHRcXHRcXHQubW1jX29mZiA9IE1NQ19YR01BQ19PRkZTRVQsXFxuIDI3NjpcXHRcXHRcXHRcXHQuZXN0X29mZiA9IEVTVF9YR01BQ19PRkZTRVQsXFxuIDI3NzpcXHRcXHRcXHRcXHQuZnBlX3JlZyA9IFxcdTAwMjZkd3hnbWFjM19mcGVfcmVnLFxcbiAyNzg6XFx0XFx0XFx0fSxcXG4gMjc5OlxcdFxcdFxcdC5kZXNjID0gXFx1MDAyNmR3eGdtYWMyMTBfZGVzY19vcHMsXFxuIDI4MDpcXHRcXHRcXHQuZG1hID0gXFx1MDAyNmR3eGdtYWMyMTBfZG1hX29wcyxcXG4gMjgxOlxcdFxcdFxcdC5tYWMgPSBcXHUwMDI2ZHd4bGdtYWMyX29wcyxcXG4gMjgyOlxcdFxcdFxcdC52bGFuID0gXFx1MDAyNmR3eGxnbWFjMl92bGFuX29wcyxcXG4gMjgzOlxcdFxcdFxcdC5od3RpbWVzdGFtcCA9IFxcdTAwMjZkd3hnbWFjMl9wdHAsXFxuIDI4NDpcXHRcXHRcXHQucHRwID0gXFx1MDAyNnN0bW1hY19wdHBfY2xvY2tfb3BzLFxcbiAyODU6XFx0XFx0XFx0Lm1vZGUgPSBOVUxMLFxcbiAyODY6XFx0XFx0XFx0LnRjID0gXFx1MDAyNmR3bWFjNTEwX3RjX29wcyxcXG4gMjg3OlxcdFxcdFxcdC5tbWMgPSBcXHUwMDI2ZHd4Z21hY19tbWNfb3BzLFxcbiAyODg6XFx0XFx0XFx0LmVzdCA9IFxcdTAwMjZkd21hYzUxMF9lc3Rfb3BzLFxcbiAyODk6XFx0XFx0XFx0LnNldHVwID0gZHd4bGdtYWMyX3NldHVwLFxcbiAyOTA6XFx0XFx0fSxcXG4gMjkxOlxcdH07XFxuIDI5MjpcXHRcXG4gMjkzOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkgKlxcbiAyOTQ6XFx0c3RtbWFjX2h3aWZfZmluZChlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUsIHU4IHNucHN2ZXIsIHU4IGRldl9pZClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MzkuMDQ5MDMzMDcxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU4MDUxMDEzODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBhbmFseXppbmcgdGhpcyBjb2RlOlxuXG4qKkludmVzdGlnYXRpbmcgU1RNTUFDIERyaXZlciBDb21wYXRpYmlsaXR5KipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggZHJpdmVycyBhbmQgcGxhdGZvcm1zIGFyZSBwcm9iaW5nIHRoZSBTVE1NQUMgRXRoZXJuZXQgZHJpdmVyIHdpdGggdGhvc2Ugc3BlY2lmaWMgRGlnaXRhbCBXb3JsZCAoRFcpIE1BQyBjb3JlIElEczogYERXTUFDX0NPUkVfWEdNQUNgIGFuZCBgZHd4Z21hYzJgLiBNeSBpbnN0aW5jdCBpcyB0byBmaXJzdCBmb2N1cyBvbiB0aG9zZSBpZGVudGlmaWVycyBiZWNhdXNlIHRoZXkncmUgdGhlIGRpcmVjdCBob29rcywgdGhlIFwia2V5c1wiIGlmIHlvdSB3aWxsLlxuXG5UaGVuLCB0byBicm9hZGVuIHRoZSBzZWFyY2ggYW5kIGVuc3VyZSBJJ20gZ2V0dGluZyBhIGNvbXBsZXRlIHBpY3R1cmUsIEkgbmVlZCB0byBsb29rIGJleW9uZCB0aG9zZSBleGFjdCBpZGVudGlmaWVycy4gU28sIEknbGwgYnJvYWRlbiBteSBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwgc291cmNlIHRvIGluY2x1ZGUgcmVsYXRlZCBpZGVudGlmaWVycyB0aGF0IFNUTU1BQyBtaWdodCBiZSB1c2luZywgc3VjaCBhcyB0aGUgbW9yZSBnZW5lcmljIGBEV1hHTUFDYCBhbmQgYERXWExHTUFDYC4gVGhpcyBleHBhbmRlZCBzZWFyY2ggc2hvdWxkIGFsbG93IG1lIHRvIGNhdGNoIGFueSBwb3RlbnRpYWwgdmFyaWF0aW9ucyBpbiBuYW1pbmcgY29udmVudGlvbnMgb3IgYWxpYXNlcyB0aGUgY29kZSBtaWdodCBiZSBlbXBsb3lpbmcuIEl0J3MgYWJvdXQgYmVpbmcgdGhvcm91Z2ggYW5kIG5vdCBtaXNzaW5nIGFueSBjb25uZWN0aW9ucy4gSSBuZWVkIHRvIHNlZSB0aGUgYmlnZ2VyIHBpY3R1cmUgb2Ygd2hlcmUgU1RNTUFDIGlzIGJlaW5nIHVzZWQgd2l0aCB0aGlzIHR5cGUgb2YgTUFDIGNvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MjAzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOTo0NC44NTQxMzg1MDdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MDM3OTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkRXWEdNQUN8RFdYTEdNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQwLSNkZWZpbmUgRFdNQUNfQ09SRV81XzIwXFx0XFx0MHg1MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQxOiNkZWZpbmUgRFdYR01BQ19DT1JFXzJfMTBcXHQweDIxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NDI6I2RlZmluZSBEV1hHTUFDX0NPUkVfMl8yMFxcdDB4MjJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0MzojZGVmaW5lIERXWExHTUFDX0NPUkVfMl8wMFxcdDB4MjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00NS0vKiBEZXZpY2UgSUQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0NjojZGVmaW5lIERXWEdNQUNfSURcXHRcXHQweDc2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NDc6I2RlZmluZSBEV1hMR01BQ19JRFxcdFxcdDB4MjdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjc6I2lmbmRlZiBfX1NUTU1BQ19EV1hHTUFDMl9IX19cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjg6I2RlZmluZSBfX1NUTU1BQ19EV1hHTUFDMl9IX19cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oPTQ2OD1leHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyBkd3hnbWFjMjEwX2Rlc2Nfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NDcwOiNlbmRpZiAvKiBfX1NUTU1BQ19EV1hHTUFDMl9IX18gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jPTM2Mj1zdGF0aWMgaW50IGR3eGdtYWMyX2dldF9od19mZWF0dXJlKHZvaWQgX19pb21lbSAqaW9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmMtMzkyLVxcdGRtYV9jYXAtXFx1MDAzZW1icHNfMTAwMCA9IChod19jYXAgXFx1MDAyNiBYR01BQ19IV0ZFQVRfR01JSVNFTCkgXFx1MDAzZVxcdTAwM2UgMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kbWEuYzozOTM6XFx0aWYgKGRtYV9jYXAtXFx1MDAzZW1icHNfMTAwMCBcXHUwMDI2XFx1MDAyNiBwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV1hHTUFDX0NPUkVfMl8yMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kbWEuYy0zOTQtXFx0XFx0ZG1hX2NhcC1cXHUwMDNlbWJwc18xMF8xMDAgPSAxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4bGdtYWMyLmgtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hsZ21hYzIuaDo3OiNpZm5kZWYgX19TVE1NQUNfRFdYTEdNQUMyX0hfX1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oOjg6I2RlZmluZSBfX1NUTU1BQ19EV1hMR01BQzJfSF9fXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4bGdtYWMyLmgtOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oLTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oOjIyOiNlbmRpZiAvKiBfX1NUTU1BQ19EV1hMR01BQzJfSF9fICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9MTExPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0OC1cXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjQ5OlxcdFxcdC5taW5faWQgPSBEV1hHTUFDX0NPUkVfMl8xMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjUwOlxcdFxcdC5kZXZfaWQgPSBEV1hHTUFDX0lELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNTEtXFx0XFx0LnJlZ3MgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjcwLVxcdFxcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNzE6XFx0XFx0Lm1pbl9pZCA9IERXWExHTUFDX0NPUkVfMl8wMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjcyOlxcdFxcdC5kZXZfaWQgPSBEV1hMR01BQ19JRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjczLVxcdFxcdC5yZWdzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz03Mj1zdGF0aWMgdm9pZCBzdG1tYWNfeGdtYWMyX2MyMl9mb3JtYXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBpbnQgcGh5YWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo3NzpcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzYyBEV1hHTUFDX0NPUkVfMl8yMCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNzgtXFx0XFx0LyogVW50aWwgdmVyIDIuMjAgWEdNQUMgZG9lcyBub3Qgc3VwcG9ydCBDMjIgYWRkciBcXHUwMDNlPSA0LiBUaG9zZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0xMzI9c3RhdGljIGludCBzdG1tYWNfeGdtYWMyX21kaW9fcmVhZF9jMjIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeWFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTEzOC1cXHQvKiBVbnRpbCB2ZXIgMi4yMCBYR01BQyBkb2VzIG5vdCBzdXBwb3J0IEMyMiBhZGRyIFxcdTAwM2U9IDQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjEzOTpcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzYyBEV1hHTUFDX0NPUkVfMl8yMCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMTQwLVxcdCAgICBwaHlhZGRyIFxcdTAwM2UgTUlJX1hHTUFDX01BWF9DMjJBRERSKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0xOTU9c3RhdGljIGludCBzdG1tYWNfeGdtYWMyX21kaW9fd3JpdGVfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHlhZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy0yMDEtXFx0LyogVW50aWwgdmVyIDIuMjAgWEdNQUMgZG9lcyBub3Qgc3VwcG9ydCBDMjIgYWRkciBcXHUwMDNlPSA0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzoyMDI6XFx0aWYgKHByaXYtXFx1MDAzZXN5bm9wc3lzX2lkIFxcdTAwM2MgRFdYR01BQ19DT1JFXzJfMjAgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTIwMy1cXHQgICAgcGh5YWRkciBcXHUwMDNlIE1JSV9YR01BQ19NQVhfQzIyQUREUilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTk1PWludCBzdG1tYWNfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NjI4OlxcdFxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNjIERXWEdNQUNfQ09SRV8yXzIwKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02MjktXFx0XFx0XFx0LyogUmlnaHQgbm93IG9ubHkgQzIyIHBoeXMgYXJlIHN1cHBvcnRlZCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOTo0NC45MDMxODE0NTVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzQwMTMwNjE2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuXG5cbioqRXhhbWluaW5nIHRoZSBkd21hYy1zb2NmcGdhIERyaXZlcioqXG5cbkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgcm9sZSBvZiBgZHdtYWMtc29jZnBnYS5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgcHJlY2lzZWx5IHdoYXQgdGhpcyBkcml2ZXIgKmRvZXMqIGluIHRoZSBncmFuZCBzY2hlbWUgb2YgdGhpbmdzLiBTcGVjaWZpY2FsbHksIGhvdyBkb2VzIGl0IGZpdCBpbnRvIHRoZSBicm9hZGVyIEV0aGVybmV0IGRyaXZlciBlY29zeXN0ZW0g4oCTIHdoYXQncyBpdHMgcmVsYXRpb25zaGlwIHdpdGggYHN0bW1hY2A/IFRoYXQncyB0aGUgY29yZSBxdWVzdGlvbi4gVG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMsIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIGdldCBteSBleWVzIG9uIHRoZSBzb3VyY2UgY29kZSBvZiBgZHdtYWMtc29jZnBnYS5jYC4gSSdsbCBkZWx2ZSBpbnRvIHRoZSBjb2RlIHRvIHRyYWNlIHRoZSBpbnRlcmFjdGlvbnMsIGRlcGVuZGVuY2llcywgYW5kIGFueSBrZXkgY29uZmlndXJhdGlvbiBhc3BlY3RzIHRoYXQgc2hlZCBsaWdodCBvbiBob3cgaXQgY29tbXVuaWNhdGVzIGFuZCBpbnRlZ3JhdGVzIHdpdGggdGhlIGBzdG1tYWNgIGZyYW1ld29yay4gVW5kZXJzdGFuZGluZyB0aGUgY29kZSdzIHN0cnVjdHVyZSBhbmQgdGhlIHNwZWNpZmljIGNhbGxzIGl0IG1ha2VzIHdpbGwgaWxsdW1pbmF0ZSBpdHMgZnVuY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NjI3LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6NDguMzA0NDg5NzUxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODI0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0LyogQ29weXJpZ2h0IEFsdGVyYSBDb3Jwb3JhdGlvbiAoQykgMjAxNC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cXG4gICAzOlxcdCAqXFxuICAgNDpcXHQgKiBBZG9wdGVkIGZyb20gZHdtYWMtc3RpLmNcXG4gICA1OlxcdCAqL1xcbiAgIDY6XFx0XFxuICAgNzpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbWZkL2FsdGVyYS1zeXNtZ3IuaFxcdTAwM2VcXG4gICA4OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9jbG9ja3NvdXJjZV9pZHMuaFxcdTAwM2VcXG4gICA5OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZi5oXFx1MDAzZVxcbiAgMTA6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L29mX2FkZHJlc3MuaFxcdTAwM2VcXG4gIDExOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9uZXQuaFxcdTAwM2VcXG4gIDEyOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG4gIDEzOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZWdtYXAuaFxcdTAwM2VcXG4gIDE0OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9tZGlvL21kaW8tcmVnbWFwLmhcXHUwMDNlXFxuICAxNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcGNzLWx5bnguaFxcdTAwM2VcXG4gIDE2OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZXNldC5oXFx1MDAzZVxcbiAgMTc6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbiAgMTg6XFx0XFxuICAxOTpcXHQjaW5jbHVkZSBcXFwiZHd4Z21hYzIuaFxcXCJcXG4gIDIwOlxcdCNpbmNsdWRlIFxcXCJzdG1tYWMuaFxcXCJcXG4gIDIxOlxcdCNpbmNsdWRlIFxcXCJzdG1tYWNfcGxhdGZvcm0uaFxcXCJcXG4gIDIyOlxcdCNpbmNsdWRlIFxcXCJzdG1tYWNfcHRwLmhcXFwiXFxuICAyMzpcXHRcXG4gIDI0OlxcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QSFlTRUxfRU5VTV9HTUlJX01JSSAweDBcXG4gIDI1OlxcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QSFlTRUxfRU5VTV9SR01JSSAweDFcXG4gIDI2OlxcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QSFlTRUxfRU5VTV9STUlJIDB4MlxcbiAgMjc6XFx0I2RlZmluZSBTWVNNR1JfRU1BQ0dSUF9DVFJMX1BIWVNFTF9XSURUSCAyXFxuICAyODpcXHQjZGVmaW5lIFNZU01HUl9FTUFDR1JQX0NUUkxfUEhZU0VMX01BU0sgMHgwMDAwMDAwM1xcbiAgMjk6XFx0I2RlZmluZSBTWVNNR1JfRU1BQ0dSUF9DVFJMX1BUUF9SRUZfQ0xLX01BU0sgMHgwMDAwMDAxMFxcbiAgMzA6XFx0I2RlZmluZSBTWVNNR1JfR0VOMTBfRU1BQ0dSUF9DVFJMX1BUUF9SRUZfQ0xLX01BU0sgMHgwMDAwMDEwMFxcbiAgMzE6XFx0XFxuICAzMjpcXHQjZGVmaW5lIFNZU01HUl9GUEdBR1JQX01PRFVMRV9SRUcgIDB4MDAwMDAwMjhcXG4gIDMzOlxcdCNkZWZpbmUgU1lTTUdSX0ZQR0FHUlBfTU9EVUxFX0VNQUMgMHgwMDAwMDAwNFxcbiAgMzQ6XFx0I2RlZmluZSBTWVNNR1JfRlBHQUlOVEZfRU1BQ19SRUdcXHQweDAwMDAwMDcwXFxuICAzNTpcXHQjZGVmaW5lIFNZU01HUl9GUEdBSU5URl9FTUFDX0JJVFxcdDB4MVxcbiAgMzY6XFx0XFxuICAzNzpcXHQjZGVmaW5lIEVNQUNfU1BMSVRURVJfQ1RSTF9SRUdcXHRcXHRcXHQweDBcXG4gIDM4OlxcdCNkZWZpbmUgRU1BQ19TUExJVFRFUl9DVFJMX1NQRUVEX01BU0tcXHRcXHQweDNcXG4gIDM5OlxcdCNkZWZpbmUgRU1BQ19TUExJVFRFUl9DVFJMX1NQRUVEXzEwXFx0XFx0MHgyXFxuICA0MDpcXHQjZGVmaW5lIEVNQUNfU1BMSVRURVJfQ1RSTF9TUEVFRF8xMDBcXHRcXHQweDNcXG4gIDQxOlxcdCNkZWZpbmUgRU1BQ19TUExJVFRFUl9DVFJMX1NQRUVEXzEwMDBcXHRcXHQweDBcXG4gIDQyOlxcdFxcbiAgNDM6XFx0I2RlZmluZSBTR01JSV9BREFQVEVSX0NUUkxfUkVHXFx0XFx0MHgwMFxcbiAgNDQ6XFx0I2RlZmluZSBTR01JSV9BREFQVEVSX0VOQUJMRVxcdFxcdDB4MDAwMFxcbiAgNDU6XFx0I2RlZmluZSBTR01JSV9BREFQVEVSX0RJU0FCTEVcXHRcXHQweDAwMDFcXG4gIDQ2OlxcdFxcbiAgNDc6XFx0I2RlZmluZSBTTVRHX01ESU9fQUREUlxcdFxcdDB4MTVcXG4gIDQ4OlxcdCNkZWZpbmUgU01UR19UU0NfV09SRDBcXHRcXHQweENcXG4gIDQ5OlxcdCNkZWZpbmUgU01UR19UU0NfV09SRDFcXHRcXHQweERcXG4gIDUwOlxcdCNkZWZpbmUgU01UR19UU0NfV09SRDJcXHRcXHQweEVcXG4gIDUxOlxcdCNkZWZpbmUgU01UR19UU0NfV09SRDNcXHRcXHQweEZcXG4gIDUyOlxcdCNkZWZpbmUgU01UR19UU0NfU0hJRlRcXHRcXHQxNlxcbiAgNTM6XFx0XFxuICA1NDpcXHRzdHJ1Y3Qgc29jZnBnYV9kd21hYztcXG4gIDU1OlxcdHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyB7XFxuICA1NjpcXHRcXHRpbnQgKCpzZXRfcGh5X21vZGUpKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hY19wcml2LFxcbiAgNTc6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkZXZpY2UgKmRldik7XFxuICA1ODpcXHRcXHR2b2lkICgqc2V0dXBfcGxhdF9kYXQpKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hY19wcml2KTtcXG4gIDU5OlxcdH07XFxuICA2MDpcXHRcXG4gIDYxOlxcdHN0cnVjdCBzb2NmcGdhX2R3bWFjIHtcXG4gIDYyOlxcdFxcdHUzMlxcdHJlZ19vZmZzZXQ7XFxuICA2MzpcXHRcXHR1MzJcXHRyZWdfc2hpZnQ7XFxuICA2NDpcXHRcXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xcbiAgNjU6XFx0XFx0c3RydWN0IHJlZ21hcCAqc3lzX21ncl9iYXNlX2FkZHI7XFxuICA2NjpcXHRcXHRzdHJ1Y3QgcmVzZXRfY29udHJvbCAqc3RtbWFjX3JzdDtcXG4gIDY3OlxcdFxcdHN0cnVjdCByZXNldF9jb250cm9sICpzdG1tYWNfb2NwX3JzdDtcXG4gIDY4OlxcdFxcdHZvaWQgX19pb21lbSAqc3BsaXR0ZXJfYmFzZTtcXG4gIDY5OlxcdFxcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xcbiAgNzA6XFx0XFx0dm9pZCBfX2lvbWVtICpzZ21paV9hZGFwdGVyX2Jhc2U7XFxuICA3MTpcXHRcXHRib29sIGYyaF9wdHBfcmVmX2NsaztcXG4gIDcyOlxcdFxcdGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyAqb3BzO1xcbiAgNzM6XFx0fTtcXG4gIDc0OlxcdFxcbiAgNzU6XFx0c3RhdGljIHBoeV9pbnRlcmZhY2VfdCBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbiAgNzY6XFx0e1xcbiAgNzc6XFx0XFx0cmV0dXJuIGR3bWFjLVxcdTAwM2VwbGF0X2RhdC1cXHUwMDNlcGh5X2ludGVyZmFjZTtcXG4gIDc4OlxcdH1cXG4gIDc5OlxcdFxcbiAgODA6XFx0c3RhdGljIHZvaWQgc29jZnBnYV9zZ21paV9jb25maWcoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjLCBib29sIGVuYWJsZSlcXG4gIDgxOlxcdHtcXG4gIDgyOlxcdFxcdHUxNiB2YWwgPSBlbmFibGUgPyBTR01JSV9BREFQVEVSX0VOQUJMRSA6IFNHTUlJX0FEQVBURVJfRElTQUJMRTtcXG4gIDgzOlxcdFxcbiAgODQ6XFx0XFx0d3JpdGV3KHZhbCwgZHdtYWMtXFx1MDAzZXNnbWlpX2FkYXB0ZXJfYmFzZSArIFNHTUlJX0FEQVBURVJfQ1RSTF9SRUcpO1xcbiAgODU6XFx0fVxcbiAgODY6XFx0XFxuICA4NzpcXHRzdGF0aWMgdm9pZCBzb2NmcGdhX2R3bWFjX2ZpeF9tYWNfc3BlZWQodm9pZCAqYnNwX3ByaXYsXFxuICA4ODpcXHRcXHRcXHRcXHRcXHRcXHRwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLCBpbnQgc3BlZWQsXFxuICA4OTpcXHRcXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgbW9kZSlcXG4gIDkwOlxcdHtcXG4gIDkxOlxcdFxcdHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYyA9IChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqKWJzcF9wcml2O1xcbiAgOTI6XFx0XFx0dm9pZCBfX2lvbWVtICpzZ21paV9hZGFwdGVyX2Jhc2UgPSBkd21hYy1cXHUwMDNlc2dtaWlfYWRhcHRlcl9iYXNlO1xcbiAgOTM6XFx0XFx0cGh5X2ludGVyZmFjZV90IHBoeW1vZGUgPSBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoZHdtYWMpO1xcbiAgOTQ6XFx0XFx0dm9pZCBfX2lvbWVtICpzcGxpdHRlcl9iYXNlID0gZHdtYWMtXFx1MDAzZXNwbGl0dGVyX2Jhc2U7XFxuICA5NTpcXHRcXHR1MzIgdmFsO1xcbiAgOTY6XFx0XFxuICA5NzpcXHRcXHRpZiAoc2dtaWlfYWRhcHRlcl9iYXNlKVxcbiAgOTg6XFx0XFx0XFx0c29jZnBnYV9zZ21paV9jb25maWcoZHdtYWMsIGZhbHNlKTtcXG4gIDk5OlxcdFxcbiAxMDA6XFx0XFx0aWYgKHNwbGl0dGVyX2Jhc2UpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6NDguMzA0NjA5ODIxWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjc0MzYwNDI4MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyIFBhdGNoKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgdGhpcyBwYXRjaCBhZmZlY3RzIHRoZSBBbHRlcmEgU09DRlBHQSBwbGF0Zm9ybSwgc3BlY2lmaWNhbGx5IHRoZSBgZHdtYWMtc29jZnBnYS5jYCBmaWxlLiBUaGlzIHRlbGxzIG1lIHdlJ3JlIGRlYWxpbmcgd2l0aCBhbiBBUk0gb3IgQVJNNjQtYmFzZWQgZGV2aWNlIHRoYXQgcmVsaWVzIG9uIGEgRGV2aWNlIFRyZWUuIEJ1dCB3aGF0J3MgYWN0dWFsbHkgKmNoYW5nZWQqIGluIHRoZSBwYXRjaD8gTGV0J3MgdHJhY2UgaXQgdGhyb3VnaCB0aGUgZmlsZXMuXG5cbiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jYDogIEkgc2VlIGBzdG1tYWNfbWFjX2lycV9tb2RpZnlgIGJlaW5nIGNhbGxlZCB0byBkaXNhYmxlIGFuZCB0aGVuIHJlLWVuYWJsZSB0aGUgdGltZXN0YW1wIGludGVycnVwdCBpbiBgc210Z19jcm9zc3RzdGFtcCgpYC4gIEludGVyZXN0aW5nLlxuXG4qICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmhgOiBUaGlzIGRlZmluZXMgdGhlIGRlZmF1bHQgaW50ZXJydXB0IGVuYWJsZSBtYXNrLCBgWEdNQUNfSU5UX0RFRkFVTFRfRU5gLiBJdCBpbmNsdWRlcyB0aW1lc3RhbXAtcmVsYXRlZCBpbnRlcnJ1cHRzLlxuXG4qICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuY2A6IEEgbmV3IGZ1bmN0aW9uLCBgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCgpYCwgaGFzIGJlZW4gYWRkZWQuICBUaGlzIGlzIGEgc2lnbmlmaWNhbnQgY2hhbmdlLCBsaWtlbHkgdGhlIGNvcmUgb2YgdGhlIHRpbWVzdGFtcCBmdW5jdGlvbmFsaXR5LlxuXG4qICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY2A6IFRoaXMgaXMgd2hlcmUgdGhlIGludGVyZmFjZSB0YWJsZSAoYC5od3RpbWVzdGFtcGApIGlzIHVwZGF0ZWQgZm9yIGBEV01BQ19DT1JFX1hHTUFDYCBkZXZpY2VzLiAgQ3J1Y2lhbGx5LCBpdCBzd2l0Y2hlcyBmcm9tIGBzdG1tYWNfcHRwYCB0byBgZHd4Z21hYzJfcHRwYC4gVGhpcyBpbXBsaWVzIGEgZnVuZGFtZW50YWwgc2hpZnQgaW4gaG93IGhhcmR3YXJlIHRpbWVzdGFtcGluZyBpcyBoYW5kbGVkIGZvciB0aGVzZSBYR01BQyBjb3Jlcy4gIFdlJ3JlIGdvaW5nIGZyb20gYSBnZW5lcmljIFBUUCBpbXBsZW1lbnRhdGlvbiB0byBhIG1vcmUgc3BlY2lhbGl6ZWQgYGR3eGdtYWMyYCBvbmUuXG5cbiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oYDogSnVzdCBhbiBleHRlcm5hbCBkZWNsYXJhdGlvbiBvZiB0aGUgbmV3IGBkd3hnbWFjMl9wdHBgLiBFeHBlY3RlZC5cblxuKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY2A6IFRoZSBkZWZpbml0aW9uIG9mIGBkd3hnbWFjMl9wdHBgIGlzIHRoZSBoZWFydCBvZiB0aGUgY2hhbmdlcy4gIEl0J3MgYSBzdHJ1Y3R1cmUgY29udGFpbmluZyBhbGwgdGhlIGhhcmR3YXJlIHRpbWVzdGFtcGluZyBmdW5jdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBuZXcgaW1wbGVtZW50YXRpb24uIFRoZSBuZXcgc3RydWN0dXJlIGluY2x1ZGVzIGNhbGxiYWNrcyBmb3IgY29uZmlndXJpbmcgdGhlIGhhcmR3YXJlLCBoYW5kbGluZyBzdWItc2Vjb25kIGluY3JlbWVudCwgYW5kIGFkanVzdGluZyBzeXN0ZW0gdGltZS5cblxuKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhgOiBUaGUgcHJvdG90eXBlIGZvciB0aGUgbmV3IGBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0YCBpcyBkZWZpbmVkIGhlcmUuXG5cblNvLCB0aGlzIHBhdGNoIGlzIGNsZWFybHkgYWJvdXQgcmVmaW5pbmcgaGFyZHdhcmUgdGltZXN0YW1waW5nIHN1cHBvcnQgZm9yIHRoZSBYR01BQyBjb3JlIHdpdGhpbiB0aGUgU1RNTUFDIGRyaXZlci4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBldmVuICp3b3JrKiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBTVE1NQUMsIGVzcGVjaWFsbHkgRFdYR01BQywgcmVsaWVzIG9uIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzLiBJcyBpdCBhIHN0cmljdCBoYXJkd2FyZSBkZXZpY2U/XG5cbkkgbmVlZCB0byBxdWlja2x5IGNoZWNrIGlmIFFFTVUgZW11bGF0ZXMgU1RNTUFDIG9yIGFueSBvZiB0aGUgRFdNQUMgb3IgRFdYR01BQyBkZXZpY2VzIGF0IGFsbC4gIE9yIGlzIFNUTU1BQyBhIFBDSSBkcml2ZXIgb3IgcGxhdGZvcm0gZHJpdmVyPyBMZXQgbWUgY2hlY2sgYFNUTU1BQ19QQ0lgIGFuZCBzZWUgd2hhdCBQQ0kgSURzIGFyZSBpbiBgc3RtbWFjX3BjaS5jYCBvciBvdGhlciBzdG1tYWMgUENJIGRyaXZlcnMgdG8gc2VlIGlmIGFueSBvZiB0aGUgaGFyZHdhcmUgaXMgZW11bGF0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwNzEyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzM4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6NTUuNzQwNjU1Mjg3WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODAxMTY3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTE0MTU9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGludGVsX2V0aF9wY2lfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjE0MTc6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGludGVsX2V0aF9wY2lfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQxOC1cXHQubmFtZSA9IFxcXCJpbnRlbC1ldGgtcGNpXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjE0Mjc6bW9kdWxlX3BjaV9kcml2ZXIoaW50ZWxfZXRoX3BjaV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NjAyPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBsb29uZ3Nvbl9kd21hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo2MDQ6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGxvb25nc29uX2R3bWFjX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYwNS1cXHQubmFtZSA9IERSSVZFUl9OQU1FLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo2MTQ6bW9kdWxlX3BjaV9kcml2ZXIobG9vbmdzb25fZHdtYWNfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jPTM3MT1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZHdtYWNfbW90b3Jjb21tX3BjaV9pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM3MzpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgZHdtYWNfbW90b3Jjb21tX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzc0LVxcdC5uYW1lID0gRFJJVkVSX05BTUUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzgzOm1vZHVsZV9wY2lfZHJpdmVyKGR3bWFjX21vdG9yY29tbV9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zODQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgc3RtbWFjX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjIyOm1vZHVsZV9wY2lfZHJpdmVyKHN0bW1hY19wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOTo1NS43ODg2NzExMjVaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjU1MTQwODAyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIFhHTUFDIERyaXZlciBJbXBsZW1lbnRhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIGhvdyB0aGVzZSBYR01BQyBjb3JlcyBhcmUgYmVpbmcgdXNlZCBpbiBkaWZmZXJlbnQgRFdNQUMgZHJpdmVycy4gRmlyc3QsIEknbSB0aGlua2luZywgXCJMZXQncyBzdGFydCBieSBsb29raW5nIGF0IGEgZmV3IGxpa2VseSBzdXNwZWN0czogYHN0bW1hY19wY2kuY2AsIGBkd21hYy1pbnRlbC5jYCwgYGR3bWFjLWxvb25nc29uLmNgLCBgZHdtYWMtc29jZnBnYS5jYCwgYW5kIHNvIG9uLlwiIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGJhc2VsaW5lLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZSwgYSBtb3JlIGVmZmljaWVudCBhcHByb2FjaCB3b3VsZCBiZSB0byBuYXJyb3cgdGhlIHNjb3BlIGZyb20gdGhlIHN0YXJ0LiBcIkxldCdzIHNlZSB3aGljaCBkcml2ZXJzIGFyZSAqYWN0dWFsbHkqIHV0aWxpemluZyBgRFdNQUNfQ09SRV9YR01BQ2Agb3Igc3BlY2lmaWNhbGx5IHByb2JpbmcgZm9yIGBkd3hnbWFjMmAuXCIgSXQncyBtdWNoIG1vcmUgc3VyZ2ljYWwuXG5cblJpZ2h0LCB0aW1lIHRvIGdldCB0byB3b3JrLiBOb3csIHRoZSBmYXN0ZXN0IGFuZCBtb3N0IGNvbXByZWhlbnNpdmUgYXBwcm9hY2ggdG8gdW5kZXJzdGFuZCB0aGUgZHJpdmVycyB3b3VsZCBiZSBhIHF1aWNrIGNvZGViYXNlIHNlYXJjaC4gU28sIEkgbmVlZCB0byBcInNlYXJjaCBmb3IgYERXTUFDX0NPUkVfWEdNQUNgIGluIHRoZSBlbnRpcmUgY29kZWJhc2UuXCIgVGhpcyBzaG91bGQgcmV2ZWFsIGFsbCBpbnN0YW5jZXMgb2YgdGhlIG1hY3JvJ3MgdXNlLCBwcm92aWRpbmcgdGhlIGZvdW5kYXRpb24gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBoYXJkd2FyZSBhbmQgdGhlIHNvZnR3YXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzI2MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM5OjU4LjM0MDA4MjI4OVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcwMjAwMDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRFdNQUNfQ09SRV9YR01BQ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTUwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo1MTpcXHRyZXR1cm4gY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQgfHwgY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTItfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTU4MD1zdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NTg0OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01ODUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzI2OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjctXFx0cGxhdC1cXHUwMDNlZmxhZ3MgfD0gU1RNTUFDX0ZMQUdfVFNPX0VOO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTIxPXN0YXRpYyB2b2lkIHN0bW1hY19nZXRfdmVyc2lvbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNDktXFx0dmVyLVxcdTAwM2VzbnBzdmVyID0gRklFTERfR0VUKERXTUFDX1NOUFNWRVIsIHZlcnNpb24pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzo1MDpcXHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTUxLVxcdFxcdHZlci1cXHUwMDNlZGV2X2lkID0gRklFTERfR0VUKERXTUFDX1VTRVJWRVIsIHZlcnNpb24pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTExMT1zdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19od2lmX2VudHJ5IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNDctXFx0fSwge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNDg6XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0OS1cXHRcXHQubWluX2lkID0gRFdYR01BQ19DT1JFXzJfMTAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjY5LVxcdH0sIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjcwOlxcdFxcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNzEtXFx0XFx0Lm1pbl9pZCA9IERXWExHTUFDX0NPUkVfMl8wMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYz0yOTQ9c3RtbWFjX2h3aWZfZmluZChlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUsIHU4IHNucHN2ZXIsIHU4IGRldl9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zMDYtXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjMwNzpcXHRcXHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzA4LVxcdFxcdCAgICBkZXZfaWQgIT0gZW50cnktXFx1MDAzZWRldl9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYz0yOD1zdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jLTU1LVxcdGN0cmwgPSByZWFkbChlc3RfYWRkciArIEVTVF9DT05UUk9MKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmM6NTY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jLTU3LVxcdFxcdGN0cmwgXFx1MDAyNj0gfkVTVF9YR01BQ19QVE9WO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jPTgzPXN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy0xNTAtXFx0aWYgKHN0YXR1cyBcXHUwMDI2IEVTVF9CVFJFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jOjE1MTpcXHRcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtMTUyLVxcdFxcdFxcdGJ0cmwgPSBGSUVMRF9HRVQoRVNUX1hHTUFDX0JUUkwsIHN0YXR1cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTMwMT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9nZXRkcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMwOC1cXHRcXHRzdHJzY3B5KGluZm8tXFx1MDAzZWRyaXZlciwgR01BQ19FVEhUT09MX05BTUUsIHNpemVvZihpbmZvLVxcdTAwM2Vkcml2ZXIpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjMwOTpcXHRlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMxMC1cXHRcXHRzdHJzY3B5KGluZm8tXFx1MDAzZWRyaXZlciwgWEdNQUNfRVRIVE9PTF9OQU1FLCBzaXplb2YoaW5mby1cXHUwMDNlZHJpdmVyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTM1MD1zdGF0aWMgaW50IHN0bW1hY19ldGh0b29sX2dldF9yZWdzX2xlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNTQ6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU1LVxcdFxcdHJldHVybiBYR01BQ19SRUdTSVpFICogNDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM9MzYxPXN0YXRpYyB2b2lkIHN0bW1hY19ldGh0b29sX2dyZWdzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3NS1cXHRcXHQgICAgICAgTlVNX0RXTUFDNF9ETUFfUkVHUyAqIDQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6Mzc2OlxcdH0gZWxzZSBpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3Ny1cXHRcXHRtZW1jcHkoXFx1MDAyNnJlZ19zcGFjZVtFVEhUT09MX0RNQV9PRkZTRVRdLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NDI9c3RhdGljIGludCBzdG1tYWNfaHd0c3RhbXBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1OC1cXHRcXHRcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzYyBEV01BQ19DT1JFXzNfNzAgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc1OTpcXHRcXHRcXHQgICAgcHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjAtXFx0XFx0XFx0XFx0dHNfZXZlbnRfZW4gPSBQVFBfVENSX1RTRVZOVEVOQTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjU0NT1zdGF0aWMgaW50IHN0bW1hY19kbWFfY2FwX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY1ODAtXFx0XFx0ICAgKHByaXYtXFx1MDAzZWRtYV9jYXAuaGFsZl9kdXBsZXgpID8gXFxcIllcXFwiIDogXFxcIk5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY1ODE6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTgyLVxcdFxcdHNlcV9wcmludGYoc2VxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjA0LVxcdFxcdCAgIChwcml2LVxcdTAwM2VkbWFfY2FwLmF0aW1lX3N0YW1wKSA/IFxcXCJZXFxcIiA6IFxcXCJOXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NjA1OlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MDYtXFx0XFx0c2VxX3ByaW50ZihzZXEsIFxcXCJcXFxcdFRpbWVzdGFtcCBTeXN0ZW0gVGltZSBTb3VyY2U6ICVzXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjEzLVxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV01BQ19DT1JFXzRfMDAgfHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY2MTQ6XFx0ICAgIHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjE1LVxcdFxcdHNlcV9wcmludGYoc2VxLCBcXFwiXFxcXHRJUCBDaGVja3N1bSBPZmZsb2FkIGluIFJYOiAlc1xcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzM0Nz1zdGF0aWMgdm9pZCBzdG1tYWNfcHJpbnRfYWN0cGh5aWYoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2MzpcXHRjYXNlIERXTUFDX0NPUkVfWEdNQUM6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzY0LVxcdFxcdHBoeWlmX3RhYmxlID0gc3RtbWFjX2R3eGdtYWNfcGh5aWY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczODk9c3RhdGljIGludCBzdG1tYWNfaHdfaW5pdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1MTEtXFx0aWYgKChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV01BQ19DT1JFXzNfNTAgfHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc1MTI6XFx0ICAgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1MTMtXFx0ICAgICFwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VyaXd0X29mZikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03Nzc4PXN0YXRpYyBpbnQgX19zdG1tYWNfZHZyX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldmljZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzk4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc5ODY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzk4Ny1cXHRcXHRuZGV2LVxcdTAwM2VtYXhfbXR1ID0gWEdNQUNfSlVNQk9fTEVOO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz01MzY9c3RhdGljIHUzMiBzdG1tYWNfY2xrX2Nzcl9zZXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy01NTQtXFx0XFx0cmF0ZXMgPSBzdG1tYWNfc3VuOGlfY3NyX3RvX21kYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjU1NTpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy01NTYtXFx0XFx0cmF0ZXMgPSBzdG1tYWNfeGdtYWNfY3NyX3RvX21kYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTk1PWludCBzdG1tYWNfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NjIyOlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjIzLVxcdFxcdG5ld19idXMtXFx1MDAzZXJlYWQgPSBcXHUwMDI2c3RtbWFjX3hnbWFjMl9tZGlvX3JlYWRfYzIyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjUtXFx0LyogTG9va3MgbGlrZSB3ZSBuZWVkIGEgZHVtbXkgcmVhZCBmb3IgWEdNQUMgb25seSBhbmQgQzQ1IFBIWXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjY2NjpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjctXFx0XFx0c3RtbWFjX3hnbWFjMl9tZGlvX3JlYWRfYzQ1KG5ld19idXMsIDAsIDAsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM9NDE0PXN0bW1hY19wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdTggKm1hYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU0NS1cXHRpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsIFxcXCJzbnBzLGR3eGdtYWNcXFwiKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjU0NjpcXHRcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU0Ny1cXHRcXHRwbGF0LVxcdTAwM2VwbXQgPSB0cnVlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOTo1OC4zODcxMDg3ODdaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjI2MTA1MDI4OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFJlYWNoYWJpbGl0eSBvZiBEZXNpZ25XYXJlIFhHTUFDIENvZGUgUGF0aHMgaW4gVmlydHVhbGl6ZWQgRW52aXJvbm1lbnRzKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGBEV01BQ19DT1JFX1hHTUFDYCBzdHVmZi4gRmlyc3QsIEkgc2VlIGl0IGRlZmluZWQgaW4gYSBmZXcgcGxhY2VzOiBgZHdtYWMtc29jZnBnYS5jYCBmb3IgQWx0ZXJhIEFnaWxleDUsIGBkd21hYy10ZWdyYS5jYCBmb3IgTnZpZGlhIFRlZ3JhLCBhbmQgYHN0bW1hY19wbGF0Zm9ybS5jYCBmb3IgZGV2aWNlcyBjb21wYXRpYmxlIHdpdGggXCJzbnBzLGR3eGdtYWNcIi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgYW55IG9mIHRoaXMgY2FuIGFjdHVhbGx5IGJlIHJlYWNoZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpLCBvciBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggc29sZWx5IHBoeXNpY2FsIFNvQ3MuXG5cbk5vdywgbGV0J3MgcmVmZXIgdG8gdGhlIGluc3RydWN0aW9ucyBwcm92aWRlZC4gVGhlIGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY29kZSBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgaW5zdHJ1Y3Rpb25zIGV4cGxpY2l0bHkgc2F5IHRoYXQgd2Ugc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgY2hhbmdlcyBhcmUgbGltaXRlZCB0byB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLlxuXG5JJ20gdGhpbmtpbmcsIGRvZXMgUUVNVSBldmVuIGVtdWxhdGUgXCJzbnBzLGR3eGdtYWNcIiBvciBhbnl0aGluZyByZWxhdGVkIHRvIHRob3NlIHNwZWNpZmljIFNvQ3M/IExldCdzIHNlZSB3aGF0IFFFTVUgKmRvZXMqIHN1cHBvcnQgZm9yIHN0bW1hYy9kZXNpZ253YXJlIG1hYy4gSSBzZWUgYSBsb3Qgb2Ygb3B0aW9uczogYGFsbHdpbm5lci1hMTAtZW1hY2AsIGBjYWRlbmNlX2dlbWAsIGV0Yy4sIGJ1dCBub3RoaW5nIHRoYXQgc2NyZWFtcyBcIkRlc2lnbldhcmUgMTBHYiBFdGhlcm5ldFwiIG9yIEFsdGVyYSBTb0MgRlBHQS4gSSdtIG5vdCBzZWVpbmcgYW55IGBkd3hnbWFjYCBlcXVpdmFsZW50IGluIFFFTVUuIE5vcGUsIFFFTVUgZG9lcyBOT1QgZW11bGF0ZSBTeW5vcHN5cyBEZXNpZ25XYXJlIEVudGVycHJpc2UgMTBHIEV0aGVybmV0IE1BQyBvciBBbHRlcmEgU29DIEZQR0EgQWdpbGV4NS4gSW50ZWwgc3RtbWFjIGlzIGEgZGlmZmVyZW50IHN0b3J5LCB1c2luZyBHTUFDNC9HTUFDNS9EV01BQ19DT1JFX0dNQUM0L0dNQUMuIExvb25nc29uIHVzZXMgRFdNQUNfQ09SRV9HTUFDLlxuXG5Nb3Jlb3ZlciwgUUVNVSBkb2Vzbid0IGVtdWxhdGUgYW55IEludGVsIHN0bW1hYyBQQ0kgLyBMb29uZ3NvbiBQQ0kgLyBNb3RvcmNvbW0gUENJLiBJdCBlbXVsYXRlcyB0aGUgdXN1YWwgc3VzcGVjdHMgbGlrZSBlMTAwMCwgZTEwMDBlLCBpZ2IsIGFuZCBzbyBvbi5cblxuVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcywgY2FuIFN5emthbGxlciBhY3R1YWxseSAqcmVhY2gqIHBsYXRmb3JtIGRyaXZlcnMsIG9yIGFyZSB0aGVzZSBzcGVjaWZpYyBBUk0vU29DIGRyaXZlcnMgKEFsdGVyYSBzb2NmcGdhLCBOdmlkaWEgVGVncmEsIFN5bm9wc3lzIGR3eGdtYWMpIGZ1bmRhbWVudGFsbHkgdGllZCB0byBwaHlzaWNhbCBoYXJkd2FyZT8gSSd2ZSBnb3QgdG8gY29uc2lkZXIgdGhpcy4gTGV0J3MgbG9vayBhdCBzaW1pbGFyIGNhc2VzIGFuZCBndWlkZWxpbmVzLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBjaGVjayBpZiBzeXprYWxsZXIgb3IgYW55IGZ1enppbmcgYmVuY2htYXJrcyBhY2NvdW50IGZvciBldGhlcm5ldCBkcml2ZXJzIG9uIGVtYmVkZGVkIFNvQ3MuXG5cbk9rLCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBjbGVhcjogaWYgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIEFsc28sIGlmIHRoZSBjb2RlIGlzIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCBvciBTbWFydE5JQyBkcml2ZXJzLCBsaWtlIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1LCB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUuIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3Mgc3VjaCBhcyBgLnJlbW92ZWAsIGAuc2h1dGRvd25gLCBvciBgcGNpX3VucmVnaXN0ZXJfZHJpdmVyYCBhcmUgYWxzbyBub3QgZnV6emFibGUuXG5cblNvLCBjYW4gdGhpcyBjb2RlIChzcGVjaWZpY2FsbHkgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgLCBvciB0aGUgY29kZSBpbiBgZHdtYWMtc29jZnBnYS5jYCwgb3IgYGR3eGdtYWMyX3B0cGApIGJlIHJlYWNoZWQgaW4gUUVNVSBvciBHQ0U/XG5cbkxldCdzIGJyZWFrIGl0IGRvd246XG4xLiBgZHdtYWMtc29jZnBnYS5jYDogVGhpcyBpcyBBbHRlcmEgU09DRlBHQS4gU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyBgc210Z19jcm9zc3RzdGFtcGAgaXMgY2FsbGVkIGZvciBQVFAgY3Jvc3MtdGltZXN0YW1waW5nIG9uIEFsdGVyYSBBZ2lsZXgvU3RyYXRpeCBTT0NGUEdBLiBUaGUgY29kZSBpbnRlcmFjdHMgZGlyZWN0bHkgd2l0aCBGUEdBIHJlZ2lzdGVycyBhbmQgTURJTyByZWdpc3RlcnMgb2YgdGhlIFNNVEcgdGltZSBjYXJkIC8gTURJTyBoYXJkd2FyZSAodmlhIGBnZXRfc210Z3RpbWVgKS4gVGhpcyBmZWVscyB2ZXJ5IGhhcmR3YXJlLXNwZWNpZmljLlxuXG4yLiBgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdGA6IFRoaXMgaGFuZGxlcyB0aW1lc3RhbXAgaW50ZXJydXB0cyBmb3IgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgMTBHIEV0aGVybmV0IE1BQyAoYGR3eGdtYWMyYCkuIFRoZSBjb2RlIHJlYWRzIGZyb20gcmVnaXN0ZXJzIGxpa2UgYFhHTUFDX1RJTUVTVEFNUF9TVEFUVVNgIGFuZCBgUFRQX0FDUmAgYW5kIGRpc3BhdGNoZXMgUFRQIGV2ZW50cy4gVGhpcyBpcyBob29rZWQgYnkgYHN0bW1hY19od2lmX2VudHJ5YCBmb3IgYERXTUFDX0NPUkVfWEdNQUNgLiBJdCdzIHJlZ2lzdGVyZWQgaW4gYGR3eGdtYWMyX3B0cC50aW1lc3RhbXBfaW50ZXJydXB0YC4gU28gd2hlbiBleGFjdGx5IGlzIHRoaXMgYHRpbWVzdGFtcF9pbnRlcnJ1cHRgIGNhbGxlZD8gTGV0J3MgY2hlY2sgZm9yIGhvdyB0aGlzIGludGVycnVwdCBoYW5kbGVyIGlzIGNhbGxlZC4gVGltZSB0byBncmVwIGZvciBgdGltZXN0YW1wX2ludGVycnVwdGAgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9gLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzYwOSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6NDA6MjAuOTk3NjE1NTg0WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODcwMDYyOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0aW1lc3RhbXBfaW50ZXJydXB0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jPTUxMz12b2lkIGR3bWFjMTAwMF9nZXRfcHRwdGltZSh2b2lkIF9faW9tZW0gKnB0cGFkZHIsIHU2NCAqcHRwX3RpbWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTUyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jOjUyMzp2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTUyNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTU1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jOjU1MzpzdGF0aWMgdm9pZCBkd21hYzEwMDBfdGltZXN0YW1wX2ludGVycnVwdF9jZmcoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBib29sIGVuKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMtNTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmM9NTY3PWludCBkd21hYzEwMDBfcHRwX2VuYWJsZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMtNjAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmM6NjAxOlxcdFxcdGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0X2NmZyhwcml2LCBvbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYy02MDItXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM9MTE0Mz1zdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjExNTc6dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE1OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg9NDk3PXN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oLTUwNi1cXHR2b2lkICgqZ2V0X3B0cHRpbWUpKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1NjQgKnB0cF90aW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg6NTA3OlxcdHZvaWQgKCp0aW1lc3RhbXBfaW50ZXJydXB0KShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaC01MDgtXFx0dm9pZCAoKmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSkoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaC01MjQtXFx0c3RtbWFjX2RvX3ZvaWRfY2FsbGJhY2soX19wcml2LCBwdHAsIGdldF9wdHB0aW1lLCBfX2FyZ3MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oOjUyNTojZGVmaW5lIHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0KF9fcHJpdiwgX19hcmdzLi4uKSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oOjUyNjpcXHRzdG1tYWNfZG9fdm9pZF9jYWxsYmFjayhfX3ByaXYsIHB0cCwgdGltZXN0YW1wX2ludGVycnVwdCwgX19hcmdzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaC01MjctI2RlZmluZSBzdG1tYWNfaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5KF9fcHJpdiwgX19hcmdzLi4uKSBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yMDQ9c3RhdGljIHZvaWQgZ2V0X3B0cHRpbWUodm9pZCBfX2lvbWVtICpwdHBhZGRyLCB1NjQgKnB0cF90aW1lKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jOjIxNDpzdGF0aWMgdm9pZCB0aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yMTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM9MjU4PWNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgc3RtbWFjX3B0cCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI2NS1cXHQuZ2V0X3B0cHRpbWUgPSBnZXRfcHRwdGltZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYzoyNjY6XFx0LnRpbWVzdGFtcF9pbnRlcnJ1cHQgPSB0aW1lc3RhbXBfaW50ZXJydXB0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI2Ny1cXHQuaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5ID0gaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM9MjcwPWNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHdtYWMxMDAwX3B0cCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI3Ny1cXHQuZ2V0X3B0cHRpbWUgPSBkd21hYzEwMDBfZ2V0X3B0cHRpbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM6Mjc4OlxcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjc5LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yODE9Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd3hnbWFjMl9wdHAgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yODgtXFx0LmdldF9wdHB0aW1lID0gZ2V0X3B0cHRpbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM6Mjg5OlxcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yOTAtXFx0Lmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSA9IGh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjIwOT1zdGF0aWMgdm9pZCBzdG1tYWNfY29tbW9uX2ludGVycnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYyNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MjQ1OlxcdFxcdHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0KHByaXYsIHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjI0Ni1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmg9MTA0PXZvaWQgZHdtYWMxMDAwX2dldF9wdHB0aW1lKHZvaWQgX19pb21lbSAqcHRwYWRkciwgdTY0ICpwdHBfdGltZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oOjEwNTp2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oOjEwNjp2b2lkIGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmgtMTA3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTo0MDoyMS4wNTYzMjAyMTJaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTM5Nzg0ODMwOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBxdWVzdGlvbiBpczogd2hhdCBhY3R1YWxseSBraWNrcyBvZmYgdGhlIGBzdG1tYWNfdGltZXN0YW1wX2ludGVycnVwdGAgZnVuY3Rpb24/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250cm9sIGZsb3cgaGVyZS4gU28sIEkgc2VlIHRoYXQgdGhpcyBpbnRlcnJ1cHQgaXMgbGlrZWx5IGhhbmRsZWQgYnkgYHN0bW1hY19jb21tb25faW50ZXJydXB0YCwgYW5kIHRoYXQncyBmb3VuZCBpbiBgc3RtbWFjX21haW4uY2AuXG5cbioqRGl2aW5nIGludG8gdGhlIEludGVycnVwdCBIYW5kbGluZyoqXG5cbkknbSB6ZXJvaW5nIGluIG9uIGBzdG1tYWNfbWFpbi5jYCBub3csIHNwZWNpZmljYWxseSBhcm91bmQgbGluZXMgNjIwOSB0byA2MjUwLiBUaGF0J3MgdGhlIGxpa2VseSByZWdpb24gd2hlcmUgdGhlIGludGVycnVwdCBsb2dpYyBpcyBoYW5kbGVkLiBJJ2xsIG5lZWQgdG8gY2FyZWZ1bGx5IGV4YW1pbmUgdGhhdCBzZWN0aW9uIG9mIHRoZSBjb2RlIHRvIHRyYWNlIHRoZSBjb25kaXRpb25zIHRoYXQgbGVhZCB0byB0aGUgYHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0YCBiZWluZyBjYWxsZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbnRlcnJ1cHQgZW5hYmxlL2Rpc2FibGUgbWVjaGFuaXNtcyBhbmQgaW50ZXJydXB0IHN0YXR1cyBjaGVja3MgdGhhdCB0YWtlIHBsYWNlIHRvIGdldCB0aGUgZnVsbCBwaWN0dXJlLiBNeSBnb2FsIGlzIHRvIG1hcCB0aGUgcGF0aCBvZiBleGVjdXRpb24gdG8gdW5kZXJzdGFuZCBob3cgdGhpcyB0aW1lc3RhbXAgaW50ZXJydXB0IGlzIHRyaWdnZXJlZCBhbmQgd2hhdCB0aGUgY3JpdGljYWwgcGllY2VzIG9mIGNvbnRleHQgYXJlIGZvciBpdHMgb3BlcmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTk4OSwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjQwOjM1LjAzNDgwNjcxNFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNDc1MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1wiLFxuICBcIkZpcnN0TGluZVwiOiA2MjA1LFxuICBcIkxpbmVDb3VudFwiOiA0NVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCI2MjA1OlxcdFxcbjYyMDY6XFx0XFx0cmV0dXJuIDA7XFxuNjIwNzpcXHR9XFxuNjIwODpcXHRcXG42MjA5OlxcdHN0YXRpYyB2b2lkIHN0bW1hY19jb21tb25faW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG42MjEwOlxcdHtcXG42MjExOlxcdFxcdHU4IHJ4X2NudCA9IHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXJ4X3F1ZXVlc190b191c2U7XFxuNjIxMjpcXHRcXHR1OCB0eF9jbnQgPSBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2V0eF9xdWV1ZXNfdG9fdXNlO1xcbjYyMTM6XFx0XFx0dTggcXVldWVzX2NvdW50O1xcbjYyMTQ6XFx0XFx0Ym9vbCB4bWFjO1xcbjYyMTU6XFx0XFx0dTggcXVldWU7XFxuNjIxNjpcXHRcXG42MjE3OlxcdFxcdHhtYWMgPSBkd21hY19pc194bWFjKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSk7XFxuNjIxODpcXHRcXHRxdWV1ZXNfY291bnQgPSAocnhfY250IFxcdTAwM2UgdHhfY250KSA/IHJ4X2NudCA6IHR4X2NudDtcXG42MjE5OlxcdFxcbjYyMjA6XFx0XFx0aWYgKHByaXYtXFx1MDAzZWlycV93YWtlKVxcbjYyMjE6XFx0XFx0XFx0cG1fd2FrZXVwX2V2ZW50KHByaXYtXFx1MDAzZWRldmljZSwgMCk7XFxuNjIyMjpcXHRcXG42MjIzOlxcdFxcdGlmIChwcml2LVxcdTAwM2VkbWFfY2FwLmVzdHNlbClcXG42MjI0OlxcdFxcdFxcdHN0bW1hY19lc3RfaXJxX3N0YXR1cyhwcml2LCBwcml2LCBwcml2LVxcdTAwM2VkZXYsXFxuNjIyNTpcXHRcXHRcXHRcXHRcXHQgICAgICBcXHUwMDI2cHJpdi1cXHUwMDNleHN0YXRzLCB0eF9jbnQpO1xcbjYyMjY6XFx0XFxuNjIyNzpcXHRcXHRpZiAoc3RtbWFjX2ZwZV9zdXBwb3J0ZWQocHJpdikpXFxuNjIyODpcXHRcXHRcXHRzdG1tYWNfZnBlX2lycV9zdGF0dXMocHJpdik7XFxuNjIyOTpcXHRcXG42MjMwOlxcdFxcdC8qIFRvIGhhbmRsZSBHTUFDIG93biBpbnRlcnJ1cHRzICovXFxuNjIzMTpcXHRcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQyB8fCB4bWFjKSB7XFxuNjIzMjpcXHRcXHRcXHRpbnQgc3RhdHVzID0gc3RtbWFjX2hvc3RfaXJxX3N0YXR1cyhwcml2LCBcXHUwMDI2cHJpdi1cXHUwMDNleHN0YXRzKTtcXG42MjMzOlxcdFxcbjYyMzQ6XFx0XFx0XFx0aWYgKHVubGlrZWx5KHN0YXR1cykpIHtcXG42MjM1OlxcdFxcdFxcdFxcdC8qIEZvciBMUEkgd2UgbmVlZCB0byBzYXZlIHRoZSB0eCBzdGF0dXMgKi9cXG42MjM2OlxcdFxcdFxcdFxcdGlmIChzdGF0dXMgXFx1MDAyNiBDT1JFX0lSUV9UWF9QQVRIX0lOX0xQSV9NT0RFKVxcbjYyMzc6XFx0XFx0XFx0XFx0XFx0cHJpdi1cXHUwMDNldHhfcGF0aF9pbl9scGlfbW9kZSA9IHRydWU7XFxuNjIzODpcXHRcXHRcXHRcXHRpZiAoc3RhdHVzIFxcdTAwMjYgQ09SRV9JUlFfVFhfUEFUSF9FWElUX0xQSV9NT0RFKVxcbjYyMzk6XFx0XFx0XFx0XFx0XFx0cHJpdi1cXHUwMDNldHhfcGF0aF9pbl9scGlfbW9kZSA9IGZhbHNlO1xcbjYyNDA6XFx0XFx0XFx0fVxcbjYyNDE6XFx0XFxuNjI0MjpcXHRcXHRcXHRmb3IgKHF1ZXVlID0gMDsgcXVldWUgXFx1MDAzYyBxdWV1ZXNfY291bnQ7IHF1ZXVlKyspXFxuNjI0MzpcXHRcXHRcXHRcXHRzdG1tYWNfaG9zdF9tdGxfaXJxX3N0YXR1cyhwcml2LCBwcml2LVxcdTAwM2VodywgcXVldWUpO1xcbjYyNDQ6XFx0XFxuNjI0NTpcXHRcXHRcXHRzdG1tYWNfdGltZXN0YW1wX2ludGVycnVwdChwcml2LCBwcml2KTtcXG42MjQ2OlxcdFxcdH1cXG42MjQ3OlxcdH1cXG42MjQ4OlxcdFxcbjYyNDk6XFx0LyoqXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjQwOjM1LjAzNTE1NTgyNFoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo5MzQzNzgyOTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGZpcnN0IHRoaW5nIEknbSBkb2luZyBpcyB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgdGFyZ2V0IGhhcmR3YXJlIG9mIHRoZSBjb2RlIG1vZGlmaWNhdGlvbnMgaW4gdGhpcyBwYXRjaC4gSSBzZWUgcmVmZXJlbmNlcyB0byBgRFdNQUNfQ09SRV9YR01BQ2AgYW5kIGBkd21hYy1zb2NmcGdhYC4gIGBkd21hYy1zb2NmcGdhYCBpbW1lZGlhdGVseSBmbGFncyBhcyBBbHRlcmEvSW50ZWwgU09DRlBHQSwgc3BlY2lmaWNhbGx5IEFnaWxleCA1LCBTdHJhdGl4IDEwLCBvciBzaW1pbGFyLiAgSSBhbHNvIHNlZSBtZW50aW9uIG9mIGBkd21hYy10ZWdyYWAgKE5WSURJQSBUZWdyYSkgYW5kIGBzbnBzLGR3eGdtYWNgIChTeW5vcHN5cyBEZXNpZ25XYXJlIEVudGVycHJpc2UgMTBHIEV0aGVybmV0IE1BQykuICBOb25lIG9mIHRoZXNlIGRldmljZSB0eXBlcyBhcmUgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUsIHdoaWNoIGlzIGEga2V5IGNvbnNpZGVyYXRpb24uXG5cbk5vdywgSSdtIGNoZWNraW5nIHRvIHNlZSAqaWYqIFFFTVUgZXZlbiBwcm92aWRlcyBlbXVsYXRpb24gZm9yIGFueSBTVE1NQUMgb3IgRFdNQUMgY29udHJvbGxlcnMuIEkgZmluZCB0aGF0IFFFTVUgaGFzIGBhbGx3aW5uZXItYTEwLWVtYWNgLCB3aGljaCBpcyBub3QgYSBEV01BQyBidXQgaXMgYSBzdW40aSBlbWFjLiBFdmVuIGlmIFFFTVUgKmRpZCogZW11bGF0ZSBhIGJhc2ljIERXTUFDIChsaWtlIHN1bjhpIG9yIHN0bTMyKSwgbm9uZSBvZiB0aG9zZSB3b3VsZCBiZSBYR01BQyAoMTBHYnBzIE1BQykgb3IgdGhlIEFsdGVyYS9JbnRlbCBTT0NGUEdBIHZlcnNpb24gKGBkd21hYy1zb2NmcGdhYCkuXG5cblRoZW4gdGhlIHRob3VnaHQgc3RyaWtlcyB0byBjaGVjayBpZiB0aGVyZSBhcmUgUENJIGVtdWxhdGlvbnMuIFRoZSBzaG9ydCBhbnN3ZXIgaXMgbm87IFFFTVUgbGFja3Mgc3BlY2lmaWMgbW9kZWxzIGZvciB0aGUgSW50ZWwgRWxraGFydCBMYWtlL1RpZ2VyIExha2UgUFNFIGR3bWFjLCBMb29uZ3NvbiBvciBNb3RvcmNvbW0gUENJIGV0aGVybmV0IGltcGxlbWVudGF0aW9ucy5cblxuTG9va2luZyBjbG9zZWx5IGF0IHRoZSBzcGVjaWZpYyBmaWxlcyBiZWluZyBtb2RpZmllZCwgSSBzZWUgYGR3bWFjLXNvY2ZwZ2EuY2AsIHdoaWNoIGlzIHRoZSBBbHRlcmEgU09DRlBHQS1zcGVjaWZpYyBkcml2ZXIgdGhhdCBkZWFscyB3aXRoIHRoZSBTTVRHIHRpbWUgc3RhbXAgY2FyZCBpbnRlcmZhY2UuIFRoZSBvdGhlciBmaWxlcywgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgIGluIGBkd3hnbWFjMl9jb3JlLmNgIGFuZCBhIGZldyBvdGhlcnMsIGFyZSBkZWFsaW5nIHdpdGggdGhlIERXWEdNQUMgKDEwR2JwcyBEZXNpZ25XYXJlIE1BQykgdGltZXN0YW1wIGZ1bmN0aW9uYWxpdHkuXG5cbk5vdywgSSdtIHJlLXJlYWRpbmcgdGhlIHJ1bGVzIHJlZ2FyZGluZyB3aGF0IG1ha2VzIGEgcGF0Y2ggKm5vdCogd29ydGggZnV6emluZy4gIFRoaXMgaW5jbHVkZXMgdGhpbmdzIHRoYXQgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGlzIGluY2x1ZGVzIGNvZGUgdGhhdCByZWxpZXMgb24gcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gUUVNVS5cblxuR2l2ZW4gdGhlIHJ1bGUgc2V0LCB0aGUgY2VudHJhbCBxdWVzdGlvbiBiZWNvbWVzOiBhcmUgU1RNTUFDIC8gRFdYR01BQyAvIERXTUFDX1NPQ0ZQR0EgZmVhdHVyZXMgcmVhY2hhYmxlIHdpdGhpbiBRRU1VIG9yIEdDRT8gVGhlIGFuc3dlciBpcyBhIGNsZWFyIG5vLlxuXG4xLiAgYERXTUFDLVNvQ0ZQR0FgIHJlcXVpcmVzIHJlYWwgQWx0ZXJhL0ludGVsIFNvQyBGUEdBIGhhcmR3YXJlIHdpdGggc3BlY2lmaWMgc3lzdGVtIG1hbmFnZXIgcmVnaXN0ZXJzIGFuZCBGUEdBIGZhYnJpYyBpbnRlcmZhY2VzLlxuMi4gIGBEV1hHTUFDYCBpcyBhIFN5bm9wc3lzIDEwRyBFdGhlcm5ldCBNQUMgSVAsIGZvdW5kIG9ubHkgaW4gc3BlY2lmaWMgcGh5c2ljYWwgU29DcyBsaWtlIEFsdGVyYSBBZ2lsZXggNSBhbmQgTnZpZGlhIFRlZ3JhMjM0L1Rob3IuXG4zLiAgU3RhbmRhcmQgUUVNVSBkb2VzICpub3QqIGVtdWxhdGUgdGhlc2UgU3lub3BzeXMgRFdYR01BQyBvciBBbHRlcmEgU29DIEZQR0EgRXRoZXJuZXQgY29udHJvbGxlcnMuXG40LiAgR0NFIGRvZXNuJ3QgcHJvdmlkZSBlbXVsYXRpb24gZWl0aGVyLlxuXG5UaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIG5vdCByZWFjaGFibGUgaW4gdGhlc2UgZW52aXJvbm1lbnRzLiAgSSBkb3VibGUtY2hlY2sgdGhlIGZpbGVzIGFuZCB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSBjaGFuZ2VzLCBhbmQgSSdtIGxvb2tpbmcgZm9yIGFueSBvdGhlciBtb2RpZmljYXRpb25zLiBUaGUgZGlmZnMgY29uZmlybSB0aGF0IGFsbCBtb2RpZmljYXRpb25zIGFyZSBjb25maW5lZCB0byBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgY29kZSB0aGF0IHJlbGllcyBvbiB0aGVzZSBwaHlzaWNhbCBTb0NzIGFuZCBGUEdBcy4gIFRoZSBwYXRjaCBpbXBhY3RzIHRoaW5ncyBsaWtlIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxpbmcgZm9yIERXWEdNQUMgYW5kIGNyb3NzLXRpbWVzdGFtcGluZyBpbiB0aGUgQWx0ZXJhIFNvQ0ZQR0EgZHJpdmVyLiAgQm90aCBhcmUgbm90IGFjY2Vzc2libGUgaW4gUUVNVSBvciBHQ0UuXG5cblRoZSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBwYXRjaCBpcyBub3Qgc3VpdGFibGUgZm9yIGZ1enppbmcuICBUaGUgYFdvcnRoRnV6emluZ2AgZmxhZyBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAuIFRoZXJlIGFyZSBubyBzcGVjaWZpYyBzeW1ib2xzIG9yIGNvbmZpZ3VyYXRpb25zIHRvIGVuYWJsZSBvciBmb2N1cyBvbiBzaW5jZSB0aGUgY29kZSBjYW4ndCBiZSBleGVjdXRlZCwgYW5kIHRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIGFyZSBoYXJkd2FyZS1kZXBlbmRlbnQgYW5kIGNhbid0IGJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFLlxuXG5GaW5hbGx5LCBJJ20gc2V0dGluZyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgZm9yIHRoZSBgc2V0LXJlc3VsdHNgIHRvb2w6XG5cbiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYFxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW11gXG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gXG4qICAgYFJlYXNvbmluZ2A6IENvbmNpc2UgZXhwbGFuYXRpb24gb2Ygd2h5IGl0IGlzIGBmYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMDUwLCJPdXRwdXRUb2tlbnMiOjExMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNzQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTo0MDo0NC4zNzg5NDE0MjlaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTk5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgU1RNTUFDIERXWEdNQUMgKDEwRyBNQUMpIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxpbmcgYW5kIEFsdGVyYSBTb0NGUEdBIGV0aGVybmV0IGdsdWUgZHJpdmVyLiBUaGVzZSBjb2RlIHBhdGhzIHJlcXVpcmUgcGh5c2ljYWwgU29DL0ZQR0EgaGFyZHdhcmUgKHN1Y2ggYXMgSW50ZWwvQWx0ZXJhIFNvQ0ZQR0Egb3IgTnZpZGlhIFRlZ3JhIHBsYXRmb3JtcykgdGhhdCBpcyBub3QgYXZhaWxhYmxlIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjQwOjQ0LjM3ODk2NjM2OVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7mxxf[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-03 09:20:40 +0000 UTC FinishedAt: 2026-09-03 09:40:45 +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+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+Mm08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyOWEyNGIzZDg1NDU4YTJhM2I3MTMzYzQ0OWVhNzBhZTYxNmQ5ZTU2XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBTZXAgMyAwOTozODozNiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLmE0ZDAwYmY4MTQyMzcgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xuQEAgLTMxMCw2ICYjNDM7MzEwLDEzIEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sXG4gXHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWZsYWdzIFx1MDAyNiBTVE1NQUNfRkxBR19FWFRfU05BUFNIT1RfRU4pXG4gXHRcdHJldHVybiAtRUJVU1k7XG4gXG4mIzQzO1x0LyogVGhlIFhHTUFDIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxlciBjbGVhcnMgVFNJUyBieSByZWFkaW5nXG4mIzQzO1x0ICogWEdNQUNfVElNRVNUQU1QX1NUQVRVUywgd2hpY2ggd291bGQgcmFjZSB3aXRoIHRoZSBUU0lTIHBvbGxcbiYjNDM7XHQgKiBiZWxvdy4gIE1hc2sgWEdNQUNfVFNJRSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjcm9zcy10aW1lc3RhbXBcbiYjNDM7XHQgKiBzbyB0aGUgaGFuZGxlciBkb2VzIG5vdCBydW4gd2hpbGUgd2Ugb3duIHRoZSBzbmFwc2hvdCBGSUZPLlxuJiM0MztcdCAqL1xuJiM0MztcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCBYR01BQ19UU0lFLCAwKTtcbiYjNDM7XG4gXHRtdXRleF9sb2NrKFx1MDAyNnByaXYtXHUwMDNlYXV4X3RzX2xvY2spO1xuIFx0LyogRW5hYmxlIEludGVybmFsIHNuYXBzaG90IHRyaWdnZXIgKi9cbiBcdGFjcl92YWx1ZSA9IHJlYWRsKHB0cGFkZHIgJiM0MzsgUFRQX0FDUik7XG5AQCAtMzI5LDYgJiM0MzszMzYsNyBAQCBzdGF0aWMgaW50IHNtdGdfY3Jvc3N0c3RhbXAoa3RpbWVfdCAqZGV2aWNlLCBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCAqc3lzdGVtLFxuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4gXHRcdG11dGV4X3VubG9jayhcdTAwMjZwcml2LVx1MDAzZWF1eF90c19sb2NrKTtcbiYjNDM7XHRcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcbiBcdFx0cmV0dXJuIC1FSU5WQUw7XG4gXHR9XG4gXHR3cml0ZWwoYWNyX3ZhbHVlLCBwdHBhZGRyICYjNDM7IFBUUF9BQ1IpO1xuQEAgLTM1Myw2ICYjNDM7MzYxLDcgQEAgc3RhdGljIGludCBzbXRnX2Nyb3NzdHN0YW1wKGt0aW1lX3QgKmRldmljZSwgc3RydWN0IHN5c3RlbV9jb3VudGVydmFsX3QgKnN5c3RlbSxcbiBcdHJldCA9IHJlYWRsX3BvbGxfdGltZW91dChwcml2LVx1MDAzZWlvYWRkciAmIzQzOyBYR01BQ19JTlRfU1RBVFVTLCB2LFxuIFx0XHRcdFx0ICh2IFx1MDAyNiBYR01BQ19JTlRfVFNJUyksIDEwMCwgMTAwMDApO1xuIFx0aWYgKHJldCkge1xuJiM0MztcdFx0c3RtbWFjX21hY19pcnFfbW9kaWZ5KHByaXYsIDAsIFhHTUFDX1RTSUUpO1xuIFx0XHRuZXRkZXZfZXJyKHByaXYtXHUwMDNlZGV2LCBcJiMzNDslczogV2FpdCBmb3IgdGltZSBzeW5jIG9wZXJhdGlvbiB0aW1lb3V0XFxuXCYjMzQ7LFxuIFx0XHRcdCAgIF9fZnVuY19fKTtcbiBcdFx0cmV0dXJuIHJldDtcbkBAIC0zNzUsNiAmIzQzOzM4NCw4IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sXG4gXHRcdHJlYWRfdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cHJpdi1cdTAwM2VwdHBfbG9jaywgZmxhZ3MpO1xuIFx0fVxuIFxuJiM0MztcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcbiYjNDM7XG4gXHRnZXRfc210Z3RpbWUocHJpdi1cdTAwM2VtaWksIFNNVEdfTURJT19BRERSLCBcdTAwMjZzbXRnX3RpbWUpO1xuIFx0c3lzdGVtLVx1MDAzZWN5Y2xlcyA9IHNtdGdfdGltZTtcbiBcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxuaW5kZXggZjhhYjM0N2Y3YjViOS4uMDNjYmFlMzI2OTk1YiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmhcbkBAIC04Nyw3ICYjNDM7ODcsNyBAQFxuICNkZWZpbmUgWEdNQUNfVFNJRVx0XHRcdEJJVCgxMilcbiAjZGVmaW5lIFhHTUFDX0xQSUlFXHRcdFx0QklUKDUpXG4gI2RlZmluZSBYR01BQ19QTVRJRVx0XHRcdEJJVCg0KVxuLSNkZWZpbmUgWEdNQUNfSU5UX0RFRkFVTFRfRU5cdFx0KFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUpXG4mIzQzOyNkZWZpbmUgWEdNQUNfSU5UX0RFRkFVTFRfRU5cdFx0KFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUgfCBYR01BQ19UU0lFKVxuICNkZWZpbmUgWEdNQUNfUXhfVFhfRkxPV19DVFJMKHgpXHQoMHgwMDAwMDA3MCAmIzQzOyAoeCkgKiA0KVxuICNkZWZpbmUgWEdNQUNfUFRcdFx0XHRHRU5NQVNLKDMxLCAxNilcbiAjZGVmaW5lIFhHTUFDX1RGRVx0XHRcdEJJVCgxKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuY1xuaW5kZXggMWE4OGNiYWVkNzBjYS4uODkxYjdjZWVhMmQ0NSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXG5AQCAtMTE1NCw2ICYjNDM7MTE1NCw0OSBAQCBzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKVxuIFx0cmV0dXJuIDA7XG4gfVxuIFxuJiM0Mzt2b2lkIGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuJiM0Mzt7XG4mIzQzO1x0dTMyIHRzX3N0YXR1cywgcGVuZGluZ19zbmFwc2hvdHMsIGFjcl92YWx1ZSwgY2hhbm5lbDtcbiYjNDM7XHRzdHJ1Y3QgcHRwX2Nsb2NrX2V2ZW50IGV2ZW50O1xuJiM0MztcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4mIzQzO1x0dTY0IHB0cF90aW1lO1xuJiM0MztcdGludCBpO1xuJiM0MztcbiYjNDM7XHQvKiBSZWFkIFhHTUFDX1RJTUVTVEFNUF9TVEFUVVMgdG8gZ2V0IHRoZSBBVVggc25hcHNob3RcbiYjNDM7XHQgKiBjb3VudC4gIFRoaXMgcmVhZCBhbHNvIGNsZWFycyB0aGUgVFNJUyBiaXQgaW5cbiYjNDM7XHQgKiBYR01BQ19JTlRfU1RBVFVTLlxuJiM0MztcdCAqIFRYIHRpbWVzdGFtcCBwb2xsaW5nIG1heSBoYXZlIGFscmVhZHkgY2xlYXJlZCBUU0lTXG4mIzQzO1x0ICogYW5kIEFVWFRTVFJJRywgc28gcmVseSBvbiBBVFNOUyBpbnN0ZWFkLlxuJiM0MztcdCAqIFRYVFNDIGlzIGNsZWFyZWQgYnkgWEdNQUNfVFhUSU1FU1RBTVBfU0VDLCBub3QgYnlcbiYjNDM7XHQgKiB0aGlzIHJlZ2lzdGVyLCBzbyB0aGVyZSBpcyBubyBjb25mbGljdC5cbiYjNDM7XHQgKi9cbiYjNDM7XHR0c19zdGF0dXMgPSByZWFkbChwcml2LVx1MDAzZWlvYWRkciAmIzQzOyBYR01BQ19USU1FU1RBTVBfU1RBVFVTKTtcbiYjNDM7XG4mIzQzO1x0aWYgKCEocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWZsYWdzIFx1MDAyNiBTVE1NQUNfRkxBR19FWFRfU05BUFNIT1RfRU4pKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRwZW5kaW5nX3NuYXBzaG90cyA9IEZJRUxEX0dFVChYR01BQ19USU1FU1RBTVBfQVRTTlNfTUFTSywgdHNfc3RhdHVzKTtcbiYjNDM7XHRpZiAoIXBlbmRpbmdfc25hcHNob3RzKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcbiYjNDM7XHRhY3JfdmFsdWUgPSByZWFkbChwcml2LVx1MDAzZXB0cGFkZHIgJiM0MzsgUFRQX0FDUik7XG4mIzQzO1x0Y2hhbm5lbCA9IEZJRUxEX0dFVChQVFBfQUNSX01BU0ssIGFjcl92YWx1ZSk7XG4mIzQzO1x0aWYgKCFjaGFubmVsKVxuJiM0MztcdFx0cmV0dXJuO1xuJiM0MztcdGNoYW5uZWwgPSBpbG9nMihjaGFubmVsKTtcbiYjNDM7XG4mIzQzO1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcGVuZGluZ19zbmFwc2hvdHM7IGkmIzQzOyYjNDM7KSB7XG4mIzQzO1x0XHRyZWFkX2xvY2tfaXJxc2F2ZShcdTAwMjZwcml2LVx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XG4mIzQzO1x0XHRzdG1tYWNfZ2V0X3B0cHRpbWUocHJpdiwgcHJpdi1cdTAwM2VwdHBhZGRyLCBcdTAwMjZwdHBfdGltZSk7XG4mIzQzO1x0XHRyZWFkX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnByaXYtXHUwMDNlcHRwX2xvY2ssIGZsYWdzKTtcbiYjNDM7XG4mIzQzO1x0XHRldmVudC50eXBlID0gUFRQX0NMT0NLX0VYVFRTO1xuJiM0MztcdFx0ZXZlbnQuaW5kZXggPSBjaGFubmVsO1xuJiM0MztcdFx0ZXZlbnQudGltZXN0YW1wID0gcHRwX3RpbWU7XG4mIzQzO1x0XHRwdHBfY2xvY2tfZXZlbnQocHJpdi1cdTAwM2VwdHBfY2xvY2ssIFx1MDAyNmV2ZW50KTtcbiYjNDM7XHR9XG4mIzQzO31cbiYjNDM7XG4gc3RhdGljIGludCBkd3hnbWFjMl9mbGV4X3Bwc19jb25maWcodm9pZCBfX2lvbWVtICppb2FkZHIsIGludCBpbmRleCxcbiBcdFx0XHRcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Bwc19jZmcgKmNmZywgYm9vbCBlbmFibGUsXG4gXHRcdFx0XHQgICAgdTMyIHN1Yl9zZWNvbmRfaW5jLCB1MzIgc3lzdGltZV9mbGFncylcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmNcbmluZGV4IDI2NTY3MTE3MGJmNmUuLmViYTg3NDEwZjk4NWEgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmNcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xuQEAgLTI1OCw3ICYjNDM7MjU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XG4gXHRcdC5kbWEgPSBcdTAwMjZkd3hnbWFjMjEwX2RtYV9vcHMsXG4gXHRcdC5tYWMgPSBcdTAwMjZkd3hnbWFjMjEwX29wcyxcbiBcdFx0LnZsYW4gPSBcdTAwMjZkd3hnbWFjMjEwX3ZsYW5fb3BzLFxuLVx0XHQuaHd0aW1lc3RhbXAgPSBcdTAwMjZzdG1tYWNfcHRwLFxuJiM0MztcdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2ZHd4Z21hYzJfcHRwLFxuIFx0XHQucHRwID0gXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXG4gXHRcdC5tb2RlID0gTlVMTCxcbiBcdFx0LnRjID0gXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxuQEAgLTI4MCw3ICYjNDM7MjgwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XG4gXHRcdC5kbWEgPSBcdTAwMjZkd3hnbWFjMjEwX2RtYV9vcHMsXG4gXHRcdC5tYWMgPSBcdTAwMjZkd3hsZ21hYzJfb3BzLFxuIFx0XHQudmxhbiA9IFx1MDAyNmR3eGxnbWFjMl92bGFuX29wcyxcbi1cdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2c3RtbWFjX3B0cCxcbiYjNDM7XHRcdC5od3RpbWVzdGFtcCA9IFx1MDAyNmR3eGdtYWMyX3B0cCxcbiBcdFx0LnB0cCA9IFx1MDAyNnN0bW1hY19wdHBfY2xvY2tfb3BzLFxuIFx0XHQubW9kZSA9IE5VTEwsXG4gXHRcdC50YyA9IFx1MDAyNmR3bWFjNTEwX3RjX29wcyxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcbmluZGV4IGZlMThmOThmYWU0NTEuLjVhMzA4ZTc5ZGI0YTkgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcbiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaFxuQEAgLTY3Miw2ICYjNDM7NjcyLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgbmRlc2Nfb3BzO1xuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIHN0bW1hY19wdHA7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHdtYWMxMDAwX3B0cDtcbiYjNDM7ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHd4Z21hYzJfcHRwO1xuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzIHJpbmdfbW9kZV9vcHM7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHM7XG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY1xuaW5kZXggYjlhOTg1ZmE3NzJjOS4uOWQ3ZDI0MjU5YWJkNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY1xuQEAgLTI3NywzICYjNDM7Mjc3LDE1IEBAIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHdtYWMxMDAwX3B0cCA9IHtcbiBcdC5nZXRfcHRwdGltZSA9IGR3bWFjMTAwMF9nZXRfcHRwdGltZSxcbiBcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXG4gfTtcbiYjNDM7XG4mIzQzO2NvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHd4Z21hYzJfcHRwID0ge1xuJiM0MztcdC5jb25maWdfaHdfdHN0YW1waW5nID0gY29uZmlnX2h3X3RzdGFtcGluZyxcbiYjNDM7XHQuaW5pdF9zeXN0aW1lID0gaW5pdF9zeXN0aW1lLFxuJiM0MztcdC5jb25maWdfc3ViX3NlY29uZF9pbmNyZW1lbnQgPSBjb25maWdfc3ViX3NlY29uZF9pbmNyZW1lbnQsXG4mIzQzO1x0LmNvbmZpZ19hZGRlbmQgPSBjb25maWdfYWRkZW5kLFxuJiM0MztcdC5hZGp1c3Rfc3lzdGltZSA9IGFkanVzdF9zeXN0aW1lLFxuJiM0MztcdC5nZXRfc3lzdGltZSA9IGdldF9zeXN0aW1lLFxuJiM0MztcdC5nZXRfcHRwdGltZSA9IGdldF9wdHB0aW1lLFxuJiM0MztcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCxcbiYjNDM7XHQuaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5ID0gaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5LFxuJiM0Mzt9O1xuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaFxuaW5kZXggM2ZlMGUzYTgwZTgwYS4uZGFkZTA5NjE0MTYzYiAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaFxuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oXG5AQCAtMTAzLDYgJiM0MzsxMDMsNyBAQCBpbnQgZHdtYWMxMDAwX3B0cF9lbmFibGUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXG4gXG4gdm9pZCBkd21hYzEwMDBfZ2V0X3B0cHRpbWUodm9pZCBfX2lvbWVtICpwdHBhZGRyLCB1NjQgKnB0cF90aW1lKTtcbiB2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG4mIzQzO3ZvaWQgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gc3RtbWFjX3B0cF9jbG9ja19vcHM7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBkd21hYzEwMDBfcHRwX2Nsb2NrX29wcztcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgU1RNTUFDIERXWEdNQUMgKDEwRyBNQUMpIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxpbmcgYW5kIEFsdGVyYSBTb0NGUEdBIGV0aGVybmV0IGdsdWUgZHJpdmVyLiBUaGVzZSBjb2RlIHBhdGhzIHJlcXVpcmUgcGh5c2ljYWwgU29DL0ZQR0EgaGFyZHdhcmUgKHN1Y2ggYXMgSW50ZWwvQWx0ZXJhIFNvQ0ZQR0Egb3IgTnZpZGlhIFRlZ3JhIHBsYXRmb3JtcykgdGhhdCBpcyBub3QgYXZhaWxhYmxlIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI5YTI0YjNkODU0NThhMmEzYjcxMzNjNDQ5ZWE3MGFlNjE2ZDllNTYKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IFNlcCAzIDA5OjM4OjM2IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jCmluZGV4IDFkN2YwYTU3ZDI4ODkuLmE0ZDAwYmY4MTQyMzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMKQEAgLTMxMCw2ICYjNDM7MzEwLDEzIEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sCiAJaWYgKHByaXYtJmd0O3BsYXQtJmd0O2ZsYWdzICZhbXA7IFNUTU1BQ19GTEFHX0VYVF9TTkFQU0hPVF9FTikKIAkJcmV0dXJuIC1FQlVTWTsKIAomIzQzOwkvKiBUaGUgWEdNQUMgdGltZXN0YW1wIGludGVycnVwdCBoYW5kbGVyIGNsZWFycyBUU0lTIGJ5IHJlYWRpbmcKJiM0MzsJICogWEdNQUNfVElNRVNUQU1QX1NUQVRVUywgd2hpY2ggd291bGQgcmFjZSB3aXRoIHRoZSBUU0lTIHBvbGwKJiM0MzsJICogYmVsb3cuICBNYXNrIFhHTUFDX1RTSUUgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgY3Jvc3MtdGltZXN0YW1wCiYjNDM7CSAqIHNvIHRoZSBoYW5kbGVyIGRvZXMgbm90IHJ1biB3aGlsZSB3ZSBvd24gdGhlIHNuYXBzaG90IEZJRk8uCiYjNDM7CSAqLwomIzQzOwlzdG1tYWNfbWFjX2lycV9tb2RpZnkocHJpdiwgWEdNQUNfVFNJRSwgMCk7CiYjNDM7CiAJbXV0ZXhfbG9jaygmYW1wO3ByaXYtJmd0O2F1eF90c19sb2NrKTsKIAkvKiBFbmFibGUgSW50ZXJuYWwgc25hcHNob3QgdHJpZ2dlciAqLwogCWFjcl92YWx1ZSA9IHJlYWRsKHB0cGFkZHIgJiM0MzsgUFRQX0FDUik7CkBAIC0zMjksNiAmIzQzOzMzNiw3IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCW11dGV4X3VubG9jaygmYW1wO3ByaXYtJmd0O2F1eF90c19sb2NrKTsKJiM0MzsJCXN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQogCXdyaXRlbChhY3JfdmFsdWUsIHB0cGFkZHIgJiM0MzsgUFRQX0FDUik7CkBAIC0zNTMsNiAmIzQzOzM2MSw3IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sCiAJcmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0KHByaXYtJmd0O2lvYWRkciAmIzQzOyBYR01BQ19JTlRfU1RBVFVTLCB2LAogCQkJCSAodiAmYW1wOyBYR01BQ19JTlRfVFNJUyksIDEwMCwgMTAwMDApOwogCWlmIChyZXQpIHsKJiM0MzsJCXN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTsKIAkJbmV0ZGV2X2Vycihwcml2LSZndDtkZXYsICYjMzQ7JXM6IFdhaXQgZm9yIHRpbWUgc3luYyBvcGVyYXRpb24gdGltZW91dFxuJiMzNDssCiAJCQkgICBfX2Z1bmNfXyk7CiAJCXJldHVybiByZXQ7CkBAIC0zNzUsNiAmIzQzOzM4NCw4IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sCiAJCXJlYWRfdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtwcml2LSZndDtwdHBfbG9jaywgZmxhZ3MpOwogCX0KIAomIzQzOwlzdG1tYWNfbWFjX2lycV9tb2RpZnkocHJpdiwgMCwgWEdNQUNfVFNJRSk7CiYjNDM7CiAJZ2V0X3NtdGd0aW1lKHByaXYtJmd0O21paSwgU01UR19NRElPX0FERFIsICZhbXA7c210Z190aW1lKTsKIAlzeXN0ZW0tJmd0O2N5Y2xlcyA9IHNtdGdfdGltZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgKaW5kZXggZjhhYjM0N2Y3YjViOS4uMDNjYmFlMzI2OTk1YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaAomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oCkBAIC04Nyw3ICYjNDM7ODcsNyBAQAogI2RlZmluZSBYR01BQ19UU0lFCQkJQklUKDEyKQogI2RlZmluZSBYR01BQ19MUElJRQkJCUJJVCg1KQogI2RlZmluZSBYR01BQ19QTVRJRQkJCUJJVCg0KQotI2RlZmluZSBYR01BQ19JTlRfREVGQVVMVF9FTgkJKFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUpCiYjNDM7I2RlZmluZSBYR01BQ19JTlRfREVGQVVMVF9FTgkJKFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUgfCBYR01BQ19UU0lFKQogI2RlZmluZSBYR01BQ19ReF9UWF9GTE9XX0NUUkwoeCkJKDB4MDAwMDAwNzAgJiM0MzsgKHgpICogNCkKICNkZWZpbmUgWEdNQUNfUFQJCQlHRU5NQVNLKDMxLCAxNikKICNkZWZpbmUgWEdNQUNfVEZFCQkJQklUKDEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMKaW5kZXggMWE4OGNiYWVkNzBjYS4uODkxYjdjZWVhMmQ0NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYwpAQCAtMTE1NCw2ICYjNDM7MTE1NCw0OSBAQCBzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKQogCXJldHVybiAwOwogfQogCiYjNDM7dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdikKJiM0Mzt7CiYjNDM7CXUzMiB0c19zdGF0dXMsIHBlbmRpbmdfc25hcHNob3RzLCBhY3JfdmFsdWUsIGNoYW5uZWw7CiYjNDM7CXN0cnVjdCBwdHBfY2xvY2tfZXZlbnQgZXZlbnQ7CiYjNDM7CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiYjNDM7CXU2NCBwdHBfdGltZTsKJiM0MzsJaW50IGk7CiYjNDM7CiYjNDM7CS8qIFJlYWQgWEdNQUNfVElNRVNUQU1QX1NUQVRVUyB0byBnZXQgdGhlIEFVWCBzbmFwc2hvdAomIzQzOwkgKiBjb3VudC4gIFRoaXMgcmVhZCBhbHNvIGNsZWFycyB0aGUgVFNJUyBiaXQgaW4KJiM0MzsJICogWEdNQUNfSU5UX1NUQVRVUy4KJiM0MzsJICogVFggdGltZXN0YW1wIHBvbGxpbmcgbWF5IGhhdmUgYWxyZWFkeSBjbGVhcmVkIFRTSVMKJiM0MzsJICogYW5kIEFVWFRTVFJJRywgc28gcmVseSBvbiBBVFNOUyBpbnN0ZWFkLgomIzQzOwkgKiBUWFRTQyBpcyBjbGVhcmVkIGJ5IFhHTUFDX1RYVElNRVNUQU1QX1NFQywgbm90IGJ5CiYjNDM7CSAqIHRoaXMgcmVnaXN0ZXIsIHNvIHRoZXJlIGlzIG5vIGNvbmZsaWN0LgomIzQzOwkgKi8KJiM0MzsJdHNfc3RhdHVzID0gcmVhZGwocHJpdi0mZ3Q7aW9hZGRyICYjNDM7IFhHTUFDX1RJTUVTVEFNUF9TVEFUVVMpOwomIzQzOwomIzQzOwlpZiAoIShwcml2LSZndDtwbGF0LSZndDtmbGFncyAmYW1wOyBTVE1NQUNfRkxBR19FWFRfU05BUFNIT1RfRU4pKQomIzQzOwkJcmV0dXJuOwomIzQzOwomIzQzOwlwZW5kaW5nX3NuYXBzaG90cyA9IEZJRUxEX0dFVChYR01BQ19USU1FU1RBTVBfQVRTTlNfTUFTSywgdHNfc3RhdHVzKTsKJiM0MzsJaWYgKCFwZW5kaW5nX3NuYXBzaG90cykKJiM0MzsJCXJldHVybjsKJiM0MzsKJiM0MzsJYWNyX3ZhbHVlID0gcmVhZGwocHJpdi0mZ3Q7cHRwYWRkciAmIzQzOyBQVFBfQUNSKTsKJiM0MzsJY2hhbm5lbCA9IEZJRUxEX0dFVChQVFBfQUNSX01BU0ssIGFjcl92YWx1ZSk7CiYjNDM7CWlmICghY2hhbm5lbCkKJiM0MzsJCXJldHVybjsKJiM0MzsJY2hhbm5lbCA9IGlsb2cyKGNoYW5uZWwpOwomIzQzOwomIzQzOwlmb3IgKGkgPSAwOyBpICZsdDsgcGVuZGluZ19zbmFwc2hvdHM7IGkmIzQzOyYjNDM7KSB7CiYjNDM7CQlyZWFkX2xvY2tfaXJxc2F2ZSgmYW1wO3ByaXYtJmd0O3B0cF9sb2NrLCBmbGFncyk7CiYjNDM7CQlzdG1tYWNfZ2V0X3B0cHRpbWUocHJpdiwgcHJpdi0mZ3Q7cHRwYWRkciwgJmFtcDtwdHBfdGltZSk7CiYjNDM7CQlyZWFkX3VubG9ja19pcnFyZXN0b3JlKCZhbXA7cHJpdi0mZ3Q7cHRwX2xvY2ssIGZsYWdzKTsKJiM0MzsKJiM0MzsJCWV2ZW50LnR5cGUgPSBQVFBfQ0xPQ0tfRVhUVFM7CiYjNDM7CQlldmVudC5pbmRleCA9IGNoYW5uZWw7CiYjNDM7CQlldmVudC50aW1lc3RhbXAgPSBwdHBfdGltZTsKJiM0MzsJCXB0cF9jbG9ja19ldmVudChwcml2LSZndDtwdHBfY2xvY2ssICZhbXA7ZXZlbnQpOwomIzQzOwl9CiYjNDM7fQomIzQzOwogc3RhdGljIGludCBkd3hnbWFjMl9mbGV4X3Bwc19jb25maWcodm9pZCBfX2lvbWVtICppb2FkZHIsIGludCBpbmRleCwKIAkJCQkgICAgc3RydWN0IHN0bW1hY19wcHNfY2ZnICpjZmcsIGJvb2wgZW5hYmxlLAogCQkJCSAgICB1MzIgc3ViX3NlY29uZF9pbmMsIHUzMiBzeXN0aW1lX2ZsYWdzKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jCmluZGV4IDI2NTY3MTE3MGJmNmUuLmViYTg3NDEwZjk4NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYwomIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMKQEAgLTI1OCw3ICYjNDM7MjU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7CiAJCS5kbWEgPSAmYW1wO2R3eGdtYWMyMTBfZG1hX29wcywKIAkJLm1hYyA9ICZhbXA7ZHd4Z21hYzIxMF9vcHMsCiAJCS52bGFuID0gJmFtcDtkd3hnbWFjMjEwX3ZsYW5fb3BzLAotCQkuaHd0aW1lc3RhbXAgPSAmYW1wO3N0bW1hY19wdHAsCiYjNDM7CQkuaHd0aW1lc3RhbXAgPSAmYW1wO2R3eGdtYWMyX3B0cCwKIAkJLnB0cCA9ICZhbXA7c3RtbWFjX3B0cF9jbG9ja19vcHMsCiAJCS5tb2RlID0gTlVMTCwKIAkJLnRjID0gJmFtcDtkd21hYzUxMF90Y19vcHMsCkBAIC0yODAsNyAmIzQzOzI4MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkgewogCQkuZG1hID0gJmFtcDtkd3hnbWFjMjEwX2RtYV9vcHMsCiAJCS5tYWMgPSAmYW1wO2R3eGxnbWFjMl9vcHMsCiAJCS52bGFuID0gJmFtcDtkd3hsZ21hYzJfdmxhbl9vcHMsCi0JCS5od3RpbWVzdGFtcCA9ICZhbXA7c3RtbWFjX3B0cCwKJiM0MzsJCS5od3RpbWVzdGFtcCA9ICZhbXA7ZHd4Z21hYzJfcHRwLAogCQkucHRwID0gJmFtcDtzdG1tYWNfcHRwX2Nsb2NrX29wcywKIAkJLm1vZGUgPSBOVUxMLAogCQkudGMgPSAmYW1wO2R3bWFjNTEwX3RjX29wcywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaCBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaAppbmRleCBmZTE4Zjk4ZmFlNDUxLi41YTMwOGU3OWRiNGE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmgKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oCkBAIC02NzIsNiAmIzQzOzY3Miw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzIG5kZXNjX29wczsKIAogZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgc3RtbWFjX3B0cDsKIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3bWFjMTAwMF9wdHA7CiYjNDM7ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHd4Z21hYzJfcHRwOwogCiBleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyByaW5nX21vZGVfb3BzOwogZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgY2hhaW5fbW9kZV9vcHM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jCmluZGV4IGI5YTk4NWZhNzcyYzkuLjlkN2QyNDI1OWFiZDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jCkBAIC0yNzcsMyAmIzQzOzI3NywxNSBAQCBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3bWFjMTAwMF9wdHAgPSB7CiAJLmdldF9wdHB0aW1lID0gZHdtYWMxMDAwX2dldF9wdHB0aW1lLAogCS50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsCiB9OwomIzQzOwomIzQzO2NvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHd4Z21hYzJfcHRwID0gewomIzQzOwkuY29uZmlnX2h3X3RzdGFtcGluZyA9IGNvbmZpZ19od190c3RhbXBpbmcsCiYjNDM7CS5pbml0X3N5c3RpbWUgPSBpbml0X3N5c3RpbWUsCiYjNDM7CS5jb25maWdfc3ViX3NlY29uZF9pbmNyZW1lbnQgPSBjb25maWdfc3ViX3NlY29uZF9pbmNyZW1lbnQsCiYjNDM7CS5jb25maWdfYWRkZW5kID0gY29uZmlnX2FkZGVuZCwKJiM0MzsJLmFkanVzdF9zeXN0aW1lID0gYWRqdXN0X3N5c3RpbWUsCiYjNDM7CS5nZXRfc3lzdGltZSA9IGdldF9zeXN0aW1lLAomIzQzOwkuZ2V0X3B0cHRpbWUgPSBnZXRfcHRwdGltZSwKJiM0MzsJLnRpbWVzdGFtcF9pbnRlcnJ1cHQgPSBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0LAomIzQzOwkuaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5ID0gaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5LAomIzQzO307CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmgKaW5kZXggM2ZlMGUzYTgwZTgwYS4uZGFkZTA5NjE0MTYzYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaApAQCAtMTAzLDYgJiM0MzsxMDMsNyBAQCBpbnQgZHdtYWMxMDAwX3B0cF9lbmFibGUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsCiAKIHZvaWQgZHdtYWMxMDAwX2dldF9wdHB0aW1lKHZvaWQgX19pb21lbSAqcHRwYWRkciwgdTY0ICpwdHBfdGltZSk7CiB2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7CiYjNDM7dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7CiAKIGV4dGVybiBjb25zdCBzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gc3RtbWFjX3B0cF9jbG9ja19vcHM7CiBleHRlcm4gY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIGR3bWFjMTAwMF9wdHBfY2xvY2tfb3BzOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1MTM2CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMzQxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIEkmIzM5O3ZlIGdvdCB0aGlzIHBhdGNoIGluIGZyb250IG9mIG1lLCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCBpZiBpdCYjMzk7cyBmdXp6LXdvcnRoeS4gQmVmb3JlIEkgZGl2ZSB0b28gZGVlcCBpbnRvIHRoZSBjb2RlLCBJIG5lZWQgdG8gZ2V0IGEgaGlnaC1sZXZlbCB2aWV3IG9mIHRoZSBsYW5kc2NhcGUuIEZpcnN0LCBsZXQmIzM5O3MgbG9vayBhdCB3aGF0JiMzOTtzIGJlZW4gdG91Y2hlZC4gSXQgbG9va3MgbGlrZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSBgc3RtbWFjYCBkcml2ZXIsIHNwZWNpZmljYWxseSBpdHMgaW50ZXJhY3Rpb24gd2l0aCB2YXJpb3VzIFBIWS9NQUMgY29tcG9uZW50czogYGR3bWFjLXNvY2ZwZ2EuY2AsIGBkd3hnbWFjMi5oYCwgYGR3eGdtYWMyX2NvcmUuY2AsIGBod2lmLmNgLCBgaHdpZi5oYCwgYHN0bW1hY19od3RzdGFtcC5jYCwgYW5kIGBzdG1tYWNfcHRwLmhgLgoKTm93LCB0aGUgaW1wb3J0YW50IHF1ZXN0aW9uIGlzOiB3aGF0IGlzIHRoZSBuYXR1cmUgb2YgdGhpcyBgc3RtbWFjYCAvIGBkd21hY2A/IENhbiB0aGVzZSBjb21wb25lbnRzIGFjdHVhbGx5IGJlIGV4ZXJjaXNlZCBhbmQgdGVzdGVkPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgaWYgdGhlc2UgYXJlIFBDSS1iYXNlZCwgcGxhdGZvcm0tYmFzZWQsIG9yIHNvbWV0aGluZyBlbHNlIGVudGlyZWx5LiBEb2VzIGBzdG1tYWNgIGhhdmUgUENJIGdsdWUsIGxpa2UgYHN0bW1hY19wY2lgIG9yIHNpbWlsYXIgZHJpdmVycz8gT3IgYXJlIHRoZXNlIHNwZWNpZmljYWxseSBlbWJlZGRlZCBFdGhlcm5ldCBjb250cm9sbGVycywgcGVyaGFwcyBwaHlzaWNhbC1vbmx5PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBgZHd4Z21hYzJgIGlzIHVzZWQgd2l0aCBQQ0kgb3IgcGxhdGZvcm0gZGV2aWNlcy4gQW5kIHRoZW4sIHRoZSBjcml0aWNhbCBxdWVzdGlvbiwgd2hhdCBhYm91dCBRRU1VPyBDYW4gSSBlYXNpbHkgZW11bGF0ZSB0aGlzIHNldHVwPyBJZiBJIGNhbiYjMzk7dCBlbXVsYXRlIGl0LCB0aGlzIGlzIGdvaW5nIHRvIGJlIGZhciBtb3JlIGRpZmZpY3VsdC4KCk15IG5leHQgc3RlcCBpcyB0byBnbyBzdHJhaWdodCB0byB0aGUga2VybmVsIHNvdXJjZSBhbmQgc2VhcmNoIGZvciB0aGUgYHN0bW1hY2AgZHJpdmVycyBhbmQgdGhlaXIgYXNzb2NpYXRlZCBLY29uZmlnIG9wdGlvbnMuIFRoYXQgd2lsbCBnaXZlIG1lIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2YgaG93IHRoZXNlIGNvbXBvbmVudHMgYXJlIGNvbmZpZ3VyZWQgYW5kIGhvdyB0aGV5IGFyZSB1c2VkLiBUaGlzIHdpbGwgaGVscCBtZSBldmFsdWF0ZSB3aGV0aGVyIEkgY2FuIGVhc2lseSByZXByb2R1Y2UgYSB0ZXN0IGVudmlyb25tZW50IGZvciBmdXp6aW5nLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBTVE1NQUNfJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6Mjpjb25maWcgU1RNTUFDX0VUSFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7U1RNaWNyb2VsZWN0cm9uaWNzIE11bHRpLUdpZ2FiaXQgRXRoZXJuZXQgZHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOD1pZiBTVE1NQUNfRVRIXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTE5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMS1cdGJvb2wgXCYjMzQ7U3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1wmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI5OmNvbmZpZyBTVE1NQUNfUExBVEZPUk1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzAtXHR0cmlzdGF0ZSBcJiMzNDtTVE1NQUMgUGxhdGZvcm0gYnVzIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM3MT1lbmRpZiAjIFNUTU1BQ19QTEFURk9STVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNzQtXHR0cmlzdGF0ZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mzk4PWNvbmZpZyBEV01BQ19NT1RPUkNPTU1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6NDA3OmNvbmZpZyBTVE1NQUNfUENJXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwOC1cdHRyaXN0YXRlIFwmIzM0O1NUTU1BQyBQQ0kgYnVzIHN1cHBvcnRcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NDIwCgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmV2aWV3aW5nIHRoaXMgY29kZToKCioqRGl2aW5nIGludG8gdGhlIERXTUFDIENvbmZpZ3VyYXRpb24qKgoKQWxyaWdodCwgdGltZSB0byBkaWcgaW50byB0aGlzIGBEV01BQ19TT0NGUEdBYCBidXNpbmVzcy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgZHJpdmVyIGlzIGNvbmZpZ3VyZWQsIHNvIEkmIzM5O2xsIHN0YXJ0IGJ5IGNoZWNraW5nIHRoZSByZWxldmFudCBmaWxlcy4gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IHNjYW4gYGR3bWFjLXNvY2ZwZ2EuY2AsIHNpbmNlIHRoYXQgc2VlbXMgdG8gYmUgdGhlIGNvcmUgb2YgaXQsIGFuZCB0aGVuIEkmIzM5O2xsIGFsc28gZ2xhbmNlIGF0IGBkd3hnbWFjYCDigJMgdG8gc2VlIGlmIHRoZXJlJiMzOTtzIGFueSBjcm9zcy1jb21wYXRpYmlsaXR5IG9yIGRlcGVuZGVuY2llcy4gVGhlIG1haW4gZ29hbCBoZXJlIGlzIHRvIGdldCBhIHNvbGlkIGdyYXNwIG9uIHRoZSBjb25maWd1cmF0aW9uLiBNeSBtYWluIHN0b3Agd2lsbCBiZSB0aGUgYEtjb25maWdgIGZpbGVzIHRoYXQgY29udHJvbCBgRFdNQUNfU09DRlBHQWAgYW5kIG90aGVyIHNpbWlsYXIgYHN0bW1hY2AgY29uZmlndXJhdGlvbnMuIFRoYXQmIzM5O3Mgd2hlcmUgYWxsIHRoZSBkZWNpc2lvbi1tYWtpbmcgaGFwcGVucy4gSSBuZWVkIHRvIHBpbnBvaW50IHRoZSBkZXBlbmRlbmNpZXMsIG9wdGlvbnMsIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHN5c3RlbS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtTT0NGUEdBJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjk9Y29uZmlnIFNUTU1BQ19QTEFURk9STVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzUtXHQgIFRoaXMgaXMgdGhlIGRyaXZlciB1c2VkIG9uIHNldmVyYWwgU29DczpcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MzY6XHQgIFNUaSwgQWxsd2lubmVyLCBBbWxvZ2ljIE1lc29uLCBBbHRlcmEgU09DRlBHQS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0xOTE9Y29uZmlnIERXTUFDX1MzMlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjAyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDM6Y29uZmlnIERXTUFDX1NPQ0ZQR0FcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjA0Olx0dHJpc3RhdGUgXCYjMzQ7U09DRlBHQSBkd21hYyBzdXBwb3J0XCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNTpcdGRlZmF1bHQgQVJDSF9JTlRFTF9TT0NGUEdBXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNjpcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMDctXHRzZWxlY3QgTUZEX1NZU0NPTlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjExLVx0aGVscFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTI6XHQgIFN1cHBvcnQgZm9yIGV0aGVybmV0IGNvbnRyb2xsZXIgb24gQWx0ZXJhIFNPQ0ZQR0FcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTQ6XHQgIFRoaXMgc2VsZWN0cyB0aGUgQWx0ZXJhIFNPQ0ZQR0EgU29DIGdsdWUgbGF5ZXIgc3VwcG9ydFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTUtXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU9Mjg9b2JqLSQoQ09ORklHX0RXTUFDX1MzMilcdFx0JiM0Mzs9IGR3bWFjLXMzMi5vXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZToyOTpvYmotJChDT05GSUdfRFdNQUNfU09DRlBHQSlcdCYjNDM7PSBkd21hYy1hbHRyLXNvY2ZwZ2Eub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtMzAtb2JqLSQoQ09ORklHX0RXTUFDX1NPUEhHTylcdCYjNDM7PSBkd21hYy1zb3BoZ28ub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDczNTYKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAzNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBkd3hnbWFjMiBEcml2ZXImIzM5O3MgQ2FwYWJpbGl0aWVzKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBzcGVjaWZpYyBmdW5jdGlvbnMg4oCTIGBkd3hnbWFjMjEwX29wc2AsIGBkd3hnbWFjMl9wdHBgLCBhbmQgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgIOKAkyBhcmUgdXNlZCB3aXRoaW4gdGhlIGBkd3hnbWFjMmAgZHJpdmVyIGNvbnRleHQuIE15IGluaXRpYWwgaW5zdGluY3QgaXMgdG8gdXNlIHRoZXNlIGZ1bmN0aW9uIG5hbWVzIGFzIHRoZSBzdGFydGluZyBwb2ludCBmb3IgYSBkZWVwZXIgaW52ZXN0aWdhdGlvbi4gSSB3YW50IHRvIHVuZGVyc3RhbmQgdGhlaXIgcHVycG9zZSwgaG93IHRoZXkmIzM5O3JlIGNhbGxlZCwgd2hhdCBkYXRhIHRoZXkgb3BlcmF0ZSBvbiwgYW5kIGVzc2VudGlhbGx5LCB3aGF0IHRoZWlyIHJvbGUgaXMgaW4gdGhlIGJpZ2dlciBwaWN0dXJlIG9mIHRoZSBkcml2ZXLigJlzIGZ1bmN0aW9uYWxpdHkuIEFyZSB0aGV5IGNvcmUgb3BlcmF0aW9ucywgcmVsYXRlZCB0byBQVFAgKFByZWNpc2lvbiBUaW1lIFByb3RvY29sKSwgb3IgaGFuZGxpbmcgc3BlY2lmaWMgaW50ZXJydXB0IHNjZW5hcmlvcz8gRGl2aW5nIGludG8gdGhlIGNvZGViYXNlIHRvIHRyYWNlIHRoZXNlIGlkZW50aWZpZXJzIGlzIHRoZSBvYnZpb3VzIGZpcnN0IHN0ZXAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyBlYWNoIG9mIHRoZXNlIGNvbnRyaWJ1dGVzIHRvIHRoZSBvdmVyYWxsIGJlaGF2aW9yIG9mIHRoZSBFdGhlcm5ldCBjb250cm9sbGVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2R3eGdtYWMyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3MjAgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTM9c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1x0XFxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS03LVx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcdCAgICAgIHN0bW1hY190Yy5vIGR3eGdtYWMyX2NvcmUubyBkd3hnbWFjMl9kbWEubyBkd3hnbWFjMl9kZXNjcy5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS05LVx0ICAgICAgc3RtbWFjX3hkcC5vIHN0bW1hY19lc3QubyBzdG1tYWNfZnBlLm8gc3RtbWFjX3ZsYW4ubyBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTY1Mj1pbnQgZHdtYWM0X3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo2NTM6aW50IGR3eGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC02NTQtaW50IGR3eGxnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy0xOC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYzoxOTojaW5jbHVkZSBcJiMzNDtkd3hnbWFjMi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtMjAtI2luY2x1ZGUgXCYjMzQ7c3RtbWFjLmhcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTQ2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NDY1OmV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hnbWFjMjEwX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY2LWV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hsZ21hYzJfb3BzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0Njc6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZG1hX29wcyBkd3hnbWFjMjEwX2RtYV9vcHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjQ2ODpleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyBkd3hnbWFjMjEwX2Rlc2Nfb3BzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaC00NjktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0LSNpbmNsdWRlIFwmIzM0O2R3eGxnbWFjMi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU6I2luY2x1ZGUgXCYjMzQ7ZHd4Z21hYzIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2NvcmVfaW5pdChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xOC1cdFx0XHQgICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MzE6c3RhdGljIHZvaWQgZHd4Z21hYzJfaXJxX21vZGlmeShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGRpc2FibGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzItXHRcdFx0XHR1MzIgZW5hYmxlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo0NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl91cGRhdGVfY2FwcyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1MTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfbWFjKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGVuYWJsZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01Mi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTY3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjY4OnN0YXRpYyBpbnQgZHd4Z21hYzJfcnhfaXBjKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTY5LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtODItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6ODM6c3RhdGljIHZvaWQgZHd4Z21hYzJfcnhfcXVldWVfZW5hYmxlKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1OCBtb2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTg0LVx0XHRcdFx0ICAgICB1MzIgcXVldWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTk2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjk3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3J4X3F1ZXVlX3ByaW8oc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBwcmlvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTk4LVx0XHRcdFx0ICAgdTMyIHF1ZXVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTM4OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3R4X3F1ZXVlX3ByaW8oc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBwcmlvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzOS1cdFx0XHRcdCAgIHUzMiBxdWV1ZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTU0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9yeF9xdWV1ZV9yb3V0aW5nKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1Ni1cdFx0XHRcdCAgICAgIHU4IHBhY2tldCwgdTMyIHF1ZXVlKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNjAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTYxOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfcnhfcm91dGluZyBkd3hnbWFjMl9yb3V0ZV9wb3NzaWJpbGl0aWVzW10gPSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTYyLVx0XHR7IFhHTUFDX0FWQ1BRLCBYR01BQ19BVkNQUV9TSElGVCB9LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNzEtXHQvKiByb3V0aW5nIGNvbmZpZ3VyYXRpb24gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNzI6XHR2YWx1ZSBcdTAwMjY9IH5kd3hnbWFjMl9yb3V0ZV9wb3NzaWJpbGl0aWVzW3BhY2tldCAtIDFdLnJlZ19tYXNrO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE3MzpcdHZhbHVlIHw9IChxdWV1ZSBcdTAwM2NcdTAwM2MgZHd4Z21hYzJfcm91dGVfcG9zc2liaWxpdGllc1twYWNrZXQgLSAxXS5yZWdfc2hpZnQpIFx1MDAyNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE3NDpcdFx0IGR3eGdtYWMyX3JvdXRlX3Bvc3NpYmlsaXRpZXNbcGFja2V0IC0gMV0ucmVnX21hc2s7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTc1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xODQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTg1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3Byb2dfbXRsX3J4X2FsZ29yaXRobXMoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTg2LVx0XHRcdFx0XHQgICAgdTMyIHJ4X2FsZylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjA2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjIwNzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9wcm9nX210bF90eF9hbGdvcml0aG1zKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTIwOC1cdFx0XHRcdFx0ICAgIHUzMiB0eF9hbGcpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI0NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoyNDU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X210bF90eF9xdWV1ZV93ZWlnaHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI0Ni1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI1NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9tYXBfbXRsX3RvX2RtYShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIHF1ZXVlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI1NS1cdFx0XHRcdCAgICB1MzIgY2hhbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjcwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI3MTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9jb25maWdfY2JzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0yNzItXHRcdFx0XHRzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjg5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI5MDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9kdW1wX3JlZ3Moc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiAqcmVnX3NwYWNlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI5MS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI5OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoyOTk6c3RhdGljIGludCBkd3hnbWFjMl9ob3N0X2lycV9zdGF0dXMoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTMwMC1cdFx0XHRcdCAgICBzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzICp4KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zMzUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MzM2OnN0YXRpYyBpbnQgZHd4Z21hYzJfaG9zdF9tdGxfaXJxX3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzM3LVx0XHRcdFx0XHRzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGNoYW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTM1NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzozNTY6c3RhdGljIHZvaWQgZHd4Z21hYzJfZmxvd19jdHJsKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1bnNpZ25lZCBpbnQgZHVwbGV4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTM1Ny1cdFx0XHQgICAgICAgdW5zaWduZWQgaW50IGZjLCB1bnNpZ25lZCBpbnQgcGF1c2VfdGltZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzc2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjM3NzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9wbXQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHVuc2lnbmVkIGxvbmcgbW9kZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zNzgte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zOTQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6Mzk1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF91bWFjX2FkZHIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzk2LVx0XHRcdFx0ICAgY29uc3QgdW5zaWduZWQgY2hhciAqYWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDA4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQwOTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9nZXRfdW1hY19hZGRyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQxMC1cdFx0XHRcdCAgIHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDI3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQyODpzdGF0aWMgaW50IGR3eGdtYWMyX3NldF9scGlfbW9kZShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00MjktXHRcdFx0XHQgZW51bSBzdG1tYWNfbHBpX21vZGUgbW9kZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDUxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ1MjpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfZWVlX3BscyhzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgaW50IGxpbmspXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDUzLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDY0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ2NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfZWVlX3RpbWVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCBpbnQgbHMsIGludCB0dylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NjYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NDc0OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9tY2hhc2godm9pZCBfX2lvbWVtICppb2FkZHIsIHUzMiAqbWNmaWx0ZXJiaXRzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQ3NS1cdFx0XHRcdGludCBtY2JpdHNsb2cyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00OTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NDk3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDk4LVx0XHRcdFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTMxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjUzMjpcdGR3eGdtYWMyX3NldF9tY2hhc2goaW9hZGRyLCBtY19maWx0ZXIsIG1jYml0c2xvZzIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTUzMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTQxLVx0XHRuZXRkZXZfZm9yX2VhY2hfdWNfYWRkcihoYSwgZGV2KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTQyOlx0XHRcdGR3eGdtYWMyX3NldF91bWFjX2FkZHIoaHcsIGhhLVx1MDAzZWFkZHIsIHJlZyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTQzLVx0XHRcdHJlZyYjNDM7JiM0Mzs7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1NTU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X21hY19sb29wYmFjayh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTU2LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTY2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjU2NzpzdGF0aWMgaW50IGR3eGdtYWMyX3Jzc193cml0ZV9yZWcodm9pZCBfX2lvbWVtICppb2FkZHIsIGJvb2wgaXNfa2V5LCBpbnQgaWR4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU2OC1cdFx0XHRcdCAgdTMyIHZhbClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjU4MjpzdGF0aWMgaW50IGR3eGdtYWMyX3Jzc19jb25maWd1cmUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTgzLVx0XHRcdFx0ICBzdHJ1Y3Qgc3RtbWFjX3JzcyAqY2ZnLCB1MzIgbnVtX3J4cSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTk3LVx0Zm9yIChpID0gMDsgaSBcdTAwM2MgKEFSUkFZX1NJWkUoY2ZnLVx1MDAzZWtleSkgLyBzaXplb2YodTMyKSk7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTk4Olx0XHRyZXQgPSBkd3hnbWFjMl9yc3Nfd3JpdGVfcmVnKGlvYWRkciwgdHJ1ZSwgaSwga2V5W2ldKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01OTktXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTYwMy1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIEFSUkFZX1NJWkUoY2ZnLVx1MDAzZXRhYmxlKTsgaSYjNDM7JiM0MzspIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo2MDQ6XHRcdHJldCA9IGR3eGdtYWMyX3Jzc193cml0ZV9yZWcoaW9hZGRyLCBmYWxzZSwgaSwgY2ZnLVx1MDAzZXRhYmxlW2ldKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy02MDUtXHRcdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTYwOS1cdGZvciAoaSA9IDA7IGkgXHUwMDNjIG51bV9yeHE7IGkmIzQzOyYjNDM7KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjYxMDpcdFx0ZHd4Z21hYzJfbWFwX210bF90b19kbWEoaHcsIGksIFhHTUFDX1FERE1BQ0gpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTYxMS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM9MTA1NT1zdGF0aWMgaW50IGR3eGdtYWMzX3J4cF9jb25maWcodm9pZCBfX2lvbWVtICppb2FkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTE0MzpzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNDQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMTU2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjExNTc6dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMTU4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE5OS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMjAwOnN0YXRpYyBpbnQgZHd4Z21hYzJfZmxleF9wcHNfY29uZmlnKHZvaWQgX19pb21lbSAqaW9hZGRyLCBpbnQgaW5kZXgsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTIwMS1cdFx0XHRcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Bwc19jZmcgKmNmZywgYm9vbCBlbmFibGUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyNjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI2NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zYXJjX2NvbmZpZ3VyZSh2b2lkIF9faW9tZW0gKmlvYWRkciwgaW50IHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMjY1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI3Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMjczOnN0YXRpYyBpbnQgZHd4Z21hYzJfZmlsdGVyX3dhaXQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI3NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI4NDpzdGF0aWMgaW50IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgZmlsdGVyX25vLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyODUtXHRcdFx0XHR1OCByZWcsIHUzMiAqZGF0YSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI5MC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMjkxOlx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3dhaXQoaHcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyOTItXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzMDE6XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd2FpdChodyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMwMi1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTMwOTpzdGF0aWMgaW50IGR3eGdtYWMyX2ZpbHRlcl93cml0ZShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGZpbHRlcl9ubyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzEwLVx0XHRcdFx0IHU4IHJlZywgdTMyIGRhdGEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTMxNjpcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl93YWl0KGh3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzE3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMyNy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzI4Olx0cmV0dXJuIGR3eGdtYWMyX2ZpbHRlcl93YWl0KGh3KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzI5LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzMwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzMzE6c3RhdGljIGludCBkd3hnbWFjMl9jb25maWdfbDNfZmlsdGVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgZmlsdGVyX25vLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMzItXHRcdFx0XHQgICAgIGJvb2wgZW4sIGJvb2wgaXB2NiwgYm9vbCBzYSwgYm9vbCBpbnYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTM0MzpcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzTDRfQ1RSTCwgXHUwMDI2dmFsdWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNDQtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzczLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzNzQ6XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNMNF9DVFJMLCB2YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM3NS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNzgtXHRpZiAoc2EpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzc5Olx0XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNfQUREUjAsIG1hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzgwLVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzgyLVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzgzOlx0XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNfQUREUjEsIG1hdGNoKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzg0LVx0XHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzg4LVx0aWYgKCFlbilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzg5Olx0XHRyZXR1cm4gZHd4Z21hYzJfZmlsdGVyX3dyaXRlKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzTDRfQ1RSTCwgMCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM5MC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM5My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzk0OnN0YXRpYyBpbnQgZHd4Z21hYzJfY29uZmlnX2w0X2ZpbHRlcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGZpbHRlcl9ubyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzk1LVx0XHRcdFx0ICAgICBib29sIGVuLCBib29sIHVkcCwgYm9vbCBzYSwgYm9vbCBpbnYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQwNjpcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzTDRfQ1RSTCwgXHUwMDI2dmFsdWUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MDctXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDI5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0MzA6XHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNMNF9DVFJMLCB2YWx1ZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQzMS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MzMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQzNDpcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0w0X0FERFIsIFx1MDAyNnZhbHVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDM1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ0NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDQ2Olx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3dyaXRlKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0w0X0FERFIsIHZhbHVlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDQ3LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ1MC1cdGlmICghZW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ1MTpcdFx0cmV0dXJuIGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIDApO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0NTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0NTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ1Njpjb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hnbWFjMjEwX29wcyA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDU3Olx0LmNvcmVfaW5pdCA9IGR3eGdtYWMyX2NvcmVfaW5pdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDU4Olx0LmlycV9tb2RpZnkgPSBkd3hnbWFjMl9pcnFfbW9kaWZ5LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTk6XHQudXBkYXRlX2NhcHMgPSBkd3hnbWFjMl91cGRhdGVfY2FwcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDYwOlx0LnNldF9tYWMgPSBkd3hnbWFjMl9zZXRfbWFjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjE6XHQucnhfaXBjID0gZHd4Z21hYzJfcnhfaXBjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjI6XHQucnhfcXVldWVfZW5hYmxlID0gZHd4Z21hYzJfcnhfcXVldWVfZW5hYmxlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjM6XHQucnhfcXVldWVfcHJpbyA9IGR3eGdtYWMyX3J4X3F1ZXVlX3ByaW8sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2NDpcdC50eF9xdWV1ZV9wcmlvID0gZHd4Z21hYzJfdHhfcXVldWVfcHJpbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY1Olx0LnJ4X3F1ZXVlX3JvdXRpbmcgPSBkd3hnbWFjMl9yeF9xdWV1ZV9yb3V0aW5nLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjY6XHQucHJvZ19tdGxfcnhfYWxnb3JpdGhtcyA9IGR3eGdtYWMyX3Byb2dfbXRsX3J4X2FsZ29yaXRobXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2NzpcdC5wcm9nX210bF90eF9hbGdvcml0aG1zID0gZHd4Z21hYzJfcHJvZ19tdGxfdHhfYWxnb3JpdGhtcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY4Olx0LnNldF9tdGxfdHhfcXVldWVfd2VpZ2h0ID0gZHd4Z21hYzJfc2V0X210bF90eF9xdWV1ZV93ZWlnaHQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2OTpcdC5tYXBfbXRsX3RvX2RtYSA9IGR3eGdtYWMyX21hcF9tdGxfdG9fZG1hLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NzA6XHQuY29uZmlnX2NicyA9IGR3eGdtYWMyX2NvbmZpZ19jYnMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3MTpcdC5kdW1wX3JlZ3MgPSBkd3hnbWFjMl9kdW1wX3JlZ3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3MjpcdC5ob3N0X2lycV9zdGF0dXMgPSBkd3hnbWFjMl9ob3N0X2lycV9zdGF0dXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3MzpcdC5ob3N0X210bF9pcnFfc3RhdHVzID0gZHd4Z21hYzJfaG9zdF9tdGxfaXJxX3N0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc0Olx0LmZsb3dfY3RybCA9IGR3eGdtYWMyX2Zsb3dfY3RybCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc1Olx0LnBtdCA9IGR3eGdtYWMyX3BtdCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc2Olx0LnNldF91bWFjX2FkZHIgPSBkd3hnbWFjMl9zZXRfdW1hY19hZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0Nzc6XHQuZ2V0X3VtYWNfYWRkciA9IGR3eGdtYWMyX2dldF91bWFjX2FkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3ODpcdC5zZXRfbHBpX21vZGUgPSBkd3hnbWFjMl9zZXRfbHBpX21vZGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3OTpcdC5zZXRfZWVlX3RpbWVyID0gZHd4Z21hYzJfc2V0X2VlZV90aW1lcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDgwOlx0LnNldF9lZWVfcGxzID0gZHd4Z21hYzJfc2V0X2VlZV9wbHMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4MS1cdC5kZWJ1ZyA9IE5VTEwsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ4MjpcdC5zZXRfZmlsdGVyID0gZHd4Z21hYzJfc2V0X2ZpbHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDgzLVx0LnNhZmV0eV9mZWF0X2NvbmZpZyA9IGR3eGdtYWMzX3NhZmV0eV9mZWF0X2NvbmZpZyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4NS1cdC5zYWZldHlfZmVhdF9kdW1wID0gZHd4Z21hYzNfc2FmZXR5X2ZlYXRfZHVtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDg2Olx0LnNldF9tYWNfbG9vcGJhY2sgPSBkd3hnbWFjMl9zZXRfbWFjX2xvb3BiYWNrLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0ODc6XHQucnNzX2NvbmZpZ3VyZSA9IGR3eGdtYWMyX3Jzc19jb25maWd1cmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4OC1cdC5yeHBfY29uZmlnID0gZHd4Z21hYzNfcnhwX2NvbmZpZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDg5Olx0LmdldF9tYWNfdHhfdGltZXN0YW1wID0gZHd4Z21hYzJfZ2V0X21hY190eF90aW1lc3RhbXAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MDpcdC5mbGV4X3Bwc19jb25maWcgPSBkd3hnbWFjMl9mbGV4X3Bwc19jb25maWcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MTpcdC5zYXJjX2NvbmZpZ3VyZSA9IGR3eGdtYWMyX3NhcmNfY29uZmlndXJlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0OTI6XHQuY29uZmlnX2wzX2ZpbHRlciA9IGR3eGdtYWMyX2NvbmZpZ19sM19maWx0ZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MzpcdC5jb25maWdfbDRfZmlsdGVyID0gZHd4Z21hYzJfY29uZmlnX2w0X2ZpbHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDk0LVx0LmZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyA9IGR3eGdtYWMzX2ZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM9MTUxMT1jb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hsZ21hYzJfb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTI6XHQuY29yZV9pbml0ID0gZHd4Z21hYzJfY29yZV9pbml0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTM6XHQuaXJxX21vZGlmeSA9IGR3eGdtYWMyX2lycV9tb2RpZnksXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUxNDpcdC5zZXRfbWFjID0gZHd4Z21hYzJfc2V0X21hYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTE1Olx0LnJ4X2lwYyA9IGR3eGdtYWMyX3J4X2lwYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTE2LVx0LnJ4X3F1ZXVlX2VuYWJsZSA9IGR3eGxnbWFjMl9yeF9xdWV1ZV9lbmFibGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUxNzpcdC5yeF9xdWV1ZV9wcmlvID0gZHd4Z21hYzJfcnhfcXVldWVfcHJpbyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTE4Olx0LnR4X3F1ZXVlX3ByaW8gPSBkd3hnbWFjMl90eF9xdWV1ZV9wcmlvLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTk6XHQucnhfcXVldWVfcm91dGluZyA9IGR3eGdtYWMyX3J4X3F1ZXVlX3JvdXRpbmcsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyMDpcdC5wcm9nX210bF9yeF9hbGdvcml0aG1zID0gZHd4Z21hYzJfcHJvZ19tdGxfcnhfYWxnb3JpdGhtcyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTIxOlx0LnByb2dfbXRsX3R4X2FsZ29yaXRobXMgPSBkd3hnbWFjMl9wcm9nX210bF90eF9hbGdvcml0aG1zLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjI6XHQuc2V0X210bF90eF9xdWV1ZV93ZWlnaHQgPSBkd3hnbWFjMl9zZXRfbXRsX3R4X3F1ZXVlX3dlaWdodCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTIzOlx0Lm1hcF9tdGxfdG9fZG1hID0gZHd4Z21hYzJfbWFwX210bF90b19kbWEsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyNDpcdC5jb25maWdfY2JzID0gZHd4Z21hYzJfY29uZmlnX2NicyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTI1Olx0LmR1bXBfcmVncyA9IGR3eGdtYWMyX2R1bXBfcmVncyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTI2Olx0Lmhvc3RfaXJxX3N0YXR1cyA9IGR3eGdtYWMyX2hvc3RfaXJxX3N0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTI3Olx0Lmhvc3RfbXRsX2lycV9zdGF0dXMgPSBkd3hnbWFjMl9ob3N0X210bF9pcnFfc3RhdHVzLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1Mjg6XHQuZmxvd19jdHJsID0gZHd4Z21hYzJfZmxvd19jdHJsLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1Mjk6XHQucG10ID0gZHd4Z21hYzJfcG10LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MzA6XHQuc2V0X3VtYWNfYWRkciA9IGR3eGdtYWMyX3NldF91bWFjX2FkZHIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUzMTpcdC5nZXRfdW1hY19hZGRyID0gZHd4Z21hYzJfZ2V0X3VtYWNfYWRkcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTMyOlx0LnNldF9scGlfbW9kZSA9IGR3eGdtYWMyX3NldF9scGlfbW9kZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTMzOlx0LnNldF9lZWVfdGltZXIgPSBkd3hnbWFjMl9zZXRfZWVlX3RpbWVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MzQ6XHQuc2V0X2VlZV9wbHMgPSBkd3hnbWFjMl9zZXRfZWVlX3BscyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTM1LVx0LmRlYnVnID0gTlVMTCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTM2Olx0LnNldF9maWx0ZXIgPSBkd3hnbWFjMl9zZXRfZmlsdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1MzctXHQuc2FmZXR5X2ZlYXRfY29uZmlnID0gZHd4Z21hYzNfc2FmZXR5X2ZlYXRfY29uZmlnLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTM5LVx0LnNhZmV0eV9mZWF0X2R1bXAgPSBkd3hnbWFjM19zYWZldHlfZmVhdF9kdW1wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NDA6XHQuc2V0X21hY19sb29wYmFjayA9IGR3eGdtYWMyX3NldF9tYWNfbG9vcGJhY2ssXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0MTpcdC5yc3NfY29uZmlndXJlID0gZHd4Z21hYzJfcnNzX2NvbmZpZ3VyZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTQyLVx0LnJ4cF9jb25maWcgPSBkd3hnbWFjM19yeHBfY29uZmlnLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NDM6XHQuZ2V0X21hY190eF90aW1lc3RhbXAgPSBkd3hnbWFjMl9nZXRfbWFjX3R4X3RpbWVzdGFtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ0Olx0LmZsZXhfcHBzX2NvbmZpZyA9IGR3eGdtYWMyX2ZsZXhfcHBzX2NvbmZpZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ1Olx0LnNhcmNfY29uZmlndXJlID0gZHd4Z21hYzJfc2FyY19jb25maWd1cmUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0NjpcdC5jb25maWdfbDNfZmlsdGVyID0gZHd4Z21hYzJfY29uZmlnX2wzX2ZpbHRlcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ3Olx0LmNvbmZpZ19sNF9maWx0ZXIgPSBkd3hnbWFjMl9jb25maWdfbDRfZmlsdGVyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1NDgtXHQuZnBlX21hcF9wcmVlbXB0aW9uX2NsYXNzID0gZHd4Z21hYzNfZnBlX21hcF9wcmVlbXB0aW9uX2NsYXNzLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTUwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NTE6aW50IGR3eGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTktI2luY2x1ZGUgXCYjMzQ7Y29tbW9uLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTA6I2luY2x1ZGUgXCYjMzQ7ZHd4Z21hYzIuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTI6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfdHhfc3RhdHVzKHN0cnVjdCBzdG1tYWNfZXh0cmFfc3RhdHMgKngsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEzLVx0XHRcdFx0ICBzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHZvaWQgX19pb21lbSAqaW9hZGRyKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI2OnN0YXRpYyBpbnQgZHd4Z21hYzJfZ2V0X3J4X3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzICp4LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yNy1cdFx0XHRcdCAgc3RydWN0IGRtYV9kZXNjICpwKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNDgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjQ5OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF90eF9vd25lcihzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTUwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTUzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzo1NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfcnhfb3duZXIoc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgZGlzYWJsZV9yeF9pYylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjY0OnN0YXRpYyB1MTYgZHd4Z21hYzJfd3JiYWNrX2dldF9yeF92bGFuX3RjaShzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTY1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTY4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzo2OTpzdGF0aWMgYm9vbCBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdmFsaWQoc3RydWN0IGRtYV9kZXNjICpwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy03MC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy03OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6Nzk6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfcnhfZnJhbWVfbGVuKHN0cnVjdCBkbWFfZGVzYyAqcCwgaW50IHJ4X2NvZSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtODAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjg0OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2VuYWJsZV90eF90aW1lc3RhbXAoc3RydWN0IGRtYV9kZXNjICpwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy04NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy04OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6ODk6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfdHhfdGltZXN0YW1wX3N0YXR1cyhzdHJ1Y3QgZG1hX2Rlc2MgKnApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTkwLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTkzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzo5NDpzdGF0aWMgaW5saW5lIHZvaWQgZHd4Z21hYzJfZ2V0X3RpbWVzdGFtcCh2b2lkICpkZXNjLCB1MzIgYXRzLCB1NjQgKnRzKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy05NS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjEwNTpzdGF0aWMgaW50IGR3eGdtYWMyX3J4X2NoZWNrX3RpbWVzdGFtcCh2b2lkICpkZXNjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTI0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxMjU6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfcnhfdGltZXN0YW1wX3N0YXR1cyh2b2lkICpkZXNjLCB2b2lkICpuZXh0X2Rlc2MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEyNi1cdFx0XHRcdFx0ICAgIHUzMiBhdHMpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMzItXHRpZiAobGlrZWx5KHJkZXMzIFx1MDAyNiBYR01BQ19SREVTM19DREEpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxMzM6XHRcdHJldCA9IGR3eGdtYWMyX3J4X2NoZWNrX3RpbWVzdGFtcChuZXh0X2Rlc2MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMzQtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjEzODpzdGF0aWMgdm9pZCBkd3hnbWFjMl9pbml0X3J4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgZGlzYWJsZV9yeF9pYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTM5LVx0XHRcdFx0ICB1OCBkZXNjcmlwdG9yX21vZGUsIGludCBlbmQsIGludCBiZnNpemUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE0MC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjE0MTpcdGR3eGdtYWMyX3NldF9yeF9vd25lcihwLCBkaXNhYmxlX3J4X2ljKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTQyLX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxNDQ6c3RhdGljIHZvaWQgZHd4Z21hYzJfaW5pdF90eF9kZXNjKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTggZGVzY3JpcHRvcl9tb2RlLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xNDUtXHRcdFx0XHQgIGludCBlbmQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xNTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjE1MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9wcmVwYXJlX3R4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgaXNfZnMsIGludCBsZW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE1NC1cdFx0XHRcdCAgICAgYm9vbCBjc3VtX2ZsYWcsIHU4IGRlc2NyaXB0b3JfbW9kZSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTkyOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3ByZXBhcmVfdHNvX3R4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgaXNfZnMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE5My1cdFx0XHRcdFx0IGludCBsZW4xLCBpbnQgbGVuMiwgYm9vbCB0eF9vd24sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yMjktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjIzMDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9yZWxlYXNlX3R4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCB1OCBkZXNjcmlwdG9yX21vZGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTIzMS17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yMzctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjIzODpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfdHhfaWMoc3RydWN0IGRtYV9kZXNjICpwKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yMzkte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjQyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoyNDM6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X21zcyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHVuc2lnbmVkIGludCBtc3MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI0NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yNTAtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI1MTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfYWRkcihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGRtYV9hZGRyX3QgYWRkcilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjU3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2NsZWFyKHN0cnVjdCBkbWFfZGVzYyAqcClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjU4LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI2NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjY1OnN0YXRpYyBpbnQgZHd4Z21hYzJfZ2V0X3J4X2hhc2goc3RydWN0IGRtYV9kZXNjICpwLCB1MzIgKmhhc2gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI2Ni1cdFx0XHRcdGVudW0gcGt0X2hhc2hfdHlwZXMgKnR5cGUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI5MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9nZXRfcnhfaGVhZGVyX2xlbihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHVuc2lnbmVkIGludCAqbGVuKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0yOTQte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoyOTk6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3NlY19hZGRyKHN0cnVjdCBkbWFfZGVzYyAqcCwgZG1hX2FkZHJfdCBhZGRyLCBib29sIGlzX3ZhbGlkKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMDAte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzA0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozMDU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3NhcmMoc3RydWN0IGRtYV9kZXNjICpwLCB1MzIgc2FyY190eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMDYte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzA5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozMTA6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3ZsYW5fdGFnKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTE2IHRhZywgdTE2IGlubmVyX3RhZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzExLVx0XHRcdFx0ICB1MzIgaW5uZXJfdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMzNC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzM1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF92bGFuKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTMyIHR5cGUpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMzNi17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMzktXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM0MDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfdGJzKHN0cnVjdCBkbWFfZWRlc2MgKnAsIHUzMiBzZWMsIHUzMiBuc2VjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zNDEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNDg6Y29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyBkd3hnbWFjMjEwX2Rlc2Nfb3BzID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNDk6XHQudHhfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3R4X3N0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzUwOlx0LnJ4X3N0YXR1cyA9IGR3eGdtYWMyX2dldF9yeF9zdGF0dXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MTpcdC5zZXRfdHhfb3duZXIgPSBkd3hnbWFjMl9zZXRfdHhfb3duZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MjpcdC5zZXRfcnhfb3duZXIgPSBkd3hnbWFjMl9zZXRfcnhfb3duZXIsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MzpcdC5nZXRfcnhfdmxhbl90Y2kgPSBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdGNpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTQ6XHQuZ2V0X3J4X3ZsYW5fdmFsaWQgPSBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdmFsaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1NTpcdC5nZXRfcnhfZnJhbWVfbGVuID0gZHd4Z21hYzJfZ2V0X3J4X2ZyYW1lX2xlbixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzU2Olx0LmVuYWJsZV90eF90aW1lc3RhbXAgPSBkd3hnbWFjMl9lbmFibGVfdHhfdGltZXN0YW1wLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTc6XHQuZ2V0X3R4X3RpbWVzdGFtcF9zdGF0dXMgPSBkd3hnbWFjMl9nZXRfdHhfdGltZXN0YW1wX3N0YXR1cyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzU4Olx0LmdldF9yeF90aW1lc3RhbXBfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3J4X3RpbWVzdGFtcF9zdGF0dXMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1OTpcdC5nZXRfdGltZXN0YW1wID0gZHd4Z21hYzJfZ2V0X3RpbWVzdGFtcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzYwOlx0LnNldF90eF9pYyA9IGR3eGdtYWMyX3NldF90eF9pYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzYxOlx0LnByZXBhcmVfdHhfZGVzYyA9IGR3eGdtYWMyX3ByZXBhcmVfdHhfZGVzYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzYyOlx0LnByZXBhcmVfdHNvX3R4X2Rlc2MgPSBkd3hnbWFjMl9wcmVwYXJlX3Rzb190eF9kZXNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjM6XHQucmVsZWFzZV90eF9kZXNjID0gZHd4Z21hYzJfcmVsZWFzZV90eF9kZXNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjQ6XHQuaW5pdF9yeF9kZXNjID0gZHd4Z21hYzJfaW5pdF9yeF9kZXNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjU6XHQuaW5pdF90eF9kZXNjID0gZHd4Z21hYzJfaW5pdF90eF9kZXNjLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjY6XHQuc2V0X21zcyA9IGR3eGdtYWMyX3NldF9tc3MsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM2NzpcdC5zZXRfYWRkciA9IGR3eGdtYWMyX3NldF9hZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjg6XHQuY2xlYXIgPSBkd3hnbWFjMl9jbGVhcixcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY5Olx0LmdldF9yeF9oYXNoID0gZHd4Z21hYzJfZ2V0X3J4X2hhc2gsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM3MDpcdC5nZXRfcnhfaGVhZGVyX2xlbiA9IGR3eGdtYWMyX2dldF9yeF9oZWFkZXJfbGVuLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNzE6XHQuc2V0X3NlY19hZGRyID0gZHd4Z21hYzJfc2V0X3NlY19hZGRyLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNzI6XHQuc2V0X3NhcmMgPSBkd3hnbWFjMl9zZXRfc2FyYyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzczOlx0LnNldF92bGFuX3RhZyA9IGR3eGdtYWMyX3NldF92bGFuX3RhZyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6Mzc0Olx0LnNldF92bGFuID0gZHd4Z21hYzJfc2V0X3ZsYW4sXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM3NTpcdC5zZXRfdGJzID0gZHd4Z21hYzJfc2V0X3RicyxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzc2LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmMtOC0jaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmM6OTojaW5jbHVkZSBcJiMzNDtkd3hnbWFjMi5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kbWEuYy0xMC1cblxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NTAyCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogNzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRGlnZ2luZyBpbnRvIHRoZSBEcml2ZXIgQ29kZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlc2UgZmlsZXM6IGBkd21hYy1zb2NmcGdhLmNgLCBgZHd4Z21hYzJfcHRwYCwgYW5kIGBod2lmLmNgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgaGFyZHdhcmUgY29udGV4dCBmb3IgYGR3eGdtYWMyYC4gSXQmIzM5O3MgYSBmYW1pbGlhciBpbnRlcmZhY2UgYnV0IEkgbmVlZCB0byBxdWlja2x5IHJlZnJlc2ggbXkgbWVtb3J5LgoKSG1tLCB3aGVyZSBpcyBgZHd4Z21hYzJgIGFjdHVhbGx5IGJlaW5nICp1c2VkKj8gSSBuZWVkIHRvIHRyYWNlIHRoaXMgYmFjay4gVGhlIG1vc3QgZGlyZWN0IGFwcHJvYWNoIGlzIHRvIGNoZWNrIGZvciBjYWxscyB0byBgZHd4Z21hYzJfc2V0dXBgIGZ1bmN0aW9uIOKAkyB0aGF0JiMzOTtsbCBnaXZlIG1lIGEgc3Ryb25nIHN0YXJ0aW5nIHBvaW50IGZvciB0aGUgZHJpdmVyIGluaXRpYWxpemF0aW9uIHBhdGguIEFsdGVybmF0aXZlbHksIEkgY2FuIHNlYXJjaCBmb3IgaW5zdGFuY2VzIHdoZXJlIGBEV1hHTUFDYCBod2lmIGVudHJpZXMgYXJlIGJlaW5nIGVtcGxveWVkLCBhcyB0aGF0IHdvdWxkIHN1Z2dlc3QgYSBtb3JlIGFic3RyYWN0IGludGVyZmFjZS4gRWl0aGVyIG9mIHRoZXNlIHNob3VsZCBnZXQgbWUgdG8gdGhlIHJpZ2h0IHBsYWNlIHRvIHVuZGVyc3RhbmQgd2hpY2ggaGFyZHdhcmUgaXMgYWN0dWFsbHkgbGV2ZXJhZ2luZyB0aGlzIGBkd3hnbWFjMmAgZnVuY3Rpb25hbGl0eS4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O1NUTU1BQ19EV1hHTUFDJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NzojaWZuZGVmIF9fU1RNTUFDX0RXWEdNQUMyX0hfX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo4OiNkZWZpbmUgX19TVE1NQUNfRFdYR01BQzJfSF9fXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaD00Njg9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgZHd4Z21hYzIxMF9kZXNjX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0NzA6I2VuZGlmIC8qIF9fU1RNTUFDX0RXWEdNQUMyX0hfXyAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTA3NgoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSBpbW1lZGlhdGUgdGhvdWdodCBwcm9jZXNzOgoKKipEaXZpbmcgaW50byBgaHdpZi5jYCoqCgpPa2F5LCBJIG5lZWQgdG8gZ2V0IGludG8gdGhlIGNvZGUuIE15IGZpcnN0IGluc3RpbmN0IGlzIHRvIHplcm8gaW4gb24gYGh3aWYuY2AuIFRoYXQmIzM5O3Mgd2hlcmUgSSBzaG91bGQgYmUgbG9va2luZyBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0LiBBbmQgSSB0aGluayB0aGF0IGxpbmVzIDI1OCBhbmQgMjgwIGFyZSB0aGUgbW9zdCBsaWtlbHkgaG90c3BvdHMuIEkgbmVlZCB0byB0YWtlIGEgbG9vayBhdCB3aGF0JiMzOTtzIGdvaW5nIG9uIGFyb3VuZCB0aG9zZSBsaW5lIG51bWJlcnMuIEkgZXhwZWN0IHRvIGJlIGFibGUgdG8gcXVpY2tseSB6ZXJvIGluIG9uIHRoZSByZWxldmFudCBjb2RlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDI0NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMjQ1Olx0XHRcdC5zZXR1cCA9IGR3bWFjNF9zZXR1cCxcbiAyNDY6XHRcdFx0LnF1aXJrcyA9IE5VTEwsXG4gMjQ3Olx0XHR9LCB7XG4gMjQ4Olx0XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxuIDI0OTpcdFx0XHQubWluX2lkID0gRFdYR01BQ19DT1JFXzJfMTAsXG4gMjUwOlx0XHRcdC5kZXZfaWQgPSBEV1hHTUFDX0lELFxuIDI1MTpcdFx0XHQucmVncyA9IHtcbiAyNTI6XHRcdFx0XHQucHRwX29mZiA9IFBUUF9YR01BQ19PRkZTRVQsXG4gMjUzOlx0XHRcdFx0Lm1tY19vZmYgPSBNTUNfWEdNQUNfT0ZGU0VULFxuIDI1NDpcdFx0XHRcdC5lc3Rfb2ZmID0gRVNUX1hHTUFDX09GRlNFVCxcbiAyNTU6XHRcdFx0XHQuZnBlX3JlZyA9IFx1MDAyNmR3eGdtYWMzX2ZwZV9yZWcsXG4gMjU2Olx0XHRcdH0sXG4gMjU3Olx0XHRcdC5kZXNjID0gXHUwMDI2ZHd4Z21hYzIxMF9kZXNjX29wcyxcbiAyNTg6XHRcdFx0LmRtYSA9IFx1MDAyNmR3eGdtYWMyMTBfZG1hX29wcyxcbiAyNTk6XHRcdFx0Lm1hYyA9IFx1MDAyNmR3eGdtYWMyMTBfb3BzLFxuIDI2MDpcdFx0XHQudmxhbiA9IFx1MDAyNmR3eGdtYWMyMTBfdmxhbl9vcHMsXG4gMjYxOlx0XHRcdC5od3RpbWVzdGFtcCA9IFx1MDAyNmR3eGdtYWMyX3B0cCxcbiAyNjI6XHRcdFx0LnB0cCA9IFx1MDAyNnN0bW1hY19wdHBfY2xvY2tfb3BzLFxuIDI2MzpcdFx0XHQubW9kZSA9IE5VTEwsXG4gMjY0Olx0XHRcdC50YyA9IFx1MDAyNmR3bWFjNTEwX3RjX29wcyxcbiAyNjU6XHRcdFx0Lm1tYyA9IFx1MDAyNmR3eGdtYWNfbW1jX29wcyxcbiAyNjY6XHRcdFx0LmVzdCA9IFx1MDAyNmR3bWFjNTEwX2VzdF9vcHMsXG4gMjY3Olx0XHRcdC5zZXR1cCA9IGR3eGdtYWMyX3NldHVwLFxuIDI2ODpcdFx0XHQucXVpcmtzID0gTlVMTCxcbiAyNjk6XHRcdH0sIHtcbiAyNzA6XHRcdFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXG4gMjcxOlx0XHRcdC5taW5faWQgPSBEV1hMR01BQ19DT1JFXzJfMDAsXG4gMjcyOlx0XHRcdC5kZXZfaWQgPSBEV1hMR01BQ19JRCxcbiAyNzM6XHRcdFx0LnJlZ3MgPSB7XG4gMjc0Olx0XHRcdFx0LnB0cF9vZmYgPSBQVFBfWEdNQUNfT0ZGU0VULFxuIDI3NTpcdFx0XHRcdC5tbWNfb2ZmID0gTU1DX1hHTUFDX09GRlNFVCxcbiAyNzY6XHRcdFx0XHQuZXN0X29mZiA9IEVTVF9YR01BQ19PRkZTRVQsXG4gMjc3Olx0XHRcdFx0LmZwZV9yZWcgPSBcdTAwMjZkd3hnbWFjM19mcGVfcmVnLFxuIDI3ODpcdFx0XHR9LFxuIDI3OTpcdFx0XHQuZGVzYyA9IFx1MDAyNmR3eGdtYWMyMTBfZGVzY19vcHMsXG4gMjgwOlx0XHRcdC5kbWEgPSBcdTAwMjZkd3hnbWFjMjEwX2RtYV9vcHMsXG4gMjgxOlx0XHRcdC5tYWMgPSBcdTAwMjZkd3hsZ21hYzJfb3BzLFxuIDI4MjpcdFx0XHQudmxhbiA9IFx1MDAyNmR3eGxnbWFjMl92bGFuX29wcyxcbiAyODM6XHRcdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2ZHd4Z21hYzJfcHRwLFxuIDI4NDpcdFx0XHQucHRwID0gXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXG4gMjg1Olx0XHRcdC5tb2RlID0gTlVMTCxcbiAyODY6XHRcdFx0LnRjID0gXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxuIDI4NzpcdFx0XHQubW1jID0gXHUwMDI2ZHd4Z21hY19tbWNfb3BzLFxuIDI4ODpcdFx0XHQuZXN0ID0gXHUwMDI2ZHdtYWM1MTBfZXN0X29wcyxcbiAyODk6XHRcdFx0LnNldHVwID0gZHd4bGdtYWMyX3NldHVwLFxuIDI5MDpcdFx0fSxcbiAyOTE6XHR9O1xuIDI5MjpcdFxuIDI5MzpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkgKlxuIDI5NDpcdHN0bW1hY19od2lmX2ZpbmQoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlLCB1OCBzbnBzdmVyLCB1OCBkZXZfaWQpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI2MjAzCgkJCQkJCQlvdXRwdXQ6IDQzCgkJCQkJCQl0aG91Z2h0czogNTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgYW5hbHl6aW5nIHRoaXMgY29kZToKCioqSW52ZXN0aWdhdGluZyBTVE1NQUMgRHJpdmVyIENvbXBhdGliaWxpdHkqKgoKT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggZHJpdmVycyBhbmQgcGxhdGZvcm1zIGFyZSBwcm9iaW5nIHRoZSBTVE1NQUMgRXRoZXJuZXQgZHJpdmVyIHdpdGggdGhvc2Ugc3BlY2lmaWMgRGlnaXRhbCBXb3JsZCAoRFcpIE1BQyBjb3JlIElEczogYERXTUFDX0NPUkVfWEdNQUNgIGFuZCBgZHd4Z21hYzJgLiBNeSBpbnN0aW5jdCBpcyB0byBmaXJzdCBmb2N1cyBvbiB0aG9zZSBpZGVudGlmaWVycyBiZWNhdXNlIHRoZXkmIzM5O3JlIHRoZSBkaXJlY3QgaG9va3MsIHRoZSAmIzM0O2tleXMmIzM0OyBpZiB5b3Ugd2lsbC4KClRoZW4sIHRvIGJyb2FkZW4gdGhlIHNlYXJjaCBhbmQgZW5zdXJlIEkmIzM5O20gZ2V0dGluZyBhIGNvbXBsZXRlIHBpY3R1cmUsIEkgbmVlZCB0byBsb29rIGJleW9uZCB0aG9zZSBleGFjdCBpZGVudGlmaWVycy4gU28sIEkmIzM5O2xsIGJyb2FkZW4gbXkgc2VhcmNoIHdpdGhpbiB0aGUga2VybmVsIHNvdXJjZSB0byBpbmNsdWRlIHJlbGF0ZWQgaWRlbnRpZmllcnMgdGhhdCBTVE1NQUMgbWlnaHQgYmUgdXNpbmcsIHN1Y2ggYXMgdGhlIG1vcmUgZ2VuZXJpYyBgRFdYR01BQ2AgYW5kIGBEV1hMR01BQ2AuIFRoaXMgZXhwYW5kZWQgc2VhcmNoIHNob3VsZCBhbGxvdyBtZSB0byBjYXRjaCBhbnkgcG90ZW50aWFsIHZhcmlhdGlvbnMgaW4gbmFtaW5nIGNvbnZlbnRpb25zIG9yIGFsaWFzZXMgdGhlIGNvZGUgbWlnaHQgYmUgZW1wbG95aW5nLiBJdCYjMzk7cyBhYm91dCBiZWluZyB0aG9yb3VnaCBhbmQgbm90IG1pc3NpbmcgYW55IGNvbm5lY3Rpb25zLiBJIG5lZWQgdG8gc2VlIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB3aGVyZSBTVE1NQUMgaXMgYmVpbmcgdXNlZCB3aXRoIHRoaXMgdHlwZSBvZiBNQUMgY29yZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7RFdYR01BQ3xEV1hMR01BQyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00MC0jZGVmaW5lIERXTUFDX0NPUkVfNV8yMFx0XHQweDUyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0MTojZGVmaW5lIERXWEdNQUNfQ09SRV8yXzEwXHQweDIxXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0MjojZGVmaW5lIERXWEdNQUNfQ09SRV8yXzIwXHQweDIyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0MzojZGVmaW5lIERXWExHTUFDX0NPUkVfMl8wMFx0MHgyMFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00NS0vKiBEZXZpY2UgSUQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQ2OiNkZWZpbmUgRFdYR01BQ19JRFx0XHQweDc2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0NzojZGVmaW5lIERXWExHTUFDX0lEXHRcdDB4MjdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NzojaWZuZGVmIF9fU1RNTUFDX0RXWEdNQUMyX0hfX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo4OiNkZWZpbmUgX19TVE1NQUNfRFdYR01BQzJfSF9fXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaD00Njg9ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgZHd4Z21hYzIxMF9kZXNjX29wcztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0NzA6I2VuZGlmIC8qIF9fU1RNTUFDX0RXWEdNQUMyX0hfXyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jPTM2Mj1zdGF0aWMgaW50IGR3eGdtYWMyX2dldF9od19mZWF0dXJlKHZvaWQgX19pb21lbSAqaW9hZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jLTM5Mi1cdGRtYV9jYXAtXHUwMDNlbWJwc18xMDAwID0gKGh3X2NhcCBcdTAwMjYgWEdNQUNfSFdGRUFUX0dNSUlTRUwpIFx1MDAzZVx1MDAzZSAxO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmM6MzkzOlx0aWYgKGRtYV9jYXAtXHUwMDNlbWJwc18xMDAwIFx1MDAyNlx1MDAyNiBwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdYR01BQ19DT1JFXzJfMjApXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kbWEuYy0zOTQtXHRcdGRtYV9jYXAtXHUwMDNlbWJwc18xMF8xMDAgPSAxO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oLTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hsZ21hYzIuaDo3OiNpZm5kZWYgX19TVE1NQUNfRFdYTEdNQUMyX0hfX1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4bGdtYWMyLmg6ODojZGVmaW5lIF9fU1RNTUFDX0RXWExHTUFDMl9IX19cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oLTktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4bGdtYWMyLmgtMjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hsZ21hYzIuaDoyMjojZW5kaWYgLyogX19TVE1NQUNfRFdYTEdNQUMyX0hfXyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYz0xMTE9c3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0OC1cdFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjQ5Olx0XHQubWluX2lkID0gRFdYR01BQ19DT1JFXzJfMTAsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjUwOlx0XHQuZGV2X2lkID0gRFdYR01BQ19JRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNTEtXHRcdC5yZWdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNzAtXHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjI3MTpcdFx0Lm1pbl9pZCA9IERXWExHTUFDX0NPUkVfMl8wMCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNzI6XHRcdC5kZXZfaWQgPSBEV1hMR01BQ19JRCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNzMtXHRcdC5yZWdzID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NzI9c3RhdGljIHZvaWQgc3RtbWFjX3hnbWFjMl9jMjJfZm9ybWF0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgaW50IHBoeWFkZHIsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy03Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6Nzc6XHRpZiAocHJpdi1cdTAwM2VzeW5vcHN5c19pZCBcdTAwM2MgRFdYR01BQ19DT1JFXzJfMjApIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNzgtXHRcdC8qIFVudGlsIHZlciAyLjIwIFhHTUFDIGRvZXMgbm90IHN1cHBvcnQgQzIyIGFkZHIgXHUwMDNlPSA0LiBUaG9zZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9MTMyPXN0YXRpYyBpbnQgc3RtbWFjX3hnbWFjMl9tZGlvX3JlYWRfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHlhZGRyLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMTM4LVx0LyogVW50aWwgdmVyIDIuMjAgWEdNQUMgZG9lcyBub3Qgc3VwcG9ydCBDMjIgYWRkciBcdTAwM2U9IDQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6MTM5Olx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXWEdNQUNfQ09SRV8yXzIwIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy0xNDAtXHQgICAgcGh5YWRkciBcdTAwM2UgTUlJX1hHTUFDX01BWF9DMjJBRERSKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9MTk1PXN0YXRpYyBpbnQgc3RtbWFjX3hnbWFjMl9tZGlvX3dyaXRlX2MyMihzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgcGh5YWRkcixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTIwMS1cdC8qIFVudGlsIHZlciAyLjIwIFhHTUFDIGRvZXMgbm90IHN1cHBvcnQgQzIyIGFkZHIgXHUwMDNlPSA0ICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjIwMjpcdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzYyBEV1hHTUFDX0NPUkVfMl8yMCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMjAzLVx0ICAgIHBoeWFkZHIgXHUwMDNlIE1JSV9YR01BQ19NQVhfQzIyQUREUilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTU5NT1pbnQgc3RtbWFjX21kaW9fcmVnaXN0ZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02MjctXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjYyODpcdFx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXWEdNQUNfQ09SRV8yXzIwKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTYyOS1cdFx0XHQvKiBSaWdodCBub3cgb25seSBDMjIgcGh5cyBhcmUgc3VwcG9ydGVkICovXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4NjI3CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogNDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcy4KCioqRXhhbWluaW5nIHRoZSBkd21hYy1zb2NmcGdhIERyaXZlcioqCgpBbHJpZ2h0LCBzbyB0aGUgdGFzayBhdCBoYW5kIGlzIHRvIHVuZGVyc3RhbmQgdGhlIHJvbGUgb2YgYGR3bWFjLXNvY2ZwZ2EuY2AuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBmaWd1cmUgb3V0IHByZWNpc2VseSB3aGF0IHRoaXMgZHJpdmVyICpkb2VzKiBpbiB0aGUgZ3JhbmQgc2NoZW1lIG9mIHRoaW5ncy4gU3BlY2lmaWNhbGx5LCBob3cgZG9lcyBpdCBmaXQgaW50byB0aGUgYnJvYWRlciBFdGhlcm5ldCBkcml2ZXIgZWNvc3lzdGVtIOKAkyB3aGF0JiMzOTtzIGl0cyByZWxhdGlvbnNoaXAgd2l0aCBgc3RtbWFjYD8gVGhhdCYjMzk7cyB0aGUgY29yZSBxdWVzdGlvbi4gVG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMsIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIGdldCBteSBleWVzIG9uIHRoZSBzb3VyY2UgY29kZSBvZiBgZHdtYWMtc29jZnBnYS5jYC4gSSYjMzk7bGwgZGVsdmUgaW50byB0aGUgY29kZSB0byB0cmFjZSB0aGUgaW50ZXJhY3Rpb25zLCBkZXBlbmRlbmNpZXMsIGFuZCBhbnkga2V5IGNvbmZpZ3VyYXRpb24gYXNwZWN0cyB0aGF0IHNoZWQgbGlnaHQgb24gaG93IGl0IGNvbW11bmljYXRlcyBhbmQgaW50ZWdyYXRlcyB3aXRoIHRoZSBgc3RtbWFjYCBmcmFtZXdvcmsuIFVuZGVyc3RhbmRpbmcgdGhlIGNvZGUmIzM5O3Mgc3RydWN0dXJlIGFuZCB0aGUgc3BlY2lmaWMgY2FsbHMgaXQgbWFrZXMgd2lsbCBpbGx1bWluYXRlIGl0cyBmdW5jdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdC8qIENvcHlyaWdodCBBbHRlcmEgQ29ycG9yYXRpb24gKEMpIDIwMTQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gICAzOlx0ICpcbiAgIDQ6XHQgKiBBZG9wdGVkIGZyb20gZHdtYWMtc3RpLmNcbiAgIDU6XHQgKi9cbiAgIDY6XHRcbiAgIDc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9tZmQvYWx0ZXJhLXN5c21nci5oXHUwMDNlXG4gICA4Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvY2xvY2tzb3VyY2VfaWRzLmhcdTAwM2VcbiAgIDk6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9vZi5oXHUwMDNlXG4gIDEwOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvb2ZfYWRkcmVzcy5oXHUwMDNlXG4gIDExOlx0I2luY2x1ZGUgXHUwMDNjbGludXgvb2ZfbmV0LmhcdTAwM2VcbiAgMTI6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9waHkuaFx1MDAzZVxuICAxMzpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3JlZ21hcC5oXHUwMDNlXG4gIDE0Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvbWRpby9tZGlvLXJlZ21hcC5oXHUwMDNlXG4gIDE1Olx0I2luY2x1ZGUgXHUwMDNjbGludXgvcGNzLWx5bnguaFx1MDAzZVxuICAxNjpcdCNpbmNsdWRlIFx1MDAzY2xpbnV4L3Jlc2V0LmhcdTAwM2VcbiAgMTc6XHQjaW5jbHVkZSBcdTAwM2NsaW51eC9zdG1tYWMuaFx1MDAzZVxuICAxODpcdFxuICAxOTpcdCNpbmNsdWRlIFwmIzM0O2R3eGdtYWMyLmhcJiMzNDtcbiAgMjA6XHQjaW5jbHVkZSBcJiMzNDtzdG1tYWMuaFwmIzM0O1xuICAyMTpcdCNpbmNsdWRlIFwmIzM0O3N0bW1hY19wbGF0Zm9ybS5oXCYjMzQ7XG4gIDIyOlx0I2luY2x1ZGUgXCYjMzQ7c3RtbWFjX3B0cC5oXCYjMzQ7XG4gIDIzOlx0XG4gIDI0Olx0I2RlZmluZSBTWVNNR1JfRU1BQ0dSUF9DVFJMX1BIWVNFTF9FTlVNX0dNSUlfTUlJIDB4MFxuICAyNTpcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QSFlTRUxfRU5VTV9SR01JSSAweDFcbiAgMjY6XHQjZGVmaW5lIFNZU01HUl9FTUFDR1JQX0NUUkxfUEhZU0VMX0VOVU1fUk1JSSAweDJcbiAgMjc6XHQjZGVmaW5lIFNZU01HUl9FTUFDR1JQX0NUUkxfUEhZU0VMX1dJRFRIIDJcbiAgMjg6XHQjZGVmaW5lIFNZU01HUl9FTUFDR1JQX0NUUkxfUEhZU0VMX01BU0sgMHgwMDAwMDAwM1xuICAyOTpcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QVFBfUkVGX0NMS19NQVNLIDB4MDAwMDAwMTBcbiAgMzA6XHQjZGVmaW5lIFNZU01HUl9HRU4xMF9FTUFDR1JQX0NUUkxfUFRQX1JFRl9DTEtfTUFTSyAweDAwMDAwMTAwXG4gIDMxOlx0XG4gIDMyOlx0I2RlZmluZSBTWVNNR1JfRlBHQUdSUF9NT0RVTEVfUkVHICAweDAwMDAwMDI4XG4gIDMzOlx0I2RlZmluZSBTWVNNR1JfRlBHQUdSUF9NT0RVTEVfRU1BQyAweDAwMDAwMDA0XG4gIDM0Olx0I2RlZmluZSBTWVNNR1JfRlBHQUlOVEZfRU1BQ19SRUdcdDB4MDAwMDAwNzBcbiAgMzU6XHQjZGVmaW5lIFNZU01HUl9GUEdBSU5URl9FTUFDX0JJVFx0MHgxXG4gIDM2Olx0XG4gIDM3Olx0I2RlZmluZSBFTUFDX1NQTElUVEVSX0NUUkxfUkVHXHRcdFx0MHgwXG4gIDM4Olx0I2RlZmluZSBFTUFDX1NQTElUVEVSX0NUUkxfU1BFRURfTUFTS1x0XHQweDNcbiAgMzk6XHQjZGVmaW5lIEVNQUNfU1BMSVRURVJfQ1RSTF9TUEVFRF8xMFx0XHQweDJcbiAgNDA6XHQjZGVmaW5lIEVNQUNfU1BMSVRURVJfQ1RSTF9TUEVFRF8xMDBcdFx0MHgzXG4gIDQxOlx0I2RlZmluZSBFTUFDX1NQTElUVEVSX0NUUkxfU1BFRURfMTAwMFx0XHQweDBcbiAgNDI6XHRcbiAgNDM6XHQjZGVmaW5lIFNHTUlJX0FEQVBURVJfQ1RSTF9SRUdcdFx0MHgwMFxuICA0NDpcdCNkZWZpbmUgU0dNSUlfQURBUFRFUl9FTkFCTEVcdFx0MHgwMDAwXG4gIDQ1Olx0I2RlZmluZSBTR01JSV9BREFQVEVSX0RJU0FCTEVcdFx0MHgwMDAxXG4gIDQ2Olx0XG4gIDQ3Olx0I2RlZmluZSBTTVRHX01ESU9fQUREUlx0XHQweDE1XG4gIDQ4Olx0I2RlZmluZSBTTVRHX1RTQ19XT1JEMFx0XHQweENcbiAgNDk6XHQjZGVmaW5lIFNNVEdfVFNDX1dPUkQxXHRcdDB4RFxuICA1MDpcdCNkZWZpbmUgU01UR19UU0NfV09SRDJcdFx0MHhFXG4gIDUxOlx0I2RlZmluZSBTTVRHX1RTQ19XT1JEM1x0XHQweEZcbiAgNTI6XHQjZGVmaW5lIFNNVEdfVFNDX1NISUZUXHRcdDE2XG4gIDUzOlx0XG4gIDU0Olx0c3RydWN0IHNvY2ZwZ2FfZHdtYWM7XG4gIDU1Olx0c3RydWN0IHNvY2ZwZ2FfZHdtYWNfb3BzIHtcbiAgNTY6XHRcdGludCAoKnNldF9waHlfbW9kZSkoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjX3ByaXYsXG4gIDU3Olx0XHRcdFx0ICAgIHN0cnVjdCBkZXZpY2UgKmRldik7XG4gIDU4Olx0XHR2b2lkICgqc2V0dXBfcGxhdF9kYXQpKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hY19wcml2KTtcbiAgNTk6XHR9O1xuICA2MDpcdFxuICA2MTpcdHN0cnVjdCBzb2NmcGdhX2R3bWFjIHtcbiAgNjI6XHRcdHUzMlx0cmVnX29mZnNldDtcbiAgNjM6XHRcdHUzMlx0cmVnX3NoaWZ0O1xuICA2NDpcdFx0c3RydWN0IHBsYXRfc3RtbWFjZW5ldF9kYXRhICpwbGF0X2RhdDtcbiAgNjU6XHRcdHN0cnVjdCByZWdtYXAgKnN5c19tZ3JfYmFzZV9hZGRyO1xuICA2NjpcdFx0c3RydWN0IHJlc2V0X2NvbnRyb2wgKnN0bW1hY19yc3Q7XG4gIDY3Olx0XHRzdHJ1Y3QgcmVzZXRfY29udHJvbCAqc3RtbWFjX29jcF9yc3Q7XG4gIDY4Olx0XHR2b2lkIF9faW9tZW0gKnNwbGl0dGVyX2Jhc2U7XG4gIDY5Olx0XHR2b2lkIF9faW9tZW0gKnRzZV9wY3NfYmFzZTtcbiAgNzA6XHRcdHZvaWQgX19pb21lbSAqc2dtaWlfYWRhcHRlcl9iYXNlO1xuICA3MTpcdFx0Ym9vbCBmMmhfcHRwX3JlZl9jbGs7XG4gIDcyOlx0XHRjb25zdCBzdHJ1Y3Qgc29jZnBnYV9kd21hY19vcHMgKm9wcztcbiAgNzM6XHR9O1xuICA3NDpcdFxuICA3NTpcdHN0YXRpYyBwaHlfaW50ZXJmYWNlX3Qgc29jZnBnYV9nZXRfcGxhdF9waHltb2RlKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYylcbiAgNzY6XHR7XG4gIDc3Olx0XHRyZXR1cm4gZHdtYWMtXHUwMDNlcGxhdF9kYXQtXHUwMDNlcGh5X2ludGVyZmFjZTtcbiAgNzg6XHR9XG4gIDc5Olx0XG4gIDgwOlx0c3RhdGljIHZvaWQgc29jZnBnYV9zZ21paV9jb25maWcoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjLCBib29sIGVuYWJsZSlcbiAgODE6XHR7XG4gIDgyOlx0XHR1MTYgdmFsID0gZW5hYmxlID8gU0dNSUlfQURBUFRFUl9FTkFCTEUgOiBTR01JSV9BREFQVEVSX0RJU0FCTEU7XG4gIDgzOlx0XG4gIDg0Olx0XHR3cml0ZXcodmFsLCBkd21hYy1cdTAwM2VzZ21paV9hZGFwdGVyX2Jhc2UgJiM0MzsgU0dNSUlfQURBUFRFUl9DVFJMX1JFRyk7XG4gIDg1Olx0fVxuICA4NjpcdFxuICA4NzpcdHN0YXRpYyB2b2lkIHNvY2ZwZ2FfZHdtYWNfZml4X21hY19zcGVlZCh2b2lkICpic3BfcHJpdixcbiAgODg6XHRcdFx0XHRcdFx0cGh5X2ludGVyZmFjZV90IGludGVyZmFjZSwgaW50IHNwZWVkLFxuICA4OTpcdFx0XHRcdFx0XHR1bnNpZ25lZCBpbnQgbW9kZSlcbiAgOTA6XHR7XG4gIDkxOlx0XHRzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqZHdtYWMgPSAoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKilic3BfcHJpdjtcbiAgOTI6XHRcdHZvaWQgX19pb21lbSAqc2dtaWlfYWRhcHRlcl9iYXNlID0gZHdtYWMtXHUwMDNlc2dtaWlfYWRhcHRlcl9iYXNlO1xuICA5MzpcdFx0cGh5X2ludGVyZmFjZV90IHBoeW1vZGUgPSBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoZHdtYWMpO1xuICA5NDpcdFx0dm9pZCBfX2lvbWVtICpzcGxpdHRlcl9iYXNlID0gZHdtYWMtXHUwMDNlc3BsaXR0ZXJfYmFzZTtcbiAgOTU6XHRcdHUzMiB2YWw7XG4gIDk2Olx0XG4gIDk3Olx0XHRpZiAoc2dtaWlfYWRhcHRlcl9iYXNlKVxuICA5ODpcdFx0XHRzb2NmcGdhX3NnbWlpX2NvbmZpZyhkd21hYywgZmFsc2UpO1xuICA5OTpcdFxuIDEwMDpcdFx0aWYgKHNwbGl0dGVyX2Jhc2UpIHtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzA3MTIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiA3MzgKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyIFBhdGNoKioKCk9rYXksIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEZpcnN0LCB0aGlzIHBhdGNoIGFmZmVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIHBsYXRmb3JtLCBzcGVjaWZpY2FsbHkgdGhlIGBkd21hYy1zb2NmcGdhLmNgIGZpbGUuIFRoaXMgdGVsbHMgbWUgd2UmIzM5O3JlIGRlYWxpbmcgd2l0aCBhbiBBUk0gb3IgQVJNNjQtYmFzZWQgZGV2aWNlIHRoYXQgcmVsaWVzIG9uIGEgRGV2aWNlIFRyZWUuIEJ1dCB3aGF0JiMzOTtzIGFjdHVhbGx5ICpjaGFuZ2VkKiBpbiB0aGUgcGF0Y2g/IExldCYjMzk7cyB0cmFjZSBpdCB0aHJvdWdoIHRoZSBmaWxlcy4KCiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jYDogIEkgc2VlIGBzdG1tYWNfbWFjX2lycV9tb2RpZnlgIGJlaW5nIGNhbGxlZCB0byBkaXNhYmxlIGFuZCB0aGVuIHJlLWVuYWJsZSB0aGUgdGltZXN0YW1wIGludGVycnVwdCBpbiBgc210Z19jcm9zc3RzdGFtcCgpYC4gIEludGVyZXN0aW5nLgoKKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oYDogVGhpcyBkZWZpbmVzIHRoZSBkZWZhdWx0IGludGVycnVwdCBlbmFibGUgbWFzaywgYFhHTUFDX0lOVF9ERUZBVUxUX0VOYC4gSXQgaW5jbHVkZXMgdGltZXN0YW1wLXJlbGF0ZWQgaW50ZXJydXB0cy4KCiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jYDogQSBuZXcgZnVuY3Rpb24sIGBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KClgLCBoYXMgYmVlbiBhZGRlZC4gIFRoaXMgaXMgYSBzaWduaWZpY2FudCBjaGFuZ2UsIGxpa2VseSB0aGUgY29yZSBvZiB0aGUgdGltZXN0YW1wIGZ1bmN0aW9uYWxpdHkuCgoqICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY2A6IFRoaXMgaXMgd2hlcmUgdGhlIGludGVyZmFjZSB0YWJsZSAoYC5od3RpbWVzdGFtcGApIGlzIHVwZGF0ZWQgZm9yIGBEV01BQ19DT1JFX1hHTUFDYCBkZXZpY2VzLiAgQ3J1Y2lhbGx5LCBpdCBzd2l0Y2hlcyBmcm9tIGBzdG1tYWNfcHRwYCB0byBgZHd4Z21hYzJfcHRwYC4gVGhpcyBpbXBsaWVzIGEgZnVuZGFtZW50YWwgc2hpZnQgaW4gaG93IGhhcmR3YXJlIHRpbWVzdGFtcGluZyBpcyBoYW5kbGVkIGZvciB0aGVzZSBYR01BQyBjb3Jlcy4gIFdlJiMzOTtyZSBnb2luZyBmcm9tIGEgZ2VuZXJpYyBQVFAgaW1wbGVtZW50YXRpb24gdG8gYSBtb3JlIHNwZWNpYWxpemVkIGBkd3hnbWFjMmAgb25lLgoKKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhgOiBKdXN0IGFuIGV4dGVybmFsIGRlY2xhcmF0aW9uIG9mIHRoZSBuZXcgYGR3eGdtYWMyX3B0cGAuIEV4cGVjdGVkLgoKKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY2A6IFRoZSBkZWZpbml0aW9uIG9mIGBkd3hnbWFjMl9wdHBgIGlzIHRoZSBoZWFydCBvZiB0aGUgY2hhbmdlcy4gIEl0JiMzOTtzIGEgc3RydWN0dXJlIGNvbnRhaW5pbmcgYWxsIHRoZSBoYXJkd2FyZSB0aW1lc3RhbXBpbmcgZnVuY3Rpb25zIHNwZWNpZmljIHRvIHRoaXMgbmV3IGltcGxlbWVudGF0aW9uLiBUaGUgbmV3IHN0cnVjdHVyZSBpbmNsdWRlcyBjYWxsYmFja3MgZm9yIGNvbmZpZ3VyaW5nIHRoZSBoYXJkd2FyZSwgaGFuZGxpbmcgc3ViLXNlY29uZCBpbmNyZW1lbnQsIGFuZCBhZGp1c3Rpbmcgc3lzdGVtIHRpbWUuCgoqICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaGA6IFRoZSBwcm90b3R5cGUgZm9yIHRoZSBuZXcgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgIGlzIGRlZmluZWQgaGVyZS4KClNvLCB0aGlzIHBhdGNoIGlzIGNsZWFybHkgYWJvdXQgcmVmaW5pbmcgaGFyZHdhcmUgdGltZXN0YW1waW5nIHN1cHBvcnQgZm9yIHRoZSBYR01BQyBjb3JlIHdpdGhpbiB0aGUgU1RNTUFDIGRyaXZlci4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBldmVuICp3b3JrKiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBTVE1NQUMsIGVzcGVjaWFsbHkgRFdYR01BQywgcmVsaWVzIG9uIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzLiBJcyBpdCBhIHN0cmljdCBoYXJkd2FyZSBkZXZpY2U/CgpJIG5lZWQgdG8gcXVpY2tseSBjaGVjayBpZiBRRU1VIGVtdWxhdGVzIFNUTU1BQyBvciBhbnkgb2YgdGhlIERXTUFDIG9yIERXWEdNQUMgZGV2aWNlcyBhdCBhbGwuICBPciBpcyBTVE1NQUMgYSBQQ0kgZHJpdmVyIG9yIHBsYXRmb3JtIGRyaXZlcj8gTGV0IG1lIGNoZWNrIGBTVE1NQUNfUENJYCBhbmQgc2VlIHdoYXQgUENJIElEcyBhcmUgaW4gYHN0bW1hY19wY2kuY2Agb3Igb3RoZXIgc3RtbWFjIFBDSSBkcml2ZXJzIHRvIHNlZSBpZiBhbnkgb2YgdGhlIGhhcmR3YXJlIGlzIGVtdWxhdGVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtwY2lfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM9MTQxNT1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgaW50ZWxfZXRoX3BjaV9pZF90YWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MTYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjE0MTc6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGludGVsX2V0aF9wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtaW50ZWwuYy0xNDE4LVx0Lm5hbWUgPSBcJiMzNDtpbnRlbC1ldGgtcGNpXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQyNi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmM6MTQyNzptb2R1bGVfcGNpX2RyaXZlcihpbnRlbF9ldGhfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jLTE0MjgtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYz02MDI9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGxvb25nc29uX2R3bWFjX2lkX3RhYmxlKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNjAzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo2MDQ6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGxvb25nc29uX2R3bWFjX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmMtNjA1LVx0Lm5hbWUgPSBEUklWRVJfTkFNRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxMy1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM6NjE0Om1vZHVsZV9wY2lfZHJpdmVyKGxvb25nc29uX2R3bWFjX2RyaXZlcik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNS1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYz0zNzE9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGR3bWFjX21vdG9yY29tbV9wY2lfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzcyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzczOnN0YXRpYyBzdHJ1Y3QgcGNpX2RyaXZlciBkd21hY19tb3RvcmNvbW1fcGNpX2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM3NC1cdC5uYW1lID0gRFJJVkVSX05BTUUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzgyLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzgzOm1vZHVsZV9wY2lfZHJpdmVyKGR3bWFjX21vdG9yY29tbV9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jLTM4NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMTI6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIHN0bW1hY19wY2lfZHJpdmVyID0ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cdC5uYW1lID0gU1RNTUFDX1JFU09VUkNFX05BTUUsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYzoyMjI6bW9kdWxlX3BjaV9kcml2ZXIoc3RtbWFjX3BjaV9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMy1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzMyNjIKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiA5NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipJbnZlc3RpZ2F0aW5nIFhHTUFDIERyaXZlciBJbXBsZW1lbnRhdGlvbnMqKgoKT2theSwgc28gSSBuZWVkIHRvIGdldCBhIGhhbmRsZSBvbiBob3cgdGhlc2UgWEdNQUMgY29yZXMgYXJlIGJlaW5nIHVzZWQgaW4gZGlmZmVyZW50IERXTUFDIGRyaXZlcnMuIEZpcnN0LCBJJiMzOTttIHRoaW5raW5nLCAmIzM0O0xldCYjMzk7cyBzdGFydCBieSBsb29raW5nIGF0IGEgZmV3IGxpa2VseSBzdXNwZWN0czogYHN0bW1hY19wY2kuY2AsIGBkd21hYy1pbnRlbC5jYCwgYGR3bWFjLWxvb25nc29uLmNgLCBgZHdtYWMtc29jZnBnYS5jYCwgYW5kIHNvIG9uLiYjMzQ7IFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGJhc2VsaW5lLgoKQnV0IHdhaXQgYSBtaW51dGUsIGEgbW9yZSBlZmZpY2llbnQgYXBwcm9hY2ggd291bGQgYmUgdG8gbmFycm93IHRoZSBzY29wZSBmcm9tIHRoZSBzdGFydC4gJiMzNDtMZXQmIzM5O3Mgc2VlIHdoaWNoIGRyaXZlcnMgYXJlICphY3R1YWxseSogdXRpbGl6aW5nIGBEV01BQ19DT1JFX1hHTUFDYCBvciBzcGVjaWZpY2FsbHkgcHJvYmluZyBmb3IgYGR3eGdtYWMyYC4mIzM0OyBJdCYjMzk7cyBtdWNoIG1vcmUgc3VyZ2ljYWwuCgpSaWdodCwgdGltZSB0byBnZXQgdG8gd29yay4gTm93LCB0aGUgZmFzdGVzdCBhbmQgbW9zdCBjb21wcmVoZW5zaXZlIGFwcHJvYWNoIHRvIHVuZGVyc3RhbmQgdGhlIGRyaXZlcnMgd291bGQgYmUgYSBxdWljayBjb2RlYmFzZSBzZWFyY2guIFNvLCBJIG5lZWQgdG8gJiMzNDtzZWFyY2ggZm9yIGBEV01BQ19DT1JFX1hHTUFDYCBpbiB0aGUgZW50aXJlIGNvZGViYXNlLiYjMzQ7IFRoaXMgc2hvdWxkIHJldmVhbCBhbGwgaW5zdGFuY2VzIG9mIHRoZSBtYWNybyYjMzk7cyB1c2UsIHByb3ZpZGluZyB0aGUgZm91bmRhdGlvbiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGhhcmR3YXJlIGFuZCB0aGUgc29mdHdhcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O0RXTUFDX0NPUkVfWEdNQUMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTAte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NTE6XHRyZXR1cm4gY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQgfHwgY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC01Mi19XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTU4MD1zdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01ODMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NTg0Olx0cGxhdF9kYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01ODUtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYz0yMTQ9c3RhdGljIGludCB0ZWdyYV9tZ2JlX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jOjMyNjpcdHBsYXQtXHUwMDNlY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzI3LVx0cGxhdC1cdTAwM2VmbGFncyB8PSBTVE1NQUNfRkxBR19UU09fRU47XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTIxPXN0YXRpYyB2b2lkIHN0bW1hY19nZXRfdmVyc2lvbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTQ5LVx0dmVyLVx1MDAzZXNucHN2ZXIgPSBGSUVMRF9HRVQoRFdNQUNfU05QU1ZFUiwgdmVyc2lvbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6NTA6XHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNTEtXHRcdHZlci1cdTAwM2VkZXZfaWQgPSBGSUVMRF9HRVQoRFdNQUNfVVNFUlZFUiwgdmVyc2lvbik7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTExMT1zdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19od2lmX2VudHJ5IHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjQ3LVx0fSwge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjI0ODpcdFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjQ5LVx0XHQubWluX2lkID0gRFdYR01BQ19DT1JFXzJfMTAsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI2OS1cdH0sIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNzA6XHRcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI3MS1cdFx0Lm1pbl9pZCA9IERXWExHTUFDX0NPUkVfMl8wMCxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9Mjk0PXN0bW1hY19od2lmX2ZpbmQoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlLCB1OCBzbnBzdmVyLCB1OCBkZXZfaWQpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTMwNi1cdFx0XHRjb250aW51ZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzozMDc6XHRcdGlmIChjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQyBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zMDgtXHRcdCAgICBkZXZfaWQgIT0gZW50cnktXHUwMDNlZGV2X2lkKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYz0yOD1zdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy01NS1cdGN0cmwgPSByZWFkbChlc3RfYWRkciAmIzQzOyBFU1RfQ09OVFJPTCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmM6NTY6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtNTctXHRcdGN0cmwgXHUwMDI2PSB+RVNUX1hHTUFDX1BUT1Y7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jPTgzPXN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtMTUwLVx0aWYgKHN0YXR1cyBcdTAwMjYgRVNUX0JUUkUpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYzoxNTE6XHRcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy0xNTItXHRcdFx0YnRybCA9IEZJRUxEX0dFVChFU1RfWEdNQUNfQlRSTCwgc3RhdHVzKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTMwMT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9nZXRkcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMDgtXHRcdHN0cnNjcHkoaW5mby1cdTAwM2Vkcml2ZXIsIEdNQUNfRVRIVE9PTF9OQU1FLCBzaXplb2YoaW5mby1cdTAwM2Vkcml2ZXIpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzA5Olx0ZWxzZSBpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zMTAtXHRcdHN0cnNjcHkoaW5mby1cdTAwM2Vkcml2ZXIsIFhHTUFDX0VUSFRPT0xfTkFNRSwgc2l6ZW9mKGluZm8tXHUwMDNlZHJpdmVyKSk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0zNTA9c3RhdGljIGludCBzdG1tYWNfZXRodG9vbF9nZXRfcmVnc19sZW4oc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6MzU0Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU1LVx0XHRyZXR1cm4gWEdNQUNfUkVHU0laRSAqIDQ7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYz0zNjE9c3RhdGljIHZvaWQgc3RtbWFjX2V0aHRvb2xfZ3JlZ3Moc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3NS1cdFx0ICAgICAgIE5VTV9EV01BQzRfRE1BX1JFR1MgKiA0KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6Mzc2Olx0fSBlbHNlIGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzc3LVx0XHRtZW1jcHkoXHUwMDI2cmVnX3NwYWNlW0VUSFRPT0xfRE1BX09GRlNFVF0sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NDI9c3RhdGljIGludCBzdG1tYWNfaHd0c3RhbXBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTgtXHRcdFx0aWYgKHByaXYtXHUwMDNlc3lub3BzeXNfaWQgXHUwMDNjIERXTUFDX0NPUkVfM183MCBcdTAwMjZcdTAwMjZcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzU5Olx0XHRcdCAgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc2MC1cdFx0XHRcdHRzX2V2ZW50X2VuID0gUFRQX1RDUl9UU0VWTlRFTkE7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NTQ1PXN0YXRpYyBpbnQgc3RtbWFjX2RtYV9jYXBfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwgdm9pZCAqdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY1ODAtXHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAuaGFsZl9kdXBsZXgpID8gXCYjMzQ7WVwmIzM0OyA6IFwmIzM0O05cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NTgxOlx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTgyLVx0XHRzZXFfcHJpbnRmKHNlcSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MDQtXHRcdCAgIChwcml2LVx1MDAzZWRtYV9jYXAuYXRpbWVfc3RhbXApID8gXCYjMzQ7WVwmIzM0OyA6IFwmIzM0O05cJiMzNDspO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NjA1Olx0aWYgKHByaXYtXHUwMDNlcGxhdC1cdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjYwNi1cdFx0c2VxX3ByaW50ZihzZXEsIFwmIzM0O1xcdFRpbWVzdGFtcCBTeXN0ZW0gVGltZSBTb3VyY2U6ICVzXFxuXCYjMzQ7LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjYxMy1cdGlmIChwcml2LVx1MDAzZXN5bm9wc3lzX2lkIFx1MDAzZT0gRFdNQUNfQ09SRV80XzAwIHx8XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY2MTQ6XHQgICAgcHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MTUtXHRcdHNlcV9wcmludGYoc2VxLCBcJiMzNDtcXHRJUCBDaGVja3N1bSBPZmZsb2FkIGluIFJYOiAlc1xcblwmIzM0Oyxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczNDc9c3RhdGljIHZvaWQgc3RtbWFjX3ByaW50X2FjdHBoeWlmKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjczNjM6XHRjYXNlIERXTUFDX0NPUkVfWEdNQUM6XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTczNjQtXHRcdHBoeWlmX3RhYmxlID0gc3RtbWFjX2R3eGdtYWNfcGh5aWY7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03Mzg5PXN0YXRpYyBpbnQgc3RtbWFjX2h3X2luaXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzUxMS1cdGlmICgocHJpdi1cdTAwM2VzeW5vcHN5c19pZCBcdTAwM2U9IERXTUFDX0NPUkVfM181MCB8fFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo3NTEyOlx0ICAgICBwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIFx1MDAyNlx1MDAyNlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NTEzLVx0ICAgICFwcml2LVx1MDAzZXBsYXQtXHUwMDNlcml3dF9vZmYpIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTc3Nzg9c3RhdGljIGludCBfX3N0bW1hY19kdnJfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2aWNlLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzk4NS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6Nzk4NjpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc5ODctXHRcdG5kZXYtXHUwMDNlbWF4X210dSA9IFhHTUFDX0pVTUJPX0xFTjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTUzNj1zdGF0aWMgdTMyIHN0bW1hY19jbGtfY3NyX3NldChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy01NTQtXHRcdHJhdGVzID0gc3RtbWFjX3N1bjhpX2Nzcl90b19tZGM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjU1NTpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTU1Ni1cdFx0cmF0ZXMgPSBzdG1tYWNfeGdtYWNfY3NyX3RvX21kYztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jPTU5NT1pbnQgc3RtbWFjX21kaW9fcmVnaXN0ZXIoc3RydWN0IG5ldF9kZXZpY2UgKm5kZXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02MjEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjYyMjpcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjIzLVx0XHRuZXdfYnVzLVx1MDAzZXJlYWQgPSBcdTAwMjZzdG1tYWNfeGdtYWMyX21kaW9fcmVhZF9jMjI7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjUtXHQvKiBMb29rcyBsaWtlIHdlIG5lZWQgYSBkdW1teSByZWFkIGZvciBYR01BQyBvbmx5IGFuZCBDNDUgUEhZcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo2NjY6XHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjctXHRcdHN0bW1hY194Z21hYzJfbWRpb19yZWFkX2M0NShuZXdfYnVzLCAwLCAwLCAwKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYz00MTQ9c3RtbWFjX3Byb2JlX2NvbmZpZ19kdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LCB1OCAqbWFjKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU0NS1cdGlmIChvZl9kZXZpY2VfaXNfY29tcGF0aWJsZShucCwgXCYjMzQ7c25wcyxkd3hnbWFjXCYjMzQ7KSkge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM6NTQ2Olx0XHRwbGF0LVx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGxhdGZvcm0uYy01NDctXHRcdHBsYXQtXHUwMDNlcG10ID0gdHJ1ZTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzc2MDkKCQkJCQkJCW91dHB1dDogMzcKCQkJCQkJCXRob3VnaHRzOiAxMzY3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBSZWFjaGFiaWxpdHkgb2YgRGVzaWduV2FyZSBYR01BQyBDb2RlIFBhdGhzIGluIFZpcnR1YWxpemVkIEVudmlyb25tZW50cyoqCgpPa2F5LCBzbyBJJiMzOTttIGRpZ2dpbmcgaW50byB0aGlzIGBEV01BQ19DT1JFX1hHTUFDYCBzdHVmZi4gRmlyc3QsIEkgc2VlIGl0IGRlZmluZWQgaW4gYSBmZXcgcGxhY2VzOiBgZHdtYWMtc29jZnBnYS5jYCBmb3IgQWx0ZXJhIEFnaWxleDUsIGBkd21hYy10ZWdyYS5jYCBmb3IgTnZpZGlhIFRlZ3JhLCBhbmQgYHN0bW1hY19wbGF0Zm9ybS5jYCBmb3IgZGV2aWNlcyBjb21wYXRpYmxlIHdpdGggJiMzNDtzbnBzLGR3eGdtYWMmIzM0Oy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgYW55IG9mIHRoaXMgY2FuIGFjdHVhbGx5IGJlIHJlYWNoZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpLCBvciBpZiB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHNvbGVseSBwaHlzaWNhbCBTb0NzLgoKTm93LCBsZXQmIzM5O3MgcmVmZXIgdG8gdGhlIGluc3RydWN0aW9ucyBwcm92aWRlZC4gVGhlIGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY29kZSBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgaW5zdHJ1Y3Rpb25zIGV4cGxpY2l0bHkgc2F5IHRoYXQgd2Ugc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgY2hhbmdlcyBhcmUgbGltaXRlZCB0byB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLgoKSSYjMzk7bSB0aGlua2luZywgZG9lcyBRRU1VIGV2ZW4gZW11bGF0ZSAmIzM0O3NucHMsZHd4Z21hYyYjMzQ7IG9yIGFueXRoaW5nIHJlbGF0ZWQgdG8gdGhvc2Ugc3BlY2lmaWMgU29Dcz8gTGV0JiMzOTtzIHNlZSB3aGF0IFFFTVUgKmRvZXMqIHN1cHBvcnQgZm9yIHN0bW1hYy9kZXNpZ253YXJlIG1hYy4gSSBzZWUgYSBsb3Qgb2Ygb3B0aW9uczogYGFsbHdpbm5lci1hMTAtZW1hY2AsIGBjYWRlbmNlX2dlbWAsIGV0Yy4sIGJ1dCBub3RoaW5nIHRoYXQgc2NyZWFtcyAmIzM0O0Rlc2lnbldhcmUgMTBHYiBFdGhlcm5ldCYjMzQ7IG9yIEFsdGVyYSBTb0MgRlBHQS4gSSYjMzk7bSBub3Qgc2VlaW5nIGFueSBgZHd4Z21hY2AgZXF1aXZhbGVudCBpbiBRRU1VLiBOb3BlLCBRRU1VIGRvZXMgTk9UIGVtdWxhdGUgU3lub3BzeXMgRGVzaWduV2FyZSBFbnRlcnByaXNlIDEwRyBFdGhlcm5ldCBNQUMgb3IgQWx0ZXJhIFNvQyBGUEdBIEFnaWxleDUuIEludGVsIHN0bW1hYyBpcyBhIGRpZmZlcmVudCBzdG9yeSwgdXNpbmcgR01BQzQvR01BQzUvRFdNQUNfQ09SRV9HTUFDNC9HTUFDLiBMb29uZ3NvbiB1c2VzIERXTUFDX0NPUkVfR01BQy4KCk1vcmVvdmVyLCBRRU1VIGRvZXNuJiMzOTt0IGVtdWxhdGUgYW55IEludGVsIHN0bW1hYyBQQ0kgLyBMb29uZ3NvbiBQQ0kgLyBNb3RvcmNvbW0gUENJLiBJdCBlbXVsYXRlcyB0aGUgdXN1YWwgc3VzcGVjdHMgbGlrZSBlMTAwMCwgZTEwMDBlLCBpZ2IsIGFuZCBzbyBvbi4KClRoZSBxdWVzdGlvbiB0aGVuIGJlY29tZXMsIGNhbiBTeXprYWxsZXIgYWN0dWFsbHkgKnJlYWNoKiBwbGF0Zm9ybSBkcml2ZXJzLCBvciBhcmUgdGhlc2Ugc3BlY2lmaWMgQVJNL1NvQyBkcml2ZXJzIChBbHRlcmEgc29jZnBnYSwgTnZpZGlhIFRlZ3JhLCBTeW5vcHN5cyBkd3hnbWFjKSBmdW5kYW1lbnRhbGx5IHRpZWQgdG8gcGh5c2ljYWwgaGFyZHdhcmU/IEkmIzM5O3ZlIGdvdCB0byBjb25zaWRlciB0aGlzLiBMZXQmIzM5O3MgbG9vayBhdCBzaW1pbGFyIGNhc2VzIGFuZCBndWlkZWxpbmVzLgoKSSBuZWVkIHRvIHF1aWNrbHkgY2hlY2sgaWYgc3l6a2FsbGVyIG9yIGFueSBmdXp6aW5nIGJlbmNobWFya3MgYWNjb3VudCBmb3IgZXRoZXJuZXQgZHJpdmVycyBvbiBlbWJlZGRlZCBTb0NzLgoKT2ssIHRoZSBpbnN0cnVjdGlvbnMgYXJlIGNsZWFyOiBpZiB0aGUgY29kZSBwYXRocyBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYC4gQWxzbywgaWYgdGhlIGNvZGUgaXMgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoIG9yIFNtYXJ0TklDIGRyaXZlcnMsIGxpa2UgbWx4c3csIHBkc19jb3JlLCBxZWQsIGlvbmljLCBhbWRncHUsIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBoYXJkd2FyZS4gRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyBzdWNoIGFzIGAucmVtb3ZlYCwgYC5zaHV0ZG93bmAsIG9yIGBwY2lfdW5yZWdpc3Rlcl9kcml2ZXJgIGFyZSBhbHNvIG5vdCBmdXp6YWJsZS4KClNvLCBjYW4gdGhpcyBjb2RlIChzcGVjaWZpY2FsbHkgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgLCBvciB0aGUgY29kZSBpbiBgZHdtYWMtc29jZnBnYS5jYCwgb3IgYGR3eGdtYWMyX3B0cGApIGJlIHJlYWNoZWQgaW4gUUVNVSBvciBHQ0U/CgpMZXQmIzM5O3MgYnJlYWsgaXQgZG93bjoKMS4gYGR3bWFjLXNvY2ZwZ2EuY2A6IFRoaXMgaXMgQWx0ZXJhIFNPQ0ZQR0EuIFNwZWNpZmljYWxseSwgaXQgc2VlbXMgYHNtdGdfY3Jvc3N0c3RhbXBgIGlzIGNhbGxlZCBmb3IgUFRQIGNyb3NzLXRpbWVzdGFtcGluZyBvbiBBbHRlcmEgQWdpbGV4L1N0cmF0aXggU09DRlBHQS4gVGhlIGNvZGUgaW50ZXJhY3RzIGRpcmVjdGx5IHdpdGggRlBHQSByZWdpc3RlcnMgYW5kIE1ESU8gcmVnaXN0ZXJzIG9mIHRoZSBTTVRHIHRpbWUgY2FyZCAvIE1ESU8gaGFyZHdhcmUgKHZpYSBgZ2V0X3NtdGd0aW1lYCkuIFRoaXMgZmVlbHMgdmVyeSBoYXJkd2FyZS1zcGVjaWZpYy4KCjIuIGBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0YDogVGhpcyBoYW5kbGVzIHRpbWVzdGFtcCBpbnRlcnJ1cHRzIGZvciB0aGUgU3lub3BzeXMgRGVzaWduV2FyZSAxMEcgRXRoZXJuZXQgTUFDIChgZHd4Z21hYzJgKS4gVGhlIGNvZGUgcmVhZHMgZnJvbSByZWdpc3RlcnMgbGlrZSBgWEdNQUNfVElNRVNUQU1QX1NUQVRVU2AgYW5kIGBQVFBfQUNSYCBhbmQgZGlzcGF0Y2hlcyBQVFAgZXZlbnRzLiBUaGlzIGlzIGhvb2tlZCBieSBgc3RtbWFjX2h3aWZfZW50cnlgIGZvciBgRFdNQUNfQ09SRV9YR01BQ2AuIEl0JiMzOTtzIHJlZ2lzdGVyZWQgaW4gYGR3eGdtYWMyX3B0cC50aW1lc3RhbXBfaW50ZXJydXB0YC4gU28gd2hlbiBleGFjdGx5IGlzIHRoaXMgYHRpbWVzdGFtcF9pbnRlcnJ1cHRgIGNhbGxlZD8gTGV0JiMzOTtzIGNoZWNrIGZvciBob3cgdGhpcyBpbnRlcnJ1cHQgaGFuZGxlciBpcyBjYWxsZWQuIFRpbWUgdG8gZ3JlcCBmb3IgYHRpbWVzdGFtcF9pbnRlcnJ1cHRgIHdpdGhpbiBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dGltZXN0YW1wX2ludGVycnVwdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jPTUxMz12b2lkIGR3bWFjMTAwMF9nZXRfcHRwdGltZSh2b2lkIF9faW9tZW0gKnB0cGFkZHIsIHU2NCAqcHRwX3RpbWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYy01MjItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jOjUyMzp2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMtNTI0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTU1Mi1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmM6NTUzOnN0YXRpYyB2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0X2NmZyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsIGJvb2wgZW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTU1NC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYz01Njc9aW50IGR3bWFjMTAwMF9wdHBfZW5hYmxlKHN0cnVjdCBwdHBfY2xvY2tfaW5mbyAqcHRwLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMtNjAwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYzo2MDE6XHRcdGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0X2NmZyhwcml2LCBvbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTYwMi1cdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jPTExNDM9c3RhdGljIGludCBkd3hnbWFjMl9nZXRfbWFjX3R4X3RpbWVzdGFtcChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTY0ICp0cylcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE1Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMTU3OnZvaWQgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE1OC17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oPTQ5Nz1zdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIHtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmgtNTA2LVx0dm9pZCAoKmdldF9wdHB0aW1lKSh2b2lkIF9faW9tZW0gKmlvYWRkciwgdTY0ICpwdHBfdGltZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg6NTA3Olx0dm9pZCAoKnRpbWVzdGFtcF9pbnRlcnJ1cHQpKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmgtNTA4LVx0dm9pZCAoKmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSkoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmgtNTI0LVx0c3RtbWFjX2RvX3ZvaWRfY2FsbGJhY2soX19wcml2LCBwdHAsIGdldF9wdHB0aW1lLCBfX2FyZ3MpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg6NTI1OiNkZWZpbmUgc3RtbWFjX3RpbWVzdGFtcF9pbnRlcnJ1cHQoX19wcml2LCBfX2FyZ3MuLi4pIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg6NTI2Olx0c3RtbWFjX2RvX3ZvaWRfY2FsbGJhY2soX19wcml2LCBwdHAsIHRpbWVzdGFtcF9pbnRlcnJ1cHQsIF9fYXJncylcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaC01MjctI2RlZmluZSBzdG1tYWNfaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5KF9fcHJpdiwgX19hcmdzLi4uKSBcXFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jPTIwND1zdGF0aWMgdm9pZCBnZXRfcHRwdGltZSh2b2lkIF9faW9tZW0gKnB0cGFkZHIsIHU2NCAqcHRwX3RpbWUpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjEzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM6MjE0OnN0YXRpYyB2b2lkIHRpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjE1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yNTg9Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBzdG1tYWNfcHRwID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI2NS1cdC5nZXRfcHRwdGltZSA9IGdldF9wdHB0aW1lLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM6MjY2Olx0LnRpbWVzdGFtcF9pbnRlcnJ1cHQgPSB0aW1lc3RhbXBfaW50ZXJydXB0LFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjY3LVx0Lmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSA9IGh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yNzA9Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd21hYzEwMDBfcHRwID0ge1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI3Ny1cdC5nZXRfcHRwdGltZSA9IGR3bWFjMTAwMF9nZXRfcHRwdGltZSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jOjI3ODpcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yNzktfTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yODE9Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd3hnbWFjMl9wdHAgPSB7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjg4LVx0LmdldF9wdHB0aW1lID0gZ2V0X3B0cHRpbWUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYzoyODk6XHQudGltZXN0YW1wX2ludGVycnVwdCA9IGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yOTAtXHQuaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5ID0gaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5LFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjIwOT1zdGF0aWMgdm9pZCBzdG1tYWNfY29tbW9uX2ludGVycnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02MjQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MjQ1Olx0XHRzdG1tYWNfdGltZXN0YW1wX2ludGVycnVwdChwcml2LCBwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjI0Ni1cdH1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmg9MTA0PXZvaWQgZHdtYWMxMDAwX2dldF9wdHB0aW1lKHZvaWQgX19pb21lbSAqcHRwYWRkciwgdTY0ICpwdHBfdGltZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmg6MTA1OnZvaWQgZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaDoxMDY6dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmgtMTA3LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MTk4OQoJCQkJCQkJb3V0cHV0OiA1MAoJCQkJCQkJdGhvdWdodHM6IDY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHF1ZXN0aW9uIGlzOiB3aGF0IGFjdHVhbGx5IGtpY2tzIG9mZiB0aGUgYHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0YCBmdW5jdGlvbj8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbnRyb2wgZmxvdyBoZXJlLiBTbywgSSBzZWUgdGhhdCB0aGlzIGludGVycnVwdCBpcyBsaWtlbHkgaGFuZGxlZCBieSBgc3RtbWFjX2NvbW1vbl9pbnRlcnJ1cHRgLCBhbmQgdGhhdCYjMzk7cyBmb3VuZCBpbiBgc3RtbWFjX21haW4uY2AuCgoqKkRpdmluZyBpbnRvIHRoZSBJbnRlcnJ1cHQgSGFuZGxpbmcqKgoKSSYjMzk7bSB6ZXJvaW5nIGluIG9uIGBzdG1tYWNfbWFpbi5jYCBub3csIHNwZWNpZmljYWxseSBhcm91bmQgbGluZXMgNjIwOSB0byA2MjUwLiBUaGF0JiMzOTtzIHRoZSBsaWtlbHkgcmVnaW9uIHdoZXJlIHRoZSBpbnRlcnJ1cHQgbG9naWMgaXMgaGFuZGxlZC4gSSYjMzk7bGwgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB0aGF0IHNlY3Rpb24gb2YgdGhlIGNvZGUgdG8gdHJhY2UgdGhlIGNvbmRpdGlvbnMgdGhhdCBsZWFkIHRvIHRoZSBgc3RtbWFjX3RpbWVzdGFtcF9pbnRlcnJ1cHRgIGJlaW5nIGNhbGxlZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGludGVycnVwdCBlbmFibGUvZGlzYWJsZSBtZWNoYW5pc21zIGFuZCBpbnRlcnJ1cHQgc3RhdHVzIGNoZWNrcyB0aGF0IHRha2UgcGxhY2UgdG8gZ2V0IHRoZSBmdWxsIHBpY3R1cmUuIE15IGdvYWwgaXMgdG8gbWFwIHRoZSBwYXRoIG9mIGV4ZWN1dGlvbiB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaXMgdHJpZ2dlcmVkIGFuZCB3aGF0IHRoZSBjcml0aWNhbCBwaWVjZXMgb2YgY29udGV4dCBhcmUgZm9yIGl0cyBvcGVyYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDYyMDUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNDUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7NjIwNTpcdFxuNjIwNjpcdFx0cmV0dXJuIDA7XG42MjA3Olx0fVxuNjIwODpcdFxuNjIwOTpcdHN0YXRpYyB2b2lkIHN0bW1hY19jb21tb25faW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcbjYyMTA6XHR7XG42MjExOlx0XHR1OCByeF9jbnQgPSBwcml2LVx1MDAzZXBsYXQtXHUwMDNlcnhfcXVldWVzX3RvX3VzZTtcbjYyMTI6XHRcdHU4IHR4X2NudCA9IHByaXYtXHUwMDNlcGxhdC1cdTAwM2V0eF9xdWV1ZXNfdG9fdXNlO1xuNjIxMzpcdFx0dTggcXVldWVzX2NvdW50O1xuNjIxNDpcdFx0Ym9vbCB4bWFjO1xuNjIxNTpcdFx0dTggcXVldWU7XG42MjE2Olx0XG42MjE3Olx0XHR4bWFjID0gZHdtYWNfaXNfeG1hYyhwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlKTtcbjYyMTg6XHRcdHF1ZXVlc19jb3VudCA9IChyeF9jbnQgXHUwMDNlIHR4X2NudCkgPyByeF9jbnQgOiB0eF9jbnQ7XG42MjE5Olx0XG42MjIwOlx0XHRpZiAocHJpdi1cdTAwM2VpcnFfd2FrZSlcbjYyMjE6XHRcdFx0cG1fd2FrZXVwX2V2ZW50KHByaXYtXHUwMDNlZGV2aWNlLCAwKTtcbjYyMjI6XHRcbjYyMjM6XHRcdGlmIChwcml2LVx1MDAzZWRtYV9jYXAuZXN0c2VsKVxuNjIyNDpcdFx0XHRzdG1tYWNfZXN0X2lycV9zdGF0dXMocHJpdiwgcHJpdiwgcHJpdi1cdTAwM2VkZXYsXG42MjI1Olx0XHRcdFx0XHQgICAgICBcdTAwMjZwcml2LVx1MDAzZXhzdGF0cywgdHhfY250KTtcbjYyMjY6XHRcbjYyMjc6XHRcdGlmIChzdG1tYWNfZnBlX3N1cHBvcnRlZChwcml2KSlcbjYyMjg6XHRcdFx0c3RtbWFjX2ZwZV9pcnFfc3RhdHVzKHByaXYpO1xuNjIyOTpcdFxuNjIzMDpcdFx0LyogVG8gaGFuZGxlIEdNQUMgb3duIGludGVycnVwdHMgKi9cbjYyMzE6XHRcdGlmIChwcml2LVx1MDAzZXBsYXQtXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQyB8fCB4bWFjKSB7XG42MjMyOlx0XHRcdGludCBzdGF0dXMgPSBzdG1tYWNfaG9zdF9pcnFfc3RhdHVzKHByaXYsIFx1MDAyNnByaXYtXHUwMDNleHN0YXRzKTtcbjYyMzM6XHRcbjYyMzQ6XHRcdFx0aWYgKHVubGlrZWx5KHN0YXR1cykpIHtcbjYyMzU6XHRcdFx0XHQvKiBGb3IgTFBJIHdlIG5lZWQgdG8gc2F2ZSB0aGUgdHggc3RhdHVzICovXG42MjM2Olx0XHRcdFx0aWYgKHN0YXR1cyBcdTAwMjYgQ09SRV9JUlFfVFhfUEFUSF9JTl9MUElfTU9ERSlcbjYyMzc6XHRcdFx0XHRcdHByaXYtXHUwMDNldHhfcGF0aF9pbl9scGlfbW9kZSA9IHRydWU7XG42MjM4Olx0XHRcdFx0aWYgKHN0YXR1cyBcdTAwMjYgQ09SRV9JUlFfVFhfUEFUSF9FWElUX0xQSV9NT0RFKVxuNjIzOTpcdFx0XHRcdFx0cHJpdi1cdTAwM2V0eF9wYXRoX2luX2xwaV9tb2RlID0gZmFsc2U7XG42MjQwOlx0XHRcdH1cbjYyNDE6XHRcbjYyNDI6XHRcdFx0Zm9yIChxdWV1ZSA9IDA7IHF1ZXVlIFx1MDAzYyBxdWV1ZXNfY291bnQ7IHF1ZXVlJiM0MzsmIzQzOylcbjYyNDM6XHRcdFx0XHRzdG1tYWNfaG9zdF9tdGxfaXJxX3N0YXR1cyhwcml2LCBwcml2LVx1MDAzZWh3LCBxdWV1ZSk7XG42MjQ0Olx0XG42MjQ1Olx0XHRcdHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0KHByaXYsIHByaXYpO1xuNjI0NjpcdFx0fVxuNjI0NzpcdH1cbjYyNDg6XHRcbjYyNDk6XHQvKipcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMDMgMDk6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMwNTAKCQkJCQkJCW91dHB1dDogMTEyCgkJCQkJCQl0aG91Z2h0czogMTM3NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgU3VpdGFiaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGZpcnN0IHRoaW5nIEkmIzM5O20gZG9pbmcgaXMgdHJ5aW5nIHRvIHVuZGVyc3RhbmQgdGhlIHRhcmdldCBoYXJkd2FyZSBvZiB0aGUgY29kZSBtb2RpZmljYXRpb25zIGluIHRoaXMgcGF0Y2guIEkgc2VlIHJlZmVyZW5jZXMgdG8gYERXTUFDX0NPUkVfWEdNQUNgIGFuZCBgZHdtYWMtc29jZnBnYWAuICBgZHdtYWMtc29jZnBnYWAgaW1tZWRpYXRlbHkgZmxhZ3MgYXMgQWx0ZXJhL0ludGVsIFNPQ0ZQR0EsIHNwZWNpZmljYWxseSBBZ2lsZXggNSwgU3RyYXRpeCAxMCwgb3Igc2ltaWxhci4gIEkgYWxzbyBzZWUgbWVudGlvbiBvZiBgZHdtYWMtdGVncmFgIChOVklESUEgVGVncmEpIGFuZCBgc25wcyxkd3hnbWFjYCAoU3lub3BzeXMgRGVzaWduV2FyZSBFbnRlcnByaXNlIDEwRyBFdGhlcm5ldCBNQUMpLiAgTm9uZSBvZiB0aGVzZSBkZXZpY2UgdHlwZXMgYXJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lLCB3aGljaCBpcyBhIGtleSBjb25zaWRlcmF0aW9uLgoKTm93LCBJJiMzOTttIGNoZWNraW5nIHRvIHNlZSAqaWYqIFFFTVUgZXZlbiBwcm92aWRlcyBlbXVsYXRpb24gZm9yIGFueSBTVE1NQUMgb3IgRFdNQUMgY29udHJvbGxlcnMuIEkgZmluZCB0aGF0IFFFTVUgaGFzIGBhbGx3aW5uZXItYTEwLWVtYWNgLCB3aGljaCBpcyBub3QgYSBEV01BQyBidXQgaXMgYSBzdW40aSBlbWFjLiBFdmVuIGlmIFFFTVUgKmRpZCogZW11bGF0ZSBhIGJhc2ljIERXTUFDIChsaWtlIHN1bjhpIG9yIHN0bTMyKSwgbm9uZSBvZiB0aG9zZSB3b3VsZCBiZSBYR01BQyAoMTBHYnBzIE1BQykgb3IgdGhlIEFsdGVyYS9JbnRlbCBTT0NGUEdBIHZlcnNpb24gKGBkd21hYy1zb2NmcGdhYCkuCgpUaGVuIHRoZSB0aG91Z2h0IHN0cmlrZXMgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIFBDSSBlbXVsYXRpb25zLiBUaGUgc2hvcnQgYW5zd2VyIGlzIG5vOyBRRU1VIGxhY2tzIHNwZWNpZmljIG1vZGVscyBmb3IgdGhlIEludGVsIEVsa2hhcnQgTGFrZS9UaWdlciBMYWtlIFBTRSBkd21hYywgTG9vbmdzb24gb3IgTW90b3Jjb21tIFBDSSBldGhlcm5ldCBpbXBsZW1lbnRhdGlvbnMuCgpMb29raW5nIGNsb3NlbHkgYXQgdGhlIHNwZWNpZmljIGZpbGVzIGJlaW5nIG1vZGlmaWVkLCBJIHNlZSBgZHdtYWMtc29jZnBnYS5jYCwgd2hpY2ggaXMgdGhlIEFsdGVyYSBTT0NGUEdBLXNwZWNpZmljIGRyaXZlciB0aGF0IGRlYWxzIHdpdGggdGhlIFNNVEcgdGltZSBzdGFtcCBjYXJkIGludGVyZmFjZS4gVGhlIG90aGVyIGZpbGVzLCBgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdGAgaW4gYGR3eGdtYWMyX2NvcmUuY2AgYW5kIGEgZmV3IG90aGVycywgYXJlIGRlYWxpbmcgd2l0aCB0aGUgRFdYR01BQyAoMTBHYnBzIERlc2lnbldhcmUgTUFDKSB0aW1lc3RhbXAgZnVuY3Rpb25hbGl0eS4KCk5vdywgSSYjMzk7bSByZS1yZWFkaW5nIHRoZSBydWxlcyByZWdhcmRpbmcgd2hhdCBtYWtlcyBhIHBhdGNoICpub3QqIHdvcnRoIGZ1enppbmcuICBUaGlzIGluY2x1ZGVzIHRoaW5ncyB0aGF0IGFyZSB1bnJlYWNoYWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4gVGhpcyBpbmNsdWRlcyBjb2RlIHRoYXQgcmVsaWVzIG9uIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIFFFTVUuCgpHaXZlbiB0aGUgcnVsZSBzZXQsIHRoZSBjZW50cmFsIHF1ZXN0aW9uIGJlY29tZXM6IGFyZSBTVE1NQUMgLyBEV1hHTUFDIC8gRFdNQUNfU09DRlBHQSBmZWF0dXJlcyByZWFjaGFibGUgd2l0aGluIFFFTVUgb3IgR0NFPyBUaGUgYW5zd2VyIGlzIGEgY2xlYXIgbm8uCgoxLiAgYERXTUFDLVNvQ0ZQR0FgIHJlcXVpcmVzIHJlYWwgQWx0ZXJhL0ludGVsIFNvQyBGUEdBIGhhcmR3YXJlIHdpdGggc3BlY2lmaWMgc3lzdGVtIG1hbmFnZXIgcmVnaXN0ZXJzIGFuZCBGUEdBIGZhYnJpYyBpbnRlcmZhY2VzLgoyLiAgYERXWEdNQUNgIGlzIGEgU3lub3BzeXMgMTBHIEV0aGVybmV0IE1BQyBJUCwgZm91bmQgb25seSBpbiBzcGVjaWZpYyBwaHlzaWNhbCBTb0NzIGxpa2UgQWx0ZXJhIEFnaWxleCA1IGFuZCBOdmlkaWEgVGVncmEyMzQvVGhvci4KMy4gIFN0YW5kYXJkIFFFTVUgZG9lcyAqbm90KiBlbXVsYXRlIHRoZXNlIFN5bm9wc3lzIERXWEdNQUMgb3IgQWx0ZXJhIFNvQyBGUEdBIEV0aGVybmV0IGNvbnRyb2xsZXJzLgo0LiAgR0NFIGRvZXNuJiMzOTt0IHByb3ZpZGUgZW11bGF0aW9uIGVpdGhlci4KClRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgbm90IHJlYWNoYWJsZSBpbiB0aGVzZSBlbnZpcm9ubWVudHMuICBJIGRvdWJsZS1jaGVjayB0aGUgZmlsZXMgYW5kIHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlIGNoYW5nZXMsIGFuZCBJJiMzOTttIGxvb2tpbmcgZm9yIGFueSBvdGhlciBtb2RpZmljYXRpb25zLiBUaGUgZGlmZnMgY29uZmlybSB0aGF0IGFsbCBtb2RpZmljYXRpb25zIGFyZSBjb25maW5lZCB0byBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgY29kZSB0aGF0IHJlbGllcyBvbiB0aGVzZSBwaHlzaWNhbCBTb0NzIGFuZCBGUEdBcy4gIFRoZSBwYXRjaCBpbXBhY3RzIHRoaW5ncyBsaWtlIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxpbmcgZm9yIERXWEdNQUMgYW5kIGNyb3NzLXRpbWVzdGFtcGluZyBpbiB0aGUgQWx0ZXJhIFNvQ0ZQR0EgZHJpdmVyLiAgQm90aCBhcmUgbm90IGFjY2Vzc2libGUgaW4gUUVNVSBvciBHQ0UuCgpUaGUgY29uY2x1c2lvbiBpcyB0aGF0IHRoaXMgcGF0Y2ggaXMgbm90IHN1aXRhYmxlIGZvciBmdXp6aW5nLiAgVGhlIGBXb3J0aEZ1enppbmdgIGZsYWcgc2hvdWxkIGJlIHNldCB0byBgZmFsc2VgLiBUaGVyZSBhcmUgbm8gc3BlY2lmaWMgc3ltYm9scyBvciBjb25maWd1cmF0aW9ucyB0byBlbmFibGUgb3IgZm9jdXMgb24gc2luY2UgdGhlIGNvZGUgY2FuJiMzOTt0IGJlIGV4ZWN1dGVkLCBhbmQgdGhlIHJlYXNvbmluZyBpcyBjbGVhcjogdGhlIGNoYW5nZXMgYXJlIGhhcmR3YXJlLWRlcGVuZGVudCBhbmQgY2FuJiMzOTt0IGJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFLgoKRmluYWxseSwgSSYjMzk7bSBzZXR0aW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVycyBmb3IgdGhlIGBzZXQtcmVzdWx0c2AgdG9vbDoKCiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYAoqICAgYEZvY3VzU3ltYm9sc2A6IGBbXWAKKiAgIGBFbmFibGVDb25maWdzYDogYFtdYAoqICAgYFJlYXNvbmluZ2A6IENvbmNpc2UgZXhwbGFuYXRpb24gb2Ygd2h5IGl0IGlzIGBmYWxzZWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzAzIDA5OjQwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBTeW5vcHN5cyBTVE1NQUMgRFdYR01BQyAoMTBHIE1BQykgdGltZXN0YW1wIGludGVycnVwdCBoYW5kbGluZyBhbmQgQWx0ZXJhIFNvQ0ZQR0EgZXRoZXJuZXQgZ2x1ZSBkcml2ZXIuIFRoZXNlIGNvZGUgcGF0aHMgcmVxdWlyZSBwaHlzaWNhbCBTb0MvRlBHQSBoYXJkd2FyZSAoc3VjaCBhcyBJbnRlbC9BbHRlcmEgU29DRlBHQSBvciBOdmlkaWEgVGVncmEgcGxhdGZvcm1zKSB0aGF0IGlzIG5vdCBhdmFpbGFibGUgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgUUVNVSBvciBHQ0UuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI3LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8wMyAwOTo0MDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzg6MzcuMzA2MzQ1MTQ2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTI3MDcyNjMxNzUzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM4OjM3LjMwNjM1MTk2NloiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU3MjMzODgxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgMjlhMjRiM2Q4NTQ1OGEyYTNiNzEzM2M0NDllYTcwYWU2MTZkOWU1NlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IFNlcCAzIDA5OjM4OjM2IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuY1xcbmluZGV4IDFkN2YwYTU3ZDI4ODkuLmE0ZDAwYmY4MTQyMzcgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXFxuQEAgLTMxMCw2ICszMTAsMTMgQEAgc3RhdGljIGludCBzbXRnX2Nyb3NzdHN0YW1wKGt0aW1lX3QgKmRldmljZSwgc3RydWN0IHN5c3RlbV9jb3VudGVydmFsX3QgKnN5c3RlbSxcXG4gXFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWZsYWdzIFxcdTAwMjYgU1RNTUFDX0ZMQUdfRVhUX1NOQVBTSE9UX0VOKVxcbiBcXHRcXHRyZXR1cm4gLUVCVVNZO1xcbiBcXG4rXFx0LyogVGhlIFhHTUFDIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxlciBjbGVhcnMgVFNJUyBieSByZWFkaW5nXFxuK1xcdCAqIFhHTUFDX1RJTUVTVEFNUF9TVEFUVVMsIHdoaWNoIHdvdWxkIHJhY2Ugd2l0aCB0aGUgVFNJUyBwb2xsXFxuK1xcdCAqIGJlbG93LiAgTWFzayBYR01BQ19UU0lFIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGNyb3NzLXRpbWVzdGFtcFxcbitcXHQgKiBzbyB0aGUgaGFuZGxlciBkb2VzIG5vdCBydW4gd2hpbGUgd2Ugb3duIHRoZSBzbmFwc2hvdCBGSUZPLlxcbitcXHQgKi9cXG4rXFx0c3RtbWFjX21hY19pcnFfbW9kaWZ5KHByaXYsIFhHTUFDX1RTSUUsIDApO1xcbitcXG4gXFx0bXV0ZXhfbG9jayhcXHUwMDI2cHJpdi1cXHUwMDNlYXV4X3RzX2xvY2spO1xcbiBcXHQvKiBFbmFibGUgSW50ZXJuYWwgc25hcHNob3QgdHJpZ2dlciAqL1xcbiBcXHRhY3JfdmFsdWUgPSByZWFkbChwdHBhZGRyICsgUFRQX0FDUik7XFxuQEAgLTMyOSw2ICszMzYsNyBAQCBzdGF0aWMgaW50IHNtdGdfY3Jvc3N0c3RhbXAoa3RpbWVfdCAqZGV2aWNlLCBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCAqc3lzdGVtLFxcbiBcXHRcXHRicmVhaztcXG4gXFx0ZGVmYXVsdDpcXG4gXFx0XFx0bXV0ZXhfdW5sb2NrKFxcdTAwMjZwcml2LVxcdTAwM2VhdXhfdHNfbG9jayk7XFxuK1xcdFxcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcXG4gXFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuIFxcdH1cXG4gXFx0d3JpdGVsKGFjcl92YWx1ZSwgcHRwYWRkciArIFBUUF9BQ1IpO1xcbkBAIC0zNTMsNiArMzYxLDcgQEAgc3RhdGljIGludCBzbXRnX2Nyb3NzdHN0YW1wKGt0aW1lX3QgKmRldmljZSwgc3RydWN0IHN5c3RlbV9jb3VudGVydmFsX3QgKnN5c3RlbSxcXG4gXFx0cmV0ID0gcmVhZGxfcG9sbF90aW1lb3V0KHByaXYtXFx1MDAzZWlvYWRkciArIFhHTUFDX0lOVF9TVEFUVVMsIHYsXFxuIFxcdFxcdFxcdFxcdCAodiBcXHUwMDI2IFhHTUFDX0lOVF9UU0lTKSwgMTAwLCAxMDAwMCk7XFxuIFxcdGlmIChyZXQpIHtcXG4rXFx0XFx0c3RtbWFjX21hY19pcnFfbW9kaWZ5KHByaXYsIDAsIFhHTUFDX1RTSUUpO1xcbiBcXHRcXHRuZXRkZXZfZXJyKHByaXYtXFx1MDAzZWRldiwgXFxcIiVzOiBXYWl0IGZvciB0aW1lIHN5bmMgb3BlcmF0aW9uIHRpbWVvdXRcXFxcblxcXCIsXFxuIFxcdFxcdFxcdCAgIF9fZnVuY19fKTtcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG5AQCAtMzc1LDYgKzM4NCw4IEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sXFxuIFxcdFxcdHJlYWRfdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNnByaXYtXFx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XFxuIFxcdH1cXG4gXFxuK1xcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcXG4rXFxuIFxcdGdldF9zbXRndGltZShwcml2LVxcdTAwM2VtaWksIFNNVEdfTURJT19BRERSLCBcXHUwMDI2c210Z190aW1lKTtcXG4gXFx0c3lzdGVtLVxcdTAwM2VjeWNsZXMgPSBzbXRnX3RpbWU7XFxuIFxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxcbmluZGV4IGY4YWIzNDdmN2I1YjkuLjAzY2JhZTMyNjk5NWIgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmhcXG5AQCAtODcsNyArODcsNyBAQFxcbiAjZGVmaW5lIFhHTUFDX1RTSUVcXHRcXHRcXHRCSVQoMTIpXFxuICNkZWZpbmUgWEdNQUNfTFBJSUVcXHRcXHRcXHRCSVQoNSlcXG4gI2RlZmluZSBYR01BQ19QTVRJRVxcdFxcdFxcdEJJVCg0KVxcbi0jZGVmaW5lIFhHTUFDX0lOVF9ERUZBVUxUX0VOXFx0XFx0KFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUpXFxuKyNkZWZpbmUgWEdNQUNfSU5UX0RFRkFVTFRfRU5cXHRcXHQoWEdNQUNfTFBJSUUgfCBYR01BQ19QTVRJRSB8IFhHTUFDX1RTSUUpXFxuICNkZWZpbmUgWEdNQUNfUXhfVFhfRkxPV19DVFJMKHgpXFx0KDB4MDAwMDAwNzAgKyAoeCkgKiA0KVxcbiAjZGVmaW5lIFhHTUFDX1BUXFx0XFx0XFx0R0VOTUFTSygzMSwgMTYpXFxuICNkZWZpbmUgWEdNQUNfVEZFXFx0XFx0XFx0QklUKDEpXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuY1xcbmluZGV4IDFhODhjYmFlZDcwY2EuLjg5MWI3Y2VlYTJkNDUgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXFxuQEAgLTExNTQsNiArMTE1NCw0OSBAQCBzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKVxcbiBcXHRyZXR1cm4gMDtcXG4gfVxcbiBcXG4rdm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG4re1xcbitcXHR1MzIgdHNfc3RhdHVzLCBwZW5kaW5nX3NuYXBzaG90cywgYWNyX3ZhbHVlLCBjaGFubmVsO1xcbitcXHRzdHJ1Y3QgcHRwX2Nsb2NrX2V2ZW50IGV2ZW50O1xcbitcXHR1bnNpZ25lZCBsb25nIGZsYWdzO1xcbitcXHR1NjQgcHRwX3RpbWU7XFxuK1xcdGludCBpO1xcbitcXG4rXFx0LyogUmVhZCBYR01BQ19USU1FU1RBTVBfU1RBVFVTIHRvIGdldCB0aGUgQVVYIHNuYXBzaG90XFxuK1xcdCAqIGNvdW50LiAgVGhpcyByZWFkIGFsc28gY2xlYXJzIHRoZSBUU0lTIGJpdCBpblxcbitcXHQgKiBYR01BQ19JTlRfU1RBVFVTLlxcbitcXHQgKiBUWCB0aW1lc3RhbXAgcG9sbGluZyBtYXkgaGF2ZSBhbHJlYWR5IGNsZWFyZWQgVFNJU1xcbitcXHQgKiBhbmQgQVVYVFNUUklHLCBzbyByZWx5IG9uIEFUU05TIGluc3RlYWQuXFxuK1xcdCAqIFRYVFNDIGlzIGNsZWFyZWQgYnkgWEdNQUNfVFhUSU1FU1RBTVBfU0VDLCBub3QgYnlcXG4rXFx0ICogdGhpcyByZWdpc3Rlciwgc28gdGhlcmUgaXMgbm8gY29uZmxpY3QuXFxuK1xcdCAqL1xcbitcXHR0c19zdGF0dXMgPSByZWFkbChwcml2LVxcdTAwM2Vpb2FkZHIgKyBYR01BQ19USU1FU1RBTVBfU1RBVFVTKTtcXG4rXFxuK1xcdGlmICghKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWZsYWdzIFxcdTAwMjYgU1RNTUFDX0ZMQUdfRVhUX1NOQVBTSE9UX0VOKSlcXG4rXFx0XFx0cmV0dXJuO1xcbitcXG4rXFx0cGVuZGluZ19zbmFwc2hvdHMgPSBGSUVMRF9HRVQoWEdNQUNfVElNRVNUQU1QX0FUU05TX01BU0ssIHRzX3N0YXR1cyk7XFxuK1xcdGlmICghcGVuZGluZ19zbmFwc2hvdHMpXFxuK1xcdFxcdHJldHVybjtcXG4rXFxuK1xcdGFjcl92YWx1ZSA9IHJlYWRsKHByaXYtXFx1MDAzZXB0cGFkZHIgKyBQVFBfQUNSKTtcXG4rXFx0Y2hhbm5lbCA9IEZJRUxEX0dFVChQVFBfQUNSX01BU0ssIGFjcl92YWx1ZSk7XFxuK1xcdGlmICghY2hhbm5lbClcXG4rXFx0XFx0cmV0dXJuO1xcbitcXHRjaGFubmVsID0gaWxvZzIoY2hhbm5lbCk7XFxuK1xcbitcXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgcGVuZGluZ19zbmFwc2hvdHM7IGkrKykge1xcbitcXHRcXHRyZWFkX2xvY2tfaXJxc2F2ZShcXHUwMDI2cHJpdi1cXHUwMDNlcHRwX2xvY2ssIGZsYWdzKTtcXG4rXFx0XFx0c3RtbWFjX2dldF9wdHB0aW1lKHByaXYsIHByaXYtXFx1MDAzZXB0cGFkZHIsIFxcdTAwMjZwdHBfdGltZSk7XFxuK1xcdFxcdHJlYWRfdW5sb2NrX2lycXJlc3RvcmUoXFx1MDAyNnByaXYtXFx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XFxuK1xcbitcXHRcXHRldmVudC50eXBlID0gUFRQX0NMT0NLX0VYVFRTO1xcbitcXHRcXHRldmVudC5pbmRleCA9IGNoYW5uZWw7XFxuK1xcdFxcdGV2ZW50LnRpbWVzdGFtcCA9IHB0cF90aW1lO1xcbitcXHRcXHRwdHBfY2xvY2tfZXZlbnQocHJpdi1cXHUwMDNlcHRwX2Nsb2NrLCBcXHUwMDI2ZXZlbnQpO1xcbitcXHR9XFxuK31cXG4rXFxuIHN0YXRpYyBpbnQgZHd4Z21hYzJfZmxleF9wcHNfY29uZmlnKHZvaWQgX19pb21lbSAqaW9hZGRyLCBpbnQgaW5kZXgsXFxuIFxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Bwc19jZmcgKmNmZywgYm9vbCBlbmFibGUsXFxuIFxcdFxcdFxcdFxcdCAgICB1MzIgc3ViX3NlY29uZF9pbmMsIHUzMiBzeXN0aW1lX2ZsYWdzKVxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmNcXG5pbmRleCAyNjU2NzExNzBiZjZlLi5lYmE4NzQxMGY5ODVhIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xcbkBAIC0yNTgsNyArMjU4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XFxuIFxcdFxcdC5kbWEgPSBcXHUwMDI2ZHd4Z21hYzIxMF9kbWFfb3BzLFxcbiBcXHRcXHQubWFjID0gXFx1MDAyNmR3eGdtYWMyMTBfb3BzLFxcbiBcXHRcXHQudmxhbiA9IFxcdTAwMjZkd3hnbWFjMjEwX3ZsYW5fb3BzLFxcbi1cXHRcXHQuaHd0aW1lc3RhbXAgPSBcXHUwMDI2c3RtbWFjX3B0cCxcXG4rXFx0XFx0Lmh3dGltZXN0YW1wID0gXFx1MDAyNmR3eGdtYWMyX3B0cCxcXG4gXFx0XFx0LnB0cCA9IFxcdTAwMjZzdG1tYWNfcHRwX2Nsb2NrX29wcyxcXG4gXFx0XFx0Lm1vZGUgPSBOVUxMLFxcbiBcXHRcXHQudGMgPSBcXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxcbkBAIC0yODAsNyArMjgwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHdpZl9lbnRyeSB7XFxuIFxcdFxcdC5kbWEgPSBcXHUwMDI2ZHd4Z21hYzIxMF9kbWFfb3BzLFxcbiBcXHRcXHQubWFjID0gXFx1MDAyNmR3eGxnbWFjMl9vcHMsXFxuIFxcdFxcdC52bGFuID0gXFx1MDAyNmR3eGxnbWFjMl92bGFuX29wcyxcXG4tXFx0XFx0Lmh3dGltZXN0YW1wID0gXFx1MDAyNnN0bW1hY19wdHAsXFxuK1xcdFxcdC5od3RpbWVzdGFtcCA9IFxcdTAwMjZkd3hnbWFjMl9wdHAsXFxuIFxcdFxcdC5wdHAgPSBcXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXFxuIFxcdFxcdC5tb2RlID0gTlVMTCxcXG4gXFx0XFx0LnRjID0gXFx1MDAyNmR3bWFjNTEwX3RjX29wcyxcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oXFxuaW5kZXggZmUxOGY5OGZhZTQ1MS4uNWEzMDhlNzlkYjRhOSAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcXG5AQCAtNjcyLDYgKzY3Miw3IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2Rlc2Nfb3BzIG5kZXNjX29wcztcXG4gXFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIHN0bW1hY19wdHA7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3bWFjMTAwMF9wdHA7XFxuK2V4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3eGdtYWMyX3B0cDtcXG4gXFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzIHJpbmdfbW9kZV9vcHM7XFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX21vZGVfb3BzIGNoYWluX21vZGVfb3BzO1xcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXFxuaW5kZXggYjlhOTg1ZmE3NzJjOS4uOWQ3ZDI0MjU5YWJkNCAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY1xcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXFxuQEAgLTI3NywzICsyNzcsMTUgQEAgY29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd21hYzEwMDBfcHRwID0ge1xcbiBcXHQuZ2V0X3B0cHRpbWUgPSBkd21hYzEwMDBfZ2V0X3B0cHRpbWUsXFxuIFxcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXFxuIH07XFxuK1xcbitjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3eGdtYWMyX3B0cCA9IHtcXG4rXFx0LmNvbmZpZ19od190c3RhbXBpbmcgPSBjb25maWdfaHdfdHN0YW1waW5nLFxcbitcXHQuaW5pdF9zeXN0aW1lID0gaW5pdF9zeXN0aW1lLFxcbitcXHQuY29uZmlnX3N1Yl9zZWNvbmRfaW5jcmVtZW50ID0gY29uZmlnX3N1Yl9zZWNvbmRfaW5jcmVtZW50LFxcbitcXHQuY29uZmlnX2FkZGVuZCA9IGNvbmZpZ19hZGRlbmQsXFxuK1xcdC5hZGp1c3Rfc3lzdGltZSA9IGFkanVzdF9zeXN0aW1lLFxcbitcXHQuZ2V0X3N5c3RpbWUgPSBnZXRfc3lzdGltZSxcXG4rXFx0LmdldF9wdHB0aW1lID0gZ2V0X3B0cHRpbWUsXFxuK1xcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCxcXG4rXFx0Lmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSA9IGh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSxcXG4rfTtcXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oXFxuaW5kZXggM2ZlMGUzYTgwZTgwYS4uZGFkZTA5NjE0MTYzYiAxMDA2NDRcXG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhcXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhcXG5AQCAtMTAzLDYgKzEwMyw3IEBAIGludCBkd21hYzEwMDBfcHRwX2VuYWJsZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcXG4gXFxuIHZvaWQgZHdtYWMxMDAwX2dldF9wdHB0aW1lKHZvaWQgX19pb21lbSAqcHRwYWRkciwgdTY0ICpwdHBfdGltZSk7XFxuIHZvaWQgZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG4rdm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuIFxcbiBleHRlcm4gY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIHN0bW1hY19wdHBfY2xvY2tfb3BzO1xcbiBleHRlcm4gY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIGR3bWFjMTAwMF9wdHBfY2xvY2tfb3BzO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozODozNy43NjQzMTIyMjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjEyNjYxNDY1MjQ0MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDI5YTI0YjNkODU0NThhMmEzYjcxMzNjNDQ5ZWE3MGFlNjE2ZDllNTZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IFNlcCAzIDA5OjM4OjM2IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG5pbmRleCAxZDdmMGE1N2QyODg5Li5hNGQwMGJmODE0MjM3IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcbkBAIC0zMTAsNiArMzEwLDEzIEBAIHN0YXRpYyBpbnQgc210Z19jcm9zc3RzdGFtcChrdGltZV90ICpkZXZpY2UsIHN0cnVjdCBzeXN0ZW1fY291bnRlcnZhbF90ICpzeXN0ZW0sXG4gXHRpZiAocHJpdi1cdTAwM2VwbGF0LVx1MDAzZWZsYWdzIFx1MDAyNiBTVE1NQUNfRkxBR19FWFRfU05BUFNIT1RfRU4pXG4gXHRcdHJldHVybiAtRUJVU1k7XG4gXG4rXHQvKiBUaGUgWEdNQUMgdGltZXN0YW1wIGludGVycnVwdCBoYW5kbGVyIGNsZWFycyBUU0lTIGJ5IHJlYWRpbmdcbitcdCAqIFhHTUFDX1RJTUVTVEFNUF9TVEFUVVMsIHdoaWNoIHdvdWxkIHJhY2Ugd2l0aCB0aGUgVFNJUyBwb2xsXG4rXHQgKiBiZWxvdy4gIE1hc2sgWEdNQUNfVFNJRSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjcm9zcy10aW1lc3RhbXBcbitcdCAqIHNvIHRoZSBoYW5kbGVyIGRvZXMgbm90IHJ1biB3aGlsZSB3ZSBvd24gdGhlIHNuYXBzaG90IEZJRk8uXG4rXHQgKi9cbitcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCBYR01BQ19UU0lFLCAwKTtcbitcbiBcdG11dGV4X2xvY2soXHUwMDI2cHJpdi1cdTAwM2VhdXhfdHNfbG9jayk7XG4gXHQvKiBFbmFibGUgSW50ZXJuYWwgc25hcHNob3QgdHJpZ2dlciAqL1xuIFx0YWNyX3ZhbHVlID0gcmVhZGwocHRwYWRkciArIFBUUF9BQ1IpO1xuQEAgLTMyOSw2ICszMzYsNyBAQCBzdGF0aWMgaW50IHNtdGdfY3Jvc3N0c3RhbXAoa3RpbWVfdCAqZGV2aWNlLCBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCAqc3lzdGVtLFxuIFx0XHRicmVhaztcbiBcdGRlZmF1bHQ6XG4gXHRcdG11dGV4X3VubG9jayhcdTAwMjZwcml2LVx1MDAzZWF1eF90c19sb2NrKTtcbitcdFx0c3RtbWFjX21hY19pcnFfbW9kaWZ5KHByaXYsIDAsIFhHTUFDX1RTSUUpO1xuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcdH1cbiBcdHdyaXRlbChhY3JfdmFsdWUsIHB0cGFkZHIgKyBQVFBfQUNSKTtcbkBAIC0zNTMsNiArMzYxLDcgQEAgc3RhdGljIGludCBzbXRnX2Nyb3NzdHN0YW1wKGt0aW1lX3QgKmRldmljZSwgc3RydWN0IHN5c3RlbV9jb3VudGVydmFsX3QgKnN5c3RlbSxcbiBcdHJldCA9IHJlYWRsX3BvbGxfdGltZW91dChwcml2LVx1MDAzZWlvYWRkciArIFhHTUFDX0lOVF9TVEFUVVMsIHYsXG4gXHRcdFx0XHQgKHYgXHUwMDI2IFhHTUFDX0lOVF9UU0lTKSwgMTAwLCAxMDAwMCk7XG4gXHRpZiAocmV0KSB7XG4rXHRcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcbiBcdFx0bmV0ZGV2X2Vycihwcml2LVx1MDAzZWRldiwgXCIlczogV2FpdCBmb3IgdGltZSBzeW5jIG9wZXJhdGlvbiB0aW1lb3V0XFxuXCIsXG4gXHRcdFx0ICAgX19mdW5jX18pO1xuIFx0XHRyZXR1cm4gcmV0O1xuQEAgLTM3NSw2ICszODQsOCBAQCBzdGF0aWMgaW50IHNtdGdfY3Jvc3N0c3RhbXAoa3RpbWVfdCAqZGV2aWNlLCBzdHJ1Y3Qgc3lzdGVtX2NvdW50ZXJ2YWxfdCAqc3lzdGVtLFxuIFx0XHRyZWFkX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnByaXYtXHUwMDNlcHRwX2xvY2ssIGZsYWdzKTtcbiBcdH1cbiBcbitcdHN0bW1hY19tYWNfaXJxX21vZGlmeShwcml2LCAwLCBYR01BQ19UU0lFKTtcbitcbiBcdGdldF9zbXRndGltZShwcml2LVx1MDAzZW1paSwgU01UR19NRElPX0FERFIsIFx1MDAyNnNtdGdfdGltZSk7XG4gXHRzeXN0ZW0tXHUwMDNlY3ljbGVzID0gc210Z190aW1lO1xuIFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oXG5pbmRleCBmOGFiMzQ3ZjdiNWI5Li4wM2NiYWUzMjY5OTViIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaFxuQEAgLTg3LDcgKzg3LDcgQEBcbiAjZGVmaW5lIFhHTUFDX1RTSUVcdFx0XHRCSVQoMTIpXG4gI2RlZmluZSBYR01BQ19MUElJRVx0XHRcdEJJVCg1KVxuICNkZWZpbmUgWEdNQUNfUE1USUVcdFx0XHRCSVQoNClcbi0jZGVmaW5lIFhHTUFDX0lOVF9ERUZBVUxUX0VOXHRcdChYR01BQ19MUElJRSB8IFhHTUFDX1BNVElFKVxuKyNkZWZpbmUgWEdNQUNfSU5UX0RFRkFVTFRfRU5cdFx0KFhHTUFDX0xQSUlFIHwgWEdNQUNfUE1USUUgfCBYR01BQ19UU0lFKVxuICNkZWZpbmUgWEdNQUNfUXhfVFhfRkxPV19DVFJMKHgpXHQoMHgwMDAwMDA3MCArICh4KSAqIDQpXG4gI2RlZmluZSBYR01BQ19QVFx0XHRcdEdFTk1BU0soMzEsIDE2KVxuICNkZWZpbmUgWEdNQUNfVEZFXHRcdFx0QklUKDEpXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXG5pbmRleCAxYTg4Y2JhZWQ3MGNhLi44OTFiN2NlZWEyZDQ1IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmNcbkBAIC0xMTU0LDYgKzExNTQsNDkgQEAgc3RhdGljIGludCBkd3hnbWFjMl9nZXRfbWFjX3R4X3RpbWVzdGFtcChzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTY0ICp0cylcbiBcdHJldHVybiAwO1xuIH1cbiBcbit2b2lkIGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxuK3tcbitcdHUzMiB0c19zdGF0dXMsIHBlbmRpbmdfc25hcHNob3RzLCBhY3JfdmFsdWUsIGNoYW5uZWw7XG4rXHRzdHJ1Y3QgcHRwX2Nsb2NrX2V2ZW50IGV2ZW50O1xuK1x0dW5zaWduZWQgbG9uZyBmbGFncztcbitcdHU2NCBwdHBfdGltZTtcbitcdGludCBpO1xuK1xuK1x0LyogUmVhZCBYR01BQ19USU1FU1RBTVBfU1RBVFVTIHRvIGdldCB0aGUgQVVYIHNuYXBzaG90XG4rXHQgKiBjb3VudC4gIFRoaXMgcmVhZCBhbHNvIGNsZWFycyB0aGUgVFNJUyBiaXQgaW5cbitcdCAqIFhHTUFDX0lOVF9TVEFUVVMuXG4rXHQgKiBUWCB0aW1lc3RhbXAgcG9sbGluZyBtYXkgaGF2ZSBhbHJlYWR5IGNsZWFyZWQgVFNJU1xuK1x0ICogYW5kIEFVWFRTVFJJRywgc28gcmVseSBvbiBBVFNOUyBpbnN0ZWFkLlxuK1x0ICogVFhUU0MgaXMgY2xlYXJlZCBieSBYR01BQ19UWFRJTUVTVEFNUF9TRUMsIG5vdCBieVxuK1x0ICogdGhpcyByZWdpc3Rlciwgc28gdGhlcmUgaXMgbm8gY29uZmxpY3QuXG4rXHQgKi9cbitcdHRzX3N0YXR1cyA9IHJlYWRsKHByaXYtXHUwMDNlaW9hZGRyICsgWEdNQUNfVElNRVNUQU1QX1NUQVRVUyk7XG4rXG4rXHRpZiAoIShwcml2LVx1MDAzZXBsYXQtXHUwMDNlZmxhZ3MgXHUwMDI2IFNUTU1BQ19GTEFHX0VYVF9TTkFQU0hPVF9FTikpXG4rXHRcdHJldHVybjtcbitcbitcdHBlbmRpbmdfc25hcHNob3RzID0gRklFTERfR0VUKFhHTUFDX1RJTUVTVEFNUF9BVFNOU19NQVNLLCB0c19zdGF0dXMpO1xuK1x0aWYgKCFwZW5kaW5nX3NuYXBzaG90cylcbitcdFx0cmV0dXJuO1xuK1xuK1x0YWNyX3ZhbHVlID0gcmVhZGwocHJpdi1cdTAwM2VwdHBhZGRyICsgUFRQX0FDUik7XG4rXHRjaGFubmVsID0gRklFTERfR0VUKFBUUF9BQ1JfTUFTSywgYWNyX3ZhbHVlKTtcbitcdGlmICghY2hhbm5lbClcbitcdFx0cmV0dXJuO1xuK1x0Y2hhbm5lbCA9IGlsb2cyKGNoYW5uZWwpO1xuK1xuK1x0Zm9yIChpID0gMDsgaSBcdTAwM2MgcGVuZGluZ19zbmFwc2hvdHM7IGkrKykge1xuK1x0XHRyZWFkX2xvY2tfaXJxc2F2ZShcdTAwMjZwcml2LVx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XG4rXHRcdHN0bW1hY19nZXRfcHRwdGltZShwcml2LCBwcml2LVx1MDAzZXB0cGFkZHIsIFx1MDAyNnB0cF90aW1lKTtcbitcdFx0cmVhZF91bmxvY2tfaXJxcmVzdG9yZShcdTAwMjZwcml2LVx1MDAzZXB0cF9sb2NrLCBmbGFncyk7XG4rXG4rXHRcdGV2ZW50LnR5cGUgPSBQVFBfQ0xPQ0tfRVhUVFM7XG4rXHRcdGV2ZW50LmluZGV4ID0gY2hhbm5lbDtcbitcdFx0ZXZlbnQudGltZXN0YW1wID0gcHRwX3RpbWU7XG4rXHRcdHB0cF9jbG9ja19ldmVudChwcml2LVx1MDAzZXB0cF9jbG9jaywgXHUwMDI2ZXZlbnQpO1xuK1x0fVxuK31cbitcbiBzdGF0aWMgaW50IGR3eGdtYWMyX2ZsZXhfcHBzX2NvbmZpZyh2b2lkIF9faW9tZW0gKmlvYWRkciwgaW50IGluZGV4LFxuIFx0XHRcdFx0ICAgIHN0cnVjdCBzdG1tYWNfcHBzX2NmZyAqY2ZnLCBib29sIGVuYWJsZSxcbiBcdFx0XHRcdCAgICB1MzIgc3ViX3NlY29uZF9pbmMsIHUzMiBzeXN0aW1lX2ZsYWdzKVxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xuaW5kZXggMjY1NjcxMTcwYmY2ZS4uZWJhODc0MTBmOTg1YSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jXG5AQCAtMjU4LDcgKzI1OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkge1xuIFx0XHQuZG1hID0gXHUwMDI2ZHd4Z21hYzIxMF9kbWFfb3BzLFxuIFx0XHQubWFjID0gXHUwMDI2ZHd4Z21hYzIxMF9vcHMsXG4gXHRcdC52bGFuID0gXHUwMDI2ZHd4Z21hYzIxMF92bGFuX29wcyxcbi1cdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2c3RtbWFjX3B0cCxcbitcdFx0Lmh3dGltZXN0YW1wID0gXHUwMDI2ZHd4Z21hYzJfcHRwLFxuIFx0XHQucHRwID0gXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXG4gXHRcdC5tb2RlID0gTlVMTCxcbiBcdFx0LnRjID0gXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxuQEAgLTI4MCw3ICsyODAsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19od2lmX2VudHJ5IHtcbiBcdFx0LmRtYSA9IFx1MDAyNmR3eGdtYWMyMTBfZG1hX29wcyxcbiBcdFx0Lm1hYyA9IFx1MDAyNmR3eGxnbWFjMl9vcHMsXG4gXHRcdC52bGFuID0gXHUwMDI2ZHd4bGdtYWMyX3ZsYW5fb3BzLFxuLVx0XHQuaHd0aW1lc3RhbXAgPSBcdTAwMjZzdG1tYWNfcHRwLFxuK1x0XHQuaHd0aW1lc3RhbXAgPSBcdTAwMjZkd3hnbWFjMl9wdHAsXG4gXHRcdC5wdHAgPSBcdTAwMjZzdG1tYWNfcHRwX2Nsb2NrX29wcyxcbiBcdFx0Lm1vZGUgPSBOVUxMLFxuIFx0XHQudGMgPSBcdTAwMjZkd21hYzUxMF90Y19vcHMsXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oXG5pbmRleCBmZTE4Zjk4ZmFlNDUxLi41YTMwOGU3OWRiNGE5IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oXG4rKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmhcbkBAIC02NzIsNiArNjcyLDcgQEAgZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgbmRlc2Nfb3BzO1xuIFxuIGV4dGVybiBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIHN0bW1hY19wdHA7XG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHdtYWMxMDAwX3B0cDtcbitleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd3hnbWFjMl9wdHA7XG4gXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfbW9kZV9vcHMgcmluZ19tb2RlX29wcztcbiBleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19tb2RlX29wcyBjaGFpbl9tb2RlX29wcztcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXG5pbmRleCBiOWE5ODVmYTc3MmM5Li45ZDdkMjQyNTlhYmQ0IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmNcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jXG5AQCAtMjc3LDMgKzI3NywxNSBAQCBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3dGltZXN0YW1wIGR3bWFjMTAwMF9wdHAgPSB7XG4gXHQuZ2V0X3B0cHRpbWUgPSBkd21hYzEwMDBfZ2V0X3B0cHRpbWUsXG4gXHQudGltZXN0YW1wX2ludGVycnVwdCA9IGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0LFxuIH07XG4rXG4rY29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd3hnbWFjMl9wdHAgPSB7XG4rXHQuY29uZmlnX2h3X3RzdGFtcGluZyA9IGNvbmZpZ19od190c3RhbXBpbmcsXG4rXHQuaW5pdF9zeXN0aW1lID0gaW5pdF9zeXN0aW1lLFxuK1x0LmNvbmZpZ19zdWJfc2Vjb25kX2luY3JlbWVudCA9IGNvbmZpZ19zdWJfc2Vjb25kX2luY3JlbWVudCxcbitcdC5jb25maWdfYWRkZW5kID0gY29uZmlnX2FkZGVuZCxcbitcdC5hZGp1c3Rfc3lzdGltZSA9IGFkanVzdF9zeXN0aW1lLFxuK1x0LmdldF9zeXN0aW1lID0gZ2V0X3N5c3RpbWUsXG4rXHQuZ2V0X3B0cHRpbWUgPSBnZXRfcHRwdGltZSxcbitcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCxcbitcdC5od3RzdGFtcF9jb3JyZWN0X2xhdGVuY3kgPSBod3RzdGFtcF9jb3JyZWN0X2xhdGVuY3ksXG4rfTtcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmggYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhcbmluZGV4IDNmZTBlM2E4MGU4MGEuLmRhZGUwOTYxNDE2M2IgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhcbisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wdHAuaFxuQEAgLTEwMyw2ICsxMDMsNyBAQCBpbnQgZHdtYWMxMDAwX3B0cF9lbmFibGUoc3RydWN0IHB0cF9jbG9ja19pbmZvICpwdHAsXG4gXG4gdm9pZCBkd21hYzEwMDBfZ2V0X3B0cHRpbWUodm9pZCBfX2lvbWVtICpwdHBhZGRyLCB1NjQgKnB0cF90aW1lKTtcbiB2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG4rdm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XG4gXG4gZXh0ZXJuIGNvbnN0IHN0cnVjdCBwdHBfY2xvY2tfaW5mbyBzdG1tYWNfcHRwX2Nsb2NrX29wcztcbiBleHRlcm4gY29uc3Qgc3RydWN0IHB0cF9jbG9ja19pbmZvIGR3bWFjMTAwMF9wdHBfY2xvY2tfb3BzO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzg6MzcuNzY0MzEzOTU3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NDMwMjc3MjI1MzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ3ZlIGdvdCB0aGlzIHBhdGNoIGluIGZyb250IG9mIG1lLCBhbmQgbXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCBpZiBpdCdzIGZ1enotd29ydGh5LiBCZWZvcmUgSSBkaXZlIHRvbyBkZWVwIGludG8gdGhlIGNvZGUsIEkgbmVlZCB0byBnZXQgYSBoaWdoLWxldmVsIHZpZXcgb2YgdGhlIGxhbmRzY2FwZS4gRmlyc3QsIGxldCdzIGxvb2sgYXQgd2hhdCdzIGJlZW4gdG91Y2hlZC4gSXQgbG9va3MgbGlrZSB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIGBzdG1tYWNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGl0cyBpbnRlcmFjdGlvbiB3aXRoIHZhcmlvdXMgUEhZL01BQyBjb21wb25lbnRzOiBgZHdtYWMtc29jZnBnYS5jYCwgYGR3eGdtYWMyLmhgLCBgZHd4Z21hYzJfY29yZS5jYCwgYGh3aWYuY2AsIGBod2lmLmhgLCBgc3RtbWFjX2h3dHN0YW1wLmNgLCBhbmQgYHN0bW1hY19wdHAuaGAuXG5cbk5vdywgdGhlIGltcG9ydGFudCBxdWVzdGlvbiBpczogd2hhdCBpcyB0aGUgbmF0dXJlIG9mIHRoaXMgYHN0bW1hY2AgLyBgZHdtYWNgPyBDYW4gdGhlc2UgY29tcG9uZW50cyBhY3R1YWxseSBiZSBleGVyY2lzZWQgYW5kIHRlc3RlZD8gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIGlmIHRoZXNlIGFyZSBQQ0ktYmFzZWQsIHBsYXRmb3JtLWJhc2VkLCBvciBzb21ldGhpbmcgZWxzZSBlbnRpcmVseS4gRG9lcyBgc3RtbWFjYCBoYXZlIFBDSSBnbHVlLCBsaWtlIGBzdG1tYWNfcGNpYCBvciBzaW1pbGFyIGRyaXZlcnM/IE9yIGFyZSB0aGVzZSBzcGVjaWZpY2FsbHkgZW1iZWRkZWQgRXRoZXJuZXQgY29udHJvbGxlcnMsIHBlcmhhcHMgcGh5c2ljYWwtb25seT8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaWYgYGR3eGdtYWMyYCBpcyB1c2VkIHdpdGggUENJIG9yIHBsYXRmb3JtIGRldmljZXMuIEFuZCB0aGVuLCB0aGUgY3JpdGljYWwgcXVlc3Rpb24sIHdoYXQgYWJvdXQgUUVNVT8gQ2FuIEkgZWFzaWx5IGVtdWxhdGUgdGhpcyBzZXR1cD8gSWYgSSBjYW4ndCBlbXVsYXRlIGl0LCB0aGlzIGlzIGdvaW5nIHRvIGJlIGZhciBtb3JlIGRpZmZpY3VsdC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIGdvIHN0cmFpZ2h0IHRvIHRoZSBrZXJuZWwgc291cmNlIGFuZCBzZWFyY2ggZm9yIHRoZSBgc3RtbWFjYCBkcml2ZXJzIGFuZCB0aGVpciBhc3NvY2lhdGVkIEtjb25maWcgb3B0aW9ucy4gVGhhdCB3aWxsIGdpdmUgbWUgYSBiZXR0ZXIgdW5kZXJzdGFuZGluZyBvZiBob3cgdGhlc2UgY29tcG9uZW50cyBhcmUgY29uZmlndXJlZCBhbmQgaG93IHRoZXkgYXJlIHVzZWQuIFRoaXMgd2lsbCBoZWxwIG1lIGV2YWx1YXRlIHdoZXRoZXIgSSBjYW4gZWFzaWx5IHJlcHJvZHVjZSBhIHRlc3QgZW52aXJvbm1lbnQgZm9yIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjUxMzYsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNDEsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOToyMC43OTIwMzgzOTlaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTQ5MDk2NDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFNUTU1BQ19cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjI6Y29uZmlnIFNUTU1BQ19FVEhcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIlNUTWljcm9lbGVjdHJvbmljcyBNdWx0aS1HaWdhYml0IEV0aGVybmV0IGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9MTg9aWYgU1RNTUFDX0VUSFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDpjb25maWcgU1RNTUFDX1NFTEZURVNUU1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjEtXFx0Ym9vbCBcXFwiU3VwcG9ydCBmb3IgU1RNTUFDIFNlbGZ0ZXN0c1xcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyOTpjb25maWcgU1RNTUFDX1BMQVRGT1JNXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zMC1cXHR0cmlzdGF0ZSBcXFwiU1RNTUFDIFBsYXRmb3JtIGJ1cyBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZz0zNzE9ZW5kaWYgIyBTVE1NQUNfUExBVEZPUk1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTM3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM3Mzpjb25maWcgU1RNTUFDX0xJQlBDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzc0LVxcdHRyaXN0YXRlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTM5OD1jb25maWcgRFdNQUNfTU9UT1JDT01NXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTQwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjQwNzpjb25maWcgU1RNTUFDX1BDSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctNDA4LVxcdHRyaXN0YXRlIFxcXCJTVE1NQUMgUENJIGJ1cyBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOToyMC44NDY5NTI1OTdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0ODQ0OTEzNTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgcmV2aWV3aW5nIHRoaXMgY29kZTpcblxuKipEaXZpbmcgaW50byB0aGUgRFdNQUMgQ29uZmlndXJhdGlvbioqXG5cbkFscmlnaHQsIHRpbWUgdG8gZGlnIGludG8gdGhpcyBgRFdNQUNfU09DRlBHQWAgYnVzaW5lc3MuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGlzIGRyaXZlciBpcyBjb25maWd1cmVkLCBzbyBJJ2xsIHN0YXJ0IGJ5IGNoZWNraW5nIHRoZSByZWxldmFudCBmaWxlcy4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgc2NhbiBgZHdtYWMtc29jZnBnYS5jYCwgc2luY2UgdGhhdCBzZWVtcyB0byBiZSB0aGUgY29yZSBvZiBpdCwgYW5kIHRoZW4gSSdsbCBhbHNvIGdsYW5jZSBhdCBgZHd4Z21hY2Ag4oCTIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBjcm9zcy1jb21wYXRpYmlsaXR5IG9yIGRlcGVuZGVuY2llcy4gVGhlIG1haW4gZ29hbCBoZXJlIGlzIHRvIGdldCBhIHNvbGlkIGdyYXNwIG9uIHRoZSBjb25maWd1cmF0aW9uLiBNeSBtYWluIHN0b3Agd2lsbCBiZSB0aGUgYEtjb25maWdgIGZpbGVzIHRoYXQgY29udHJvbCBgRFdNQUNfU09DRlBHQWAgYW5kIG90aGVyIHNpbWlsYXIgYHN0bW1hY2AgY29uZmlndXJhdGlvbnMuIFRoYXQncyB3aGVyZSBhbGwgdGhlIGRlY2lzaW9uLW1ha2luZyBoYXBwZW5zLiBJIG5lZWQgdG8gcGlucG9pbnQgdGhlIGRlcGVuZGVuY2llcywgb3B0aW9ucywgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVtLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2NDIwLCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MjUuNjkxODY4MjUyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyOTE4MDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIlNPQ0ZQR0FcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc9Mjk9Y29uZmlnIFNUTU1BQ19QTEFURk9STVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0zNS1cXHQgIFRoaXMgaXMgdGhlIGRyaXZlciB1c2VkIG9uIHNldmVyYWwgU29DczpcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjM2OlxcdCAgU1RpLCBBbGx3aW5uZXIsIEFtbG9naWMgTWVzb24sIEFsdGVyYSBTT0NGUEdBLlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMzctXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnPTE5MT1jb25maWcgRFdNQUNfUzMyXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIwMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwMzpjb25maWcgRFdNQUNfU09DRlBHQVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWc6MjA0OlxcdHRyaXN0YXRlIFxcXCJTT0NGUEdBIGR3bWFjIHN1cHBvcnRcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMDU6XFx0ZGVmYXVsdCBBUkNIX0lOVEVMX1NPQ0ZQR0FcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnOjIwNjpcXHRkZXBlbmRzIG9uIE9GIFxcdTAwMjZcXHUwMDI2IChBUkNIX0lOVEVMX1NPQ0ZQR0EgfHwgQ09NUElMRV9URVNUKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL0tjb25maWctMjA3LVxcdHNlbGVjdCBNRkRfU1lTQ09OXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxMS1cXHRoZWxwXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTI6XFx0ICBTdXBwb3J0IGZvciBldGhlcm5ldCBjb250cm9sbGVyIG9uIEFsdGVyYSBTT0NGUEdBXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZy0yMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvS2NvbmZpZzoyMTQ6XFx0ICBUaGlzIHNlbGVjdHMgdGhlIEFsdGVyYSBTT0NGUEdBIFNvQyBnbHVlIGxheWVyIHN1cHBvcnRcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9LY29uZmlnLTIxNS1cXHQgIGZvciB0aGUgc3RtbWFjIGRldmljZSBkcml2ZXIuIFRoaXMgZHJpdmVyIGlzIHVzZWQgZm9yXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZT0yOD1vYmotJChDT05GSUdfRFdNQUNfUzMyKVxcdFxcdCs9IGR3bWFjLXMzMi5vXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6Mjk6b2JqLSQoQ09ORklHX0RXTUFDX1NPQ0ZQR0EpXFx0Kz0gZHdtYWMtYWx0ci1zb2NmcGdhLm9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9NYWtlZmlsZS0zMC1vYmotJChDT05GSUdfRFdNQUNfU09QSEdPKVxcdCs9IGR3bWFjLXNvcGhnby5vXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM5OjI1Ljc0NDc5MzA2WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6NjM5Nzc3NzE5MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2U6XG5cbioqSW52ZXN0aWdhdGluZyB0aGUgZHd4Z21hYzIgRHJpdmVyJ3MgQ2FwYWJpbGl0aWVzKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIHNwZWNpZmljIGZ1bmN0aW9ucyDigJMgYGR3eGdtYWMyMTBfb3BzYCwgYGR3eGdtYWMyX3B0cGAsIGFuZCBgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdGAg4oCTIGFyZSB1c2VkIHdpdGhpbiB0aGUgYGR3eGdtYWMyYCBkcml2ZXIgY29udGV4dC4gTXkgaW5pdGlhbCBpbnN0aW5jdCBpcyB0byB1c2UgdGhlc2UgZnVuY3Rpb24gbmFtZXMgYXMgdGhlIHN0YXJ0aW5nIHBvaW50IGZvciBhIGRlZXBlciBpbnZlc3RpZ2F0aW9uLiBJIHdhbnQgdG8gdW5kZXJzdGFuZCB0aGVpciBwdXJwb3NlLCBob3cgdGhleSdyZSBjYWxsZWQsIHdoYXQgZGF0YSB0aGV5IG9wZXJhdGUgb24sIGFuZCBlc3NlbnRpYWxseSwgd2hhdCB0aGVpciByb2xlIGlzIGluIHRoZSBiaWdnZXIgcGljdHVyZSBvZiB0aGUgZHJpdmVy4oCZcyBmdW5jdGlvbmFsaXR5LiBBcmUgdGhleSBjb3JlIG9wZXJhdGlvbnMsIHJlbGF0ZWQgdG8gUFRQIChQcmVjaXNpb24gVGltZSBQcm90b2NvbCksIG9yIGhhbmRsaW5nIHNwZWNpZmljIGludGVycnVwdCBzY2VuYXJpb3M/IERpdmluZyBpbnRvIHRoZSBjb2RlYmFzZSB0byB0cmFjZSB0aGVzZSBpZGVudGlmaWVycyBpcyB0aGUgb2J2aW91cyBmaXJzdCBzdGVwLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgZWFjaCBvZiB0aGVzZSBjb250cmlidXRlcyB0byB0aGUgb3ZlcmFsbCBiZWhhdmlvciBvZiB0aGUgRXRoZXJuZXQgY29udHJvbGxlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NzM1NiwiT3V0cHV0VG9rZW5zIjozOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM5OjMyLjE0MjU3MzIxMVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0OTE2MDI5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkd3hnbWFjMlwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA3MjAgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlPTM9c3RtbWFjLW9ianM6PSBzdG1tYWNfbWFpbi5vIHN0bW1hY19ldGh0b29sLm8gc3RtbWFjX21kaW8ubyByaW5nX21vZGUub1xcdFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL01ha2VmaWxlLTctXFx0ICAgICAgZHdtYWM0X2RtYS5vIGR3bWFjNF9saWIubyBkd21hYzRfY29yZS5vIGR3bWFjNS5vIGh3aWYubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGU6ODpcXHQgICAgICBzdG1tYWNfdGMubyBkd3hnbWFjMl9jb3JlLm8gZHd4Z21hYzJfZG1hLm8gZHd4Z21hYzJfZGVzY3MubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvTWFrZWZpbGUtOS1cXHQgICAgICBzdG1tYWNfeGRwLm8gc3RtbWFjX2VzdC5vIHN0bW1hY19mcGUubyBzdG1tYWNfdmxhbi5vIFxcXFxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oPTY1Mj1pbnQgZHdtYWM0X3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NjUzOmludCBkd3hnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTY1NC1pbnQgZHd4bGdtYWMyX3NldHVwKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmMtMTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jOjE5OiNpbmNsdWRlIFxcXCJkd3hnbWFjMi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy0yMC0jaW5jbHVkZSBcXFwic3RtbWFjLmhcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTQ2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjQ2NTpleHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19vcHMgZHd4Z21hYzIxMF9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaC00NjYtZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfb3BzIGR3eGxnbWFjMl9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0Njc6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZG1hX29wcyBkd3hnbWFjMjEwX2RtYV9vcHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzIuaDo0Njg6ZXh0ZXJuIGNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgZHd4Z21hYzIxMF9kZXNjX29wcztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTQ2OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNC0jaW5jbHVkZSBcXFwiZHd4bGdtYWMyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1OiNpbmNsdWRlIFxcXCJkd3hnbWFjMi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTc6c3RhdGljIHZvaWQgZHd4Z21hYzJfY29yZV9pbml0KHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xOC1cXHRcXHRcXHQgICAgICAgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MzE6c3RhdGljIHZvaWQgZHd4Z21hYzJfaXJxX21vZGlmeShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGRpc2FibGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTMyLVxcdFxcdFxcdFxcdHUzMiBlbmFibGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3VwZGF0ZV9jYXBzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1MTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfbWFjKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGVuYWJsZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTY3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo2ODpzdGF0aWMgaW50IGR3eGdtYWMyX3J4X2lwYyhzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNjkte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTgyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo4MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9yeF9xdWV1ZV9lbmFibGUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHU4IG1vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTg0LVxcdFxcdFxcdFxcdCAgICAgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTk2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo5NzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9yeF9xdWV1ZV9wcmlvKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgcHJpbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtOTgtXFx0XFx0XFx0XFx0ICAgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTM4OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3R4X3F1ZXVlX3ByaW8oc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBwcmlvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzktXFx0XFx0XFx0XFx0ICAgdTMyIHF1ZXVlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU1OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3J4X3F1ZXVlX3JvdXRpbmcoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1Ni1cXHRcXHRcXHRcXHQgICAgICB1OCBwYWNrZXQsIHUzMiBxdWV1ZSlcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNjAtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE2MTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19yeF9yb3V0aW5nIGR3eGdtYWMyX3JvdXRlX3Bvc3NpYmlsaXRpZXNbXSA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTYyLVxcdFxcdHsgWEdNQUNfQVZDUFEsIFhHTUFDX0FWQ1BRX1NISUZUIH0sXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTcxLVxcdC8qIHJvdXRpbmcgY29uZmlndXJhdGlvbiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNzI6XFx0dmFsdWUgXFx1MDAyNj0gfmR3eGdtYWMyX3JvdXRlX3Bvc3NpYmlsaXRpZXNbcGFja2V0IC0gMV0ucmVnX21hc2s7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE3MzpcXHR2YWx1ZSB8PSAocXVldWUgXFx1MDAzY1xcdTAwM2MgZHd4Z21hYzJfcm91dGVfcG9zc2liaWxpdGllc1twYWNrZXQgLSAxXS5yZWdfc2hpZnQpIFxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTc0OlxcdFxcdCBkd3hnbWFjMl9yb3V0ZV9wb3NzaWJpbGl0aWVzW3BhY2tldCAtIDFdLnJlZ19tYXNrO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNzUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTg0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxODU6c3RhdGljIHZvaWQgZHd4Z21hYzJfcHJvZ19tdGxfcnhfYWxnb3JpdGhtcyhzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTg2LVxcdFxcdFxcdFxcdFxcdCAgICB1MzIgcnhfYWxnKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTIwNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MjA3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3Byb2dfbXRsX3R4X2FsZ29yaXRobXMoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTIwOC1cXHRcXHRcXHRcXHRcXHQgICAgdTMyIHR4X2FsZylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0yNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI0NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfbXRsX3R4X3F1ZXVlX3dlaWdodChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI0Ni1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MjU0OnN0YXRpYyB2b2lkIGR3eGdtYWMyX21hcF9tdGxfdG9fZG1hKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgcXVldWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI1NS1cXHRcXHRcXHRcXHQgICAgdTMyIGNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMjcwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoyNzE6c3RhdGljIHZvaWQgZHd4Z21hYzJfY29uZmlnX2NicyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI3Mi1cXHRcXHRcXHRcXHRzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0yODktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjI5MDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9kdW1wX3JlZ3Moc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiAqcmVnX3NwYWNlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0yOTEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTI5OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6Mjk5OnN0YXRpYyBpbnQgZHd4Z21hYzJfaG9zdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzAwLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX2V4dHJhX3N0YXRzICp4KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTMzNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MzM2OnN0YXRpYyBpbnQgZHd4Z21hYzJfaG9zdF9tdGxfaXJxX3N0YXR1cyhzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTMzNy1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGNoYW4pXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzU1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzozNTY6c3RhdGljIHZvaWQgZHd4Z21hYzJfZmxvd19jdHJsKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1bnNpZ25lZCBpbnQgZHVwbGV4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0zNTctXFx0XFx0XFx0ICAgICAgIHVuc2lnbmVkIGludCBmYywgdW5zaWduZWQgaW50IHBhdXNlX3RpbWUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzc2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzozNzc6c3RhdGljIHZvaWQgZHd4Z21hYzJfcG10KHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1bnNpZ25lZCBsb25nIG1vZGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTM3OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzozOTU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMzk2LVxcdFxcdFxcdFxcdCAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDA4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo0MDk6c3RhdGljIHZvaWQgZHd4Z21hYzJfZ2V0X3VtYWNfYWRkcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDEwLVxcdFxcdFxcdFxcdCAgIHVuc2lnbmVkIGNoYXIgKmFkZHIsIHVuc2lnbmVkIGludCByZWdfbilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00MjctXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQyODpzdGF0aWMgaW50IGR3eGdtYWMyX3NldF9scGlfbW9kZShzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDI5LVxcdFxcdFxcdFxcdCBlbnVtIHN0bW1hY19scGlfbW9kZSBtb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQ1MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NDUyOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9lZWVfcGxzKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCBpbnQgbGluaylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDUzLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ2NTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfZWVlX3RpbWVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCBpbnQgbHMsIGludCB0dylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDY2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy00NzMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjQ3NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfbWNoYXNoKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1MzIgKm1jZmlsdGVyYml0cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNDc1LVxcdFxcdFxcdFxcdGludCBtY2JpdHNsb2cyKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQ5Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NDk3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9maWx0ZXIoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTQ5OC1cXHRcXHRcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTUzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTMyOlxcdGR3eGdtYWMyX3NldF9tY2hhc2goaW9hZGRyLCBtY19maWx0ZXIsIG1jYml0c2xvZzIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01MzMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTQxLVxcdFxcdG5ldGRldl9mb3JfZWFjaF91Y19hZGRyKGhhLCBkZXYpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTQyOlxcdFxcdFxcdGR3eGdtYWMyX3NldF91bWFjX2FkZHIoaHcsIGhhLVxcdTAwM2VhZGRyLCByZWcpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01NDMtXFx0XFx0XFx0cmVnKys7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTU0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1NTU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X21hY19sb29wYmFjayh2b2lkIF9faW9tZW0gKmlvYWRkciwgYm9vbCBlbmFibGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU1Ni17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTY2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo1Njc6c3RhdGljIGludCBkd3hnbWFjMl9yc3Nfd3JpdGVfcmVnKHZvaWQgX19pb21lbSAqaW9hZGRyLCBib29sIGlzX2tleSwgaW50IGlkeCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNTY4LVxcdFxcdFxcdFxcdCAgdTMyIHZhbClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01ODEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjU4MjpzdGF0aWMgaW50IGR3eGdtYWMyX3Jzc19jb25maWd1cmUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU4My1cXHRcXHRcXHRcXHQgIHN0cnVjdCBzdG1tYWNfcnNzICpjZmcsIHUzMiBudW1fcnhxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTU5Ny1cXHRmb3IgKGkgPSAwOyBpIFxcdTAwM2MgKEFSUkFZX1NJWkUoY2ZnLVxcdTAwM2VrZXkpIC8gc2l6ZW9mKHUzMikpOyBpKyspIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6NTk4OlxcdFxcdHJldCA9IGR3eGdtYWMyX3Jzc193cml0ZV9yZWcoaW9hZGRyLCB0cnVlLCBpLCBrZXlbaV0pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy01OTktXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy02MDMtXFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIEFSUkFZX1NJWkUoY2ZnLVxcdTAwM2V0YWJsZSk7IGkrKykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzo2MDQ6XFx0XFx0cmV0ID0gZHd4Z21hYzJfcnNzX3dyaXRlX3JlZyhpb2FkZHIsIGZhbHNlLCBpLCBjZmctXFx1MDAzZXRhYmxlW2ldKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNjA1LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtNjA5LVxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBudW1fcnhxOyBpKyspXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjYxMDpcXHRcXHRkd3hnbWFjMl9tYXBfbXRsX3RvX2RtYShodywgaSwgWEdNQUNfUURETUFDSCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTYxMS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYz0xMDU1PXN0YXRpYyBpbnQgZHd4Z21hYzNfcnhwX2NvbmZpZyh2b2lkIF9faW9tZW0gKmlvYWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMTQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMTQzOnN0YXRpYyBpbnQgZHd4Z21hYzJfZ2V0X21hY190eF90aW1lc3RhbXAoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHU2NCAqdHMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNDQte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjExNTc6dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE1OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE5OS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTIwMDpzdGF0aWMgaW50IGR3eGdtYWMyX2ZsZXhfcHBzX2NvbmZpZyh2b2lkIF9faW9tZW0gKmlvYWRkciwgaW50IGluZGV4LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMjAxLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3Qgc3RtbWFjX3Bwc19jZmcgKmNmZywgYm9vbCBlbmFibGUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI2My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI2NDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zYXJjX2NvbmZpZ3VyZSh2b2lkIF9faW9tZW0gKmlvYWRkciwgaW50IHZhbClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI2NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI3Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI3MzpzdGF0aWMgaW50IGR3eGdtYWMyX2ZpbHRlcl93YWl0KHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMjc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMjgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMjg0OnN0YXRpYyBpbnQgZHd4Z21hYzJfZmlsdGVyX3JlYWQoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBmaWx0ZXJfbm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyODUtXFx0XFx0XFx0XFx0dTggcmVnLCB1MzIgKmRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTI5MC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTI5MTpcXHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd2FpdChodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEyOTItXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzAxOlxcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl93YWl0KGh3KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMwMi1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMDgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzMDk6c3RhdGljIGludCBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoc3RydWN0IG1hY19kZXZpY2VfaW5mbyAqaHcsIHUzMiBmaWx0ZXJfbm8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMTAtXFx0XFx0XFx0XFx0IHU4IHJlZywgdTMyIGRhdGEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMxNS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTMxNjpcXHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd2FpdChodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMTctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzI4OlxcdHJldHVybiBkd3hnbWFjMl9maWx0ZXJfd2FpdChodyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzMjktfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzMwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzMxOnN0YXRpYyBpbnQgZHd4Z21hYzJfY29uZmlnX2wzX2ZpbHRlcihzdHJ1Y3QgbWFjX2RldmljZV9pbmZvICpodywgdTMyIGZpbHRlcl9ubyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTMzMi1cXHRcXHRcXHRcXHQgICAgIGJvb2wgZW4sIGJvb2wgaXB2NiwgYm9vbCBzYSwgYm9vbCBpbnYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM0Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTM0MzpcXHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfcmVhZChodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIFxcdTAwMjZ2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNDQtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzczLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxMzc0OlxcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIHZhbHVlKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTM3NS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzNzgtXFx0aWYgKHNhKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzNzk6XFx0XFx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3dyaXRlKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzX0FERFIwLCBtYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzODAtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzgyLVxcdH0gZWxzZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzODM6XFx0XFx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3dyaXRlKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0wzX0FERFIxLCBtYXRjaCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzODQtXFx0XFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzg4LVxcdGlmICghZW4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzODk6XFx0XFx0cmV0dXJuIGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzkwLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTEzOTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjEzOTQ6c3RhdGljIGludCBkd3hnbWFjMl9jb25maWdfbDRfZmlsdGVyKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1MzIgZmlsdGVyX25vLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xMzk1LVxcdFxcdFxcdFxcdCAgICAgYm9vbCBlbiwgYm9vbCB1ZHAsIGJvb2wgc2EsIGJvb2wgaW52LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0MDY6XFx0cmV0ID0gZHd4Z21hYzJfZmlsdGVyX3JlYWQoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNMNF9DVFJMLCBcXHUwMDI2dmFsdWUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDA3LVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQyOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQzMDpcXHRyZXQgPSBkd3hnbWFjMl9maWx0ZXJfd3JpdGUoaHcsIGZpbHRlcl9ubywgWEdNQUNfTDNMNF9DVFJMLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MzEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDMzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDM0OlxcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl9yZWFkKGh3LCBmaWx0ZXJfbm8sIFhHTUFDX0w0X0FERFIsIFxcdTAwMjZ2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0MzUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDQ1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDQ2OlxcdHJldCA9IGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MNF9BRERSLCB2YWx1ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0NDctXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDUwLVxcdGlmICghZW4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTE6XFx0XFx0cmV0dXJuIGR3eGdtYWMyX2ZpbHRlcl93cml0ZShodywgZmlsdGVyX25vLCBYR01BQ19MM0w0X0NUUkwsIDApO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDUyLVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE0NTUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTY6Y29uc3Qgc3RydWN0IHN0bW1hY19vcHMgZHd4Z21hYzIxMF9vcHMgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTc6XFx0LmNvcmVfaW5pdCA9IGR3eGdtYWMyX2NvcmVfaW5pdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ1ODpcXHQuaXJxX21vZGlmeSA9IGR3eGdtYWMyX2lycV9tb2RpZnksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NTk6XFx0LnVwZGF0ZV9jYXBzID0gZHd4Z21hYzJfdXBkYXRlX2NhcHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjA6XFx0LnNldF9tYWMgPSBkd3hnbWFjMl9zZXRfbWFjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDYxOlxcdC5yeF9pcGMgPSBkd3hnbWFjMl9yeF9pcGMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjI6XFx0LnJ4X3F1ZXVlX2VuYWJsZSA9IGR3eGdtYWMyX3J4X3F1ZXVlX2VuYWJsZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2MzpcXHQucnhfcXVldWVfcHJpbyA9IGR3eGdtYWMyX3J4X3F1ZXVlX3ByaW8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NjQ6XFx0LnR4X3F1ZXVlX3ByaW8gPSBkd3hnbWFjMl90eF9xdWV1ZV9wcmlvLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY1OlxcdC5yeF9xdWV1ZV9yb3V0aW5nID0gZHd4Z21hYzJfcnhfcXVldWVfcm91dGluZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ2NjpcXHQucHJvZ19tdGxfcnhfYWxnb3JpdGhtcyA9IGR3eGdtYWMyX3Byb2dfbXRsX3J4X2FsZ29yaXRobXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0Njc6XFx0LnByb2dfbXRsX3R4X2FsZ29yaXRobXMgPSBkd3hnbWFjMl9wcm9nX210bF90eF9hbGdvcml0aG1zLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY4OlxcdC5zZXRfbXRsX3R4X3F1ZXVlX3dlaWdodCA9IGR3eGdtYWMyX3NldF9tdGxfdHhfcXVldWVfd2VpZ2h0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDY5OlxcdC5tYXBfbXRsX3RvX2RtYSA9IGR3eGdtYWMyX21hcF9tdGxfdG9fZG1hLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDcwOlxcdC5jb25maWdfY2JzID0gZHd4Z21hYzJfY29uZmlnX2NicyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3MTpcXHQuZHVtcF9yZWdzID0gZHd4Z21hYzJfZHVtcF9yZWdzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDcyOlxcdC5ob3N0X2lycV9zdGF0dXMgPSBkd3hnbWFjMl9ob3N0X2lycV9zdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NzM6XFx0Lmhvc3RfbXRsX2lycV9zdGF0dXMgPSBkd3hnbWFjMl9ob3N0X210bF9pcnFfc3RhdHVzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc0OlxcdC5mbG93X2N0cmwgPSBkd3hnbWFjMl9mbG93X2N0cmwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0NzU6XFx0LnBtdCA9IGR3eGdtYWMyX3BtdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ3NjpcXHQuc2V0X3VtYWNfYWRkciA9IGR3eGdtYWMyX3NldF91bWFjX2FkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0Nzc6XFx0LmdldF91bWFjX2FkZHIgPSBkd3hnbWFjMl9nZXRfdW1hY19hZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDc4OlxcdC5zZXRfbHBpX21vZGUgPSBkd3hnbWFjMl9zZXRfbHBpX21vZGUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0Nzk6XFx0LnNldF9lZWVfdGltZXIgPSBkd3hnbWFjMl9zZXRfZWVlX3RpbWVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDgwOlxcdC5zZXRfZWVlX3BscyA9IGR3eGdtYWMyX3NldF9lZWVfcGxzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDgxLVxcdC5kZWJ1ZyA9IE5VTEwsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0ODI6XFx0LnNldF9maWx0ZXIgPSBkd3hnbWFjMl9zZXRfZmlsdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDgzLVxcdC5zYWZldHlfZmVhdF9jb25maWcgPSBkd3hnbWFjM19zYWZldHlfZmVhdF9jb25maWcsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4NS1cXHQuc2FmZXR5X2ZlYXRfZHVtcCA9IGR3eGdtYWMzX3NhZmV0eV9mZWF0X2R1bXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0ODY6XFx0LnNldF9tYWNfbG9vcGJhY2sgPSBkd3hnbWFjMl9zZXRfbWFjX2xvb3BiYWNrLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNDg3OlxcdC5yc3NfY29uZmlndXJlID0gZHd4Z21hYzJfcnNzX2NvbmZpZ3VyZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTQ4OC1cXHQucnhwX2NvbmZpZyA9IGR3eGdtYWMzX3J4cF9jb25maWcsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0ODk6XFx0LmdldF9tYWNfdHhfdGltZXN0YW1wID0gZHd4Z21hYzJfZ2V0X21hY190eF90aW1lc3RhbXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0OTA6XFx0LmZsZXhfcHBzX2NvbmZpZyA9IGR3eGdtYWMyX2ZsZXhfcHBzX2NvbmZpZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MTpcXHQuc2FyY19jb25maWd1cmUgPSBkd3hnbWFjMl9zYXJjX2NvbmZpZ3VyZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTQ5MjpcXHQuY29uZmlnX2wzX2ZpbHRlciA9IGR3eGdtYWMyX2NvbmZpZ19sM19maWx0ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE0OTM6XFx0LmNvbmZpZ19sNF9maWx0ZXIgPSBkd3hnbWFjMl9jb25maWdfbDRfZmlsdGVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNDk0LVxcdC5mcGVfbWFwX3ByZWVtcHRpb25fY2xhc3MgPSBkd3hnbWFjM19mcGVfbWFwX3ByZWVtcHRpb25fY2xhc3MsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM9MTUxMT1jb25zdCBzdHJ1Y3Qgc3RtbWFjX29wcyBkd3hsZ21hYzJfb3BzID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTEyOlxcdC5jb3JlX2luaXQgPSBkd3hnbWFjMl9jb3JlX2luaXQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTM6XFx0LmlycV9tb2RpZnkgPSBkd3hnbWFjMl9pcnFfbW9kaWZ5LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTE0OlxcdC5zZXRfbWFjID0gZHd4Z21hYzJfc2V0X21hYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUxNTpcXHQucnhfaXBjID0gZHd4Z21hYzJfcnhfaXBjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTE2LVxcdC5yeF9xdWV1ZV9lbmFibGUgPSBkd3hsZ21hYzJfcnhfcXVldWVfZW5hYmxlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTE3OlxcdC5yeF9xdWV1ZV9wcmlvID0gZHd4Z21hYzJfcnhfcXVldWVfcHJpbyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUxODpcXHQudHhfcXVldWVfcHJpbyA9IGR3eGdtYWMyX3R4X3F1ZXVlX3ByaW8sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MTk6XFx0LnJ4X3F1ZXVlX3JvdXRpbmcgPSBkd3hnbWFjMl9yeF9xdWV1ZV9yb3V0aW5nLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTIwOlxcdC5wcm9nX210bF9yeF9hbGdvcml0aG1zID0gZHd4Z21hYzJfcHJvZ19tdGxfcnhfYWxnb3JpdGhtcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyMTpcXHQucHJvZ19tdGxfdHhfYWxnb3JpdGhtcyA9IGR3eGdtYWMyX3Byb2dfbXRsX3R4X2FsZ29yaXRobXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjI6XFx0LnNldF9tdGxfdHhfcXVldWVfd2VpZ2h0ID0gZHd4Z21hYzJfc2V0X210bF90eF9xdWV1ZV93ZWlnaHQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjM6XFx0Lm1hcF9tdGxfdG9fZG1hID0gZHd4Z21hYzJfbWFwX210bF90b19kbWEsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjQ6XFx0LmNvbmZpZ19jYnMgPSBkd3hnbWFjMl9jb25maWdfY2JzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTI1OlxcdC5kdW1wX3JlZ3MgPSBkd3hnbWFjMl9kdW1wX3JlZ3MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MjY6XFx0Lmhvc3RfaXJxX3N0YXR1cyA9IGR3eGdtYWMyX2hvc3RfaXJxX3N0YXR1cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyNzpcXHQuaG9zdF9tdGxfaXJxX3N0YXR1cyA9IGR3eGdtYWMyX2hvc3RfbXRsX2lycV9zdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1Mjg6XFx0LmZsb3dfY3RybCA9IGR3eGdtYWMyX2Zsb3dfY3RybCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUyOTpcXHQucG10ID0gZHd4Z21hYzJfcG10LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTMwOlxcdC5zZXRfdW1hY19hZGRyID0gZHd4Z21hYzJfc2V0X3VtYWNfYWRkcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUzMTpcXHQuZ2V0X3VtYWNfYWRkciA9IGR3eGdtYWMyX2dldF91bWFjX2FkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MzI6XFx0LnNldF9scGlfbW9kZSA9IGR3eGdtYWMyX3NldF9scGlfbW9kZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUzMzpcXHQuc2V0X2VlZV90aW1lciA9IGR3eGdtYWMyX3NldF9lZWVfdGltZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1MzQ6XFx0LnNldF9lZWVfcGxzID0gZHd4Z21hYzJfc2V0X2VlZV9wbHMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1MzUtXFx0LmRlYnVnID0gTlVMTCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTUzNjpcXHQuc2V0X2ZpbHRlciA9IGR3eGdtYWMyX3NldF9maWx0ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1MzctXFx0LnNhZmV0eV9mZWF0X2NvbmZpZyA9IGR3eGdtYWMzX3NhZmV0eV9mZWF0X2NvbmZpZyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTM5LVxcdC5zYWZldHlfZmVhdF9kdW1wID0gZHd4Z21hYzNfc2FmZXR5X2ZlYXRfZHVtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0MDpcXHQuc2V0X21hY19sb29wYmFjayA9IGR3eGdtYWMyX3NldF9tYWNfbG9vcGJhY2ssXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjE1NDE6XFx0LnJzc19jb25maWd1cmUgPSBkd3hnbWFjMl9yc3NfY29uZmlndXJlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTQyLVxcdC5yeHBfY29uZmlnID0gZHd4Z21hYzNfcnhwX2NvbmZpZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0MzpcXHQuZ2V0X21hY190eF90aW1lc3RhbXAgPSBkd3hnbWFjMl9nZXRfbWFjX3R4X3RpbWVzdGFtcCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0NDpcXHQuZmxleF9wcHNfY29uZmlnID0gZHd4Z21hYzJfZmxleF9wcHNfY29uZmlnLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ1OlxcdC5zYXJjX2NvbmZpZ3VyZSA9IGR3eGdtYWMyX3NhcmNfY29uZmlndXJlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTQ2OlxcdC5jb25maWdfbDNfZmlsdGVyID0gZHd4Z21hYzJfY29uZmlnX2wzX2ZpbHRlcixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM6MTU0NzpcXHQuY29uZmlnX2w0X2ZpbHRlciA9IGR3eGdtYWMyX2NvbmZpZ19sNF9maWx0ZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1NDgtXFx0LmZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyA9IGR3eGdtYWMzX2ZwZV9tYXBfcHJlZW1wdGlvbl9jbGFzcyxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYy0xNTUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuYzoxNTUxOmludCBkd3hnbWFjMl9zZXR1cChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTE1NTIte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy05LSNpbmNsdWRlIFxcXCJjb21tb24uaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjEwOiNpbmNsdWRlIFxcXCJkd3hnbWFjMi5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxMjpzdGF0aWMgaW50IGR3eGdtYWMyX2dldF90eF9zdGF0dXMoc3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyAqeCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEzLVxcdFxcdFxcdFxcdCAgc3RydWN0IGRtYV9kZXNjICpwLCB2b2lkIF9faW9tZW0gKmlvYWRkcilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoyNjpzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9yeF9zdGF0dXMoc3RydWN0IHN0bW1hY19leHRyYV9zdGF0cyAqeCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI3LVxcdFxcdFxcdFxcdCAgc3RydWN0IGRtYV9kZXNjICpwKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy00OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjQ5OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF90eF9vd25lcihzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy01MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTUzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6NTQ6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3J4X293bmVyKHN0cnVjdCBkbWFfZGVzYyAqcCwgaW50IGRpc2FibGVfcnhfaWMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy01NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTYzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6NjQ6c3RhdGljIHUxNiBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdGNpKHN0cnVjdCBkbWFfZGVzYyAqcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTY1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNjgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzo2OTpzdGF0aWMgYm9vbCBkd3hnbWFjMl93cmJhY2tfZ2V0X3J4X3ZsYW5fdmFsaWQoc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtNzAte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy03OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjc5OnN0YXRpYyBpbnQgZHd4Z21hYzJfZ2V0X3J4X2ZyYW1lX2xlbihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGludCByeF9jb2UpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy04MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTgzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6ODQ6c3RhdGljIHZvaWQgZHd4Z21hYzJfZW5hYmxlX3R4X3RpbWVzdGFtcChzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy04NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTg4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6ODk6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfdHhfdGltZXN0YW1wX3N0YXR1cyhzdHJ1Y3QgZG1hX2Rlc2MgKnApXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy05MC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTkzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6OTQ6c3RhdGljIGlubGluZSB2b2lkIGR3eGdtYWMyX2dldF90aW1lc3RhbXAodm9pZCAqZGVzYywgdTMyIGF0cywgdTY0ICp0cylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTk1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTA0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTA1OnN0YXRpYyBpbnQgZHd4Z21hYzJfcnhfY2hlY2tfdGltZXN0YW1wKHZvaWQgKmRlc2MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMjQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxMjU6c3RhdGljIGludCBkd3hnbWFjMl9nZXRfcnhfdGltZXN0YW1wX3N0YXR1cyh2b2lkICpkZXNjLCB2b2lkICpuZXh0X2Rlc2MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xMjYtXFx0XFx0XFx0XFx0XFx0ICAgIHUzMiBhdHMpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEzMi1cXHRpZiAobGlrZWx5KHJkZXMzIFxcdTAwMjYgWEdNQUNfUkRFUzNfQ0RBKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjEzMzpcXHRcXHRyZXQgPSBkd3hnbWFjMl9yeF9jaGVja190aW1lc3RhbXAobmV4dF9kZXNjKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTEzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTM3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTM4OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2luaXRfcnhfZGVzYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGludCBkaXNhYmxlX3J4X2ljLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTM5LVxcdFxcdFxcdFxcdCAgdTggZGVzY3JpcHRvcl9tb2RlLCBpbnQgZW5kLCBpbnQgYmZzaXplKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTQwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjE0MTpcXHRkd3hnbWFjMl9zZXRfcnhfb3duZXIocCwgZGlzYWJsZV9yeF9pYyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xNDItfVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MTQ0OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2luaXRfdHhfZGVzYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHU4IGRlc2NyaXB0b3JfbW9kZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE0NS1cXHRcXHRcXHRcXHQgIGludCBlbmQpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjE1MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9wcmVwYXJlX3R4X2Rlc2Moc3RydWN0IGRtYV9kZXNjICpwLCBpbnQgaXNfZnMsIGludCBsZW4sXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xNTQtXFx0XFx0XFx0XFx0ICAgICBib29sIGNzdW1fZmxhZywgdTggZGVzY3JpcHRvcl9tb2RlLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0xOTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzoxOTI6c3RhdGljIHZvaWQgZHd4Z21hYzJfcHJlcGFyZV90c29fdHhfZGVzYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGludCBpc19mcyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTE5My1cXHRcXHRcXHRcXHRcXHQgaW50IGxlbjEsIGludCBsZW4yLCBib29sIHR4X293bixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjI5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjMwOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3JlbGVhc2VfdHhfZGVzYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHU4IGRlc2NyaXB0b3JfbW9kZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTIzMS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTIzNy1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjIzODpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfdHhfaWMoc3RydWN0IGRtYV9kZXNjICpwKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjM5LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjQyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjQzOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9tc3Moc3RydWN0IGRtYV9kZXNjICpwLCB1bnNpZ25lZCBpbnQgbXNzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjUxOnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9hZGRyKHN0cnVjdCBkbWFfZGVzYyAqcCwgZG1hX2FkZHJfdCBhZGRyKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjU2LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MjU3OnN0YXRpYyB2b2lkIGR3eGdtYWMyX2NsZWFyKHN0cnVjdCBkbWFfZGVzYyAqcClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI1OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI2NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI2NTpzdGF0aWMgaW50IGR3eGdtYWMyX2dldF9yeF9oYXNoKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTMyICpoYXNoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjY2LVxcdFxcdFxcdFxcdGVudW0gcGt0X2hhc2hfdHlwZXMgKnR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTI5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjI5MzpzdGF0aWMgdm9pZCBkd3hnbWFjMl9nZXRfcnhfaGVhZGVyX2xlbihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHVuc2lnbmVkIGludCAqbGVuKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjk0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMjk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6Mjk5OnN0YXRpYyB2b2lkIGR3eGdtYWMyX3NldF9zZWNfYWRkcihzdHJ1Y3QgZG1hX2Rlc2MgKnAsIGRtYV9hZGRyX3QgYWRkciwgYm9vbCBpc192YWxpZClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMwMC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjMwNTpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfc2FyYyhzdHJ1Y3QgZG1hX2Rlc2MgKnAsIHUzMiBzYXJjX3R5cGUpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMDYte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMDktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozMTA6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3ZsYW5fdGFnKHN0cnVjdCBkbWFfZGVzYyAqcCwgdTE2IHRhZywgdTE2IGlubmVyX3RhZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMxMS1cXHRcXHRcXHRcXHQgIHUzMiBpbm5lcl90eXBlKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zMzQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozMzU6c3RhdGljIHZvaWQgZHd4Z21hYzJfc2V0X3ZsYW4oc3RydWN0IGRtYV9kZXNjICpwLCB1MzIgdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMzNi17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jLTMzOS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM0MDpzdGF0aWMgdm9pZCBkd3hnbWFjMl9zZXRfdGJzKHN0cnVjdCBkbWFfZWRlc2MgKnAsIHUzMiBzZWMsIHUzMiBuc2VjKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzQxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmMtMzQ3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzQ4OmNvbnN0IHN0cnVjdCBzdG1tYWNfZGVzY19vcHMgZHd4Z21hYzIxMF9kZXNjX29wcyA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM0OTpcXHQudHhfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3R4X3N0YXR1cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MDpcXHQucnhfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3J4X3N0YXR1cyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1MTpcXHQuc2V0X3R4X293bmVyID0gZHd4Z21hYzJfc2V0X3R4X293bmVyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzUyOlxcdC5zZXRfcnhfb3duZXIgPSBkd3hnbWFjMl9zZXRfcnhfb3duZXIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTM6XFx0LmdldF9yeF92bGFuX3RjaSA9IGR3eGdtYWMyX3dyYmFja19nZXRfcnhfdmxhbl90Y2ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTQ6XFx0LmdldF9yeF92bGFuX3ZhbGlkID0gZHd4Z21hYzJfd3JiYWNrX2dldF9yeF92bGFuX3ZhbGlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzU1OlxcdC5nZXRfcnhfZnJhbWVfbGVuID0gZHd4Z21hYzJfZ2V0X3J4X2ZyYW1lX2xlbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM1NjpcXHQuZW5hYmxlX3R4X3RpbWVzdGFtcCA9IGR3eGdtYWMyX2VuYWJsZV90eF90aW1lc3RhbXAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTc6XFx0LmdldF90eF90aW1lc3RhbXBfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3R4X3RpbWVzdGFtcF9zdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTg6XFx0LmdldF9yeF90aW1lc3RhbXBfc3RhdHVzID0gZHd4Z21hYzJfZ2V0X3J4X3RpbWVzdGFtcF9zdGF0dXMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNTk6XFx0LmdldF90aW1lc3RhbXAgPSBkd3hnbWFjMl9nZXRfdGltZXN0YW1wLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzYwOlxcdC5zZXRfdHhfaWMgPSBkd3hnbWFjMl9zZXRfdHhfaWMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjE6XFx0LnByZXBhcmVfdHhfZGVzYyA9IGR3eGdtYWMyX3ByZXBhcmVfdHhfZGVzYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM2MjpcXHQucHJlcGFyZV90c29fdHhfZGVzYyA9IGR3eGdtYWMyX3ByZXBhcmVfdHNvX3R4X2Rlc2MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjM6XFx0LnJlbGVhc2VfdHhfZGVzYyA9IGR3eGdtYWMyX3JlbGVhc2VfdHhfZGVzYyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM2NDpcXHQuaW5pdF9yeF9kZXNjID0gZHd4Z21hYzJfaW5pdF9yeF9kZXNjLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY1OlxcdC5pbml0X3R4X2Rlc2MgPSBkd3hnbWFjMl9pbml0X3R4X2Rlc2MsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNjY6XFx0LnNldF9tc3MgPSBkd3hnbWFjMl9zZXRfbXNzLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY3OlxcdC5zZXRfYWRkciA9IGR3eGdtYWMyX3NldF9hZGRyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY4OlxcdC5jbGVhciA9IGR3eGdtYWMyX2NsZWFyLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzY5OlxcdC5nZXRfcnhfaGFzaCA9IGR3eGdtYWMyX2dldF9yeF9oYXNoLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzcwOlxcdC5nZXRfcnhfaGVhZGVyX2xlbiA9IGR3eGdtYWMyX2dldF9yeF9oZWFkZXJfbGVuLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2Rlc2NzLmM6MzcxOlxcdC5zZXRfc2VjX2FkZHIgPSBkd3hnbWFjMl9zZXRfc2VjX2FkZHIsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNzI6XFx0LnNldF9zYXJjID0gZHd4Z21hYzJfc2V0X3NhcmMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYzozNzM6XFx0LnNldF92bGFuX3RhZyA9IGR3eGdtYWMyX3NldF92bGFuX3RhZyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM3NDpcXHQuc2V0X3ZsYW4gPSBkd3hnbWFjMl9zZXRfdmxhbixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kZXNjcy5jOjM3NTpcXHQuc2V0X3RicyA9IGR3eGdtYWMyX3NldF90YnMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZGVzY3MuYy0zNzYtfTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jLTgtI2luY2x1ZGUgXFxcInN0bW1hYy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jOjk6I2luY2x1ZGUgXFxcImR3eGdtYWMyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmMtMTAtXFxuXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM5OjMyLjE5MTczODA0OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjM4NzA5NjMyNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGlnZ2luZyBpbnRvIHRoZSBEcml2ZXIgQ29kZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZXNlIGZpbGVzOiBgZHdtYWMtc29jZnBnYS5jYCwgYGR3eGdtYWMyX3B0cGAsIGFuZCBgaHdpZi5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgdGhlIGhhcmR3YXJlIGNvbnRleHQgZm9yIGBkd3hnbWFjMmAuIEl0J3MgYSBmYW1pbGlhciBpbnRlcmZhY2UgYnV0IEkgbmVlZCB0byBxdWlja2x5IHJlZnJlc2ggbXkgbWVtb3J5LlxuXG5IbW0sIHdoZXJlIGlzIGBkd3hnbWFjMmAgYWN0dWFsbHkgYmVpbmcgKnVzZWQqPyBJIG5lZWQgdG8gdHJhY2UgdGhpcyBiYWNrLiBUaGUgbW9zdCBkaXJlY3QgYXBwcm9hY2ggaXMgdG8gY2hlY2sgZm9yIGNhbGxzIHRvIGBkd3hnbWFjMl9zZXR1cGAgZnVuY3Rpb24g4oCTIHRoYXQnbGwgZ2l2ZSBtZSBhIHN0cm9uZyBzdGFydGluZyBwb2ludCBmb3IgdGhlIGRyaXZlciBpbml0aWFsaXphdGlvbiBwYXRoLiBBbHRlcm5hdGl2ZWx5LCBJIGNhbiBzZWFyY2ggZm9yIGluc3RhbmNlcyB3aGVyZSBgRFdYR01BQ2AgaHdpZiBlbnRyaWVzIGFyZSBiZWluZyBlbXBsb3llZCwgYXMgdGhhdCB3b3VsZCBzdWdnZXN0IGEgbW9yZSBhYnN0cmFjdCBpbnRlcmZhY2UuIEVpdGhlciBvZiB0aGVzZSBzaG91bGQgZ2V0IG1lIHRvIHRoZSByaWdodCBwbGFjZSB0byB1bmRlcnN0YW5kIHdoaWNoIGhhcmR3YXJlIGlzIGFjdHVhbGx5IGxldmVyYWdpbmcgdGhpcyBgZHd4Z21hYzJgIGZ1bmN0aW9uYWxpdHkuIExldCdzIHNlZSB3aGF0IHRoZSBjb2RlIHJldmVhbHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0NTAyLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MzYuMDYyNzA0MTk3WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozODgyMDQ3NzMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiU1RNTUFDX0RXWEdNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjc6I2lmbmRlZiBfX1NUTU1BQ19EV1hHTUFDMl9IX19cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjg6I2RlZmluZSBfX1NUTU1BQ19EV1hHTUFDMl9IX19cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oPTQ2OD1leHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyBkd3hnbWFjMjEwX2Rlc2Nfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NDcwOiNlbmRpZiAvKiBfX1NUTU1BQ19EV1hHTUFDMl9IX18gKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MzYuNDUwOTE0OThaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjU5ODAyNTg4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSBpbW1lZGlhdGUgdGhvdWdodCBwcm9jZXNzOlxuXG4qKkRpdmluZyBpbnRvIGBod2lmLmNgKipcblxuT2theSwgSSBuZWVkIHRvIGdldCBpbnRvIHRoZSBjb2RlLiBNeSBmaXJzdCBpbnN0aW5jdCBpcyB0byB6ZXJvIGluIG9uIGBod2lmLmNgLiBUaGF0J3Mgd2hlcmUgSSBzaG91bGQgYmUgbG9va2luZyBiYXNlZCBvbiB0aGUgY3VycmVudCBjb250ZXh0LiBBbmQgSSB0aGluayB0aGF0IGxpbmVzIDI1OCBhbmQgMjgwIGFyZSB0aGUgbW9zdCBsaWtlbHkgaG90c3BvdHMuIEkgbmVlZCB0byB0YWtlIGEgbG9vayBhdCB3aGF0J3MgZ29pbmcgb24gYXJvdW5kIHRob3NlIGxpbmUgbnVtYmVycy4gSSBleHBlY3QgdG8gYmUgYWJsZSB0byBxdWlja2x5IHplcm8gaW4gb24gdGhlIHJlbGV2YW50IGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1MDc2LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MzkuMDQ4OTQzODQxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg3NTMwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyNDUsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAyNDU6XFx0XFx0XFx0LnNldHVwID0gZHdtYWM0X3NldHVwLFxcbiAyNDY6XFx0XFx0XFx0LnF1aXJrcyA9IE5VTEwsXFxuIDI0NzpcXHRcXHR9LCB7XFxuIDI0ODpcXHRcXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQyxcXG4gMjQ5OlxcdFxcdFxcdC5taW5faWQgPSBEV1hHTUFDX0NPUkVfMl8xMCxcXG4gMjUwOlxcdFxcdFxcdC5kZXZfaWQgPSBEV1hHTUFDX0lELFxcbiAyNTE6XFx0XFx0XFx0LnJlZ3MgPSB7XFxuIDI1MjpcXHRcXHRcXHRcXHQucHRwX29mZiA9IFBUUF9YR01BQ19PRkZTRVQsXFxuIDI1MzpcXHRcXHRcXHRcXHQubW1jX29mZiA9IE1NQ19YR01BQ19PRkZTRVQsXFxuIDI1NDpcXHRcXHRcXHRcXHQuZXN0X29mZiA9IEVTVF9YR01BQ19PRkZTRVQsXFxuIDI1NTpcXHRcXHRcXHRcXHQuZnBlX3JlZyA9IFxcdTAwMjZkd3hnbWFjM19mcGVfcmVnLFxcbiAyNTY6XFx0XFx0XFx0fSxcXG4gMjU3OlxcdFxcdFxcdC5kZXNjID0gXFx1MDAyNmR3eGdtYWMyMTBfZGVzY19vcHMsXFxuIDI1ODpcXHRcXHRcXHQuZG1hID0gXFx1MDAyNmR3eGdtYWMyMTBfZG1hX29wcyxcXG4gMjU5OlxcdFxcdFxcdC5tYWMgPSBcXHUwMDI2ZHd4Z21hYzIxMF9vcHMsXFxuIDI2MDpcXHRcXHRcXHQudmxhbiA9IFxcdTAwMjZkd3hnbWFjMjEwX3ZsYW5fb3BzLFxcbiAyNjE6XFx0XFx0XFx0Lmh3dGltZXN0YW1wID0gXFx1MDAyNmR3eGdtYWMyX3B0cCxcXG4gMjYyOlxcdFxcdFxcdC5wdHAgPSBcXHUwMDI2c3RtbWFjX3B0cF9jbG9ja19vcHMsXFxuIDI2MzpcXHRcXHRcXHQubW9kZSA9IE5VTEwsXFxuIDI2NDpcXHRcXHRcXHQudGMgPSBcXHUwMDI2ZHdtYWM1MTBfdGNfb3BzLFxcbiAyNjU6XFx0XFx0XFx0Lm1tYyA9IFxcdTAwMjZkd3hnbWFjX21tY19vcHMsXFxuIDI2NjpcXHRcXHRcXHQuZXN0ID0gXFx1MDAyNmR3bWFjNTEwX2VzdF9vcHMsXFxuIDI2NzpcXHRcXHRcXHQuc2V0dXAgPSBkd3hnbWFjMl9zZXR1cCxcXG4gMjY4OlxcdFxcdFxcdC5xdWlya3MgPSBOVUxMLFxcbiAyNjk6XFx0XFx0fSwge1xcbiAyNzA6XFx0XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXFxuIDI3MTpcXHRcXHRcXHQubWluX2lkID0gRFdYTEdNQUNfQ09SRV8yXzAwLFxcbiAyNzI6XFx0XFx0XFx0LmRldl9pZCA9IERXWExHTUFDX0lELFxcbiAyNzM6XFx0XFx0XFx0LnJlZ3MgPSB7XFxuIDI3NDpcXHRcXHRcXHRcXHQucHRwX29mZiA9IFBUUF9YR01BQ19PRkZTRVQsXFxuIDI3NTpcXHRcXHRcXHRcXHQubW1jX29mZiA9IE1NQ19YR01BQ19PRkZTRVQsXFxuIDI3NjpcXHRcXHRcXHRcXHQuZXN0X29mZiA9IEVTVF9YR01BQ19PRkZTRVQsXFxuIDI3NzpcXHRcXHRcXHRcXHQuZnBlX3JlZyA9IFxcdTAwMjZkd3hnbWFjM19mcGVfcmVnLFxcbiAyNzg6XFx0XFx0XFx0fSxcXG4gMjc5OlxcdFxcdFxcdC5kZXNjID0gXFx1MDAyNmR3eGdtYWMyMTBfZGVzY19vcHMsXFxuIDI4MDpcXHRcXHRcXHQuZG1hID0gXFx1MDAyNmR3eGdtYWMyMTBfZG1hX29wcyxcXG4gMjgxOlxcdFxcdFxcdC5tYWMgPSBcXHUwMDI2ZHd4bGdtYWMyX29wcyxcXG4gMjgyOlxcdFxcdFxcdC52bGFuID0gXFx1MDAyNmR3eGxnbWFjMl92bGFuX29wcyxcXG4gMjgzOlxcdFxcdFxcdC5od3RpbWVzdGFtcCA9IFxcdTAwMjZkd3hnbWFjMl9wdHAsXFxuIDI4NDpcXHRcXHRcXHQucHRwID0gXFx1MDAyNnN0bW1hY19wdHBfY2xvY2tfb3BzLFxcbiAyODU6XFx0XFx0XFx0Lm1vZGUgPSBOVUxMLFxcbiAyODY6XFx0XFx0XFx0LnRjID0gXFx1MDAyNmR3bWFjNTEwX3RjX29wcyxcXG4gMjg3OlxcdFxcdFxcdC5tbWMgPSBcXHUwMDI2ZHd4Z21hY19tbWNfb3BzLFxcbiAyODg6XFx0XFx0XFx0LmVzdCA9IFxcdTAwMjZkd21hYzUxMF9lc3Rfb3BzLFxcbiAyODk6XFx0XFx0XFx0LnNldHVwID0gZHd4bGdtYWMyX3NldHVwLFxcbiAyOTA6XFx0XFx0fSxcXG4gMjkxOlxcdH07XFxuIDI5MjpcXHRcXG4gMjkzOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkgKlxcbiAyOTQ6XFx0c3RtbWFjX2h3aWZfZmluZChlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUsIHU4IHNucHN2ZXIsIHU4IGRldl9pZClcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6MzkuMDQ5MDMzMDcxWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjU4MDUxMDEzODYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBhbmFseXppbmcgdGhpcyBjb2RlOlxuXG4qKkludmVzdGlnYXRpbmcgU1RNTUFDIERyaXZlciBDb21wYXRpYmlsaXR5KipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hpY2ggZHJpdmVycyBhbmQgcGxhdGZvcm1zIGFyZSBwcm9iaW5nIHRoZSBTVE1NQUMgRXRoZXJuZXQgZHJpdmVyIHdpdGggdGhvc2Ugc3BlY2lmaWMgRGlnaXRhbCBXb3JsZCAoRFcpIE1BQyBjb3JlIElEczogYERXTUFDX0NPUkVfWEdNQUNgIGFuZCBgZHd4Z21hYzJgLiBNeSBpbnN0aW5jdCBpcyB0byBmaXJzdCBmb2N1cyBvbiB0aG9zZSBpZGVudGlmaWVycyBiZWNhdXNlIHRoZXkncmUgdGhlIGRpcmVjdCBob29rcywgdGhlIFwia2V5c1wiIGlmIHlvdSB3aWxsLlxuXG5UaGVuLCB0byBicm9hZGVuIHRoZSBzZWFyY2ggYW5kIGVuc3VyZSBJJ20gZ2V0dGluZyBhIGNvbXBsZXRlIHBpY3R1cmUsIEkgbmVlZCB0byBsb29rIGJleW9uZCB0aG9zZSBleGFjdCBpZGVudGlmaWVycy4gU28sIEknbGwgYnJvYWRlbiBteSBzZWFyY2ggd2l0aGluIHRoZSBrZXJuZWwgc291cmNlIHRvIGluY2x1ZGUgcmVsYXRlZCBpZGVudGlmaWVycyB0aGF0IFNUTU1BQyBtaWdodCBiZSB1c2luZywgc3VjaCBhcyB0aGUgbW9yZSBnZW5lcmljIGBEV1hHTUFDYCBhbmQgYERXWExHTUFDYC4gVGhpcyBleHBhbmRlZCBzZWFyY2ggc2hvdWxkIGFsbG93IG1lIHRvIGNhdGNoIGFueSBwb3RlbnRpYWwgdmFyaWF0aW9ucyBpbiBuYW1pbmcgY29udmVudGlvbnMgb3IgYWxpYXNlcyB0aGUgY29kZSBtaWdodCBiZSBlbXBsb3lpbmcuIEl0J3MgYWJvdXQgYmVpbmcgdGhvcm91Z2ggYW5kIG5vdCBtaXNzaW5nIGFueSBjb25uZWN0aW9ucy4gSSBuZWVkIHRvIHNlZSB0aGUgYmlnZ2VyIHBpY3R1cmUgb2Ygd2hlcmUgU1RNTUFDIGlzIGJlaW5nIHVzZWQgd2l0aCB0aGlzIHR5cGUgb2YgTUFDIGNvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2MjAzLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOTo0NC44NTQxMzg1MDdaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MDM3OTA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIkRXWEdNQUN8RFdYTEdNQUNcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTQwLSNkZWZpbmUgRFdNQUNfQ09SRV81XzIwXFx0XFx0MHg1MlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oOjQxOiNkZWZpbmUgRFdYR01BQ19DT1JFXzJfMTBcXHQweDIxXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NDI6I2RlZmluZSBEV1hHTUFDX0NPUkVfMl8yMFxcdDB4MjJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0MzojZGVmaW5lIERXWExHTUFDX0NPUkVfMl8wMFxcdDB4MjBcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00NS0vKiBEZXZpY2UgSUQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo0NjojZGVmaW5lIERXWEdNQUNfSURcXHRcXHQweDc2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg6NDc6I2RlZmluZSBEV1hMR01BQ19JRFxcdFxcdDB4MjdcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaC00OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjc6I2lmbmRlZiBfX1NUTU1BQ19EV1hHTUFDMl9IX19cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oOjg6I2RlZmluZSBfX1NUTU1BQ19EV1hHTUFDMl9IX19cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oLTktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMi5oPTQ2OD1leHRlcm4gY29uc3Qgc3RydWN0IHN0bW1hY19kZXNjX29wcyBkd3hnbWFjMjEwX2Rlc2Nfb3BzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmgtNDY5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmg6NDcwOiNlbmRpZiAvKiBfX1NUTU1BQ19EV1hHTUFDMl9IX18gKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2RtYS5jPTM2Mj1zdGF0aWMgaW50IGR3eGdtYWMyX2dldF9od19mZWF0dXJlKHZvaWQgX19pb21lbSAqaW9hZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfZG1hLmMtMzkyLVxcdGRtYV9jYXAtXFx1MDAzZW1icHNfMTAwMCA9IChod19jYXAgXFx1MDAyNiBYR01BQ19IV0ZFQVRfR01JSVNFTCkgXFx1MDAzZVxcdTAwM2UgMTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kbWEuYzozOTM6XFx0aWYgKGRtYV9jYXAtXFx1MDAzZW1icHNfMTAwMCBcXHUwMDI2XFx1MDAyNiBwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV1hHTUFDX0NPUkVfMl8yMClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9kbWEuYy0zOTQtXFx0XFx0ZG1hX2NhcC1cXHUwMDNlbWJwc18xMF8xMDAgPSAxO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4bGdtYWMyLmgtNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hsZ21hYzIuaDo3OiNpZm5kZWYgX19TVE1NQUNfRFdYTEdNQUMyX0hfX1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oOjg6I2RlZmluZSBfX1NUTU1BQ19EV1hMR01BQzJfSF9fXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4bGdtYWMyLmgtOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oLTIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGxnbWFjMi5oOjIyOiNlbmRpZiAvKiBfX1NUTU1BQ19EV1hMR01BQzJfSF9fICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM9MTExPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RtbWFjX2h3aWZfZW50cnkge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0OC1cXHRcXHQuY29yZV90eXBlID0gRFdNQUNfQ09SRV9YR01BQyxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjQ5OlxcdFxcdC5taW5faWQgPSBEV1hHTUFDX0NPUkVfMl8xMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjUwOlxcdFxcdC5kZXZfaWQgPSBEV1hHTUFDX0lELFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNTEtXFx0XFx0LnJlZ3MgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjcwLVxcdFxcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNzE6XFx0XFx0Lm1pbl9pZCA9IERXWExHTUFDX0NPUkVfMl8wMCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjcyOlxcdFxcdC5kZXZfaWQgPSBEV1hMR01BQ19JRCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjczLVxcdFxcdC5yZWdzID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz03Mj1zdGF0aWMgdm9pZCBzdG1tYWNfeGdtYWMyX2MyMl9mb3JtYXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBpbnQgcGh5YWRkcixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNzYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzo3NzpcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzYyBEV1hHTUFDX0NPUkVfMl8yMCkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNzgtXFx0XFx0LyogVW50aWwgdmVyIDIuMjAgWEdNQUMgZG9lcyBub3Qgc3VwcG9ydCBDMjIgYWRkciBcXHUwMDNlPSA0LiBUaG9zZVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0xMzI9c3RhdGljIGludCBzdG1tYWNfeGdtYWMyX21kaW9fcmVhZF9jMjIoc3RydWN0IG1paV9idXMgKmJ1cywgaW50IHBoeWFkZHIsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTEzOC1cXHQvKiBVbnRpbCB2ZXIgMi4yMCBYR01BQyBkb2VzIG5vdCBzdXBwb3J0IEMyMiBhZGRyIFxcdTAwM2U9IDQgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjEzOTpcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzYyBEV1hHTUFDX0NPUkVfMl8yMCBcXHUwMDI2XFx1MDAyNlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtMTQwLVxcdCAgICBwaHlhZGRyIFxcdTAwM2UgTUlJX1hHTUFDX01BWF9DMjJBRERSKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz0xOTU9c3RhdGljIGludCBzdG1tYWNfeGdtYWMyX21kaW9fd3JpdGVfYzIyKHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBwaHlhZGRyLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy0yMDEtXFx0LyogVW50aWwgdmVyIDIuMjAgWEdNQUMgZG9lcyBub3Qgc3VwcG9ydCBDMjIgYWRkciBcXHUwMDNlPSA0ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYzoyMDI6XFx0aWYgKHByaXYtXFx1MDAzZXN5bm9wc3lzX2lkIFxcdTAwM2MgRFdYR01BQ19DT1JFXzJfMjAgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jLTIwMy1cXHQgICAgcGh5YWRkciBcXHUwMDNlIE1JSV9YR01BQ19NQVhfQzIyQUREUilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTk1PWludCBzdG1tYWNfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjI3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NjI4OlxcdFxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNjIERXWEdNQUNfQ09SRV8yXzIwKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02MjktXFx0XFx0XFx0LyogUmlnaHQgbm93IG9ubHkgQzIyIHBoeXMgYXJlIHN1cHBvcnRlZCAqL1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOTo0NC45MDMxODE0NTVaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MzQwMTMwNjE2NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMuXG5cbioqRXhhbWluaW5nIHRoZSBkd21hYy1zb2NmcGdhIERyaXZlcioqXG5cbkFscmlnaHQsIHNvIHRoZSB0YXNrIGF0IGhhbmQgaXMgdG8gdW5kZXJzdGFuZCB0aGUgcm9sZSBvZiBgZHdtYWMtc29jZnBnYS5jYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgcHJlY2lzZWx5IHdoYXQgdGhpcyBkcml2ZXIgKmRvZXMqIGluIHRoZSBncmFuZCBzY2hlbWUgb2YgdGhpbmdzLiBTcGVjaWZpY2FsbHksIGhvdyBkb2VzIGl0IGZpdCBpbnRvIHRoZSBicm9hZGVyIEV0aGVybmV0IGRyaXZlciBlY29zeXN0ZW0g4oCTIHdoYXQncyBpdHMgcmVsYXRpb25zaGlwIHdpdGggYHN0bW1hY2A/IFRoYXQncyB0aGUgY29yZSBxdWVzdGlvbi4gVG8gZ2V0IGEgaGFuZGxlIG9uIHRoaXMsIG15IG5leHQgc3RlcCBpcyBjbGVhcjogSSBuZWVkIHRvIGdldCBteSBleWVzIG9uIHRoZSBzb3VyY2UgY29kZSBvZiBgZHdtYWMtc29jZnBnYS5jYC4gSSdsbCBkZWx2ZSBpbnRvIHRoZSBjb2RlIHRvIHRyYWNlIHRoZSBpbnRlcmFjdGlvbnMsIGRlcGVuZGVuY2llcywgYW5kIGFueSBrZXkgY29uZmlndXJhdGlvbiBhc3BlY3RzIHRoYXQgc2hlZCBsaWdodCBvbiBob3cgaXQgY29tbXVuaWNhdGVzIGFuZCBpbnRlZ3JhdGVzIHdpdGggdGhlIGBzdG1tYWNgIGZyYW1ld29yay4gVW5kZXJzdGFuZGluZyB0aGUgY29kZSdzIHN0cnVjdHVyZSBhbmQgdGhlIHNwZWNpZmljIGNhbGxzIGl0IG1ha2VzIHdpbGwgaWxsdW1pbmF0ZSBpdHMgZnVuY3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI4NjI3LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6NDguMzA0NDg5NzUxWiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExODI0MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0Ly8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0LyogQ29weXJpZ2h0IEFsdGVyYSBDb3Jwb3JhdGlvbiAoQykgMjAxNC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cXG4gICAzOlxcdCAqXFxuICAgNDpcXHQgKiBBZG9wdGVkIGZyb20gZHdtYWMtc3RpLmNcXG4gICA1OlxcdCAqL1xcbiAgIDY6XFx0XFxuICAgNzpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvbWZkL2FsdGVyYS1zeXNtZ3IuaFxcdTAwM2VcXG4gICA4OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9jbG9ja3NvdXJjZV9pZHMuaFxcdTAwM2VcXG4gICA5OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZi5oXFx1MDAzZVxcbiAgMTA6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L29mX2FkZHJlc3MuaFxcdTAwM2VcXG4gIDExOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9vZl9uZXQuaFxcdTAwM2VcXG4gIDEyOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9waHkuaFxcdTAwM2VcXG4gIDEzOlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZWdtYXAuaFxcdTAwM2VcXG4gIDE0OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9tZGlvL21kaW8tcmVnbWFwLmhcXHUwMDNlXFxuICAxNTpcXHQjaW5jbHVkZSBcXHUwMDNjbGludXgvcGNzLWx5bnguaFxcdTAwM2VcXG4gIDE2OlxcdCNpbmNsdWRlIFxcdTAwM2NsaW51eC9yZXNldC5oXFx1MDAzZVxcbiAgMTc6XFx0I2luY2x1ZGUgXFx1MDAzY2xpbnV4L3N0bW1hYy5oXFx1MDAzZVxcbiAgMTg6XFx0XFxuICAxOTpcXHQjaW5jbHVkZSBcXFwiZHd4Z21hYzIuaFxcXCJcXG4gIDIwOlxcdCNpbmNsdWRlIFxcXCJzdG1tYWMuaFxcXCJcXG4gIDIxOlxcdCNpbmNsdWRlIFxcXCJzdG1tYWNfcGxhdGZvcm0uaFxcXCJcXG4gIDIyOlxcdCNpbmNsdWRlIFxcXCJzdG1tYWNfcHRwLmhcXFwiXFxuICAyMzpcXHRcXG4gIDI0OlxcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QSFlTRUxfRU5VTV9HTUlJX01JSSAweDBcXG4gIDI1OlxcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QSFlTRUxfRU5VTV9SR01JSSAweDFcXG4gIDI2OlxcdCNkZWZpbmUgU1lTTUdSX0VNQUNHUlBfQ1RSTF9QSFlTRUxfRU5VTV9STUlJIDB4MlxcbiAgMjc6XFx0I2RlZmluZSBTWVNNR1JfRU1BQ0dSUF9DVFJMX1BIWVNFTF9XSURUSCAyXFxuICAyODpcXHQjZGVmaW5lIFNZU01HUl9FTUFDR1JQX0NUUkxfUEhZU0VMX01BU0sgMHgwMDAwMDAwM1xcbiAgMjk6XFx0I2RlZmluZSBTWVNNR1JfRU1BQ0dSUF9DVFJMX1BUUF9SRUZfQ0xLX01BU0sgMHgwMDAwMDAxMFxcbiAgMzA6XFx0I2RlZmluZSBTWVNNR1JfR0VOMTBfRU1BQ0dSUF9DVFJMX1BUUF9SRUZfQ0xLX01BU0sgMHgwMDAwMDEwMFxcbiAgMzE6XFx0XFxuICAzMjpcXHQjZGVmaW5lIFNZU01HUl9GUEdBR1JQX01PRFVMRV9SRUcgIDB4MDAwMDAwMjhcXG4gIDMzOlxcdCNkZWZpbmUgU1lTTUdSX0ZQR0FHUlBfTU9EVUxFX0VNQUMgMHgwMDAwMDAwNFxcbiAgMzQ6XFx0I2RlZmluZSBTWVNNR1JfRlBHQUlOVEZfRU1BQ19SRUdcXHQweDAwMDAwMDcwXFxuICAzNTpcXHQjZGVmaW5lIFNZU01HUl9GUEdBSU5URl9FTUFDX0JJVFxcdDB4MVxcbiAgMzY6XFx0XFxuICAzNzpcXHQjZGVmaW5lIEVNQUNfU1BMSVRURVJfQ1RSTF9SRUdcXHRcXHRcXHQweDBcXG4gIDM4OlxcdCNkZWZpbmUgRU1BQ19TUExJVFRFUl9DVFJMX1NQRUVEX01BU0tcXHRcXHQweDNcXG4gIDM5OlxcdCNkZWZpbmUgRU1BQ19TUExJVFRFUl9DVFJMX1NQRUVEXzEwXFx0XFx0MHgyXFxuICA0MDpcXHQjZGVmaW5lIEVNQUNfU1BMSVRURVJfQ1RSTF9TUEVFRF8xMDBcXHRcXHQweDNcXG4gIDQxOlxcdCNkZWZpbmUgRU1BQ19TUExJVFRFUl9DVFJMX1NQRUVEXzEwMDBcXHRcXHQweDBcXG4gIDQyOlxcdFxcbiAgNDM6XFx0I2RlZmluZSBTR01JSV9BREFQVEVSX0NUUkxfUkVHXFx0XFx0MHgwMFxcbiAgNDQ6XFx0I2RlZmluZSBTR01JSV9BREFQVEVSX0VOQUJMRVxcdFxcdDB4MDAwMFxcbiAgNDU6XFx0I2RlZmluZSBTR01JSV9BREFQVEVSX0RJU0FCTEVcXHRcXHQweDAwMDFcXG4gIDQ2OlxcdFxcbiAgNDc6XFx0I2RlZmluZSBTTVRHX01ESU9fQUREUlxcdFxcdDB4MTVcXG4gIDQ4OlxcdCNkZWZpbmUgU01UR19UU0NfV09SRDBcXHRcXHQweENcXG4gIDQ5OlxcdCNkZWZpbmUgU01UR19UU0NfV09SRDFcXHRcXHQweERcXG4gIDUwOlxcdCNkZWZpbmUgU01UR19UU0NfV09SRDJcXHRcXHQweEVcXG4gIDUxOlxcdCNkZWZpbmUgU01UR19UU0NfV09SRDNcXHRcXHQweEZcXG4gIDUyOlxcdCNkZWZpbmUgU01UR19UU0NfU0hJRlRcXHRcXHQxNlxcbiAgNTM6XFx0XFxuICA1NDpcXHRzdHJ1Y3Qgc29jZnBnYV9kd21hYztcXG4gIDU1OlxcdHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyB7XFxuICA1NjpcXHRcXHRpbnQgKCpzZXRfcGh5X21vZGUpKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hY19wcml2LFxcbiAgNTc6XFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBkZXZpY2UgKmRldik7XFxuICA1ODpcXHRcXHR2b2lkICgqc2V0dXBfcGxhdF9kYXQpKHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hY19wcml2KTtcXG4gIDU5OlxcdH07XFxuICA2MDpcXHRcXG4gIDYxOlxcdHN0cnVjdCBzb2NmcGdhX2R3bWFjIHtcXG4gIDYyOlxcdFxcdHUzMlxcdHJlZ19vZmZzZXQ7XFxuICA2MzpcXHRcXHR1MzJcXHRyZWdfc2hpZnQ7XFxuICA2NDpcXHRcXHRzdHJ1Y3QgcGxhdF9zdG1tYWNlbmV0X2RhdGEgKnBsYXRfZGF0O1xcbiAgNjU6XFx0XFx0c3RydWN0IHJlZ21hcCAqc3lzX21ncl9iYXNlX2FkZHI7XFxuICA2NjpcXHRcXHRzdHJ1Y3QgcmVzZXRfY29udHJvbCAqc3RtbWFjX3JzdDtcXG4gIDY3OlxcdFxcdHN0cnVjdCByZXNldF9jb250cm9sICpzdG1tYWNfb2NwX3JzdDtcXG4gIDY4OlxcdFxcdHZvaWQgX19pb21lbSAqc3BsaXR0ZXJfYmFzZTtcXG4gIDY5OlxcdFxcdHZvaWQgX19pb21lbSAqdHNlX3Bjc19iYXNlO1xcbiAgNzA6XFx0XFx0dm9pZCBfX2lvbWVtICpzZ21paV9hZGFwdGVyX2Jhc2U7XFxuICA3MTpcXHRcXHRib29sIGYyaF9wdHBfcmVmX2NsaztcXG4gIDcyOlxcdFxcdGNvbnN0IHN0cnVjdCBzb2NmcGdhX2R3bWFjX29wcyAqb3BzO1xcbiAgNzM6XFx0fTtcXG4gIDc0OlxcdFxcbiAgNzU6XFx0c3RhdGljIHBoeV9pbnRlcmZhY2VfdCBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbiAgNzY6XFx0e1xcbiAgNzc6XFx0XFx0cmV0dXJuIGR3bWFjLVxcdTAwM2VwbGF0X2RhdC1cXHUwMDNlcGh5X2ludGVyZmFjZTtcXG4gIDc4OlxcdH1cXG4gIDc5OlxcdFxcbiAgODA6XFx0c3RhdGljIHZvaWQgc29jZnBnYV9zZ21paV9jb25maWcoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjLCBib29sIGVuYWJsZSlcXG4gIDgxOlxcdHtcXG4gIDgyOlxcdFxcdHUxNiB2YWwgPSBlbmFibGUgPyBTR01JSV9BREFQVEVSX0VOQUJMRSA6IFNHTUlJX0FEQVBURVJfRElTQUJMRTtcXG4gIDgzOlxcdFxcbiAgODQ6XFx0XFx0d3JpdGV3KHZhbCwgZHdtYWMtXFx1MDAzZXNnbWlpX2FkYXB0ZXJfYmFzZSArIFNHTUlJX0FEQVBURVJfQ1RSTF9SRUcpO1xcbiAgODU6XFx0fVxcbiAgODY6XFx0XFxuICA4NzpcXHRzdGF0aWMgdm9pZCBzb2NmcGdhX2R3bWFjX2ZpeF9tYWNfc3BlZWQodm9pZCAqYnNwX3ByaXYsXFxuICA4ODpcXHRcXHRcXHRcXHRcXHRcXHRwaHlfaW50ZXJmYWNlX3QgaW50ZXJmYWNlLCBpbnQgc3BlZWQsXFxuICA4OTpcXHRcXHRcXHRcXHRcXHRcXHR1bnNpZ25lZCBpbnQgbW9kZSlcXG4gIDkwOlxcdHtcXG4gIDkxOlxcdFxcdHN0cnVjdCBzb2NmcGdhX2R3bWFjICpkd21hYyA9IChzdHJ1Y3Qgc29jZnBnYV9kd21hYyAqKWJzcF9wcml2O1xcbiAgOTI6XFx0XFx0dm9pZCBfX2lvbWVtICpzZ21paV9hZGFwdGVyX2Jhc2UgPSBkd21hYy1cXHUwMDNlc2dtaWlfYWRhcHRlcl9iYXNlO1xcbiAgOTM6XFx0XFx0cGh5X2ludGVyZmFjZV90IHBoeW1vZGUgPSBzb2NmcGdhX2dldF9wbGF0X3BoeW1vZGUoZHdtYWMpO1xcbiAgOTQ6XFx0XFx0dm9pZCBfX2lvbWVtICpzcGxpdHRlcl9iYXNlID0gZHdtYWMtXFx1MDAzZXNwbGl0dGVyX2Jhc2U7XFxuICA5NTpcXHRcXHR1MzIgdmFsO1xcbiAgOTY6XFx0XFxuICA5NzpcXHRcXHRpZiAoc2dtaWlfYWRhcHRlcl9iYXNlKVxcbiAgOTg6XFx0XFx0XFx0c29jZnBnYV9zZ21paV9jb25maWcoZHdtYWMsIGZhbHNlKTtcXG4gIDk5OlxcdFxcbiAxMDA6XFx0XFx0aWYgKHNwbGl0dGVyX2Jhc2UpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6NDguMzA0NjA5ODIxWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjc0MzYwNDI4MDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBTVE1NQUMgRHJpdmVyIFBhdGNoKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBGaXJzdCwgdGhpcyBwYXRjaCBhZmZlY3RzIHRoZSBBbHRlcmEgU09DRlBHQSBwbGF0Zm9ybSwgc3BlY2lmaWNhbGx5IHRoZSBgZHdtYWMtc29jZnBnYS5jYCBmaWxlLiBUaGlzIHRlbGxzIG1lIHdlJ3JlIGRlYWxpbmcgd2l0aCBhbiBBUk0gb3IgQVJNNjQtYmFzZWQgZGV2aWNlIHRoYXQgcmVsaWVzIG9uIGEgRGV2aWNlIFRyZWUuIEJ1dCB3aGF0J3MgYWN0dWFsbHkgKmNoYW5nZWQqIGluIHRoZSBwYXRjaD8gTGV0J3MgdHJhY2UgaXQgdGhyb3VnaCB0aGUgZmlsZXMuXG5cbiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jYDogIEkgc2VlIGBzdG1tYWNfbWFjX2lycV9tb2RpZnlgIGJlaW5nIGNhbGxlZCB0byBkaXNhYmxlIGFuZCB0aGVuIHJlLWVuYWJsZSB0aGUgdGltZXN0YW1wIGludGVycnVwdCBpbiBgc210Z19jcm9zc3RzdGFtcCgpYC4gIEludGVyZXN0aW5nLlxuXG4qICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyLmhgOiBUaGlzIGRlZmluZXMgdGhlIGRlZmF1bHQgaW50ZXJydXB0IGVuYWJsZSBtYXNrLCBgWEdNQUNfSU5UX0RFRkFVTFRfRU5gLiBJdCBpbmNsdWRlcyB0aW1lc3RhbXAtcmVsYXRlZCBpbnRlcnJ1cHRzLlxuXG4qICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3eGdtYWMyX2NvcmUuY2A6IEEgbmV3IGZ1bmN0aW9uLCBgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCgpYCwgaGFzIGJlZW4gYWRkZWQuICBUaGlzIGlzIGEgc2lnbmlmaWNhbnQgY2hhbmdlLCBsaWtlbHkgdGhlIGNvcmUgb2YgdGhlIHRpbWVzdGFtcCBmdW5jdGlvbmFsaXR5LlxuXG4qICAgYGRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuY2A6IFRoaXMgaXMgd2hlcmUgdGhlIGludGVyZmFjZSB0YWJsZSAoYC5od3RpbWVzdGFtcGApIGlzIHVwZGF0ZWQgZm9yIGBEV01BQ19DT1JFX1hHTUFDYCBkZXZpY2VzLiAgQ3J1Y2lhbGx5LCBpdCBzd2l0Y2hlcyBmcm9tIGBzdG1tYWNfcHRwYCB0byBgZHd4Z21hYzJfcHRwYC4gVGhpcyBpbXBsaWVzIGEgZnVuZGFtZW50YWwgc2hpZnQgaW4gaG93IGhhcmR3YXJlIHRpbWVzdGFtcGluZyBpcyBoYW5kbGVkIGZvciB0aGVzZSBYR01BQyBjb3Jlcy4gIFdlJ3JlIGdvaW5nIGZyb20gYSBnZW5lcmljIFBUUCBpbXBsZW1lbnRhdGlvbiB0byBhIG1vcmUgc3BlY2lhbGl6ZWQgYGR3eGdtYWMyYCBvbmUuXG5cbiogICBgZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oYDogSnVzdCBhbiBleHRlcm5hbCBkZWNsYXJhdGlvbiBvZiB0aGUgbmV3IGBkd3hnbWFjMl9wdHBgLiBFeHBlY3RlZC5cblxuKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuY2A6IFRoZSBkZWZpbml0aW9uIG9mIGBkd3hnbWFjMl9wdHBgIGlzIHRoZSBoZWFydCBvZiB0aGUgY2hhbmdlcy4gIEl0J3MgYSBzdHJ1Y3R1cmUgY29udGFpbmluZyBhbGwgdGhlIGhhcmR3YXJlIHRpbWVzdGFtcGluZyBmdW5jdGlvbnMgc3BlY2lmaWMgdG8gdGhpcyBuZXcgaW1wbGVtZW50YXRpb24uIFRoZSBuZXcgc3RydWN0dXJlIGluY2x1ZGVzIGNhbGxiYWNrcyBmb3IgY29uZmlndXJpbmcgdGhlIGhhcmR3YXJlLCBoYW5kbGluZyBzdWItc2Vjb25kIGluY3JlbWVudCwgYW5kIGFkanVzdGluZyBzeXN0ZW0gdGltZS5cblxuKiAgIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmhgOiBUaGUgcHJvdG90eXBlIGZvciB0aGUgbmV3IGBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0YCBpcyBkZWZpbmVkIGhlcmUuXG5cblNvLCB0aGlzIHBhdGNoIGlzIGNsZWFybHkgYWJvdXQgcmVmaW5pbmcgaGFyZHdhcmUgdGltZXN0YW1waW5nIHN1cHBvcnQgZm9yIHRoZSBYR01BQyBjb3JlIHdpdGhpbiB0aGUgU1RNTUFDIGRyaXZlci4gTm93LCB0aGUgYmlnIHF1ZXN0aW9uIGlzLCBjYW4gdGhpcyBldmVuICp3b3JrKiBpbiBhIHZpcnR1YWxpemVkIGVudmlyb25tZW50PyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiBTVE1NQUMsIGVzcGVjaWFsbHkgRFdYR01BQywgcmVsaWVzIG9uIHNwZWNpZmljIGhhcmR3YXJlIGZlYXR1cmVzLiBJcyBpdCBhIHN0cmljdCBoYXJkd2FyZSBkZXZpY2U/XG5cbkkgbmVlZCB0byBxdWlja2x5IGNoZWNrIGlmIFFFTVUgZW11bGF0ZXMgU1RNTUFDIG9yIGFueSBvZiB0aGUgRFdNQUMgb3IgRFdYR01BQyBkZXZpY2VzIGF0IGFsbC4gIE9yIGlzIFNUTU1BQyBhIFBDSSBkcml2ZXIgb3IgcGxhdGZvcm0gZHJpdmVyPyBMZXQgbWUgY2hlY2sgYFNUTU1BQ19QQ0lgIGFuZCBzZWUgd2hhdCBQQ0kgSURzIGFyZSBpbiBgc3RtbWFjX3BjaS5jYCBvciBvdGhlciBzdG1tYWMgUENJIGRyaXZlcnMgdG8gc2VlIGlmIGFueSBvZiB0aGUgaGFyZHdhcmUgaXMgZW11bGF0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMwNzEyLCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzM4LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6Mzk6NTUuNzQwNjU1Mjg3WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODAxMTY3OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJwY2lfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jPTE0MTU9TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIGludGVsX2V0aF9wY2lfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQxNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjE0MTc6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGludGVsX2V0aF9wY2lfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQxOC1cXHQubmFtZSA9IFxcXCJpbnRlbC1ldGgtcGNpXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQyNi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1pbnRlbC5jOjE0Mjc6bW9kdWxlX3BjaV9kcml2ZXIoaW50ZWxfZXRoX3BjaV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWludGVsLmMtMTQyOC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLWxvb25nc29uLmM9NjAyPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBsb29uZ3Nvbl9kd21hY19pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MDMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo2MDQ6c3RhdGljIHN0cnVjdCBwY2lfZHJpdmVyIGxvb25nc29uX2R3bWFjX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYwNS1cXHQubmFtZSA9IERSSVZFUl9OQU1FLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYy02MTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbG9vbmdzb24uYzo2MTQ6bW9kdWxlX3BjaV9kcml2ZXIobG9vbmdzb25fZHdtYWNfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1sb29uZ3Nvbi5jLTYxNS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jPTM3MT1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgZHdtYWNfbW90b3Jjb21tX3BjaV9pZF90YWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzcyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLW1vdG9yY29tbS5jOjM3MzpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgZHdtYWNfbW90b3Jjb21tX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmMtMzc0LVxcdC5uYW1lID0gRFJJVkVSX05BTUUsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zODItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtbW90b3Jjb21tLmM6MzgzOm1vZHVsZV9wY2lfZHJpdmVyKGR3bWFjX21vdG9yY29tbV9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1tb3RvcmNvbW0uYy0zODQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM9MjEwPU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBzdG1tYWNfaWRfdGFibGUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wY2kuYy0yMTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jOjIxMjpzdGF0aWMgc3RydWN0IHBjaV9kcml2ZXIgc3RtbWFjX3BjaV9kcml2ZXIgPSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIxMy1cXHQubmFtZSA9IFNUTU1BQ19SRVNPVVJDRV9OQU1FLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BjaS5jLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmM6MjIyOm1vZHVsZV9wY2lfZHJpdmVyKHN0bW1hY19wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcGNpLmMtMjIzLVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOTo1NS43ODg2NzExMjVaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjU1MTQwODAyNCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipJbnZlc3RpZ2F0aW5nIFhHTUFDIERyaXZlciBJbXBsZW1lbnRhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gZ2V0IGEgaGFuZGxlIG9uIGhvdyB0aGVzZSBYR01BQyBjb3JlcyBhcmUgYmVpbmcgdXNlZCBpbiBkaWZmZXJlbnQgRFdNQUMgZHJpdmVycy4gRmlyc3QsIEknbSB0aGlua2luZywgXCJMZXQncyBzdGFydCBieSBsb29raW5nIGF0IGEgZmV3IGxpa2VseSBzdXNwZWN0czogYHN0bW1hY19wY2kuY2AsIGBkd21hYy1pbnRlbC5jYCwgYGR3bWFjLWxvb25nc29uLmNgLCBgZHdtYWMtc29jZnBnYS5jYCwgYW5kIHNvIG9uLlwiIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGJhc2VsaW5lLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZSwgYSBtb3JlIGVmZmljaWVudCBhcHByb2FjaCB3b3VsZCBiZSB0byBuYXJyb3cgdGhlIHNjb3BlIGZyb20gdGhlIHN0YXJ0LiBcIkxldCdzIHNlZSB3aGljaCBkcml2ZXJzIGFyZSAqYWN0dWFsbHkqIHV0aWxpemluZyBgRFdNQUNfQ09SRV9YR01BQ2Agb3Igc3BlY2lmaWNhbGx5IHByb2JpbmcgZm9yIGBkd3hnbWFjMmAuXCIgSXQncyBtdWNoIG1vcmUgc3VyZ2ljYWwuXG5cblJpZ2h0LCB0aW1lIHRvIGdldCB0byB3b3JrLiBOb3csIHRoZSBmYXN0ZXN0IGFuZCBtb3N0IGNvbXByZWhlbnNpdmUgYXBwcm9hY2ggdG8gdW5kZXJzdGFuZCB0aGUgZHJpdmVycyB3b3VsZCBiZSBhIHF1aWNrIGNvZGViYXNlIHNlYXJjaC4gU28sIEkgbmVlZCB0byBcInNlYXJjaCBmb3IgYERXTUFDX0NPUkVfWEdNQUNgIGluIHRoZSBlbnRpcmUgY29kZWJhc2UuXCIgVGhpcyBzaG91bGQgcmV2ZWFsIGFsbCBpbnN0YW5jZXMgb2YgdGhlIG1hY3JvJ3MgdXNlLCBwcm92aWRpbmcgdGhlIGZvdW5kYXRpb24gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSBoYXJkd2FyZSBhbmQgdGhlIHNvZnR3YXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMzI2MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjM5OjU4LjM0MDA4MjI4OVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcwMjAwMDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiRFdNQUNfQ09SRV9YR01BQ1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmg9NDk9c3RhdGljIGlubGluZSBib29sIGR3bWFjX2lzX3htYWMoZW51bSBkd21hY19jb3JlX3R5cGUgY29yZV90eXBlKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2NvbW1vbi5oLTUwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9jb21tb24uaDo1MTpcXHRyZXR1cm4gY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQzQgfHwgY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvY29tbW9uLmgtNTItfVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jPTU4MD1zdGF0aWMgdm9pZCBzb2NmcGdhX2FnaWxleDVfc2V0dXBfcGxhdF9kYXQoc3RydWN0IHNvY2ZwZ2FfZHdtYWMgKmR3bWFjKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtc29jZnBnYS5jLTU4My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy1zb2NmcGdhLmM6NTg0OlxcdHBsYXRfZGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXNvY2ZwZ2EuYy01ODUtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYy10ZWdyYS5jPTIxND1zdGF0aWMgaW50IHRlZ3JhX21nYmVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmMtMzI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjLXRlZ3JhLmM6MzI2OlxcdHBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMtdGVncmEuYy0zMjctXFx0cGxhdC1cXHUwMDNlZmxhZ3MgfD0gU1RNTUFDX0ZMQUdfVFNPX0VOO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTIxPXN0YXRpYyB2b2lkIHN0bW1hY19nZXRfdmVyc2lvbihzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtNDktXFx0dmVyLVxcdTAwM2VzbnBzdmVyID0gRklFTERfR0VUKERXTUFDX1NOUFNWRVIsIHZlcnNpb24pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzo1MDpcXHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTUxLVxcdFxcdHZlci1cXHUwMDNlZGV2X2lkID0gRklFTERfR0VUKERXTUFDX1VTRVJWRVIsIHZlcnNpb24pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jPTExMT1zdGF0aWMgY29uc3Qgc3RydWN0IHN0bW1hY19od2lmX2VudHJ5IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNDctXFx0fSwge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYzoyNDg6XFx0XFx0LmNvcmVfdHlwZSA9IERXTUFDX0NPUkVfWEdNQUMsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jLTI0OS1cXHRcXHQubWluX2lkID0gRFdYR01BQ19DT1JFXzJfMTAsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMjY5LVxcdH0sIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmM6MjcwOlxcdFxcdC5jb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0yNzEtXFx0XFx0Lm1pbl9pZCA9IERXWExHTUFDX0NPUkVfMl8wMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYz0yOTQ9c3RtbWFjX2h3aWZfZmluZChlbnVtIGR3bWFjX2NvcmVfdHlwZSBjb3JlX3R5cGUsIHU4IHNucHN2ZXIsIHU4IGRldl9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuYy0zMDYtXFx0XFx0XFx0Y29udGludWU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5jOjMwNzpcXHRcXHRpZiAoY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmMtMzA4LVxcdFxcdCAgICBkZXZfaWQgIT0gZW50cnktXFx1MDAzZWRldl9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYz0yOD1zdGF0aWMgaW50IGVzdF9jb25maWd1cmUoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBzdHJ1Y3Qgc3RtbWFjX2VzdCAqY2ZnLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jLTU1LVxcdGN0cmwgPSByZWFkbChlc3RfYWRkciArIEVTVF9DT05UUk9MKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmM6NTY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jLTU3LVxcdFxcdGN0cmwgXFx1MDAyNj0gfkVTVF9YR01BQ19QVE9WO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jPTgzPXN0YXRpYyB2b2lkIGVzdF9pcnFfc3RhdHVzKHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19lc3QuYy0xNTAtXFx0aWYgKHN0YXR1cyBcXHUwMDI2IEVTVF9CVFJFKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2VzdC5jOjE1MTpcXHRcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXN0LmMtMTUyLVxcdFxcdFxcdGJ0cmwgPSBGSUVMRF9HRVQoRVNUX1hHTUFDX0JUUkwsIHN0YXR1cyk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTMwMT1zdGF0aWMgdm9pZCBzdG1tYWNfZXRodG9vbF9nZXRkcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMwOC1cXHRcXHRzdHJzY3B5KGluZm8tXFx1MDAzZWRyaXZlciwgR01BQ19FVEhUT09MX05BTUUsIHNpemVvZihpbmZvLVxcdTAwM2Vkcml2ZXIpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jOjMwOTpcXHRlbHNlIGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTMxMC1cXHRcXHRzdHJzY3B5KGluZm8tXFx1MDAzZWRyaXZlciwgWEdNQUNfRVRIVE9PTF9OQU1FLCBzaXplb2YoaW5mby1cXHUwMDNlZHJpdmVyKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jPTM1MD1zdGF0aWMgaW50IHN0bW1hY19ldGh0b29sX2dldF9yZWdzX2xlbihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYy0zNTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2V0aHRvb2wuYzozNTQ6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmMtMzU1LVxcdFxcdHJldHVybiBYR01BQ19SRUdTSVpFICogNDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM9MzYxPXN0YXRpYyB2b2lkIHN0bW1hY19ldGh0b29sX2dyZWdzKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3NS1cXHRcXHQgICAgICAgTlVNX0RXTUFDNF9ETUFfUkVHUyAqIDQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19ldGh0b29sLmM6Mzc2OlxcdH0gZWxzZSBpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfZXRodG9vbC5jLTM3Ny1cXHRcXHRtZW1jcHkoXFx1MDAyNnJlZ19zcGFjZVtFVEhUT09MX0RNQV9PRkZTRVRdLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz02NDI9c3RhdGljIGludCBzdG1tYWNfaHd0c3RhbXBfc2V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1OC1cXHRcXHRcXHRpZiAocHJpdi1cXHUwMDNlc3lub3BzeXNfaWQgXFx1MDAzYyBEV01BQ19DT1JFXzNfNzAgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc1OTpcXHRcXHRcXHQgICAgcHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlICE9IERXTUFDX0NPUkVfWEdNQUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03NjAtXFx0XFx0XFx0XFx0dHNfZXZlbnRfZW4gPSBQVFBfVENSX1RTRVZOVEVOQTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjU0NT1zdGF0aWMgaW50IHN0bW1hY19kbWFfY2FwX3Nob3coc3RydWN0IHNlcV9maWxlICpzZXEsIHZvaWQgKnYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY1ODAtXFx0XFx0ICAgKHByaXYtXFx1MDAzZWRtYV9jYXAuaGFsZl9kdXBsZXgpID8gXFxcIllcXFwiIDogXFxcIk5cXFwiKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY1ODE6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NTgyLVxcdFxcdHNlcV9wcmludGYoc2VxLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjA0LVxcdFxcdCAgIChwcml2LVxcdTAwM2VkbWFfY2FwLmF0aW1lX3N0YW1wKSA/IFxcXCJZXFxcIiA6IFxcXCJOXFxcIik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2NjA1OlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTY2MDYtXFx0XFx0c2VxX3ByaW50ZihzZXEsIFxcXCJcXFxcdFRpbWVzdGFtcCBTeXN0ZW0gVGltZSBTb3VyY2U6ICVzXFxcXG5cXFwiLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjEzLVxcdGlmIChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV01BQ19DT1JFXzRfMDAgfHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjY2MTQ6XFx0ICAgIHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy02NjE1LVxcdFxcdHNlcV9wcmludGYoc2VxLCBcXFwiXFxcXHRJUCBDaGVja3N1bSBPZmZsb2FkIGluIFJYOiAlc1xcXFxuXFxcIixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NzM0Nz1zdGF0aWMgdm9pZCBzdG1tYWNfcHJpbnRfYWN0cGh5aWYoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzYyLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM6NzM2MzpcXHRjYXNlIERXTUFDX0NPUkVfWEdNQUM6XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYy03MzY0LVxcdFxcdHBoeWlmX3RhYmxlID0gc3RtbWFjX2R3eGdtYWNfcGh5aWY7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jPTczODk9c3RhdGljIGludCBzdG1tYWNfaHdfaW5pdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1MTEtXFx0aWYgKChwcml2LVxcdTAwM2VzeW5vcHN5c19pZCBcXHUwMDNlPSBEV01BQ19DT1JFXzNfNTAgfHxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc1MTI6XFx0ICAgICBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykgXFx1MDAyNlxcdTAwMjZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTc1MTMtXFx0ICAgICFwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2VyaXd0X29mZikge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYz03Nzc4PXN0YXRpYyBpbnQgX19zdG1tYWNfZHZyX3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRldmljZSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzk4NS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jOjc5ODY6XFx0aWYgKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSA9PSBEV01BQ19DT1JFX1hHTUFDKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNzk4Ny1cXHRcXHRuZGV2LVxcdTAwM2VtYXhfbXR1ID0gWEdNQUNfSlVNQk9fTEVOO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYz01MzY9c3RhdGljIHUzMiBzdG1tYWNfY2xrX2Nzcl9zZXQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy01NTQtXFx0XFx0cmF0ZXMgPSBzdG1tYWNfc3VuOGlfY3NyX3RvX21kYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjU1NTpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy01NTYtXFx0XFx0cmF0ZXMgPSBzdG1tYWNfeGdtYWNfY3NyX3RvX21kYztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM9NTk1PWludCBzdG1tYWNfbWRpb19yZWdpc3RlcihzdHJ1Y3QgbmV0X2RldmljZSAqbmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjIxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmM6NjIyOlxcdGlmIChwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPT0gRFdNQUNfQ09SRV9YR01BQykge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tZGlvLmMtNjIzLVxcdFxcdG5ld19idXMtXFx1MDAzZXJlYWQgPSBcXHUwMDI2c3RtbWFjX3hnbWFjMl9tZGlvX3JlYWRfYzIyO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjUtXFx0LyogTG9va3MgbGlrZSB3ZSBuZWVkIGEgZHVtbXkgcmVhZCBmb3IgWEdNQUMgb25seSBhbmQgQzQ1IFBIWXMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWRpby5jOjY2NjpcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfWEdNQUMpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21kaW8uYy02NjctXFx0XFx0c3RtbWFjX3hnbWFjMl9tZGlvX3JlYWRfYzQ1KG5ld19idXMsIDAsIDAsIDApO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3BsYXRmb3JtLmM9NDE0PXN0bW1hY19wcm9iZV9jb25maWdfZHQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwgdTggKm1hYylcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU0NS1cXHRpZiAob2ZfZGV2aWNlX2lzX2NvbXBhdGlibGUobnAsIFxcXCJzbnBzLGR3eGdtYWNcXFwiKSkge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jOjU0NjpcXHRcXHRwbGF0LVxcdTAwM2Vjb3JlX3R5cGUgPSBEV01BQ19DT1JFX1hHTUFDO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19wbGF0Zm9ybS5jLTU0Ny1cXHRcXHRwbGF0LVxcdTAwM2VwbXQgPSB0cnVlO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTozOTo1OC4zODcxMDg3ODdaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjI2MTA1MDI4OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFJlYWNoYWJpbGl0eSBvZiBEZXNpZ25XYXJlIFhHTUFDIENvZGUgUGF0aHMgaW4gVmlydHVhbGl6ZWQgRW52aXJvbm1lbnRzKipcblxuT2theSwgc28gSSdtIGRpZ2dpbmcgaW50byB0aGlzIGBEV01BQ19DT1JFX1hHTUFDYCBzdHVmZi4gRmlyc3QsIEkgc2VlIGl0IGRlZmluZWQgaW4gYSBmZXcgcGxhY2VzOiBgZHdtYWMtc29jZnBnYS5jYCBmb3IgQWx0ZXJhIEFnaWxleDUsIGBkd21hYy10ZWdyYS5jYCBmb3IgTnZpZGlhIFRlZ3JhLCBhbmQgYHN0bW1hY19wbGF0Zm9ybS5jYCBmb3IgZGV2aWNlcyBjb21wYXRpYmxlIHdpdGggXCJzbnBzLGR3eGdtYWNcIi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgaWYgYW55IG9mIHRoaXMgY2FuIGFjdHVhbGx5IGJlIHJlYWNoZWQgaW4gYSB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb3IgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpLCBvciBpZiB3ZSdyZSBkZWFsaW5nIHdpdGggc29sZWx5IHBoeXNpY2FsIFNvQ3MuXG5cbk5vdywgbGV0J3MgcmVmZXIgdG8gdGhlIGluc3RydWN0aW9ucyBwcm92aWRlZC4gVGhlIGdvYWwgaXMgdG8gZGV0ZXJtaW5lIGlmIHRoaXMgY29kZSBpcyB3b3J0aCBmdXp6aW5nLiBUaGUgaW5zdHJ1Y3Rpb25zIGV4cGxpY2l0bHkgc2F5IHRoYXQgd2Ugc2hvdWxkIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgY2hhbmdlcyBhcmUgbGltaXRlZCB0byB1bnJlYWNoYWJsZSBjb2RlIHBhdGhzIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gSSBuZWVkIHRvIGtlZXAgdGhhdCBpbiBtaW5kLlxuXG5JJ20gdGhpbmtpbmcsIGRvZXMgUUVNVSBldmVuIGVtdWxhdGUgXCJzbnBzLGR3eGdtYWNcIiBvciBhbnl0aGluZyByZWxhdGVkIHRvIHRob3NlIHNwZWNpZmljIFNvQ3M/IExldCdzIHNlZSB3aGF0IFFFTVUgKmRvZXMqIHN1cHBvcnQgZm9yIHN0bW1hYy9kZXNpZ253YXJlIG1hYy4gSSBzZWUgYSBsb3Qgb2Ygb3B0aW9uczogYGFsbHdpbm5lci1hMTAtZW1hY2AsIGBjYWRlbmNlX2dlbWAsIGV0Yy4sIGJ1dCBub3RoaW5nIHRoYXQgc2NyZWFtcyBcIkRlc2lnbldhcmUgMTBHYiBFdGhlcm5ldFwiIG9yIEFsdGVyYSBTb0MgRlBHQS4gSSdtIG5vdCBzZWVpbmcgYW55IGBkd3hnbWFjYCBlcXVpdmFsZW50IGluIFFFTVUuIE5vcGUsIFFFTVUgZG9lcyBOT1QgZW11bGF0ZSBTeW5vcHN5cyBEZXNpZ25XYXJlIEVudGVycHJpc2UgMTBHIEV0aGVybmV0IE1BQyBvciBBbHRlcmEgU29DIEZQR0EgQWdpbGV4NS4gSW50ZWwgc3RtbWFjIGlzIGEgZGlmZmVyZW50IHN0b3J5LCB1c2luZyBHTUFDNC9HTUFDNS9EV01BQ19DT1JFX0dNQUM0L0dNQUMuIExvb25nc29uIHVzZXMgRFdNQUNfQ09SRV9HTUFDLlxuXG5Nb3Jlb3ZlciwgUUVNVSBkb2Vzbid0IGVtdWxhdGUgYW55IEludGVsIHN0bW1hYyBQQ0kgLyBMb29uZ3NvbiBQQ0kgLyBNb3RvcmNvbW0gUENJLiBJdCBlbXVsYXRlcyB0aGUgdXN1YWwgc3VzcGVjdHMgbGlrZSBlMTAwMCwgZTEwMDBlLCBpZ2IsIGFuZCBzbyBvbi5cblxuVGhlIHF1ZXN0aW9uIHRoZW4gYmVjb21lcywgY2FuIFN5emthbGxlciBhY3R1YWxseSAqcmVhY2gqIHBsYXRmb3JtIGRyaXZlcnMsIG9yIGFyZSB0aGVzZSBzcGVjaWZpYyBBUk0vU29DIGRyaXZlcnMgKEFsdGVyYSBzb2NmcGdhLCBOdmlkaWEgVGVncmEsIFN5bm9wc3lzIGR3eGdtYWMpIGZ1bmRhbWVudGFsbHkgdGllZCB0byBwaHlzaWNhbCBoYXJkd2FyZT8gSSd2ZSBnb3QgdG8gY29uc2lkZXIgdGhpcy4gTGV0J3MgbG9vayBhdCBzaW1pbGFyIGNhc2VzIGFuZCBndWlkZWxpbmVzLlxuXG5JIG5lZWQgdG8gcXVpY2tseSBjaGVjayBpZiBzeXprYWxsZXIgb3IgYW55IGZ1enppbmcgYmVuY2htYXJrcyBhY2NvdW50IGZvciBldGhlcm5ldCBkcml2ZXJzIG9uIGVtYmVkZGVkIFNvQ3MuXG5cbk9rLCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSBjbGVhcjogaWYgdGhlIGNvZGUgcGF0aHMgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLCByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAuIEFsc28sIGlmIHRoZSBjb2RlIGlzIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCBvciBTbWFydE5JQyBkcml2ZXJzLCBsaWtlIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1LCB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgaGFyZHdhcmUuIERyaXZlciB0ZWFyZG93biBjYWxsYmFja3Mgc3VjaCBhcyBgLnJlbW92ZWAsIGAuc2h1dGRvd25gLCBvciBgcGNpX3VucmVnaXN0ZXJfZHJpdmVyYCBhcmUgYWxzbyBub3QgZnV6emFibGUuXG5cblNvLCBjYW4gdGhpcyBjb2RlIChzcGVjaWZpY2FsbHkgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgLCBvciB0aGUgY29kZSBpbiBgZHdtYWMtc29jZnBnYS5jYCwgb3IgYGR3eGdtYWMyX3B0cGApIGJlIHJlYWNoZWQgaW4gUUVNVSBvciBHQ0U/XG5cbkxldCdzIGJyZWFrIGl0IGRvd246XG4xLiBgZHdtYWMtc29jZnBnYS5jYDogVGhpcyBpcyBBbHRlcmEgU09DRlBHQS4gU3BlY2lmaWNhbGx5LCBpdCBzZWVtcyBgc210Z19jcm9zc3RzdGFtcGAgaXMgY2FsbGVkIGZvciBQVFAgY3Jvc3MtdGltZXN0YW1waW5nIG9uIEFsdGVyYSBBZ2lsZXgvU3RyYXRpeCBTT0NGUEdBLiBUaGUgY29kZSBpbnRlcmFjdHMgZGlyZWN0bHkgd2l0aCBGUEdBIHJlZ2lzdGVycyBhbmQgTURJTyByZWdpc3RlcnMgb2YgdGhlIFNNVEcgdGltZSBjYXJkIC8gTURJTyBoYXJkd2FyZSAodmlhIGBnZXRfc210Z3RpbWVgKS4gVGhpcyBmZWVscyB2ZXJ5IGhhcmR3YXJlLXNwZWNpZmljLlxuXG4yLiBgZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdGA6IFRoaXMgaGFuZGxlcyB0aW1lc3RhbXAgaW50ZXJydXB0cyBmb3IgdGhlIFN5bm9wc3lzIERlc2lnbldhcmUgMTBHIEV0aGVybmV0IE1BQyAoYGR3eGdtYWMyYCkuIFRoZSBjb2RlIHJlYWRzIGZyb20gcmVnaXN0ZXJzIGxpa2UgYFhHTUFDX1RJTUVTVEFNUF9TVEFUVVNgIGFuZCBgUFRQX0FDUmAgYW5kIGRpc3BhdGNoZXMgUFRQIGV2ZW50cy4gVGhpcyBpcyBob29rZWQgYnkgYHN0bW1hY19od2lmX2VudHJ5YCBmb3IgYERXTUFDX0NPUkVfWEdNQUNgLiBJdCdzIHJlZ2lzdGVyZWQgaW4gYGR3eGdtYWMyX3B0cC50aW1lc3RhbXBfaW50ZXJydXB0YC4gU28gd2hlbiBleGFjdGx5IGlzIHRoaXMgYHRpbWVzdGFtcF9pbnRlcnJ1cHRgIGNhbGxlZD8gTGV0J3MgY2hlY2sgZm9yIGhvdyB0aGlzIGludGVycnVwdCBoYW5kbGVyIGlzIGNhbGxlZC4gVGltZSB0byBncmVwIGZvciBgdGltZXN0YW1wX2ludGVycnVwdGAgd2l0aGluIGBkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9gLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzYwOSwiT3V0cHV0VG9rZW5zIjozNywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMDNUMDk6NDA6MjAuOTk3NjE1NTg0WiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODcwMDYyOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0aW1lc3RhbXBfaW50ZXJydXB0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jPTUxMz12b2lkIGR3bWFjMTAwMF9nZXRfcHRwdGltZSh2b2lkIF9faW9tZW0gKnB0cGFkZHIsIHU2NCAqcHRwX3RpbWUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTUyMi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jOjUyMzp2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTUyNC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jLTU1Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd21hYzEwMDBfY29yZS5jOjU1MzpzdGF0aWMgdm9pZCBkd21hYzEwMDBfdGltZXN0YW1wX2ludGVycnVwdF9jZmcoc3RydWN0IHN0bW1hY19wcml2ICpwcml2LCBib29sIGVuKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMtNTU0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmM9NTY3PWludCBkd21hYzEwMDBfcHRwX2VuYWJsZShzdHJ1Y3QgcHRwX2Nsb2NrX2luZm8gKnB0cCxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmMtNjAwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2R3bWFjMTAwMF9jb3JlLmM6NjAxOlxcdFxcdGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0X2NmZyhwcml2LCBvbik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHdtYWMxMDAwX2NvcmUuYy02MDItXFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmM9MTE0Mz1zdGF0aWMgaW50IGR3eGdtYWMyX2dldF9tYWNfdHhfdGltZXN0YW1wKHN0cnVjdCBtYWNfZGV2aWNlX2luZm8gKmh3LCB1NjQgKnRzKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jLTExNTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvZHd4Z21hYzJfY29yZS5jOjExNTc6dm9pZCBkd3hnbWFjMl90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9kd3hnbWFjMl9jb3JlLmMtMTE1OC17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg9NDk3PXN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAge1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oLTUwNi1cXHR2b2lkICgqZ2V0X3B0cHRpbWUpKHZvaWQgX19pb21lbSAqaW9hZGRyLCB1NjQgKnB0cF90aW1lKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9od2lmLmg6NTA3OlxcdHZvaWQgKCp0aW1lc3RhbXBfaW50ZXJydXB0KShzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaC01MDgtXFx0dm9pZCAoKmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSkoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaC01MjQtXFx0c3RtbWFjX2RvX3ZvaWRfY2FsbGJhY2soX19wcml2LCBwdHAsIGdldF9wdHB0aW1lLCBfX2FyZ3MpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oOjUyNTojZGVmaW5lIHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0KF9fcHJpdiwgX19hcmdzLi4uKSBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvaHdpZi5oOjUyNjpcXHRzdG1tYWNfZG9fdm9pZF9jYWxsYmFjayhfX3ByaXYsIHB0cCwgdGltZXN0YW1wX2ludGVycnVwdCwgX19hcmdzKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL2h3aWYuaC01MjctI2RlZmluZSBzdG1tYWNfaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5KF9fcHJpdiwgX19hcmdzLi4uKSBcXFxcXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yMDQ9c3RhdGljIHZvaWQgZ2V0X3B0cHRpbWUodm9pZCBfX2lvbWVtICpwdHBhZGRyLCB1NjQgKnB0cF90aW1lKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjEzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jOjIxNDpzdGF0aWMgdm9pZCB0aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yMTUte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM9MjU4PWNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgc3RtbWFjX3B0cCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI2NS1cXHQuZ2V0X3B0cHRpbWUgPSBnZXRfcHRwdGltZSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYzoyNjY6XFx0LnRpbWVzdGFtcF9pbnRlcnJ1cHQgPSB0aW1lc3RhbXBfaW50ZXJydXB0LFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI2Ny1cXHQuaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5ID0gaHd0c3RhbXBfY29ycmVjdF9sYXRlbmN5LFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM9MjcwPWNvbnN0IHN0cnVjdCBzdG1tYWNfaHd0aW1lc3RhbXAgZHdtYWMxMDAwX3B0cCA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19od3RzdGFtcC5jLTI3Ny1cXHQuZ2V0X3B0cHRpbWUgPSBkd21hYzEwMDBfZ2V0X3B0cHRpbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM6Mjc4OlxcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHdtYWMxMDAwX3RpbWVzdGFtcF9pbnRlcnJ1cHQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmMtMjc5LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYz0yODE9Y29uc3Qgc3RydWN0IHN0bW1hY19od3RpbWVzdGFtcCBkd3hnbWFjMl9wdHAgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yODgtXFx0LmdldF9wdHB0aW1lID0gZ2V0X3B0cHRpbWUsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX2h3dHN0YW1wLmM6Mjg5OlxcdC50aW1lc3RhbXBfaW50ZXJydXB0ID0gZHd4Z21hYzJfdGltZXN0YW1wX2ludGVycnVwdCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfaHd0c3RhbXAuYy0yOTAtXFx0Lmh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSA9IGh3dHN0YW1wX2NvcnJlY3RfbGF0ZW5jeSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmM9NjIwOT1zdGF0aWMgdm9pZCBzdG1tYWNfY29tbW9uX2ludGVycnVwdChzdHJ1Y3Qgc3RtbWFjX3ByaXYgKnByaXYpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfbWFpbi5jLTYyNDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uYzo2MjQ1OlxcdFxcdHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0KHByaXYsIHByaXYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L3N0bWljcm8vc3RtbWFjL3N0bW1hY19tYWluLmMtNjI0Ni1cXHR9XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmg9MTA0PXZvaWQgZHdtYWMxMDAwX2dldF9wdHB0aW1lKHZvaWQgX19pb21lbSAqcHRwYWRkciwgdTY0ICpwdHBfdGltZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oOjEwNTp2b2lkIGR3bWFjMTAwMF90aW1lc3RhbXBfaW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX3B0cC5oOjEwNjp2b2lkIGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHQoc3RydWN0IHN0bW1hY19wcml2ICpwcml2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9zdG1pY3JvL3N0bW1hYy9zdG1tYWNfcHRwLmgtMTA3LVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTo0MDoyMS4wNTYzMjAyMTJaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MTM5Nzg0ODMwOTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBxdWVzdGlvbiBpczogd2hhdCBhY3R1YWxseSBraWNrcyBvZmYgdGhlIGBzdG1tYWNfdGltZXN0YW1wX2ludGVycnVwdGAgZnVuY3Rpb24/IEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb250cm9sIGZsb3cgaGVyZS4gU28sIEkgc2VlIHRoYXQgdGhpcyBpbnRlcnJ1cHQgaXMgbGlrZWx5IGhhbmRsZWQgYnkgYHN0bW1hY19jb21tb25faW50ZXJydXB0YCwgYW5kIHRoYXQncyBmb3VuZCBpbiBgc3RtbWFjX21haW4uY2AuXG5cbioqRGl2aW5nIGludG8gdGhlIEludGVycnVwdCBIYW5kbGluZyoqXG5cbkknbSB6ZXJvaW5nIGluIG9uIGBzdG1tYWNfbWFpbi5jYCBub3csIHNwZWNpZmljYWxseSBhcm91bmQgbGluZXMgNjIwOSB0byA2MjUwLiBUaGF0J3MgdGhlIGxpa2VseSByZWdpb24gd2hlcmUgdGhlIGludGVycnVwdCBsb2dpYyBpcyBoYW5kbGVkLiBJJ2xsIG5lZWQgdG8gY2FyZWZ1bGx5IGV4YW1pbmUgdGhhdCBzZWN0aW9uIG9mIHRoZSBjb2RlIHRvIHRyYWNlIHRoZSBjb25kaXRpb25zIHRoYXQgbGVhZCB0byB0aGUgYHN0bW1hY190aW1lc3RhbXBfaW50ZXJydXB0YCBiZWluZyBjYWxsZWQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBpbnRlcnJ1cHQgZW5hYmxlL2Rpc2FibGUgbWVjaGFuaXNtcyBhbmQgaW50ZXJydXB0IHN0YXR1cyBjaGVja3MgdGhhdCB0YWtlIHBsYWNlIHRvIGdldCB0aGUgZnVsbCBwaWN0dXJlLiBNeSBnb2FsIGlzIHRvIG1hcCB0aGUgcGF0aCBvZiBleGVjdXRpb24gdG8gdW5kZXJzdGFuZCBob3cgdGhpcyB0aW1lc3RhbXAgaW50ZXJydXB0IGlzIHRyaWdnZXJlZCBhbmQgd2hhdCB0aGUgY3JpdGljYWwgcGllY2VzIG9mIGNvbnRleHQgYXJlIGZvciBpdHMgb3BlcmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MTk4OSwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjQwOjM1LjAzNDgwNjcxNFoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNDc1MDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvZXRoZXJuZXQvc3RtaWNyby9zdG1tYWMvc3RtbWFjX21haW4uY1wiLFxuICBcIkZpcnN0TGluZVwiOiA2MjA1LFxuICBcIkxpbmVDb3VudFwiOiA0NVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCI2MjA1OlxcdFxcbjYyMDY6XFx0XFx0cmV0dXJuIDA7XFxuNjIwNzpcXHR9XFxuNjIwODpcXHRcXG42MjA5OlxcdHN0YXRpYyB2b2lkIHN0bW1hY19jb21tb25faW50ZXJydXB0KHN0cnVjdCBzdG1tYWNfcHJpdiAqcHJpdilcXG42MjEwOlxcdHtcXG42MjExOlxcdFxcdHU4IHJ4X2NudCA9IHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZXJ4X3F1ZXVlc190b191c2U7XFxuNjIxMjpcXHRcXHR1OCB0eF9jbnQgPSBwcml2LVxcdTAwM2VwbGF0LVxcdTAwM2V0eF9xdWV1ZXNfdG9fdXNlO1xcbjYyMTM6XFx0XFx0dTggcXVldWVzX2NvdW50O1xcbjYyMTQ6XFx0XFx0Ym9vbCB4bWFjO1xcbjYyMTU6XFx0XFx0dTggcXVldWU7XFxuNjIxNjpcXHRcXG42MjE3OlxcdFxcdHhtYWMgPSBkd21hY19pc194bWFjKHByaXYtXFx1MDAzZXBsYXQtXFx1MDAzZWNvcmVfdHlwZSk7XFxuNjIxODpcXHRcXHRxdWV1ZXNfY291bnQgPSAocnhfY250IFxcdTAwM2UgdHhfY250KSA/IHJ4X2NudCA6IHR4X2NudDtcXG42MjE5OlxcdFxcbjYyMjA6XFx0XFx0aWYgKHByaXYtXFx1MDAzZWlycV93YWtlKVxcbjYyMjE6XFx0XFx0XFx0cG1fd2FrZXVwX2V2ZW50KHByaXYtXFx1MDAzZWRldmljZSwgMCk7XFxuNjIyMjpcXHRcXG42MjIzOlxcdFxcdGlmIChwcml2LVxcdTAwM2VkbWFfY2FwLmVzdHNlbClcXG42MjI0OlxcdFxcdFxcdHN0bW1hY19lc3RfaXJxX3N0YXR1cyhwcml2LCBwcml2LCBwcml2LVxcdTAwM2VkZXYsXFxuNjIyNTpcXHRcXHRcXHRcXHRcXHQgICAgICBcXHUwMDI2cHJpdi1cXHUwMDNleHN0YXRzLCB0eF9jbnQpO1xcbjYyMjY6XFx0XFxuNjIyNzpcXHRcXHRpZiAoc3RtbWFjX2ZwZV9zdXBwb3J0ZWQocHJpdikpXFxuNjIyODpcXHRcXHRcXHRzdG1tYWNfZnBlX2lycV9zdGF0dXMocHJpdik7XFxuNjIyOTpcXHRcXG42MjMwOlxcdFxcdC8qIFRvIGhhbmRsZSBHTUFDIG93biBpbnRlcnJ1cHRzICovXFxuNjIzMTpcXHRcXHRpZiAocHJpdi1cXHUwMDNlcGxhdC1cXHUwMDNlY29yZV90eXBlID09IERXTUFDX0NPUkVfR01BQyB8fCB4bWFjKSB7XFxuNjIzMjpcXHRcXHRcXHRpbnQgc3RhdHVzID0gc3RtbWFjX2hvc3RfaXJxX3N0YXR1cyhwcml2LCBcXHUwMDI2cHJpdi1cXHUwMDNleHN0YXRzKTtcXG42MjMzOlxcdFxcbjYyMzQ6XFx0XFx0XFx0aWYgKHVubGlrZWx5KHN0YXR1cykpIHtcXG42MjM1OlxcdFxcdFxcdFxcdC8qIEZvciBMUEkgd2UgbmVlZCB0byBzYXZlIHRoZSB0eCBzdGF0dXMgKi9cXG42MjM2OlxcdFxcdFxcdFxcdGlmIChzdGF0dXMgXFx1MDAyNiBDT1JFX0lSUV9UWF9QQVRIX0lOX0xQSV9NT0RFKVxcbjYyMzc6XFx0XFx0XFx0XFx0XFx0cHJpdi1cXHUwMDNldHhfcGF0aF9pbl9scGlfbW9kZSA9IHRydWU7XFxuNjIzODpcXHRcXHRcXHRcXHRpZiAoc3RhdHVzIFxcdTAwMjYgQ09SRV9JUlFfVFhfUEFUSF9FWElUX0xQSV9NT0RFKVxcbjYyMzk6XFx0XFx0XFx0XFx0XFx0cHJpdi1cXHUwMDNldHhfcGF0aF9pbl9scGlfbW9kZSA9IGZhbHNlO1xcbjYyNDA6XFx0XFx0XFx0fVxcbjYyNDE6XFx0XFxuNjI0MjpcXHRcXHRcXHRmb3IgKHF1ZXVlID0gMDsgcXVldWUgXFx1MDAzYyBxdWV1ZXNfY291bnQ7IHF1ZXVlKyspXFxuNjI0MzpcXHRcXHRcXHRcXHRzdG1tYWNfaG9zdF9tdGxfaXJxX3N0YXR1cyhwcml2LCBwcml2LVxcdTAwM2VodywgcXVldWUpO1xcbjYyNDQ6XFx0XFxuNjI0NTpcXHRcXHRcXHRzdG1tYWNfdGltZXN0YW1wX2ludGVycnVwdChwcml2LCBwcml2KTtcXG42MjQ2OlxcdFxcdH1cXG42MjQ3OlxcdH1cXG42MjQ4OlxcdFxcbjYyNDk6XFx0LyoqXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjQwOjM1LjAzNTE1NTgyNFoiLCJTZXEiOjI1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo5MzQzNzgyOTA1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5c2lzIG9mIHRoZSBQYXRjaCBmb3IgRnV6emluZyBTdWl0YWJpbGl0eSoqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGZpcnN0IHRoaW5nIEknbSBkb2luZyBpcyB0cnlpbmcgdG8gdW5kZXJzdGFuZCB0aGUgdGFyZ2V0IGhhcmR3YXJlIG9mIHRoZSBjb2RlIG1vZGlmaWNhdGlvbnMgaW4gdGhpcyBwYXRjaC4gSSBzZWUgcmVmZXJlbmNlcyB0byBgRFdNQUNfQ09SRV9YR01BQ2AgYW5kIGBkd21hYy1zb2NmcGdhYC4gIGBkd21hYy1zb2NmcGdhYCBpbW1lZGlhdGVseSBmbGFncyBhcyBBbHRlcmEvSW50ZWwgU09DRlBHQSwgc3BlY2lmaWNhbGx5IEFnaWxleCA1LCBTdHJhdGl4IDEwLCBvciBzaW1pbGFyLiAgSSBhbHNvIHNlZSBtZW50aW9uIG9mIGBkd21hYy10ZWdyYWAgKE5WSURJQSBUZWdyYSkgYW5kIGBzbnBzLGR3eGdtYWNgIChTeW5vcHN5cyBEZXNpZ25XYXJlIEVudGVycHJpc2UgMTBHIEV0aGVybmV0IE1BQykuICBOb25lIG9mIHRoZXNlIGRldmljZSB0eXBlcyBhcmUgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUsIHdoaWNoIGlzIGEga2V5IGNvbnNpZGVyYXRpb24uXG5cbk5vdywgSSdtIGNoZWNraW5nIHRvIHNlZSAqaWYqIFFFTVUgZXZlbiBwcm92aWRlcyBlbXVsYXRpb24gZm9yIGFueSBTVE1NQUMgb3IgRFdNQUMgY29udHJvbGxlcnMuIEkgZmluZCB0aGF0IFFFTVUgaGFzIGBhbGx3aW5uZXItYTEwLWVtYWNgLCB3aGljaCBpcyBub3QgYSBEV01BQyBidXQgaXMgYSBzdW40aSBlbWFjLiBFdmVuIGlmIFFFTVUgKmRpZCogZW11bGF0ZSBhIGJhc2ljIERXTUFDIChsaWtlIHN1bjhpIG9yIHN0bTMyKSwgbm9uZSBvZiB0aG9zZSB3b3VsZCBiZSBYR01BQyAoMTBHYnBzIE1BQykgb3IgdGhlIEFsdGVyYS9JbnRlbCBTT0NGUEdBIHZlcnNpb24gKGBkd21hYy1zb2NmcGdhYCkuXG5cblRoZW4gdGhlIHRob3VnaHQgc3RyaWtlcyB0byBjaGVjayBpZiB0aGVyZSBhcmUgUENJIGVtdWxhdGlvbnMuIFRoZSBzaG9ydCBhbnN3ZXIgaXMgbm87IFFFTVUgbGFja3Mgc3BlY2lmaWMgbW9kZWxzIGZvciB0aGUgSW50ZWwgRWxraGFydCBMYWtlL1RpZ2VyIExha2UgUFNFIGR3bWFjLCBMb29uZ3NvbiBvciBNb3RvcmNvbW0gUENJIGV0aGVybmV0IGltcGxlbWVudGF0aW9ucy5cblxuTG9va2luZyBjbG9zZWx5IGF0IHRoZSBzcGVjaWZpYyBmaWxlcyBiZWluZyBtb2RpZmllZCwgSSBzZWUgYGR3bWFjLXNvY2ZwZ2EuY2AsIHdoaWNoIGlzIHRoZSBBbHRlcmEgU09DRlBHQS1zcGVjaWZpYyBkcml2ZXIgdGhhdCBkZWFscyB3aXRoIHRoZSBTTVRHIHRpbWUgc3RhbXAgY2FyZCBpbnRlcmZhY2UuIFRoZSBvdGhlciBmaWxlcywgYGR3eGdtYWMyX3RpbWVzdGFtcF9pbnRlcnJ1cHRgIGluIGBkd3hnbWFjMl9jb3JlLmNgIGFuZCBhIGZldyBvdGhlcnMsIGFyZSBkZWFsaW5nIHdpdGggdGhlIERXWEdNQUMgKDEwR2JwcyBEZXNpZ25XYXJlIE1BQykgdGltZXN0YW1wIGZ1bmN0aW9uYWxpdHkuXG5cbk5vdywgSSdtIHJlLXJlYWRpbmcgdGhlIHJ1bGVzIHJlZ2FyZGluZyB3aGF0IG1ha2VzIGEgcGF0Y2ggKm5vdCogd29ydGggZnV6emluZy4gIFRoaXMgaW5jbHVkZXMgdGhpbmdzIHRoYXQgYXJlIHVucmVhY2hhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLiBUaGlzIGluY2x1ZGVzIGNvZGUgdGhhdCByZWxpZXMgb24gcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gUUVNVS5cblxuR2l2ZW4gdGhlIHJ1bGUgc2V0LCB0aGUgY2VudHJhbCBxdWVzdGlvbiBiZWNvbWVzOiBhcmUgU1RNTUFDIC8gRFdYR01BQyAvIERXTUFDX1NPQ0ZQR0EgZmVhdHVyZXMgcmVhY2hhYmxlIHdpdGhpbiBRRU1VIG9yIEdDRT8gVGhlIGFuc3dlciBpcyBhIGNsZWFyIG5vLlxuXG4xLiAgYERXTUFDLVNvQ0ZQR0FgIHJlcXVpcmVzIHJlYWwgQWx0ZXJhL0ludGVsIFNvQyBGUEdBIGhhcmR3YXJlIHdpdGggc3BlY2lmaWMgc3lzdGVtIG1hbmFnZXIgcmVnaXN0ZXJzIGFuZCBGUEdBIGZhYnJpYyBpbnRlcmZhY2VzLlxuMi4gIGBEV1hHTUFDYCBpcyBhIFN5bm9wc3lzIDEwRyBFdGhlcm5ldCBNQUMgSVAsIGZvdW5kIG9ubHkgaW4gc3BlY2lmaWMgcGh5c2ljYWwgU29DcyBsaWtlIEFsdGVyYSBBZ2lsZXggNSBhbmQgTnZpZGlhIFRlZ3JhMjM0L1Rob3IuXG4zLiAgU3RhbmRhcmQgUUVNVSBkb2VzICpub3QqIGVtdWxhdGUgdGhlc2UgU3lub3BzeXMgRFdYR01BQyBvciBBbHRlcmEgU29DIEZQR0EgRXRoZXJuZXQgY29udHJvbGxlcnMuXG40LiAgR0NFIGRvZXNuJ3QgcHJvdmlkZSBlbXVsYXRpb24gZWl0aGVyLlxuXG5UaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIG5vdCByZWFjaGFibGUgaW4gdGhlc2UgZW52aXJvbm1lbnRzLiAgSSBkb3VibGUtY2hlY2sgdGhlIGZpbGVzIGFuZCB0aGUgZGVzY3JpcHRpb25zIG9mIHRoZSBjaGFuZ2VzLCBhbmQgSSdtIGxvb2tpbmcgZm9yIGFueSBvdGhlciBtb2RpZmljYXRpb25zLiBUaGUgZGlmZnMgY29uZmlybSB0aGF0IGFsbCBtb2RpZmljYXRpb25zIGFyZSBjb25maW5lZCB0byBoYXJkd2FyZS1zcGVjaWZpYyBkcml2ZXIgY29kZSB0aGF0IHJlbGllcyBvbiB0aGVzZSBwaHlzaWNhbCBTb0NzIGFuZCBGUEdBcy4gIFRoZSBwYXRjaCBpbXBhY3RzIHRoaW5ncyBsaWtlIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxpbmcgZm9yIERXWEdNQUMgYW5kIGNyb3NzLXRpbWVzdGFtcGluZyBpbiB0aGUgQWx0ZXJhIFNvQ0ZQR0EgZHJpdmVyLiAgQm90aCBhcmUgbm90IGFjY2Vzc2libGUgaW4gUUVNVSBvciBHQ0UuXG5cblRoZSBjb25jbHVzaW9uIGlzIHRoYXQgdGhpcyBwYXRjaCBpcyBub3Qgc3VpdGFibGUgZm9yIGZ1enppbmcuICBUaGUgYFdvcnRoRnV6emluZ2AgZmxhZyBzaG91bGQgYmUgc2V0IHRvIGBmYWxzZWAuIFRoZXJlIGFyZSBubyBzcGVjaWZpYyBzeW1ib2xzIG9yIGNvbmZpZ3VyYXRpb25zIHRvIGVuYWJsZSBvciBmb2N1cyBvbiBzaW5jZSB0aGUgY29kZSBjYW4ndCBiZSBleGVjdXRlZCwgYW5kIHRoZSByZWFzb25pbmcgaXMgY2xlYXI6IHRoZSBjaGFuZ2VzIGFyZSBoYXJkd2FyZS1kZXBlbmRlbnQgYW5kIGNhbid0IGJlIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFLlxuXG5GaW5hbGx5LCBJJ20gc2V0dGluZyB0aGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgZm9yIHRoZSBgc2V0LXJlc3VsdHNgIHRvb2w6XG5cbiogICBgV29ydGhGdXp6aW5nYDogYGZhbHNlYFxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW11gXG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgW11gXG4qICAgYFJlYXNvbmluZ2A6IENvbmNpc2UgZXhwbGFuYXRpb24gb2Ygd2h5IGl0IGlzIGBmYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQzMDUwLCJPdXRwdXRUb2tlbnMiOjExMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEzNzQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0wM1QwOTo0MDo0NC4zNzg5NDE0MjlaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMTk5MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgU3lub3BzeXMgU1RNTUFDIERXWEdNQUMgKDEwRyBNQUMpIHRpbWVzdGFtcCBpbnRlcnJ1cHQgaGFuZGxpbmcgYW5kIEFsdGVyYSBTb0NGUEdBIGV0aGVybmV0IGdsdWUgZHJpdmVyLiBUaGVzZSBjb2RlIHBhdGhzIHJlcXVpcmUgcGh5c2ljYWwgU29DL0ZQR0EgaGFyZHdhcmUgKHN1Y2ggYXMgSW50ZWwvQWx0ZXJhIFNvQ0ZQR0Egb3IgTnZpZGlhIFRlZ3JhIHBsYXRmb3JtcykgdGhhdCBpcyBub3QgYXZhaWxhYmxlIG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIFFFTVUgb3IgR0NFLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIFN5bm9wc3lzIFNUTU1BQyBEV1hHTUFDICgxMEcgTUFDKSB0aW1lc3RhbXAgaW50ZXJydXB0IGhhbmRsaW5nIGFuZCBBbHRlcmEgU29DRlBHQSBldGhlcm5ldCBnbHVlIGRyaXZlci4gVGhlc2UgY29kZSBwYXRocyByZXF1aXJlIHBoeXNpY2FsIFNvQy9GUEdBIGhhcmR3YXJlIChzdWNoIGFzIEludGVsL0FsdGVyYSBTb0NGUEdBIG9yIE52aWRpYSBUZWdyYSBwbGF0Zm9ybXMpIHRoYXQgaXMgbm90IGF2YWlsYWJsZSBvciBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBRRU1VIG9yIEdDRS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTAzVDA5OjQwOjQ0LjM3ODk2NjM2OVoiLCJTZXEiOjI3LCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTg1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7mxxf[1] Phase: Running StartedAt: 2026-09-03 09:40:55 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7mxxf[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-03 09:40:55 +0000 UTC FinishedAt: 2026-09-03 09:40:59 +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,}