Name: series-workflow7jm47 Phase: Failed StartedAt: 2026-07-25 06:03:08 +0000 UTC FinishedAt: 2026-07-25 07:00:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7jm47[0] Phase: Succeeded StartedAt: 2026-07-25 06:03:08 +0000 UTC FinishedAt: 2026-07-25 07:00:43 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7jm47[0].run-triage Phase: Succeeded StartedAt: 2026-07-25 06:03:08 +0000 UTC FinishedAt: 2026-07-25 07:00:43 +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+CgkJCTx0ZD4yMDI2LzA3LzI1IDA3OjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpNDBlIGRyaXZlciAoSW50ZWwgNDAgR2lnYWJpdCBFdGhlcm5ldCAvIFhMNzEwKSwgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGY1ZjkyZjU4MDA4YWQ0MzIzMTg1NTc2Y2ZlMjVjMGU1OGY3MTUyNWRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAyNSAwNzowMDoxMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmNcbmluZGV4IDlmNDczODhlYWJhNTM4Li4xMzkzMmIzNjE0MmRiNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jXG5AQCAtMyw2ICYjNDM7Myw3IEBAXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYnBmX3RyYWNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC91bnJvbGwuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NuZXQveGRwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQveGRwX3NvY2tfZHJ2LmhcdTAwM2VcbiAjaW5jbHVkZSBcJiMzNDtpNDBlX3R4cnhfY29tbW9uLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtpNDBlX3hzay5oXCYjMzQ7XG5AQCAtMjc3LDcwICYjNDM7Mjc4LDYgQEAgYm9vbCBpNDBlX2FsbG9jX3J4X2J1ZmZlcnNfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZywgdTE2IGNvdW50KVxuIFx0cmV0dXJuIGNvdW50ID09IG5iX2J1ZmZzO1xuIH1cbiBcbi0vKipcbi0gKiBpNDBlX2NvbnN0cnVjdF9za2JfemMgLSBDcmVhdGUgc2tidWZmIGZyb20gemVyby1jb3B5IFJ4IGJ1ZmZlclxuLSAqIEByeF9yaW5nOiBSeCByaW5nXG4tICogQHhkcDogeGRwX2J1ZmZcbi0gKlxuLSAqIFRoaXMgZnVuY3Rpb25zIGFsbG9jYXRlcyBhIG5ldyBza2IgZnJvbSBhIHplcm8tY29weSBSeCBidWZmZXIuXG4tICpcbi0gKiBSZXR1cm5zIHRoZSBza2IsIG9yIE5VTEwgb24gZmFpbHVyZS5cbi0gKiovXG4tc3RhdGljIHN0cnVjdCBza19idWZmICppNDBlX2NvbnN0cnVjdF9za2JfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcbi1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgeGRwX2J1ZmYgKnhkcClcbi17XG4tXHR1bnNpZ25lZCBpbnQgdG90YWxzaXplID0geGRwLVx1MDAzZWRhdGFfZW5kIC0geGRwLVx1MDAzZWRhdGFfbWV0YTtcbi1cdHVuc2lnbmVkIGludCBtZXRhc2l6ZSA9IHhkcC1cdTAwM2VkYXRhIC0geGRwLVx1MDAzZWRhdGFfbWV0YTtcbi1cdHN0cnVjdCBza2Jfc2hhcmVkX2luZm8gKnNpbmZvID0gTlVMTDtcbi1cdHN0cnVjdCBza19idWZmICpza2I7XG4tXHR1MzIgbnJfZnJhZ3MgPSAwO1xuLVxuLVx0aWYgKHVubGlrZWx5KHhkcF9idWZmX2hhc19mcmFncyh4ZHApKSkge1xuLVx0XHRzaW5mbyA9IHhkcF9nZXRfc2hhcmVkX2luZm9fZnJvbV9idWZmKHhkcCk7XG4tXHRcdG5yX2ZyYWdzID0gc2luZm8tXHUwMDNlbnJfZnJhZ3M7XG4tXHR9XG4tXHRuZXRfcHJlZmV0Y2goeGRwLVx1MDAzZWRhdGFfbWV0YSk7XG4tXG4tXHQvKiBhbGxvY2F0ZSBhIHNrYiB0byBzdG9yZSB0aGUgZnJhZ3MgKi9cbi1cdHNrYiA9IG5hcGlfYWxsb2Nfc2tiKFx1MDAyNnJ4X3JpbmctXHUwMDNlcV92ZWN0b3ItXHUwMDNlbmFwaSwgdG90YWxzaXplKTtcbi1cdGlmICh1bmxpa2VseSghc2tiKSlcbi1cdFx0Z290byBvdXQ7XG4tXG4tXHRtZW1jcHkoX19za2JfcHV0KHNrYiwgdG90YWxzaXplKSwgeGRwLVx1MDAzZWRhdGFfbWV0YSxcbi1cdCAgICAgICBBTElHTih0b3RhbHNpemUsIHNpemVvZihsb25nKSkpO1xuLVxuLVx0aWYgKG1ldGFzaXplKSB7XG4tXHRcdHNrYl9tZXRhZGF0YV9zZXQoc2tiLCBtZXRhc2l6ZSk7XG4tXHRcdF9fc2tiX3B1bGwoc2tiLCBtZXRhc2l6ZSk7XG4tXHR9XG4tXG4tXHRpZiAobGlrZWx5KCF4ZHBfYnVmZl9oYXNfZnJhZ3MoeGRwKSkpXG4tXHRcdGdvdG8gb3V0O1xuLVxuLVx0Zm9yIChpbnQgaSA9IDA7IGkgXHUwMDNjIG5yX2ZyYWdzOyBpJiM0MzsmIzQzOykge1xuLVx0XHRzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvICpza2luZm8gPSBza2Jfc2hpbmZvKHNrYik7XG4tXHRcdHNrYl9mcmFnX3QgKmZyYWcgPSBcdTAwMjZzaW5mby1cdTAwM2VmcmFnc1tpXTtcbi1cdFx0c3RydWN0IHBhZ2UgKnBhZ2U7XG4tXHRcdHZvaWQgKmFkZHI7XG4tXG4tXHRcdHBhZ2UgPSBkZXZfYWxsb2NfcGFnZSgpO1xuLVx0XHRpZiAoIXBhZ2UpIHtcbi1cdFx0XHRkZXZfa2ZyZWVfc2tiKHNrYik7XG4tXHRcdFx0cmV0dXJuIE5VTEw7XG4tXHRcdH1cbi1cdFx0YWRkciA9IHBhZ2VfdG9fdmlydChwYWdlKTtcbi1cbi1cdFx0bWVtY3B5KGFkZHIsIHNrYl9mcmFnX3BhZ2UoZnJhZyksIHNrYl9mcmFnX3NpemUoZnJhZykpO1xuLVxuLVx0XHRfX3NrYl9maWxsX3BhZ2VfZGVzY19ub2FjYyhza2luZm8sIHNraW5mby1cdTAwM2Vucl9mcmFncyYjNDM7JiM0MzssXG4tXHRcdFx0XHRcdCAgIGFkZHIsIDAsIHNrYl9mcmFnX3NpemUoZnJhZykpO1xuLVx0fVxuLVxuLW91dDpcbi1cdHhza19idWZmX2ZyZWUoeGRwKTtcbi1cdHJldHVybiBza2I7XG4tfVxuLVxuIHN0YXRpYyB2b2lkIGk0MGVfaGFuZGxlX3hkcF9yZXN1bHRfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcbiBcdFx0XHRcdCAgICAgIHN0cnVjdCB4ZHBfYnVmZiAqeGRwX2J1ZmYsXG4gXHRcdFx0XHQgICAgICB1bmlvbiBpNDBlX3J4X2Rlc2MgKnJ4X2Rlc2MsXG5AQCAtMzcyLDE0ICYjNDM7MzA5LDIxIEBAIHN0YXRpYyB2b2lkIGk0MGVfaGFuZGxlX3hkcF9yZXN1bHRfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcbiBcdFx0ICogQklUKEk0MEVfUlhEX1FXMV9FUlJPUl9TSElGVCkuIFRoaXMgaXMgZHVlIHRvIHRoYXRcbiBcdFx0ICogU0JQIGlzICpub3QqIHNldCBpbiBQUlRfU0JQVlNJIChkZWZhdWx0IG5vdCBzZXQpLlxuIFx0XHQgKi9cbi1cdFx0c2tiID0gaTQwZV9jb25zdHJ1Y3Rfc2tiX3pjKHJ4X3JpbmcsIHhkcF9idWZmKTtcbiYjNDM7XHRcdHNrYiA9IHhkcF9idWlsZF9za2JfZnJvbV96Yyh4ZHBfYnVmZik7XG4gXHRcdGlmICghc2tiKSB7XG4mIzQzO1x0XHRcdHhza19idWZmX2ZyZWUoeGRwX2J1ZmYpO1xuIFx0XHRcdHJ4X3JpbmctXHUwMDNlcnhfc3RhdHMuYWxsb2NfYnVmZl9mYWlsZWQmIzQzOyYjNDM7O1xuIFx0XHRcdCpyeF9wYWNrZXRzID0gMDtcbiBcdFx0XHQqcnhfYnl0ZXMgPSAwO1xuIFx0XHRcdHJldHVybjtcbiBcdFx0fVxuIFxuJiM0MztcdFx0LypcbiYjNDM7XHRcdCAqIHhkcF9idWlsZF9za2JfZnJvbV96YygpIGFscmVhZHkgcmFuIGV0aF90eXBlX3RyYW5zKCk7XG4mIzQzO1x0XHQgKiByZXN0b3JlIHRoZSBoZWFkZXIgZm9yIGV0aF9za2JfcGFkKCkvcHJvY2Vzc19za2JfZmllbGRzKCkuXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdF9fc2tiX3B1c2goc2tiLCBza2ItXHUwMDNlZGF0YSAtIHNrYl9tYWNfaGVhZGVyKHNrYikpO1xuJiM0MztcbiBcdFx0aWYgKGV0aF9za2JfcGFkKHNrYikpIHtcbiBcdFx0XHQqcnhfcGFja2V0cyA9IDA7XG4gXHRcdFx0KnJ4X2J5dGVzID0gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGk0MGUgZHJpdmVyIChJbnRlbCA0MCBHaWdhYml0IEV0aGVybmV0IC8gWEw3MTApLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZjVmOTJmNTgwMDhhZDQzMjMxODU1NzZjZmUyNWMwZTU4ZjcxNTI1ZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgSnVsIDI1IDA3OjAwOjEwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jCmluZGV4IDlmNDczODhlYWJhNTM4Li4xMzkzMmIzNjE0MmRiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suYwpAQCAtMyw2ICYjNDM7Myw3IEBACiAKICNpbmNsdWRlICZsdDtsaW51eC9icGZfdHJhY2UuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC91bnJvbGwuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bmV0L3hkcC5oJmd0OwogI2luY2x1ZGUgJmx0O25ldC94ZHBfc29ja19kcnYuaCZndDsKICNpbmNsdWRlICYjMzQ7aTQwZV90eHJ4X2NvbW1vbi5oJiMzNDsKICNpbmNsdWRlICYjMzQ7aTQwZV94c2suaCYjMzQ7CkBAIC0yNzcsNzAgJiM0MzsyNzgsNiBAQCBib29sIGk0MGVfYWxsb2NfcnhfYnVmZmVyc196YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLCB1MTYgY291bnQpCiAJcmV0dXJuIGNvdW50ID09IG5iX2J1ZmZzOwogfQogCi0vKioKLSAqIGk0MGVfY29uc3RydWN0X3NrYl96YyAtIENyZWF0ZSBza2J1ZmYgZnJvbSB6ZXJvLWNvcHkgUnggYnVmZmVyCi0gKiBAcnhfcmluZzogUnggcmluZwotICogQHhkcDogeGRwX2J1ZmYKLSAqCi0gKiBUaGlzIGZ1bmN0aW9ucyBhbGxvY2F0ZXMgYSBuZXcgc2tiIGZyb20gYSB6ZXJvLWNvcHkgUnggYnVmZmVyLgotICoKLSAqIFJldHVybnMgdGhlIHNrYiwgb3IgTlVMTCBvbiBmYWlsdXJlLgotICoqLwotc3RhdGljIHN0cnVjdCBza19idWZmICppNDBlX2NvbnN0cnVjdF9za2JfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZywKLQkJCQkJICAgICBzdHJ1Y3QgeGRwX2J1ZmYgKnhkcCkKLXsKLQl1bnNpZ25lZCBpbnQgdG90YWxzaXplID0geGRwLSZndDtkYXRhX2VuZCAtIHhkcC0mZ3Q7ZGF0YV9tZXRhOwotCXVuc2lnbmVkIGludCBtZXRhc2l6ZSA9IHhkcC0mZ3Q7ZGF0YSAtIHhkcC0mZ3Q7ZGF0YV9tZXRhOwotCXN0cnVjdCBza2Jfc2hhcmVkX2luZm8gKnNpbmZvID0gTlVMTDsKLQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwotCXUzMiBucl9mcmFncyA9IDA7Ci0KLQlpZiAodW5saWtlbHkoeGRwX2J1ZmZfaGFzX2ZyYWdzKHhkcCkpKSB7Ci0JCXNpbmZvID0geGRwX2dldF9zaGFyZWRfaW5mb19mcm9tX2J1ZmYoeGRwKTsKLQkJbnJfZnJhZ3MgPSBzaW5mby0mZ3Q7bnJfZnJhZ3M7Ci0JfQotCW5ldF9wcmVmZXRjaCh4ZHAtJmd0O2RhdGFfbWV0YSk7Ci0KLQkvKiBhbGxvY2F0ZSBhIHNrYiB0byBzdG9yZSB0aGUgZnJhZ3MgKi8KLQlza2IgPSBuYXBpX2FsbG9jX3NrYigmYW1wO3J4X3JpbmctJmd0O3FfdmVjdG9yLSZndDtuYXBpLCB0b3RhbHNpemUpOwotCWlmICh1bmxpa2VseSghc2tiKSkKLQkJZ290byBvdXQ7Ci0KLQltZW1jcHkoX19za2JfcHV0KHNrYiwgdG90YWxzaXplKSwgeGRwLSZndDtkYXRhX21ldGEsCi0JICAgICAgIEFMSUdOKHRvdGFsc2l6ZSwgc2l6ZW9mKGxvbmcpKSk7Ci0KLQlpZiAobWV0YXNpemUpIHsKLQkJc2tiX21ldGFkYXRhX3NldChza2IsIG1ldGFzaXplKTsKLQkJX19za2JfcHVsbChza2IsIG1ldGFzaXplKTsKLQl9Ci0KLQlpZiAobGlrZWx5KCF4ZHBfYnVmZl9oYXNfZnJhZ3MoeGRwKSkpCi0JCWdvdG8gb3V0OwotCi0JZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBucl9mcmFnczsgaSYjNDM7JiM0MzspIHsKLQkJc3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2tpbmZvID0gc2tiX3NoaW5mbyhza2IpOwotCQlza2JfZnJhZ190ICpmcmFnID0gJmFtcDtzaW5mby0mZ3Q7ZnJhZ3NbaV07Ci0JCXN0cnVjdCBwYWdlICpwYWdlOwotCQl2b2lkICphZGRyOwotCi0JCXBhZ2UgPSBkZXZfYWxsb2NfcGFnZSgpOwotCQlpZiAoIXBhZ2UpIHsKLQkJCWRldl9rZnJlZV9za2Ioc2tiKTsKLQkJCXJldHVybiBOVUxMOwotCQl9Ci0JCWFkZHIgPSBwYWdlX3RvX3ZpcnQocGFnZSk7Ci0KLQkJbWVtY3B5KGFkZHIsIHNrYl9mcmFnX3BhZ2UoZnJhZyksIHNrYl9mcmFnX3NpemUoZnJhZykpOwotCi0JCV9fc2tiX2ZpbGxfcGFnZV9kZXNjX25vYWNjKHNraW5mbywgc2tpbmZvLSZndDtucl9mcmFncyYjNDM7JiM0MzssCi0JCQkJCSAgIGFkZHIsIDAsIHNrYl9mcmFnX3NpemUoZnJhZykpOwotCX0KLQotb3V0OgotCXhza19idWZmX2ZyZWUoeGRwKTsKLQlyZXR1cm4gc2tiOwotfQotCiBzdGF0aWMgdm9pZCBpNDBlX2hhbmRsZV94ZHBfcmVzdWx0X3pjKHN0cnVjdCBpNDBlX3JpbmcgKnJ4X3JpbmcsCiAJCQkJICAgICAgc3RydWN0IHhkcF9idWZmICp4ZHBfYnVmZiwKIAkJCQkgICAgICB1bmlvbiBpNDBlX3J4X2Rlc2MgKnJ4X2Rlc2MsCkBAIC0zNzIsMTQgJiM0MzszMDksMjEgQEAgc3RhdGljIHZvaWQgaTQwZV9oYW5kbGVfeGRwX3Jlc3VsdF96YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLAogCQkgKiBCSVQoSTQwRV9SWERfUVcxX0VSUk9SX1NISUZUKS4gVGhpcyBpcyBkdWUgdG8gdGhhdAogCQkgKiBTQlAgaXMgKm5vdCogc2V0IGluIFBSVF9TQlBWU0kgKGRlZmF1bHQgbm90IHNldCkuCiAJCSAqLwotCQlza2IgPSBpNDBlX2NvbnN0cnVjdF9za2JfemMocnhfcmluZywgeGRwX2J1ZmYpOwomIzQzOwkJc2tiID0geGRwX2J1aWxkX3NrYl9mcm9tX3pjKHhkcF9idWZmKTsKIAkJaWYgKCFza2IpIHsKJiM0MzsJCQl4c2tfYnVmZl9mcmVlKHhkcF9idWZmKTsKIAkJCXJ4X3JpbmctJmd0O3J4X3N0YXRzLmFsbG9jX2J1ZmZfZmFpbGVkJiM0MzsmIzQzOzsKIAkJCSpyeF9wYWNrZXRzID0gMDsKIAkJCSpyeF9ieXRlcyA9IDA7CiAJCQlyZXR1cm47CiAJCX0KIAomIzQzOwkJLyoKJiM0MzsJCSAqIHhkcF9idWlsZF9za2JfZnJvbV96YygpIGFscmVhZHkgcmFuIGV0aF90eXBlX3RyYW5zKCk7CiYjNDM7CQkgKiByZXN0b3JlIHRoZSBoZWFkZXIgZm9yIGV0aF9za2JfcGFkKCkvcHJvY2Vzc19za2JfZmllbGRzKCkuCiYjNDM7CQkgKi8KJiM0MzsJCV9fc2tiX3B1c2goc2tiLCBza2ItJmd0O2RhdGEgLSBza2JfbWFjX2hlYWRlcihza2IpKTsKJiM0MzsKIAkJaWYgKGV0aF9za2JfcGFkKHNrYikpIHsKIAkJCSpyeF9wYWNrZXRzID0gMDsKIAkJCSpyeF9ieXRlcyA9IDA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA3OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjQKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBpNDBlIFBhdGNoIGFuZCBRRU1VIFJlYWNoYWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suY2AuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgcmVtb3ZlZCBgaTQwZV9jb25zdHJ1Y3Rfc2tiX3pjYCBhbmQgc3dhcHBlZCBpdCBvdXQgd2l0aCBgeGRwX2J1aWxkX3NrYl9mcm9tX3pjKHhkcF9idWZmKWAuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIHN1Z2dlc3RpbmcgYSBwb3RlbnRpYWwgWERQIG9wdGltaXphdGlvbiwgcHJvYmFibHkgYWltaW5nIGZvciB6ZXJvLWNvcHkgU0tCIGNvbnN0cnVjdGlvbiB3aXRoaW4gdGhlIGk0MGUgZHJpdmVyLiBUaGlzIGlzIHNwZWNpZmljYWxseSBmb3IgSW50ZWwgNDAgR2lnYWJpdCBFdGhlcm5ldCBhZGFwdGVycywgdGhlIGBpNDBlYCBkcml2ZXIuCgpUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIEkgaGF2ZSBpcyBhYm91dCBob3cgZWFzeSBpdCYjMzk7bGwgYmUgdG8gdGVzdCB0aGlzIGNoYW5nZS4gSXMgdGhpcyBkcml2ZXIgZXZlbiByZWFjaGFibGUgaW4gYSB0eXBpY2FsIFFFTVUgc2V0dXA/IEkga25vdyBRRU1VIHByZXR0eSB3ZWxsLCBhbmQgSSYjMzk7bSBwcmV0dHkgc3VyZSBpdCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBpNDBlLiBJdCYjMzk7cyB1c3VhbGx5IHRoZSBvbGRlciBhbmQgbW9yZSBjb21tb24gYWRhcHRlcnMgbGlrZSBlMTAwMCwgZTEwMDBlLCBpZ2IsIHJ0bDgxMzksIGFuZCB2aXJ0aW8tbmV0LCBvciB0aG9zZSB0aGF0IGFyZSBlYXNpZXIgdG8gc2ltdWxhdGUuIEJ1dCB3YWl0LCBJIHNob3VsZCBkb3VibGUgY2hlY2suIExldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCBRRU1VIGluZGVlZCBkb2VzbiYjMzk7dCBoYXZlIGFuIGk0MGUgZGV2aWNlLiBKdXN0IHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDc6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aTQwZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyNDU0OSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZS00LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6NTojIE1ha2VmaWxlIGZvciB0aGUgSW50ZWwoUikgRXRoZXJuZXQgQ29ubmVjdGlvbiBYTDcxMCAoaTQwZS5rbykgZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlLTYtI1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU9OT1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZS0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX0k0MEUpICYjNDM7PSBpNDBlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGUtMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjEzOmk0MGUteSA6PSBpNDBlX21haW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxNDpcdGk0MGVfZXRodG9vbC5vXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxNTpcdGk0MGVfYWRtaW5xLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjE2Olx0aTQwZV9jb21tb24ub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTc6XHRpNDBlX2htYy5vXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxODpcdGk0MGVfbGFuX2htYy5vXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxOTpcdGk0MGVfbnZtLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIwOlx0aTQwZV9kZWJ1Z2ZzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIxOlx0aTQwZV9kaWFnLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIyOlx0aTQwZV90eHJ4Lm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIzOlx0aTQwZV9wdHAub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MjQ6XHRpNDBlX2RkcC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjI1Olx0aTQwZV9jbGllbnQubyAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjI2Olx0aTQwZV92aXJ0Y2hubF9wZi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjI3Olx0aTQwZV94c2sub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6Mjg6XHRpNDBlX2Rldmxpbmsub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZS0yOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MzA6aTQwZS0kKENPTkZJR19JNDBFX0RDQikgJiM0Mzs9IGk0MGVfZGNiLm8gaTQwZV9kY2Jfbmwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExLSNpbmNsdWRlIFx1MDAzY2xpbnV4L2F2Zi92aXJ0Y2hubC5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjojaW5jbHVkZSBcdTAwM2NsaW51eC9uZXQvaW50ZWwvaTQwZV9jbGllbnQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTMtI2luY2x1ZGUgXHUwMDNjbmV0L2RldmxpbmsuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTE1LSNpbmNsdWRlIFx1MDAzY25ldC91ZHBfdHVubmVsLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE2OiNpbmNsdWRlIFwmIzM0O2k0MGVfZGNiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE3OiNpbmNsdWRlIFwmIzM0O2k0MGVfZGVidWcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTg6I2luY2x1ZGUgXCYjMzQ7aTQwZV9kZXZsaW5rLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE5OiNpbmNsdWRlIFwmIzM0O2k0MGVfaW8uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MjA6I2luY2x1ZGUgXCYjMzQ7aTQwZV9wcm90b3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MjE6I2luY2x1ZGUgXCYjMzQ7aTQwZV9yZWdpc3Rlci5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMjojaW5jbHVkZSBcJiMzNDtpNDBlX3R4cnguaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyNDovKiBVc2VmdWwgaTQwZSBkZWZhdWx0cyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjUtI2RlZmluZSBJNDBFX01BWF9WRUJcdFx0XHQxNlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM2LS8qIG1heCAxNiBxcHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM3OiNkZWZpbmUgaTQwZV9kZWZhdWx0X3F1ZXVlc19wZXJfdm1kcShwZikgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM4LVx0KHRlc3RfYml0KEk0MEVfSFdfQ0FQX1JTU19BUSwgKHBmKS1cdTAwM2Vody5jYXBzKSA/IDQgOiAxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQwLSNkZWZpbmUgSTQwRV9NQVhfVkZfUVVFVUVTXHRcdDE2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0MTojZGVmaW5lIGk0MGVfcGZfZ2V0X21heF9xX3Blcl90YyhwZikgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQyLVx0KHRlc3RfYml0KEk0MEVfSFdfQ0FQXzEyOF9RUF9SU1MsIChwZiktXHUwMDNlaHcuY2FwcykgPyAxMjggOiA2NClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC02OC0jZGVmaW5lIEk0MEVfUlhfREVTQyhSLCBpKVx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjY5Olx0KFx1MDAyNigoKHVuaW9uIGk0MGVfcnhfZGVzYyAqKSgoUiktXHUwMDNlZGVzYykpW2ldKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcwLSNkZWZpbmUgSTQwRV9UWF9ERVNDKFIsIGkpXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzE6XHQoXHUwMDI2KCgoc3RydWN0IGk0MGVfdHhfZGVzYyAqKSgoUiktXHUwMDNlZGVzYykpW2ldKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcyLSNkZWZpbmUgSTQwRV9UWF9DVFhUREVTQyhSLCBpKVx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjczOlx0KFx1MDAyNigoKHN0cnVjdCBpNDBlX3R4X2NvbnRleHRfZGVzYyAqKSgoUiktXHUwMDNlZGVzYykpW2ldKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0LSNkZWZpbmUgSTQwRV9UWF9GRElSREVTQyhSLCBpKVx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc1Olx0KFx1MDAyNigoKHN0cnVjdCBpNDBlX2ZpbHRlcl9wcm9ncmFtX2Rlc2MgKikoKFIpLVx1MDAzZWRlc2MpKVtpXSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04Mi0vKiBkcml2ZXIgc3RhdGUgZmxhZ3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgzOmVudW0gaTQwZV9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04NC1cdF9fSTQwRV9URVNUSU5HLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExOS1cdF9fSTQwRV9SRUNPVkVSWV9NT0RFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwOlx0X19JNDBFX1ZGX1JFU0VUU19ESVNBQkxFRCxcdC8qIGRpc2FibGUgcmVzZXRzIGR1cmluZyBpNDBlX3JlbW92ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIxLVx0X19JNDBFX0lOX1JFTU9WRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMzEtLyogVlNJIHN0YXRlIGZsYWdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMzI6ZW51bSBpNDBlX3ZzaV9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMzMtXHRfX0k0MEVfVlNJX0RPV04sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTQ0OmVudW0gaTQwZV9wZl9mbGFncyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xNDUtXHRJNDBFX0ZMQUdfTVNJX0VOQSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xOTAtXHQgKiAgIGJpdCAoSTQwRV9BUV9QSFlfRU5BQkxFX0xJTkspIGluIGFiaWxpdGllcyBmaWVsZCBvZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTkxOlx0ICogICBpNDBlX2FxX3NldF9waHlfY29uZmlnIHN0cnVjdHVyZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTkyLVx0ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTk5OmVudW0gaTQwZV9pbnRlcnJ1cHRfcG9saWN5IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIwMC1cdEk0MEVfSU5URVJSVVBUX0JFU1RfQ0FTRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMDU6c3RydWN0IGk0MGVfbHVtcF90cmFja2luZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yMDYtXHR1MTYgbnVtX2VudHJpZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MjIyOmVudW0gaTQwZV9mZF9zdGF0X2lkeCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yMjMtXHRJNDBFX0ZEX1NUQVRfQVRSLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIzOC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjIzOTpzdHJ1Y3QgaTQwZV9yeF9mbG93X3VzZXJkZWYge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjQwLVx0Ym9vbCBmbGV4X2ZpbHRlcjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyNDU6c3RydWN0IGk0MGVfZmRpcl9maWx0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjQ2LVx0c3RydWN0IGhsaXN0X25vZGUgZmRpcl9ub2RlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjI5NzpzdHJ1Y3QgaTQwZV9jbG91ZF9maWx0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjk4LVx0c3RydWN0IGhsaXN0X25vZGUgY2xvdWRfbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zMzItLyogRENCIHBlciBUQyBpbmZvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MzMzOnN0cnVjdCBpNDBlX3RjX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzM0LVx0dTE2XHRxb2Zmc2V0O1x0LyogUXVldWUgb2Zmc2V0IGZyb20gYmFzZSBxdWV1ZSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTMzOS0vKiBUQyBjb25maWd1cmF0aW9uIGRhdGEgc3RydWN0dXJlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDozNDA6c3RydWN0IGk0MGVfdGNfY29uZmlndXJhdGlvbiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zNDEtXHR1OFx0bnVtdGM7XHRcdC8qIFRvdGFsIG51bWJlciBvZiBlbmFibGVkIFRDcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzQyLVx0dThcdGVuYWJsZWRfdGM7XHQvKiBUQyBtYXAgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0MzpcdHN0cnVjdCBpNDBlX3RjX2luZm8gdGNfaW5mb1tJNDBFX01BWF9UUkFGRklDX0NMQVNTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM0NC19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM0Ni0jZGVmaW5lIEk0MEVfVURQX1BPUlRfSU5ERVhfVU5VU0VEXHQyNTVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0NzpzdHJ1Y3QgaTQwZV91ZHBfcG9ydF9jb25maWcge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzQ4LVx0LyogQWRtaW5RIGNvbW1hbmQgaW50ZXJmYWNlIGV4cGVjdHMgcG9ydCBudW1iZXIgaW4gSG9zdCBieXRlIG9yZGVyICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDIxOnN0cnVjdCBpNDBlX2ZsZXhfcGl0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQyMi1cdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0Mjc6c3RydWN0IGk0MGVfZndkX2FkYXB0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDI4LVx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0MzI6c3RydWN0IGk0MGVfY2hhbm5lbCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MzMtXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDQyLVx0dTggZW5hYmxlZF90YztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ0MzpcdHN0cnVjdCBpNDBlX2FxY192c2lfcHJvcGVydGllc19kYXRhIGluZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NDUtXHR1NjQgbWF4X3R4X3JhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0NDY6XHRzdHJ1Y3QgaTQwZV9md2RfYWRhcHRlciAqZndkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDQ4LVx0LyogdHJhY2sgdGhpcyBjaGFubmVsIGJlbG9uZ3MgdG8gd2hpY2ggVlNJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0NDk6XHRzdHJ1Y3QgaTQwZV92c2kgKnBhcmVudF92c2k7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ1MjpzdHJ1Y3QgaTQwZV9wdHBfcGluc19zZXR0aW5ncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ1NDpzdGF0aWMgaW5saW5lIGJvb2wgaTQwZV9pc19jaGFubmVsX21hY3ZsYW4oc3RydWN0IGk0MGVfY2hhbm5lbCAqY2gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ1OTpzdGF0aWMgaW5saW5lIGNvbnN0IHU4ICppNDBlX2NoYW5uZWxfbWFjKHN0cnVjdCBpNDBlX2NoYW5uZWwgKmNoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDYwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ2MTpcdGlmIChpNDBlX2lzX2NoYW5uZWxfbWFjdmxhbihjaCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjItXHRcdHJldHVybiBjaC1cdTAwM2Vmd2QtXHUwMDNlbmV0ZGV2LVx1MDAzZWRldl9hZGRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ2Ny0vKiBzdHJ1Y3QgdGhhdCBkZWZpbmVzIHRoZSBFdGhlcm5ldCBkZXZpY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ2ODpzdHJ1Y3QgaTQwZV9wZiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjktXHRzdHJ1Y3QgcGNpX2RldiAqcGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ3MC1cdHN0cnVjdCBkZXZsaW5rX3BvcnQgZGV2bGlua19wb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDcxOlx0c3RydWN0IGk0MGVfaHcgaHc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NzItXHRERUNMQVJFX0JJVE1BUChzdGF0ZSwgX19JNDBFX1NUQVRFX1NJWkVfXyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTM2LVx0REVDTEFSRV9CSVRNQVAoZmxhZ3MsIEk0MEVfUEZfRkxBR1NfTkJJVFMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTM3Olx0c3RydWN0IGk0MGVfY2xpZW50X2luc3RhbmNlICpjaW5zdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTUzOC1cdGJvb2wgc3RhdF9vZmZzZXRzX2xvYWRlZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjUzOTpcdHN0cnVjdCBpNDBlX2h3X3BvcnRfc3RhdHMgc3RhdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1NDA6XHRzdHJ1Y3QgaTQwZV9od19wb3J0X3N0YXRzIHN0YXRzX29mZnNldHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NDEtXHR1MzIgdHhfdGltZW91dF9jb3VudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NTgtXHR1MTYgbmV4dF92c2k7ICAgICAgLyogTmV4dCB1bmFsbG9jYXRlZCBWU0kgLSAwLWJhc2VkISAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTU5Olx0c3RydWN0IGk0MGVfdnNpICoqdnNpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTYwOlx0c3RydWN0IGk0MGVfdmViICp2ZWJbSTQwRV9NQVhfVkVCXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjU2MjpcdHN0cnVjdCBpNDBlX2x1bXBfdHJhY2tpbmcgKnFwX3BpbGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1NjM6XHRzdHJ1Y3QgaTQwZV9sdW1wX3RyYWNraW5nICppcnFfcGlsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU2NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NjgtI2lmZGVmIENPTkZJR19ERUJVR19GU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTY5Olx0c3RydWN0IGRlbnRyeSAqaTQwZV9kYmdfcGY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NzAtI2VuZGlmIC8qIENPTkZJR19ERUJVR19GUyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU3My1cdC8qIHNyLWlvdiBjb25maWcgaW5mbyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTc0Olx0c3RydWN0IGk0MGVfdmYgKnZmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTc1LVx0aW50IG51bV9hbGxvY192ZnM7XHQvKiBhY3R1YWwgbnVtYmVyIG9mIFZGcyBhbGxvY2F0ZWQgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01OTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1OTI6XHRzdHJ1Y3QgaTQwZV9maWx0ZXJfY29udHJvbF9zZXR0aW5ncyBmaWx0ZXJfc2V0dGluZ3M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1OTM6XHRzdHJ1Y3QgaTQwZV9yeF9wYl9jb25maWcgcGJfY2ZnOyAvKiBDdXJyZW50IFJ4IHBhY2tldCBidWZmZXIgY29uZmlnICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1OTQ6XHRzdHJ1Y3QgaTQwZV9kY2J4X2NvbmZpZyB0bXBfY2ZnO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTk1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY4MS1cdGJvb2wgcHRwX3J4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NjgyOlx0c3RydWN0IGk0MGVfcHRwX3BpbnNfc2V0dGluZ3MgKnB0cF9waW5zO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNjgzLVx0dTE2IHJzc190YWJsZV9zaXplOyAvKiBIVyBSU1MgdGFibGUgc2l6ZSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY5Ny0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjY5ODogKiBfX2k0MGVfcGZfbmV4dF92c2kgLSBnZXQgbmV4dCB2YWxpZCBWU0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY5OS0gKiBAcGY6IHBvaW50ZXIgdG8gdGhlIFBGIHN0cnVjdFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcwNC0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MDU6c3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgaTQwZV92c2kgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzA2Ol9faTQwZV9wZl9uZXh0X3ZzaShzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCAqaWR4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzA3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MTY6I2RlZmluZSBpNDBlX3BmX2Zvcl9lYWNoX3ZzaShfcGYsIF9pLCBfdnNpKVx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MTc6XHRmb3IgKF9pID0gMCwgX3ZzaSA9IF9faTQwZV9wZl9uZXh0X3ZzaShfcGYsIFx1MDAyNl9pKTtcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MTgtXHQgICAgIF92c2k7XHRcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcxOTpcdCAgICAgX2kmIzQzOyYjNDM7LCBfdnNpID0gX19pNDBlX3BmX25leHRfdnNpKF9wZiwgXHUwMDI2X2kpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzIxLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzIyOiAqIF9faTQwZV9wZl9uZXh0X3ZlYiAtIGdldCBuZXh0IHZhbGlkIFZFQlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzIzLSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzI4LSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcyOTpzdGF0aWMgX19hbHdheXNfaW5saW5lIHN0cnVjdCBpNDBlX3ZlYiAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MzA6X19pNDBlX3BmX25leHRfdmViKHN0cnVjdCBpNDBlX3BmICpwZiwgaW50ICppZHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTczOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MDojZGVmaW5lIGk0MGVfcGZfZm9yX2VhY2hfdmViKF9wZiwgX2ksIF92ZWIpXHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MTpcdGZvciAoX2kgPSAwLCBfdmViID0gX19pNDBlX3BmX25leHRfdmViKF9wZiwgXHUwMDI2X2kpO1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0Mi1cdCAgICAgX3ZlYjtcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzQzOlx0ICAgICBfaSYjNDM7JiM0MzssIF92ZWIgPSBfX2k0MGVfcGZfbmV4dF92ZWIoX3BmLCBcdTAwMjZfaSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NDUtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NDY6ICogaTQwZV9hZGRyX3RvX2hrZXkgLSBDb252ZXJ0IGEgNi1ieXRlIE1BQyBBZGRyZXNzIHRvIGEgdTY0IGhhc2gga2V5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NDctICogQG1hY2FkZHI6IHRoZSBNQUMgQWRkcmVzcyBhcyB0aGUgYmFzZSBrZXlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NTAtICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzUxOnN0YXRpYyBpbmxpbmUgdTY0IGk0MGVfYWRkcl90b19oa2V5KGNvbnN0IHU4ICptYWNhZGRyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NTk6ZW51bSBpNDBlX2ZpbHRlcl9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NjAtXHRJNDBFX0ZJTFRFUl9JTlZBTElEID0gMCxcdC8qIEludmFsaWQgc3RhdGUgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NjQtXHRJNDBFX0ZJTFRFUl9SRU1PVkUsXHRcdC8qIFRvIGJlIHJlbW92ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc2NTpcdEk0MEVfRklMVEVSX05FV19TWU5DLFx0XHQvKiBOZXcsIG5vdCBzZW50IHlldCwgaXMgaW4gaTQwZV9zeW5jX3ZzaV9maWx0ZXJzKCkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc2Ni0vKiBUaGVyZSBpcyBubyAmIzM5O3JlbW92ZWQmIzM5OyBzdGF0ZTsgdGhlIGZpbHRlciBzdHJ1Y3QgaXMgZnJlZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc2Ny19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzY4OnN0cnVjdCBpNDBlX21hY19maWx0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzY5LVx0c3RydWN0IGhsaXN0X25vZGUgaGxpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzcyLVx0czE2IHZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NzM6XHRlbnVtIGk0MGVfZmlsdGVyX3N0YXRlIHN0YXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzc0LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzgzLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg0OnN0cnVjdCBpNDBlX25ld19tYWNfZmlsdGVyIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc4NS1cdHN0cnVjdCBobGlzdF9ub2RlIGhsaXN0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg2Olx0c3RydWN0IGk0MGVfbWFjX2ZpbHRlciAqZjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc4OC1cdC8qIFRyYWNrIGZ1dHVyZSBjaGFuZ2VzIHRvIHN0YXRlIHNlcGFyYXRlbHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc4OTpcdGVudW0gaTQwZV9maWx0ZXJfc3RhdGUgc3RhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03OTAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc5MjpzdHJ1Y3QgaTQwZV92ZWIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzkzOlx0c3RydWN0IGk0MGVfcGYgKnBmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzk0LVx0dTE2IGlkeDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04MDctXHRib29sIHN0YXRfb2Zmc2V0c19sb2FkZWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4MDg6XHRzdHJ1Y3QgaTQwZV9ldGhfc3RhdHMgc3RhdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4MDk6XHRzdHJ1Y3QgaTQwZV9ldGhfc3RhdHMgc3RhdHNfb2Zmc2V0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgxMDpcdHN0cnVjdCBpNDBlX3ZlYl90Y19zdGF0cyB0Y19zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgxMTpcdHN0cnVjdCBpNDBlX3ZlYl90Y19zdGF0cyB0Y19zdGF0c19vZmZzZXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODEyLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODE0LS8qIHN0cnVjdCB0aGF0IGRlZmluZXMgYSBWU0ksIGFzc29jaWF0ZWQgd2l0aCBhIGRldiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODE1OnN0cnVjdCBpNDBlX3ZzaSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04MTYtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTgzNS1cdHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCBuZXRfc3RhdHNfb2Zmc2V0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgzNjpcdHN0cnVjdCBpNDBlX2V0aF9zdGF0cyBldGhfc3RhdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4Mzc6XHRzdHJ1Y3QgaTQwZV9ldGhfc3RhdHMgZXRoX3N0YXRzX29mZnNldHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04MzgtXHR1NjQgdHhfcmVzdGFydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04NTAtXHQvKiBUaGVzZSBhcmUgY29udGFpbmVycyBvZiByaW5nIHBvaW50ZXJzLCBhbGxvY2F0ZWQgYXQgcnVuLXRpbWUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg1MTpcdHN0cnVjdCBpNDBlX3JpbmcgKipyeF9yaW5ncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg1MjpcdHN0cnVjdCBpNDBlX3JpbmcgKip0eF9yaW5ncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg1MzpcdHN0cnVjdCBpNDBlX3JpbmcgKip4ZHBfcmluZ3M7IC8qIFhEUCBUeCByaW5ncyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODU0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg3Mi1cdC8qIExpc3Qgb2YgcV92ZWN0b3JzIGFsbG9jYXRlZCB0byB0aGlzIFZTSSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODczOlx0c3RydWN0IGk0MGVfcV92ZWN0b3IgKipxX3ZlY3RvcnM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04NzQtXHRpbnQgbnVtX3FfdmVjdG9ycztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04ODctXHR1MTYgbnVtX3J4X2Rlc2M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4ODg6XHRlbnVtIGk0MGVfdnNpX3R5cGUgdHlwZTsgIC8qIFZTSSB0eXBlLCBlLmcuLCBMQU4sIEZDb0UsIGV0YyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODg5LVx0czE2IHZmX2lkO1x0XHQvKiBWaXJ0dWFsIGZ1bmN0aW9uIElEIGZvciBTUklPViBWU0lzICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODkxLVx0c3RydWN0IHRjX21xcHJpb19xb3B0X29mZmxvYWQgbXFwcmlvX3FvcHQ7IC8qIHF1ZXVlIHBhcmFtZXRlcnMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg5MjpcdHN0cnVjdCBpNDBlX3RjX2NvbmZpZ3VyYXRpb24gdGNfY29uZmlnO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODkzOlx0c3RydWN0IGk0MGVfYXFjX3ZzaV9wcm9wZXJ0aWVzX2RhdGEgaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg5NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5MDY6XHRzdHJ1Y3QgaTQwZV9wZiAqYmFjaztcdC8qIEJhY2tyZWZlcmVuY2UgdG8gYXNzb2NpYXRlZCBQRiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTA3LVx0dTE2IGlkeDtcdFx0LyogaW5kZXggaW4gcGYtXHUwMDNldnNpW10gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05MTAtXHRib29sIGN1cnJlbnRfaXN1cDtcdC8qIFN5bmMgJiMzOTtsaW5rIHVwJiMzOTsgbG9nZ2luZyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTExOlx0ZW51bSBpNDBlX2FxX2xpbmtfc3BlZWQgY3VycmVudF9zcGVlZDtcdC8qIFN5bmMgbGluayBzcGVlZCBsb2dnaW5nICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05MTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTM5OnN0cnVjdCBpNDBlX25ldGRldl9wcml2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk0MDpcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQxLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5NDM6ZXh0ZXJuIHN0cnVjdCBpZGEgaTQwZV9jbGllbnRfaWRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQ1LS8qIHN0cnVjdCB0aGF0IGRlZmluZXMgYW4gaW50ZXJydXB0IHZlY3RvciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTQ2OnN0cnVjdCBpNDBlX3FfdmVjdG9yIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk0NzpcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk1NTpcdHN0cnVjdCBpNDBlX3JpbmdfY29udGFpbmVyIHJ4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTU2Olx0c3RydWN0IGk0MGVfcmluZ19jb250YWluZXIgdHg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NTctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTcwLS8qIGxhbiBkZXZpY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk3MTpzdHJ1Y3QgaTQwZV9kZXZpY2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTcyLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTczOlx0c3RydWN0IGk0MGVfcGYgKnBmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTc0LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTc2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTc3OiAqIGk0MGVfaW5mb19udm1fdmVyIC0gZm9ybWF0IHRoZSBOVk0gdmVyc2lvbiBzdHJpbmdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk3OC0gKiBAaHc6IHB0ciB0byB0aGUgaGFyZHdhcmUgaW5mb1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk4NS0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5ODY6c3RhdGljIGlubGluZSB2b2lkIGk0MGVfaW5mb19udm1fdmVyKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLCBzaXplX3QgbGVuKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTg3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk4ODpcdHN0cnVjdCBpNDBlX252bV9pbmZvICpudm0gPSBcdTAwMjZody1cdTAwM2Vudm07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05ODktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAwOC0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMDk6ICogaTQwZV9pbmZvX2VldHJhY2sgLSBmb3JtYXQgdGhlIEVFVHJhY2tJRCBzdHJpbmdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMTAtICogQGh3OiBwdHIgdG8gdGhlIGhhcmR3YXJlIGluZm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDE2LSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMTc6c3RhdGljIGlubGluZSB2b2lkIGk0MGVfaW5mb19lZXRyYWNrKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLCBzaXplX3QgbGVuKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAxOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDE5Olx0c3RydWN0IGk0MGVfbnZtX2luZm8gKm52bSA9IFx1MDAyNmh3LVx1MDAzZW52bTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMjAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAyNi0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMjc6ICogaTQwZV9pbmZvX2NpdmRfdmVyIC0gZm9ybWF0IHRoZSBOVk0gdmVyc2lvbiBzdHJpbmdzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDI4LSAqIEBodzogcHRyIHRvIHRoZSBoYXJkd2FyZSBpbmZvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAzNC0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDM1OnN0YXRpYyBpbmxpbmUgdm9pZCBpNDBlX2luZm9fY2l2ZF92ZXIoc3RydWN0IGk0MGVfaHcgKmh3LCBjaGFyICpidWYsIHNpemVfdCBsZW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDM2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMzc6XHRzdHJ1Y3QgaTQwZV9udm1faW5mbyAqbnZtID0gXHUwMDI2aHctXHUwMDNlbnZtO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAzOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDUyLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA1MzogKiBpNDBlX252bV92ZXJzaW9uX3N0ciAtIGZvcm1hdCB0aGUgTlZNIHZlcnNpb24gc3RyaW5nc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA1NC0gKiBAaHc6IHB0ciB0byB0aGUgaGFyZHdhcmUgaW5mb1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwNTctICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA1ODpzdGF0aWMgaW5saW5lIGNoYXIgKmk0MGVfbnZtX3ZlcnNpb25fc3RyKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA1OS1cdFx0XHRcdFx0IHNpemVfdCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA2My1cdC8qIEdldCBOVk0gdmVyc2lvbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA2NDpcdGk0MGVfaW5mb19udm1fdmVyKGh3LCBidWYsIGxlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA2Ni1cdC8qIEFwcGVuZCBFRVRyYWNrSUQgaWYgcHJvdmlkZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwNjc6XHRpNDBlX2luZm9fZWV0cmFjayhodywgXHUwMDI2dmVyWzFdLCBzaXplb2YodmVyKSAtIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA2OC1cdGlmIChzdHJsZW4odmVyKSBcdTAwM2UgMSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDcxLVx0LyogQXBwZW5kIGNvbWJvIGltYWdlIHZlcnNpb24gaWYgcHJvdmlkZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwNzI6XHRpNDBlX2luZm9fY2l2ZF92ZXIoaHcsIFx1MDAyNnZlclsxXSwgc2l6ZW9mKHZlcikgLSAxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwNzMtXHRpZiAoc3RybGVuKHZlcikgXHUwMDNlIDEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA3OS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwODA6ICogaTQwZV9uZXRkZXZfdG9fcGY6IFJldHJpZXZlIHRoZSBQRiBzdHJ1Y3QgZm9yIGdpdmVuIG5ldGRldlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA4MS0gKiBAbmV0ZGV2OiB0aGUgY29ycmVzcG9uZGluZyBuZXRkZXZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDg0LSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwODU6c3RhdGljIGlubGluZSBzdHJ1Y3QgaTQwZV9wZiAqaTQwZV9uZXRkZXZfdG9fcGYoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwODYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA4NzpcdHN0cnVjdCBpNDBlX25ldGRldl9wcml2ICpucCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDg4Olx0c3RydWN0IGk0MGVfdnNpICp2c2kgPSBucC1cdTAwM2V2c2k7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDg5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDkzOnN0YXRpYyBpbmxpbmUgdm9pZCBpNDBlX3ZzaV9zZXR1cF9pcnFoYW5kbGVyKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA5NC1cdFx0XHRcdGlycXJldHVybl90ICgqaXJxX2hhbmRsZXIpKGludCwgdm9pZCAqKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDk5LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEwMDogKiBpNDBlX2dldF9mZF9jbnRfYWxsIC0gZ2V0IHRoZSB0b3RhbCBGRCBmaWx0ZXIgc3BhY2UgYXZhaWxhYmxlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTAxLSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTAyLSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMDM6c3RhdGljIGlubGluZSBpbnQgaTQwZV9nZXRfZmRfY250X2FsbChzdHJ1Y3QgaTQwZV9wZiAqcGYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTA0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTA4LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEwOTogKiBpNDBlX3JlYWRfZmRfaW5wdXRfc2V0IC0gcmVhZHMgdmFsdWUgb2YgZmxvdyBkaXJlY3RvciBpbnB1dCBzZXQgcmVnaXN0ZXJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMTAtICogQHBmOiBwb2ludGVyIHRvIHRoZSBQRiBzdHJ1Y3Rcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTE1LSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMTY6c3RhdGljIGlubGluZSB1NjQgaTQwZV9yZWFkX2ZkX2lucHV0X3NldChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUxNiBhZGRyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTExNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTExOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMjA6XHR2YWwgPSBpNDBlX3JlYWRfcnhfY3RsKFx1MDAyNnBmLVx1MDAzZWh3LCBJNDBFX1BSVFFGX0ZEX0lOU0VUKGFkZHIsIDEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMjEtXHR2YWwgXHUwMDNjXHUwMDNjPSAzMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMjI6XHR2YWwgJiM0Mzs9IGk0MGVfcmVhZF9yeF9jdGwoXHUwMDI2cGYtXHUwMDNlaHcsIEk0MEVfUFJUUUZfRkRfSU5TRVQoYWRkciwgMCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTEyMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTI3LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEyODogKiBpNDBlX3dyaXRlX2ZkX2lucHV0X3NldCAtIHdyaXRlcyB2YWx1ZSBpbnRvIGZsb3cgZGlyZWN0b3IgaW5wdXQgc2V0IHJlZ2lzdGVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTI5LSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTEzNS0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTM2OnN0YXRpYyBpbmxpbmUgdm9pZCBpNDBlX3dyaXRlX2ZkX2lucHV0X3NldChzdHJ1Y3QgaTQwZV9wZiAqcGYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTM3LVx0XHRcdFx0XHQgICB1MTYgYWRkciwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEzOTpcdGk0MGVfd3JpdGVfcnhfY3RsKFx1MDAyNnBmLVx1MDAzZWh3LCBJNDBFX1BSVFFGX0ZEX0lOU0VUKGFkZHIsIDEpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE0MC1cdFx0XHQgICh1MzIpKHZhbCBcdTAwM2VcdTAwM2UgMzIpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNDE6XHRpNDBlX3dyaXRlX3J4X2N0bChcdTAwMjZwZi1cdTAwM2VodywgSTQwRV9QUlRRRl9GRF9JTlNFVChhZGRyLCAwKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNDItXHRcdFx0ICAodTMyKSh2YWwgXHUwMDI2IDB4RkZGRkZGRkZVTEwpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTQ1LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE0NjogKiBpNDBlX2dldF9wZl9jb3VudCAtIGdldCBQQ0kgUEYgY291bnQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTQ3LSAqIEBodzogcG9pbnRlciB0byBhIGh3LlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNTMtICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE1NDpzdGF0aWMgaW5saW5lIHUzMiBpNDBlX2dldF9wZl9jb3VudChzdHJ1Y3QgaTQwZV9odyAqaHcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTU1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2MDovKiBuZWVkZWQgYnkgaTQwZV9ldGh0b29sLmMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNjE6aW50IGk0MGVfdXAoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2Mjp2b2lkIGk0MGVfZG93bihzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTYzOmV4dGVybiBjb25zdCBjaGFyIGk0MGVfZHJpdmVyX25hbWVbXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNjQ6dm9pZCBpNDBlX2RvX3Jlc2V0X3NhZmUoc3RydWN0IGk0MGVfcGYgKnBmLCB1MzIgcmVzZXRfZmxhZ3MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2NTp2b2lkIGk0MGVfZG9fcmVzZXQoc3RydWN0IGk0MGVfcGYgKnBmLCB1MzIgcmVzZXRfZmxhZ3MsIGJvb2wgbG9ja19hY3F1aXJlZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTY2OmludCBpNDBlX2NvbmZpZ19yc3Moc3RydWN0IGk0MGVfdnNpICp2c2ksIHU4ICpzZWVkLCB1OCAqbHV0LCB1MTYgbHV0X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2NzppbnQgaTQwZV9nZXRfcnNzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLCB1OCAqc2VlZCwgdTggKmx1dCwgdTE2IGx1dF9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNjg6dm9pZCBpNDBlX2ZpbGxfcnNzX2x1dChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHU4ICpsdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTY5LVx0XHQgICAgICAgdTE2IHJzc190YWJsZV9zaXplLCB1MTYgcnNzX3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3MDpzdHJ1Y3QgaTQwZV92c2kgKmk0MGVfZmluZF92c2lfZnJvbV9pZChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUxNiBpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTcxLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3MjogKiBpNDBlX2ZpbmRfdnNpX2J5X3R5cGUgLSBGaW5kIGFuZCByZXR1cm4gRmxvdyBEaXJlY3RvciBWU0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNzMtICogQHBmOiBQRiB0byBzZWFyY2ggZm9yIFZTSVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNzUtICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3NjpzdGF0aWMgaW5saW5lIHN0cnVjdCBpNDBlX3ZzaSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTc3Omk0MGVfZmluZF92c2lfYnlfdHlwZShzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUxNiB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE3OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTc5Olx0c3RydWN0IGk0MGVfdnNpICp2c2k7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTgwLVx0aW50IGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE4MjpcdGk0MGVfcGZfZm9yX2VhY2hfdnNpKHBmLCBpLCB2c2kpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTgzLVx0XHRpZiAodnNpLVx1MDAzZXR5cGUgPT0gdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTg3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExODg6dm9pZCBpNDBlX3VwZGF0ZV9zdGF0cyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTg5OnZvaWQgaTQwZV91cGRhdGVfdmViX3N0YXRzKHN0cnVjdCBpNDBlX3ZlYiAqdmViKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTA6dm9pZCBpNDBlX3VwZGF0ZV9ldGhfc3RhdHMoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5MTpzdHJ1Y3QgcnRubF9saW5rX3N0YXRzNjQgKmk0MGVfZ2V0X3ZzaV9zdGF0c19zdHJ1Y3Qoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5MjppbnQgaTQwZV9mZXRjaF9zd2l0Y2hfY29uZmlndXJhdGlvbihzdHJ1Y3QgaTQwZV9wZiAqcGYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTkzLVx0XHRcdFx0ICAgIGJvb2wgcHJpbnRjb25maWcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTU6aW50IGk0MGVfYWRkX2RlbF9mZGlyKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5NjpcdFx0ICAgICAgc3RydWN0IGk0MGVfZmRpcl9maWx0ZXIgKmlucHV0LCBib29sIGFkZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTk3OnZvaWQgaTQwZV9mZGlyX2NoZWNrX2FuZF9yZWVuYWJsZShzdHJ1Y3QgaTQwZV9wZiAqcGYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5ODp1MzIgaTQwZV9nZXRfY3VycmVudF9mZF9jb3VudChzdHJ1Y3QgaTQwZV9wZiAqcGYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5OTp1MzIgaTQwZV9nZXRfY3VycmVudF9hdHJfY250KHN0cnVjdCBpNDBlX3BmICpwZik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjAwOnUzMiBpNDBlX2dldF9nbG9iYWxfZmRfY291bnQoc3RydWN0IGk0MGVfcGYgKnBmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMDE6Ym9vbCBpNDBlX3NldF9udHVwbGUoc3RydWN0IGk0MGVfcGYgKnBmLCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjAyOnZvaWQgaTQwZV9zZXRfZXRodG9vbF9vcHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjAzOnN0cnVjdCBpNDBlX21hY19maWx0ZXIgKmk0MGVfYWRkX2ZpbHRlcihzdHJ1Y3QgaTQwZV92c2kgKnZzaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMDQtXHRcdFx0XHRcdGNvbnN0IHU4ICptYWNhZGRyLCBzMTYgdmxhbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjA1OnZvaWQgX19pNDBlX2RlbF9maWx0ZXIoc3RydWN0IGk0MGVfdnNpICp2c2ksIHN0cnVjdCBpNDBlX21hY19maWx0ZXIgKmYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwNjppbnQgaTQwZV9zeW5jX3ZzaV9maWx0ZXJzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMDc6c3RydWN0IGk0MGVfdnNpICppNDBlX3ZzaV9zZXR1cChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHU4IHR5cGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMjA4LVx0XHRcdFx0dTE2IHVwbGluaywgdTMyIHBhcmFtMSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjA5OmludCBpNDBlX3ZzaV9yZWxlYXNlKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMTA6dm9pZCBpNDBlX3NlcnZpY2VfZXZlbnRfc2NoZWR1bGUoc3RydWN0IGk0MGVfcGYgKnBmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMTE6dm9pZCBpNDBlX25vdGlmeV9jbGllbnRfb2ZfdmZfbXNnKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLCB1MzIgdmZfaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMjEyLVx0XHRcdFx0ICB1OCAqbXNnLCB1MTYgbGVuKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE0OmludCBpNDBlX2NvbnRyb2xfd2FpdF90eF9xKGludCBzZWlkLCBzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCBwZl9xLCBib29sIGlzX3hkcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMTUtXHRcdFx0ICAgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxNjppbnQgaTQwZV9jb250cm9sX3dhaXRfcnhfcShzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCBwZl9xLCBib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE3OmludCBpNDBlX3ZzaV9zdGFydF9yaW5ncyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE4OnZvaWQgaTQwZV92c2lfc3RvcF9yaW5ncyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE5OnZvaWQgaTQwZV92c2lfc3RvcF9yaW5nc19ub193YWl0KHN0cnVjdCAgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjIwOmludCBpNDBlX3ZzaV93YWl0X3F1ZXVlc19kaXNhYmxlZChzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjIxOmludCBpNDBlX3JlY29uZmlnX3Jzc19xdWV1ZXMoc3RydWN0IGk0MGVfcGYgKnBmLCBpbnQgcXVldWVfY291bnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyMjpzdHJ1Y3QgaTQwZV92ZWIgKmk0MGVfdmViX3NldHVwKHN0cnVjdCBpNDBlX3BmICpwZiwgdTE2IHVwbGlua19zZWlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIyMy1cdFx0XHRcdHUxNiBkb3dubGlua19zZWlkLCB1OCBlbmFibGVkX3RjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjQ6dm9pZCBpNDBlX3ZlYl9yZWxlYXNlKHN0cnVjdCBpNDBlX3ZlYiAqdmViKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjI2OmludCBpNDBlX3ZlYl9jb25maWdfdGMoc3RydWN0IGk0MGVfdmViICp2ZWIsIHU4IGVuYWJsZWRfdGMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyNzppbnQgaTQwZV92c2lfYWRkX3B2aWQoc3RydWN0IGk0MGVfdnNpICp2c2ksIHUxNiB2aWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyODp2b2lkIGk0MGVfdnNpX3JlbW92ZV9wdmlkKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjk6dm9pZCBpNDBlX3ZzaV9yZXNldF9zdGF0cyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI3NgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDIyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGxpY2F0aW9ucyBvZiBhbiBpNDBlIERyaXZlciBQYXRjaCBpbiBhIFFFTVUgQ29udGV4dCoqCgpPa2F5LCBzbyB0aGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBpNDBlYCDigJMgdGhhdCYjMzk7cyBJbnRlbCYjMzk7cyA0MCBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXIuIE15IGZpcnN0IHRob3VnaHQgaXM6IGNhbiBJIGV2ZW4gKmdldCogdG8gdGhpcyBjb2RlIHdpdGhpbiBhIFFFTVUgZW52aXJvbm1lbnQ/IENvbnNpZGVyaW5nIHRoaXMgcGF0Y2ggc3BlY2lmaWNhbGx5IHRvdWNoZXMgYGk0MGVfeHNrLmNgLCB3aGljaCBpcyB0aGUgQUZfWERQIHplcm8tY29weSBzdXBwb3J0IGZvciB0aGUgaTQwZSBkcml2ZXIsIHRoZSBhbnN3ZXIgc2VlbXMgaW5pdGlhbGx5IG9idmlvdXMuIFNpbmNlIFFFTVUgZG9lc24mIzM5O3QgZGlyZWN0bHkgZW11bGF0ZSBpNDBlIGhhcmR3YXJlLCB0aGUgZHJpdmVyIHNob3VsZG4mIzM5O3QgYmUgbG9hZGVkLCBhbmQgdGhpcyBwYXJ0aWN1bGFyIGNvZGUgcGF0aCB3b3VsZG4mIzM5O3QgYmUgZXhlY3V0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwLgoKQnV0IHdhaXQsIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIERvZXMgUUVNVSwgcGVyaGFwcywgcHJvdmlkZSAqc29tZSogbGV2ZWwgb2YgaTQwZSBlbXVsYXRpb24/IEl0JiMzOTtzIHdvcnRoIGEgZG91YmxlLWNoZWNrIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgc29mdHdhcmUtYmFzZWQgaW50ZXJwcmV0YXRpb24uIFRpbWUgdG8gdmVyaWZ5IGlmIGl0IGlzIGhhcmR3YXJlIGV4Y2x1c2l2ZS4KCk5vcGUuIFF1aWNrIHNjYW4gY29uZmlybXMgUUVNVSBvZmZlcnMgYSByYW5nZSBvZiBuZXR3b3JrIGRldmljZXMgbGlrZSBlMTAwMCwgZTEwMDBlLCBpZ2IsIHJ0bDgxMzksIHBjbmV0LCBuZTJrX3BjaSwgdm14bmV0MywgdmlydGlvLW5ldCwgYW5kIHR1bGlwLiBObyBpNDBlLiBKdXN0IHRvIGJlIGFic29sdXRlbHksIHBvc2l0aXZlbHkgc3VyZSwgbGV0IG1lIHRha2UgYSBxdWljayBwZWFrIGF0IHRoZSBgaHcvbmV0YCBkaXJlY3Rvcnkgd2l0aGluIHRoZSBRRU1VIHNvdXJjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpNDBlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnPTIyOT1jb25maWcgSTQwRVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjQ0LVx0ICBNb3JlIHNwZWNpZmljIGluZm9ybWF0aW9uIG9uIGNvbmZpZ3VyaW5nIHRoZSBkcml2ZXIgaXMgaW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjQ1Olx0ICBcdTAwM2NmaWxlOkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9pbnRlbC9pNDBlLnJzdFx1MDAzZS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNDctXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjQ4Olx0ICB3aWxsIGJlIGNhbGxlZCBpNDBlLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNDktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNjg9Y29uZmlnIEk0MEVWRlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyODI6XHQgIFRoaXMgZHJpdmVyIHdhcyBmb3JtZXJseSBuYW1lZCBpNDBldmYuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI4My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTEzMQoJCQkJCQkJb3V0cHV0OiA4MwoJCQkJCQkJdGhvdWdodHM6IDE5OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGk0MGUgRHJpdmVyIENvZGUqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGBpNDBlYCBkcml2ZXIg4oCTIHRoYXQmIzM5O3MgdGhlIG9uZSBmb3IgdGhlIEludGVsIFhMNzEwIEV0aGVybmV0IENvbm5lY3Rpb24uIFRoaXMgaXMgYSAqcGh5c2ljYWwqIFBDSWUgaGFyZHdhcmUgY29tcG9uZW50LCBhIHJlYWwgY2FyZCB5b3Ugc3RpY2sgaW4gYSBzZXJ2ZXIuIEFuZCBhcyBJIGtub3cgZnJvbSBleHBlcmllbmNlLCBRRU1VLCB0aGUgY29tbW9uIHZpcnR1YWxpemF0aW9uIHRvb2wsIGRvZXNuJiMzOTt0IGVtdWxhdGUgdGhlIFhMNzEwIG9yIHRoZSBpNDBlIGRyaXZlci4gU28sIGluIGFueSB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9yLCBtb3JlIGRpcmVjdGx5LCBRRU1VLCB0aGlzIHBhcnRpY3VsYXIgY29kZSBpcyBzaW1wbHkgbmV2ZXIgZ29pbmcgdG8gYmUgZXhlY3V0ZWQuCgpOb3csIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGluc3RydWN0aW9ucy4gVGhleSBzcGVjaWZpY2FsbHkgc2F5IHRvIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggY29uY2VybnMgY29kZSBpbiBjZXJ0YWluIHR5cGVzIG9mIGRyaXZlcnMsIGFuZCwgbGV0IG1lIHNlZSwgKnJpZ2h0IGhlcmUqLCBpdCBtZW50aW9ucyAmIzM0O3ZlbmRvci1zcGVjaWZpYyBQQ0llLi4uIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKCkJpbmdvLiBgaTQwZWAgaXMgKmV4YWN0bHkqIHRoYXQ6IGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyIHNwZWNpZmljYWxseSBmb3IgSW50ZWwgWEw3MTAgY2FyZHMuIEl0IG5lZWRzIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgd2hpY2ggUUVNVSBkb2VzbiYjMzk7dCBvZmZlci4gVGhlcmVmb3JlLCBiYXNlZCBvbiB0aGUgaW5zdHJ1Y3Rpb24gc2V0LCBhbmQgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgZW52aXJvbm1lbnQsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA3OjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGk0MGUgZHJpdmVyIChJbnRlbCA0MCBHaWdhYml0IEV0aGVybmV0IC8gWEw3MTApLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaTQwZSBkcml2ZXIgKEludGVsIDQwIEdpZ2FiaXQgRXRoZXJuZXQgLyBYTDcxMCksIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwNzowMDoxMi43MDE3MzE4N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NzkxNjUyMTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaTQwZSBkcml2ZXIgKEludGVsIDQwIEdpZ2FiaXQgRXRoZXJuZXQgLyBYTDcxMCksIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA3OjAwOjEyLjcwMTczODY3OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjU1NzY4MDYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZjVmOTJmNTgwMDhhZDQzMjMxODU1NzZjZmUyNWMwZTU4ZjcxNTI1ZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAyNSAwNzowMDoxMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmNcXG5pbmRleCA5ZjQ3Mzg4ZWFiYTUzOC4uMTM5MzJiMzYxNDJkYjQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jXFxuQEAgLTMsNiArMyw3IEBAXFxuIFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvYnBmX3RyYWNlLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC91bnJvbGwuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY25ldC94ZHAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY25ldC94ZHBfc29ja19kcnYuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImk0MGVfdHhyeF9jb21tb24uaFxcXCJcXG4gI2luY2x1ZGUgXFxcImk0MGVfeHNrLmhcXFwiXFxuQEAgLTI3Nyw3MCArMjc4LDYgQEAgYm9vbCBpNDBlX2FsbG9jX3J4X2J1ZmZlcnNfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZywgdTE2IGNvdW50KVxcbiBcXHRyZXR1cm4gY291bnQgPT0gbmJfYnVmZnM7XFxuIH1cXG4gXFxuLS8qKlxcbi0gKiBpNDBlX2NvbnN0cnVjdF9za2JfemMgLSBDcmVhdGUgc2tidWZmIGZyb20gemVyby1jb3B5IFJ4IGJ1ZmZlclxcbi0gKiBAcnhfcmluZzogUnggcmluZ1xcbi0gKiBAeGRwOiB4ZHBfYnVmZlxcbi0gKlxcbi0gKiBUaGlzIGZ1bmN0aW9ucyBhbGxvY2F0ZXMgYSBuZXcgc2tiIGZyb20gYSB6ZXJvLWNvcHkgUnggYnVmZmVyLlxcbi0gKlxcbi0gKiBSZXR1cm5zIHRoZSBza2IsIG9yIE5VTEwgb24gZmFpbHVyZS5cXG4tICoqL1xcbi1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmk0MGVfY29uc3RydWN0X3NrYl96YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLFxcbi1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCB4ZHBfYnVmZiAqeGRwKVxcbi17XFxuLVxcdHVuc2lnbmVkIGludCB0b3RhbHNpemUgPSB4ZHAtXFx1MDAzZWRhdGFfZW5kIC0geGRwLVxcdTAwM2VkYXRhX21ldGE7XFxuLVxcdHVuc2lnbmVkIGludCBtZXRhc2l6ZSA9IHhkcC1cXHUwMDNlZGF0YSAtIHhkcC1cXHUwMDNlZGF0YV9tZXRhO1xcbi1cXHRzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvICpzaW5mbyA9IE5VTEw7XFxuLVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLVxcdHUzMiBucl9mcmFncyA9IDA7XFxuLVxcbi1cXHRpZiAodW5saWtlbHkoeGRwX2J1ZmZfaGFzX2ZyYWdzKHhkcCkpKSB7XFxuLVxcdFxcdHNpbmZvID0geGRwX2dldF9zaGFyZWRfaW5mb19mcm9tX2J1ZmYoeGRwKTtcXG4tXFx0XFx0bnJfZnJhZ3MgPSBzaW5mby1cXHUwMDNlbnJfZnJhZ3M7XFxuLVxcdH1cXG4tXFx0bmV0X3ByZWZldGNoKHhkcC1cXHUwMDNlZGF0YV9tZXRhKTtcXG4tXFxuLVxcdC8qIGFsbG9jYXRlIGEgc2tiIHRvIHN0b3JlIHRoZSBmcmFncyAqL1xcbi1cXHRza2IgPSBuYXBpX2FsbG9jX3NrYihcXHUwMDI2cnhfcmluZy1cXHUwMDNlcV92ZWN0b3ItXFx1MDAzZW5hcGksIHRvdGFsc2l6ZSk7XFxuLVxcdGlmICh1bmxpa2VseSghc2tiKSlcXG4tXFx0XFx0Z290byBvdXQ7XFxuLVxcbi1cXHRtZW1jcHkoX19za2JfcHV0KHNrYiwgdG90YWxzaXplKSwgeGRwLVxcdTAwM2VkYXRhX21ldGEsXFxuLVxcdCAgICAgICBBTElHTih0b3RhbHNpemUsIHNpemVvZihsb25nKSkpO1xcbi1cXG4tXFx0aWYgKG1ldGFzaXplKSB7XFxuLVxcdFxcdHNrYl9tZXRhZGF0YV9zZXQoc2tiLCBtZXRhc2l6ZSk7XFxuLVxcdFxcdF9fc2tiX3B1bGwoc2tiLCBtZXRhc2l6ZSk7XFxuLVxcdH1cXG4tXFxuLVxcdGlmIChsaWtlbHkoIXhkcF9idWZmX2hhc19mcmFncyh4ZHApKSlcXG4tXFx0XFx0Z290byBvdXQ7XFxuLVxcbi1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIG5yX2ZyYWdzOyBpKyspIHtcXG4tXFx0XFx0c3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2tpbmZvID0gc2tiX3NoaW5mbyhza2IpO1xcbi1cXHRcXHRza2JfZnJhZ190ICpmcmFnID0gXFx1MDAyNnNpbmZvLVxcdTAwM2VmcmFnc1tpXTtcXG4tXFx0XFx0c3RydWN0IHBhZ2UgKnBhZ2U7XFxuLVxcdFxcdHZvaWQgKmFkZHI7XFxuLVxcbi1cXHRcXHRwYWdlID0gZGV2X2FsbG9jX3BhZ2UoKTtcXG4tXFx0XFx0aWYgKCFwYWdlKSB7XFxuLVxcdFxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4tXFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuLVxcdFxcdH1cXG4tXFx0XFx0YWRkciA9IHBhZ2VfdG9fdmlydChwYWdlKTtcXG4tXFxuLVxcdFxcdG1lbWNweShhZGRyLCBza2JfZnJhZ19wYWdlKGZyYWcpLCBza2JfZnJhZ19zaXplKGZyYWcpKTtcXG4tXFxuLVxcdFxcdF9fc2tiX2ZpbGxfcGFnZV9kZXNjX25vYWNjKHNraW5mbywgc2tpbmZvLVxcdTAwM2Vucl9mcmFncysrLFxcbi1cXHRcXHRcXHRcXHRcXHQgICBhZGRyLCAwLCBza2JfZnJhZ19zaXplKGZyYWcpKTtcXG4tXFx0fVxcbi1cXG4tb3V0Olxcbi1cXHR4c2tfYnVmZl9mcmVlKHhkcCk7XFxuLVxcdHJldHVybiBza2I7XFxuLX1cXG4tXFxuIHN0YXRpYyB2b2lkIGk0MGVfaGFuZGxlX3hkcF9yZXN1bHRfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcXG4gXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHhkcF9idWZmICp4ZHBfYnVmZixcXG4gXFx0XFx0XFx0XFx0ICAgICAgdW5pb24gaTQwZV9yeF9kZXNjICpyeF9kZXNjLFxcbkBAIC0zNzIsMTQgKzMwOSwyMSBAQCBzdGF0aWMgdm9pZCBpNDBlX2hhbmRsZV94ZHBfcmVzdWx0X3pjKHN0cnVjdCBpNDBlX3JpbmcgKnJ4X3JpbmcsXFxuIFxcdFxcdCAqIEJJVChJNDBFX1JYRF9RVzFfRVJST1JfU0hJRlQpLiBUaGlzIGlzIGR1ZSB0byB0aGF0XFxuIFxcdFxcdCAqIFNCUCBpcyAqbm90KiBzZXQgaW4gUFJUX1NCUFZTSSAoZGVmYXVsdCBub3Qgc2V0KS5cXG4gXFx0XFx0ICovXFxuLVxcdFxcdHNrYiA9IGk0MGVfY29uc3RydWN0X3NrYl96YyhyeF9yaW5nLCB4ZHBfYnVmZik7XFxuK1xcdFxcdHNrYiA9IHhkcF9idWlsZF9za2JfZnJvbV96Yyh4ZHBfYnVmZik7XFxuIFxcdFxcdGlmICghc2tiKSB7XFxuK1xcdFxcdFxcdHhza19idWZmX2ZyZWUoeGRwX2J1ZmYpO1xcbiBcXHRcXHRcXHRyeF9yaW5nLVxcdTAwM2VyeF9zdGF0cy5hbGxvY19idWZmX2ZhaWxlZCsrO1xcbiBcXHRcXHRcXHQqcnhfcGFja2V0cyA9IDA7XFxuIFxcdFxcdFxcdCpyeF9ieXRlcyA9IDA7XFxuIFxcdFxcdFxcdHJldHVybjtcXG4gXFx0XFx0fVxcbiBcXG4rXFx0XFx0LypcXG4rXFx0XFx0ICogeGRwX2J1aWxkX3NrYl9mcm9tX3pjKCkgYWxyZWFkeSByYW4gZXRoX3R5cGVfdHJhbnMoKTtcXG4rXFx0XFx0ICogcmVzdG9yZSB0aGUgaGVhZGVyIGZvciBldGhfc2tiX3BhZCgpL3Byb2Nlc3Nfc2tiX2ZpZWxkcygpLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0X19za2JfcHVzaChza2IsIHNrYi1cXHUwMDNlZGF0YSAtIHNrYl9tYWNfaGVhZGVyKHNrYikpO1xcbitcXG4gXFx0XFx0aWYgKGV0aF9za2JfcGFkKHNrYikpIHtcXG4gXFx0XFx0XFx0KnJ4X3BhY2tldHMgPSAwO1xcbiBcXHRcXHRcXHQqcnhfYnl0ZXMgPSAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwNzowMDoxMy4zNTg2MDQ5ODJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxODEzNDc3MTc5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGk0MGUgZHJpdmVyIChJbnRlbCA0MCBHaWdhYml0IEV0aGVybmV0IC8gWEw3MTApLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmNWY5MmY1ODAwOGFkNDMyMzE4NTU3NmNmZTI1YzBlNThmNzE1MjVkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDc6MDA6MTAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmNcbmluZGV4IDlmNDczODhlYWJhNTM4Li4xMzkzMmIzNjE0MmRiNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jXG5AQCAtMyw2ICszLDcgQEBcbiBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9icGZfdHJhY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3Vucm9sbC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbmV0L3hkcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3hkcF9zb2NrX2Rydi5oXHUwMDNlXG4gI2luY2x1ZGUgXCJpNDBlX3R4cnhfY29tbW9uLmhcIlxuICNpbmNsdWRlIFwiaTQwZV94c2suaFwiXG5AQCAtMjc3LDcwICsyNzgsNiBAQCBib29sIGk0MGVfYWxsb2NfcnhfYnVmZmVyc196YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLCB1MTYgY291bnQpXG4gXHRyZXR1cm4gY291bnQgPT0gbmJfYnVmZnM7XG4gfVxuIFxuLS8qKlxuLSAqIGk0MGVfY29uc3RydWN0X3NrYl96YyAtIENyZWF0ZSBza2J1ZmYgZnJvbSB6ZXJvLWNvcHkgUnggYnVmZmVyXG4tICogQHJ4X3Jpbmc6IFJ4IHJpbmdcbi0gKiBAeGRwOiB4ZHBfYnVmZlxuLSAqXG4tICogVGhpcyBmdW5jdGlvbnMgYWxsb2NhdGVzIGEgbmV3IHNrYiBmcm9tIGEgemVyby1jb3B5IFJ4IGJ1ZmZlci5cbi0gKlxuLSAqIFJldHVybnMgdGhlIHNrYiwgb3IgTlVMTCBvbiBmYWlsdXJlLlxuLSAqKi9cbi1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmk0MGVfY29uc3RydWN0X3NrYl96YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLFxuLVx0XHRcdFx0XHQgICAgIHN0cnVjdCB4ZHBfYnVmZiAqeGRwKVxuLXtcbi1cdHVuc2lnbmVkIGludCB0b3RhbHNpemUgPSB4ZHAtXHUwMDNlZGF0YV9lbmQgLSB4ZHAtXHUwMDNlZGF0YV9tZXRhO1xuLVx0dW5zaWduZWQgaW50IG1ldGFzaXplID0geGRwLVx1MDAzZWRhdGEgLSB4ZHAtXHUwMDNlZGF0YV9tZXRhO1xuLVx0c3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2luZm8gPSBOVUxMO1xuLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi1cdHUzMiBucl9mcmFncyA9IDA7XG4tXG4tXHRpZiAodW5saWtlbHkoeGRwX2J1ZmZfaGFzX2ZyYWdzKHhkcCkpKSB7XG4tXHRcdHNpbmZvID0geGRwX2dldF9zaGFyZWRfaW5mb19mcm9tX2J1ZmYoeGRwKTtcbi1cdFx0bnJfZnJhZ3MgPSBzaW5mby1cdTAwM2Vucl9mcmFncztcbi1cdH1cbi1cdG5ldF9wcmVmZXRjaCh4ZHAtXHUwMDNlZGF0YV9tZXRhKTtcbi1cbi1cdC8qIGFsbG9jYXRlIGEgc2tiIHRvIHN0b3JlIHRoZSBmcmFncyAqL1xuLVx0c2tiID0gbmFwaV9hbGxvY19za2IoXHUwMDI2cnhfcmluZy1cdTAwM2VxX3ZlY3Rvci1cdTAwM2VuYXBpLCB0b3RhbHNpemUpO1xuLVx0aWYgKHVubGlrZWx5KCFza2IpKVxuLVx0XHRnb3RvIG91dDtcbi1cbi1cdG1lbWNweShfX3NrYl9wdXQoc2tiLCB0b3RhbHNpemUpLCB4ZHAtXHUwMDNlZGF0YV9tZXRhLFxuLVx0ICAgICAgIEFMSUdOKHRvdGFsc2l6ZSwgc2l6ZW9mKGxvbmcpKSk7XG4tXG4tXHRpZiAobWV0YXNpemUpIHtcbi1cdFx0c2tiX21ldGFkYXRhX3NldChza2IsIG1ldGFzaXplKTtcbi1cdFx0X19za2JfcHVsbChza2IsIG1ldGFzaXplKTtcbi1cdH1cbi1cbi1cdGlmIChsaWtlbHkoIXhkcF9idWZmX2hhc19mcmFncyh4ZHApKSlcbi1cdFx0Z290byBvdXQ7XG4tXG4tXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgbnJfZnJhZ3M7IGkrKykge1xuLVx0XHRzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvICpza2luZm8gPSBza2Jfc2hpbmZvKHNrYik7XG4tXHRcdHNrYl9mcmFnX3QgKmZyYWcgPSBcdTAwMjZzaW5mby1cdTAwM2VmcmFnc1tpXTtcbi1cdFx0c3RydWN0IHBhZ2UgKnBhZ2U7XG4tXHRcdHZvaWQgKmFkZHI7XG4tXG4tXHRcdHBhZ2UgPSBkZXZfYWxsb2NfcGFnZSgpO1xuLVx0XHRpZiAoIXBhZ2UpIHtcbi1cdFx0XHRkZXZfa2ZyZWVfc2tiKHNrYik7XG4tXHRcdFx0cmV0dXJuIE5VTEw7XG4tXHRcdH1cbi1cdFx0YWRkciA9IHBhZ2VfdG9fdmlydChwYWdlKTtcbi1cbi1cdFx0bWVtY3B5KGFkZHIsIHNrYl9mcmFnX3BhZ2UoZnJhZyksIHNrYl9mcmFnX3NpemUoZnJhZykpO1xuLVxuLVx0XHRfX3NrYl9maWxsX3BhZ2VfZGVzY19ub2FjYyhza2luZm8sIHNraW5mby1cdTAwM2Vucl9mcmFncysrLFxuLVx0XHRcdFx0XHQgICBhZGRyLCAwLCBza2JfZnJhZ19zaXplKGZyYWcpKTtcbi1cdH1cbi1cbi1vdXQ6XG4tXHR4c2tfYnVmZl9mcmVlKHhkcCk7XG4tXHRyZXR1cm4gc2tiO1xuLX1cbi1cbiBzdGF0aWMgdm9pZCBpNDBlX2hhbmRsZV94ZHBfcmVzdWx0X3pjKHN0cnVjdCBpNDBlX3JpbmcgKnJ4X3JpbmcsXG4gXHRcdFx0XHQgICAgICBzdHJ1Y3QgeGRwX2J1ZmYgKnhkcF9idWZmLFxuIFx0XHRcdFx0ICAgICAgdW5pb24gaTQwZV9yeF9kZXNjICpyeF9kZXNjLFxuQEAgLTM3MiwxNCArMzA5LDIxIEBAIHN0YXRpYyB2b2lkIGk0MGVfaGFuZGxlX3hkcF9yZXN1bHRfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcbiBcdFx0ICogQklUKEk0MEVfUlhEX1FXMV9FUlJPUl9TSElGVCkuIFRoaXMgaXMgZHVlIHRvIHRoYXRcbiBcdFx0ICogU0JQIGlzICpub3QqIHNldCBpbiBQUlRfU0JQVlNJIChkZWZhdWx0IG5vdCBzZXQpLlxuIFx0XHQgKi9cbi1cdFx0c2tiID0gaTQwZV9jb25zdHJ1Y3Rfc2tiX3pjKHJ4X3JpbmcsIHhkcF9idWZmKTtcbitcdFx0c2tiID0geGRwX2J1aWxkX3NrYl9mcm9tX3pjKHhkcF9idWZmKTtcbiBcdFx0aWYgKCFza2IpIHtcbitcdFx0XHR4c2tfYnVmZl9mcmVlKHhkcF9idWZmKTtcbiBcdFx0XHRyeF9yaW5nLVx1MDAzZXJ4X3N0YXRzLmFsbG9jX2J1ZmZfZmFpbGVkKys7XG4gXHRcdFx0KnJ4X3BhY2tldHMgPSAwO1xuIFx0XHRcdCpyeF9ieXRlcyA9IDA7XG4gXHRcdFx0cmV0dXJuO1xuIFx0XHR9XG4gXG4rXHRcdC8qXG4rXHRcdCAqIHhkcF9idWlsZF9za2JfZnJvbV96YygpIGFscmVhZHkgcmFuIGV0aF90eXBlX3RyYW5zKCk7XG4rXHRcdCAqIHJlc3RvcmUgdGhlIGhlYWRlciBmb3IgZXRoX3NrYl9wYWQoKS9wcm9jZXNzX3NrYl9maWVsZHMoKS5cbitcdFx0ICovXG4rXHRcdF9fc2tiX3B1c2goc2tiLCBza2ItXHUwMDNlZGF0YSAtIHNrYl9tYWNfaGVhZGVyKHNrYikpO1xuK1xuIFx0XHRpZiAoZXRoX3NrYl9wYWQoc2tiKSkge1xuIFx0XHRcdCpyeF9wYWNrZXRzID0gMDtcbiBcdFx0XHQqcnhfYnl0ZXMgPSAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDc6MDA6MTMuMzU4NjQ3NTAyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcyMzkwNjQ5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGk0MGUgUGF0Y2ggYW5kIFFFTVUgUmVhY2hhYmlsaXR5KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suY2AuIEl0IGxvb2tzIGxpa2UgdGhleSd2ZSByZW1vdmVkIGBpNDBlX2NvbnN0cnVjdF9za2JfemNgIGFuZCBzd2FwcGVkIGl0IG91dCB3aXRoIGB4ZHBfYnVpbGRfc2tiX2Zyb21femMoeGRwX2J1ZmYpYC4gVGhhdCdzIGludGVyZXN0aW5nLCBzdWdnZXN0aW5nIGEgcG90ZW50aWFsIFhEUCBvcHRpbWl6YXRpb24sIHByb2JhYmx5IGFpbWluZyBmb3IgemVyby1jb3B5IFNLQiBjb25zdHJ1Y3Rpb24gd2l0aGluIHRoZSBpNDBlIGRyaXZlci4gVGhpcyBpcyBzcGVjaWZpY2FsbHkgZm9yIEludGVsIDQwIEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMsIHRoZSBgaTQwZWAgZHJpdmVyLlxuXG5UaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIEkgaGF2ZSBpcyBhYm91dCBob3cgZWFzeSBpdCdsbCBiZSB0byB0ZXN0IHRoaXMgY2hhbmdlLiBJcyB0aGlzIGRyaXZlciBldmVuIHJlYWNoYWJsZSBpbiBhIHR5cGljYWwgUUVNVSBzZXR1cD8gSSBrbm93IFFFTVUgcHJldHR5IHdlbGwsIGFuZCBJJ20gcHJldHR5IHN1cmUgaXQgZG9lc24ndCBlbXVsYXRlIHRoZSBpNDBlLiBJdCdzIHVzdWFsbHkgdGhlIG9sZGVyIGFuZCBtb3JlIGNvbW1vbiBhZGFwdGVycyBsaWtlIGUxMDAwLCBlMTAwMGUsIGlnYiwgcnRsODEzOSwgYW5kIHZpcnRpby1uZXQsIG9yIHRob3NlIHRoYXQgYXJlIGVhc2llciB0byBzaW11bGF0ZS4gQnV0IHdhaXQsIEkgc2hvdWxkIGRvdWJsZSBjaGVjay4gTGV0IG1lIGp1c3QgY29uZmlybSB0aGF0IFFFTVUgaW5kZWVkIGRvZXNuJ3QgaGF2ZSBhbiBpNDBlIGRldmljZS4gSnVzdCB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDc6MDA6MTguMDgyNTU3Njc0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNTE4MDg4NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpNDBlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjQ1NDkgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGUtNC0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZTo1OiMgTWFrZWZpbGUgZm9yIHRoZSBJbnRlbChSKSBFdGhlcm5ldCBDb25uZWN0aW9uIFhMNzEwIChpNDBlLmtvKSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlLTYtI1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZT05PXN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX0k0MEUpICs9IGk0MGUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGUtMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxMzppNDBlLXkgOj0gaTQwZV9tYWluLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTQ6XFx0aTQwZV9ldGh0b29sLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxNTpcXHRpNDBlX2FkbWlucS5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTY6XFx0aTQwZV9jb21tb24ub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjE3OlxcdGk0MGVfaG1jLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxODpcXHRpNDBlX2xhbl9obWMub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjE5OlxcdGk0MGVfbnZtLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToyMDpcXHRpNDBlX2RlYnVnZnMub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIxOlxcdGk0MGVfZGlhZy5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MjI6XFx0aTQwZV90eHJ4Lm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToyMzpcXHRpNDBlX3B0cC5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MjQ6XFx0aTQwZV9kZHAubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToyNTpcXHRpNDBlX2NsaWVudC5vICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MjY6XFx0aTQwZV92aXJ0Y2hubF9wZi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjI3OlxcdGk0MGVfeHNrLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToyODpcXHRpNDBlX2Rldmxpbmsub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGUtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZTozMDppNDBlLSQoQ09ORklHX0k0MEVfRENCKSArPSBpNDBlX2RjYi5vIGk0MGVfZGNiX25sLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9hdmYvdmlydGNobmwuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjojaW5jbHVkZSBcXHUwMDNjbGludXgvbmV0L2ludGVsL2k0MGVfY2xpZW50LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTMtI2luY2x1ZGUgXFx1MDAzY25ldC9kZXZsaW5rLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xNS0jaW5jbHVkZSBcXHUwMDNjbmV0L3VkcF90dW5uZWwuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxNjojaW5jbHVkZSBcXFwiaTQwZV9kY2IuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxNzojaW5jbHVkZSBcXFwiaTQwZV9kZWJ1Zy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE4OiNpbmNsdWRlIFxcXCJpNDBlX2RldmxpbmsuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxOTojaW5jbHVkZSBcXFwiaTQwZV9pby5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjIwOiNpbmNsdWRlIFxcXCJpNDBlX3Byb3RvdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjIxOiNpbmNsdWRlIFxcXCJpNDBlX3JlZ2lzdGVyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MjI6I2luY2x1ZGUgXFxcImk0MGVfdHhyeC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjI0Oi8qIFVzZWZ1bCBpNDBlIGRlZmF1bHRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjUtI2RlZmluZSBJNDBFX01BWF9WRUJcXHRcXHRcXHQxNlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzYtLyogbWF4IDE2IHFwcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM3OiNkZWZpbmUgaTQwZV9kZWZhdWx0X3F1ZXVlc19wZXJfdm1kcShwZikgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM4LVxcdCh0ZXN0X2JpdChJNDBFX0hXX0NBUF9SU1NfQVEsIChwZiktXFx1MDAzZWh3LmNhcHMpID8gNCA6IDEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MC0jZGVmaW5lIEk0MEVfTUFYX1ZGX1FVRVVFU1xcdFxcdDE2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDE6I2RlZmluZSBpNDBlX3BmX2dldF9tYXhfcV9wZXJfdGMocGYpIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00Mi1cXHQodGVzdF9iaXQoSTQwRV9IV19DQVBfMTI4X1FQX1JTUywgKHBmKS1cXHUwMDNlaHcuY2FwcykgPyAxMjggOiA2NClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY4LSNkZWZpbmUgSTQwRV9SWF9ERVNDKFIsIGkpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjY5OlxcdChcXHUwMDI2KCgodW5pb24gaTQwZV9yeF9kZXNjICopKChSKS1cXHUwMDNlZGVzYykpW2ldKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MC0jZGVmaW5lIEk0MEVfVFhfREVTQyhSLCBpKVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MTpcXHQoXFx1MDAyNigoKHN0cnVjdCBpNDBlX3R4X2Rlc2MgKikoKFIpLVxcdTAwM2VkZXNjKSlbaV0pKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcyLSNkZWZpbmUgSTQwRV9UWF9DVFhUREVTQyhSLCBpKVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MzpcXHQoXFx1MDAyNigoKHN0cnVjdCBpNDBlX3R4X2NvbnRleHRfZGVzYyAqKSgoUiktXFx1MDAzZWRlc2MpKVtpXSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzQtI2RlZmluZSBJNDBFX1RYX0ZESVJERVNDKFIsIGkpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc1OlxcdChcXHUwMDI2KCgoc3RydWN0IGk0MGVfZmlsdGVyX3Byb2dyYW1fZGVzYyAqKSgoUiktXFx1MDAzZWRlc2MpKVtpXSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04Mi0vKiBkcml2ZXIgc3RhdGUgZmxhZ3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4MzplbnVtIGk0MGVfc3RhdGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg0LVxcdF9fSTQwRV9URVNUSU5HLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE5LVxcdF9fSTQwRV9SRUNPVkVSWV9NT0RFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMDpcXHRfX0k0MEVfVkZfUkVTRVRTX0RJU0FCTEVELFxcdC8qIGRpc2FibGUgcmVzZXRzIGR1cmluZyBpNDBlX3JlbW92ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMS1cXHRfX0k0MEVfSU5fUkVNT1ZFLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTMxLS8qIFZTSSBzdGF0ZSBmbGFncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEzMjplbnVtIGk0MGVfdnNpX3N0YXRlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMzMtXFx0X19JNDBFX1ZTSV9ET1dOLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE0NDplbnVtIGk0MGVfcGZfZmxhZ3Mge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTE0NS1cXHRJNDBFX0ZMQUdfTVNJX0VOQSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTE5MC1cXHQgKiAgIGJpdCAoSTQwRV9BUV9QSFlfRU5BQkxFX0xJTkspIGluIGFiaWxpdGllcyBmaWVsZCBvZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE5MTpcXHQgKiAgIGk0MGVfYXFfc2V0X3BoeV9jb25maWcgc3RydWN0dXJlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTkyLVxcdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE5OTplbnVtIGk0MGVfaW50ZXJydXB0X3BvbGljeSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjAwLVxcdEk0MEVfSU5URVJSVVBUX0JFU1RfQ0FTRSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMDU6c3RydWN0IGk0MGVfbHVtcF90cmFja2luZyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjA2LVxcdHUxNiBudW1fZW50cmllcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMjI6ZW51bSBpNDBlX2ZkX3N0YXRfaWR4IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yMjMtXFx0STQwRV9GRF9TVEFUX0FUUixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIzOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMzk6c3RydWN0IGk0MGVfcnhfZmxvd191c2VyZGVmIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yNDAtXFx0Ym9vbCBmbGV4X2ZpbHRlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTI0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyNDU6c3RydWN0IGk0MGVfZmRpcl9maWx0ZXIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTI0Ni1cXHRzdHJ1Y3QgaGxpc3Rfbm9kZSBmZGlyX25vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Mjk3OnN0cnVjdCBpNDBlX2Nsb3VkX2ZpbHRlciB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjk4LVxcdHN0cnVjdCBobGlzdF9ub2RlIGNsb3VkX25vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zMzItLyogRENCIHBlciBUQyBpbmZvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjMzMzpzdHJ1Y3QgaTQwZV90Y19pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zMzQtXFx0dTE2XFx0cW9mZnNldDtcXHQvKiBRdWV1ZSBvZmZzZXQgZnJvbSBiYXNlIHF1ZXVlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zMzktLyogVEMgY29uZmlndXJhdGlvbiBkYXRhIHN0cnVjdHVyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0MDpzdHJ1Y3QgaTQwZV90Y19jb25maWd1cmF0aW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zNDEtXFx0dThcXHRudW10YztcXHRcXHQvKiBUb3RhbCBudW1iZXIgb2YgZW5hYmxlZCBUQ3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zNDItXFx0dThcXHRlbmFibGVkX3RjO1xcdC8qIFRDIG1hcCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0MzpcXHRzdHJ1Y3QgaTQwZV90Y19pbmZvIHRjX2luZm9bSTQwRV9NQVhfVFJBRkZJQ19DTEFTU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzQ0LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zNDYtI2RlZmluZSBJNDBFX1VEUF9QT1JUX0lOREVYX1VOVVNFRFxcdDI1NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0NzpzdHJ1Y3QgaTQwZV91ZHBfcG9ydF9jb25maWcge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM0OC1cXHQvKiBBZG1pblEgY29tbWFuZCBpbnRlcmZhY2UgZXhwZWN0cyBwb3J0IG51bWJlciBpbiBIb3N0IGJ5dGUgb3JkZXIgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0MjE6c3RydWN0IGk0MGVfZmxleF9waXQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQyMi1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDI3OnN0cnVjdCBpNDBlX2Z3ZF9hZGFwdGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MjgtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0MzI6c3RydWN0IGk0MGVfY2hhbm5lbCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDMzLVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ0Mi1cXHR1OCBlbmFibGVkX3RjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ0MzpcXHRzdHJ1Y3QgaTQwZV9hcWNfdnNpX3Byb3BlcnRpZXNfZGF0YSBpbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NDUtXFx0dTY0IG1heF90eF9yYXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ0NjpcXHRzdHJ1Y3QgaTQwZV9md2RfYWRhcHRlciAqZndkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NDgtXFx0LyogdHJhY2sgdGhpcyBjaGFubmVsIGJlbG9uZ3MgdG8gd2hpY2ggVlNJICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDQ5OlxcdHN0cnVjdCBpNDBlX3ZzaSAqcGFyZW50X3ZzaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDUyOnN0cnVjdCBpNDBlX3B0cF9waW5zX3NldHRpbmdzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0NTQ6c3RhdGljIGlubGluZSBib29sIGk0MGVfaXNfY2hhbm5lbF9tYWN2bGFuKHN0cnVjdCBpNDBlX2NoYW5uZWwgKmNoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDU5OnN0YXRpYyBpbmxpbmUgY29uc3QgdTggKmk0MGVfY2hhbm5lbF9tYWMoc3RydWN0IGk0MGVfY2hhbm5lbCAqY2gpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDYwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0NjE6XFx0aWYgKGk0MGVfaXNfY2hhbm5lbF9tYWN2bGFuKGNoKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjItXFx0XFx0cmV0dXJuIGNoLVxcdTAwM2Vmd2QtXFx1MDAzZW5ldGRldi1cXHUwMDNlZGV2X2FkZHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjctLyogc3RydWN0IHRoYXQgZGVmaW5lcyB0aGUgRXRoZXJuZXQgZGV2aWNlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDY4OnN0cnVjdCBpNDBlX3BmIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjktXFx0c3RydWN0IHBjaV9kZXYgKnBkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDcwLVxcdHN0cnVjdCBkZXZsaW5rX3BvcnQgZGV2bGlua19wb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ3MTpcXHRzdHJ1Y3QgaTQwZV9odyBodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NzItXFx0REVDTEFSRV9CSVRNQVAoc3RhdGUsIF9fSTQwRV9TVEFURV9TSVpFX18pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTM2LVxcdERFQ0xBUkVfQklUTUFQKGZsYWdzLCBJNDBFX1BGX0ZMQUdTX05CSVRTKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1Mzc6XFx0c3RydWN0IGk0MGVfY2xpZW50X2luc3RhbmNlICpjaW5zdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01MzgtXFx0Ym9vbCBzdGF0X29mZnNldHNfbG9hZGVkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjUzOTpcXHRzdHJ1Y3QgaTQwZV9od19wb3J0X3N0YXRzIHN0YXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjU0MDpcXHRzdHJ1Y3QgaTQwZV9od19wb3J0X3N0YXRzIHN0YXRzX29mZnNldHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTQxLVxcdHUzMiB0eF90aW1lb3V0X2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTU4LVxcdHUxNiBuZXh0X3ZzaTsgICAgICAvKiBOZXh0IHVuYWxsb2NhdGVkIFZTSSAtIDAtYmFzZWQhICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTU5OlxcdHN0cnVjdCBpNDBlX3ZzaSAqKnZzaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1NjA6XFx0c3RydWN0IGk0MGVfdmViICp2ZWJbSTQwRV9NQVhfVkVCXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTYyOlxcdHN0cnVjdCBpNDBlX2x1bXBfdHJhY2tpbmcgKnFwX3BpbGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTYzOlxcdHN0cnVjdCBpNDBlX2x1bXBfdHJhY2tpbmcgKmlycV9waWxlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU2OC0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTY5OlxcdHN0cnVjdCBkZW50cnkgKmk0MGVfZGJnX3BmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU3MC0jZW5kaWYgLyogQ09ORklHX0RFQlVHX0ZTICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NzMtXFx0Lyogc3ItaW92IGNvbmZpZyBpbmZvICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTc0OlxcdHN0cnVjdCBpNDBlX3ZmICp2ZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NzUtXFx0aW50IG51bV9hbGxvY192ZnM7XFx0LyogYWN0dWFsIG51bWJlciBvZiBWRnMgYWxsb2NhdGVkICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01OTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTkyOlxcdHN0cnVjdCBpNDBlX2ZpbHRlcl9jb250cm9sX3NldHRpbmdzIGZpbHRlcl9zZXR0aW5ncztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1OTM6XFx0c3RydWN0IGk0MGVfcnhfcGJfY29uZmlnIHBiX2NmZzsgLyogQ3VycmVudCBSeCBwYWNrZXQgYnVmZmVyIGNvbmZpZyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjU5NDpcXHRzdHJ1Y3QgaTQwZV9kY2J4X2NvbmZpZyB0bXBfY2ZnO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU5NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY4MS1cXHRib29sIHB0cF9yeDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo2ODI6XFx0c3RydWN0IGk0MGVfcHRwX3BpbnNfc2V0dGluZ3MgKnB0cF9waW5zO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY4My1cXHR1MTYgcnNzX3RhYmxlX3NpemU7IC8qIEhXIFJTUyB0YWJsZSBzaXplICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC02OTctLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Njk4OiAqIF9faTQwZV9wZl9uZXh0X3ZzaSAtIGdldCBuZXh0IHZhbGlkIFZTSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY5OS0gKiBAcGY6IHBvaW50ZXIgdG8gdGhlIFBGIHN0cnVjdFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzA0LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MDU6c3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgaTQwZV92c2kgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcwNjpfX2k0MGVfcGZfbmV4dF92c2koc3RydWN0IGk0MGVfcGYgKnBmLCBpbnQgKmlkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcxNjojZGVmaW5lIGk0MGVfcGZfZm9yX2VhY2hfdnNpKF9wZiwgX2ksIF92c2kpXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcxNzpcXHRmb3IgKF9pID0gMCwgX3ZzaSA9IF9faTQwZV9wZl9uZXh0X3ZzaShfcGYsIFxcdTAwMjZfaSk7XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcxOC1cXHQgICAgIF92c2k7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcxOTpcXHQgICAgIF9pKyssIF92c2kgPSBfX2k0MGVfcGZfbmV4dF92c2koX3BmLCBcXHUwMDI2X2kpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MjEtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzIyOiAqIF9faTQwZV9wZl9uZXh0X3ZlYiAtIGdldCBuZXh0IHZhbGlkIFZFQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcyMy0gKiBAcGY6IHBvaW50ZXIgdG8gdGhlIFBGIHN0cnVjdFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzI4LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3Mjk6c3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgaTQwZV92ZWIgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjczMDpfX2k0MGVfcGZfbmV4dF92ZWIoc3RydWN0IGk0MGVfcGYgKnBmLCBpbnQgKmlkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MzEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MDojZGVmaW5lIGk0MGVfcGZfZm9yX2VhY2hfdmViKF9wZiwgX2ksIF92ZWIpXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MTpcXHRmb3IgKF9pID0gMCwgX3ZlYiA9IF9faTQwZV9wZl9uZXh0X3ZlYihfcGYsIFxcdTAwMjZfaSk7XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0Mi1cXHQgICAgIF92ZWI7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MzpcXHQgICAgIF9pKyssIF92ZWIgPSBfX2k0MGVfcGZfbmV4dF92ZWIoX3BmLCBcXHUwMDI2X2kpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NDUtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzQ2OiAqIGk0MGVfYWRkcl90b19oa2V5IC0gQ29udmVydCBhIDYtYnl0ZSBNQUMgQWRkcmVzcyB0byBhIHU2NCBoYXNoIGtleVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0Ny0gKiBAbWFjYWRkcjogdGhlIE1BQyBBZGRyZXNzIGFzIHRoZSBiYXNlIGtleVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzUwLSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NTE6c3RhdGljIGlubGluZSB1NjQgaTQwZV9hZGRyX3RvX2hrZXkoY29uc3QgdTggKm1hY2FkZHIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NTk6ZW51bSBpNDBlX2ZpbHRlcl9zdGF0ZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzYwLVxcdEk0MEVfRklMVEVSX0lOVkFMSUQgPSAwLFxcdC8qIEludmFsaWQgc3RhdGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc2NC1cXHRJNDBFX0ZJTFRFUl9SRU1PVkUsXFx0XFx0LyogVG8gYmUgcmVtb3ZlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc2NTpcXHRJNDBFX0ZJTFRFUl9ORVdfU1lOQyxcXHRcXHQvKiBOZXcsIG5vdCBzZW50IHlldCwgaXMgaW4gaTQwZV9zeW5jX3ZzaV9maWx0ZXJzKCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NjYtLyogVGhlcmUgaXMgbm8gJ3JlbW92ZWQnIHN0YXRlOyB0aGUgZmlsdGVyIHN0cnVjdCBpcyBmcmVlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc2Ny19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc2ODpzdHJ1Y3QgaTQwZV9tYWNfZmlsdGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NjktXFx0c3RydWN0IGhsaXN0X25vZGUgaGxpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NzItXFx0czE2IHZsYW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzczOlxcdGVudW0gaTQwZV9maWx0ZXJfc3RhdGUgc3RhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzc0LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03ODMtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg0OnN0cnVjdCBpNDBlX25ld19tYWNfZmlsdGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03ODUtXFx0c3RydWN0IGhsaXN0X25vZGUgaGxpc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg2OlxcdHN0cnVjdCBpNDBlX21hY19maWx0ZXIgKmY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc4OC1cXHQvKiBUcmFjayBmdXR1cmUgY2hhbmdlcyB0byBzdGF0ZSBzZXBhcmF0ZWx5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg5OlxcdGVudW0gaTQwZV9maWx0ZXJfc3RhdGUgc3RhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzkwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc5MjpzdHJ1Y3QgaTQwZV92ZWIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc5MzpcXHRzdHJ1Y3QgaTQwZV9wZiAqcGY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzk0LVxcdHUxNiBpZHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04MDctXFx0Ym9vbCBzdGF0X29mZnNldHNfbG9hZGVkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgwODpcXHRzdHJ1Y3QgaTQwZV9ldGhfc3RhdHMgc3RhdHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODA5OlxcdHN0cnVjdCBpNDBlX2V0aF9zdGF0cyBzdGF0c19vZmZzZXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgxMDpcXHRzdHJ1Y3QgaTQwZV92ZWJfdGNfc3RhdHMgdGNfc3RhdHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODExOlxcdHN0cnVjdCBpNDBlX3ZlYl90Y19zdGF0cyB0Y19zdGF0c19vZmZzZXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTgxMi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODE0LS8qIHN0cnVjdCB0aGF0IGRlZmluZXMgYSBWU0ksIGFzc29jaWF0ZWQgd2l0aCBhIGRldiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgxNTpzdHJ1Y3QgaTQwZV92c2kge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTgxNi1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODM1LVxcdHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCBuZXRfc3RhdHNfb2Zmc2V0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4MzY6XFx0c3RydWN0IGk0MGVfZXRoX3N0YXRzIGV0aF9zdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4Mzc6XFx0c3RydWN0IGk0MGVfZXRoX3N0YXRzIGV0aF9zdGF0c19vZmZzZXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTgzOC1cXHR1NjQgdHhfcmVzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg1MC1cXHQvKiBUaGVzZSBhcmUgY29udGFpbmVycyBvZiByaW5nIHBvaW50ZXJzLCBhbGxvY2F0ZWQgYXQgcnVuLXRpbWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4NTE6XFx0c3RydWN0IGk0MGVfcmluZyAqKnJ4X3JpbmdzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg1MjpcXHRzdHJ1Y3QgaTQwZV9yaW5nICoqdHhfcmluZ3M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODUzOlxcdHN0cnVjdCBpNDBlX3JpbmcgKip4ZHBfcmluZ3M7IC8qIFhEUCBUeCByaW5ncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg1NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg3Mi1cXHQvKiBMaXN0IG9mIHFfdmVjdG9ycyBhbGxvY2F0ZWQgdG8gdGhpcyBWU0kgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4NzM6XFx0c3RydWN0IGk0MGVfcV92ZWN0b3IgKipxX3ZlY3RvcnM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODc0LVxcdGludCBudW1fcV92ZWN0b3JzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODg3LVxcdHUxNiBudW1fcnhfZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4ODg6XFx0ZW51bSBpNDBlX3ZzaV90eXBlIHR5cGU7ICAvKiBWU0kgdHlwZSwgZS5nLiwgTEFOLCBGQ29FLCBldGMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04ODktXFx0czE2IHZmX2lkO1xcdFxcdC8qIFZpcnR1YWwgZnVuY3Rpb24gSUQgZm9yIFNSSU9WIFZTSXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg5MS1cXHRzdHJ1Y3QgdGNfbXFwcmlvX3FvcHRfb2ZmbG9hZCBtcXByaW9fcW9wdDsgLyogcXVldWUgcGFyYW1ldGVycyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg5MjpcXHRzdHJ1Y3QgaTQwZV90Y19jb25maWd1cmF0aW9uIHRjX2NvbmZpZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4OTM6XFx0c3RydWN0IGk0MGVfYXFjX3ZzaV9wcm9wZXJ0aWVzX2RhdGEgaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04OTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05MDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTA2OlxcdHN0cnVjdCBpNDBlX3BmICpiYWNrO1xcdC8qIEJhY2tyZWZlcmVuY2UgdG8gYXNzb2NpYXRlZCBQRiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTkwNy1cXHR1MTYgaWR4O1xcdFxcdC8qIGluZGV4IGluIHBmLVxcdTAwM2V2c2lbXSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTEwLVxcdGJvb2wgY3VycmVudF9pc3VwO1xcdC8qIFN5bmMgJ2xpbmsgdXAnIGxvZ2dpbmcgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5MTE6XFx0ZW51bSBpNDBlX2FxX2xpbmtfc3BlZWQgY3VycmVudF9zcGVlZDtcXHQvKiBTeW5jIGxpbmsgc3BlZWQgbG9nZ2luZyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTkxMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTkzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5Mzk6c3RydWN0IGk0MGVfbmV0ZGV2X3ByaXYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk0MDpcXHRzdHJ1Y3QgaTQwZV92c2kgKnZzaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NDEtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTQzOmV4dGVybiBzdHJ1Y3QgaWRhIGk0MGVfY2xpZW50X2lkYTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQ1LS8qIHN0cnVjdCB0aGF0IGRlZmluZXMgYW4gaW50ZXJydXB0IHZlY3RvciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk0NjpzdHJ1Y3QgaTQwZV9xX3ZlY3RvciB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTQ3OlxcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5NTU6XFx0c3RydWN0IGk0MGVfcmluZ19jb250YWluZXIgcng7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTU2OlxcdHN0cnVjdCBpNDBlX3JpbmdfY29udGFpbmVyIHR4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk3MC0vKiBsYW4gZGV2aWNlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTcxOnN0cnVjdCBpNDBlX2RldmljZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTcyLVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5NzM6XFx0c3RydWN0IGk0MGVfcGYgKnBmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk3NC19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTc2LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk3NzogKiBpNDBlX2luZm9fbnZtX3ZlciAtIGZvcm1hdCB0aGUgTlZNIHZlcnNpb24gc3RyaW5nXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTc4LSAqIEBodzogcHRyIHRvIHRoZSBoYXJkd2FyZSBpbmZvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05ODUtICoqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk4NjpzdGF0aWMgaW5saW5lIHZvaWQgaTQwZV9pbmZvX252bV92ZXIoc3RydWN0IGk0MGVfaHcgKmh3LCBjaGFyICpidWYsIHNpemVfdCBsZW4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTg3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5ODg6XFx0c3RydWN0IGk0MGVfbnZtX2luZm8gKm52bSA9IFxcdTAwMjZody1cXHUwMDNlbnZtO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMDgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTAwOTogKiBpNDBlX2luZm9fZWV0cmFjayAtIGZvcm1hdCB0aGUgRUVUcmFja0lEIHN0cmluZ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMTAtICogQGh3OiBwdHIgdG8gdGhlIGhhcmR3YXJlIGluZm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMTYtICoqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMTc6c3RhdGljIGlubGluZSB2b2lkIGk0MGVfaW5mb19lZXRyYWNrKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLCBzaXplX3QgbGVuKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMTk6XFx0c3RydWN0IGk0MGVfbnZtX2luZm8gKm52bSA9IFxcdTAwMjZody1cXHUwMDNlbnZtO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDI2LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMjc6ICogaTQwZV9pbmZvX2NpdmRfdmVyIC0gZm9ybWF0IHRoZSBOVk0gdmVyc2lvbiBzdHJpbmdzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAyOC0gKiBAaHc6IHB0ciB0byB0aGUgaGFyZHdhcmUgaW5mb1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAzNC0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTAzNTpzdGF0aWMgaW5saW5lIHZvaWQgaTQwZV9pbmZvX2NpdmRfdmVyKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLCBzaXplX3QgbGVuKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMzc6XFx0c3RydWN0IGk0MGVfbnZtX2luZm8gKm52bSA9IFxcdTAwMjZody1cXHUwMDNlbnZtO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMzgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDUyLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwNTM6ICogaTQwZV9udm1fdmVyc2lvbl9zdHIgLSBmb3JtYXQgdGhlIE5WTSB2ZXJzaW9uIHN0cmluZ3NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDU0LSAqIEBodzogcHRyIHRvIHRoZSBoYXJkd2FyZSBpbmZvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDU3LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDU4OnN0YXRpYyBpbmxpbmUgY2hhciAqaTQwZV9udm1fdmVyc2lvbl9zdHIoc3RydWN0IGk0MGVfaHcgKmh3LCBjaGFyICpidWYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA1OS1cXHRcXHRcXHRcXHRcXHQgc2l6ZV90IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwNjMtXFx0LyogR2V0IE5WTSB2ZXJzaW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA2NDpcXHRpNDBlX2luZm9fbnZtX3ZlcihodywgYnVmLCBsZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA2Ni1cXHQvKiBBcHBlbmQgRUVUcmFja0lEIGlmIHByb3ZpZGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA2NzpcXHRpNDBlX2luZm9fZWV0cmFjayhodywgXFx1MDAyNnZlclsxXSwgc2l6ZW9mKHZlcikgLSAxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDY4LVxcdGlmIChzdHJsZW4odmVyKSBcXHUwMDNlIDEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDcxLVxcdC8qIEFwcGVuZCBjb21ibyBpbWFnZSB2ZXJzaW9uIGlmIHByb3ZpZGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA3MjpcXHRpNDBlX2luZm9fY2l2ZF92ZXIoaHcsIFxcdTAwMjZ2ZXJbMV0sIHNpemVvZih2ZXIpIC0gMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA3My1cXHRpZiAoc3RybGVuKHZlcikgXFx1MDAzZSAxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA3OS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDgwOiAqIGk0MGVfbmV0ZGV2X3RvX3BmOiBSZXRyaWV2ZSB0aGUgUEYgc3RydWN0IGZvciBnaXZlbiBuZXRkZXZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDgxLSAqIEBuZXRkZXY6IHRoZSBjb3JyZXNwb25kaW5nIG5ldGRldlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA4NC0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA4NTpzdGF0aWMgaW5saW5lIHN0cnVjdCBpNDBlX3BmICppNDBlX25ldGRldl90b19wZihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwODYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwODc6XFx0c3RydWN0IGk0MGVfbmV0ZGV2X3ByaXYgKm5wID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDg4OlxcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpID0gbnAtXFx1MDAzZXZzaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDg5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDkzOnN0YXRpYyBpbmxpbmUgdm9pZCBpNDBlX3ZzaV9zZXR1cF9pcnFoYW5kbGVyKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwOTQtXFx0XFx0XFx0XFx0aXJxcmV0dXJuX3QgKCppcnFfaGFuZGxlcikoaW50LCB2b2lkICopKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA5OS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTAwOiAqIGk0MGVfZ2V0X2ZkX2NudF9hbGwgLSBnZXQgdGhlIHRvdGFsIEZEIGZpbHRlciBzcGFjZSBhdmFpbGFibGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTAxLSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTEwMi0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEwMzpzdGF0aWMgaW5saW5lIGludCBpNDBlX2dldF9mZF9jbnRfYWxsKHN0cnVjdCBpNDBlX3BmICpwZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMDgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEwOTogKiBpNDBlX3JlYWRfZmRfaW5wdXRfc2V0IC0gcmVhZHMgdmFsdWUgb2YgZmxvdyBkaXJlY3RvciBpbnB1dCBzZXQgcmVnaXN0ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTEwLSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTE1LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTE2OnN0YXRpYyBpbmxpbmUgdTY0IGk0MGVfcmVhZF9mZF9pbnB1dF9zZXQoc3RydWN0IGk0MGVfcGYgKnBmLCB1MTYgYWRkcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTE3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEyMDpcXHR2YWwgPSBpNDBlX3JlYWRfcnhfY3RsKFxcdTAwMjZwZi1cXHUwMDNlaHcsIEk0MEVfUFJUUUZfRkRfSU5TRVQoYWRkciwgMSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMjEtXFx0dmFsIFxcdTAwM2NcXHUwMDNjPSAzMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTIyOlxcdHZhbCArPSBpNDBlX3JlYWRfcnhfY3RsKFxcdTAwMjZwZi1cXHUwMDNlaHcsIEk0MEVfUFJUUUZfRkRfSU5TRVQoYWRkciwgMCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTI3LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMjg6ICogaTQwZV93cml0ZV9mZF9pbnB1dF9zZXQgLSB3cml0ZXMgdmFsdWUgaW50byBmbG93IGRpcmVjdG9yIGlucHV0IHNldCByZWdpc3RlclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMjktICogQHBmOiBwb2ludGVyIHRvIHRoZSBQRiBzdHJ1Y3RcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMzUtICoqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMzY6c3RhdGljIGlubGluZSB2b2lkIGk0MGVfd3JpdGVfZmRfaW5wdXRfc2V0KHN0cnVjdCBpNDBlX3BmICpwZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTM3LVxcdFxcdFxcdFxcdFxcdCAgIHUxNiBhZGRyLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMzgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMzk6XFx0aTQwZV93cml0ZV9yeF9jdGwoXFx1MDAyNnBmLVxcdTAwM2VodywgSTQwRV9QUlRRRl9GRF9JTlNFVChhZGRyLCAxKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTQwLVxcdFxcdFxcdCAgKHUzMikodmFsIFxcdTAwM2VcXHUwMDNlIDMyKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE0MTpcXHRpNDBlX3dyaXRlX3J4X2N0bChcXHUwMDI2cGYtXFx1MDAzZWh3LCBJNDBFX1BSVFFGX0ZEX0lOU0VUKGFkZHIsIDApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNDItXFx0XFx0XFx0ICAodTMyKSh2YWwgXFx1MDAyNiAweEZGRkZGRkZGVUxMKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTQ1LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNDY6ICogaTQwZV9nZXRfcGZfY291bnQgLSBnZXQgUENJIFBGIGNvdW50LlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNDctICogQGh3OiBwb2ludGVyIHRvIGEgaHcuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTUzLSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTU0OnN0YXRpYyBpbmxpbmUgdTMyIGk0MGVfZ2V0X3BmX2NvdW50KHN0cnVjdCBpNDBlX2h3ICpodylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTU1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2MDovKiBuZWVkZWQgYnkgaTQwZV9ldGh0b29sLmMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTYxOmludCBpNDBlX3VwKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTYyOnZvaWQgaTQwZV9kb3duKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTYzOmV4dGVybiBjb25zdCBjaGFyIGk0MGVfZHJpdmVyX25hbWVbXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTY0OnZvaWQgaTQwZV9kb19yZXNldF9zYWZlKHN0cnVjdCBpNDBlX3BmICpwZiwgdTMyIHJlc2V0X2ZsYWdzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTY1OnZvaWQgaTQwZV9kb19yZXNldChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUzMiByZXNldF9mbGFncywgYm9vbCBsb2NrX2FjcXVpcmVkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTY2OmludCBpNDBlX2NvbmZpZ19yc3Moc3RydWN0IGk0MGVfdnNpICp2c2ksIHU4ICpzZWVkLCB1OCAqbHV0LCB1MTYgbHV0X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNjc6aW50IGk0MGVfZ2V0X3JzcyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSwgdTggKnNlZWQsIHU4ICpsdXQsIHUxNiBsdXRfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2ODp2b2lkIGk0MGVfZmlsbF9yc3NfbHV0KHN0cnVjdCBpNDBlX3BmICpwZiwgdTggKmx1dCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTY5LVxcdFxcdCAgICAgICB1MTYgcnNzX3RhYmxlX3NpemUsIHUxNiByc3Nfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3MDpzdHJ1Y3QgaTQwZV92c2kgKmk0MGVfZmluZF92c2lfZnJvbV9pZChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUxNiBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE3MS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTcyOiAqIGk0MGVfZmluZF92c2lfYnlfdHlwZSAtIEZpbmQgYW5kIHJldHVybiBGbG93IERpcmVjdG9yIFZTSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNzMtICogQHBmOiBQRiB0byBzZWFyY2ggZm9yIFZTSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE3NS0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3NjpzdGF0aWMgaW5saW5lIHN0cnVjdCBpNDBlX3ZzaSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3NzppNDBlX2ZpbmRfdnNpX2J5X3R5cGUoc3RydWN0IGk0MGVfcGYgKnBmLCB1MTYgdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTc4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTc5OlxcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExODAtXFx0aW50IGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTgyOlxcdGk0MGVfcGZfZm9yX2VhY2hfdnNpKHBmLCBpLCB2c2kpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE4My1cXHRcXHRpZiAodnNpLVxcdTAwM2V0eXBlID09IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTg3LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTg4OnZvaWQgaTQwZV91cGRhdGVfc3RhdHMoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExODk6dm9pZCBpNDBlX3VwZGF0ZV92ZWJfc3RhdHMoc3RydWN0IGk0MGVfdmViICp2ZWIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTA6dm9pZCBpNDBlX3VwZGF0ZV9ldGhfc3RhdHMoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTE6c3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICppNDBlX2dldF92c2lfc3RhdHNfc3RydWN0KHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTkyOmludCBpNDBlX2ZldGNoX3N3aXRjaF9jb25maWd1cmF0aW9uKHN0cnVjdCBpNDBlX3BmICpwZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTkzLVxcdFxcdFxcdFxcdCAgICBib29sIHByaW50Y29uZmlnKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTU6aW50IGk0MGVfYWRkX2RlbF9mZGlyKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTY6XFx0XFx0ICAgICAgc3RydWN0IGk0MGVfZmRpcl9maWx0ZXIgKmlucHV0LCBib29sIGFkZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5Nzp2b2lkIGk0MGVfZmRpcl9jaGVja19hbmRfcmVlbmFibGUoc3RydWN0IGk0MGVfcGYgKnBmKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTk4OnUzMiBpNDBlX2dldF9jdXJyZW50X2ZkX2NvdW50KHN0cnVjdCBpNDBlX3BmICpwZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5OTp1MzIgaTQwZV9nZXRfY3VycmVudF9hdHJfY250KHN0cnVjdCBpNDBlX3BmICpwZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwMDp1MzIgaTQwZV9nZXRfZ2xvYmFsX2ZkX2NvdW50KHN0cnVjdCBpNDBlX3BmICpwZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwMTpib29sIGk0MGVfc2V0X250dXBsZShzdHJ1Y3QgaTQwZV9wZiAqcGYsIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjAyOnZvaWQgaTQwZV9zZXRfZXRodG9vbF9vcHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwMzpzdHJ1Y3QgaTQwZV9tYWNfZmlsdGVyICppNDBlX2FkZF9maWx0ZXIoc3RydWN0IGk0MGVfdnNpICp2c2ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIwNC1cXHRcXHRcXHRcXHRcXHRjb25zdCB1OCAqbWFjYWRkciwgczE2IHZsYW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMDU6dm9pZCBfX2k0MGVfZGVsX2ZpbHRlcihzdHJ1Y3QgaTQwZV92c2kgKnZzaSwgc3RydWN0IGk0MGVfbWFjX2ZpbHRlciAqZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwNjppbnQgaTQwZV9zeW5jX3ZzaV9maWx0ZXJzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjA3OnN0cnVjdCBpNDBlX3ZzaSAqaTQwZV92c2lfc2V0dXAoc3RydWN0IGk0MGVfcGYgKnBmLCB1OCB0eXBlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMDgtXFx0XFx0XFx0XFx0dTE2IHVwbGluaywgdTMyIHBhcmFtMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwOTppbnQgaTQwZV92c2lfcmVsZWFzZShzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxMDp2b2lkIGk0MGVfc2VydmljZV9ldmVudF9zY2hlZHVsZShzdHJ1Y3QgaTQwZV9wZiAqcGYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMTE6dm9pZCBpNDBlX25vdGlmeV9jbGllbnRfb2ZfdmZfbXNnKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLCB1MzIgdmZfaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIxMi1cXHRcXHRcXHRcXHQgIHU4ICptc2csIHUxNiBsZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxNDppbnQgaTQwZV9jb250cm9sX3dhaXRfdHhfcShpbnQgc2VpZCwgc3RydWN0IGk0MGVfcGYgKnBmLCBpbnQgcGZfcSwgYm9vbCBpc194ZHAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIxNS1cXHRcXHRcXHQgICBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxNjppbnQgaTQwZV9jb250cm9sX3dhaXRfcnhfcShzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCBwZl9xLCBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxNzppbnQgaTQwZV92c2lfc3RhcnRfcmluZ3Moc3RydWN0IGk0MGVfdnNpICp2c2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMTg6dm9pZCBpNDBlX3ZzaV9zdG9wX3JpbmdzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE5OnZvaWQgaTQwZV92c2lfc3RvcF9yaW5nc19ub193YWl0KHN0cnVjdCAgaTQwZV92c2kgKnZzaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyMDppbnQgaTQwZV92c2lfd2FpdF9xdWV1ZXNfZGlzYWJsZWQoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjE6aW50IGk0MGVfcmVjb25maWdfcnNzX3F1ZXVlcyhzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCBxdWV1ZV9jb3VudCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyMjpzdHJ1Y3QgaTQwZV92ZWIgKmk0MGVfdmViX3NldHVwKHN0cnVjdCBpNDBlX3BmICpwZiwgdTE2IHVwbGlua19zZWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMjMtXFx0XFx0XFx0XFx0dTE2IGRvd25saW5rX3NlaWQsIHU4IGVuYWJsZWRfdGMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjQ6dm9pZCBpNDBlX3ZlYl9yZWxlYXNlKHN0cnVjdCBpNDBlX3ZlYiAqdmViKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMjI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjY6aW50IGk0MGVfdmViX2NvbmZpZ190YyhzdHJ1Y3QgaTQwZV92ZWIgKnZlYiwgdTggZW5hYmxlZF90Yyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyNzppbnQgaTQwZV92c2lfYWRkX3B2aWQoc3RydWN0IGk0MGVfdnNpICp2c2ksIHUxNiB2aWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjg6dm9pZCBpNDBlX3ZzaV9yZW1vdmVfcHZpZChzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyOTp2b2lkIGk0MGVfdnNpX3Jlc2V0X3N0YXRzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDc6MDA6MTguMjE3NzQ5MjFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDYxNTYwODEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIGFuIGk0MGUgRHJpdmVyIFBhdGNoIGluIGEgUUVNVSBDb250ZXh0KipcblxuT2theSwgc28gdGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBgaTQwZWAg4oCTIHRoYXQncyBJbnRlbCdzIDQwIEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlci4gTXkgZmlyc3QgdGhvdWdodCBpczogY2FuIEkgZXZlbiAqZ2V0KiB0byB0aGlzIGNvZGUgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudD8gQ29uc2lkZXJpbmcgdGhpcyBwYXRjaCBzcGVjaWZpY2FsbHkgdG91Y2hlcyBgaTQwZV94c2suY2AsIHdoaWNoIGlzIHRoZSBBRl9YRFAgemVyby1jb3B5IHN1cHBvcnQgZm9yIHRoZSBpNDBlIGRyaXZlciwgdGhlIGFuc3dlciBzZWVtcyBpbml0aWFsbHkgb2J2aW91cy4gU2luY2UgUUVNVSBkb2Vzbid0IGRpcmVjdGx5IGVtdWxhdGUgaTQwZSBoYXJkd2FyZSwgdGhlIGRyaXZlciBzaG91bGRuJ3QgYmUgbG9hZGVkLCBhbmQgdGhpcyBwYXJ0aWN1bGFyIGNvZGUgcGF0aCB3b3VsZG4ndCBiZSBleGVjdXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAuXG5cbkJ1dCB3YWl0LCBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLiBEb2VzIFFFTVUsIHBlcmhhcHMsIHByb3ZpZGUgKnNvbWUqIGxldmVsIG9mIGk0MGUgZW11bGF0aW9uPyBJdCdzIHdvcnRoIGEgZG91YmxlLWNoZWNrIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZS1iYXNlZCBpbnRlcnByZXRhdGlvbi4gVGltZSB0byB2ZXJpZnkgaWYgaXQgaXMgaGFyZHdhcmUgZXhjbHVzaXZlLlxuXG5Ob3BlLiBRdWljayBzY2FuIGNvbmZpcm1zIFFFTVUgb2ZmZXJzIGEgcmFuZ2Ugb2YgbmV0d29yayBkZXZpY2VzIGxpa2UgZTEwMDAsIGUxMDAwZSwgaWdiLCBydGw4MTM5LCBwY25ldCwgbmUya19wY2ksIHZteG5ldDMsIHZpcnRpby1uZXQsIGFuZCB0dWxpcC4gTm8gaTQwZS4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5LCBwb3NpdGl2ZWx5IHN1cmUsIGxldCBtZSB0YWtlIGEgcXVpY2sgcGVhayBhdCB0aGUgYGh3L25ldGAgZGlyZWN0b3J5IHdpdGhpbiB0aGUgUUVNVSBzb3VyY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMjc2LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA3OjAwOjIzLjY3OTMxNTg2MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTA4MjkwNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaTQwZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc9MjI5PWNvbmZpZyBJNDBFXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI0NC1cXHQgIE1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gb24gY29uZmlndXJpbmcgdGhlIGRyaXZlciBpcyBpblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjQ1OlxcdCAgXFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ludGVsL2k0MGUucnN0XFx1MDAzZS5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI0Ny1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnOjI0ODpcXHQgIHdpbGwgYmUgY2FsbGVkIGk0MGUuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNDktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnPTI2OD1jb25maWcgSTQwRVZGXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnOjI4MjpcXHQgIFRoaXMgZHJpdmVyIHdhcyBmb3JtZXJseSBuYW1lZCBpNDBldmYuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yODMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA3OjAwOjIzLjc5MDE0OTg1OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3MDMxODUxMDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBpNDBlIERyaXZlciBDb2RlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgYGk0MGVgIGRyaXZlciDigJMgdGhhdCdzIHRoZSBvbmUgZm9yIHRoZSBJbnRlbCBYTDcxMCBFdGhlcm5ldCBDb25uZWN0aW9uLiBUaGlzIGlzIGEgKnBoeXNpY2FsKiBQQ0llIGhhcmR3YXJlIGNvbXBvbmVudCwgYSByZWFsIGNhcmQgeW91IHN0aWNrIGluIGEgc2VydmVyLiBBbmQgYXMgSSBrbm93IGZyb20gZXhwZXJpZW5jZSwgUUVNVSwgdGhlIGNvbW1vbiB2aXJ0dWFsaXphdGlvbiB0b29sLCBkb2Vzbid0IGVtdWxhdGUgdGhlIFhMNzEwIG9yIHRoZSBpNDBlIGRyaXZlci4gU28sIGluIGFueSB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9yLCBtb3JlIGRpcmVjdGx5LCBRRU1VLCB0aGlzIHBhcnRpY3VsYXIgY29kZSBpcyBzaW1wbHkgbmV2ZXIgZ29pbmcgdG8gYmUgZXhlY3V0ZWQuXG5cbk5vdywgbGV0J3MgZG91YmxlLWNoZWNrIHRoZSBpbnN0cnVjdGlvbnMuIFRoZXkgc3BlY2lmaWNhbGx5IHNheSB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGNvbmNlcm5zIGNvZGUgaW4gY2VydGFpbiB0eXBlcyBvZiBkcml2ZXJzLCBhbmQsIGxldCBtZSBzZWUsICpyaWdodCBoZXJlKiwgaXQgbWVudGlvbnMgXCJ2ZW5kb3Itc3BlY2lmaWMgUENJZS4uLiBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiXG5cbkJpbmdvLiBgaTQwZWAgaXMgKmV4YWN0bHkqIHRoYXQ6IGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyIHNwZWNpZmljYWxseSBmb3IgSW50ZWwgWEw3MTAgY2FyZHMuIEl0IG5lZWRzIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgd2hpY2ggUUVNVSBkb2Vzbid0IG9mZmVyLiBUaGVyZWZvcmUsIGJhc2VkIG9uIHRoZSBpbnN0cnVjdGlvbiBzZXQsIGFuZCBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBlbnZpcm9ubWVudCwgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTMxLCJPdXRwdXRUb2tlbnMiOjgzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA3OjAwOjMxLjQ5MzMzODE2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNzQyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaTQwZSBkcml2ZXIgKEludGVsIDQwIEdpZ2FiaXQgRXRoZXJuZXQgLyBYTDcxMCksIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpNDBlIGRyaXZlciAoSW50ZWwgNDAgR2lnYWJpdCBFdGhlcm5ldCAvIFhMNzEwKSwgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7jm47[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-25 06:03:08 +0000 UTC FinishedAt: 2026-07-25 07:00:33 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA3OjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpNDBlIGRyaXZlciAoSW50ZWwgNDAgR2lnYWJpdCBFdGhlcm5ldCAvIFhMNzEwKSwgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGY1ZjkyZjU4MDA4YWQ0MzIzMTg1NTc2Y2ZlMjVjMGU1OGY3MTUyNWRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAyNSAwNzowMDoxMCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmNcbmluZGV4IDlmNDczODhlYWJhNTM4Li4xMzkzMmIzNjE0MmRiNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jXG5AQCAtMyw2ICYjNDM7Myw3IEBAXG4gXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvYnBmX3RyYWNlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC91bnJvbGwuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NuZXQveGRwLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NuZXQveGRwX3NvY2tfZHJ2LmhcdTAwM2VcbiAjaW5jbHVkZSBcJiMzNDtpNDBlX3R4cnhfY29tbW9uLmhcJiMzNDtcbiAjaW5jbHVkZSBcJiMzNDtpNDBlX3hzay5oXCYjMzQ7XG5AQCAtMjc3LDcwICYjNDM7Mjc4LDYgQEAgYm9vbCBpNDBlX2FsbG9jX3J4X2J1ZmZlcnNfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZywgdTE2IGNvdW50KVxuIFx0cmV0dXJuIGNvdW50ID09IG5iX2J1ZmZzO1xuIH1cbiBcbi0vKipcbi0gKiBpNDBlX2NvbnN0cnVjdF9za2JfemMgLSBDcmVhdGUgc2tidWZmIGZyb20gemVyby1jb3B5IFJ4IGJ1ZmZlclxuLSAqIEByeF9yaW5nOiBSeCByaW5nXG4tICogQHhkcDogeGRwX2J1ZmZcbi0gKlxuLSAqIFRoaXMgZnVuY3Rpb25zIGFsbG9jYXRlcyBhIG5ldyBza2IgZnJvbSBhIHplcm8tY29weSBSeCBidWZmZXIuXG4tICpcbi0gKiBSZXR1cm5zIHRoZSBza2IsIG9yIE5VTEwgb24gZmFpbHVyZS5cbi0gKiovXG4tc3RhdGljIHN0cnVjdCBza19idWZmICppNDBlX2NvbnN0cnVjdF9za2JfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcbi1cdFx0XHRcdFx0ICAgICBzdHJ1Y3QgeGRwX2J1ZmYgKnhkcClcbi17XG4tXHR1bnNpZ25lZCBpbnQgdG90YWxzaXplID0geGRwLVx1MDAzZWRhdGFfZW5kIC0geGRwLVx1MDAzZWRhdGFfbWV0YTtcbi1cdHVuc2lnbmVkIGludCBtZXRhc2l6ZSA9IHhkcC1cdTAwM2VkYXRhIC0geGRwLVx1MDAzZWRhdGFfbWV0YTtcbi1cdHN0cnVjdCBza2Jfc2hhcmVkX2luZm8gKnNpbmZvID0gTlVMTDtcbi1cdHN0cnVjdCBza19idWZmICpza2I7XG4tXHR1MzIgbnJfZnJhZ3MgPSAwO1xuLVxuLVx0aWYgKHVubGlrZWx5KHhkcF9idWZmX2hhc19mcmFncyh4ZHApKSkge1xuLVx0XHRzaW5mbyA9IHhkcF9nZXRfc2hhcmVkX2luZm9fZnJvbV9idWZmKHhkcCk7XG4tXHRcdG5yX2ZyYWdzID0gc2luZm8tXHUwMDNlbnJfZnJhZ3M7XG4tXHR9XG4tXHRuZXRfcHJlZmV0Y2goeGRwLVx1MDAzZWRhdGFfbWV0YSk7XG4tXG4tXHQvKiBhbGxvY2F0ZSBhIHNrYiB0byBzdG9yZSB0aGUgZnJhZ3MgKi9cbi1cdHNrYiA9IG5hcGlfYWxsb2Nfc2tiKFx1MDAyNnJ4X3JpbmctXHUwMDNlcV92ZWN0b3ItXHUwMDNlbmFwaSwgdG90YWxzaXplKTtcbi1cdGlmICh1bmxpa2VseSghc2tiKSlcbi1cdFx0Z290byBvdXQ7XG4tXG4tXHRtZW1jcHkoX19za2JfcHV0KHNrYiwgdG90YWxzaXplKSwgeGRwLVx1MDAzZWRhdGFfbWV0YSxcbi1cdCAgICAgICBBTElHTih0b3RhbHNpemUsIHNpemVvZihsb25nKSkpO1xuLVxuLVx0aWYgKG1ldGFzaXplKSB7XG4tXHRcdHNrYl9tZXRhZGF0YV9zZXQoc2tiLCBtZXRhc2l6ZSk7XG4tXHRcdF9fc2tiX3B1bGwoc2tiLCBtZXRhc2l6ZSk7XG4tXHR9XG4tXG4tXHRpZiAobGlrZWx5KCF4ZHBfYnVmZl9oYXNfZnJhZ3MoeGRwKSkpXG4tXHRcdGdvdG8gb3V0O1xuLVxuLVx0Zm9yIChpbnQgaSA9IDA7IGkgXHUwMDNjIG5yX2ZyYWdzOyBpJiM0MzsmIzQzOykge1xuLVx0XHRzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvICpza2luZm8gPSBza2Jfc2hpbmZvKHNrYik7XG4tXHRcdHNrYl9mcmFnX3QgKmZyYWcgPSBcdTAwMjZzaW5mby1cdTAwM2VmcmFnc1tpXTtcbi1cdFx0c3RydWN0IHBhZ2UgKnBhZ2U7XG4tXHRcdHZvaWQgKmFkZHI7XG4tXG4tXHRcdHBhZ2UgPSBkZXZfYWxsb2NfcGFnZSgpO1xuLVx0XHRpZiAoIXBhZ2UpIHtcbi1cdFx0XHRkZXZfa2ZyZWVfc2tiKHNrYik7XG4tXHRcdFx0cmV0dXJuIE5VTEw7XG4tXHRcdH1cbi1cdFx0YWRkciA9IHBhZ2VfdG9fdmlydChwYWdlKTtcbi1cbi1cdFx0bWVtY3B5KGFkZHIsIHNrYl9mcmFnX3BhZ2UoZnJhZyksIHNrYl9mcmFnX3NpemUoZnJhZykpO1xuLVxuLVx0XHRfX3NrYl9maWxsX3BhZ2VfZGVzY19ub2FjYyhza2luZm8sIHNraW5mby1cdTAwM2Vucl9mcmFncyYjNDM7JiM0MzssXG4tXHRcdFx0XHRcdCAgIGFkZHIsIDAsIHNrYl9mcmFnX3NpemUoZnJhZykpO1xuLVx0fVxuLVxuLW91dDpcbi1cdHhza19idWZmX2ZyZWUoeGRwKTtcbi1cdHJldHVybiBza2I7XG4tfVxuLVxuIHN0YXRpYyB2b2lkIGk0MGVfaGFuZGxlX3hkcF9yZXN1bHRfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcbiBcdFx0XHRcdCAgICAgIHN0cnVjdCB4ZHBfYnVmZiAqeGRwX2J1ZmYsXG4gXHRcdFx0XHQgICAgICB1bmlvbiBpNDBlX3J4X2Rlc2MgKnJ4X2Rlc2MsXG5AQCAtMzcyLDE0ICYjNDM7MzA5LDIxIEBAIHN0YXRpYyB2b2lkIGk0MGVfaGFuZGxlX3hkcF9yZXN1bHRfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcbiBcdFx0ICogQklUKEk0MEVfUlhEX1FXMV9FUlJPUl9TSElGVCkuIFRoaXMgaXMgZHVlIHRvIHRoYXRcbiBcdFx0ICogU0JQIGlzICpub3QqIHNldCBpbiBQUlRfU0JQVlNJIChkZWZhdWx0IG5vdCBzZXQpLlxuIFx0XHQgKi9cbi1cdFx0c2tiID0gaTQwZV9jb25zdHJ1Y3Rfc2tiX3pjKHJ4X3JpbmcsIHhkcF9idWZmKTtcbiYjNDM7XHRcdHNrYiA9IHhkcF9idWlsZF9za2JfZnJvbV96Yyh4ZHBfYnVmZik7XG4gXHRcdGlmICghc2tiKSB7XG4mIzQzO1x0XHRcdHhza19idWZmX2ZyZWUoeGRwX2J1ZmYpO1xuIFx0XHRcdHJ4X3JpbmctXHUwMDNlcnhfc3RhdHMuYWxsb2NfYnVmZl9mYWlsZWQmIzQzOyYjNDM7O1xuIFx0XHRcdCpyeF9wYWNrZXRzID0gMDtcbiBcdFx0XHQqcnhfYnl0ZXMgPSAwO1xuIFx0XHRcdHJldHVybjtcbiBcdFx0fVxuIFxuJiM0MztcdFx0LypcbiYjNDM7XHRcdCAqIHhkcF9idWlsZF9za2JfZnJvbV96YygpIGFscmVhZHkgcmFuIGV0aF90eXBlX3RyYW5zKCk7XG4mIzQzO1x0XHQgKiByZXN0b3JlIHRoZSBoZWFkZXIgZm9yIGV0aF9za2JfcGFkKCkvcHJvY2Vzc19za2JfZmllbGRzKCkuXG4mIzQzO1x0XHQgKi9cbiYjNDM7XHRcdF9fc2tiX3B1c2goc2tiLCBza2ItXHUwMDNlZGF0YSAtIHNrYl9tYWNfaGVhZGVyKHNrYikpO1xuJiM0MztcbiBcdFx0aWYgKGV0aF9za2JfcGFkKHNrYikpIHtcbiBcdFx0XHQqcnhfcGFja2V0cyA9IDA7XG4gXHRcdFx0KnJ4X2J5dGVzID0gMDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGk0MGUgZHJpdmVyIChJbnRlbCA0MCBHaWdhYml0IEV0aGVybmV0IC8gWEw3MTApLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgotIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLgotIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpCiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zCiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBBbHNvIGNoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncwogICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3MKICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgZjVmOTJmNTgwMDhhZDQzMjMxODU1NzZjZmUyNWMwZTU4ZjcxNTI1ZApBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBTYXQgSnVsIDI1IDA3OjAwOjEwIDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jCmluZGV4IDlmNDczODhlYWJhNTM4Li4xMzkzMmIzNjE0MmRiNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suYwpAQCAtMyw2ICYjNDM7Myw3IEBACiAKICNpbmNsdWRlICZsdDtsaW51eC9icGZfdHJhY2UuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC91bnJvbGwuaCZndDsKJiM0MzsjaW5jbHVkZSAmbHQ7bmV0L3hkcC5oJmd0OwogI2luY2x1ZGUgJmx0O25ldC94ZHBfc29ja19kcnYuaCZndDsKICNpbmNsdWRlICYjMzQ7aTQwZV90eHJ4X2NvbW1vbi5oJiMzNDsKICNpbmNsdWRlICYjMzQ7aTQwZV94c2suaCYjMzQ7CkBAIC0yNzcsNzAgJiM0MzsyNzgsNiBAQCBib29sIGk0MGVfYWxsb2NfcnhfYnVmZmVyc196YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLCB1MTYgY291bnQpCiAJcmV0dXJuIGNvdW50ID09IG5iX2J1ZmZzOwogfQogCi0vKioKLSAqIGk0MGVfY29uc3RydWN0X3NrYl96YyAtIENyZWF0ZSBza2J1ZmYgZnJvbSB6ZXJvLWNvcHkgUnggYnVmZmVyCi0gKiBAcnhfcmluZzogUnggcmluZwotICogQHhkcDogeGRwX2J1ZmYKLSAqCi0gKiBUaGlzIGZ1bmN0aW9ucyBhbGxvY2F0ZXMgYSBuZXcgc2tiIGZyb20gYSB6ZXJvLWNvcHkgUnggYnVmZmVyLgotICoKLSAqIFJldHVybnMgdGhlIHNrYiwgb3IgTlVMTCBvbiBmYWlsdXJlLgotICoqLwotc3RhdGljIHN0cnVjdCBza19idWZmICppNDBlX2NvbnN0cnVjdF9za2JfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZywKLQkJCQkJICAgICBzdHJ1Y3QgeGRwX2J1ZmYgKnhkcCkKLXsKLQl1bnNpZ25lZCBpbnQgdG90YWxzaXplID0geGRwLSZndDtkYXRhX2VuZCAtIHhkcC0mZ3Q7ZGF0YV9tZXRhOwotCXVuc2lnbmVkIGludCBtZXRhc2l6ZSA9IHhkcC0mZ3Q7ZGF0YSAtIHhkcC0mZ3Q7ZGF0YV9tZXRhOwotCXN0cnVjdCBza2Jfc2hhcmVkX2luZm8gKnNpbmZvID0gTlVMTDsKLQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwotCXUzMiBucl9mcmFncyA9IDA7Ci0KLQlpZiAodW5saWtlbHkoeGRwX2J1ZmZfaGFzX2ZyYWdzKHhkcCkpKSB7Ci0JCXNpbmZvID0geGRwX2dldF9zaGFyZWRfaW5mb19mcm9tX2J1ZmYoeGRwKTsKLQkJbnJfZnJhZ3MgPSBzaW5mby0mZ3Q7bnJfZnJhZ3M7Ci0JfQotCW5ldF9wcmVmZXRjaCh4ZHAtJmd0O2RhdGFfbWV0YSk7Ci0KLQkvKiBhbGxvY2F0ZSBhIHNrYiB0byBzdG9yZSB0aGUgZnJhZ3MgKi8KLQlza2IgPSBuYXBpX2FsbG9jX3NrYigmYW1wO3J4X3JpbmctJmd0O3FfdmVjdG9yLSZndDtuYXBpLCB0b3RhbHNpemUpOwotCWlmICh1bmxpa2VseSghc2tiKSkKLQkJZ290byBvdXQ7Ci0KLQltZW1jcHkoX19za2JfcHV0KHNrYiwgdG90YWxzaXplKSwgeGRwLSZndDtkYXRhX21ldGEsCi0JICAgICAgIEFMSUdOKHRvdGFsc2l6ZSwgc2l6ZW9mKGxvbmcpKSk7Ci0KLQlpZiAobWV0YXNpemUpIHsKLQkJc2tiX21ldGFkYXRhX3NldChza2IsIG1ldGFzaXplKTsKLQkJX19za2JfcHVsbChza2IsIG1ldGFzaXplKTsKLQl9Ci0KLQlpZiAobGlrZWx5KCF4ZHBfYnVmZl9oYXNfZnJhZ3MoeGRwKSkpCi0JCWdvdG8gb3V0OwotCi0JZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBucl9mcmFnczsgaSYjNDM7JiM0MzspIHsKLQkJc3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2tpbmZvID0gc2tiX3NoaW5mbyhza2IpOwotCQlza2JfZnJhZ190ICpmcmFnID0gJmFtcDtzaW5mby0mZ3Q7ZnJhZ3NbaV07Ci0JCXN0cnVjdCBwYWdlICpwYWdlOwotCQl2b2lkICphZGRyOwotCi0JCXBhZ2UgPSBkZXZfYWxsb2NfcGFnZSgpOwotCQlpZiAoIXBhZ2UpIHsKLQkJCWRldl9rZnJlZV9za2Ioc2tiKTsKLQkJCXJldHVybiBOVUxMOwotCQl9Ci0JCWFkZHIgPSBwYWdlX3RvX3ZpcnQocGFnZSk7Ci0KLQkJbWVtY3B5KGFkZHIsIHNrYl9mcmFnX3BhZ2UoZnJhZyksIHNrYl9mcmFnX3NpemUoZnJhZykpOwotCi0JCV9fc2tiX2ZpbGxfcGFnZV9kZXNjX25vYWNjKHNraW5mbywgc2tpbmZvLSZndDtucl9mcmFncyYjNDM7JiM0MzssCi0JCQkJCSAgIGFkZHIsIDAsIHNrYl9mcmFnX3NpemUoZnJhZykpOwotCX0KLQotb3V0OgotCXhza19idWZmX2ZyZWUoeGRwKTsKLQlyZXR1cm4gc2tiOwotfQotCiBzdGF0aWMgdm9pZCBpNDBlX2hhbmRsZV94ZHBfcmVzdWx0X3pjKHN0cnVjdCBpNDBlX3JpbmcgKnJ4X3JpbmcsCiAJCQkJICAgICAgc3RydWN0IHhkcF9idWZmICp4ZHBfYnVmZiwKIAkJCQkgICAgICB1bmlvbiBpNDBlX3J4X2Rlc2MgKnJ4X2Rlc2MsCkBAIC0zNzIsMTQgJiM0MzszMDksMjEgQEAgc3RhdGljIHZvaWQgaTQwZV9oYW5kbGVfeGRwX3Jlc3VsdF96YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLAogCQkgKiBCSVQoSTQwRV9SWERfUVcxX0VSUk9SX1NISUZUKS4gVGhpcyBpcyBkdWUgdG8gdGhhdAogCQkgKiBTQlAgaXMgKm5vdCogc2V0IGluIFBSVF9TQlBWU0kgKGRlZmF1bHQgbm90IHNldCkuCiAJCSAqLwotCQlza2IgPSBpNDBlX2NvbnN0cnVjdF9za2JfemMocnhfcmluZywgeGRwX2J1ZmYpOwomIzQzOwkJc2tiID0geGRwX2J1aWxkX3NrYl9mcm9tX3pjKHhkcF9idWZmKTsKIAkJaWYgKCFza2IpIHsKJiM0MzsJCQl4c2tfYnVmZl9mcmVlKHhkcF9idWZmKTsKIAkJCXJ4X3JpbmctJmd0O3J4X3N0YXRzLmFsbG9jX2J1ZmZfZmFpbGVkJiM0MzsmIzQzOzsKIAkJCSpyeF9wYWNrZXRzID0gMDsKIAkJCSpyeF9ieXRlcyA9IDA7CiAJCQlyZXR1cm47CiAJCX0KIAomIzQzOwkJLyoKJiM0MzsJCSAqIHhkcF9idWlsZF9za2JfZnJvbV96YygpIGFscmVhZHkgcmFuIGV0aF90eXBlX3RyYW5zKCk7CiYjNDM7CQkgKiByZXN0b3JlIHRoZSBoZWFkZXIgZm9yIGV0aF9za2JfcGFkKCkvcHJvY2Vzc19za2JfZmllbGRzKCkuCiYjNDM7CQkgKi8KJiM0MzsJCV9fc2tiX3B1c2goc2tiLCBza2ItJmd0O2RhdGEgLSBza2JfbWFjX2hlYWRlcihza2IpKTsKJiM0MzsKIAkJaWYgKGV0aF9za2JfcGFkKHNrYikpIHsKIAkJCSpyeF9wYWNrZXRzID0gMDsKIAkJCSpyeF9ieXRlcyA9IDA7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA3OjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyNjQKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBpNDBlIFBhdGNoIGFuZCBRRU1VIFJlYWNoYWJpbGl0eSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suY2AuIEl0IGxvb2tzIGxpa2UgdGhleSYjMzk7dmUgcmVtb3ZlZCBgaTQwZV9jb25zdHJ1Y3Rfc2tiX3pjYCBhbmQgc3dhcHBlZCBpdCBvdXQgd2l0aCBgeGRwX2J1aWxkX3NrYl9mcm9tX3pjKHhkcF9idWZmKWAuIFRoYXQmIzM5O3MgaW50ZXJlc3RpbmcsIHN1Z2dlc3RpbmcgYSBwb3RlbnRpYWwgWERQIG9wdGltaXphdGlvbiwgcHJvYmFibHkgYWltaW5nIGZvciB6ZXJvLWNvcHkgU0tCIGNvbnN0cnVjdGlvbiB3aXRoaW4gdGhlIGk0MGUgZHJpdmVyLiBUaGlzIGlzIHNwZWNpZmljYWxseSBmb3IgSW50ZWwgNDAgR2lnYWJpdCBFdGhlcm5ldCBhZGFwdGVycywgdGhlIGBpNDBlYCBkcml2ZXIuCgpUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIEkgaGF2ZSBpcyBhYm91dCBob3cgZWFzeSBpdCYjMzk7bGwgYmUgdG8gdGVzdCB0aGlzIGNoYW5nZS4gSXMgdGhpcyBkcml2ZXIgZXZlbiByZWFjaGFibGUgaW4gYSB0eXBpY2FsIFFFTVUgc2V0dXA/IEkga25vdyBRRU1VIHByZXR0eSB3ZWxsLCBhbmQgSSYjMzk7bSBwcmV0dHkgc3VyZSBpdCBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBpNDBlLiBJdCYjMzk7cyB1c3VhbGx5IHRoZSBvbGRlciBhbmQgbW9yZSBjb21tb24gYWRhcHRlcnMgbGlrZSBlMTAwMCwgZTEwMDBlLCBpZ2IsIHJ0bDgxMzksIGFuZCB2aXJ0aW8tbmV0LCBvciB0aG9zZSB0aGF0IGFyZSBlYXNpZXIgdG8gc2ltdWxhdGUuIEJ1dCB3YWl0LCBJIHNob3VsZCBkb3VibGUgY2hlY2suIExldCBtZSBqdXN0IGNvbmZpcm0gdGhhdCBRRU1VIGluZGVlZCBkb2VzbiYjMzk7dCBoYXZlIGFuIGk0MGUgZGV2aWNlLiBKdXN0IHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjUgMDc6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aTQwZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyNDU0OSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZS00LSNcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6NTojIE1ha2VmaWxlIGZvciB0aGUgSW50ZWwoUikgRXRoZXJuZXQgQ29ubmVjdGlvbiBYTDcxMCAoaTQwZS5rbykgZHJpdmVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlLTYtI1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU9OT1zdWJkaXItY2NmbGFncy15ICYjNDM7PSAtSSQoc3JjKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZS0xMC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX0k0MEUpICYjNDM7PSBpNDBlLm9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGUtMTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjEzOmk0MGUteSA6PSBpNDBlX21haW4ubyBcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxNDpcdGk0MGVfZXRodG9vbC5vXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxNTpcdGk0MGVfYWRtaW5xLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjE2Olx0aTQwZV9jb21tb24ub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTc6XHRpNDBlX2htYy5vXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxODpcdGk0MGVfbGFuX2htYy5vXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxOTpcdGk0MGVfbnZtLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIwOlx0aTQwZV9kZWJ1Z2ZzLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIxOlx0aTQwZV9kaWFnLm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIyOlx0aTQwZV90eHJ4Lm9cdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIzOlx0aTQwZV9wdHAub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MjQ6XHRpNDBlX2RkcC5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjI1Olx0aTQwZV9jbGllbnQubyAgIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjI2Olx0aTQwZV92aXJ0Y2hubF9wZi5vIFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjI3Olx0aTQwZV94c2sub1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6Mjg6XHRpNDBlX2Rldmxpbmsub1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZS0yOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MzA6aTQwZS0kKENPTkZJR19JNDBFX0RDQikgJiM0Mzs9IGk0MGVfZGNiLm8gaTQwZV9kY2Jfbmwub1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExLSNpbmNsdWRlIFx1MDAzY2xpbnV4L2F2Zi92aXJ0Y2hubC5oXHUwMDNlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjojaW5jbHVkZSBcdTAwM2NsaW51eC9uZXQvaW50ZWwvaTQwZV9jbGllbnQuaFx1MDAzZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTMtI2luY2x1ZGUgXHUwMDNjbmV0L2RldmxpbmsuaFx1MDAzZVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTE1LSNpbmNsdWRlIFx1MDAzY25ldC91ZHBfdHVubmVsLmhcdTAwM2VcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE2OiNpbmNsdWRlIFwmIzM0O2k0MGVfZGNiLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE3OiNpbmNsdWRlIFwmIzM0O2k0MGVfZGVidWcuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTg6I2luY2x1ZGUgXCYjMzQ7aTQwZV9kZXZsaW5rLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE5OiNpbmNsdWRlIFwmIzM0O2k0MGVfaW8uaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MjA6I2luY2x1ZGUgXCYjMzQ7aTQwZV9wcm90b3R5cGUuaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MjE6I2luY2x1ZGUgXCYjMzQ7aTQwZV9yZWdpc3Rlci5oXCYjMzQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMjojaW5jbHVkZSBcJiMzNDtpNDBlX3R4cnguaFwmIzM0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyNDovKiBVc2VmdWwgaTQwZSBkZWZhdWx0cyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjUtI2RlZmluZSBJNDBFX01BWF9WRUJcdFx0XHQxNlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM2LS8qIG1heCAxNiBxcHMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM3OiNkZWZpbmUgaTQwZV9kZWZhdWx0X3F1ZXVlc19wZXJfdm1kcShwZikgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM4LVx0KHRlc3RfYml0KEk0MEVfSFdfQ0FQX1JTU19BUSwgKHBmKS1cdTAwM2Vody5jYXBzKSA/IDQgOiAxKVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQwLSNkZWZpbmUgSTQwRV9NQVhfVkZfUVVFVUVTXHRcdDE2XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0MTojZGVmaW5lIGk0MGVfcGZfZ2V0X21heF9xX3Blcl90YyhwZikgXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQyLVx0KHRlc3RfYml0KEk0MEVfSFdfQ0FQXzEyOF9RUF9SU1MsIChwZiktXHUwMDNlaHcuY2FwcykgPyAxMjggOiA2NClcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC02OC0jZGVmaW5lIEk0MEVfUlhfREVTQyhSLCBpKVx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjY5Olx0KFx1MDAyNigoKHVuaW9uIGk0MGVfcnhfZGVzYyAqKSgoUiktXHUwMDNlZGVzYykpW2ldKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcwLSNkZWZpbmUgSTQwRV9UWF9ERVNDKFIsIGkpXHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzE6XHQoXHUwMDI2KCgoc3RydWN0IGk0MGVfdHhfZGVzYyAqKSgoUiktXHUwMDNlZGVzYykpW2ldKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcyLSNkZWZpbmUgSTQwRV9UWF9DVFhUREVTQyhSLCBpKVx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjczOlx0KFx1MDAyNigoKHN0cnVjdCBpNDBlX3R4X2NvbnRleHRfZGVzYyAqKSgoUiktXHUwMDNlZGVzYykpW2ldKSlcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0LSNkZWZpbmUgSTQwRV9UWF9GRElSREVTQyhSLCBpKVx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc1Olx0KFx1MDAyNigoKHN0cnVjdCBpNDBlX2ZpbHRlcl9wcm9ncmFtX2Rlc2MgKikoKFIpLVx1MDAzZWRlc2MpKVtpXSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03Ni1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04Mi0vKiBkcml2ZXIgc3RhdGUgZmxhZ3MgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgzOmVudW0gaTQwZV9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04NC1cdF9fSTQwRV9URVNUSU5HLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExOS1cdF9fSTQwRV9SRUNPVkVSWV9NT0RFLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwOlx0X19JNDBFX1ZGX1JFU0VUU19ESVNBQkxFRCxcdC8qIGRpc2FibGUgcmVzZXRzIGR1cmluZyBpNDBlX3JlbW92ZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIxLVx0X19JNDBFX0lOX1JFTU9WRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMzEtLyogVlNJIHN0YXRlIGZsYWdzICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMzI6ZW51bSBpNDBlX3ZzaV9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMzMtXHRfX0k0MEVfVlNJX0RPV04sXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTQzLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTQ0OmVudW0gaTQwZV9wZl9mbGFncyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xNDUtXHRJNDBFX0ZMQUdfTVNJX0VOQSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xOTAtXHQgKiAgIGJpdCAoSTQwRV9BUV9QSFlfRU5BQkxFX0xJTkspIGluIGFiaWxpdGllcyBmaWVsZCBvZlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTkxOlx0ICogICBpNDBlX2FxX3NldF9waHlfY29uZmlnIHN0cnVjdHVyZVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTkyLVx0ICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTk4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTk5OmVudW0gaTQwZV9pbnRlcnJ1cHRfcG9saWN5IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIwMC1cdEk0MEVfSU5URVJSVVBUX0JFU1RfQ0FTRSxcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yMDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMDU6c3RydWN0IGk0MGVfbHVtcF90cmFja2luZyB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yMDYtXHR1MTYgbnVtX2VudHJpZXM7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjIxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MjIyOmVudW0gaTQwZV9mZF9zdGF0X2lkeCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yMjMtXHRJNDBFX0ZEX1NUQVRfQVRSLFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIzOC0gKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjIzOTpzdHJ1Y3QgaTQwZV9yeF9mbG93X3VzZXJkZWYge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjQwLVx0Ym9vbCBmbGV4X2ZpbHRlcjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yNDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyNDU6c3RydWN0IGk0MGVfZmRpcl9maWx0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjQ2LVx0c3RydWN0IGhsaXN0X25vZGUgZmRpcl9ub2RlO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTI5Ni1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjI5NzpzdHJ1Y3QgaTQwZV9jbG91ZF9maWx0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjk4LVx0c3RydWN0IGhsaXN0X25vZGUgY2xvdWRfbm9kZTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zMzItLyogRENCIHBlciBUQyBpbmZvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MzMzOnN0cnVjdCBpNDBlX3RjX2luZm8ge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzM0LVx0dTE2XHRxb2Zmc2V0O1x0LyogUXVldWUgb2Zmc2V0IGZyb20gYmFzZSBxdWV1ZSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTMzOS0vKiBUQyBjb25maWd1cmF0aW9uIGRhdGEgc3RydWN0dXJlICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDozNDA6c3RydWN0IGk0MGVfdGNfY29uZmlndXJhdGlvbiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zNDEtXHR1OFx0bnVtdGM7XHRcdC8qIFRvdGFsIG51bWJlciBvZiBlbmFibGVkIFRDcyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzQyLVx0dThcdGVuYWJsZWRfdGM7XHQvKiBUQyBtYXAgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0MzpcdHN0cnVjdCBpNDBlX3RjX2luZm8gdGNfaW5mb1tJNDBFX01BWF9UUkFGRklDX0NMQVNTXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM0NC19O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM0Ni0jZGVmaW5lIEk0MEVfVURQX1BPUlRfSU5ERVhfVU5VU0VEXHQyNTVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0NzpzdHJ1Y3QgaTQwZV91ZHBfcG9ydF9jb25maWcge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzQ4LVx0LyogQWRtaW5RIGNvbW1hbmQgaW50ZXJmYWNlIGV4cGVjdHMgcG9ydCBudW1iZXIgaW4gSG9zdCBieXRlIG9yZGVyICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDIxOnN0cnVjdCBpNDBlX2ZsZXhfcGl0IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQyMi1cdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MjYtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0Mjc6c3RydWN0IGk0MGVfZndkX2FkYXB0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDI4LVx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MzEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0MzI6c3RydWN0IGk0MGVfY2hhbm5lbCB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MzMtXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDQyLVx0dTggZW5hYmxlZF90YztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ0MzpcdHN0cnVjdCBpNDBlX2FxY192c2lfcHJvcGVydGllc19kYXRhIGluZm87XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NDUtXHR1NjQgbWF4X3R4X3JhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0NDY6XHRzdHJ1Y3QgaTQwZV9md2RfYWRhcHRlciAqZndkO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDQ3LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDQ4LVx0LyogdHJhY2sgdGhpcyBjaGFubmVsIGJlbG9uZ3MgdG8gd2hpY2ggVlNJICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0NDk6XHRzdHJ1Y3QgaTQwZV92c2kgKnBhcmVudF92c2k7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ1MjpzdHJ1Y3QgaTQwZV9wdHBfcGluc19zZXR0aW5ncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1My1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ1NDpzdGF0aWMgaW5saW5lIGJvb2wgaTQwZV9pc19jaGFubmVsX21hY3ZsYW4oc3RydWN0IGk0MGVfY2hhbm5lbCAqY2gpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTUte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1OC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ1OTpzdGF0aWMgaW5saW5lIGNvbnN0IHU4ICppNDBlX2NoYW5uZWxfbWFjKHN0cnVjdCBpNDBlX2NoYW5uZWwgKmNoKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDYwLXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ2MTpcdGlmIChpNDBlX2lzX2NoYW5uZWxfbWFjdmxhbihjaCkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjItXHRcdHJldHVybiBjaC1cdTAwM2Vmd2QtXHUwMDNlbmV0ZGV2LVx1MDAzZWRldl9hZGRyO1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ2Ny0vKiBzdHJ1Y3QgdGhhdCBkZWZpbmVzIHRoZSBFdGhlcm5ldCBkZXZpY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ2ODpzdHJ1Y3QgaTQwZV9wZiB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjktXHRzdHJ1Y3QgcGNpX2RldiAqcGRldjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ3MC1cdHN0cnVjdCBkZXZsaW5rX3BvcnQgZGV2bGlua19wb3J0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDcxOlx0c3RydWN0IGk0MGVfaHcgaHc7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NzItXHRERUNMQVJFX0JJVE1BUChzdGF0ZSwgX19JNDBFX1NUQVRFX1NJWkVfXyk7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTM2LVx0REVDTEFSRV9CSVRNQVAoZmxhZ3MsIEk0MEVfUEZfRkxBR1NfTkJJVFMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTM3Olx0c3RydWN0IGk0MGVfY2xpZW50X2luc3RhbmNlICpjaW5zdDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTUzOC1cdGJvb2wgc3RhdF9vZmZzZXRzX2xvYWRlZDtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjUzOTpcdHN0cnVjdCBpNDBlX2h3X3BvcnRfc3RhdHMgc3RhdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1NDA6XHRzdHJ1Y3QgaTQwZV9od19wb3J0X3N0YXRzIHN0YXRzX29mZnNldHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NDEtXHR1MzIgdHhfdGltZW91dF9jb3VudDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NTgtXHR1MTYgbmV4dF92c2k7ICAgICAgLyogTmV4dCB1bmFsbG9jYXRlZCBWU0kgLSAwLWJhc2VkISAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTU5Olx0c3RydWN0IGk0MGVfdnNpICoqdnNpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTYwOlx0c3RydWN0IGk0MGVfdmViICp2ZWJbSTQwRV9NQVhfVkVCXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU2MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjU2MjpcdHN0cnVjdCBpNDBlX2x1bXBfdHJhY2tpbmcgKnFwX3BpbGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1NjM6XHRzdHJ1Y3QgaTQwZV9sdW1wX3RyYWNraW5nICppcnFfcGlsZTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU2NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NjgtI2lmZGVmIENPTkZJR19ERUJVR19GU1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTY5Olx0c3RydWN0IGRlbnRyeSAqaTQwZV9kYmdfcGY7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NzAtI2VuZGlmIC8qIENPTkZJR19ERUJVR19GUyAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU3My1cdC8qIHNyLWlvdiBjb25maWcgaW5mbyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTc0Olx0c3RydWN0IGk0MGVfdmYgKnZmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTc1LVx0aW50IG51bV9hbGxvY192ZnM7XHQvKiBhY3R1YWwgbnVtYmVyIG9mIFZGcyBhbGxvY2F0ZWQgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01OTEtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1OTI6XHRzdHJ1Y3QgaTQwZV9maWx0ZXJfY29udHJvbF9zZXR0aW5ncyBmaWx0ZXJfc2V0dGluZ3M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1OTM6XHRzdHJ1Y3QgaTQwZV9yeF9wYl9jb25maWcgcGJfY2ZnOyAvKiBDdXJyZW50IFJ4IHBhY2tldCBidWZmZXIgY29uZmlnICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1OTQ6XHRzdHJ1Y3QgaTQwZV9kY2J4X2NvbmZpZyB0bXBfY2ZnO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTk1LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY4MS1cdGJvb2wgcHRwX3J4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NjgyOlx0c3RydWN0IGk0MGVfcHRwX3BpbnNfc2V0dGluZ3MgKnB0cF9waW5zO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNjgzLVx0dTE2IHJzc190YWJsZV9zaXplOyAvKiBIVyBSU1MgdGFibGUgc2l6ZSAqL1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY5Ny0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjY5ODogKiBfX2k0MGVfcGZfbmV4dF92c2kgLSBnZXQgbmV4dCB2YWxpZCBWU0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY5OS0gKiBAcGY6IHBvaW50ZXIgdG8gdGhlIFBGIHN0cnVjdFxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcwNC0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MDU6c3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgaTQwZV92c2kgKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzA2Ol9faTQwZV9wZl9uZXh0X3ZzaShzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCAqaWR4KVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzA3LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MTUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MTY6I2RlZmluZSBpNDBlX3BmX2Zvcl9lYWNoX3ZzaShfcGYsIF9pLCBfdnNpKVx0XHRcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MTc6XHRmb3IgKF9pID0gMCwgX3ZzaSA9IF9faTQwZV9wZl9uZXh0X3ZzaShfcGYsIFx1MDAyNl9pKTtcdFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MTgtXHQgICAgIF92c2k7XHRcdFx0XHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcxOTpcdCAgICAgX2kmIzQzOyYjNDM7LCBfdnNpID0gX19pNDBlX3BmX25leHRfdnNpKF9wZiwgXHUwMDI2X2kpKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzIwLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzIxLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzIyOiAqIF9faTQwZV9wZl9uZXh0X3ZlYiAtIGdldCBuZXh0IHZhbGlkIFZFQlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzIzLSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzI4LSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcyOTpzdGF0aWMgX19hbHdheXNfaW5saW5lIHN0cnVjdCBpNDBlX3ZlYiAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MzA6X19pNDBlX3BmX25leHRfdmViKHN0cnVjdCBpNDBlX3BmICpwZiwgaW50ICppZHgpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MzEte1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTczOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MDojZGVmaW5lIGk0MGVfcGZfZm9yX2VhY2hfdmViKF9wZiwgX2ksIF92ZWIpXHRcdFx0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MTpcdGZvciAoX2kgPSAwLCBfdmViID0gX19pNDBlX3BmX25leHRfdmViKF9wZiwgXHUwMDI2X2kpO1x0XFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0Mi1cdCAgICAgX3ZlYjtcdFx0XHRcdFx0XHRcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzQzOlx0ICAgICBfaSYjNDM7JiM0MzssIF92ZWIgPSBfX2k0MGVfcGZfbmV4dF92ZWIoX3BmLCBcdTAwMjZfaSkpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NDQtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NDUtLyoqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NDY6ICogaTQwZV9hZGRyX3RvX2hrZXkgLSBDb252ZXJ0IGEgNi1ieXRlIE1BQyBBZGRyZXNzIHRvIGEgdTY0IGhhc2gga2V5XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NDctICogQG1hY2FkZHI6IHRoZSBNQUMgQWRkcmVzcyBhcyB0aGUgYmFzZSBrZXlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NTAtICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzUxOnN0YXRpYyBpbmxpbmUgdTY0IGk0MGVfYWRkcl90b19oa2V5KGNvbnN0IHU4ICptYWNhZGRyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzUyLXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NTgtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NTk6ZW51bSBpNDBlX2ZpbHRlcl9zdGF0ZSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NjAtXHRJNDBFX0ZJTFRFUl9JTlZBTElEID0gMCxcdC8qIEludmFsaWQgc3RhdGUgKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NjQtXHRJNDBFX0ZJTFRFUl9SRU1PVkUsXHRcdC8qIFRvIGJlIHJlbW92ZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc2NTpcdEk0MEVfRklMVEVSX05FV19TWU5DLFx0XHQvKiBOZXcsIG5vdCBzZW50IHlldCwgaXMgaW4gaTQwZV9zeW5jX3ZzaV9maWx0ZXJzKCkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc2Ni0vKiBUaGVyZSBpcyBubyAmIzM5O3JlbW92ZWQmIzM5OyBzdGF0ZTsgdGhlIGZpbHRlciBzdHJ1Y3QgaXMgZnJlZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc2Ny19O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzY4OnN0cnVjdCBpNDBlX21hY19maWx0ZXIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzY5LVx0c3RydWN0IGhsaXN0X25vZGUgaGxpc3Q7XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzcyLVx0czE2IHZsYW47XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NzM6XHRlbnVtIGk0MGVfZmlsdGVyX3N0YXRlIHN0YXRlO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzc0LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzgzLSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg0OnN0cnVjdCBpNDBlX25ld19tYWNfZmlsdGVyIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc4NS1cdHN0cnVjdCBobGlzdF9ub2RlIGhsaXN0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg2Olx0c3RydWN0IGk0MGVfbWFjX2ZpbHRlciAqZjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc4Ny1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc4OC1cdC8qIFRyYWNrIGZ1dHVyZSBjaGFuZ2VzIHRvIHN0YXRlIHNlcGFyYXRlbHkgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc4OTpcdGVudW0gaTQwZV9maWx0ZXJfc3RhdGUgc3RhdGU7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03OTAtfTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc5MS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc5MjpzdHJ1Y3QgaTQwZV92ZWIge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzkzOlx0c3RydWN0IGk0MGVfcGYgKnBmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzk0LVx0dTE2IGlkeDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04MDctXHRib29sIHN0YXRfb2Zmc2V0c19sb2FkZWQ7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4MDg6XHRzdHJ1Y3QgaTQwZV9ldGhfc3RhdHMgc3RhdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4MDk6XHRzdHJ1Y3QgaTQwZV9ldGhfc3RhdHMgc3RhdHNfb2Zmc2V0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgxMDpcdHN0cnVjdCBpNDBlX3ZlYl90Y19zdGF0cyB0Y19zdGF0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgxMTpcdHN0cnVjdCBpNDBlX3ZlYl90Y19zdGF0cyB0Y19zdGF0c19vZmZzZXRzO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODEyLX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODE0LS8qIHN0cnVjdCB0aGF0IGRlZmluZXMgYSBWU0ksIGFzc29jaWF0ZWQgd2l0aCBhIGRldiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODE1OnN0cnVjdCBpNDBlX3ZzaSB7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04MTYtXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTgzNS1cdHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCBuZXRfc3RhdHNfb2Zmc2V0cztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgzNjpcdHN0cnVjdCBpNDBlX2V0aF9zdGF0cyBldGhfc3RhdHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4Mzc6XHRzdHJ1Y3QgaTQwZV9ldGhfc3RhdHMgZXRoX3N0YXRzX29mZnNldHM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04MzgtXHR1NjQgdHhfcmVzdGFydDtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04NTAtXHQvKiBUaGVzZSBhcmUgY29udGFpbmVycyBvZiByaW5nIHBvaW50ZXJzLCBhbGxvY2F0ZWQgYXQgcnVuLXRpbWUgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg1MTpcdHN0cnVjdCBpNDBlX3JpbmcgKipyeF9yaW5ncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg1MjpcdHN0cnVjdCBpNDBlX3JpbmcgKip0eF9yaW5ncztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg1MzpcdHN0cnVjdCBpNDBlX3JpbmcgKip4ZHBfcmluZ3M7IC8qIFhEUCBUeCByaW5ncyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODU0LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg3Mi1cdC8qIExpc3Qgb2YgcV92ZWN0b3JzIGFsbG9jYXRlZCB0byB0aGlzIFZTSSAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODczOlx0c3RydWN0IGk0MGVfcV92ZWN0b3IgKipxX3ZlY3RvcnM7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04NzQtXHRpbnQgbnVtX3FfdmVjdG9ycztcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04ODctXHR1MTYgbnVtX3J4X2Rlc2M7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4ODg6XHRlbnVtIGk0MGVfdnNpX3R5cGUgdHlwZTsgIC8qIFZTSSB0eXBlLCBlLmcuLCBMQU4sIEZDb0UsIGV0YyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODg5LVx0czE2IHZmX2lkO1x0XHQvKiBWaXJ0dWFsIGZ1bmN0aW9uIElEIGZvciBTUklPViBWU0lzICovXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODkxLVx0c3RydWN0IHRjX21xcHJpb19xb3B0X29mZmxvYWQgbXFwcmlvX3FvcHQ7IC8qIHF1ZXVlIHBhcmFtZXRlcnMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg5MjpcdHN0cnVjdCBpNDBlX3RjX2NvbmZpZ3VyYXRpb24gdGNfY29uZmlnO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODkzOlx0c3RydWN0IGk0MGVfYXFjX3ZzaV9wcm9wZXJ0aWVzX2RhdGEgaW5mbztcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg5NC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05MDUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5MDY6XHRzdHJ1Y3QgaTQwZV9wZiAqYmFjaztcdC8qIEJhY2tyZWZlcmVuY2UgdG8gYXNzb2NpYXRlZCBQRiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTA3LVx0dTE2IGlkeDtcdFx0LyogaW5kZXggaW4gcGYtXHUwMDNldnNpW10gKi9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05MTAtXHRib29sIGN1cnJlbnRfaXN1cDtcdC8qIFN5bmMgJiMzOTtsaW5rIHVwJiMzOTsgbG9nZ2luZyAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTExOlx0ZW51bSBpNDBlX2FxX2xpbmtfc3BlZWQgY3VycmVudF9zcGVlZDtcdC8qIFN5bmMgbGluayBzcGVlZCBsb2dnaW5nICovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05MTItXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTM4LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTM5OnN0cnVjdCBpNDBlX25ldGRldl9wcml2IHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk0MDpcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQxLX07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NDItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5NDM6ZXh0ZXJuIHN0cnVjdCBpZGEgaTQwZV9jbGllbnRfaWRhO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQ0LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQ1LS8qIHN0cnVjdCB0aGF0IGRlZmluZXMgYW4gaW50ZXJydXB0IHZlY3RvciAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTQ2OnN0cnVjdCBpNDBlX3FfdmVjdG9yIHtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk0NzpcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQ4LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk1NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk1NTpcdHN0cnVjdCBpNDBlX3JpbmdfY29udGFpbmVyIHJ4O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTU2Olx0c3RydWN0IGk0MGVfcmluZ19jb250YWluZXIgdHg7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NTctXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTcwLS8qIGxhbiBkZXZpY2UgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk3MTpzdHJ1Y3QgaTQwZV9kZXZpY2Uge1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTcyLVx0c3RydWN0IGxpc3RfaGVhZCBsaXN0O1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTczOlx0c3RydWN0IGk0MGVfcGYgKnBmO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTc0LX07XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTc2LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTc3OiAqIGk0MGVfaW5mb19udm1fdmVyIC0gZm9ybWF0IHRoZSBOVk0gdmVyc2lvbiBzdHJpbmdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk3OC0gKiBAaHc6IHB0ciB0byB0aGUgaGFyZHdhcmUgaW5mb1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk4NS0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5ODY6c3RhdGljIGlubGluZSB2b2lkIGk0MGVfaW5mb19udm1fdmVyKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLCBzaXplX3QgbGVuKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTg3LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk4ODpcdHN0cnVjdCBpNDBlX252bV9pbmZvICpudm0gPSBcdTAwMjZody1cdTAwM2Vudm07XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05ODktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAwOC0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMDk6ICogaTQwZV9pbmZvX2VldHJhY2sgLSBmb3JtYXQgdGhlIEVFVHJhY2tJRCBzdHJpbmdcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMTAtICogQGh3OiBwdHIgdG8gdGhlIGhhcmR3YXJlIGluZm9cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDE2LSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMTc6c3RhdGljIGlubGluZSB2b2lkIGk0MGVfaW5mb19lZXRyYWNrKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLCBzaXplX3QgbGVuKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAxOC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDE5Olx0c3RydWN0IGk0MGVfbnZtX2luZm8gKm52bSA9IFx1MDAyNmh3LVx1MDAzZW52bTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMjAtXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAyNi0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMjc6ICogaTQwZV9pbmZvX2NpdmRfdmVyIC0gZm9ybWF0IHRoZSBOVk0gdmVyc2lvbiBzdHJpbmdzXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDI4LSAqIEBodzogcHRyIHRvIHRoZSBoYXJkd2FyZSBpbmZvXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAzNC0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDM1OnN0YXRpYyBpbmxpbmUgdm9pZCBpNDBlX2luZm9fY2l2ZF92ZXIoc3RydWN0IGk0MGVfaHcgKmh3LCBjaGFyICpidWYsIHNpemVfdCBsZW4pXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDM2LXtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMzc6XHRzdHJ1Y3QgaTQwZV9udm1faW5mbyAqbnZtID0gXHUwMDI2aHctXHUwMDNlbnZtO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAzOC1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDUyLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA1MzogKiBpNDBlX252bV92ZXJzaW9uX3N0ciAtIGZvcm1hdCB0aGUgTlZNIHZlcnNpb24gc3RyaW5nc1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA1NC0gKiBAaHc6IHB0ciB0byB0aGUgaGFyZHdhcmUgaW5mb1xuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwNTctICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA1ODpzdGF0aWMgaW5saW5lIGNoYXIgKmk0MGVfbnZtX3ZlcnNpb25fc3RyKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA1OS1cdFx0XHRcdFx0IHNpemVfdCBsZW4pXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA2My1cdC8qIEdldCBOVk0gdmVyc2lvbiAqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA2NDpcdGk0MGVfaW5mb19udm1fdmVyKGh3LCBidWYsIGxlbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDY1LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA2Ni1cdC8qIEFwcGVuZCBFRVRyYWNrSUQgaWYgcHJvdmlkZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwNjc6XHRpNDBlX2luZm9fZWV0cmFjayhodywgXHUwMDI2dmVyWzFdLCBzaXplb2YodmVyKSAtIDEpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA2OC1cdGlmIChzdHJsZW4odmVyKSBcdTAwM2UgMSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDcxLVx0LyogQXBwZW5kIGNvbWJvIGltYWdlIHZlcnNpb24gaWYgcHJvdmlkZWQgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwNzI6XHRpNDBlX2luZm9fY2l2ZF92ZXIoaHcsIFx1MDAyNnZlclsxXSwgc2l6ZW9mKHZlcikgLSAxKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwNzMtXHRpZiAoc3RybGVuKHZlcikgXHUwMDNlIDEpXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA3OS0vKipcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwODA6ICogaTQwZV9uZXRkZXZfdG9fcGY6IFJldHJpZXZlIHRoZSBQRiBzdHJ1Y3QgZm9yIGdpdmVuIG5ldGRldlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA4MS0gKiBAbmV0ZGV2OiB0aGUgY29ycmVzcG9uZGluZyBuZXRkZXZcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDg0LSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwODU6c3RhdGljIGlubGluZSBzdHJ1Y3QgaTQwZV9wZiAqaTQwZV9uZXRkZXZfdG9fcGYoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldilcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwODYte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA4NzpcdHN0cnVjdCBpNDBlX25ldGRldl9wcml2ICpucCA9IG5ldGRldl9wcml2KG5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDg4Olx0c3RydWN0IGk0MGVfdnNpICp2c2kgPSBucC1cdTAwM2V2c2k7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDg5LVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwOTItXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDkzOnN0YXRpYyBpbmxpbmUgdm9pZCBpNDBlX3ZzaV9zZXR1cF9pcnFoYW5kbGVyKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA5NC1cdFx0XHRcdGlycXJldHVybl90ICgqaXJxX2hhbmRsZXIpKGludCwgdm9pZCAqKSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDk5LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEwMDogKiBpNDBlX2dldF9mZF9jbnRfYWxsIC0gZ2V0IHRoZSB0b3RhbCBGRCBmaWx0ZXIgc3BhY2UgYXZhaWxhYmxlXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTAxLSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTAyLSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMDM6c3RhdGljIGlubGluZSBpbnQgaTQwZV9nZXRfZmRfY250X2FsbChzdHJ1Y3QgaTQwZV9wZiAqcGYpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTA0LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTA4LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEwOTogKiBpNDBlX3JlYWRfZmRfaW5wdXRfc2V0IC0gcmVhZHMgdmFsdWUgb2YgZmxvdyBkaXJlY3RvciBpbnB1dCBzZXQgcmVnaXN0ZXJcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMTAtICogQHBmOiBwb2ludGVyIHRvIHRoZSBQRiBzdHJ1Y3Rcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTE1LSAqKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMTY6c3RhdGljIGlubGluZSB1NjQgaTQwZV9yZWFkX2ZkX2lucHV0X3NldChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUxNiBhZGRyKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTExNy17XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTExOS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMjA6XHR2YWwgPSBpNDBlX3JlYWRfcnhfY3RsKFx1MDAyNnBmLVx1MDAzZWh3LCBJNDBFX1BSVFFGX0ZEX0lOU0VUKGFkZHIsIDEpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMjEtXHR2YWwgXHUwMDNjXHUwMDNjPSAzMjtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMjI6XHR2YWwgJiM0Mzs9IGk0MGVfcmVhZF9yeF9jdGwoXHUwMDI2cGYtXHUwMDNlaHcsIEk0MEVfUFJUUUZfRkRfSU5TRVQoYWRkciwgMCkpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTEyMy1cbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTI3LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEyODogKiBpNDBlX3dyaXRlX2ZkX2lucHV0X3NldCAtIHdyaXRlcyB2YWx1ZSBpbnRvIGZsb3cgZGlyZWN0b3IgaW5wdXQgc2V0IHJlZ2lzdGVyXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTI5LSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTEzNS0gKiovXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTM2OnN0YXRpYyBpbmxpbmUgdm9pZCBpNDBlX3dyaXRlX2ZkX2lucHV0X3NldChzdHJ1Y3QgaTQwZV9wZiAqcGYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTM3LVx0XHRcdFx0XHQgICB1MTYgYWRkciwgdTY0IHZhbClcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMzgte1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEzOTpcdGk0MGVfd3JpdGVfcnhfY3RsKFx1MDAyNnBmLVx1MDAzZWh3LCBJNDBFX1BSVFFGX0ZEX0lOU0VUKGFkZHIsIDEpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE0MC1cdFx0XHQgICh1MzIpKHZhbCBcdTAwM2VcdTAwM2UgMzIpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNDE6XHRpNDBlX3dyaXRlX3J4X2N0bChcdTAwMjZwZi1cdTAwM2VodywgSTQwRV9QUlRRRl9GRF9JTlNFVChhZGRyLCAwKSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNDItXHRcdFx0ICAodTMyKSh2YWwgXHUwMDI2IDB4RkZGRkZGRkZVTEwpKTtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTQ1LS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE0NjogKiBpNDBlX2dldF9wZl9jb3VudCAtIGdldCBQQ0kgUEYgY291bnQuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTQ3LSAqIEBodzogcG9pbnRlciB0byBhIGh3LlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNTMtICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE1NDpzdGF0aWMgaW5saW5lIHUzMiBpNDBlX2dldF9wZl9jb3VudChzdHJ1Y3QgaTQwZV9odyAqaHcpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTU1LXtcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTU5LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2MDovKiBuZWVkZWQgYnkgaTQwZV9ldGh0b29sLmMgKi9cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNjE6aW50IGk0MGVfdXAoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2Mjp2b2lkIGk0MGVfZG93bihzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTYzOmV4dGVybiBjb25zdCBjaGFyIGk0MGVfZHJpdmVyX25hbWVbXTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNjQ6dm9pZCBpNDBlX2RvX3Jlc2V0X3NhZmUoc3RydWN0IGk0MGVfcGYgKnBmLCB1MzIgcmVzZXRfZmxhZ3MpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2NTp2b2lkIGk0MGVfZG9fcmVzZXQoc3RydWN0IGk0MGVfcGYgKnBmLCB1MzIgcmVzZXRfZmxhZ3MsIGJvb2wgbG9ja19hY3F1aXJlZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTY2OmludCBpNDBlX2NvbmZpZ19yc3Moc3RydWN0IGk0MGVfdnNpICp2c2ksIHU4ICpzZWVkLCB1OCAqbHV0LCB1MTYgbHV0X3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2NzppbnQgaTQwZV9nZXRfcnNzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLCB1OCAqc2VlZCwgdTggKmx1dCwgdTE2IGx1dF9zaXplKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNjg6dm9pZCBpNDBlX2ZpbGxfcnNzX2x1dChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHU4ICpsdXQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTY5LVx0XHQgICAgICAgdTE2IHJzc190YWJsZV9zaXplLCB1MTYgcnNzX3NpemUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3MDpzdHJ1Y3QgaTQwZV92c2kgKmk0MGVfZmluZF92c2lfZnJvbV9pZChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUxNiBpZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTcxLS8qKlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3MjogKiBpNDBlX2ZpbmRfdnNpX2J5X3R5cGUgLSBGaW5kIGFuZCByZXR1cm4gRmxvdyBEaXJlY3RvciBWU0lcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNzMtICogQHBmOiBQRiB0byBzZWFyY2ggZm9yIFZTSVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNzUtICoqL1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3NjpzdGF0aWMgaW5saW5lIHN0cnVjdCBpNDBlX3ZzaSAqXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTc3Omk0MGVfZmluZF92c2lfYnlfdHlwZShzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUxNiB0eXBlKVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE3OC17XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTc5Olx0c3RydWN0IGk0MGVfdnNpICp2c2k7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTgwLVx0aW50IGk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE4MjpcdGk0MGVfcGZfZm9yX2VhY2hfdnNpKHBmLCBpLCB2c2kpXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTgzLVx0XHRpZiAodnNpLVx1MDAzZXR5cGUgPT0gdHlwZSlcbi0tXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTg3LX1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExODg6dm9pZCBpNDBlX3VwZGF0ZV9zdGF0cyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTg5OnZvaWQgaTQwZV91cGRhdGVfdmViX3N0YXRzKHN0cnVjdCBpNDBlX3ZlYiAqdmViKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTA6dm9pZCBpNDBlX3VwZGF0ZV9ldGhfc3RhdHMoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5MTpzdHJ1Y3QgcnRubF9saW5rX3N0YXRzNjQgKmk0MGVfZ2V0X3ZzaV9zdGF0c19zdHJ1Y3Qoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5MjppbnQgaTQwZV9mZXRjaF9zd2l0Y2hfY29uZmlndXJhdGlvbihzdHJ1Y3QgaTQwZV9wZiAqcGYsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTkzLVx0XHRcdFx0ICAgIGJvb2wgcHJpbnRjb25maWcpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE5NC1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTU6aW50IGk0MGVfYWRkX2RlbF9mZGlyKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5NjpcdFx0ICAgICAgc3RydWN0IGk0MGVfZmRpcl9maWx0ZXIgKmlucHV0LCBib29sIGFkZCk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTk3OnZvaWQgaTQwZV9mZGlyX2NoZWNrX2FuZF9yZWVuYWJsZShzdHJ1Y3QgaTQwZV9wZiAqcGYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5ODp1MzIgaTQwZV9nZXRfY3VycmVudF9mZF9jb3VudChzdHJ1Y3QgaTQwZV9wZiAqcGYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5OTp1MzIgaTQwZV9nZXRfY3VycmVudF9hdHJfY250KHN0cnVjdCBpNDBlX3BmICpwZik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjAwOnUzMiBpNDBlX2dldF9nbG9iYWxfZmRfY291bnQoc3RydWN0IGk0MGVfcGYgKnBmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMDE6Ym9vbCBpNDBlX3NldF9udHVwbGUoc3RydWN0IGk0MGVfcGYgKnBmLCBuZXRkZXZfZmVhdHVyZXNfdCBmZWF0dXJlcyk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjAyOnZvaWQgaTQwZV9zZXRfZXRodG9vbF9vcHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjAzOnN0cnVjdCBpNDBlX21hY19maWx0ZXIgKmk0MGVfYWRkX2ZpbHRlcihzdHJ1Y3QgaTQwZV92c2kgKnZzaSxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMDQtXHRcdFx0XHRcdGNvbnN0IHU4ICptYWNhZGRyLCBzMTYgdmxhbik7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjA1OnZvaWQgX19pNDBlX2RlbF9maWx0ZXIoc3RydWN0IGk0MGVfdnNpICp2c2ksIHN0cnVjdCBpNDBlX21hY19maWx0ZXIgKmYpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwNjppbnQgaTQwZV9zeW5jX3ZzaV9maWx0ZXJzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMDc6c3RydWN0IGk0MGVfdnNpICppNDBlX3ZzaV9zZXR1cChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHU4IHR5cGUsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMjA4LVx0XHRcdFx0dTE2IHVwbGluaywgdTMyIHBhcmFtMSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjA5OmludCBpNDBlX3ZzaV9yZWxlYXNlKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMTA6dm9pZCBpNDBlX3NlcnZpY2VfZXZlbnRfc2NoZWR1bGUoc3RydWN0IGk0MGVfcGYgKnBmKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMTE6dm9pZCBpNDBlX25vdGlmeV9jbGllbnRfb2ZfdmZfbXNnKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLCB1MzIgdmZfaWQsXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMjEyLVx0XHRcdFx0ICB1OCAqbXNnLCB1MTYgbGVuKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMTMtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE0OmludCBpNDBlX2NvbnRyb2xfd2FpdF90eF9xKGludCBzZWlkLCBzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCBwZl9xLCBib29sIGlzX3hkcCxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMTUtXHRcdFx0ICAgYm9vbCBlbmFibGUpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxNjppbnQgaTQwZV9jb250cm9sX3dhaXRfcnhfcShzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCBwZl9xLCBib29sIGVuYWJsZSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE3OmludCBpNDBlX3ZzaV9zdGFydF9yaW5ncyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE4OnZvaWQgaTQwZV92c2lfc3RvcF9yaW5ncyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE5OnZvaWQgaTQwZV92c2lfc3RvcF9yaW5nc19ub193YWl0KHN0cnVjdCAgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjIwOmludCBpNDBlX3ZzaV93YWl0X3F1ZXVlc19kaXNhYmxlZChzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjIxOmludCBpNDBlX3JlY29uZmlnX3Jzc19xdWV1ZXMoc3RydWN0IGk0MGVfcGYgKnBmLCBpbnQgcXVldWVfY291bnQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyMjpzdHJ1Y3QgaTQwZV92ZWIgKmk0MGVfdmViX3NldHVwKHN0cnVjdCBpNDBlX3BmICpwZiwgdTE2IHVwbGlua19zZWlkLFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIyMy1cdFx0XHRcdHUxNiBkb3dubGlua19zZWlkLCB1OCBlbmFibGVkX3RjKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjQ6dm9pZCBpNDBlX3ZlYl9yZWxlYXNlKHN0cnVjdCBpNDBlX3ZlYiAqdmViKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMjUtXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjI2OmludCBpNDBlX3ZlYl9jb25maWdfdGMoc3RydWN0IGk0MGVfdmViICp2ZWIsIHU4IGVuYWJsZWRfdGMpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyNzppbnQgaTQwZV92c2lfYWRkX3B2aWQoc3RydWN0IGk0MGVfdnNpICp2c2ksIHUxNiB2aWQpO1xuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyODp2b2lkIGk0MGVfdnNpX3JlbW92ZV9wdmlkKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjk6dm9pZCBpNDBlX3ZzaV9yZXNldF9zdGF0cyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMDI3NgoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDIyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGxpY2F0aW9ucyBvZiBhbiBpNDBlIERyaXZlciBQYXRjaCBpbiBhIFFFTVUgQ29udGV4dCoqCgpPa2F5LCBzbyB0aGUgZHJpdmVyIGluIHF1ZXN0aW9uIGlzIGBpNDBlYCDigJMgdGhhdCYjMzk7cyBJbnRlbCYjMzk7cyA0MCBHaWdhYml0IEV0aGVybmV0IGFkYXB0ZXIuIE15IGZpcnN0IHRob3VnaHQgaXM6IGNhbiBJIGV2ZW4gKmdldCogdG8gdGhpcyBjb2RlIHdpdGhpbiBhIFFFTVUgZW52aXJvbm1lbnQ/IENvbnNpZGVyaW5nIHRoaXMgcGF0Y2ggc3BlY2lmaWNhbGx5IHRvdWNoZXMgYGk0MGVfeHNrLmNgLCB3aGljaCBpcyB0aGUgQUZfWERQIHplcm8tY29weSBzdXBwb3J0IGZvciB0aGUgaTQwZSBkcml2ZXIsIHRoZSBhbnN3ZXIgc2VlbXMgaW5pdGlhbGx5IG9idmlvdXMuIFNpbmNlIFFFTVUgZG9lc24mIzM5O3QgZGlyZWN0bHkgZW11bGF0ZSBpNDBlIGhhcmR3YXJlLCB0aGUgZHJpdmVyIHNob3VsZG4mIzM5O3QgYmUgbG9hZGVkLCBhbmQgdGhpcyBwYXJ0aWN1bGFyIGNvZGUgcGF0aCB3b3VsZG4mIzM5O3QgYmUgZXhlY3V0ZWQgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwLgoKQnV0IHdhaXQsIEkgbmVlZCB0byBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4uIERvZXMgUUVNVSwgcGVyaGFwcywgcHJvdmlkZSAqc29tZSogbGV2ZWwgb2YgaTQwZSBlbXVsYXRpb24/IEl0JiMzOTtzIHdvcnRoIGEgZG91YmxlLWNoZWNrIHRvIHNlZSBpZiB0aGVyZSYjMzk7cyBhbnkgc29mdHdhcmUtYmFzZWQgaW50ZXJwcmV0YXRpb24uIFRpbWUgdG8gdmVyaWZ5IGlmIGl0IGlzIGhhcmR3YXJlIGV4Y2x1c2l2ZS4KCk5vcGUuIFF1aWNrIHNjYW4gY29uZmlybXMgUUVNVSBvZmZlcnMgYSByYW5nZSBvZiBuZXR3b3JrIGRldmljZXMgbGlrZSBlMTAwMCwgZTEwMDBlLCBpZ2IsIHJ0bDgxMzksIHBjbmV0LCBuZTJrX3BjaSwgdm14bmV0MywgdmlydGlvLW5ldCwgYW5kIHR1bGlwLiBObyBpNDBlLiBKdXN0IHRvIGJlIGFic29sdXRlbHksIHBvc2l0aXZlbHkgc3VyZSwgbGV0IG1lIHRha2UgYSBxdWljayBwZWFrIGF0IHRoZSBgaHcvbmV0YCBkaXJlY3Rvcnkgd2l0aGluIHRoZSBRRU1VIHNvdXJjZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtpNDBlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnPTIyOT1jb25maWcgSTQwRVxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjQ0LVx0ICBNb3JlIHNwZWNpZmljIGluZm9ybWF0aW9uIG9uIGNvbmZpZ3VyaW5nIHRoZSBkcml2ZXIgaXMgaW5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjQ1Olx0ICBcdTAwM2NmaWxlOkRvY3VtZW50YXRpb24vbmV0d29ya2luZy9kZXZpY2VfZHJpdmVycy9ldGhlcm5ldC9pbnRlbC9pNDBlLnJzdFx1MDAzZS5cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjQ2LVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNDctXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGVcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjQ4Olx0ICB3aWxsIGJlIGNhbGxlZCBpNDBlLlxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNDktXG4tLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZz0yNjg9Y29uZmlnIEk0MEVWRlxuLS1cbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWctMjgxLVxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZzoyODI6XHQgIFRoaXMgZHJpdmVyIHdhcyBmb3JtZXJseSBuYW1lZCBpNDBldmYuXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI4My1cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yNSAwNzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTEzMQoJCQkJCQkJb3V0cHV0OiA4MwoJCQkJCQkJdGhvdWdodHM6IDE5OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmcgRGVjaXNpb24gZm9yIGk0MGUgRHJpdmVyIENvZGUqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGBpNDBlYCBkcml2ZXIg4oCTIHRoYXQmIzM5O3MgdGhlIG9uZSBmb3IgdGhlIEludGVsIFhMNzEwIEV0aGVybmV0IENvbm5lY3Rpb24uIFRoaXMgaXMgYSAqcGh5c2ljYWwqIFBDSWUgaGFyZHdhcmUgY29tcG9uZW50LCBhIHJlYWwgY2FyZCB5b3Ugc3RpY2sgaW4gYSBzZXJ2ZXIuIEFuZCBhcyBJIGtub3cgZnJvbSBleHBlcmllbmNlLCBRRU1VLCB0aGUgY29tbW9uIHZpcnR1YWxpemF0aW9uIHRvb2wsIGRvZXNuJiMzOTt0IGVtdWxhdGUgdGhlIFhMNzEwIG9yIHRoZSBpNDBlIGRyaXZlci4gU28sIGluIGFueSB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9yLCBtb3JlIGRpcmVjdGx5LCBRRU1VLCB0aGlzIHBhcnRpY3VsYXIgY29kZSBpcyBzaW1wbHkgbmV2ZXIgZ29pbmcgdG8gYmUgZXhlY3V0ZWQuCgpOb3csIGxldCYjMzk7cyBkb3VibGUtY2hlY2sgdGhlIGluc3RydWN0aW9ucy4gVGhleSBzcGVjaWZpY2FsbHkgc2F5IHRvIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiB0aGUgcGF0Y2ggY29uY2VybnMgY29kZSBpbiBjZXJ0YWluIHR5cGVzIG9mIGRyaXZlcnMsIGFuZCwgbGV0IG1lIHNlZSwgKnJpZ2h0IGhlcmUqLCBpdCBtZW50aW9ucyAmIzM0O3ZlbmRvci1zcGVjaWZpYyBQQ0llLi4uIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuJiMzNDsKCkJpbmdvLiBgaTQwZWAgaXMgKmV4YWN0bHkqIHRoYXQ6IGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyIHNwZWNpZmljYWxseSBmb3IgSW50ZWwgWEw3MTAgY2FyZHMuIEl0IG5lZWRzIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgd2hpY2ggUUVNVSBkb2VzbiYjMzk7dCBvZmZlci4gVGhlcmVmb3JlLCBiYXNlZCBvbiB0aGUgaW5zdHJ1Y3Rpb24gc2V0LCBhbmQgbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgZW52aXJvbm1lbnQsIGBXb3J0aEZ1enppbmc9ZmFsc2VgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI1IDA3OjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogW10sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGk0MGUgZHJpdmVyIChJbnRlbCA0MCBHaWdhYml0IEV0aGVybmV0IC8gWEw3MTApLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgaTQwZSBkcml2ZXIgKEludGVsIDQwIEdpZ2FiaXQgRXRoZXJuZXQgLyBYTDcxMCksIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwNzowMDoxMi43MDE3MzE4N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4NzkxNjUyMTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaTQwZSBkcml2ZXIgKEludGVsIDQwIEdpZ2FiaXQgRXRoZXJuZXQgLyBYTDcxMCksIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA3OjAwOjEyLjcwMTczODY3OVoiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjU1NzY4MDYyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZjVmOTJmNTgwMDhhZDQzMjMxODU1NzZjZmUyNWMwZTU4ZjcxNTI1ZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgU2F0IEp1bCAyNSAwNzowMDoxMCAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmNcXG5pbmRleCA5ZjQ3Mzg4ZWFiYTUzOC4uMTM5MzJiMzYxNDJkYjQgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jXFxuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jXFxuQEAgLTMsNiArMyw3IEBAXFxuIFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvYnBmX3RyYWNlLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC91bnJvbGwuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY25ldC94ZHAuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY25ldC94ZHBfc29ja19kcnYuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFxcImk0MGVfdHhyeF9jb21tb24uaFxcXCJcXG4gI2luY2x1ZGUgXFxcImk0MGVfeHNrLmhcXFwiXFxuQEAgLTI3Nyw3MCArMjc4LDYgQEAgYm9vbCBpNDBlX2FsbG9jX3J4X2J1ZmZlcnNfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZywgdTE2IGNvdW50KVxcbiBcXHRyZXR1cm4gY291bnQgPT0gbmJfYnVmZnM7XFxuIH1cXG4gXFxuLS8qKlxcbi0gKiBpNDBlX2NvbnN0cnVjdF9za2JfemMgLSBDcmVhdGUgc2tidWZmIGZyb20gemVyby1jb3B5IFJ4IGJ1ZmZlclxcbi0gKiBAcnhfcmluZzogUnggcmluZ1xcbi0gKiBAeGRwOiB4ZHBfYnVmZlxcbi0gKlxcbi0gKiBUaGlzIGZ1bmN0aW9ucyBhbGxvY2F0ZXMgYSBuZXcgc2tiIGZyb20gYSB6ZXJvLWNvcHkgUnggYnVmZmVyLlxcbi0gKlxcbi0gKiBSZXR1cm5zIHRoZSBza2IsIG9yIE5VTEwgb24gZmFpbHVyZS5cXG4tICoqL1xcbi1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmk0MGVfY29uc3RydWN0X3NrYl96YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLFxcbi1cXHRcXHRcXHRcXHRcXHQgICAgIHN0cnVjdCB4ZHBfYnVmZiAqeGRwKVxcbi17XFxuLVxcdHVuc2lnbmVkIGludCB0b3RhbHNpemUgPSB4ZHAtXFx1MDAzZWRhdGFfZW5kIC0geGRwLVxcdTAwM2VkYXRhX21ldGE7XFxuLVxcdHVuc2lnbmVkIGludCBtZXRhc2l6ZSA9IHhkcC1cXHUwMDNlZGF0YSAtIHhkcC1cXHUwMDNlZGF0YV9tZXRhO1xcbi1cXHRzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvICpzaW5mbyA9IE5VTEw7XFxuLVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLVxcdHUzMiBucl9mcmFncyA9IDA7XFxuLVxcbi1cXHRpZiAodW5saWtlbHkoeGRwX2J1ZmZfaGFzX2ZyYWdzKHhkcCkpKSB7XFxuLVxcdFxcdHNpbmZvID0geGRwX2dldF9zaGFyZWRfaW5mb19mcm9tX2J1ZmYoeGRwKTtcXG4tXFx0XFx0bnJfZnJhZ3MgPSBzaW5mby1cXHUwMDNlbnJfZnJhZ3M7XFxuLVxcdH1cXG4tXFx0bmV0X3ByZWZldGNoKHhkcC1cXHUwMDNlZGF0YV9tZXRhKTtcXG4tXFxuLVxcdC8qIGFsbG9jYXRlIGEgc2tiIHRvIHN0b3JlIHRoZSBmcmFncyAqL1xcbi1cXHRza2IgPSBuYXBpX2FsbG9jX3NrYihcXHUwMDI2cnhfcmluZy1cXHUwMDNlcV92ZWN0b3ItXFx1MDAzZW5hcGksIHRvdGFsc2l6ZSk7XFxuLVxcdGlmICh1bmxpa2VseSghc2tiKSlcXG4tXFx0XFx0Z290byBvdXQ7XFxuLVxcbi1cXHRtZW1jcHkoX19za2JfcHV0KHNrYiwgdG90YWxzaXplKSwgeGRwLVxcdTAwM2VkYXRhX21ldGEsXFxuLVxcdCAgICAgICBBTElHTih0b3RhbHNpemUsIHNpemVvZihsb25nKSkpO1xcbi1cXG4tXFx0aWYgKG1ldGFzaXplKSB7XFxuLVxcdFxcdHNrYl9tZXRhZGF0YV9zZXQoc2tiLCBtZXRhc2l6ZSk7XFxuLVxcdFxcdF9fc2tiX3B1bGwoc2tiLCBtZXRhc2l6ZSk7XFxuLVxcdH1cXG4tXFxuLVxcdGlmIChsaWtlbHkoIXhkcF9idWZmX2hhc19mcmFncyh4ZHApKSlcXG4tXFx0XFx0Z290byBvdXQ7XFxuLVxcbi1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIG5yX2ZyYWdzOyBpKyspIHtcXG4tXFx0XFx0c3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2tpbmZvID0gc2tiX3NoaW5mbyhza2IpO1xcbi1cXHRcXHRza2JfZnJhZ190ICpmcmFnID0gXFx1MDAyNnNpbmZvLVxcdTAwM2VmcmFnc1tpXTtcXG4tXFx0XFx0c3RydWN0IHBhZ2UgKnBhZ2U7XFxuLVxcdFxcdHZvaWQgKmFkZHI7XFxuLVxcbi1cXHRcXHRwYWdlID0gZGV2X2FsbG9jX3BhZ2UoKTtcXG4tXFx0XFx0aWYgKCFwYWdlKSB7XFxuLVxcdFxcdFxcdGRldl9rZnJlZV9za2Ioc2tiKTtcXG4tXFx0XFx0XFx0cmV0dXJuIE5VTEw7XFxuLVxcdFxcdH1cXG4tXFx0XFx0YWRkciA9IHBhZ2VfdG9fdmlydChwYWdlKTtcXG4tXFxuLVxcdFxcdG1lbWNweShhZGRyLCBza2JfZnJhZ19wYWdlKGZyYWcpLCBza2JfZnJhZ19zaXplKGZyYWcpKTtcXG4tXFxuLVxcdFxcdF9fc2tiX2ZpbGxfcGFnZV9kZXNjX25vYWNjKHNraW5mbywgc2tpbmZvLVxcdTAwM2Vucl9mcmFncysrLFxcbi1cXHRcXHRcXHRcXHRcXHQgICBhZGRyLCAwLCBza2JfZnJhZ19zaXplKGZyYWcpKTtcXG4tXFx0fVxcbi1cXG4tb3V0Olxcbi1cXHR4c2tfYnVmZl9mcmVlKHhkcCk7XFxuLVxcdHJldHVybiBza2I7XFxuLX1cXG4tXFxuIHN0YXRpYyB2b2lkIGk0MGVfaGFuZGxlX3hkcF9yZXN1bHRfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcXG4gXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IHhkcF9idWZmICp4ZHBfYnVmZixcXG4gXFx0XFx0XFx0XFx0ICAgICAgdW5pb24gaTQwZV9yeF9kZXNjICpyeF9kZXNjLFxcbkBAIC0zNzIsMTQgKzMwOSwyMSBAQCBzdGF0aWMgdm9pZCBpNDBlX2hhbmRsZV94ZHBfcmVzdWx0X3pjKHN0cnVjdCBpNDBlX3JpbmcgKnJ4X3JpbmcsXFxuIFxcdFxcdCAqIEJJVChJNDBFX1JYRF9RVzFfRVJST1JfU0hJRlQpLiBUaGlzIGlzIGR1ZSB0byB0aGF0XFxuIFxcdFxcdCAqIFNCUCBpcyAqbm90KiBzZXQgaW4gUFJUX1NCUFZTSSAoZGVmYXVsdCBub3Qgc2V0KS5cXG4gXFx0XFx0ICovXFxuLVxcdFxcdHNrYiA9IGk0MGVfY29uc3RydWN0X3NrYl96YyhyeF9yaW5nLCB4ZHBfYnVmZik7XFxuK1xcdFxcdHNrYiA9IHhkcF9idWlsZF9za2JfZnJvbV96Yyh4ZHBfYnVmZik7XFxuIFxcdFxcdGlmICghc2tiKSB7XFxuK1xcdFxcdFxcdHhza19idWZmX2ZyZWUoeGRwX2J1ZmYpO1xcbiBcXHRcXHRcXHRyeF9yaW5nLVxcdTAwM2VyeF9zdGF0cy5hbGxvY19idWZmX2ZhaWxlZCsrO1xcbiBcXHRcXHRcXHQqcnhfcGFja2V0cyA9IDA7XFxuIFxcdFxcdFxcdCpyeF9ieXRlcyA9IDA7XFxuIFxcdFxcdFxcdHJldHVybjtcXG4gXFx0XFx0fVxcbiBcXG4rXFx0XFx0LypcXG4rXFx0XFx0ICogeGRwX2J1aWxkX3NrYl9mcm9tX3pjKCkgYWxyZWFkeSByYW4gZXRoX3R5cGVfdHJhbnMoKTtcXG4rXFx0XFx0ICogcmVzdG9yZSB0aGUgaGVhZGVyIGZvciBldGhfc2tiX3BhZCgpL3Byb2Nlc3Nfc2tiX2ZpZWxkcygpLlxcbitcXHRcXHQgKi9cXG4rXFx0XFx0X19za2JfcHVzaChza2IsIHNrYi1cXHUwMDNlZGF0YSAtIHNrYl9tYWNfaGVhZGVyKHNrYikpO1xcbitcXG4gXFx0XFx0aWYgKGV0aF9za2JfcGFkKHNrYikpIHtcXG4gXFx0XFx0XFx0KnJ4X3BhY2tldHMgPSAwO1xcbiBcXHRcXHRcXHQqcnhfYnl0ZXMgPSAwO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yNVQwNzowMDoxMy4zNTg2MDQ5ODJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjoxODEzNDc3MTc5OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGk0MGUgZHJpdmVyIChJbnRlbCA0MCBHaWdhYml0IEV0aGVybmV0IC8gWEw3MTApLCB3aGljaCByZXF1aXJlcyBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIGVudmlyb25tZW50cy4gVGhlcmVmb3JlLCB0aGUgbW9kaWZpZWQgY29kZSBpcyB1bnJlYWNoYWJsZSBkdXJpbmcgZnV6emluZyBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBmNWY5MmY1ODAwOGFkNDMyMzE4NTU3NmNmZTI1YzBlNThmNzE1MjVkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdWwgMjUgMDc6MDA6MTAgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGVfeHNrLmNcbmluZGV4IDlmNDczODhlYWJhNTM4Li4xMzkzMmIzNjE0MmRiNCAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suY1xuKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlX3hzay5jXG5AQCAtMyw2ICszLDcgQEBcbiBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9icGZfdHJhY2UuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3Vucm9sbC5oXHUwMDNlXG4rI2luY2x1ZGUgXHUwMDNjbmV0L3hkcC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbmV0L3hkcF9zb2NrX2Rydi5oXHUwMDNlXG4gI2luY2x1ZGUgXCJpNDBlX3R4cnhfY29tbW9uLmhcIlxuICNpbmNsdWRlIFwiaTQwZV94c2suaFwiXG5AQCAtMjc3LDcwICsyNzgsNiBAQCBib29sIGk0MGVfYWxsb2NfcnhfYnVmZmVyc196YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLCB1MTYgY291bnQpXG4gXHRyZXR1cm4gY291bnQgPT0gbmJfYnVmZnM7XG4gfVxuIFxuLS8qKlxuLSAqIGk0MGVfY29uc3RydWN0X3NrYl96YyAtIENyZWF0ZSBza2J1ZmYgZnJvbSB6ZXJvLWNvcHkgUnggYnVmZmVyXG4tICogQHJ4X3Jpbmc6IFJ4IHJpbmdcbi0gKiBAeGRwOiB4ZHBfYnVmZlxuLSAqXG4tICogVGhpcyBmdW5jdGlvbnMgYWxsb2NhdGVzIGEgbmV3IHNrYiBmcm9tIGEgemVyby1jb3B5IFJ4IGJ1ZmZlci5cbi0gKlxuLSAqIFJldHVybnMgdGhlIHNrYiwgb3IgTlVMTCBvbiBmYWlsdXJlLlxuLSAqKi9cbi1zdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmk0MGVfY29uc3RydWN0X3NrYl96YyhzdHJ1Y3QgaTQwZV9yaW5nICpyeF9yaW5nLFxuLVx0XHRcdFx0XHQgICAgIHN0cnVjdCB4ZHBfYnVmZiAqeGRwKVxuLXtcbi1cdHVuc2lnbmVkIGludCB0b3RhbHNpemUgPSB4ZHAtXHUwMDNlZGF0YV9lbmQgLSB4ZHAtXHUwMDNlZGF0YV9tZXRhO1xuLVx0dW5zaWduZWQgaW50IG1ldGFzaXplID0geGRwLVx1MDAzZWRhdGEgLSB4ZHAtXHUwMDNlZGF0YV9tZXRhO1xuLVx0c3RydWN0IHNrYl9zaGFyZWRfaW5mbyAqc2luZm8gPSBOVUxMO1xuLVx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcbi1cdHUzMiBucl9mcmFncyA9IDA7XG4tXG4tXHRpZiAodW5saWtlbHkoeGRwX2J1ZmZfaGFzX2ZyYWdzKHhkcCkpKSB7XG4tXHRcdHNpbmZvID0geGRwX2dldF9zaGFyZWRfaW5mb19mcm9tX2J1ZmYoeGRwKTtcbi1cdFx0bnJfZnJhZ3MgPSBzaW5mby1cdTAwM2Vucl9mcmFncztcbi1cdH1cbi1cdG5ldF9wcmVmZXRjaCh4ZHAtXHUwMDNlZGF0YV9tZXRhKTtcbi1cbi1cdC8qIGFsbG9jYXRlIGEgc2tiIHRvIHN0b3JlIHRoZSBmcmFncyAqL1xuLVx0c2tiID0gbmFwaV9hbGxvY19za2IoXHUwMDI2cnhfcmluZy1cdTAwM2VxX3ZlY3Rvci1cdTAwM2VuYXBpLCB0b3RhbHNpemUpO1xuLVx0aWYgKHVubGlrZWx5KCFza2IpKVxuLVx0XHRnb3RvIG91dDtcbi1cbi1cdG1lbWNweShfX3NrYl9wdXQoc2tiLCB0b3RhbHNpemUpLCB4ZHAtXHUwMDNlZGF0YV9tZXRhLFxuLVx0ICAgICAgIEFMSUdOKHRvdGFsc2l6ZSwgc2l6ZW9mKGxvbmcpKSk7XG4tXG4tXHRpZiAobWV0YXNpemUpIHtcbi1cdFx0c2tiX21ldGFkYXRhX3NldChza2IsIG1ldGFzaXplKTtcbi1cdFx0X19za2JfcHVsbChza2IsIG1ldGFzaXplKTtcbi1cdH1cbi1cbi1cdGlmIChsaWtlbHkoIXhkcF9idWZmX2hhc19mcmFncyh4ZHApKSlcbi1cdFx0Z290byBvdXQ7XG4tXG4tXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgbnJfZnJhZ3M7IGkrKykge1xuLVx0XHRzdHJ1Y3Qgc2tiX3NoYXJlZF9pbmZvICpza2luZm8gPSBza2Jfc2hpbmZvKHNrYik7XG4tXHRcdHNrYl9mcmFnX3QgKmZyYWcgPSBcdTAwMjZzaW5mby1cdTAwM2VmcmFnc1tpXTtcbi1cdFx0c3RydWN0IHBhZ2UgKnBhZ2U7XG4tXHRcdHZvaWQgKmFkZHI7XG4tXG4tXHRcdHBhZ2UgPSBkZXZfYWxsb2NfcGFnZSgpO1xuLVx0XHRpZiAoIXBhZ2UpIHtcbi1cdFx0XHRkZXZfa2ZyZWVfc2tiKHNrYik7XG4tXHRcdFx0cmV0dXJuIE5VTEw7XG4tXHRcdH1cbi1cdFx0YWRkciA9IHBhZ2VfdG9fdmlydChwYWdlKTtcbi1cbi1cdFx0bWVtY3B5KGFkZHIsIHNrYl9mcmFnX3BhZ2UoZnJhZyksIHNrYl9mcmFnX3NpemUoZnJhZykpO1xuLVxuLVx0XHRfX3NrYl9maWxsX3BhZ2VfZGVzY19ub2FjYyhza2luZm8sIHNraW5mby1cdTAwM2Vucl9mcmFncysrLFxuLVx0XHRcdFx0XHQgICBhZGRyLCAwLCBza2JfZnJhZ19zaXplKGZyYWcpKTtcbi1cdH1cbi1cbi1vdXQ6XG4tXHR4c2tfYnVmZl9mcmVlKHhkcCk7XG4tXHRyZXR1cm4gc2tiO1xuLX1cbi1cbiBzdGF0aWMgdm9pZCBpNDBlX2hhbmRsZV94ZHBfcmVzdWx0X3pjKHN0cnVjdCBpNDBlX3JpbmcgKnJ4X3JpbmcsXG4gXHRcdFx0XHQgICAgICBzdHJ1Y3QgeGRwX2J1ZmYgKnhkcF9idWZmLFxuIFx0XHRcdFx0ICAgICAgdW5pb24gaTQwZV9yeF9kZXNjICpyeF9kZXNjLFxuQEAgLTM3MiwxNCArMzA5LDIxIEBAIHN0YXRpYyB2b2lkIGk0MGVfaGFuZGxlX3hkcF9yZXN1bHRfemMoc3RydWN0IGk0MGVfcmluZyAqcnhfcmluZyxcbiBcdFx0ICogQklUKEk0MEVfUlhEX1FXMV9FUlJPUl9TSElGVCkuIFRoaXMgaXMgZHVlIHRvIHRoYXRcbiBcdFx0ICogU0JQIGlzICpub3QqIHNldCBpbiBQUlRfU0JQVlNJIChkZWZhdWx0IG5vdCBzZXQpLlxuIFx0XHQgKi9cbi1cdFx0c2tiID0gaTQwZV9jb25zdHJ1Y3Rfc2tiX3pjKHJ4X3JpbmcsIHhkcF9idWZmKTtcbitcdFx0c2tiID0geGRwX2J1aWxkX3NrYl9mcm9tX3pjKHhkcF9idWZmKTtcbiBcdFx0aWYgKCFza2IpIHtcbitcdFx0XHR4c2tfYnVmZl9mcmVlKHhkcF9idWZmKTtcbiBcdFx0XHRyeF9yaW5nLVx1MDAzZXJ4X3N0YXRzLmFsbG9jX2J1ZmZfZmFpbGVkKys7XG4gXHRcdFx0KnJ4X3BhY2tldHMgPSAwO1xuIFx0XHRcdCpyeF9ieXRlcyA9IDA7XG4gXHRcdFx0cmV0dXJuO1xuIFx0XHR9XG4gXG4rXHRcdC8qXG4rXHRcdCAqIHhkcF9idWlsZF9za2JfZnJvbV96YygpIGFscmVhZHkgcmFuIGV0aF90eXBlX3RyYW5zKCk7XG4rXHRcdCAqIHJlc3RvcmUgdGhlIGhlYWRlciBmb3IgZXRoX3NrYl9wYWQoKS9wcm9jZXNzX3NrYl9maWVsZHMoKS5cbitcdFx0ICovXG4rXHRcdF9fc2tiX3B1c2goc2tiLCBza2ItXHUwMDNlZGF0YSAtIHNrYl9tYWNfaGVhZGVyKHNrYikpO1xuK1xuIFx0XHRpZiAoZXRoX3NrYl9wYWQoc2tiKSkge1xuIFx0XHRcdCpyeF9wYWNrZXRzID0gMDtcbiBcdFx0XHQqcnhfYnl0ZXMgPSAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDc6MDA6MTMuMzU4NjQ3NTAyWiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDcyMzkwNjQ5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGk0MGUgUGF0Y2ggYW5kIFFFTVUgUmVhY2hhYmlsaXR5KipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0YXJnZXRpbmcgYGRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZV94c2suY2AuIEl0IGxvb2tzIGxpa2UgdGhleSd2ZSByZW1vdmVkIGBpNDBlX2NvbnN0cnVjdF9za2JfemNgIGFuZCBzd2FwcGVkIGl0IG91dCB3aXRoIGB4ZHBfYnVpbGRfc2tiX2Zyb21femMoeGRwX2J1ZmYpYC4gVGhhdCdzIGludGVyZXN0aW5nLCBzdWdnZXN0aW5nIGEgcG90ZW50aWFsIFhEUCBvcHRpbWl6YXRpb24sIHByb2JhYmx5IGFpbWluZyBmb3IgemVyby1jb3B5IFNLQiBjb25zdHJ1Y3Rpb24gd2l0aGluIHRoZSBpNDBlIGRyaXZlci4gVGhpcyBpcyBzcGVjaWZpY2FsbHkgZm9yIEludGVsIDQwIEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlcnMsIHRoZSBgaTQwZWAgZHJpdmVyLlxuXG5UaGUgaW1tZWRpYXRlIHF1ZXN0aW9uIEkgaGF2ZSBpcyBhYm91dCBob3cgZWFzeSBpdCdsbCBiZSB0byB0ZXN0IHRoaXMgY2hhbmdlLiBJcyB0aGlzIGRyaXZlciBldmVuIHJlYWNoYWJsZSBpbiBhIHR5cGljYWwgUUVNVSBzZXR1cD8gSSBrbm93IFFFTVUgcHJldHR5IHdlbGwsIGFuZCBJJ20gcHJldHR5IHN1cmUgaXQgZG9lc24ndCBlbXVsYXRlIHRoZSBpNDBlLiBJdCdzIHVzdWFsbHkgdGhlIG9sZGVyIGFuZCBtb3JlIGNvbW1vbiBhZGFwdGVycyBsaWtlIGUxMDAwLCBlMTAwMGUsIGlnYiwgcnRsODEzOSwgYW5kIHZpcnRpby1uZXQsIG9yIHRob3NlIHRoYXQgYXJlIGVhc2llciB0byBzaW11bGF0ZS4gQnV0IHdhaXQsIEkgc2hvdWxkIGRvdWJsZSBjaGVjay4gTGV0IG1lIGp1c3QgY29uZmlybSB0aGF0IFFFTVUgaW5kZWVkIGRvZXNuJ3QgaGF2ZSBhbiBpNDBlIGRldmljZS4gSnVzdCB0byBiZSBzdXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMjY0LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDc6MDA6MTguMDgyNTU3Njc0WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNTE4MDg4NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJpNDBlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIlxcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjQ1NDkgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGUtNC0jXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZTo1OiMgTWFrZWZpbGUgZm9yIHRoZSBJbnRlbChSKSBFdGhlcm5ldCBDb25uZWN0aW9uIFhMNzEwIChpNDBlLmtvKSBkcml2ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlLTYtI1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZT05PXN1YmRpci1jY2ZsYWdzLXkgKz0gLUkkKHNyYylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlLTEwLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTE6b2JqLSQoQ09ORklHX0k0MEUpICs9IGk0MGUub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGUtMTItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxMzppNDBlLXkgOj0gaTQwZV9tYWluLm8gXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTQ6XFx0aTQwZV9ldGh0b29sLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxNTpcXHRpNDBlX2FkbWlucS5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MTY6XFx0aTQwZV9jb21tb24ub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjE3OlxcdGk0MGVfaG1jLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToxODpcXHRpNDBlX2xhbl9obWMub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjE5OlxcdGk0MGVfbnZtLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToyMDpcXHRpNDBlX2RlYnVnZnMub1xcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjIxOlxcdGk0MGVfZGlhZy5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MjI6XFx0aTQwZV90eHJ4Lm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToyMzpcXHRpNDBlX3B0cC5vXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MjQ6XFx0aTQwZV9kZHAubyBcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToyNTpcXHRpNDBlX2NsaWVudC5vICAgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGU6MjY6XFx0aTQwZV92aXJ0Y2hubF9wZi5vIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL01ha2VmaWxlOjI3OlxcdGk0MGVfeHNrLm9cXHRcXFxcXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZToyODpcXHRpNDBlX2Rldmxpbmsub1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvTWFrZWZpbGUtMjktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9NYWtlZmlsZTozMDppNDBlLSQoQ09ORklHX0k0MEVfRENCKSArPSBpNDBlX2RjYi5vIGk0MGVfZGNiX25sLm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExLSNpbmNsdWRlIFxcdTAwM2NsaW51eC9hdmYvdmlydGNobmwuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjojaW5jbHVkZSBcXHUwMDNjbGludXgvbmV0L2ludGVsL2k0MGVfY2xpZW50LmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTMtI2luY2x1ZGUgXFx1MDAzY25ldC9kZXZsaW5rLmhcXHUwMDNlXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xNS0jaW5jbHVkZSBcXHUwMDNjbmV0L3VkcF90dW5uZWwuaFxcdTAwM2VcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxNjojaW5jbHVkZSBcXFwiaTQwZV9kY2IuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxNzojaW5jbHVkZSBcXFwiaTQwZV9kZWJ1Zy5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE4OiNpbmNsdWRlIFxcXCJpNDBlX2RldmxpbmsuaFxcXCJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxOTojaW5jbHVkZSBcXFwiaTQwZV9pby5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjIwOiNpbmNsdWRlIFxcXCJpNDBlX3Byb3RvdHlwZS5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjIxOiNpbmNsdWRlIFxcXCJpNDBlX3JlZ2lzdGVyLmhcXFwiXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MjI6I2luY2x1ZGUgXFxcImk0MGVfdHhyeC5oXFxcIlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjI0Oi8qIFVzZWZ1bCBpNDBlIGRlZmF1bHRzICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjUtI2RlZmluZSBJNDBFX01BWF9WRUJcXHRcXHRcXHQxNlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzYtLyogbWF4IDE2IHFwcyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM3OiNkZWZpbmUgaTQwZV9kZWZhdWx0X3F1ZXVlc19wZXJfdm1kcShwZikgXFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM4LVxcdCh0ZXN0X2JpdChJNDBFX0hXX0NBUF9SU1NfQVEsIChwZiktXFx1MDAzZWh3LmNhcHMpID8gNCA6IDEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MC0jZGVmaW5lIEk0MEVfTUFYX1ZGX1FVRVVFU1xcdFxcdDE2XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDE6I2RlZmluZSBpNDBlX3BmX2dldF9tYXhfcV9wZXJfdGMocGYpIFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00Mi1cXHQodGVzdF9iaXQoSTQwRV9IV19DQVBfMTI4X1FQX1JTUywgKHBmKS1cXHUwMDNlaHcuY2FwcykgPyAxMjggOiA2NClcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY4LSNkZWZpbmUgSTQwRV9SWF9ERVNDKFIsIGkpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjY5OlxcdChcXHUwMDI2KCgodW5pb24gaTQwZV9yeF9kZXNjICopKChSKS1cXHUwMDNlZGVzYykpW2ldKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MC0jZGVmaW5lIEk0MEVfVFhfREVTQyhSLCBpKVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MTpcXHQoXFx1MDAyNigoKHN0cnVjdCBpNDBlX3R4X2Rlc2MgKikoKFIpLVxcdTAwM2VkZXNjKSlbaV0pKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcyLSNkZWZpbmUgSTQwRV9UWF9DVFhUREVTQyhSLCBpKVxcdFxcXFxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MzpcXHQoXFx1MDAyNigoKHN0cnVjdCBpNDBlX3R4X2NvbnRleHRfZGVzYyAqKSgoUiktXFx1MDAzZWRlc2MpKVtpXSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzQtI2RlZmluZSBJNDBFX1RYX0ZESVJERVNDKFIsIGkpXFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc1OlxcdChcXHUwMDI2KCgoc3RydWN0IGk0MGVfZmlsdGVyX3Byb2dyYW1fZGVzYyAqKSgoUiktXFx1MDAzZWRlc2MpKVtpXSkpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzYtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04Mi0vKiBkcml2ZXIgc3RhdGUgZmxhZ3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4MzplbnVtIGk0MGVfc3RhdGUge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg0LVxcdF9fSTQwRV9URVNUSU5HLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE5LVxcdF9fSTQwRV9SRUNPVkVSWV9NT0RFLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMDpcXHRfX0k0MEVfVkZfUkVTRVRTX0RJU0FCTEVELFxcdC8qIGRpc2FibGUgcmVzZXRzIGR1cmluZyBpNDBlX3JlbW92ZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMS1cXHRfX0k0MEVfSU5fUkVNT1ZFLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTMxLS8qIFZTSSBzdGF0ZSBmbGFncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEzMjplbnVtIGk0MGVfdnNpX3N0YXRlIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMzMtXFx0X19JNDBFX1ZTSV9ET1dOLFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTQzLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE0NDplbnVtIGk0MGVfcGZfZmxhZ3Mge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTE0NS1cXHRJNDBFX0ZMQUdfTVNJX0VOQSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTE5MC1cXHQgKiAgIGJpdCAoSTQwRV9BUV9QSFlfRU5BQkxFX0xJTkspIGluIGFiaWxpdGllcyBmaWVsZCBvZlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE5MTpcXHQgKiAgIGk0MGVfYXFfc2V0X3BoeV9jb25maWcgc3RydWN0dXJlXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTkyLVxcdCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTk4LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjE5OTplbnVtIGk0MGVfaW50ZXJydXB0X3BvbGljeSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjAwLVxcdEk0MEVfSU5URVJSVVBUX0JFU1RfQ0FTRSxcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIwNC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMDU6c3RydWN0IGk0MGVfbHVtcF90cmFja2luZyB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjA2LVxcdHUxNiBudW1fZW50cmllcztcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIyMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMjI6ZW51bSBpNDBlX2ZkX3N0YXRfaWR4IHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yMjMtXFx0STQwRV9GRF9TVEFUX0FUUixcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTIzOC0gKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyMzk6c3RydWN0IGk0MGVfcnhfZmxvd191c2VyZGVmIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yNDAtXFx0Ym9vbCBmbGV4X2ZpbHRlcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTI0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoyNDU6c3RydWN0IGk0MGVfZmRpcl9maWx0ZXIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTI0Ni1cXHRzdHJ1Y3QgaGxpc3Rfbm9kZSBmZGlyX25vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0yOTYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Mjk3OnN0cnVjdCBpNDBlX2Nsb3VkX2ZpbHRlciB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMjk4LVxcdHN0cnVjdCBobGlzdF9ub2RlIGNsb3VkX25vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zMzItLyogRENCIHBlciBUQyBpbmZvcm1hdGlvbiBkYXRhIHN0cnVjdHVyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjMzMzpzdHJ1Y3QgaTQwZV90Y19pbmZvIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zMzQtXFx0dTE2XFx0cW9mZnNldDtcXHQvKiBRdWV1ZSBvZmZzZXQgZnJvbSBiYXNlIHF1ZXVlICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zMzktLyogVEMgY29uZmlndXJhdGlvbiBkYXRhIHN0cnVjdHVyZSAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0MDpzdHJ1Y3QgaTQwZV90Y19jb25maWd1cmF0aW9uIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zNDEtXFx0dThcXHRudW10YztcXHRcXHQvKiBUb3RhbCBudW1iZXIgb2YgZW5hYmxlZCBUQ3MgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zNDItXFx0dThcXHRlbmFibGVkX3RjO1xcdC8qIFRDIG1hcCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0MzpcXHRzdHJ1Y3QgaTQwZV90Y19pbmZvIHRjX2luZm9bSTQwRV9NQVhfVFJBRkZJQ19DTEFTU107XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMzQ0LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0zNDYtI2RlZmluZSBJNDBFX1VEUF9QT1JUX0lOREVYX1VOVVNFRFxcdDI1NVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjM0NzpzdHJ1Y3QgaTQwZV91ZHBfcG9ydF9jb25maWcge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTM0OC1cXHQvKiBBZG1pblEgY29tbWFuZCBpbnRlcmZhY2UgZXhwZWN0cyBwb3J0IG51bWJlciBpbiBIb3N0IGJ5dGUgb3JkZXIgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0MjE6c3RydWN0IGk0MGVfZmxleF9waXQge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQyMi1cXHRzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MjYtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDI3OnN0cnVjdCBpNDBlX2Z3ZF9hZGFwdGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00MjgtXFx0c3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldjtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQzMS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0MzI6c3RydWN0IGk0MGVfY2hhbm5lbCB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDMzLVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ0Mi1cXHR1OCBlbmFibGVkX3RjO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ0MzpcXHRzdHJ1Y3QgaTQwZV9hcWNfdnNpX3Byb3BlcnRpZXNfZGF0YSBpbmZvO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NDUtXFx0dTY0IG1heF90eF9yYXRlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ0NjpcXHRzdHJ1Y3QgaTQwZV9md2RfYWRhcHRlciAqZndkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ0Ny1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NDgtXFx0LyogdHJhY2sgdGhpcyBjaGFubmVsIGJlbG9uZ3MgdG8gd2hpY2ggVlNJICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDQ5OlxcdHN0cnVjdCBpNDBlX3ZzaSAqcGFyZW50X3ZzaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTAtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDUyOnN0cnVjdCBpNDBlX3B0cF9waW5zX3NldHRpbmdzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1My1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0NTQ6c3RhdGljIGlubGluZSBib29sIGk0MGVfaXNfY2hhbm5lbF9tYWN2bGFuKHN0cnVjdCBpNDBlX2NoYW5uZWwgKmNoKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTQ1NS17XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NTgtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDU5OnN0YXRpYyBpbmxpbmUgY29uc3QgdTggKmk0MGVfY2hhbm5lbF9tYWMoc3RydWN0IGk0MGVfY2hhbm5lbCAqY2gpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDYwLXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo0NjE6XFx0aWYgKGk0MGVfaXNfY2hhbm5lbF9tYWN2bGFuKGNoKSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjItXFx0XFx0cmV0dXJuIGNoLVxcdTAwM2Vmd2QtXFx1MDAzZW5ldGRldi1cXHUwMDNlZGV2X2FkZHI7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjctLyogc3RydWN0IHRoYXQgZGVmaW5lcyB0aGUgRXRoZXJuZXQgZGV2aWNlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NDY4OnN0cnVjdCBpNDBlX3BmIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NjktXFx0c3RydWN0IHBjaV9kZXYgKnBkZXY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNDcwLVxcdHN0cnVjdCBkZXZsaW5rX3BvcnQgZGV2bGlua19wb3J0O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjQ3MTpcXHRzdHJ1Y3QgaTQwZV9odyBodztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC00NzItXFx0REVDTEFSRV9CSVRNQVAoc3RhdGUsIF9fSTQwRV9TVEFURV9TSVpFX18pO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTM2LVxcdERFQ0xBUkVfQklUTUFQKGZsYWdzLCBJNDBFX1BGX0ZMQUdTX05CSVRTKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1Mzc6XFx0c3RydWN0IGk0MGVfY2xpZW50X2luc3RhbmNlICpjaW5zdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01MzgtXFx0Ym9vbCBzdGF0X29mZnNldHNfbG9hZGVkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjUzOTpcXHRzdHJ1Y3QgaTQwZV9od19wb3J0X3N0YXRzIHN0YXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjU0MDpcXHRzdHJ1Y3QgaTQwZV9od19wb3J0X3N0YXRzIHN0YXRzX29mZnNldHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTQxLVxcdHUzMiB0eF90aW1lb3V0X2NvdW50O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNTU4LVxcdHUxNiBuZXh0X3ZzaTsgICAgICAvKiBOZXh0IHVuYWxsb2NhdGVkIFZTSSAtIDAtYmFzZWQhICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTU5OlxcdHN0cnVjdCBpNDBlX3ZzaSAqKnZzaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1NjA6XFx0c3RydWN0IGk0MGVfdmViICp2ZWJbSTQwRV9NQVhfVkVCXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NjEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTYyOlxcdHN0cnVjdCBpNDBlX2x1bXBfdHJhY2tpbmcgKnFwX3BpbGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTYzOlxcdHN0cnVjdCBpNDBlX2x1bXBfdHJhY2tpbmcgKmlycV9waWxlO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU2NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU2OC0jaWZkZWYgQ09ORklHX0RFQlVHX0ZTXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTY5OlxcdHN0cnVjdCBkZW50cnkgKmk0MGVfZGJnX3BmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU3MC0jZW5kaWYgLyogQ09ORklHX0RFQlVHX0ZTICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NzMtXFx0Lyogc3ItaW92IGNvbmZpZyBpbmZvICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTc0OlxcdHN0cnVjdCBpNDBlX3ZmICp2ZjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01NzUtXFx0aW50IG51bV9hbGxvY192ZnM7XFx0LyogYWN0dWFsIG51bWJlciBvZiBWRnMgYWxsb2NhdGVkICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC01OTEtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NTkyOlxcdHN0cnVjdCBpNDBlX2ZpbHRlcl9jb250cm9sX3NldHRpbmdzIGZpbHRlcl9zZXR0aW5ncztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo1OTM6XFx0c3RydWN0IGk0MGVfcnhfcGJfY29uZmlnIHBiX2NmZzsgLyogQ3VycmVudCBSeCBwYWNrZXQgYnVmZmVyIGNvbmZpZyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjU5NDpcXHRzdHJ1Y3QgaTQwZV9kY2J4X2NvbmZpZyB0bXBfY2ZnO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTU5NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY4MS1cXHRib29sIHB0cF9yeDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo2ODI6XFx0c3RydWN0IGk0MGVfcHRwX3BpbnNfc2V0dGluZ3MgKnB0cF9waW5zO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY4My1cXHR1MTYgcnNzX3RhYmxlX3NpemU7IC8qIEhXIFJTUyB0YWJsZSBzaXplICovXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC02OTctLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Njk4OiAqIF9faTQwZV9wZl9uZXh0X3ZzaSAtIGdldCBuZXh0IHZhbGlkIFZTSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTY5OS0gKiBAcGY6IHBvaW50ZXIgdG8gdGhlIFBGIHN0cnVjdFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzA0LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3MDU6c3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgaTQwZV92c2kgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcwNjpfX2k0MGVfcGZfbmV4dF92c2koc3RydWN0IGk0MGVfcGYgKnBmLCBpbnQgKmlkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MDcte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzE1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcxNjojZGVmaW5lIGk0MGVfcGZfZm9yX2VhY2hfdnNpKF9wZiwgX2ksIF92c2kpXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcxNzpcXHRmb3IgKF9pID0gMCwgX3ZzaSA9IF9faTQwZV9wZl9uZXh0X3ZzaShfcGYsIFxcdTAwMjZfaSk7XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcxOC1cXHQgICAgIF92c2k7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjcxOTpcXHQgICAgIF9pKyssIF92c2kgPSBfX2k0MGVfcGZfbmV4dF92c2koX3BmLCBcXHUwMDI2X2kpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcyMC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MjEtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzIyOiAqIF9faTQwZV9wZl9uZXh0X3ZlYiAtIGdldCBuZXh0IHZhbGlkIFZFQlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTcyMy0gKiBAcGY6IHBvaW50ZXIgdG8gdGhlIFBGIHN0cnVjdFxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzI4LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3Mjk6c3RhdGljIF9fYWx3YXlzX2lubGluZSBzdHJ1Y3QgaTQwZV92ZWIgKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjczMDpfX2k0MGVfcGZfbmV4dF92ZWIoc3RydWN0IGk0MGVfcGYgKnBmLCBpbnQgKmlkeClcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03MzEte1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzM5LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MDojZGVmaW5lIGk0MGVfcGZfZm9yX2VhY2hfdmViKF9wZiwgX2ksIF92ZWIpXFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MTpcXHRmb3IgKF9pID0gMCwgX3ZlYiA9IF9faTQwZV9wZl9uZXh0X3ZlYihfcGYsIFxcdTAwMjZfaSk7XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0Mi1cXHQgICAgIF92ZWI7XFx0XFx0XFx0XFx0XFx0XFx0XFxcXFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc0MzpcXHQgICAgIF9pKyssIF92ZWIgPSBfX2k0MGVfcGZfbmV4dF92ZWIoX3BmLCBcXHUwMDI2X2kpKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NDUtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzQ2OiAqIGk0MGVfYWRkcl90b19oa2V5IC0gQ29udmVydCBhIDYtYnl0ZSBNQUMgQWRkcmVzcyB0byBhIHU2NCBoYXNoIGtleVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc0Ny0gKiBAbWFjYWRkcjogdGhlIE1BQyBBZGRyZXNzIGFzIHRoZSBiYXNlIGtleVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzUwLSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NTE6c3RhdGljIGlubGluZSB1NjQgaTQwZV9hZGRyX3RvX2hrZXkoY29uc3QgdTggKm1hY2FkZHIpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc1OC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo3NTk6ZW51bSBpNDBlX2ZpbHRlcl9zdGF0ZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzYwLVxcdEk0MEVfRklMVEVSX0lOVkFMSUQgPSAwLFxcdC8qIEludmFsaWQgc3RhdGUgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc2NC1cXHRJNDBFX0ZJTFRFUl9SRU1PVkUsXFx0XFx0LyogVG8gYmUgcmVtb3ZlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc2NTpcXHRJNDBFX0ZJTFRFUl9ORVdfU1lOQyxcXHRcXHQvKiBOZXcsIG5vdCBzZW50IHlldCwgaXMgaW4gaTQwZV9zeW5jX3ZzaV9maWx0ZXJzKCkgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NjYtLyogVGhlcmUgaXMgbm8gJ3JlbW92ZWQnIHN0YXRlOyB0aGUgZmlsdGVyIHN0cnVjdCBpcyBmcmVlZCAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc2Ny19O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc2ODpzdHJ1Y3QgaTQwZV9tYWNfZmlsdGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NjktXFx0c3RydWN0IGhsaXN0X25vZGUgaGxpc3Q7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03NzItXFx0czE2IHZsYW47XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6NzczOlxcdGVudW0gaTQwZV9maWx0ZXJfc3RhdGUgc3RhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzc0LX07XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03ODMtICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg0OnN0cnVjdCBpNDBlX25ld19tYWNfZmlsdGVyIHtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC03ODUtXFx0c3RydWN0IGhsaXN0X25vZGUgaGxpc3Q7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg2OlxcdHN0cnVjdCBpNDBlX21hY19maWx0ZXIgKmY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzg3LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTc4OC1cXHQvKiBUcmFjayBmdXR1cmUgY2hhbmdlcyB0byBzdGF0ZSBzZXBhcmF0ZWx5ICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6Nzg5OlxcdGVudW0gaTQwZV9maWx0ZXJfc3RhdGUgc3RhdGU7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzkwLX07XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzkxLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc5MjpzdHJ1Y3QgaTQwZV92ZWIge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjc5MzpcXHRzdHJ1Y3QgaTQwZV9wZiAqcGY7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtNzk0LVxcdHUxNiBpZHg7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04MDctXFx0Ym9vbCBzdGF0X29mZnNldHNfbG9hZGVkO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgwODpcXHRzdHJ1Y3QgaTQwZV9ldGhfc3RhdHMgc3RhdHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODA5OlxcdHN0cnVjdCBpNDBlX2V0aF9zdGF0cyBzdGF0c19vZmZzZXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgxMDpcXHRzdHJ1Y3QgaTQwZV92ZWJfdGNfc3RhdHMgdGNfc3RhdHM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODExOlxcdHN0cnVjdCBpNDBlX3ZlYl90Y19zdGF0cyB0Y19zdGF0c19vZmZzZXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTgxMi19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODE0LS8qIHN0cnVjdCB0aGF0IGRlZmluZXMgYSBWU0ksIGFzc29jaWF0ZWQgd2l0aCBhIGRldiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjgxNTpzdHJ1Y3QgaTQwZV92c2kge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTgxNi1cXHRzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODM1LVxcdHN0cnVjdCBydG5sX2xpbmtfc3RhdHM2NCBuZXRfc3RhdHNfb2Zmc2V0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4MzY6XFx0c3RydWN0IGk0MGVfZXRoX3N0YXRzIGV0aF9zdGF0cztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4Mzc6XFx0c3RydWN0IGk0MGVfZXRoX3N0YXRzIGV0aF9zdGF0c19vZmZzZXRzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTgzOC1cXHR1NjQgdHhfcmVzdGFydDtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg1MC1cXHQvKiBUaGVzZSBhcmUgY29udGFpbmVycyBvZiByaW5nIHBvaW50ZXJzLCBhbGxvY2F0ZWQgYXQgcnVuLXRpbWUgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4NTE6XFx0c3RydWN0IGk0MGVfcmluZyAqKnJ4X3JpbmdzO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg1MjpcXHRzdHJ1Y3QgaTQwZV9yaW5nICoqdHhfcmluZ3M7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6ODUzOlxcdHN0cnVjdCBpNDBlX3JpbmcgKip4ZHBfcmluZ3M7IC8qIFhEUCBUeCByaW5ncyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg1NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg3Mi1cXHQvKiBMaXN0IG9mIHFfdmVjdG9ycyBhbGxvY2F0ZWQgdG8gdGhpcyBWU0kgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4NzM6XFx0c3RydWN0IGk0MGVfcV92ZWN0b3IgKipxX3ZlY3RvcnM7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODc0LVxcdGludCBudW1fcV92ZWN0b3JzO1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtODg3LVxcdHUxNiBudW1fcnhfZGVzYztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4ODg6XFx0ZW51bSBpNDBlX3ZzaV90eXBlIHR5cGU7ICAvKiBWU0kgdHlwZSwgZS5nLiwgTEFOLCBGQ29FLCBldGMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04ODktXFx0czE2IHZmX2lkO1xcdFxcdC8qIFZpcnR1YWwgZnVuY3Rpb24gSUQgZm9yIFNSSU9WIFZTSXMgKi9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTg5MS1cXHRzdHJ1Y3QgdGNfbXFwcmlvX3FvcHRfb2ZmbG9hZCBtcXByaW9fcW9wdDsgLyogcXVldWUgcGFyYW1ldGVycyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjg5MjpcXHRzdHJ1Y3QgaTQwZV90Y19jb25maWd1cmF0aW9uIHRjX2NvbmZpZztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo4OTM6XFx0c3RydWN0IGk0MGVfYXFjX3ZzaV9wcm9wZXJ0aWVzX2RhdGEgaW5mbztcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC04OTQtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05MDUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTA2OlxcdHN0cnVjdCBpNDBlX3BmICpiYWNrO1xcdC8qIEJhY2tyZWZlcmVuY2UgdG8gYXNzb2NpYXRlZCBQRiAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTkwNy1cXHR1MTYgaWR4O1xcdFxcdC8qIGluZGV4IGluIHBmLVxcdTAwM2V2c2lbXSAqL1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTEwLVxcdGJvb2wgY3VycmVudF9pc3VwO1xcdC8qIFN5bmMgJ2xpbmsgdXAnIGxvZ2dpbmcgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5MTE6XFx0ZW51bSBpNDBlX2FxX2xpbmtfc3BlZWQgY3VycmVudF9zcGVlZDtcXHQvKiBTeW5jIGxpbmsgc3BlZWQgbG9nZ2luZyAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTkxMi1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTkzOC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5Mzk6c3RydWN0IGk0MGVfbmV0ZGV2X3ByaXYge1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk0MDpcXHRzdHJ1Y3QgaTQwZV92c2kgKnZzaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NDEtfTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NDItXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTQzOmV4dGVybiBzdHJ1Y3QgaWRhIGk0MGVfY2xpZW50X2lkYTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05NDQtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTQ1LS8qIHN0cnVjdCB0aGF0IGRlZmluZXMgYW4gaW50ZXJydXB0IHZlY3RvciAqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk0NjpzdHJ1Y3QgaTQwZV9xX3ZlY3RvciB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTQ3OlxcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk0OC1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk1NC1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5NTU6XFx0c3RydWN0IGk0MGVfcmluZ19jb250YWluZXIgcng7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTU2OlxcdHN0cnVjdCBpNDBlX3JpbmdfY29udGFpbmVyIHR4O1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk1Ny1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk3MC0vKiBsYW4gZGV2aWNlICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6OTcxOnN0cnVjdCBpNDBlX2RldmljZSB7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTcyLVxcdHN0cnVjdCBsaXN0X2hlYWQgbGlzdDtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5NzM6XFx0c3RydWN0IGk0MGVfcGYgKnBmO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk3NC19O1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTc2LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk3NzogKiBpNDBlX2luZm9fbnZtX3ZlciAtIGZvcm1hdCB0aGUgTlZNIHZlcnNpb24gc3RyaW5nXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTc4LSAqIEBodzogcHRyIHRvIHRoZSBoYXJkd2FyZSBpbmZvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC05ODUtICoqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjk4NjpzdGF0aWMgaW5saW5lIHZvaWQgaTQwZV9pbmZvX252bV92ZXIoc3RydWN0IGk0MGVfaHcgKmh3LCBjaGFyICpidWYsIHNpemVfdCBsZW4pXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtOTg3LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDo5ODg6XFx0c3RydWN0IGk0MGVfbnZtX2luZm8gKm52bSA9IFxcdTAwMjZody1cXHUwMDNlbnZtO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTk4OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMDgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTAwOTogKiBpNDBlX2luZm9fZWV0cmFjayAtIGZvcm1hdCB0aGUgRUVUcmFja0lEIHN0cmluZ1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMTAtICogQGh3OiBwdHIgdG8gdGhlIGhhcmR3YXJlIGluZm9cXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMTYtICoqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMTc6c3RhdGljIGlubGluZSB2b2lkIGk0MGVfaW5mb19lZXRyYWNrKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLCBzaXplX3QgbGVuKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMTgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMTk6XFx0c3RydWN0IGk0MGVfbnZtX2luZm8gKm52bSA9IFxcdTAwMjZody1cXHUwMDNlbnZtO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMjAtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDI2LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMjc6ICogaTQwZV9pbmZvX2NpdmRfdmVyIC0gZm9ybWF0IHRoZSBOVk0gdmVyc2lvbiBzdHJpbmdzXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAyOC0gKiBAaHc6IHB0ciB0byB0aGUgaGFyZHdhcmUgaW5mb1xcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTAzNC0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTAzNTpzdGF0aWMgaW5saW5lIHZvaWQgaTQwZV9pbmZvX2NpdmRfdmVyKHN0cnVjdCBpNDBlX2h3ICpodywgY2hhciAqYnVmLCBzaXplX3QgbGVuKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMzYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwMzc6XFx0c3RydWN0IGk0MGVfbnZtX2luZm8gKm52bSA9IFxcdTAwMjZody1cXHUwMDNlbnZtO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwMzgtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDUyLS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwNTM6ICogaTQwZV9udm1fdmVyc2lvbl9zdHIgLSBmb3JtYXQgdGhlIE5WTSB2ZXJzaW9uIHN0cmluZ3NcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDU0LSAqIEBodzogcHRyIHRvIHRoZSBoYXJkd2FyZSBpbmZvXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDU3LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDU4OnN0YXRpYyBpbmxpbmUgY2hhciAqaTQwZV9udm1fdmVyc2lvbl9zdHIoc3RydWN0IGk0MGVfaHcgKmh3LCBjaGFyICpidWYsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA1OS1cXHRcXHRcXHRcXHRcXHQgc2l6ZV90IGxlbilcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwNjMtXFx0LyogR2V0IE5WTSB2ZXJzaW9uICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA2NDpcXHRpNDBlX2luZm9fbnZtX3ZlcihodywgYnVmLCBsZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwNjUtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA2Ni1cXHQvKiBBcHBlbmQgRUVUcmFja0lEIGlmIHByb3ZpZGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA2NzpcXHRpNDBlX2luZm9fZWV0cmFjayhodywgXFx1MDAyNnZlclsxXSwgc2l6ZW9mKHZlcikgLSAxKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDY4LVxcdGlmIChzdHJsZW4odmVyKSBcXHUwMDNlIDEpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDcxLVxcdC8qIEFwcGVuZCBjb21ibyBpbWFnZSB2ZXJzaW9uIGlmIHByb3ZpZGVkICovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA3MjpcXHRpNDBlX2luZm9fY2l2ZF92ZXIoaHcsIFxcdTAwMjZ2ZXJbMV0sIHNpemVvZih2ZXIpIC0gMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA3My1cXHRpZiAoc3RybGVuKHZlcikgXFx1MDAzZSAxKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA3OS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDgwOiAqIGk0MGVfbmV0ZGV2X3RvX3BmOiBSZXRyaWV2ZSB0aGUgUEYgc3RydWN0IGZvciBnaXZlbiBuZXRkZXZcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDgxLSAqIEBuZXRkZXY6IHRoZSBjb3JyZXNwb25kaW5nIG5ldGRldlxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA4NC0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTA4NTpzdGF0aWMgaW5saW5lIHN0cnVjdCBpNDBlX3BmICppNDBlX25ldGRldl90b19wZihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2KVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwODYte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEwODc6XFx0c3RydWN0IGk0MGVfbmV0ZGV2X3ByaXYgKm5wID0gbmV0ZGV2X3ByaXYobmV0ZGV2KTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDg4OlxcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpID0gbnAtXFx1MDAzZXZzaTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMDg5LVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA5Mi1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMDkzOnN0YXRpYyBpbmxpbmUgdm9pZCBpNDBlX3ZzaV9zZXR1cF9pcnFoYW5kbGVyKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEwOTQtXFx0XFx0XFx0XFx0aXJxcmV0dXJuX3QgKCppcnFfaGFuZGxlcikoaW50LCB2b2lkICopKVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTA5OS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTAwOiAqIGk0MGVfZ2V0X2ZkX2NudF9hbGwgLSBnZXQgdGhlIHRvdGFsIEZEIGZpbHRlciBzcGFjZSBhdmFpbGFibGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTAxLSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTEwMi0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEwMzpzdGF0aWMgaW5saW5lIGludCBpNDBlX2dldF9mZF9jbnRfYWxsKHN0cnVjdCBpNDBlX3BmICpwZilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTA0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMDgtLyoqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEwOTogKiBpNDBlX3JlYWRfZmRfaW5wdXRfc2V0IC0gcmVhZHMgdmFsdWUgb2YgZmxvdyBkaXJlY3RvciBpbnB1dCBzZXQgcmVnaXN0ZXJcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTEwLSAqIEBwZjogcG9pbnRlciB0byB0aGUgUEYgc3RydWN0XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTE1LSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTE2OnN0YXRpYyBpbmxpbmUgdTY0IGk0MGVfcmVhZF9mZF9pbnB1dF9zZXQoc3RydWN0IGk0MGVfcGYgKnBmLCB1MTYgYWRkcilcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTE3LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTEyMDpcXHR2YWwgPSBpNDBlX3JlYWRfcnhfY3RsKFxcdTAwMjZwZi1cXHUwMDNlaHcsIEk0MEVfUFJUUUZfRkRfSU5TRVQoYWRkciwgMSkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMjEtXFx0dmFsIFxcdTAwM2NcXHUwMDNjPSAzMjtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTIyOlxcdHZhbCArPSBpNDBlX3JlYWRfcnhfY3RsKFxcdTAwMjZwZi1cXHUwMDNlaHcsIEk0MEVfUFJUUUZfRkRfSU5TRVQoYWRkciwgMCkpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMjMtXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTI3LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMjg6ICogaTQwZV93cml0ZV9mZF9pbnB1dF9zZXQgLSB3cml0ZXMgdmFsdWUgaW50byBmbG93IGRpcmVjdG9yIGlucHV0IHNldCByZWdpc3RlclxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMjktICogQHBmOiBwb2ludGVyIHRvIHRoZSBQRiBzdHJ1Y3RcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMzUtICoqL1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMzY6c3RhdGljIGlubGluZSB2b2lkIGk0MGVfd3JpdGVfZmRfaW5wdXRfc2V0KHN0cnVjdCBpNDBlX3BmICpwZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTM3LVxcdFxcdFxcdFxcdFxcdCAgIHUxNiBhZGRyLCB1NjQgdmFsKVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExMzgte1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExMzk6XFx0aTQwZV93cml0ZV9yeF9jdGwoXFx1MDAyNnBmLVxcdTAwM2VodywgSTQwRV9QUlRRRl9GRF9JTlNFVChhZGRyLCAxKSxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTQwLVxcdFxcdFxcdCAgKHUzMikodmFsIFxcdTAwM2VcXHUwMDNlIDMyKSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE0MTpcXHRpNDBlX3dyaXRlX3J4X2N0bChcXHUwMDI2cGYtXFx1MDAzZWh3LCBJNDBFX1BSVFFGX0ZEX0lOU0VUKGFkZHIsIDApLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNDItXFx0XFx0XFx0ICAodTMyKSh2YWwgXFx1MDAyNiAweEZGRkZGRkZGVUxMKSk7XFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTQ1LS8qKlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNDY6ICogaTQwZV9nZXRfcGZfY291bnQgLSBnZXQgUENJIFBGIGNvdW50LlxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNDctICogQGh3OiBwb2ludGVyIHRvIGEgaHcuXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTUzLSAqKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTU0OnN0YXRpYyBpbmxpbmUgdTMyIGk0MGVfZ2V0X3BmX2NvdW50KHN0cnVjdCBpNDBlX2h3ICpodylcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTU1LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNTktXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2MDovKiBuZWVkZWQgYnkgaTQwZV9ldGh0b29sLmMgKi9cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTYxOmludCBpNDBlX3VwKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTYyOnZvaWQgaTQwZV9kb3duKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTYzOmV4dGVybiBjb25zdCBjaGFyIGk0MGVfZHJpdmVyX25hbWVbXTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTY0OnZvaWQgaTQwZV9kb19yZXNldF9zYWZlKHN0cnVjdCBpNDBlX3BmICpwZiwgdTMyIHJlc2V0X2ZsYWdzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTY1OnZvaWQgaTQwZV9kb19yZXNldChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUzMiByZXNldF9mbGFncywgYm9vbCBsb2NrX2FjcXVpcmVkKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTY2OmludCBpNDBlX2NvbmZpZ19yc3Moc3RydWN0IGk0MGVfdnNpICp2c2ksIHU4ICpzZWVkLCB1OCAqbHV0LCB1MTYgbHV0X3NpemUpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExNjc6aW50IGk0MGVfZ2V0X3JzcyhzdHJ1Y3QgaTQwZV92c2kgKnZzaSwgdTggKnNlZWQsIHU4ICpsdXQsIHUxNiBsdXRfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE2ODp2b2lkIGk0MGVfZmlsbF9yc3NfbHV0KHN0cnVjdCBpNDBlX3BmICpwZiwgdTggKmx1dCxcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTY5LVxcdFxcdCAgICAgICB1MTYgcnNzX3RhYmxlX3NpemUsIHUxNiByc3Nfc2l6ZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3MDpzdHJ1Y3QgaTQwZV92c2kgKmk0MGVfZmluZF92c2lfZnJvbV9pZChzdHJ1Y3QgaTQwZV9wZiAqcGYsIHUxNiBpZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE3MS0vKipcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTcyOiAqIGk0MGVfZmluZF92c2lfYnlfdHlwZSAtIEZpbmQgYW5kIHJldHVybiBGbG93IERpcmVjdG9yIFZTSVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExNzMtICogQHBmOiBQRiB0byBzZWFyY2ggZm9yIFZTSVxcbi0tXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE3NS0gKiovXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3NjpzdGF0aWMgaW5saW5lIHN0cnVjdCBpNDBlX3ZzaSAqXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE3NzppNDBlX2ZpbmRfdnNpX2J5X3R5cGUoc3RydWN0IGk0MGVfcGYgKnBmLCB1MTYgdHlwZSlcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTc4LXtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTc5OlxcdHN0cnVjdCBpNDBlX3ZzaSAqdnNpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTExODAtXFx0aW50IGk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTgyOlxcdGk0MGVfcGZfZm9yX2VhY2hfdnNpKHBmLCBpLCB2c2kpXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTE4My1cXHRcXHRpZiAodnNpLVxcdTAwM2V0eXBlID09IHR5cGUpXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTg3LX1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTg4OnZvaWQgaTQwZV91cGRhdGVfc3RhdHMoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExODk6dm9pZCBpNDBlX3VwZGF0ZV92ZWJfc3RhdHMoc3RydWN0IGk0MGVfdmViICp2ZWIpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTA6dm9pZCBpNDBlX3VwZGF0ZV9ldGhfc3RhdHMoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTE6c3RydWN0IHJ0bmxfbGlua19zdGF0czY0ICppNDBlX2dldF92c2lfc3RhdHNfc3RydWN0KHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTkyOmludCBpNDBlX2ZldGNoX3N3aXRjaF9jb25maWd1cmF0aW9uKHN0cnVjdCBpNDBlX3BmICpwZixcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTkzLVxcdFxcdFxcdFxcdCAgICBib29sIHByaW50Y29uZmlnKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMTk0LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTU6aW50IGk0MGVfYWRkX2RlbF9mZGlyKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjExOTY6XFx0XFx0ICAgICAgc3RydWN0IGk0MGVfZmRpcl9maWx0ZXIgKmlucHV0LCBib29sIGFkZCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5Nzp2b2lkIGk0MGVfZmRpcl9jaGVja19hbmRfcmVlbmFibGUoc3RydWN0IGk0MGVfcGYgKnBmKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMTk4OnUzMiBpNDBlX2dldF9jdXJyZW50X2ZkX2NvdW50KHN0cnVjdCBpNDBlX3BmICpwZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTE5OTp1MzIgaTQwZV9nZXRfY3VycmVudF9hdHJfY250KHN0cnVjdCBpNDBlX3BmICpwZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwMDp1MzIgaTQwZV9nZXRfZ2xvYmFsX2ZkX2NvdW50KHN0cnVjdCBpNDBlX3BmICpwZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwMTpib29sIGk0MGVfc2V0X250dXBsZShzdHJ1Y3QgaTQwZV9wZiAqcGYsIG5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjAyOnZvaWQgaTQwZV9zZXRfZXRodG9vbF9vcHMoc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwMzpzdHJ1Y3QgaTQwZV9tYWNfZmlsdGVyICppNDBlX2FkZF9maWx0ZXIoc3RydWN0IGk0MGVfdnNpICp2c2ksXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIwNC1cXHRcXHRcXHRcXHRcXHRjb25zdCB1OCAqbWFjYWRkciwgczE2IHZsYW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMDU6dm9pZCBfX2k0MGVfZGVsX2ZpbHRlcihzdHJ1Y3QgaTQwZV92c2kgKnZzaSwgc3RydWN0IGk0MGVfbWFjX2ZpbHRlciAqZik7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwNjppbnQgaTQwZV9zeW5jX3ZzaV9maWx0ZXJzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjA3OnN0cnVjdCBpNDBlX3ZzaSAqaTQwZV92c2lfc2V0dXAoc3RydWN0IGk0MGVfcGYgKnBmLCB1OCB0eXBlLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMDgtXFx0XFx0XFx0XFx0dTE2IHVwbGluaywgdTMyIHBhcmFtMSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIwOTppbnQgaTQwZV92c2lfcmVsZWFzZShzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxMDp2b2lkIGk0MGVfc2VydmljZV9ldmVudF9zY2hlZHVsZShzdHJ1Y3QgaTQwZV9wZiAqcGYpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMTE6dm9pZCBpNDBlX25vdGlmeV9jbGllbnRfb2ZfdmZfbXNnKHN0cnVjdCBpNDBlX3ZzaSAqdnNpLCB1MzIgdmZfaWQsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIxMi1cXHRcXHRcXHRcXHQgIHU4ICptc2csIHUxNiBsZW4pO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMTMtXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxNDppbnQgaTQwZV9jb250cm9sX3dhaXRfdHhfcShpbnQgc2VpZCwgc3RydWN0IGk0MGVfcGYgKnBmLCBpbnQgcGZfcSwgYm9vbCBpc194ZHAsXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmgtMTIxNS1cXHRcXHRcXHQgICBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxNjppbnQgaTQwZV9jb250cm9sX3dhaXRfcnhfcShzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCBwZl9xLCBib29sIGVuYWJsZSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIxNzppbnQgaTQwZV92c2lfc3RhcnRfcmluZ3Moc3RydWN0IGk0MGVfdnNpICp2c2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMTg6dm9pZCBpNDBlX3ZzaV9zdG9wX3JpbmdzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaDoxMjE5OnZvaWQgaTQwZV92c2lfc3RvcF9yaW5nc19ub193YWl0KHN0cnVjdCAgaTQwZV92c2kgKnZzaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyMDppbnQgaTQwZV92c2lfd2FpdF9xdWV1ZXNfZGlzYWJsZWQoc3RydWN0IGk0MGVfdnNpICp2c2kpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjE6aW50IGk0MGVfcmVjb25maWdfcnNzX3F1ZXVlcyhzdHJ1Y3QgaTQwZV9wZiAqcGYsIGludCBxdWV1ZV9jb3VudCk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyMjpzdHJ1Y3QgaTQwZV92ZWIgKmk0MGVfdmViX3NldHVwKHN0cnVjdCBpNDBlX3BmICpwZiwgdTE2IHVwbGlua19zZWlkLFxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oLTEyMjMtXFx0XFx0XFx0XFx0dTE2IGRvd25saW5rX3NlaWQsIHU4IGVuYWJsZWRfdGMpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjQ6dm9pZCBpNDBlX3ZlYl9yZWxlYXNlKHN0cnVjdCBpNDBlX3ZlYiAqdmViKTtcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9pNDBlL2k0MGUuaC0xMjI1LVxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjY6aW50IGk0MGVfdmViX2NvbmZpZ190YyhzdHJ1Y3QgaTQwZV92ZWIgKnZlYiwgdTggZW5hYmxlZF90Yyk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyNzppbnQgaTQwZV92c2lfYWRkX3B2aWQoc3RydWN0IGk0MGVfdnNpICp2c2ksIHUxNiB2aWQpO1xcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL2k0MGUvaTQwZS5oOjEyMjg6dm9pZCBpNDBlX3ZzaV9yZW1vdmVfcHZpZChzdHJ1Y3QgaTQwZV92c2kgKnZzaSk7XFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvaTQwZS9pNDBlLmg6MTIyOTp2b2lkIGk0MGVfdnNpX3Jlc2V0X3N0YXRzKHN0cnVjdCBpNDBlX3ZzaSAqdnNpKTtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjVUMDc6MDA6MTguMjE3NzQ5MjFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1NDYxNTYwODEyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgSW1wbGljYXRpb25zIG9mIGFuIGk0MGUgRHJpdmVyIFBhdGNoIGluIGEgUUVNVSBDb250ZXh0KipcblxuT2theSwgc28gdGhlIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBgaTQwZWAg4oCTIHRoYXQncyBJbnRlbCdzIDQwIEdpZ2FiaXQgRXRoZXJuZXQgYWRhcHRlci4gTXkgZmlyc3QgdGhvdWdodCBpczogY2FuIEkgZXZlbiAqZ2V0KiB0byB0aGlzIGNvZGUgd2l0aGluIGEgUUVNVSBlbnZpcm9ubWVudD8gQ29uc2lkZXJpbmcgdGhpcyBwYXRjaCBzcGVjaWZpY2FsbHkgdG91Y2hlcyBgaTQwZV94c2suY2AsIHdoaWNoIGlzIHRoZSBBRl9YRFAgemVyby1jb3B5IHN1cHBvcnQgZm9yIHRoZSBpNDBlIGRyaXZlciwgdGhlIGFuc3dlciBzZWVtcyBpbml0aWFsbHkgb2J2aW91cy4gU2luY2UgUUVNVSBkb2Vzbid0IGRpcmVjdGx5IGVtdWxhdGUgaTQwZSBoYXJkd2FyZSwgdGhlIGRyaXZlciBzaG91bGRuJ3QgYmUgbG9hZGVkLCBhbmQgdGhpcyBwYXJ0aWN1bGFyIGNvZGUgcGF0aCB3b3VsZG4ndCBiZSBleGVjdXRlZCBpbiBhIHN0YW5kYXJkIFFFTVUgc2V0dXAuXG5cbkJ1dCB3YWl0LCBJIG5lZWQgdG8gYmUgYWJzb2x1dGVseSBjZXJ0YWluLiBEb2VzIFFFTVUsIHBlcmhhcHMsIHByb3ZpZGUgKnNvbWUqIGxldmVsIG9mIGk0MGUgZW11bGF0aW9uPyBJdCdzIHdvcnRoIGEgZG91YmxlLWNoZWNrIHRvIHNlZSBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZS1iYXNlZCBpbnRlcnByZXRhdGlvbi4gVGltZSB0byB2ZXJpZnkgaWYgaXQgaXMgaGFyZHdhcmUgZXhjbHVzaXZlLlxuXG5Ob3BlLiBRdWljayBzY2FuIGNvbmZpcm1zIFFFTVUgb2ZmZXJzIGEgcmFuZ2Ugb2YgbmV0d29yayBkZXZpY2VzIGxpa2UgZTEwMDAsIGUxMDAwZSwgaWdiLCBydGw4MTM5LCBwY25ldCwgbmUya19wY2ksIHZteG5ldDMsIHZpcnRpby1uZXQsIGFuZCB0dWxpcC4gTm8gaTQwZS4gSnVzdCB0byBiZSBhYnNvbHV0ZWx5LCBwb3NpdGl2ZWx5IHN1cmUsIGxldCBtZSB0YWtlIGEgcXVpY2sgcGVhayBhdCB0aGUgYGh3L25ldGAgZGlyZWN0b3J5IHdpdGhpbiB0aGUgUUVNVSBzb3VyY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIwMjc2LCJPdXRwdXRUb2tlbnMiOjM1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA3OjAwOjIzLjY3OTMxNTg2MloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTA4MjkwNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiaTQwZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc9MjI5PWNvbmZpZyBJNDBFXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI0NC1cXHQgIE1vcmUgc3BlY2lmaWMgaW5mb3JtYXRpb24gb24gY29uZmlndXJpbmcgdGhlIGRyaXZlciBpcyBpblxcbmRyaXZlcnMvbmV0L2V0aGVybmV0L2ludGVsL0tjb25maWc6MjQ1OlxcdCAgXFx1MDAzY2ZpbGU6RG9jdW1lbnRhdGlvbi9uZXR3b3JraW5nL2RldmljZV9kcml2ZXJzL2V0aGVybmV0L2ludGVsL2k0MGUucnN0XFx1MDAzZS5cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI0Ni1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI0Ny1cXHQgIFRvIGNvbXBpbGUgdGhpcyBkcml2ZXIgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuIFRoZSBtb2R1bGVcXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnOjI0ODpcXHQgIHdpbGwgYmUgY2FsbGVkIGk0MGUuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yNDktXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnPTI2OD1jb25maWcgSTQwRVZGXFxuLS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnLTI4MS1cXG5kcml2ZXJzL25ldC9ldGhlcm5ldC9pbnRlbC9LY29uZmlnOjI4MjpcXHQgIFRoaXMgZHJpdmVyIHdhcyBmb3JtZXJseSBuYW1lZCBpNDBldmYuXFxuZHJpdmVycy9uZXQvZXRoZXJuZXQvaW50ZWwvS2NvbmZpZy0yODMtXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA3OjAwOjIzLjc5MDE0OTg1OVoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjc3MDMxODUxMDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqV29ydGhGdXp6aW5nIERlY2lzaW9uIGZvciBpNDBlIERyaXZlciBDb2RlKipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBUaGUgYGk0MGVgIGRyaXZlciDigJMgdGhhdCdzIHRoZSBvbmUgZm9yIHRoZSBJbnRlbCBYTDcxMCBFdGhlcm5ldCBDb25uZWN0aW9uLiBUaGlzIGlzIGEgKnBoeXNpY2FsKiBQQ0llIGhhcmR3YXJlIGNvbXBvbmVudCwgYSByZWFsIGNhcmQgeW91IHN0aWNrIGluIGEgc2VydmVyLiBBbmQgYXMgSSBrbm93IGZyb20gZXhwZXJpZW5jZSwgUUVNVSwgdGhlIGNvbW1vbiB2aXJ0dWFsaXphdGlvbiB0b29sLCBkb2Vzbid0IGVtdWxhdGUgdGhlIFhMNzEwIG9yIHRoZSBpNDBlIGRyaXZlci4gU28sIGluIGFueSB0eXBpY2FsIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9yLCBtb3JlIGRpcmVjdGx5LCBRRU1VLCB0aGlzIHBhcnRpY3VsYXIgY29kZSBpcyBzaW1wbHkgbmV2ZXIgZ29pbmcgdG8gYmUgZXhlY3V0ZWQuXG5cbk5vdywgbGV0J3MgZG91YmxlLWNoZWNrIHRoZSBpbnN0cnVjdGlvbnMuIFRoZXkgc3BlY2lmaWNhbGx5IHNheSB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgdGhlIHBhdGNoIGNvbmNlcm5zIGNvZGUgaW4gY2VydGFpbiB0eXBlcyBvZiBkcml2ZXJzLCBhbmQsIGxldCBtZSBzZWUsICpyaWdodCBoZXJlKiwgaXQgbWVudGlvbnMgXCJ2ZW5kb3Itc3BlY2lmaWMgUENJZS4uLiBkcml2ZXJzLi4uIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlwiXG5cbkJpbmdvLiBgaTQwZWAgaXMgKmV4YWN0bHkqIHRoYXQ6IGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyIHNwZWNpZmljYWxseSBmb3IgSW50ZWwgWEw3MTAgY2FyZHMuIEl0IG5lZWRzIHRoZSBwaHlzaWNhbCBoYXJkd2FyZSwgd2hpY2ggUUVNVSBkb2Vzbid0IG9mZmVyLiBUaGVyZWZvcmUsIGJhc2VkIG9uIHRoZSBpbnN0cnVjdGlvbiBzZXQsIGFuZCBteSB1bmRlcnN0YW5kaW5nIG9mIHRoZSBlbnZpcm9ubWVudCwgYFdvcnRoRnV6emluZz1mYWxzZWAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTMxLCJPdXRwdXRUb2tlbnMiOjgzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTk4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI1VDA3OjAwOjMxLjQ5MzMzODE2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozNzQyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgaTQwZSBkcml2ZXIgKEludGVsIDQwIEdpZ2FiaXQgRXRoZXJuZXQgLyBYTDcxMCksIHdoaWNoIHJlcXVpcmVzIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgZW52aXJvbm1lbnRzLiBUaGVyZWZvcmUsIHRoZSBtb2RpZmllZCBjb2RlIGlzIHVucmVhY2hhYmxlIGR1cmluZyBmdXp6aW5nIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBpNDBlIGRyaXZlciAoSW50ZWwgNDAgR2lnYWJpdCBFdGhlcm5ldCAvIFhMNzEwKSwgd2hpY2ggcmVxdWlyZXMgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBlbnZpcm9ubWVudHMuIFRoZXJlZm9yZSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgdW5yZWFjaGFibGUgZHVyaW5nIGZ1enppbmcgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflow7jm47[1] Phase: Running StartedAt: 2026-07-25 07:00:43 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflow7jm47[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-07-25 07:00:43 +0000 UTC FinishedAt: 2026-07-25 07:00:49 +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,}