Name: series-workflowclrxs Phase: Failed StartedAt: 2026-09-10 14:28:12 +0000 UTC FinishedAt: 2026-09-10 14:49:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowclrxs[0] Phase: Succeeded StartedAt: 2026-09-10 14:28:12 +0000 UTC FinishedAt: 2026-09-10 14:49:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowclrxs[0].run-triage Phase: Succeeded StartedAt: 2026-09-10 14:28:12 +0000 UTC FinishedAt: 2026-09-10 14:49:21 +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+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgY2hhbmdlcyBhcmUgcmVzdHJpY3RlZCB0byB0aGUgTWF4TGluZWFyIE14TDg2Mnh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jKSwgYWRqdXN0aW5nIHNldHVwLCB0ZWFyZG93biwgYW5kIHdvcmsgY2FuY2VsbGF0aW9uIHBhdGhzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBkZWRpY2F0ZWQgcGh5c2ljYWwgaGFyZHdhcmUgKE1heExpbmVhciBNeEw4NjI4Mi9NeEw4NjI1MiBzd2l0Y2ggY2hpcHMgYXR0YWNoZWQgdmlhIE1ESU8gYW5kIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUpIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzczM2YwYTQ0MDMyYTE0Y2VjMDQ3NzExZTVjZTg1MDQ3YzgyMWRjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgU2VwIDEwIDE0OjQ4OjEwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jIGIvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmNcbmluZGV4IGNmYTdlM2UyNjlhMjguLmUwNWFkNTJjZDI5N2UgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmNcbkBAIC02ODUsMTAgJiM0Mzs2ODUsMjIgQEAgc3RhdGljIGludCBteGw4NjJ4eF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4gXHRpZiAocmV0KVxuIFx0XHRyZXR1cm4gcmV0O1xuIFxuJiM0MztcdHJldCA9IG14bDg2Mnh4X3NldHVwX21kaW8oZHMpO1xuJiM0MztcdGlmIChyZXQpXG4mIzQzO1x0XHRyZXR1cm4gcmV0O1xuJiM0MztcbiBcdHNjaGVkdWxlX2RlbGF5ZWRfd29yayhcdTAwMjZwcml2LVx1MDAzZXN0YXRzX3dvcmssXG4gXHRcdFx0ICAgICAgTVhMODYyWFhfU1RBVFNfUE9MTF9JTlRFUlZBTCk7XG4gXG4tXHRyZXR1cm4gbXhsODYyeHhfc2V0dXBfbWRpbyhkcyk7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIG14bDg2Mnh4X3RlYXJkb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBteGw4NjJ4eF9wcml2ICpwcml2ID0gZHMtXHUwMDNlcHJpdjtcbiYjNDM7XG4mIzQzO1x0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4mIzQzO1x0ZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXN0YXRzX3dvcmspO1xuIH1cbiBcbiBzdGF0aWMgaW50IG14bDg2Mnh4X3BvcnRfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgYm9vbCBlbmFibGUpXG5AQCAtMjA0Nyw5ICYjNDM7MjA1OSw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X2dldF9zdGF0czY0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gXG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZwcml2LVx1MDAzZXBvcnRzW3BvcnRdLnN0YXRzX2xvY2spO1xuIFxuLVx0LyogVHJpZ2dlciBhIGZyZXNoIHBvbGwgc28gdGhlIG5leHQgcmVhZCBzZWVzIHVwLXRvLWRhdGUgY291bnRlcnMuXG4tXHQgKiBOby1vcCBpZiB0aGUgd29yayBpcyBhbHJlYWR5IHBlbmRpbmcsIHJ1bm5pbmcsIG9yIHRlYXJkb3duIHN0YXJ0ZWQuXG4tXHQgKi9cbiYjNDM7XHQvKiBUcmlnZ2VyIGEgZnJlc2ggcG9sbCBzbyB0aGUgbmV4dCByZWFkIHNlZXMgdXAtdG8tZGF0ZSBjb3VudGVycy4gKi9cbiBcdGlmICghdGVzdF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsIFx1MDAyNnByaXYtXHUwMDNlZmxhZ3MpKVxuIFx0XHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrLCAwKTtcbiB9XG5AQCAtMjA1Nyw2ICYjNDM7MjA2Nyw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X2dldF9zdGF0czY0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBteGw4NjJ4eF9zd2l0Y2hfb3BzID0ge1xuIFx0LmdldF90YWdfcHJvdG9jb2wgPSBteGw4NjJ4eF9nZXRfdGFnX3Byb3RvY29sLFxuIFx0LnNldHVwID0gbXhsODYyeHhfc2V0dXAsXG4mIzQzO1x0LnRlYXJkb3duID0gbXhsODYyeHhfdGVhcmRvd24sXG4gXHQucG9ydF9zZXR1cCA9IG14bDg2Mnh4X3BvcnRfc2V0dXAsXG4gXHQucG9ydF90ZWFyZG93biA9IG14bDg2Mnh4X3BvcnRfdGVhcmRvd24sXG4gXHQucGh5bGlua19nZXRfY2FwcyA9IG14bDg2Mnh4X3BoeWxpbmtfZ2V0X2NhcHMsXG5AQCAtMjEzMSw3ICYjNDM7MjE0Miw2IEBAIHN0YXRpYyBpbnQgbXhsODYyeHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuIFx0ZXJyID0gZHNhX3JlZ2lzdGVyX3N3aXRjaChkcyk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdHNldF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsIFx1MDAyNnByaXYtXHUwMDNlZmxhZ3MpO1xuLVx0XHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbiBcdFx0bXhsODYyeHhfaG9zdF9zaHV0ZG93bihwcml2KTtcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgTVhMODYyWFhfTUFYX1BPUlRTOyBpJiM0MzsmIzQzOylcbiBcdFx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlcG9ydHNbaV0uaG9zdF9mbG9vZF93b3JrKTtcbkBAIC0yMTUyLDcgJiM0MzsyMTYyLDYgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiBcdHByaXYgPSBkcy1cdTAwM2Vwcml2O1xuIFxuIFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4tXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbiBcbiBcdGRzYV91bnJlZ2lzdGVyX3N3aXRjaChkcyk7XG4gXG5AQCAtMjE4MSw3ICYjNDM7MjE5MCw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X3NodXRkb3duKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiBcdGRzYV9zd2l0Y2hfc2h1dGRvd24oZHMpO1xuIFxuIFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4tXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbiYjNDM7XHRkaXNhYmxlX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yayk7XG4gXG4gXHRteGw4NjJ4eF9ob3N0X3NodXRkb3duKHByaXYpO1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIGNoYW5nZXMgYXJlIHJlc3RyaWN0ZWQgdG8gdGhlIE1heExpbmVhciBNeEw4NjJ4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyIChkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYyksIGFkanVzdGluZyBzZXR1cCwgdGVhcmRvd24sIGFuZCB3b3JrIGNhbmNlbGxhdGlvbiBwYXRocy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgZGVkaWNhdGVkIHBoeXNpY2FsIGhhcmR3YXJlIChNYXhMaW5lYXIgTXhMODYyODIvTXhMODYyNTIgc3dpdGNoIGNoaXBzIGF0dGFjaGVkIHZpYSBNRElPIGFuZCBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlKSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDc3MzNmMGE0NDAzMmExNGNlYzA0NzcxMWU1Y2U4NTA0N2M4MjFkY2EKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IFNlcCAxMCAxNDo0ODoxMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jIGIvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMKaW5kZXggY2ZhN2UzZTI2OWEyOC4uZTA1YWQ1MmNkMjk3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMKQEAgLTY4NSwxMCAmIzQzOzY4NSwyMiBAQCBzdGF0aWMgaW50IG14bDg2Mnh4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCiYjNDM7CXJldCA9IG14bDg2Mnh4X3NldHVwX21kaW8oZHMpOwomIzQzOwlpZiAocmV0KQomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsKIAlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmFtcDtwcml2LSZndDtzdGF0c193b3JrLAogCQkJICAgICAgTVhMODYyWFhfU1RBVFNfUE9MTF9JTlRFUlZBTCk7CiAKLQlyZXR1cm4gbXhsODYyeHhfc2V0dXBfbWRpbyhkcyk7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgdm9pZCBteGw4NjJ4eF90ZWFyZG93bihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgbXhsODYyeHhfcHJpdiAqcHJpdiA9IGRzLSZndDtwcml2OwomIzQzOwomIzQzOwlzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCAmYW1wO3ByaXYtJmd0O2ZsYWdzKTsKJiM0MzsJZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYygmYW1wO3ByaXYtJmd0O3N0YXRzX3dvcmspOwogfQogCiBzdGF0aWMgaW50IG14bDg2Mnh4X3BvcnRfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgYm9vbCBlbmFibGUpCkBAIC0yMDQ3LDkgJiM0MzsyMDU5LDcgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfZ2V0X3N0YXRzNjQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAogCXNwaW5fdW5sb2NrX2JoKCZhbXA7cHJpdi0mZ3Q7cG9ydHNbcG9ydF0uc3RhdHNfbG9jayk7CiAKLQkvKiBUcmlnZ2VyIGEgZnJlc2ggcG9sbCBzbyB0aGUgbmV4dCByZWFkIHNlZXMgdXAtdG8tZGF0ZSBjb3VudGVycy4KLQkgKiBOby1vcCBpZiB0aGUgd29yayBpcyBhbHJlYWR5IHBlbmRpbmcsIHJ1bm5pbmcsIG9yIHRlYXJkb3duIHN0YXJ0ZWQuCi0JICovCiYjNDM7CS8qIFRyaWdnZXIgYSBmcmVzaCBwb2xsIHNvIHRoZSBuZXh0IHJlYWQgc2VlcyB1cC10by1kYXRlIGNvdW50ZXJzLiAqLwogCWlmICghdGVzdF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsICZhbXA7cHJpdi0mZ3Q7ZmxhZ3MpKQogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmFtcDtwcml2LSZndDtzdGF0c193b3JrLCAwKTsKIH0KQEAgLTIwNTcsNiAmIzQzOzIwNjcsNyBAQCBzdGF0aWMgdm9pZCBteGw4NjJ4eF9nZXRfc3RhdHM2NChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBteGw4NjJ4eF9zd2l0Y2hfb3BzID0gewogCS5nZXRfdGFnX3Byb3RvY29sID0gbXhsODYyeHhfZ2V0X3RhZ19wcm90b2NvbCwKIAkuc2V0dXAgPSBteGw4NjJ4eF9zZXR1cCwKJiM0MzsJLnRlYXJkb3duID0gbXhsODYyeHhfdGVhcmRvd24sCiAJLnBvcnRfc2V0dXAgPSBteGw4NjJ4eF9wb3J0X3NldHVwLAogCS5wb3J0X3RlYXJkb3duID0gbXhsODYyeHhfcG9ydF90ZWFyZG93biwKIAkucGh5bGlua19nZXRfY2FwcyA9IG14bDg2Mnh4X3BoeWxpbmtfZ2V0X2NhcHMsCkBAIC0yMTMxLDcgJiM0MzsyMTQyLDYgQEAgc3RhdGljIGludCBteGw4NjJ4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpCiAJZXJyID0gZHNhX3JlZ2lzdGVyX3N3aXRjaChkcyk7CiAJaWYgKGVycikgewogCQlzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCAmYW1wO3ByaXYtJmd0O2ZsYWdzKTsKLQkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZhbXA7cHJpdi0mZ3Q7c3RhdHNfd29yayk7CiAJCW14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7CiAJCWZvciAoaSA9IDA7IGkgJmx0OyBNWEw4NjJYWF9NQVhfUE9SVFM7IGkmIzQzOyYjNDM7KQogCQkJY2FuY2VsX3dvcmtfc3luYygmYW1wO3ByaXYtJmd0O3BvcnRzW2ldLmhvc3RfZmxvb2Rfd29yayk7CkBAIC0yMTUyLDcgJiM0MzsyMTYyLDYgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldikKIAlwcml2ID0gZHMtJmd0O3ByaXY7CiAKIAlzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCAmYW1wO3ByaXYtJmd0O2ZsYWdzKTsKLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDtzdGF0c193b3JrKTsKIAogCWRzYV91bnJlZ2lzdGVyX3N3aXRjaChkcyk7CiAKQEAgLTIxODEsNyAmIzQzOzIxOTAsNyBAQCBzdGF0aWMgdm9pZCBteGw4NjJ4eF9zaHV0ZG93bihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpCiAJZHNhX3N3aXRjaF9zaHV0ZG93bihkcyk7CiAKIAlzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCAmYW1wO3ByaXYtJmd0O2ZsYWdzKTsKLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDtzdGF0c193b3JrKTsKJiM0MzsJZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYygmYW1wO3ByaXYtJmd0O3N0YXRzX3dvcmspOwogCiAJbXhsODYyeHhfaG9zdF9zaHV0ZG93bihwcml2KTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODQzCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGFzc2Vzc21lbnQgb2YgdGhpcyBwYXRjaCwgYXBwcm9hY2hlZCBhcyBJIHdvdWxkLgoKKipBbmFseXppbmcgYSBEU0EgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSBmaXJzdCB0aGluZyBJJiMzOTttIGRvaW5nIGlzIHNpemluZyB1cCB0aGlzIHBhdGNoIHRvIHNlZSBpZiBpdCYjMzk7cyBldmVuIHdvcnRoIGZ1enppbmcsIGFuZCBpZiBzbywgd2hhdCBraW5kIG9mIGVmZm9ydCBhbmQgY29uZmlndXJhdGlvbiB3ZSYjMzk7cmUgbG9va2luZyBhdC4KCk15IGluaXRpYWwgc2NhbiB0ZWxscyBtZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgbW9kaWZpZWQgZmlsZTogYGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBhIERTQSBkcml2ZXIsIGFuZCBtb3JlIHNwZWNpZmljYWxseSwgaXQmIzM5O3MgdGllZCB0byBhIE1heExpbmVhciBNWEw4NjJ4eCBFdGhlcm5ldCBzd2l0Y2guIFRoYXQmIzM5O3MgYSBzb2xpZCBzdGFydGluZyBwb2ludC4gRFNBIGRyaXZlcnMgYXJlIG9mdGVuIGp1aWN5IHRhcmdldHMgZm9yIGZ1enppbmcsIGdpdmVuIHRoZWlyIGludGVyYWN0aW9uIHdpdGggbmV0d29yayB0cmFmZmljIGFuZCBoYXJkd2FyZS4gTmV0d29yayBkcml2ZXJzIGFyZSBnZW5lcmFsbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4KCk15IG5leHQgc3RlcCwgYW5kIHRoaXMgaXMgd2hlcmUgSSYjMzk7ZCBsZXZlcmFnZSBzb21lIHF1aWNrIHRvb2xzLCBpcyB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGJpZ2dlciBwaWN0dXJlLiBJJiMzOTttIGhpdHRpbmcgYGdyZXBwZXJgIG9yIGByZWFkLWZpbGVgIHRvIGdyYWIgc29tZSBrZXkgY29udGV4dC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGhhcmR3YXJlIHR5cGUsIGJ1cyB0eXBlLCBhbmQgYW55IHJlbGV2YW50IEtjb25maWcgb3B0aW9ucy4gVGhpbmdzIGxpa2UgaWYgdGhpcyBkcml2ZXIgaXMgbW9kdWxhciwgd2hhdCBoYXJkd2FyZSBpdCBzdXBwb3J0cywgYW5kIGlmIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGFyZSBuZWNlc3NhcnkgdG8gZW5hYmxlIGl0IGFyZSBjcml0aWNhbC4gVGhpcyB0ZWxscyBtZSBpZiBJIG5lZWQgdG8gYnVpbGQgYSBzcGVjaWZpYyBrZXJuZWwgY29uZmlnIG9yIGlmIGEgZ2VuZXJpYyBvbmUgd2lsbCBzdWZmaWNlLiBTcGVjaWZpY2FsbHksIGZpbmRpbmcgb3V0IGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgcGFyYW1ldGVycyBJIGNhbiBmZWVkIHRvIGEgZnV6emVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkVUX0RTQV9NWEw4NjJYWCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMTQ6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMxNwoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIE5ldHdvcmsgRGV2aWNlIERyaXZlciBCdWlsZCBQcm9jZXNzKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBkcml2ZXJzIGFyZSBiZWluZyBidWlsdCBhbmQgaW5jbHVkZWQuIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiB0aGUgY29udGV4dCwgaXMgdG8gbG9vayBhdCB0aGUgcmVsZXZhbnQgS2NvbmZpZyBhbmQgTWFrZWZpbGUgZmlsZXMuIFRoZSBsaWtlbHkgcGxhY2VzIHRvIHN0YXJ0IGFyZSB1bmRlciB0aGUgYGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9gIGRpcmVjdG9yeSwgc3BlY2lmaWNhbGx5IHNpbmNlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBjaGlwLiBIb3dldmVyLCBzaW5jZSBJJiMzOTttIHRyeWluZyB0byBnZXQgYSBicm9hZGVyIHVuZGVyc3RhbmRpbmcsIEkmIzM5O2xsIGFsc28gZ2xhbmNlIGF0IGBkcml2ZXJzL25ldC9kc2EvYCBtb3JlIGdlbmVyYWxseSwganVzdCBpbiBjYXNlIHRoZXJlJiMzOTtzIHNvbWUgc2hhcmVkIGNvbmZpZ3VyYXRpb24gb3IgaW5jbHVkZS4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGdvb2QgaGFuZGxlIG9uIGhvdyB0aGUgYnVpbGQgc3lzdGVtIGlzIG1hbmFnaW5nIHRoaXMgbmV0d29yayBkZXZpY2UgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O214bDg2Mnh4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMTIwIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZz04NT1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZy04Ni1cbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnOjg3OnNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvZHNhL0tjb25maWctODgtXG4tLVxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIzPW9iai15XHRcdFx0XHQmIzQzOz0gbXY4OGU2eHh4L1xuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlOjI0Om9iai15XHRcdFx0XHQmIzQzOz0gbXhsODYyeHgvXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGUtMjUtb2JqLXlcdFx0XHRcdCYjNDM7PSBuZXRjL1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19ORVRfRFNBX01YTDg2MikgJiM0Mzs9IG14bDg2Mnh4X2RzYS5vXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvTWFrZWZpbGU6MzpteGw4NjJ4eF9kc2EteSA6PSBteGw4NjJ4eC5vIG14bDg2Mnh4LWhvc3QubyBteGw4NjJ4eC1waHlsaW5rLm9cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg9MTY9c3RydWN0IG1kaW9fcmVsYXlfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIzLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjI0OiAqIHN0cnVjdCBteGw4NjJ4eF9yZWdpc3Rlcl9tb2QgLSBSZWdpc3RlciBhY2Nlc3MgcGFyYW1ldGVyIHRvIGRpcmVjdGx5XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjUtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmeSBpbnRlcm5hbCByZWdpc3RlcnNcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzEtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzI6c3RydWN0IG14bDg2Mnh4X3JlZ2lzdGVyX21vZCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzMtXHRfX2xlMTYgYWRkcjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzgtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzk6ICogZW51bSBteGw4NjJ4eF9tYWNfdGFibGVfZmlsdGVyIC0gU291cmNlL0Rlc3RpbmF0aW9uIE1BQyBhZGRyZXNzIGZpbHRlcmluZ1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTQwLSAqXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTQ1LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjQ2OmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlciB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDctXHRNWEw4NjJYWF9NQUNfRklMVEVSX05PTkUgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NTogKiBzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX2FkZCAtIE1BQyBUYWJsZSBFbnRyeSB0byBiZSBhZGRlZFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY2LSAqIEBmaWQ6IEZpbHRlcmluZyBJZGVudGlmaWVyIChGSUQpIChub3Qgc3VwcG9ydGVkIGJ5IGFsbCBzd2l0Y2hlcylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzQtICogQG1hYzogTUFDIEFkZHJlc3MgdG8gYWRkIHRvIHRoZSB0YWJsZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc1OiAqIEBmaWx0ZXJfZmxhZzogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2LSAqIEBpZ21wX2NvbnRyb2xsZWQ6IFBhY2tldCBpcyBtYXJrZWQgYXMgSUdNUCBjb250cm9sbGVkIGlmIGRlc3RpbmF0aW9uIE1BQ1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04My0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4NDpzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX2FkZCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODUtXHRfX2xlMTYgZmlkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDAtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTAxOiAqIHN0cnVjdCBteGw4NjJ4eF9tYWNfdGFibGVfcmVtb3ZlIC0gTUFDIFRhYmxlIEVudHJ5IHRvIGJlIHJlbW92ZWRcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDItICogQGZpZDogRmlsdGVyaW5nIElkZW50aWZpZXIgKEZJRClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDMtICogQG1hYzogTUFDIEFkZHJlc3MgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZS5cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDQ6ICogQGZpbHRlcl9mbGFnOiBTZWUgXHUwMDI2ZW51bSBteGw4NjJ4eF9tYWNfdGFibGVfZmlsdGVyXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA1LSAqIEB0Y2k6IFRDSSBmb3IgQi1TdGVwXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwOS0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTA6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9yZW1vdmUge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMS1cdF9fbGUxNiBmaWQ7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExNy0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTg6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9yZWFkIC0gTUFDIFRhYmxlIEVudHJ5IHRvIGJlIHJlYWRcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTktICogQGluaXRpYWw6IFJlc3RhcnQgdGhlIGdldCBvcGVyYXRpb24gZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0YWJsZVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMjgtICogQG1hYzogTUFDIEFkZHJlc3MuIEZpbGxlZCBvdXQgYnkgdGhlIHN3aXRjaCBBUEkgaW1wbGVtZW50YXRpb24uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTI5OiAqIEBmaWx0ZXJfZmxhZzogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEzMC0gKiBAaWdtcF9jb250cm9sbGVkOiBQYWNrZXQgaXMgbWFya2VkIGFzIElHTVAgY29udHJvbGxlZCBpZiBkZXN0aW5hdGlvbiBNQUNcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTQxLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjE0MjpzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX3JlYWQge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE0My1cdHU4IGluaXRpYWw7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE2Mi0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxNjM6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9xdWVyeSAtIE1BQyBUYWJsZSBFbnRyeSBrZXktYmFzZWQgbG9va3VwXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTY0LSAqIEBtYWM6IE1BQyBBZGRyZXNzIHRvIHNlYXJjaCBmb3IgKGlucHV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xNzItICogQHN0YXRpY19lbnRyeTogSW5kaWNhdGVzIGlmIHRoaXMgaXMgYSBTdGF0aWMgRW50cnlcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxNzM6ICogQGZpbHRlcl9mbGFnOiBTZWUgXHUwMDI2ZW51bSBteGw4NjJ4eF9tYWNfdGFibGVfZmlsdGVyIChpbnB1dCYjNDM7b3V0cHV0KVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE3NC0gKiBAaWdtcF9jb250cm9sbGVkOiBJR01QIGNvbnRyb2xsZWQgZmxhZ1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xODAtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTgxOnN0cnVjdCBteGw4NjJ4eF9tYWNfdGFibGVfcXVlcnkge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE4Mi1cdHU4IG1hY1tFVEhfQUxFTl07XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIwMC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMDE6ICogZW51bSBteGw4NjJ4eF9tYWNfY2xlYXJfdHlwZSAtIE1BQyB0YWJsZSBjbGVhciB0eXBlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjAyLSAqIEBNWEw4NjJYWF9NQUNfQ0xFQVJfUEhZX1BPUlQ6IGNsZWFyIGR5bmFtaWMgZW50cmllcyBiYXNlZCBvbiBwb3J0X2lkXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIwNC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMDU6ZW51bSBteGw4NjJ4eF9tYWNfY2xlYXJfdHlwZSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjA2LVx0TVhMODYyWFhfTUFDX0NMRUFSX1BIWV9QT1JUID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjEwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIxMTogKiBzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX2NsZWFyIC0gTUFDIHRhYmxlIGNsZWFyXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjEyOiAqIEB0eXBlOiBzZWUgXHUwMDI2ZW51bSBteGw4NjJ4eF9tYWNfY2xlYXJfdHlwZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIxMy0gKiBAcG9ydF9pZDogcGh5c2ljYWwgcG9ydCBpZFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIxNC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMTU6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9jbGVhciB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjE2LVx0dTggdHlwZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjIwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIyMTogKiBlbnVtIG14bDg2Mnh4X2FnZV90aW1lciAtIEFnaW5nIFRpbWVyIFZhbHVlLlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIyMi0gKiBATVhMODYyWFhfQUdFVElNRVJfMV9TRUM6IDEgc2Vjb25kIGFnaW5nIHRpbWVcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjI4LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIyOTplbnVtIG14bDg2Mnh4X2FnZV90aW1lciB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjMwLVx0TVhMODYyWFhfQUdFVElNRVJfMV9TRUMgPSAxLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMzgtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjM5OiAqIHN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfYWxsb2MgLSBCcmlkZ2UgQWxsb2NhdGlvblxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI0MC0gKiBAYnJpZGdlX2lkOiBJZiB0aGUgYnJpZGdlIGFsbG9jYXRpb24gaXMgc3VjY2Vzc2Z1bCwgYSB2YWxpZCBJRCB3aWxsIGJlXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI0Ny0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNDg6c3RydWN0IG14bDg2Mnh4X2JyaWRnZV9hbGxvYyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjQ5LVx0X19sZTE2IGJyaWRnZV9pZDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjUyLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjI1MzogKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9jb25maWdfbWFzayAtIEJyaWRnZSBjb25maWd1cmF0aW9uIG1hc2tcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNTQtICogQE1YTDg2MlhYX0JSSURHRV9DT05GSUdfTUFTS19NQUNfTEVBUk5JTkdfTElNSVQ6XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI2Ny0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNjg6ZW51bSBteGw4NjJ4eF9icmlkZ2VfY29uZmlnX21hc2sge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI2OS1cdE1YTDg2MlhYX0JSSURHRV9DT05GSUdfTUFTS19NQUNfTEVBUk5JTkdfTElNSVQgPSBCSVQoMCksXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI3OC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNzk6ICogZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9lZ3Jlc3NfbWV0ZXIgLSBNZXRlcnMgZm9yIGVncmVzcyB0cmFmZmljIHR5cGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yODAtICogQE1YTDg2MlhYX0JSSURHRV9QT1JUX0VHUkVTU19NRVRFUl9CUk9BRENBU1Q6XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI5My0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyOTQ6ZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9lZ3Jlc3NfbWV0ZXIge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI5NS1cdE1YTDg2MlhYX0JSSURHRV9QT1JUX0VHUkVTU19NRVRFUl9CUk9BRENBU1QgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zMDQtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzA1OiAqIHN0cnVjdCBteGw4NjJ4eF9xb3NfbWV0ZXJfY2ZnIC0gUmF0ZSBtZXRlciBjb25maWd1cmF0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzA2LSAqIEBlbmFibGU6IEVuYWJsZS9kaXNhYmxlIG1ldGVyXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTMyMC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozMjE6c3RydWN0IG14bDg2Mnh4X3Fvc19tZXRlcl9jZmcge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTMyMi1cdHU4IGVuYWJsZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzM4LS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjMzOTogKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGUgLSBCcmlkZ2UgZm9yd2FyZGluZyB0eXBlIG9mIHBhY2tldFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM0MC0gKiBATVhMODYyWFhfQlJJREdFX0ZPUldBUkRfRkxPT0Q6IFBhY2tldCBpcyBmbG9vZGVkIHRvIHBvcnQgbWVtYmVycyBvZlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNDMtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzQ0OmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzQ1LVx0TVhMODYyWFhfQlJJREdFX0ZPUldBUkRfRkxPT0QgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNDktLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzUwOiAqIHN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfY29uZmlnIC0gQnJpZGdlIENvbmZpZ3VyYXRpb25cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNTEtICogQGJyaWRnZV9pZDogQnJpZGdlIElEIChGSUQpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzUyOiAqIEBtYXNrOiBTZWUgXHUwMDI2ZW51bSBteGw4NjJ4eF9icmlkZ2VfY29uZmlnX21hc2tcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNTMtICogQG1hY19sZWFybmluZ19saW1pdF9lbmFibGU6IEVuYWJsZSBNQUMgbGVhcm5pbmcgbGltaXRhdGlvblxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNjMtICogQGZvcndhcmRfYnJvYWRjYXN0OiBGb3J3YXJkaW5nIG1vZGUgb2YgYnJvYWRjYXN0IHRyYWZmaWMuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM2NDogKiAgICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2NS0gKiBAZm9yd2FyZF91bmtub3duX211bHRpY2FzdF9pcDogRm9yd2FyZGluZyBtb2RlIG9mIHVua25vd24gbXVsdGljYXN0IElQXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzY2LSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFmZmljLlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM2NzogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2OC0gKiBAZm9yd2FyZF91bmtub3duX211bHRpY2FzdF9ub25faXA6IEZvcndhcmRpbmcgbW9kZSBvZiB1bmtub3duIG11bHRpY2FzdFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2OS0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbi1JUCB0cmFmZmljLlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM3MDogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNzEtICogQGZvcndhcmRfdW5rbm93bl91bmljYXN0OiBGb3J3YXJkaW5nIG1vZGUgb2YgdW5rbm93biB1bmljYXN0IHRyYWZmaWMuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM3MjogKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM3My0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozNzQ6c3RydWN0IG14bDg2Mnh4X2JyaWRnZV9jb25maWcge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM3NS1cdF9fbGUxNiBicmlkZ2VfaWQ7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzc2Olx0X19sZTMyIG1hc2s7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2NvbmZpZ19tYXNrICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzc3LVx0dTggbWFjX2xlYXJuaW5nX2xpbWl0X2VuYWJsZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzgyLVx0X19sZTE2IHRyYWZmaWNfc3ViX21ldGVyX2lkW01YTDg2MlhYX0JSSURHRV9QT1JUX0VHUkVTU19NRVRFUl9NQVhdO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM4MzpcdF9fbGUzMiBmb3J3YXJkX2Jyb2FkY2FzdDsgLyogZW51bSBteGw4NjJ4eF9icmlkZ2VfZm9yd2FyZF9tb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzg0Olx0X19sZTMyIGZvcndhcmRfdW5rbm93bl9tdWx0aWNhc3RfaXA7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM4NTpcdF9fbGUzMiBmb3J3YXJkX3Vua25vd25fbXVsdGljYXN0X25vbl9pcDsgLyogZW51bSBteGw4NjJ4eF9icmlkZ2VfZm9yd2FyZF9tb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzg2Olx0X19sZTMyIGZvcndhcmRfdW5rbm93bl91bmljYXN0OyAvKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zODctfSBfX3BhY2tlZDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzg5LS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM5MDogKiBzdHJ1Y3QgbXhsODYyeHhfYnJpZGdlX3BvcnRfYWxsb2MgLSBCcmlkZ2UgUG9ydCBBbGxvY2F0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzkxLSAqIEBicmlkZ2VfcG9ydF9pZDogSWYgdGhlIGJyaWRnZSBwb3J0IGFsbG9jYXRpb24gaXMgc3VjY2Vzc2Z1bCwgYSB2YWxpZCBJRFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zOTctICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzk4OnN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfcG9ydF9hbGxvYyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzk5LVx0X19sZTE2IGJyaWRnZV9wb3J0X2lkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00MDItLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NDAzOiAqIGVudW0gbXhsODYyeHhfYnJpZGdlX3BvcnRfY29uZmlnX21hc2sgLSBCcmlkZ2UgUG9ydCBjb25maWd1cmF0aW9uIG1hc2tcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00MDQtICogQE1YTDg2MlhYX0JSSURHRV9QT1JUX0NPTkZJR19NQVNLX0JSSURHRV9JRDpcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDYyLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjQ2MzplbnVtIG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZ19tYXNrIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00NjQtXHRNWEw4NjJYWF9CUklER0VfUE9SVF9DT05GSUdfTUFTS19CUklER0VfSUQgPSBCSVQoMCksXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTQ5MS0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo0OTI6ICogZW51bSBteGw4NjJ4eF9jb2xvcl9tYXJraW5nX21vZGUgLSBDb2xvciBNYXJraW5nIE1vZGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00OTMtICogQE1YTDg2MlhYX01BUktJTkdfQUxMX0dSRUVOOiBtYXJrIHBhY2tldHMgKGV4Y2VwdCBjcml0aWNhbCkgdG8gZ3JlZW5cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTAxLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjUwMjplbnVtIG14bDg2Mnh4X2NvbG9yX21hcmtpbmdfbW9kZSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTAzLVx0TVhMODYyWFhfTUFSS0lOR19BTExfR1JFRU4gPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01MTMtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTE0OiAqIGVudW0gbXhsODYyeHhfY29sb3JfcmVtYXJraW5nX21vZGUgLSBDb2xvciBSZW1hcmtpbmcgTW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUxNS0gKiBATVhMODYyWFhfUkVNQVJLSU5HX05PTkU6IHZhbHVlcyBmcm9tIGxhc3QgcHJvY2VzcyBzdGFnZVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01MjItICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTIzOmVudW0gbXhsODYyeHhfY29sb3JfcmVtYXJraW5nX21vZGUge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUyNC1cdE1YTDg2MlhYX1JFTUFSS0lOR19OT05FID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTMzLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjUzNDogKiBlbnVtIG14bDg2Mnh4X3BtYXBwZXJfbWFwcGluZ19tb2RlIC0gUC1tYXBwZXIgTWFwcGluZyBNb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTM1LSAqIEBNWEw4NjJYWF9QTUFQUEVSX01BUFBJTkdfUENQOiBVc2UgUENQIGZvciBWTEFOIHRhZ2dlZCBwYWNrZXRzIHRvIGRlcml2ZVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NDEtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTQyOmVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGUge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU0My1cdE1YTDg2MlhYX1BNQVBQRVJfTUFQUElOR19QQ1AgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NDgtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTQ5OiAqIHN0cnVjdCBteGw4NjJ4eF9wbWFwcGVyIC0gUC1tYXBwZXIgQ29uZmlndXJhdGlvblxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU1MC0gKiBAcG1hcHBlcl9pZDogSW5kZXggb2YgUC1tYXBwZXIgKDAtMzEpXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU2MC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1NjE6c3RydWN0IG14bDg2Mnh4X3BtYXBwZXIge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU2Mi1cdF9fbGUxNiBwbWFwcGVyX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NjYtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTY3OiAqIHN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfcG9ydF9jb25maWcgLSBCcmlkZ2UgUG9ydCBDb25maWd1cmF0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTY4LSAqIEBicmlkZ2VfcG9ydF9pZDogQnJpZGdlIFBvcnQgSUQgYWxsb2NhdGVkIGJ5IGJyaWRnZSBwb3J0IGFsbG9jYXRpb25cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1Njk6ICogQG1hc2s6IFNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZ19tYXNrXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTcwLSAqIEBicmlkZ2VfaWQ6IEJyaWRnZSBJRCAoRklEKSB0byB3aGljaCB0aGlzIGJyaWRnZSBwb3J0IGlzIGFzc29jaWF0ZWRcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTgzLSAqIEBpbmdyZXNzX21hcmtpbmdfbW9kZTogSW5ncmVzcyBjb2xvciBtYXJraW5nIG1vZGUuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU4NDogKiAgICAgICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfY29sb3JfbWFya2luZ19tb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTg1LSAqIEBlZ3Jlc3NfcmVtYXJraW5nX21vZGU6IENvbG9yIHJlbWFya2luZyBmb3IgZWdyZXNzIHRyYWZmaWMuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU4NjogKiAgICAgICAgICAgICAgICAgICAgICAgICBcdTAwMjZlbnVtIG14bDg2Mnh4X2NvbG9yX3JlbWFya2luZ19tb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTg3LSAqIEBpbmdyZXNzX21ldGVyaW5nX2VuYWJsZTogVHJhZmZpYyBtZXRlcmluZyBvbiBpbmdyZXNzIHRyYWZmaWMgYXBwbGllc1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01OTctICogQHBtYXBwZXJfbWFwcGluZ19tb2RlOiBQLW1hcHBlciBtYXBwaW5nIG1vZGUuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU5ODogKiAgICAgICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01OTktICogQHBtYXBwZXJfaWRfdmFsaWQ6IFdoZW4gdHJ1ZSwgUC1tYXBwZXIgaXMgcmUtdXNlZDsgd2hlbiBmYWxzZSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjUzLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjY1NDpzdHJ1Y3QgbXhsODYyeHhfYnJpZGdlX3BvcnRfY29uZmlnIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NTUtXHRfX2xlMTYgYnJpZGdlX3BvcnRfaWQ7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NjU2Olx0X19sZTMyIG1hc2s7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX3BvcnRfY29uZmlnX21hc2sgKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NTctXHRfX2xlMTYgYnJpZGdlX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NjMtXHRfX2xlMTYgZWdyZXNzX2V4dGVuZGVkX3ZsYW5fYmxvY2tfc2l6ZTtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NjQ6XHRfX2xlMzIgaW5ncmVzc19tYXJraW5nX21vZGU7IC8qIGVudW0gbXhsODYyeHhfY29sb3JfbWFya2luZ19tb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NjY1Olx0X19sZTMyIGVncmVzc19yZW1hcmtpbmdfbW9kZTsgLyogZW51bSBteGw4NjJ4eF9jb2xvcl9yZW1hcmtpbmdfbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY2Ni1cdHU4IGluZ3Jlc3NfbWV0ZXJpbmdfZW5hYmxlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NzItXHRfX2xlMTYgZGVzdF9zdWJfaWZfaWRfZ3JvdXA7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NjczOlx0X19sZTMyIHBtYXBwZXJfbWFwcGluZ19tb2RlOyAvKiBlbnVtIG14bDg2Mnh4X3BtYXBwZXJfbWFwcGluZ19tb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjc0LVx0dTggcG1hcHBlcl9pZF92YWxpZDtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NzU6XHRzdHJ1Y3QgbXhsODYyeHhfcG1hcHBlciBwbWFwcGVyO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY3Ni1cdF9fbGUxNiBicmlkZ2VfcG9ydF9tYXBbOF07XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTcwOS0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MTA6ICogc3RydWN0IG14bDg2Mnh4X2NmZyAtICBHbG9iYWwgU3dpdGNoIGNvbmZpZ3VyYXRpb24gQXR0cmlidXRlc1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjcxMTogKiBAbWFjX3RhYmxlX2FnZV90aW1lcjogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfYWdlX3RpbWVyXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzEyLSAqIEBhZ2VfdGltZXI6IEN1c3RvbSBNQUMgdGFibGUgYWdpbmcgdGltZXIgaW4gc2Vjb25kc1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03MjItICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzIzOnN0cnVjdCBteGw4NjJ4eF9jZmcge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjcyNDpcdF9fbGUzMiBtYWNfdGFibGVfYWdlX3RpbWVyOyAvKiBlbnVtIG14bDg2Mnh4X2FnZV90aW1lciAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTcyNS1cdF9fbGUzMiBhZ2VfdGltZXI7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTczNC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MzU6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl90eXBlIC0gRXh0ZW5kZWQgVkxBTiBmaWx0ZXIgdGFnIHR5cGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03MzYtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfVFlQRV9OT1JNQUw6IE5vcm1hbCB0YWdnZWRcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzQwLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc0MTplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3R5cGUge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc0Mi1cdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfVFlQRV9OT1JNQUwgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NDgtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzQ5OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfdHBpZCAtIEV4dGVuZGVkIFZMQU4gZmlsdGVyIFRQSURcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NTAtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfVFBJRF9OT19GSUxURVI6IE5vIFRQSUQgZmlsdGVyXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc1My0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3NTQ6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl90cGlkIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NTUtXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX1RQSURfTk9fRklMVEVSID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzYwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc2MTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2RlaSAtIEV4dGVuZGVkIFZMQU4gZmlsdGVyIERFSVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2Mi0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9ERUlfTk9fRklMVEVSOiBObyBERUkgZmlsdGVyXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2NS0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3NjY6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl9kZWkge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2Ny1cdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfREVJX05PX0ZJTFRFUiA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc3Mi0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3NzM6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9yZW1vdmVfdGFnIC0gVGFnIHJlbW92YWwgYWN0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzc0LSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX05PVF9SRU1PVkVfVEFHOiBEbyBub3QgcmVtb3ZlIHRhZ1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NzgtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Nzc5OmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcmVtb3ZlX3RhZyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzgwLVx0TVhMODYyWFhfRVhURU5ERURWTEFOX1RSRUFUTUVOVF9OT1RfUkVNT1ZFX1RBRyA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc4Ni0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3ODc6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9wcmlvcml0eSAtIFRyZWF0bWVudCBwcmlvcml0eSBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzg4LSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX1BSSU9SSVRZX1ZBTDogVXNlIGV4cGxpY2l0IHZhbHVlXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc5Mi0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3OTM6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9wcmlvcml0eSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzk0LVx0TVhMODYyWFhfRVhURU5ERURWTEFOX1RSRUFUTUVOVF9QUklPUklUWV9WQUwgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MDAtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODAxOiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfdmlkIC0gVHJlYXRtZW50IFZJRCBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODAyLSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX1ZJRF9WQUw6IFVzZSBleHBsaWNpdCBWSUQgdmFsdWVcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODA1LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgwNjplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ZpZCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODA3LVx0TVhMODYyWFhfRVhURU5ERURWTEFOX1RSRUFUTUVOVF9WSURfVkFMID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODEyLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgxMzogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3RwaWQgLSBUcmVhdG1lbnQgVFBJRCBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODE0LSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX0lOTkVSX1RQSUQ6IENvcHkgZnJvbSBpbm5lciB0YWdcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODE4LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgxOTplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3RwaWQge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyMC1cdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfSU5ORVJfVFBJRCA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyNi0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4Mjc6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9kZWkgLSBUcmVhdG1lbnQgREVJIG1vZGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MjgtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfSU5ORVJfREVJOiBDb3B5IGZyb20gaW5uZXIgdGFnXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgzMi0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4MzM6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9kZWkge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgzNC1cdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfSU5ORVJfREVJID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODQwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg0MTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fNF90cGlkX21vZGUgLSA0LVRQSUQgbW9kZSBzZWxlY3RvclxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg0Mi0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX1RQSURfVlRFVFlQRV8xOiBWTEFOIFRQSUQgdHlwZSAxXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg0Ni0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4NDc6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuXzRfdHBpZF9tb2RlIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NDgtXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFBJRF9WVEVUWVBFXzEgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NTQtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODU1OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfZXRoZXJ0eXBlIC0gRmlsdGVyIEV0aGVyVHlwZSBtYXRjaFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg1Ni0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9FVEhFUlRZUEVfTk9fRklMVEVSOiBObyBmaWx0ZXJcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODY0LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg2NTplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2V0aGVydHlwZSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODY2LVx0TVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9FVEhFUlRZUEVfTk9fRklMVEVSID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODc2LS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg3NzogKiBzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX2ZpbHRlcl92bGFuIC0gUGVyLXRhZyBmaWx0ZXIgaW4gRXh0ZW5kZWQgVkxBTlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg3ODogKiBAdHlwZTogVGFnIHByZXNlbmNlL3R5cGUgbWF0Y2ggKHNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3R5cGUpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODc5LSAqIEBwcmlvcml0eV9lbmFibGU6IEVuYWJsZSBQQ1AgdmFsdWUgbWF0Y2hpbmdcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODgyLSAqIEB2aWRfdmFsOiBWSUQgdmFsdWUgdG8gbWF0Y2hcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4ODM6ICogQHRwaWQ6IFRQSUQgbWF0Y2ggbW9kZSAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfdHBpZClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4ODQ6ICogQGRlaTogREVJIG1hdGNoIG1vZGUgKHNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2RlaSlcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04ODUtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODg2OnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4ge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg4Ny1cdF9fbGUzMiB0eXBlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04OTYtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODk3OiAqIHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyIC0gRXh0ZW5kZWQgVkxBTiBmaWx0ZXIgY29uZmlndXJhdGlvblxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg5OC0gKiBAb3JpZ2luYWxfcGFja2V0X2ZpbHRlcl9tb2RlOiBJZiB0cnVlLCBmaWx0ZXIgb24gb3JpZ2luYWwgKHByZS10cmVhdG1lbnQpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODk5LSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2tldFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkwMDogKiBAZmlsdGVyXzRfdHBpZF9tb2RlOiA0LVRQSUQgbW9kZSAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl80X3RwaWRfbW9kZSlcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDEtICogQG91dGVyX3ZsYW46IE91dGVyIFZMQU4gdGFnIGZpbHRlclxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDMtICogQGV0aGVyX3R5cGU6IEV0aGVyVHlwZSBmaWx0ZXIgKHNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkwNDogKiAgICAgICAgICAgICAgXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl9ldGhlcnR5cGUpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTA1LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkwNjpzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX2ZpbHRlciB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTA3LVx0dTggb3JpZ2luYWxfcGFja2V0X2ZpbHRlcl9tb2RlO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkwOC1cdF9fbGUzMiBmaWx0ZXJfNF90cGlkX21vZGU7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTA5Olx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXJfdmxhbiBvdXRlcl92bGFuO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkxMDpcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4gaW5uZXJfdmxhbjtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTEtXHRfX2xlMzIgZXRoZXJfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTE0LS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkxNTogKiBzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX3RyZWF0bWVudF92bGFuIC0gUGVyLXRhZyB0cmVhdG1lbnQgaW5cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTYtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVuZGVkIFZMQU5cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTctICogQHByaW9yaXR5X21vZGU6IFByaW9yaXR5IGFzc2lnbm1lbnQgbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkxODogKiAgICAgICAgICAgICAgICAgKHNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ByaW9yaXR5KVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkxOS0gKiBAcHJpb3JpdHlfdmFsOiBQcmlvcml0eSB2YWx1ZSAod2hlbiBtb2RlIGlzIFZBTClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjAtICogQHZpZF9tb2RlOiBWSUQgYXNzaWdubWVudCBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTIxOiAqICAgICAgICAgICAgKHNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ZpZClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjItICogQHZpZF92YWw6IFZJRCB2YWx1ZSAod2hlbiBtb2RlIGlzIFZBTClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjMtICogQHRwaWQ6IFRQSUQgYXNzaWdubWVudCBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTI0OiAqICAgICAgICAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfdHBpZClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjUtICogQGRlaTogREVJIGFzc2lnbm1lbnQgbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkyNjogKiAgICAgICAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfZGVpKVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkyNy0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5Mjg6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnRfdmxhbiB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTI5LVx0X19sZTMyIHByaW9yaXR5X21vZGU7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkzNy0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5Mzg6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnQgLSBFeHRlbmRlZCBWTEFOIHRyZWF0bWVudFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkzOS0gKiBAcmVtb3ZlX3RhZzogVGFnIHJlbW92YWwgYWN0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTQwOiAqICAgICAgICAgICAgICAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcmVtb3ZlX3RhZylcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05NDEtICogQHRyZWF0bWVudF80X3RwaWRfbW9kZTogNC1UUElEIHRyZWF0bWVudCBtb2RlXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk1OC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5NTk6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnQge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk2MC1cdF9fbGUzMiByZW1vdmVfdGFnO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05NjItXHR1OCBhZGRfb3V0ZXJfdmxhbjtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5NjM6XHRzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX3RyZWF0bWVudF92bGFuIG91dGVyX3ZsYW47XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTY0LVx0dTggYWRkX2lubmVyX3ZsYW47XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTY1Olx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnRfdmxhbiBpbm5lcl92bGFuO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk2Ni1cdHU4IHJlYXNzaWduX2JyaWRnZV9wb3J0O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05ODAtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTgxOiAqIHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fYWxsb2MgLSBFeHRlbmRlZCBWTEFOIGJsb2NrIGFsbG9jYXRpb25cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05ODItICogQG51bWJlcl9vZl9lbnRyaWVzOiBOdW1iZXIgb2YgZW50cmllcyB0byBhbGxvY2F0ZSAoaW5wdXQpIC8gYWxsb2NhdGVkXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk4OC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5ODk6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9hbGxvYyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTkwLVx0X19sZTE2IG51bWJlcl9vZl9lbnRyaWVzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05OTQtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTk1OiAqIHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fY29uZmlnIC0gRXh0ZW5kZWQgVkxBTiBlbnRyeSBjb25maWd1cmF0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTk2LSAqIEBleHRlbmRlZF92bGFuX2Jsb2NrX2lkOiBCbG9jayBJRCBmcm9tIGFsbG9jYXRpb25cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwMi0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDAzOnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fY29uZmlnIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDA0LVx0X19sZTE2IGV4dGVuZGVkX3ZsYW5fYmxvY2tfaWQ7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwNS1cdF9fbGUxNiBlbnRyeV9pbmRleDtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDA2Olx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXIgZmlsdGVyO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMDc6XHRzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX3RyZWF0bWVudCB0cmVhdG1lbnQ7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwOC19IF9fcGFja2VkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDEwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMTE6ICogZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayAtIFZMQU4gRmlsdGVyIFRDSSBtYXNrXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAxMi0gKiBATVhMODYyWFhfVkxBTl9GSUxURVJfVENJX01BU0tfVklEOiBUQ0kgbWFzayBmb3IgVkxBTiBJRFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDE1LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMTY6ZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAxNy1cdE1YTDg2MlhYX1ZMQU5fRklMVEVSX1RDSV9NQVNLX1ZJRCA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMjItLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTAyMzogKiBzdHJ1Y3QgbXhsODYyeHhfdmxhbmZpbHRlcl9hbGxvYyAtIFZMQU4gRmlsdGVyIGJsb2NrIGFsbG9jYXRpb25cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDI0LSAqIEBudW1iZXJfb2ZfZW50cmllczogTnVtYmVyIG9mIGVudHJpZXMgdG8gYWxsb2NhdGUgKGlucHV0KSAvIGFsbG9jYXRlZFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDM0LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMzU6c3RydWN0IG14bDg2Mnh4X3ZsYW5maWx0ZXJfYWxsb2Mge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMzYtXHRfX2xlMTYgbnVtYmVyX29mX2VudHJpZXM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNDMtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA0NDogKiBzdHJ1Y3QgbXhsODYyeHhfdmxhbmZpbHRlcl9jb25maWcgLSBWTEFOIEZpbHRlciBlbnRyeSBjb25maWd1cmF0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA0NS0gKiBAdmxhbl9maWx0ZXJfYmxvY2tfaWQ6IEJsb2NrIElEIGZyb20gYWxsb2NhdGlvblxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDQ3LSAqIEB2bGFuX2ZpbHRlcl9tYXNrOiBUQ0kgZmllbGQocykgdG8gbWF0Y2ggKHNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwNDg6ICogICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfdmxhbl9maWx0ZXJfdGNpX21hc2spXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA0OS0gKiBAdmFsOiBUQ0kgdmFsdWUocykgdG8gbWF0Y2ggKFZJRCwgUENQLCBvciBmdWxsIFRDSSBkZXBlbmRpbmcgb24gbWFzaylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA1NC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDU1OnN0cnVjdCBteGw4NjJ4eF92bGFuZmlsdGVyX2NvbmZpZyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA1Ni1cdF9fbGUxNiB2bGFuX2ZpbHRlcl9ibG9ja19pZDtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDU3LVx0X19sZTE2IGVudHJ5X2luZGV4O1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwNTg6XHRfX2xlMzIgdmxhbl9maWx0ZXJfbWFzazsgLyogZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNTktXHRfX2xlMzIgdmFsO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDYzLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwNjQ6ICogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfbWFzayAtIFNwZWNpYWwgdGFnIHZhbGlkIGZpZWxkIGluZGljYXRvciBiaXRzXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA2NS0gKiBATVhMODYyWFhfU1NfU1BfVEFHX01BU0tfUlg6IHZhbGlkIFJYIHNwZWNpYWwgdGFnIG1vZGVcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA2OS0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDcwOmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX21hc2sge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNzEtXHRNWEw4NjJYWF9TU19TUF9UQUdfTUFTS19SWCA9IEJJVCgwKSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA3Ny0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDc4OiAqIGVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4IC0gUlggc3BlY2lhbCB0YWcgbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNzktICogQE1YTDg2MlhYX1NTX1NQX1RBR19SWF9OT19UQUdfTk9fSU5TRVJUOiBwYWNrZXQgZG9lcyBOT1QgaGF2ZSBzcGVjaWFsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwODUtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA4NjplbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19yeCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA4Ny1cdE1YTDg2MlhYX1NTX1NQX1RBR19SWF9OT19UQUdfTk9fSU5TRVJUID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA5Mi0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDkzOiAqIGVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3R4IC0gVFggc3BlY2lhbCB0YWcgbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwOTQtICogQE1YTDg2MlhYX1NTX1NQX1RBR19UWF9OT19UQUdfTk9fUkVNT1ZFOiBwYWNrZXQgZG9lcyBOT1QgaGF2ZSBzcGVjaWFsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMDItICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEwMzplbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ190eCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEwNC1cdE1YTDg2MlhYX1NTX1NQX1RBR19UWF9OT19UQUdfTk9fUkVNT1ZFID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTExMC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTExOiAqIGVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4X3BlbiAtIFJYIHNwZWNpYWwgdGFnIGluZm8gb3ZlciBwcmVhbWJsZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMTItICogQE1YTDg2MlhYX1NTX1NQX1RBR19SWF9QRU5fQUxMXzA6IHNwZWNpYWwgdGFnIGluZm8gaW5zZXJ0ZWQgZnJvbSBieXRlIDJcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEyMi0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTIzOmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4X3BlbiB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEyNC1cdE1YTDg2MlhYX1NTX1NQX1RBR19SWF9QRU5fQUxMXzAgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTMwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMzE6ICogc3RydWN0IG14bDg2Mnh4X3NzX3NwX3RhZyAtIFNwZWNpYWwgdGFnIHBvcnQgc2V0dGluZ3NcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTMyLSAqIEBwaWQ6IHBvcnQgSUQgKDF+MTYpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEzMzogKiBAbWFzazogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX21hc2tcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTM0OiAqIEByeDogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEzNTogKiBAdHg6IFNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ190eFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMzY6ICogQHJ4X3BlbjogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4X3BlblxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMzctICogQHR4X3BlbjogVFggc3BlY2lhbCB0YWcgaW5mbyBvdmVyIHByZWFtYmxlXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExNDAtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTE0MTpzdHJ1Y3QgbXhsODYyeHhfc3Nfc3BfdGFnIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTQyLVx0dTggcGlkO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExNDM6XHR1OCBtYXNrOyAvKiBlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19tYXNrICovXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTkyMQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSBpbW1lZGlhdGUgdGhvdWdodCBwcm9jZXNzLCBmb2N1c2luZyBvbiB3aGF0IEkmIzM5O2QgYmUgZG9pbmcgYW5kIHdoeSwgZ2l2ZW4gdGhlIHByb21wdDoKCioqRXhhbWluaW5nIGEgS2NvbmZpZyBGaWxlKioKCk9rYXksIHNvIEkmIzM5O20gYmVpbmcgYXNrZWQgdG8gbG9vayBhdCBgZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L0tjb25maWdgLiBSaWdodCBhd2F5LCB0aGlzIHRlbGxzIG1lIGEgZmV3IHRoaW5ncy4gSXQmIzM5O3MgYSBLY29uZmlnIGZpbGUsIG1lYW5pbmcgaXQmIzM5O3MgaW52b2x2ZWQgaW4gY29uZmlndXJpbmcgdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIFRoZSBwYXRoIGluZGljYXRlcyBpdCYjMzk7cyByZWxhdGVkIHRvIG5ldHdvcmsgZHJpdmVycywgc3BlY2lmaWNhbGx5IGEgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBkcml2ZXIsIGZvciBhIGRldmljZSBjYWxsZWQgbXhsODYyeHguCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dC4gSSYjMzk7bGwgbWVudGFsbHkgc3RhcnQgYXNraW5nIHF1ZXN0aW9uczoKCiogICBXaGF0JiMzOTtzIHRoZSBnb2FsIGhlcmU/IEFtIEkgZGVidWdnaW5nIHNvbWV0aGluZz8gVHJ5aW5nIHRvIHVuZGVyc3RhbmQgZGVwZW5kZW5jaWVzPyBPciBhbSBJIGNvbmZpZ3VyaW5nIGEgc3lzdGVtLCBhbmQgdHJ5aW5nIHRvIGVuYWJsZSB0aGlzIGRyaXZlcj8KKiAgIFdoYXQga2VybmVsIHZlcnNpb24gYXJlIHdlIHVzaW5nPyBLY29uZmlnIHN5bnRheCBjYW4gdmFyeSBzbGlnaHRseSBiZXR3ZWVuIHZlcnNpb25zLCB0aG91Z2ggZm9yIGEgZHJpdmVyLXNwZWNpZmljIGNvbmZpZyBsaWtlIHRoaXMgaXQgcHJvYmFibHkgd29uJiMzOTt0IGJlIGEgbWFqb3IgaXNzdWUuCiogICBXaGF0IG90aGVyIGZpbGVzIGFyZSByZWxldmFudCB0byB0aGlzIGRyaXZlcj8gSSBrbm93IHRoYXQgS2NvbmZpZyBmaWxlcyBvZnRlbiByZWZlcmVuY2UgY29ycmVzcG9uZGluZyBgLmNgIGZpbGVzLCBhbmQgSSYjMzk7ZCBhbnRpY2lwYXRlIGxvb2tpbmcgYXQgdGhlIGRyaXZlciYjMzk7cyBzb3VyY2UgY29kZSBpZiB0aGlzIGlzIGNvbmZpZ3VyYXRpb24tcmVsYXRlZC4KCkkga25vdyBJJiMzOTttIGxvb2tpbmcgYXQgYSBLY29uZmlnIGZpbGUsIHdoaWNoIG1lYW5zIGl0IHdpbGwgcHJvYmFibHkgZGVmaW5lOgoKKiAgICoqU3ltYm9sczoqKiBUaGVzZSBhcmUgdGhlIHZhcmlhYmxlcyB0aGUgdXNlciBzZXRzIHRvIGVuYWJsZSBvciBkaXNhYmxlIGZlYXR1cmVzIHJlbGF0ZWQgdG8gdGhlIGBteGw4NjJ4eGAgZHJpdmVyLiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciB0aGVpciBuYW1lcyBhbmQgZGVzY3JpcHRpb25zLiBJJiMzOTtsbCBwYXkgYXR0ZW50aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlcyB0byBnZXQgYSBzZW5zZSBvZiB3aGV0aGVyIHRoZSBkcml2ZXIgaXMgZW5hYmxlZCBieSBkZWZhdWx0LgoqICAgKipEZXBlbmRlbmNpZXM6KiogSSYjMzk7bGwgYmUgc2Nhbm5pbmcgZm9yIGBkZXBlbmRzIG9uYCBzdGF0ZW1lbnRzLiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQgdGhhdCB3aWxsIHRlbGwgbWUgd2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgb3Igb3RoZXIgY29uZmlndXJhdGlvbnMgbXVzdCBiZSBlbmFibGVkIGJlZm9yZSB0aGlzIGRyaXZlciBjYW4gYmUgc2VsZWN0ZWQuIEkmIzM5O2xsIG5lZWQgdG8gZm9sbG93IHRob3NlIGRlcGVuZGVuY2llcyBhbmQgY2hlY2sgd2hhdCAqdGhvc2UqIGNvbmZpZ3MgYXJlIHNldHRpbmcuCiogICAqKk1lbnUgc3RydWN0dXJlOioqIEtjb25maWcgZmlsZXMgYXJlIG5lc3RlZCB0byBjcmVhdGUgYSBsb2dpY2FsIHdheSBmb3IgdXNlcnMgdG8gY29uZmlndXJlIHRoZWlyIHN5c3RlbS4gSSYjMzk7bGwgYmUgbG9va2luZyBhdCB0aGUgbmVzdGluZyBsZXZlbHMgYW5kIHJlbGF0aW9uc2hpcHMgdG8gdW5kZXJzdGFuZCBob3cgdG8gbG9jYXRlIHRoZSBgbXhsODYyeHhgIGRyaXZlciB3aXRoaW4gdGhlIG92ZXJhbGwga2VybmVsIGNvbmZpZ3VyYXRpb24gbWVudS4KKiAgICoqUHJvbXB0IChoZWxwIHRleHQpOioqIFRoZSBnb29kIEtjb25maWcgZmlsZXMgaGF2ZSBnb29kIGhlbHAgdGV4dCEgSSYjMzk7bGwgYmUgb24gdGhlIGxvb2tvdXQgZm9yIGEgY2xlYXIgZXhwbGFuYXRpb24gb2Ygd2hhdCB0aGlzIGRyaXZlciBkb2VzLCB0aGUgaGFyZHdhcmUgaXQgc3VwcG9ydHMsIGFuZCBhbnkgY29uZmlndXJhdGlvbiBvcHRpb25zIEkgc2hvdWxkIGJlIGF3YXJlIG9mLgoKSSYjMzk7bSByZWFkeSB0byBkaXZlIGludG8gdGhlIGZpbGUgYW5kIHN0YXJ0IGFuYWx5emluZyB0aGVzZSBlbGVtZW50cyBzeXN0ZW1hdGljYWxseS4gSSB3aWxsIGxvb2sgZm9yIGFueSBjbHVlcyBhYm91dCB3aGF0IGlzIGRyaXZpbmcgdGhpcyBpbnZlc3RpZ2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgTkVUX0RTQV9NWEw4NjJcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O01heExpbmVhciBNeEw4NjJ4eFwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBORVRfRFNBXG4gICA1Olx0XHRzZWxlY3QgQ1JDMTZcbiAgIDY6XHRcdHNlbGVjdCBORVRfRFNBX1RBR19NWExfODYyWFhcbiAgIDc6XHRcdGhlbHBcbiAgIDg6XHRcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggc3dpdGNoIGZhbWlseS5cbiAgIDk6XHRcdCAgVGhlc2Ugc3dpdGNoZXMgaGF2ZSB0d28gMTBHRSBTZXJEZXMgaW50ZXJmYWNlcywgb25lIHR5cGljYWxseVxuICAxMDpcdFx0ICB1c2VkIGFzIENQVSBwb3J0LlxuICAxMTpcdFx0ICAgLSBNeEw4NjI4MiBoYXMgZWlnaHQgMi41IEdpZ2FiaXQgUEhZc1xuICAxMjpcdFx0ICAgLSBNeEw4NjI1MiBoYXMgZml2ZSAyLjUgR2lnYWJpdCBQSFlzXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMTQ6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3NDYKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBteGw4NjJ4eGAgZHJpdmVyIGNvZGUuIE15IGluaXRpYWwgYXBwcm9hY2ggaXMgYWx3YXlzIHRvIHVuZGVyc3RhbmQgdGhlIHJlZ2lzdHJhdGlvbiBhbmQgcHJvYmluZy9iaW5kaW5nIHByb2Nlc3MuIFNvLCBJIG5lZWQgdG8gc2VlIGhvdyBgbXhsODYyeHhgIGlzIGRlY2xhcmVkIGFzIGEgZHJpdmVyIGFuZCBob3cgdGhlIGtlcm5lbCBmaW5kcyBpdC4gSSYjMzk7bGwgZm9jdXMgb24gdGhlIGBteGw4NjJ4eC5jYCBmaWxlLiBJJiMzOTttIGdvaW5nIHRvIGxvb2sgZm9yIGFueSBkZWZpbml0aW9uIHJlbGF0ZWQgdG8gdGhlIE1ESU8gZHJpdmVyIGludGVyZmFjZSwgb3IgcGVyaGFwcyBTUEksIEkyQywgb3IgZXZlbiBEZXZpY2UgVHJlZSBiaW5kaW5ncyBpZiBpdCYjMzk7cyBhbiBPRi1iYXNlZCBzeXN0ZW0uIFVuZGVyc3RhbmRpbmcgdGhlIGNvbW11bmljYXRpb24gaW50ZXJmYWNlIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUuIEkgd2lsbCBzdGFydCBieSB0cmFjaW5nIHRob3NlIGNydWNpYWwgZW50cnkgcG9pbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfbWRpb19kcml2ZXJ8bWRpb19kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjIwOD1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBteGw4NjJ4eF9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYy0yMjA5LVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM6MjIxMDpzdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG14bDg2Mnh4X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTIyMTEtXHQucHJvYmUgID0gbXhsODYyeHhfcHJvYmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMTY3CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byBgbXhsODYyeHguY2AqKgoKT2theSwgdGltZSB0byBnZXQgdG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEkgbmVlZCB0byB0YWtlIGEgbG9vayBhdCB0aGUgYG14bDg2Mnh4LmNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lcyAyMjAwIHRvIDIyMjUuIEkgcmVtZW1iZXIgZW5jb3VudGVyaW5nIHNvbWV0aGluZyBwb3RlbnRpYWxseSByZWxhdGVkIHRvIHRoaXMgaXNzdWUgaW4gdGhhdCBhcmVhLCBhbmQgSSB3YW50IHRvIHJlZnJlc2ggbXkgbWVtb3J5IGFuZCBzZWUgaWYgSSBjYW4gc3BvdCBhbnl0aGluZyByZWxldmFudCB3aXRoIGZyZXNoIGV5ZXMuIFRoaXMgaXMgYSBjb21tb24gZGVidWdnaW5nIHRlY2huaXF1ZSBmb3IgbWU7IEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhlIG1vc3QgbGlrZWx5IHN1c3BlY3QsIGEgY29uY2VudHJhdGVkIGFyZWEgb2YgY29kZSBJIHJlY2FsbCwgYW5kIHRoZW4gZXhwYW5kIG15IHNlYXJjaCBmcm9tIHRoZXJlIGlmIG5lZWRlZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjIwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzNQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyMjAwOlx0XHRkZXZfc2V0X2RydmRhdGEoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIE5VTEwpO1xuMjIwMTpcdH1cbjIyMDI6XHRcbjIyMDM6XHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBteGw4NjJ4eF9vZl9tYXRjaFtdID0ge1xuMjIwNDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21heGxpbmVhcixteGw4NjI4MlwmIzM0OyB9LFxuMjIwNTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21heGxpbmVhcixteGw4NjI1MlwmIzM0OyB9LFxuMjIwNjpcdFx0eyAvKiBzZW50aW5lbCAqLyB9XG4yMjA3Olx0fTtcbjIyMDg6XHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBteGw4NjJ4eF9vZl9tYXRjaCk7XG4yMjA5Olx0XG4yMjEwOlx0c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBteGw4NjJ4eF9kcml2ZXIgPSB7XG4yMjExOlx0XHQucHJvYmUgID0gbXhsODYyeHhfcHJvYmUsXG4yMjEyOlx0XHQucmVtb3ZlID0gbXhsODYyeHhfcmVtb3ZlLFxuMjIxMzpcdFx0LnNodXRkb3duID0gbXhsODYyeHhfc2h1dGRvd24sXG4yMjE0Olx0XHQubWRpb2Rydi5kcml2ZXIgPSB7XG4yMjE1Olx0XHRcdC5uYW1lID0gXCYjMzQ7bXhsODYyeHhcJiMzNDssXG4yMjE2Olx0XHRcdC5vZl9tYXRjaF90YWJsZSA9IG14bDg2Mnh4X29mX21hdGNoLFxuMjIxNzpcdFx0fSxcbjIyMTg6XHR9O1xuMjIxOTpcdFxuMjIyMDpcdG1kaW9fbW9kdWxlX2RyaXZlcihteGw4NjJ4eF9kcml2ZXIpO1xuMjIyMTpcdFxuMjIyMjpcdE1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtEcml2ZXIgZm9yIE1heExpbmVhciBNeEw4NjJ4eCBzd2l0Y2ggZmFtaWx5XCYjMzQ7KTtcbjIyMjM6XHRNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzgxMAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDQ2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGFiaWxpdHkgQW5hbHlzaXMgZm9yIHRoZSBgbXhsODYyeHhgIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IElzIHRoaXMgYG14bDg2Mnh4YCBkcml2ZXLigJRzcGVjaWZpY2FsbHkgZm9yIHRob3NlIGBtYXhsaW5lYXIsbXhsODYyODJgIG9yIGBtYXhsaW5lYXIsbXhsODYyNTJgIGRldmljZXPigJRhbiBNRElPLWJhc2VkIHN3aXRjaCBkcml2ZXIsIGFuZCwgY3J1Y2lhbGx5LCBkb2VzIGl0ICpyZXF1aXJlKiBwaHlzaWNhbCBoYXJkd2FyZT8gSSBuZWVkIHRvIGtub3cgaWYgaXQmIzM5O3MgcmVhY2hhYmxlIGZvciBmdXp6aW5nLgoKTXkgdGhpbmtpbmcgaXMgZ3VpZGVkIGJ5IHRoaXMgJiMzNDtyZWFjaGFiaWxpdHkgaXMgdGhlIHByaW1hcnkgZ2F0ZSYjMzQ7IHByaW5jaXBsZSBJJiMzOTttIGRlYWxpbmcgd2l0aC4gSWYgdGhlIGNvZGUgKmNhbiYjMzk7dCogZXhlY3V0ZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIFFFTVUsIHRoZW4gZnV6emluZyBpcyBhIHdhc3RlIG9mIHRpbWUsIG5vIG1hdHRlciBob3cgY29tcGxleCB0aGUgbG9naWMuCgpMb29raW5nIGF0IFNlY3Rpb24gMiwgdGhlIHRleHQgZXhwbGljaXRseSBjYWxscyBvdXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOiB0aGluZ3MgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyB0aGF0IG5lZWQgYW4gYWN0dWFsIEFTSUMgb3IgUENJZSBjYXJkIHRoYXQgaXNuJiMzOTt0IGVtdWxhdGVkLiBUaGVuIHRoZXJlJiMzOTtzIHRoZSBpc3N1ZSBvZiB1bnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHMg4oCTIGxpa2UgdGVhcmRvd24gY2FsbGJhY2tzIHRyaWdnZXJlZCBvbmx5IGJ5IHBoeXNpY2FsIGhvdC11bnBsdWcgb3IgbWFudWFsIHVuYmluZGluZy4KClNvLCB0aGUga2V5IHF1ZXN0aW9uIGlzOiBDYW4gYG14bDg2Mnh4YCBiZSBwcm9iZWQgb3IgaW5zdGFudGlhdGVkIGluIGEgc3RhbmRhcmQgc3l6a2FsbGVyIC8gUUVNVSAvIEdDRSBlbnZpcm9ubWVudD8gSSBrbm93IHN5emthbGxlciBydW5zIGluIHN0YW5kYXJkIFFFTVUvR0NFLCB3aXRob3V0IGEgcGh5c2ljYWwgTURJTyBidXMgY29ubmVjdGVkIHRvIGFuIE14TDg2Mnh4IEFTSUMgc3dpdGNoLiBDYW4gYW4gTURJTyBzd2l0Y2ggb3IgRFNBIGRldmljZSBiZSBlbXVsYXRlZCBvciBib3VuZCAqd2l0aG91dCogdGhlIGhhcmR3YXJlPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIE1ESU8gYnVzIGFuZCB0aGUgT0YvRGV2aWNlVHJlZSBtZGlvX2RyaXZlciBhcmUgaGFuZGxlZCBpbiB0aGlzIGNvbnRleHQuIERvIHZpcnR1YWwgTURJTyBidXNlcyBleGlzdD8gRG9lcyBzeXpib3QgaGF2ZSBhIHdheSBvZiBwcm9iaW5nIE1ESU8gZGV2aWNlcyBpbiB0aGlzIHNldHVwPwoKSSBuZWVkIHRvIHNlZSBob3cgc3l6a2FsbGVyIGludGVyYWN0cyB3aXRoIE1ESU8vRFNBIGRyaXZlcnMuIFRpbWUgdG8gZ3JlcCB0aGUga2VybmVsIHNvdXJjZSBmb3IgYG14bDg2Mnh4YCBvciBgbWRpb19kcml2ZXJgLiBIb3BlZnVsbHksIHRoZXJlIGFyZSBzb21lIG1vY2sgb3IgdmlydHVhbCBpbnRlcmZhY2VzIHRoYXQgd2lsbCBnaXZlIG1lIGEgY2x1ZSBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgcmVhY2hhYmlsaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvX21vZHVsZV9kcml2ZXImIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIyMTA9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBuc3NfY2NfcWNhOGtfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE3LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTg6bWRpb19tb2R1bGVfZHJpdmVyKG5zc19jY19xY2E4a19kcml2ZXIpO1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTktXG4tLVxuZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfbWRpby5jPTM5MT1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGI1M19tZGlvX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvYjUzL2I1M19tZGlvLmMtMzk5LX07XG5kcml2ZXJzL25ldC9kc2EvYjUzL2I1M19tZGlvLmM6NDAwOm1kaW9fbW9kdWxlX2RyaXZlcihiNTNfbWRpb19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfbWRpby5jLTQwMS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFuOTMwM19tZGlvLmM9MTY0PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbGFuOTMwM19tZGlvX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFuOTMwM19tZGlvLmMtMTcyLX07XG5kcml2ZXJzL25ldC9kc2EvbGFuOTMwM19tZGlvLmM6MTczOm1kaW9fbW9kdWxlX2RyaXZlcihsYW45MzAzX21kaW9fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW45MzAzX21kaW8uYy0xNzQtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmM9OTI2PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZ3N3MXh4X2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYy05MzUtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYzo5MzY6bWRpb19tb2R1bGVfZHJpdmVyKGdzdzF4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmMtOTM3LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6ODg2M19zbWkuYz0yMTE9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBrc3o4ODYzX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg4NjNfc21pLmMtMjIwLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o4ODYzX3NtaS5jOjIyMTptZGlvX21vZHVsZV9kcml2ZXIoa3N6ODg2M19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o4ODYzX3NtaS5jLTIyMi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYz0yNTg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdDc1MzBfbWRpb19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY3LVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MjY4Om1kaW9fbW9kdWxlX2RyaXZlcihtdDc1MzBfbWRpb19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuYz0zNjg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTYwNjBfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuYy0zNzctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmM6Mzc4Om1kaW9fbW9kdWxlX2RyaXZlcihtdjg4ZTYwNjBfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuYy0zNzktXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyOT1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzOS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1NDA6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0MS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYz0yMjEwPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXhsODYyeHhfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTIyMTktXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYzoyMjIwOm1kaW9fbW9kdWxlX2RyaXZlcihteGw4NjJ4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMtMjIyMS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL2FyOTMzMS5jPTExMjg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBhcjkzMzFfc3dfbWRpb19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYy0xMTM3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYzoxMTM4Om1kaW9fbW9kdWxlX2RyaXZlcihhcjkzMzFfc3dfbWRpb19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYy0xMTM5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMjE9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBxY2E4a21kaW9fZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMzEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMjMyOm1kaW9fbW9kdWxlX2RyaXZlcihxY2E4a21kaW9fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL3hyczcwMHgveHJzNzAweF9tZGlvLmM9MTY2PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgeHJzNzAweF9tZGlvX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EveHJzNzAweC94cnM3MDB4X21kaW8uYy0xNzUtXG5kcml2ZXJzL25ldC9kc2EveHJzNzAweC94cnM3MDB4X21kaW8uYzoxNzY6bWRpb19tb2R1bGVfZHJpdmVyKHhyczcwMHhfbWRpb19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL3hyczcwMHgveHJzNzAweF9tZGlvLmMtMTc3LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYz00OTY4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgeXQ5MjF4X21kaW9fZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYy00OTc3LVxuZHJpdmVycy9uZXQvZHNhL3l0OTIxeC5jOjQ5Nzg6bWRpb19tb2R1bGVfZHJpdmVyKHl0OTIxeF9tZGlvX2RyaXZlcik7XG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNDk3OS1cbi0tXG5kcml2ZXJzL25ldC9waHkveGlsaW54X2dtaWkycmdtaWkuYz0xMzg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciB4Z21paXRvcmdtaWlfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS94aWxpbnhfZ21paTJyZ21paS5jLTE0NS1cbmRyaXZlcnMvbmV0L3BoeS94aWxpbnhfZ21paTJyZ21paS5jOjE0NjptZGlvX21vZHVsZV9kcml2ZXIoeGdtaWl0b3JnbWlpX2RyaXZlcik7XG5kcml2ZXJzL25ldC9waHkveGlsaW54X2dtaWkycmdtaWkuYy0xNDctXG4tLVxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1ucy11c2IzLmM9MjMyPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgYmNtX25zX3VzYjNfbWRpb19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1ucy11c2IzLmMtMjQxLVxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1ucy11c2IzLmM6MjQyOm1kaW9fbW9kdWxlX2RyaXZlcihiY21fbnNfdXNiM19tZGlvX2RyaXZlcik7XG5kcml2ZXJzL3BoeS9icm9hZGNvbS9waHktYmNtLW5zLXVzYjMuYy0yNDMtXG4tLVxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1uczItcGNpZS5jPTczPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbnMyX3BjaV9waHlfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMyLXBjaWUuYy04MS19O1xuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1uczItcGNpZS5jOjgyOm1kaW9fbW9kdWxlX2RyaXZlcihuczJfcGNpX3BoeV9kcml2ZXIpO1xuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1uczItcGNpZS5jLTgzLVxuLS1cbmluY2x1ZGUvbGludXgvbWRpby5oPTY5Nj1zdHJ1Y3QgcGh5X2RldmljZSAqbWRpb2J1c19nZXRfcGh5KHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyKTtcbi0tXG5pbmNsdWRlL2xpbnV4L21kaW8uaC02OTgtLyoqXG5pbmNsdWRlL2xpbnV4L21kaW8uaDo2OTk6ICogbWRpb19tb2R1bGVfZHJpdmVyKCkgLSBIZWxwZXIgbWFjcm8gZm9yIHJlZ2lzdGVyaW5nIG1kaW8gZHJpdmVyc1xuaW5jbHVkZS9saW51eC9tZGlvLmgtNzAwLSAqIEBfbWRpb19kcml2ZXI6IGRyaXZlciB0byByZWdpc3RlclxuLS1cbmluY2x1ZGUvbGludXgvbWRpby5oLTcwNS0gKi9cbmluY2x1ZGUvbGludXgvbWRpby5oOjcwNjojZGVmaW5lIG1kaW9fbW9kdWxlX2RyaXZlcihfbWRpb19kcml2ZXIpIFxcXG5pbmNsdWRlL2xpbnV4L21kaW8uaC03MDctXHRtb2R1bGVfZHJpdmVyKF9tZGlvX2RyaXZlciwgbWRpb19kcml2ZXJfcmVnaXN0ZXIsIG1kaW9fZHJpdmVyX3VucmVnaXN0ZXIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3MTM3CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTURJTyBEZXZpY2UgUmVnaXN0cmF0aW9uIGFuZCBCdXMgU3RydWN0dXJlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBNRElPIHNpdHVhdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIE1ESU8gZGV2aWNlcyBhcmUgYmVpbmcgYnJvdWdodCBpbnRvIHRoZSBzeXN0ZW0uIEFyZSB0aGV5IHVzaW5nIGEgdmlydHVhbCBidXMgc3RydWN0dXJlLCBvciBhcmUgd2UgcmVseWluZyBvbiBkZXZpY2UgdHJlZSBwcm9iaW5nIGFuZCBkaXJlY3QgaGFyZHdhcmUgaW50ZXJhY3Rpb24/IE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBpbnZlc3RpZ2F0ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MgaXRzZWxmLiBXaGVyZSBkb2VzIHRoZSBydWJiZXIgbWVldCB0aGUgcm9hZD8gSSBuZWVkIHRvIGxvb2sgZm9yIGNhbGxzIHRvIGBtZGlvX2RyaXZlcl9yZWdpc3RlcmAg4oCTIHdoZXJlIGFyZSB0aGUgTURJTyBkcml2ZXJzIGFjdHVhbGx5IGJlaW5nIHJlZ2lzdGVyZWQ/IEkmIzM5O2xsIHByb2JhYmx5IGJyb2FkZW4gdGhpcyB0byBzZWFyY2ggZm9yIHdoZXJlIGl0JiMzOTtzICp1c2VkKiwgdG9vLCBqdXN0IHRvIGJlIHN1cmUuIFRoaXMgd2lsbCBnaXZlIG1lIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgZnJhbWV3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvX2RldmljZV9yZWdpc3RlciYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz00NDY9c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDczLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDc0Olx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3dpdGNoX21kaW9kZXYpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDc1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYz01Mj1zdGF0aWMgaW50IG9mX21kaW9idXNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtaWlfYnVzICptZGlvLFxuLS1cbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTY4LVx0LyogQWxsIGRhdGEgaXMgbm93IHN0b3JlZCBpbiB0aGUgbWRpb2RldiBzdHJ1Y3Q7IHJlZ2lzdGVyIGl0LiAqL1xuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM6Njk6XHRyYyA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmMtNzAtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jPTMzNz1zdGF0aWMgaW50IHhwY3NfcGxhdF9pbml0X2RldihzdHJ1Y3QgZHdfeHBjc19wbGF0ICpweHBjcylcbi0tXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1Ni1cbmRyaXZlcnMvbmV0L3Bjcy9wY3MteHBjcy1wbGF0LmM6MzU3Olx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1OC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYz0xMDc0PXN0YXRpYyBpbnQgYW44ODExaGJfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbi0tXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk3LVxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM6MTA5ODpcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5OS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjYtLyoqXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoyNzogKiBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldCAtIFJlYWQgYW5kIGluaXRpYWxpemUgdGhlIHJlc2V0IHByb3BlcnRpZXMgb2ZcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTI4LSAqXHRcdFx0XHRhbiBtZGlvIGRldmljZVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTMyLSAqL1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MzM6c3RhdGljIGludCBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zNC17XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTQzPUVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfY3JlYXRlKTtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDUtLyoqXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNDY6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXIgLSBSZWdpc3RlciB0aGUgbWRpbyBkZXZpY2Ugb24gdGhlIE1ESU8gYnVzXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDctICogQG1kaW9kZXY6IG1kaW9fZGV2aWNlIHN0cnVjdHVyZSB0byBiZSBhZGRlZCB0byB0aGUgTURJTyBidXNcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTAtICovXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNTE6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE1Mi17XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTcyLX1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE3MzpFWFBPUlRfU1lNQk9MKG1kaW9fZGV2aWNlX3JlZ2lzdGVyKTtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3NC1cbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODAtICogVGhpcyBkb2VzbiYjMzk7dCBmcmVlIHRoZSBtZGlvX2RldmljZSBpdHNlbGYsIGl0IG1lcmVseSByZXZlcnNlcyB0aGUgZWZmZWN0c1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTgxOiAqIG9mIG1kaW9fZGV2aWNlX3JlZ2lzdGVyKCkuIFVzZSBtZGlvX2RldmljZV9mcmVlKCkgdG8gZnJlZSB0aGUgZGV2aWNlXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODItICogYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jPTE5MT1pbnQgbWRpb2J1c19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE5OC1cdGlmIChtZGlvZGV2LVx1MDAzZWZsYWdzIFx1MDAyNiBNRElPX0RFVklDRV9GTEFHX1BIWSkge1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTk5Olx0XHRlcnIgPSBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChtZGlvZGV2KTtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTIwMC1cdFx0aWYgKGVycilcbi0tXG5pbmNsdWRlL2xpbnV4L21kaW8uaD05NT1zdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9fZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XG5pbmNsdWRlL2xpbnV4L21kaW8uaDo5NjppbnQgbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcbmluY2x1ZGUvbGludXgvbWRpby5oLTk3LXZvaWQgbWRpb19kZXZpY2VfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4NjI0CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMTQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRpdmluZyBpbnRvIHRoZSBEcml2ZXIgQ29kZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGlzc2VjdCB0aGlzIGNvZGUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBkcml2ZXJzIGludGVyYWN0LiBGaXJzdCwgSSYjMzk7bGwgbG9vayBhdCBgZHNhX2xvb3AuY2AuIEl0JiMzOTtzIGEgbW9jayBEU0Egc3dpdGNoIGRyaXZlciwgdXNpbmcgYSBtb2NrIE1ESU8gZGV2aWNlIOKAkyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGFyY2hpdGVjdHVyZS4gSG93ZXZlciwgSSYjMzk7bSBtb3JlIGludGVyZXN0ZWQgaW4gdGhlIHJlYWwgaGFyZHdhcmUuIFNvLCB3aGF0IGFib3V0IGBteGw4NjJ4eGA/IEl0IGFwcGVhcnMgdG8gYmUgdGllZCB0byBhIHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUsIGV4Y2x1c2l2ZWx5IG1hdGNoZWQgdmlhIHRoZSAmIzM0O29mX21hdGNoX3RhYmxlID0gbXhsODYyeHhfb2ZfbWF0Y2gmIzM0Oy4gVGhlIGVudHJpZXMgJiMzNDttYXhsaW5lYXIsbXhsODYyODImIzM0OyBhbmQgJiMzNDttYXhsaW5lYXIsbXhsODYyNTImIzM0OyBpbW1lZGlhdGVseSB0ZWxsIG1lIHRoaXMgaXMgdGFyZ2V0aW5nIHNwZWNpZmljIE1heExpbmVhciBjaGlwcy4gTm93LCBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9iZSBmdW5jdGlvbi4gTGV0JiMzOTtzIGRpZyBpbnRvIGBteGw4NjJ4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpYCBhbmQgc2VlIHdoYXQgd2UgY2FuIGZpbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMTAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzIxMDA6XHR9O1xuMjEwMTpcdFxuMjEwMjpcdHN0YXRpYyBpbnQgbXhsODYyeHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuMjEwMzpcdHtcbjIxMDQ6XHRcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2O1xuMjEwNTpcdFx0c3RydWN0IG14bDg2Mnh4X3ByaXYgKnByaXY7XG4yMTA2Olx0XHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHM7XG4yMTA3Olx0XHRpbnQgZXJyLCBpO1xuMjEwODpcdFxuMjEwOTpcdFx0cHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpO1xuMjExMDpcdFx0aWYgKCFwcml2KVxuMjExMTpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbjIxMTI6XHRcbjIxMTM6XHRcdHByaXYtXHUwMDNlbWRpb2RldiA9IG1kaW9kZXY7XG4yMTE0Olx0XG4yMTE1Olx0XHRkcyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZHMpLCBHRlBfS0VSTkVMKTtcbjIxMTY6XHRcdGlmICghZHMpXG4yMTE3Olx0XHRcdHJldHVybiAtRU5PTUVNO1xuMjExODpcdFxuMjExOTpcdFx0cHJpdi1cdTAwM2VkcyA9IGRzO1xuMjEyMDpcdFx0ZHMtXHUwMDNlZGV2ID0gZGV2O1xuMjEyMTpcdFx0ZHMtXHUwMDNlcHJpdiA9IHByaXY7XG4yMTIyOlx0XHRkcy1cdTAwM2VvcHMgPSBcdTAwMjZteGw4NjJ4eF9zd2l0Y2hfb3BzO1xuMjEyMzpcdFx0ZHMtXHUwMDNlcGh5bGlua19tYWNfb3BzID0gXHUwMDI2bXhsODYyeHhfcGh5bGlua19tYWNfb3BzO1xuMjEyNDpcdFx0ZHMtXHUwMDNlbnVtX3BvcnRzID0gTVhMODYyWFhfTUFYX1BPUlRTO1xuMjEyNTpcdFx0ZHMtXHUwMDNlYXNzaXN0ZWRfbGVhcm5pbmdfb25fY3B1X3BvcnQgPSB0cnVlO1xuMjEyNjpcdFx0ZHMtXHUwMDNlZmRiX2lzb2xhdGlvbiA9IHRydWU7XG4yMTI3Olx0XHRkcy1cdTAwM2VtYXhfbnVtX2JyaWRnZXMgPSBNWEw4NjJYWF9NQVhfQlJJREdFUztcbjIxMjg6XHRcbjIxMjk6XHRcdG14bDg2Mnh4X2hvc3RfaW5pdChwcml2KTtcbjIxMzA6XHRcbjIxMzE6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSYjNDM7JiM0MzspIHtcbjIxMzI6XHRcdFx0cHJpdi1cdTAwM2Vwb3J0c1tpXS5wcml2ID0gcHJpdjtcbjIxMzM6XHRcdFx0SU5JVF9XT1JLKFx1MDAyNnByaXYtXHUwMDNlcG9ydHNbaV0uaG9zdF9mbG9vZF93b3JrLFxuMjEzNDpcdFx0XHRcdCAgbXhsODYyeHhfaG9zdF9mbG9vZF93b3JrX2ZuKTtcbjIxMzU6XHRcdFx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2cHJpdi1cdTAwM2Vwb3J0c1tpXS5zdGF0c19sb2NrKTtcbjIxMzY6XHRcdH1cbjIxMzc6XHRcbjIxMzg6XHRcdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yaywgbXhsODYyeHhfc3RhdHNfd29ya19mbik7XG4yMTM5Olx0XG4yMTQwOlx0XHRkZXZfc2V0X2RydmRhdGEoZGV2LCBkcyk7XG4yMTQxOlx0XG4yMTQyOlx0XHRlcnIgPSBkc2FfcmVnaXN0ZXJfc3dpdGNoKGRzKTtcbjIxNDM6XHRcdGlmIChlcnIpIHtcbjIxNDQ6XHRcdFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4yMTQ1Olx0XHRcdG14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7XG4yMTQ2Olx0XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSYjNDM7JiM0MzspXG4yMTQ3Olx0XHRcdFx0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXBvcnRzW2ldLmhvc3RfZmxvb2Rfd29yayk7XG4yMTQ4Olx0XHR9XG4yMTQ5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5ODU5CgkJCQkJCQlvdXRwdXQ6IDE0NgoJCQkJCQkJdGhvdWdodHM6IDg4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgTWF4TGluZWFyIE14TDg2Mnh4IFN3aXRjaCBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgd2hldGhlciB0aGlzIGlzIGV2ZW4gKnBvc3NpYmxlKiB0byBmdXp6LiBUaGUgY29kZSBpbiBxdWVzdGlvbiByZXZvbHZlcyBhcm91bmQgYG14bDg2Mnh4X3Byb2JlYCwgd2hpY2ggaXMgY2FsbGVkIHdoZW4gYW4gTURJTyBkZXZpY2Ugd2l0aCBzcGVjaWZpYyAmIzM0O21heGxpbmVhciYjMzQ7IGNvbXBhdGlibGUgc3RyaW5ncyBpcyBib3VuZC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbjogY2FuIEkgZXZlbiAqaW5zdGFudGlhdGUqIHRoaXMgaW4gYSB0eXBpY2FsIFFFTVUgb3IgR0NFIGVudmlyb25tZW50IG9uIGFtZDY0PyBOb3BlLiBUaGVzZSBlbnZpcm9ubWVudHMgZG9uJiMzOTt0IGhhdmUgdGhlIE1heExpbmVhciBNeEw4NjJ4eCBoYXJkd2FyZSBvciBEZXZpY2UgVHJlZSBub2RlcyB0byByZXByZXNlbnQgdGhlIHN3aXRjaCBjb25uZWN0ZWQgdmlhIE1ESU8uIFRoYXQmIzM5O3MgYSByZWQgZmxhZy4KClJpZ2h0LCBsZXQmIzM5O3MgZ28gYmFjayBhbmQgcmVmZXJlbmNlIFNlY3Rpb24gMiYjMzk7cyBydWxlczogUmVhY2hhYmlsaXR5IGlzIGtleS4gSWYgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgZm9yZ2V0IGFib3V0IGZ1enppbmcgaXQuIEl0IGRvZXNuJiMzOTt0IG1hdHRlciBob3cgY29tcGxleCB0aGUgbG9naWMgaXMgb3IgaWYgYXNzZXJ0aW9ucyBhcmUgYWRkZWQuIFRoaXMgYWxpZ25zIHdpdGggdW5yZWFjaGFibGUgaGFyZHdhcmUgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcy4KClRoZSBwYXRjaCBpdHNlbGYgaXMgdG91Y2hpbmcgc2V2ZXJhbCBmdW5jdGlvbnM6IGBteGw4NjJ4eF9zZXR1cGAsIGBteGw4NjJ4eF90ZWFyZG93bmAsIGBteGw4NjJ4eF9nZXRfc3RhdHM2NGAsIGBteGw4NjJ4eF9zd2l0Y2hfb3BzYCwgYG14bDg2Mnh4X3Byb2JlYCwgYG14bDg2Mnh4X3JlbW92ZWAsIGBteGw4NjJ4eF9zaHV0ZG93bmAuIEVzc2VudGlhbGx5LCB0aGVzZSBhcmUgdGhlIHByb2JlLCBzZXR1cCwgdGVhcmRvd24sIGFuZCBsaWZlY3ljbGUgbWFuYWdlbWVudCBmdW5jdGlvbnMuIFNwZWNpZmljYWxseSwgSSBzZWUgaXQgbW92aW5nIGBteGw4NjJ4eF9zZXR1cF9tZGlvYCBlYXJsaWVyIGFuZCBhZGRpbmcgYSBgbXhsODYyeHhfdGVhcmRvd25gIGZ1bmN0aW9uLCB3aGljaCBjYWxscyBgZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luY2AuIFRoZXkgYXJlIGFsc28gYWRqdXN0aW5nIGNsZWFudXAgaW4gdGhlIGByZW1vdmVgL2BzaHV0ZG93bmAgZnVuY3Rpb25zLgoKQWxsIG9mIHRoaXMgbGl2ZXMgaW5zaWRlIGBkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY2AuIEFuZCB0aGF0JiMzOTtzIGEgZHJpdmVyIGZvciBhIE1heExpbmVhciBNeEw4NjI4MiBvciBNeEw4NjI1MiBFdGhlcm5ldCBzd2l0Y2ggY2hpcCwgcGh5c2ljYWwgQVNJQyBjaGlwcyBvbiBhbiBNRElPIGJ1cywgY29udHJvbGxlZCB2aWEgRGV2aWNlIFRyZWUgKGBvZl9tYXRjaF90YWJsZWApLiBUaGVzZSBhcmUgbm90IHRoaW5ncyBJIGNhbiBlbXVsYXRlIGluIFFFTVUgb3IgR0NFIG9uIHg4Nl82NC4gVGhlcmVmb3JlLCBJIGNhbiYjMzk7dCB0cmlnZ2VyIGBwcm9iZWAsIHRoZSBuZXcgYHRlYXJkb3duYCwgb3IgYW55IG9mIHRoZSBhZmZlY3RlZCBmdW5jdGlvbnMuCgpUaGUgY29uY2x1c2lvbiBpcyBwcmV0dHkgY2xlYXI6CiogICBgV29ydGhGdXp6aW5nYDogZmFsc2UKKiAgIGBGb2N1c1N5bWJvbHNgOiBlbXB0eQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBlbXB0eQoqICAgYFJlYXNvbmluZ2A6ICBUaGUgcGF0Y2ggbW9kaWZpZXMgc2V0dXAsIHRlYXJkb3duLCBhbmQgbGlmZWN5Y2xlIG1hbmFnZW1lbnQgaW4gdGhlIE1heExpbmVhciBNeEw4NjJ4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyLiBUaGlzIGlzIGEgZHJpdmVyIGZvciAqcGh5c2ljYWwqIHN3aXRjaCBoYXJkd2FyZSwgbWF0Y2hlZCB2aWEgRGV2aWNlVHJlZSBvbiBhbiBNRElPIGJ1cywgYW5kIHRoaXMgaGFyZHdhcmUgaXMgbm90IHByZXNlbnQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCBhbmQgaXMgdGh1cyB1bnJlYWNoYWJsZS4KCkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjazogYW1kNjQgaXMgdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuIFRoZSBkcml2ZXIgaXMgZW5hYmxlZCB2aWEgYENPTkZJR19ORVRfRFNBX01YTDg2MmAuIEl0IGV4cGxpY2l0bHkgbmVlZHMgYSBwaHlzaWNhbCBNYXhMaW5lYXIgTXhMODYyeHggc3dpdGNoIEFTSUMuIFRoZXJlJiMzOTtzIG5vIHZpcnR1YWwgYnVzIG9yIFFFTVUgZW11bGF0aW9uIGhlcmUuIFNvLCB5ZWFoLCBpdCYjMzk7cyBkZWZpbml0ZWx5IGBmYWxzZWAuCgpPa2F5LCBJIGFtIGNvbmZpZGVudCBpbiBteSBmaW5kaW5ncy4gVGltZSB0byBpbnZva2UgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMTQ6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBjaGFuZ2VzIGFyZSByZXN0cmljdGVkIHRvIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMpLCBhZGp1c3Rpbmcgc2V0dXAsIHRlYXJkb3duLCBhbmQgd29yayBjYW5jZWxsYXRpb24gcGF0aHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIGRlZGljYXRlZCBwaHlzaWNhbCBoYXJkd2FyZSAoTWF4TGluZWFyIE14TDg2MjgyL014TDg2MjUyIHN3aXRjaCBjaGlwcyBhdHRhY2hlZCB2aWEgTURJTyBhbmQgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZSkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIGNoYW5nZXMgYXJlIHJlc3RyaWN0ZWQgdG8gdGhlIE1heExpbmVhciBNeEw4NjJ4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyIChkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYyksIGFkanVzdGluZyBzZXR1cCwgdGVhcmRvd24sIGFuZCB3b3JrIGNhbmNlbGxhdGlvbiBwYXRocy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgZGVkaWNhdGVkIHBoeXNpY2FsIGhhcmR3YXJlIChNYXhMaW5lYXIgTXhMODYyODIvTXhMODYyNTIgc3dpdGNoIGNoaXBzIGF0dGFjaGVkIHZpYSBNRElPIGFuZCBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlKSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMTQ6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjExLjIxMjIxMTE1NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NTE0NDUyNDAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgY2hhbmdlcyBhcmUgcmVzdHJpY3RlZCB0byB0aGUgTWF4TGluZWFyIE14TDg2Mnh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jKSwgYWRqdXN0aW5nIHNldHVwLCB0ZWFyZG93biwgYW5kIHdvcmsgY2FuY2VsbGF0aW9uIHBhdGhzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBkZWRpY2F0ZWQgcGh5c2ljYWwgaGFyZHdhcmUgKE1heExpbmVhciBNeEw4NjI4Mi9NeEw4NjI1MiBzd2l0Y2ggY2hpcHMgYXR0YWNoZWQgdmlhIE1ESU8gYW5kIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUpIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoxMS4yMTIyMTU1MTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyMjIwNDk0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDc3MzNmMGE0NDAzMmExNGNlYzA0NzcxMWU1Y2U4NTA0N2M4MjFkY2FcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBTZXAgMTAgMTQ6NDg6MTAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMgYi9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xcbmluZGV4IGNmYTdlM2UyNjlhMjguLmUwNWFkNTJjZDI5N2UgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xcbkBAIC02ODUsMTAgKzY4NSwyMiBAQCBzdGF0aWMgaW50IG14bDg2Mnh4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4gXFx0aWYgKHJldClcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuK1xcdHJldCA9IG14bDg2Mnh4X3NldHVwX21kaW8oZHMpO1xcbitcXHRpZiAocmV0KVxcbitcXHRcXHRyZXR1cm4gcmV0O1xcbitcXG4gXFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrLFxcbiBcXHRcXHRcXHQgICAgICBNWEw4NjJYWF9TVEFUU19QT0xMX0lOVEVSVkFMKTtcXG4gXFxuLVxcdHJldHVybiBteGw4NjJ4eF9zZXR1cF9tZGlvKGRzKTtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK3N0YXRpYyB2b2lkIG14bDg2Mnh4X3RlYXJkb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4re1xcbitcXHRzdHJ1Y3QgbXhsODYyeHhfcHJpdiAqcHJpdiA9IGRzLVxcdTAwM2Vwcml2O1xcbitcXG4rXFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXFx1MDAyNnByaXYtXFx1MDAzZWZsYWdzKTtcXG4rXFx0ZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYyhcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdHNfd29yayk7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgbXhsODYyeHhfcG9ydF9zdGF0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCBib29sIGVuYWJsZSlcXG5AQCAtMjA0Nyw5ICsyMDU5LDcgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfZ2V0X3N0YXRzNjQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG4gXFxuIFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZwcml2LVxcdTAwM2Vwb3J0c1twb3J0XS5zdGF0c19sb2NrKTtcXG4gXFxuLVxcdC8qIFRyaWdnZXIgYSBmcmVzaCBwb2xsIHNvIHRoZSBuZXh0IHJlYWQgc2VlcyB1cC10by1kYXRlIGNvdW50ZXJzLlxcbi1cXHQgKiBOby1vcCBpZiB0aGUgd29yayBpcyBhbHJlYWR5IHBlbmRpbmcsIHJ1bm5pbmcsIG9yIHRlYXJkb3duIHN0YXJ0ZWQuXFxuLVxcdCAqL1xcbitcXHQvKiBUcmlnZ2VyIGEgZnJlc2ggcG9sbCBzbyB0aGUgbmV4dCByZWFkIHNlZXMgdXAtdG8tZGF0ZSBjb3VudGVycy4gKi9cXG4gXFx0aWYgKCF0ZXN0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXFx1MDAyNnByaXYtXFx1MDAzZWZsYWdzKSlcXG4gXFx0XFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrLCAwKTtcXG4gfVxcbkBAIC0yMDU3LDYgKzIwNjcsNyBAQCBzdGF0aWMgdm9pZCBteGw4NjJ4eF9nZXRfc3RhdHM2NChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGRzYV9zd2l0Y2hfb3BzIG14bDg2Mnh4X3N3aXRjaF9vcHMgPSB7XFxuIFxcdC5nZXRfdGFnX3Byb3RvY29sID0gbXhsODYyeHhfZ2V0X3RhZ19wcm90b2NvbCxcXG4gXFx0LnNldHVwID0gbXhsODYyeHhfc2V0dXAsXFxuK1xcdC50ZWFyZG93biA9IG14bDg2Mnh4X3RlYXJkb3duLFxcbiBcXHQucG9ydF9zZXR1cCA9IG14bDg2Mnh4X3BvcnRfc2V0dXAsXFxuIFxcdC5wb3J0X3RlYXJkb3duID0gbXhsODYyeHhfcG9ydF90ZWFyZG93bixcXG4gXFx0LnBoeWxpbmtfZ2V0X2NhcHMgPSBteGw4NjJ4eF9waHlsaW5rX2dldF9jYXBzLFxcbkBAIC0yMTMxLDcgKzIxNDIsNiBAQCBzdGF0aWMgaW50IG14bDg2Mnh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG4gXFx0ZXJyID0gZHNhX3JlZ2lzdGVyX3N3aXRjaChkcyk7XFxuIFxcdGlmIChlcnIpIHtcXG4gXFx0XFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXFx1MDAyNnByaXYtXFx1MDAzZWZsYWdzKTtcXG4tXFx0XFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrKTtcXG4gXFx0XFx0bXhsODYyeHhfaG9zdF9zaHV0ZG93bihwcml2KTtcXG4gXFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSsrKVxcbiBcXHRcXHRcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2Vwb3J0c1tpXS5ob3N0X2Zsb29kX3dvcmspO1xcbkBAIC0yMTUyLDcgKzIxNjIsNiBAQCBzdGF0aWMgdm9pZCBteGw4NjJ4eF9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbiBcXHRwcml2ID0gZHMtXFx1MDAzZXByaXY7XFxuIFxcbiBcXHRzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcXHUwMDI2cHJpdi1cXHUwMDNlZmxhZ3MpO1xcbi1cXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXN0YXRzX3dvcmspO1xcbiBcXG4gXFx0ZHNhX3VucmVnaXN0ZXJfc3dpdGNoKGRzKTtcXG4gXFxuQEAgLTIxODEsNyArMjE5MCw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X3NodXRkb3duKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG4gXFx0ZHNhX3N3aXRjaF9zaHV0ZG93bihkcyk7XFxuIFxcbiBcXHRzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcXHUwMDI2cHJpdi1cXHUwMDNlZmxhZ3MpO1xcbi1cXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXN0YXRzX3dvcmspO1xcbitcXHRkaXNhYmxlX2RlbGF5ZWRfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrKTtcXG4gXFxuIFxcdG14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoxMS43MzUyMzUzNDZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjQ3OTkxNDA5NTMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBjaGFuZ2VzIGFyZSByZXN0cmljdGVkIHRvIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMpLCBhZGp1c3Rpbmcgc2V0dXAsIHRlYXJkb3duLCBhbmQgd29yayBjYW5jZWxsYXRpb24gcGF0aHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIGRlZGljYXRlZCBwaHlzaWNhbCBoYXJkd2FyZSAoTWF4TGluZWFyIE14TDg2MjgyL014TDg2MjUyIHN3aXRjaCBjaGlwcyBhdHRhY2hlZCB2aWEgTURJTyBhbmQgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZSkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzczM2YwYTQ0MDMyYTE0Y2VjMDQ3NzExZTVjZTg1MDQ3YzgyMWRjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgU2VwIDEwIDE0OjQ4OjEwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMgYi9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xuaW5kZXggY2ZhN2UzZTI2OWEyOC4uZTA1YWQ1MmNkMjk3ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xuQEAgLTY4NSwxMCArNjg1LDIyIEBAIHN0YXRpYyBpbnQgbXhsODYyeHhfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFx0aWYgKHJldClcbiBcdFx0cmV0dXJuIHJldDtcbiBcbitcdHJldCA9IG14bDg2Mnh4X3NldHVwX21kaW8oZHMpO1xuK1x0aWYgKHJldClcbitcdFx0cmV0dXJuIHJldDtcbitcbiBcdHNjaGVkdWxlX2RlbGF5ZWRfd29yayhcdTAwMjZwcml2LVx1MDAzZXN0YXRzX3dvcmssXG4gXHRcdFx0ICAgICAgTVhMODYyWFhfU1RBVFNfUE9MTF9JTlRFUlZBTCk7XG4gXG4tXHRyZXR1cm4gbXhsODYyeHhfc2V0dXBfbWRpbyhkcyk7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4rc3RhdGljIHZvaWQgbXhsODYyeHhfdGVhcmRvd24oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuK3tcbitcdHN0cnVjdCBteGw4NjJ4eF9wcml2ICpwcml2ID0gZHMtXHUwMDNlcHJpdjtcbitcbitcdHNldF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsIFx1MDAyNnByaXYtXHUwMDNlZmxhZ3MpO1xuK1x0ZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXN0YXRzX3dvcmspO1xuIH1cbiBcbiBzdGF0aWMgaW50IG14bDg2Mnh4X3BvcnRfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgYm9vbCBlbmFibGUpXG5AQCAtMjA0Nyw5ICsyMDU5LDcgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfZ2V0X3N0YXRzNjQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbiBcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnByaXYtXHUwMDNlcG9ydHNbcG9ydF0uc3RhdHNfbG9jayk7XG4gXG4tXHQvKiBUcmlnZ2VyIGEgZnJlc2ggcG9sbCBzbyB0aGUgbmV4dCByZWFkIHNlZXMgdXAtdG8tZGF0ZSBjb3VudGVycy5cbi1cdCAqIE5vLW9wIGlmIHRoZSB3b3JrIGlzIGFscmVhZHkgcGVuZGluZywgcnVubmluZywgb3IgdGVhcmRvd24gc3RhcnRlZC5cbi1cdCAqL1xuK1x0LyogVHJpZ2dlciBhIGZyZXNoIHBvbGwgc28gdGhlIG5leHQgcmVhZCBzZWVzIHVwLXRvLWRhdGUgY291bnRlcnMuICovXG4gXHRpZiAoIXRlc3RfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcdTAwMjZwcml2LVx1MDAzZWZsYWdzKSlcbiBcdFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yaywgMCk7XG4gfVxuQEAgLTIwNTcsNiArMjA2Nyw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X2dldF9zdGF0czY0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBteGw4NjJ4eF9zd2l0Y2hfb3BzID0ge1xuIFx0LmdldF90YWdfcHJvdG9jb2wgPSBteGw4NjJ4eF9nZXRfdGFnX3Byb3RvY29sLFxuIFx0LnNldHVwID0gbXhsODYyeHhfc2V0dXAsXG4rXHQudGVhcmRvd24gPSBteGw4NjJ4eF90ZWFyZG93bixcbiBcdC5wb3J0X3NldHVwID0gbXhsODYyeHhfcG9ydF9zZXR1cCxcbiBcdC5wb3J0X3RlYXJkb3duID0gbXhsODYyeHhfcG9ydF90ZWFyZG93bixcbiBcdC5waHlsaW5rX2dldF9jYXBzID0gbXhsODYyeHhfcGh5bGlua19nZXRfY2FwcyxcbkBAIC0yMTMxLDcgKzIxNDIsNiBAQCBzdGF0aWMgaW50IG14bDg2Mnh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiBcdGVyciA9IGRzYV9yZWdpc3Rlcl9zd2l0Y2goZHMpO1xuIFx0aWYgKGVycikge1xuIFx0XHRzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcdTAwMjZwcml2LVx1MDAzZWZsYWdzKTtcbi1cdFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yayk7XG4gXHRcdG14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7XG4gXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSsrKVxuIFx0XHRcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2Vwb3J0c1tpXS5ob3N0X2Zsb29kX3dvcmspO1xuQEAgLTIxNTIsNyArMjE2Miw2IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X3JlbW92ZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG4gXHRwcml2ID0gZHMtXHUwMDNlcHJpdjtcbiBcbiBcdHNldF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsIFx1MDAyNnByaXYtXHUwMDNlZmxhZ3MpO1xuLVx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yayk7XG4gXG4gXHRkc2FfdW5yZWdpc3Rlcl9zd2l0Y2goZHMpO1xuIFxuQEAgLTIxODEsNyArMjE5MCw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X3NodXRkb3duKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiBcdGRzYV9zd2l0Y2hfc2h1dGRvd24oZHMpO1xuIFxuIFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4tXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbitcdGRpc2FibGVfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbiBcbiBcdG14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoxMS43MzUyMzcwMjZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0MDU3NTAzNjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXNzZXNzbWVudCBvZiB0aGlzIHBhdGNoLCBhcHByb2FjaGVkIGFzIEkgd291bGQuXG5cbioqQW5hbHl6aW5nIGEgRFNBIERyaXZlciBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcy4gVGhlIGZpcnN0IHRoaW5nIEknbSBkb2luZyBpcyBzaXppbmcgdXAgdGhpcyBwYXRjaCB0byBzZWUgaWYgaXQncyBldmVuIHdvcnRoIGZ1enppbmcsIGFuZCBpZiBzbywgd2hhdCBraW5kIG9mIGVmZm9ydCBhbmQgY29uZmlndXJhdGlvbiB3ZSdyZSBsb29raW5nIGF0LlxuXG5NeSBpbml0aWFsIHNjYW4gdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIGEgbW9kaWZpZWQgZmlsZTogYGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBhIERTQSBkcml2ZXIsIGFuZCBtb3JlIHNwZWNpZmljYWxseSwgaXQncyB0aWVkIHRvIGEgTWF4TGluZWFyIE1YTDg2Mnh4IEV0aGVybmV0IHN3aXRjaC4gVGhhdCdzIGEgc29saWQgc3RhcnRpbmcgcG9pbnQuIERTQSBkcml2ZXJzIGFyZSBvZnRlbiBqdWljeSB0YXJnZXRzIGZvciBmdXp6aW5nLCBnaXZlbiB0aGVpciBpbnRlcmFjdGlvbiB3aXRoIG5ldHdvcmsgdHJhZmZpYyBhbmQgaGFyZHdhcmUuIE5ldHdvcmsgZHJpdmVycyBhcmUgZ2VuZXJhbGx5IGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuXG5cbk15IG5leHQgc3RlcCwgYW5kIHRoaXMgaXMgd2hlcmUgSSdkIGxldmVyYWdlIHNvbWUgcXVpY2sgdG9vbHMsIGlzIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYmlnZ2VyIHBpY3R1cmUuIEknbSBoaXR0aW5nIGBncmVwcGVyYCBvciBgcmVhZC1maWxlYCB0byBncmFiIHNvbWUga2V5IGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBoYXJkd2FyZSB0eXBlLCBidXMgdHlwZSwgYW5kIGFueSByZWxldmFudCBLY29uZmlnIG9wdGlvbnMuIFRoaW5ncyBsaWtlIGlmIHRoaXMgZHJpdmVyIGlzIG1vZHVsYXIsIHdoYXQgaGFyZHdhcmUgaXQgc3VwcG9ydHMsIGFuZCBpZiBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcmUgbmVjZXNzYXJ5IHRvIGVuYWJsZSBpdCBhcmUgY3JpdGljYWwuIFRoaXMgdGVsbHMgbWUgaWYgSSBuZWVkIHRvIGJ1aWxkIGEgc3BlY2lmaWMga2VybmVsIGNvbmZpZyBvciBpZiBhIGdlbmVyaWMgb25lIHdpbGwgc3VmZmljZS4gU3BlY2lmaWNhbGx5LCBmaW5kaW5nIG91dCBpZiB0aGVyZSBhcmUgYW55IHNwZWNpZmljIHBhcmFtZXRlcnMgSSBjYW4gZmVlZCB0byBhIGZ1enplci5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg0MywiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjE1Ljc5Mjc0NzIwM1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODY2MjI3NDE4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORVRfRFNBX01YTDg2MlhYXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoxNy42NTg5ODEyMzFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMjk0MDMwMjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIE5ldHdvcmsgRGV2aWNlIERyaXZlciBCdWlsZCBQcm9jZXNzKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGRyaXZlcnMgYXJlIGJlaW5nIGJ1aWx0IGFuZCBpbmNsdWRlZC4gTXkgZmlyc3QgaW5zdGluY3QsIGdpdmVuIHRoZSBjb250ZXh0LCBpcyB0byBsb29rIGF0IHRoZSByZWxldmFudCBLY29uZmlnIGFuZCBNYWtlZmlsZSBmaWxlcy4gVGhlIGxpa2VseSBwbGFjZXMgdG8gc3RhcnQgYXJlIHVuZGVyIHRoZSBgZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L2AgZGlyZWN0b3J5LCBzcGVjaWZpY2FsbHkgc2luY2Ugd2UncmUgZGVhbGluZyB3aXRoIGEgc3BlY2lmaWMgY2hpcC4gSG93ZXZlciwgc2luY2UgSSdtIHRyeWluZyB0byBnZXQgYSBicm9hZGVyIHVuZGVyc3RhbmRpbmcsIEknbGwgYWxzbyBnbGFuY2UgYXQgYGRyaXZlcnMvbmV0L2RzYS9gIG1vcmUgZ2VuZXJhbGx5LCBqdXN0IGluIGNhc2UgdGhlcmUncyBzb21lIHNoYXJlZCBjb25maWd1cmF0aW9uIG9yIGluY2x1ZGUuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGhhbmRsZSBvbiBob3cgdGhlIGJ1aWxkIHN5c3RlbSBpcyBtYW5hZ2luZyB0aGlzIG5ldHdvcmsgZGV2aWNlIGRyaXZlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NDMxNywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjE5Ljk1MzAxMzQ5NFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDc1Nzk5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJteGw4NjJ4eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2FcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMTIwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZz04NT1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZy04Ni1cXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZzo4Nzpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTg4LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIzPW9iai15XFx0XFx0XFx0XFx0Kz0gbXY4OGU2eHh4L1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZToyNDpvYmoteVxcdFxcdFxcdFxcdCs9IG14bDg2Mnh4L1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZS0yNS1vYmoteVxcdFxcdFxcdFxcdCs9IG5ldGMvXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX05FVF9EU0FfTVhMODYyKSArPSBteGw4NjJ4eF9kc2Eub1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9NYWtlZmlsZTozOm14bDg2Mnh4X2RzYS15IDo9IG14bDg2Mnh4Lm8gbXhsODYyeHgtaG9zdC5vIG14bDg2Mnh4LXBoeWxpbmsub1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oPTE2PXN0cnVjdCBtZGlvX3JlbGF5X2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIzLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNDogKiBzdHJ1Y3QgbXhsODYyeHhfcmVnaXN0ZXJfbW9kIC0gUmVnaXN0ZXIgYWNjZXNzIHBhcmFtZXRlciB0byBkaXJlY3RseVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNS0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZ5IGludGVybmFsIHJlZ2lzdGVyc1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTMxLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozMjpzdHJ1Y3QgbXhsODYyeHhfcmVnaXN0ZXJfbW9kIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzMtXFx0X19sZTE2IGFkZHI7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzgtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM5OiAqIGVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlciAtIFNvdXJjZS9EZXN0aW5hdGlvbiBNQUMgYWRkcmVzcyBmaWx0ZXJpbmdcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDAtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00NS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NDY6ZW51bSBteGw4NjJ4eF9tYWNfdGFibGVfZmlsdGVyIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDctXFx0TVhMODYyWFhfTUFDX0ZJTFRFUl9OT05FID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NjU6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9hZGQgLSBNQUMgVGFibGUgRW50cnkgdG8gYmUgYWRkZWRcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjYtICogQGZpZDogRmlsdGVyaW5nIElkZW50aWZpZXIgKEZJRCkgKG5vdCBzdXBwb3J0ZWQgYnkgYWxsIHN3aXRjaGVzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc0LSAqIEBtYWM6IE1BQyBBZGRyZXNzIHRvIGFkZCB0byB0aGUgdGFibGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzU6ICogQGZpbHRlcl9mbGFnOiBTZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03Ni0gKiBAaWdtcF9jb250cm9sbGVkOiBQYWNrZXQgaXMgbWFya2VkIGFzIElHTVAgY29udHJvbGxlZCBpZiBkZXN0aW5hdGlvbiBNQUNcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04My0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODQ6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9hZGQge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NS1cXHRfX2xlMTYgZmlkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTAxOiAqIHN0cnVjdCBteGw4NjJ4eF9tYWNfdGFibGVfcmVtb3ZlIC0gTUFDIFRhYmxlIEVudHJ5IHRvIGJlIHJlbW92ZWRcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAyLSAqIEBmaWQ6IEZpbHRlcmluZyBJZGVudGlmaWVyIChGSUQpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMy0gKiBAbWFjOiBNQUMgQWRkcmVzcyB0byBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlLlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDQ6ICogQGZpbHRlcl9mbGFnOiBTZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDUtICogQHRjaTogVENJIGZvciBCLVN0ZXBcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDktICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMDpzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX3JlbW92ZSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMS1cXHRfX2xlMTYgZmlkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExNy0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTE4OiAqIHN0cnVjdCBteGw4NjJ4eF9tYWNfdGFibGVfcmVhZCAtIE1BQyBUYWJsZSBFbnRyeSB0byBiZSByZWFkXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExOS0gKiBAaW5pdGlhbDogUmVzdGFydCB0aGUgZ2V0IG9wZXJhdGlvbiBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhYmxlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTI4LSAqIEBtYWM6IE1BQyBBZGRyZXNzLiBGaWxsZWQgb3V0IGJ5IHRoZSBzd2l0Y2ggQVBJIGltcGxlbWVudGF0aW9uLlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMjk6ICogQGZpbHRlcl9mbGFnOiBTZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMzAtICogQGlnbXBfY29udHJvbGxlZDogUGFja2V0IGlzIG1hcmtlZCBhcyBJR01QIGNvbnRyb2xsZWQgaWYgZGVzdGluYXRpb24gTUFDXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTQxLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxNDI6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9yZWFkIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTQzLVxcdHU4IGluaXRpYWw7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTYyLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxNjM6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9xdWVyeSAtIE1BQyBUYWJsZSBFbnRyeSBrZXktYmFzZWQgbG9va3VwXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE2NC0gKiBAbWFjOiBNQUMgQWRkcmVzcyB0byBzZWFyY2ggZm9yIChpbnB1dClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xNzItICogQHN0YXRpY19lbnRyeTogSW5kaWNhdGVzIGlmIHRoaXMgaXMgYSBTdGF0aWMgRW50cnlcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTczOiAqIEBmaWx0ZXJfZmxhZzogU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X21hY190YWJsZV9maWx0ZXIgKGlucHV0K291dHB1dClcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTc0LSAqIEBpZ21wX2NvbnRyb2xsZWQ6IElHTVAgY29udHJvbGxlZCBmbGFnXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTgwLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxODE6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9xdWVyeSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE4Mi1cXHR1OCBtYWNbRVRIX0FMRU5dO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIwMC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjAxOiAqIGVudW0gbXhsODYyeHhfbWFjX2NsZWFyX3R5cGUgLSBNQUMgdGFibGUgY2xlYXIgdHlwZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMDItICogQE1YTDg2MlhYX01BQ19DTEVBUl9QSFlfUE9SVDogY2xlYXIgZHluYW1pYyBlbnRyaWVzIGJhc2VkIG9uIHBvcnRfaWRcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMDQtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIwNTplbnVtIG14bDg2Mnh4X21hY19jbGVhcl90eXBlIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjA2LVxcdE1YTDg2MlhYX01BQ19DTEVBUl9QSFlfUE9SVCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjEwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMTE6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9jbGVhciAtIE1BQyB0YWJsZSBjbGVhclxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMTI6ICogQHR5cGU6IHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9tYWNfY2xlYXJfdHlwZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMTMtICogQHBvcnRfaWQ6IHBoeXNpY2FsIHBvcnQgaWRcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjE0LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMTU6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9jbGVhciB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIxNi1cXHR1OCB0eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIyMC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjIxOiAqIGVudW0gbXhsODYyeHhfYWdlX3RpbWVyIC0gQWdpbmcgVGltZXIgVmFsdWUuXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIyMi0gKiBATVhMODYyWFhfQUdFVElNRVJfMV9TRUM6IDEgc2Vjb25kIGFnaW5nIHRpbWVcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMjgtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIyOTplbnVtIG14bDg2Mnh4X2FnZV90aW1lciB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIzMC1cXHRNWEw4NjJYWF9BR0VUSU1FUl8xX1NFQyA9IDEsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjM4LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMzk6ICogc3RydWN0IG14bDg2Mnh4X2JyaWRnZV9hbGxvYyAtIEJyaWRnZSBBbGxvY2F0aW9uXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI0MC0gKiBAYnJpZGdlX2lkOiBJZiB0aGUgYnJpZGdlIGFsbG9jYXRpb24gaXMgc3VjY2Vzc2Z1bCwgYSB2YWxpZCBJRCB3aWxsIGJlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjQ3LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNDg6c3RydWN0IG14bDg2Mnh4X2JyaWRnZV9hbGxvYyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI0OS1cXHRfX2xlMTYgYnJpZGdlX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI1Mi0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjUzOiAqIGVudW0gbXhsODYyeHhfYnJpZGdlX2NvbmZpZ19tYXNrIC0gQnJpZGdlIGNvbmZpZ3VyYXRpb24gbWFza1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNTQtICogQE1YTDg2MlhYX0JSSURHRV9DT05GSUdfTUFTS19NQUNfTEVBUk5JTkdfTElNSVQ6XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjY3LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNjg6ZW51bSBteGw4NjJ4eF9icmlkZ2VfY29uZmlnX21hc2sge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNjktXFx0TVhMODYyWFhfQlJJREdFX0NPTkZJR19NQVNLX01BQ19MRUFSTklOR19MSU1JVCA9IEJJVCgwKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNzgtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjI3OTogKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9wb3J0X2VncmVzc19tZXRlciAtIE1ldGVycyBmb3IgZWdyZXNzIHRyYWZmaWMgdHlwZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yODAtICogQE1YTDg2MlhYX0JSSURHRV9QT1JUX0VHUkVTU19NRVRFUl9CUk9BRENBU1Q6XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjkzLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyOTQ6ZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9lZ3Jlc3NfbWV0ZXIge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yOTUtXFx0TVhMODYyWFhfQlJJREdFX1BPUlRfRUdSRVNTX01FVEVSX0JST0FEQ0FTVCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzA0LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozMDU6ICogc3RydWN0IG14bDg2Mnh4X3Fvc19tZXRlcl9jZmcgLSBSYXRlIG1ldGVyIGNvbmZpZ3VyYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzA2LSAqIEBlbmFibGU6IEVuYWJsZS9kaXNhYmxlIG1ldGVyXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzIwLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozMjE6c3RydWN0IG14bDg2Mnh4X3Fvc19tZXRlcl9jZmcge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zMjItXFx0dTggZW5hYmxlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTMzOC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzM5OiAqIGVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSAtIEJyaWRnZSBmb3J3YXJkaW5nIHR5cGUgb2YgcGFja2V0XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM0MC0gKiBATVhMODYyWFhfQlJJREdFX0ZPUldBUkRfRkxPT0Q6IFBhY2tldCBpcyBmbG9vZGVkIHRvIHBvcnQgbWVtYmVycyBvZlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM0My0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzQ0OmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM0NS1cXHRNWEw4NjJYWF9CUklER0VfRk9SV0FSRF9GTE9PRCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzQ5LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozNTA6ICogc3RydWN0IG14bDg2Mnh4X2JyaWRnZV9jb25maWcgLSBCcmlkZ2UgQ29uZmlndXJhdGlvblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNTEtICogQGJyaWRnZV9pZDogQnJpZGdlIElEIChGSUQpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM1MjogKiBAbWFzazogU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9jb25maWdfbWFza1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNTMtICogQG1hY19sZWFybmluZ19saW1pdF9lbmFibGU6IEVuYWJsZSBNQUMgbGVhcm5pbmcgbGltaXRhdGlvblxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2My0gKiBAZm9yd2FyZF9icm9hZGNhc3Q6IEZvcndhcmRpbmcgbW9kZSBvZiBicm9hZGNhc3QgdHJhZmZpYy4gU2VlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM2NDogKiAgICAgICAgICAgICAgICAgICAgIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzY1LSAqIEBmb3J3YXJkX3Vua25vd25fbXVsdGljYXN0X2lwOiBGb3J3YXJkaW5nIG1vZGUgb2YgdW5rbm93biBtdWx0aWNhc3QgSVBcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzY2LSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFmZmljLlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozNjc6ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9icmlkZ2VfZm9yd2FyZF9tb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2OC0gKiBAZm9yd2FyZF91bmtub3duX211bHRpY2FzdF9ub25faXA6IEZvcndhcmRpbmcgbW9kZSBvZiB1bmtub3duIG11bHRpY2FzdFxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNjktICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub24tSVAgdHJhZmZpYy5cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzcwOiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzcxLSAqIEBmb3J3YXJkX3Vua25vd25fdW5pY2FzdDogRm9yd2FyZGluZyBtb2RlIG9mIHVua25vd24gdW5pY2FzdCB0cmFmZmljLiBTZWVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzcyOiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNzMtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM3NDpzdHJ1Y3QgbXhsODYyeHhfYnJpZGdlX2NvbmZpZyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM3NS1cXHRfX2xlMTYgYnJpZGdlX2lkO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozNzY6XFx0X19sZTMyIG1hc2s7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2NvbmZpZ19tYXNrICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM3Ny1cXHR1OCBtYWNfbGVhcm5pbmdfbGltaXRfZW5hYmxlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM4Mi1cXHRfX2xlMTYgdHJhZmZpY19zdWJfbWV0ZXJfaWRbTVhMODYyWFhfQlJJREdFX1BPUlRfRUdSRVNTX01FVEVSX01BWF07XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM4MzpcXHRfX2xlMzIgZm9yd2FyZF9icm9hZGNhc3Q7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozODQ6XFx0X19sZTMyIGZvcndhcmRfdW5rbm93bl9tdWx0aWNhc3RfaXA7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozODU6XFx0X19sZTMyIGZvcndhcmRfdW5rbm93bl9tdWx0aWNhc3Rfbm9uX2lwOyAvKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzg2OlxcdF9fbGUzMiBmb3J3YXJkX3Vua25vd25fdW5pY2FzdDsgLyogZW51bSBteGw4NjJ4eF9icmlkZ2VfZm9yd2FyZF9tb2RlICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM4Ny19IF9fcGFja2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM4OS0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzkwOiAqIHN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfcG9ydF9hbGxvYyAtIEJyaWRnZSBQb3J0IEFsbG9jYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzkxLSAqIEBicmlkZ2VfcG9ydF9pZDogSWYgdGhlIGJyaWRnZSBwb3J0IGFsbG9jYXRpb24gaXMgc3VjY2Vzc2Z1bCwgYSB2YWxpZCBJRFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM5Ny0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzk4OnN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfcG9ydF9hbGxvYyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM5OS1cXHRfX2xlMTYgYnJpZGdlX3BvcnRfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDAyLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo0MDM6ICogZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9jb25maWdfbWFzayAtIEJyaWRnZSBQb3J0IGNvbmZpZ3VyYXRpb24gbWFza1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00MDQtICogQE1YTDg2MlhYX0JSSURHRV9QT1JUX0NPTkZJR19NQVNLX0JSSURHRV9JRDpcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00NjItICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjQ2MzplbnVtIG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZ19tYXNrIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDY0LVxcdE1YTDg2MlhYX0JSSURHRV9QT1JUX0NPTkZJR19NQVNLX0JSSURHRV9JRCA9IEJJVCgwKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00OTEtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjQ5MjogKiBlbnVtIG14bDg2Mnh4X2NvbG9yX21hcmtpbmdfbW9kZSAtIENvbG9yIE1hcmtpbmcgTW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00OTMtICogQE1YTDg2MlhYX01BUktJTkdfQUxMX0dSRUVOOiBtYXJrIHBhY2tldHMgKGV4Y2VwdCBjcml0aWNhbCkgdG8gZ3JlZW5cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01MDEtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjUwMjplbnVtIG14bDg2Mnh4X2NvbG9yX21hcmtpbmdfbW9kZSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUwMy1cXHRNWEw4NjJYWF9NQVJLSU5HX0FMTF9HUkVFTiA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTEzLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1MTQ6ICogZW51bSBteGw4NjJ4eF9jb2xvcl9yZW1hcmtpbmdfbW9kZSAtIENvbG9yIFJlbWFya2luZyBNb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUxNS0gKiBATVhMODYyWFhfUkVNQVJLSU5HX05PTkU6IHZhbHVlcyBmcm9tIGxhc3QgcHJvY2VzcyBzdGFnZVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUyMi0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTIzOmVudW0gbXhsODYyeHhfY29sb3JfcmVtYXJraW5nX21vZGUge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01MjQtXFx0TVhMODYyWFhfUkVNQVJLSU5HX05PTkUgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUzMy0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTM0OiAqIGVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGUgLSBQLW1hcHBlciBNYXBwaW5nIE1vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTM1LSAqIEBNWEw4NjJYWF9QTUFQUEVSX01BUFBJTkdfUENQOiBVc2UgUENQIGZvciBWTEFOIHRhZ2dlZCBwYWNrZXRzIHRvIGRlcml2ZVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU0MS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTQyOmVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGUge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NDMtXFx0TVhMODYyWFhfUE1BUFBFUl9NQVBQSU5HX1BDUCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTQ4LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1NDk6ICogc3RydWN0IG14bDg2Mnh4X3BtYXBwZXIgLSBQLW1hcHBlciBDb25maWd1cmF0aW9uXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU1MC0gKiBAcG1hcHBlcl9pZDogSW5kZXggb2YgUC1tYXBwZXIgKDAtMzEpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTYwLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1NjE6c3RydWN0IG14bDg2Mnh4X3BtYXBwZXIge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NjItXFx0X19sZTE2IHBtYXBwZXJfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTY2LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1Njc6ICogc3RydWN0IG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZyAtIEJyaWRnZSBQb3J0IENvbmZpZ3VyYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTY4LSAqIEBicmlkZ2VfcG9ydF9pZDogQnJpZGdlIFBvcnQgSUQgYWxsb2NhdGVkIGJ5IGJyaWRnZSBwb3J0IGFsbG9jYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTY5OiAqIEBtYXNrOiBTZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX3BvcnRfY29uZmlnX21hc2tcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTcwLSAqIEBicmlkZ2VfaWQ6IEJyaWRnZSBJRCAoRklEKSB0byB3aGljaCB0aGlzIGJyaWRnZSBwb3J0IGlzIGFzc29jaWF0ZWRcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01ODMtICogQGluZ3Jlc3NfbWFya2luZ19tb2RlOiBJbmdyZXNzIGNvbG9yIG1hcmtpbmcgbW9kZS4gU2VlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU4NDogKiAgICAgICAgICAgICAgICAgICAgICAgIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2NvbG9yX21hcmtpbmdfbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01ODUtICogQGVncmVzc19yZW1hcmtpbmdfbW9kZTogQ29sb3IgcmVtYXJraW5nIGZvciBlZ3Jlc3MgdHJhZmZpYy4gU2VlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU4NjogKiAgICAgICAgICAgICAgICAgICAgICAgICBcXHUwMDI2ZW51bSBteGw4NjJ4eF9jb2xvcl9yZW1hcmtpbmdfbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01ODctICogQGluZ3Jlc3NfbWV0ZXJpbmdfZW5hYmxlOiBUcmFmZmljIG1ldGVyaW5nIG9uIGluZ3Jlc3MgdHJhZmZpYyBhcHBsaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTk3LSAqIEBwbWFwcGVyX21hcHBpbmdfbW9kZTogUC1tYXBwZXIgbWFwcGluZyBtb2RlLiBTZWVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTk4OiAqICAgICAgICAgICAgICAgICAgICAgICAgXFx1MDAyNmVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTk5LSAqIEBwbWFwcGVyX2lkX3ZhbGlkOiBXaGVuIHRydWUsIFAtbWFwcGVyIGlzIHJlLXVzZWQ7IHdoZW4gZmFsc2UsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjUzLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NTQ6c3RydWN0IG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY1NS1cXHRfX2xlMTYgYnJpZGdlX3BvcnRfaWQ7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjY1NjpcXHRfX2xlMzIgbWFzazsgLyogZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9jb25maWdfbWFzayAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NTctXFx0X19sZTE2IGJyaWRnZV9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NjMtXFx0X19sZTE2IGVncmVzc19leHRlbmRlZF92bGFuX2Jsb2NrX3NpemU7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjY2NDpcXHRfX2xlMzIgaW5ncmVzc19tYXJraW5nX21vZGU7IC8qIGVudW0gbXhsODYyeHhfY29sb3JfbWFya2luZ19tb2RlICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjY2NTpcXHRfX2xlMzIgZWdyZXNzX3JlbWFya2luZ19tb2RlOyAvKiBlbnVtIG14bDg2Mnh4X2NvbG9yX3JlbWFya2luZ19tb2RlICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY2Ni1cXHR1OCBpbmdyZXNzX21ldGVyaW5nX2VuYWJsZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NzItXFx0X19sZTE2IGRlc3Rfc3ViX2lmX2lkX2dyb3VwO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NzM6XFx0X19sZTMyIHBtYXBwZXJfbWFwcGluZ19tb2RlOyAvKiBlbnVtIG14bDg2Mnh4X3BtYXBwZXJfbWFwcGluZ19tb2RlICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY3NC1cXHR1OCBwbWFwcGVyX2lkX3ZhbGlkO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NzU6XFx0c3RydWN0IG14bDg2Mnh4X3BtYXBwZXIgcG1hcHBlcjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjc2LVxcdF9fbGUxNiBicmlkZ2VfcG9ydF9tYXBbOF07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzA5LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MTA6ICogc3RydWN0IG14bDg2Mnh4X2NmZyAtICBHbG9iYWwgU3dpdGNoIGNvbmZpZ3VyYXRpb24gQXR0cmlidXRlc1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MTE6ICogQG1hY190YWJsZV9hZ2VfdGltZXI6IFNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9hZ2VfdGltZXJcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzEyLSAqIEBhZ2VfdGltZXI6IEN1c3RvbSBNQUMgdGFibGUgYWdpbmcgdGltZXIgaW4gc2Vjb25kc1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTcyMi0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzIzOnN0cnVjdCBteGw4NjJ4eF9jZmcge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MjQ6XFx0X19sZTMyIG1hY190YWJsZV9hZ2VfdGltZXI7IC8qIGVudW0gbXhsODYyeHhfYWdlX3RpbWVyICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTcyNS1cXHRfX2xlMzIgYWdlX3RpbWVyO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTczNC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzM1OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfdHlwZSAtIEV4dGVuZGVkIFZMQU4gZmlsdGVyIHRhZyB0eXBlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTczNi0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9UWVBFX05PUk1BTDogTm9ybWFsIHRhZ2dlZFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc0MC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzQxOmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfdHlwZSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc0Mi1cXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX1RZUEVfTk9STUFMID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NDgtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc0OTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3RwaWQgLSBFeHRlbmRlZCBWTEFOIGZpbHRlciBUUElEXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc1MC0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9UUElEX05PX0ZJTFRFUjogTm8gVFBJRCBmaWx0ZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NTMtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc1NDplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3RwaWQge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NTUtXFx0TVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9UUElEX05PX0ZJTFRFUiA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzYwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3NjE6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl9kZWkgLSBFeHRlbmRlZCBWTEFOIGZpbHRlciBERUlcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzYyLSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX0RFSV9OT19GSUxURVI6IE5vIERFSSBmaWx0ZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NjUtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc2NjplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2RlaSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2Ny1cXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX0RFSV9OT19GSUxURVIgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc3Mi0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzczOiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcmVtb3ZlX3RhZyAtIFRhZyByZW1vdmFsIGFjdGlvblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NzQtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfTk9UX1JFTU9WRV9UQUc6IERvIG5vdCByZW1vdmUgdGFnXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzc4LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3Nzk6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9yZW1vdmVfdGFnIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzgwLVxcdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfTk9UX1JFTU9WRV9UQUcgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc4Ni0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Nzg3OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcHJpb3JpdHkgLSBUcmVhdG1lbnQgcHJpb3JpdHkgbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03ODgtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfUFJJT1JJVFlfVkFMOiBVc2UgZXhwbGljaXQgdmFsdWVcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03OTItICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc5MzplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ByaW9yaXR5IHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzk0LVxcdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfUFJJT1JJVFlfVkFMID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MDAtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgwMTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ZpZCAtIFRyZWF0bWVudCBWSUQgbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MDItICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfVklEX1ZBTDogVXNlIGV4cGxpY2l0IFZJRCB2YWx1ZVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgwNS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODA2OmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfdmlkIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODA3LVxcdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfVklEX1ZBTCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODEyLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4MTM6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF90cGlkIC0gVHJlYXRtZW50IFRQSUQgbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MTQtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfSU5ORVJfVFBJRDogQ29weSBmcm9tIGlubmVyIHRhZ1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgxOC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODE5OmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfdHBpZCB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyMC1cXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX0lOTkVSX1RQSUQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyNi0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODI3OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfZGVpIC0gVHJlYXRtZW50IERFSSBtb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyOC0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX1RSRUFUTUVOVF9JTk5FUl9ERUk6IENvcHkgZnJvbSBpbm5lciB0YWdcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MzItICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgzMzplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X2RlaSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgzNC1cXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX0lOTkVSX0RFSSA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODQwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4NDE6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuXzRfdHBpZF9tb2RlIC0gNC1UUElEIG1vZGUgc2VsZWN0b3JcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODQyLSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFBJRF9WVEVUWVBFXzE6IFZMQU4gVFBJRCB0eXBlIDFcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NDYtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg0NzplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fNF90cGlkX21vZGUge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NDgtXFx0TVhMODYyWFhfRVhURU5ERURWTEFOX1RQSURfVlRFVFlQRV8xID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NTQtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg1NTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2V0aGVydHlwZSAtIEZpbHRlciBFdGhlclR5cGUgbWF0Y2hcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODU2LSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX0VUSEVSVFlQRV9OT19GSUxURVI6IE5vIGZpbHRlclxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg2NC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODY1OmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfZXRoZXJ0eXBlIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODY2LVxcdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfRVRIRVJUWVBFX05PX0ZJTFRFUiA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODc2LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4Nzc6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXJfdmxhbiAtIFBlci10YWcgZmlsdGVyIGluIEV4dGVuZGVkIFZMQU5cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODc4OiAqIEB0eXBlOiBUYWcgcHJlc2VuY2UvdHlwZSBtYXRjaCAoc2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3R5cGUpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg3OS0gKiBAcHJpb3JpdHlfZW5hYmxlOiBFbmFibGUgUENQIHZhbHVlIG1hdGNoaW5nXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODgyLSAqIEB2aWRfdmFsOiBWSUQgdmFsdWUgdG8gbWF0Y2hcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODgzOiAqIEB0cGlkOiBUUElEIG1hdGNoIG1vZGUgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl90cGlkKVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4ODQ6ICogQGRlaTogREVJIG1hdGNoIG1vZGUgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl9kZWkpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg4NS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODg2OnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4ge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04ODctXFx0X19sZTMyIHR5cGU7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODk2LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4OTc6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXIgLSBFeHRlbmRlZCBWTEFOIGZpbHRlciBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg5OC0gKiBAb3JpZ2luYWxfcGFja2V0X2ZpbHRlcl9tb2RlOiBJZiB0cnVlLCBmaWx0ZXIgb24gb3JpZ2luYWwgKHByZS10cmVhdG1lbnQpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg5OS0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrZXRcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTAwOiAqIEBmaWx0ZXJfNF90cGlkX21vZGU6IDQtVFBJRCBtb2RlIChzZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl80X3RwaWRfbW9kZSlcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTAxLSAqIEBvdXRlcl92bGFuOiBPdXRlciBWTEFOIHRhZyBmaWx0ZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDMtICogQGV0aGVyX3R5cGU6IEV0aGVyVHlwZSBmaWx0ZXIgKHNlZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5MDQ6ICogICAgICAgICAgICAgIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2V0aGVydHlwZSlcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTA1LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5MDY6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXIge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDctXFx0dTggb3JpZ2luYWxfcGFja2V0X2ZpbHRlcl9tb2RlO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDgtXFx0X19sZTMyIGZpbHRlcl80X3RwaWRfbW9kZTtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTA5OlxcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4gb3V0ZXJfdmxhbjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTEwOlxcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4gaW5uZXJfdmxhbjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTExLVxcdF9fbGUzMiBldGhlcl90eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkxNC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTE1OiAqIHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50X3ZsYW4gLSBQZXItdGFnIHRyZWF0bWVudCBpblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTYtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVuZGVkIFZMQU5cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTE3LSAqIEBwcmlvcml0eV9tb2RlOiBQcmlvcml0eSBhc3NpZ25tZW50IG1vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTE4OiAqICAgICAgICAgICAgICAgICAoc2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ByaW9yaXR5KVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTktICogQHByaW9yaXR5X3ZhbDogUHJpb3JpdHkgdmFsdWUgKHdoZW4gbW9kZSBpcyBWQUwpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkyMC0gKiBAdmlkX21vZGU6IFZJRCBhc3NpZ25tZW50IG1vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTIxOiAqICAgICAgICAgICAgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF92aWQpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkyMi0gKiBAdmlkX3ZhbDogVklEIHZhbHVlICh3aGVuIG1vZGUgaXMgVkFMKVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjMtICogQHRwaWQ6IFRQSUQgYXNzaWdubWVudCBtb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkyNDogKiAgICAgICAgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF90cGlkKVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjUtICogQGRlaTogREVJIGFzc2lnbm1lbnQgbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5MjY6ICogICAgICAgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9kZWkpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkyNy0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTI4OnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50X3ZsYW4ge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjktXFx0X19sZTMyIHByaW9yaXR5X21vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTM3LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5Mzg6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnQgLSBFeHRlbmRlZCBWTEFOIHRyZWF0bWVudFxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MzktICogQHJlbW92ZV90YWc6IFRhZyByZW1vdmFsIGFjdGlvblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5NDA6ICogICAgICAgICAgICAgIChzZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcmVtb3ZlX3RhZylcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTQxLSAqIEB0cmVhdG1lbnRfNF90cGlkX21vZGU6IDQtVFBJRCB0cmVhdG1lbnQgbW9kZVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk1OC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTU5OnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50IHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTYwLVxcdF9fbGUzMiByZW1vdmVfdGFnO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk2Mi1cXHR1OCBhZGRfb3V0ZXJfdmxhbjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTYzOlxcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50X3ZsYW4gb3V0ZXJfdmxhbjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTY0LVxcdHU4IGFkZF9pbm5lcl92bGFuO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5NjU6XFx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnRfdmxhbiBpbm5lcl92bGFuO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05NjYtXFx0dTggcmVhc3NpZ25fYnJpZGdlX3BvcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTgwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5ODE6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9hbGxvYyAtIEV4dGVuZGVkIFZMQU4gYmxvY2sgYWxsb2NhdGlvblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05ODItICogQG51bWJlcl9vZl9lbnRyaWVzOiBOdW1iZXIgb2YgZW50cmllcyB0byBhbGxvY2F0ZSAoaW5wdXQpIC8gYWxsb2NhdGVkXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTg4LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5ODk6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9hbGxvYyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk5MC1cXHRfX2xlMTYgbnVtYmVyX29mX2VudHJpZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTk0LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5OTU6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9jb25maWcgLSBFeHRlbmRlZCBWTEFOIGVudHJ5IGNvbmZpZ3VyYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTk2LSAqIEBleHRlbmRlZF92bGFuX2Jsb2NrX2lkOiBCbG9jayBJRCBmcm9tIGFsbG9jYXRpb25cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDAyLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDAzOnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fY29uZmlnIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwNC1cXHRfX2xlMTYgZXh0ZW5kZWRfdmxhbl9ibG9ja19pZDtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwNS1cXHRfX2xlMTYgZW50cnlfaW5kZXg7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMDY6XFx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXIgZmlsdGVyO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDA3OlxcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50IHRyZWF0bWVudDtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwOC19IF9fcGFja2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMTAtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMTE6ICogZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayAtIFZMQU4gRmlsdGVyIFRDSSBtYXNrXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMTItICogQE1YTDg2MlhYX1ZMQU5fRklMVEVSX1RDSV9NQVNLX1ZJRDogVENJIG1hc2sgZm9yIFZMQU4gSURcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDE1LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDE2OmVudW0gbXhsODYyeHhfdmxhbl9maWx0ZXJfdGNpX21hc2sge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDE3LVxcdE1YTDg2MlhYX1ZMQU5fRklMVEVSX1RDSV9NQVNLX1ZJRCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAyMi0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTAyMzogKiBzdHJ1Y3QgbXhsODYyeHhfdmxhbmZpbHRlcl9hbGxvYyAtIFZMQU4gRmlsdGVyIGJsb2NrIGFsbG9jYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAyNC0gKiBAbnVtYmVyX29mX2VudHJpZXM6IE51bWJlciBvZiBlbnRyaWVzIHRvIGFsbG9jYXRlIChpbnB1dCkgLyBhbGxvY2F0ZWRcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDM0LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDM1OnN0cnVjdCBteGw4NjJ4eF92bGFuZmlsdGVyX2FsbG9jIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAzNi1cXHRfX2xlMTYgbnVtYmVyX29mX2VudHJpZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA0My0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA0NDogKiBzdHJ1Y3QgbXhsODYyeHhfdmxhbmZpbHRlcl9jb25maWcgLSBWTEFOIEZpbHRlciBlbnRyeSBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNDUtICogQHZsYW5fZmlsdGVyX2Jsb2NrX2lkOiBCbG9jayBJRCBmcm9tIGFsbG9jYXRpb25cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDQ3LSAqIEB2bGFuX2ZpbHRlcl9tYXNrOiBUQ0kgZmllbGQocykgdG8gbWF0Y2ggKHNlZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDQ4OiAqICAgICAgICAgICAgICAgICAgICBcXHUwMDI2ZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzaylcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA0OS0gKiBAdmFsOiBUQ0kgdmFsdWUocykgdG8gbWF0Y2ggKFZJRCwgUENQLCBvciBmdWxsIFRDSSBkZXBlbmRpbmcgb24gbWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDU0LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDU1OnN0cnVjdCBteGw4NjJ4eF92bGFuZmlsdGVyX2NvbmZpZyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNTYtXFx0X19sZTE2IHZsYW5fZmlsdGVyX2Jsb2NrX2lkO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDU3LVxcdF9fbGUxNiBlbnRyeV9pbmRleDtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA1ODpcXHRfX2xlMzIgdmxhbl9maWx0ZXJfbWFzazsgLyogZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDU5LVxcdF9fbGUzMiB2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA2My0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA2NDogKiBlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19tYXNrIC0gU3BlY2lhbCB0YWcgdmFsaWQgZmllbGQgaW5kaWNhdG9yIGJpdHNcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA2NS0gKiBATVhMODYyWFhfU1NfU1BfVEFHX01BU0tfUlg6IHZhbGlkIFJYIHNwZWNpYWwgdGFnIG1vZGVcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDY5LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDcwOmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX21hc2sge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDcxLVxcdE1YTDg2MlhYX1NTX1NQX1RBR19NQVNLX1JYID0gQklUKDApLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNzctLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwNzg6ICogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfcnggLSBSWCBzcGVjaWFsIHRhZyBtb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNzktICogQE1YTDg2MlhYX1NTX1NQX1RBR19SWF9OT19UQUdfTk9fSU5TRVJUOiBwYWNrZXQgZG9lcyBOT1QgaGF2ZSBzcGVjaWFsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA4NS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA4NjplbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19yeCB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwODctXFx0TVhMODYyWFhfU1NfU1BfVEFHX1JYX05PX1RBR19OT19JTlNFUlQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwOTItLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwOTM6ICogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfdHggLSBUWCBzcGVjaWFsIHRhZyBtb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwOTQtICogQE1YTDg2MlhYX1NTX1NQX1RBR19UWF9OT19UQUdfTk9fUkVNT1ZFOiBwYWNrZXQgZG9lcyBOT1QgaGF2ZSBzcGVjaWFsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEwMi0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEwMzplbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ190eCB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMDQtXFx0TVhMODYyWFhfU1NfU1BfVEFHX1RYX05PX1RBR19OT19SRU1PVkUgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMTAtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMTE6ICogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfcnhfcGVuIC0gUlggc3BlY2lhbCB0YWcgaW5mbyBvdmVyIHByZWFtYmxlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMTItICogQE1YTDg2MlhYX1NTX1NQX1RBR19SWF9QRU5fQUxMXzA6IHNwZWNpYWwgdGFnIGluZm8gaW5zZXJ0ZWQgZnJvbSBieXRlIDJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTIyLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTIzOmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4X3BlbiB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMjQtXFx0TVhMODYyWFhfU1NfU1BfVEFHX1JYX1BFTl9BTExfMCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEzMC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEzMTogKiBzdHJ1Y3QgbXhsODYyeHhfc3Nfc3BfdGFnIC0gU3BlY2lhbCB0YWcgcG9ydCBzZXR0aW5nc1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTMyLSAqIEBwaWQ6IHBvcnQgSUQgKDF+MTYpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMzM6ICogQG1hc2s6IFNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9zc19zcF90YWdfbWFza1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTM0OiAqIEByeDogU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19yeFxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTM1OiAqIEB0eDogU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ190eFxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTM2OiAqIEByeF9wZW46IFNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9zc19zcF90YWdfcnhfcGVuXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMzctICogQHR4X3BlbjogVFggc3BlY2lhbCB0YWcgaW5mbyBvdmVyIHByZWFtYmxlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTE0MC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTE0MTpzdHJ1Y3QgbXhsODYyeHhfc3Nfc3BfdGFnIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTE0Mi1cXHR1OCBwaWQ7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExNDM6XFx0dTggbWFzazsgLyogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfbWFzayAqL1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoyMC4wMDM3Nzc4MTlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1MDU2MzgxNzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IGltbWVkaWF0ZSB0aG91Z2h0IHByb2Nlc3MsIGZvY3VzaW5nIG9uIHdoYXQgSSdkIGJlIGRvaW5nIGFuZCB3aHksIGdpdmVuIHRoZSBwcm9tcHQ6XG5cbioqRXhhbWluaW5nIGEgS2NvbmZpZyBGaWxlKipcblxuT2theSwgc28gSSdtIGJlaW5nIGFza2VkIHRvIGxvb2sgYXQgYGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9LY29uZmlnYC4gUmlnaHQgYXdheSwgdGhpcyB0ZWxscyBtZSBhIGZldyB0aGluZ3MuIEl0J3MgYSBLY29uZmlnIGZpbGUsIG1lYW5pbmcgaXQncyBpbnZvbHZlZCBpbiBjb25maWd1cmluZyB0aGUga2VybmVsIGJ1aWxkIHN5c3RlbS4gVGhlIHBhdGggaW5kaWNhdGVzIGl0J3MgcmVsYXRlZCB0byBuZXR3b3JrIGRyaXZlcnMsIHNwZWNpZmljYWxseSBhIERTQSAoRGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZSkgZHJpdmVyLCBmb3IgYSBkZXZpY2UgY2FsbGVkIG14bDg2Mnh4LlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dC4gSSdsbCBtZW50YWxseSBzdGFydCBhc2tpbmcgcXVlc3Rpb25zOlxuXG4qICAgV2hhdCdzIHRoZSBnb2FsIGhlcmU/IEFtIEkgZGVidWdnaW5nIHNvbWV0aGluZz8gVHJ5aW5nIHRvIHVuZGVyc3RhbmQgZGVwZW5kZW5jaWVzPyBPciBhbSBJIGNvbmZpZ3VyaW5nIGEgc3lzdGVtLCBhbmQgdHJ5aW5nIHRvIGVuYWJsZSB0aGlzIGRyaXZlcj9cbiogICBXaGF0IGtlcm5lbCB2ZXJzaW9uIGFyZSB3ZSB1c2luZz8gS2NvbmZpZyBzeW50YXggY2FuIHZhcnkgc2xpZ2h0bHkgYmV0d2VlbiB2ZXJzaW9ucywgdGhvdWdoIGZvciBhIGRyaXZlci1zcGVjaWZpYyBjb25maWcgbGlrZSB0aGlzIGl0IHByb2JhYmx5IHdvbid0IGJlIGEgbWFqb3IgaXNzdWUuXG4qICAgV2hhdCBvdGhlciBmaWxlcyBhcmUgcmVsZXZhbnQgdG8gdGhpcyBkcml2ZXI/IEkga25vdyB0aGF0IEtjb25maWcgZmlsZXMgb2Z0ZW4gcmVmZXJlbmNlIGNvcnJlc3BvbmRpbmcgYC5jYCBmaWxlcywgYW5kIEknZCBhbnRpY2lwYXRlIGxvb2tpbmcgYXQgdGhlIGRyaXZlcidzIHNvdXJjZSBjb2RlIGlmIHRoaXMgaXMgY29uZmlndXJhdGlvbi1yZWxhdGVkLlxuXG5JIGtub3cgSSdtIGxvb2tpbmcgYXQgYSBLY29uZmlnIGZpbGUsIHdoaWNoIG1lYW5zIGl0IHdpbGwgcHJvYmFibHkgZGVmaW5lOlxuXG4qICAgKipTeW1ib2xzOioqIFRoZXNlIGFyZSB0aGUgdmFyaWFibGVzIHRoZSB1c2VyIHNldHMgdG8gZW5hYmxlIG9yIGRpc2FibGUgZmVhdHVyZXMgcmVsYXRlZCB0byB0aGUgYG14bDg2Mnh4YCBkcml2ZXIuIEknbGwgYmUgbG9va2luZyBmb3IgdGhlaXIgbmFtZXMgYW5kIGRlc2NyaXB0aW9ucy4gSSdsbCBwYXkgYXR0ZW50aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlcyB0byBnZXQgYSBzZW5zZSBvZiB3aGV0aGVyIHRoZSBkcml2ZXIgaXMgZW5hYmxlZCBieSBkZWZhdWx0LlxuKiAgICoqRGVwZW5kZW5jaWVzOioqIEknbGwgYmUgc2Nhbm5pbmcgZm9yIGBkZXBlbmRzIG9uYCBzdGF0ZW1lbnRzLiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQgdGhhdCB3aWxsIHRlbGwgbWUgd2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgb3Igb3RoZXIgY29uZmlndXJhdGlvbnMgbXVzdCBiZSBlbmFibGVkIGJlZm9yZSB0aGlzIGRyaXZlciBjYW4gYmUgc2VsZWN0ZWQuIEknbGwgbmVlZCB0byBmb2xsb3cgdGhvc2UgZGVwZW5kZW5jaWVzIGFuZCBjaGVjayB3aGF0ICp0aG9zZSogY29uZmlncyBhcmUgc2V0dGluZy5cbiogICAqKk1lbnUgc3RydWN0dXJlOioqIEtjb25maWcgZmlsZXMgYXJlIG5lc3RlZCB0byBjcmVhdGUgYSBsb2dpY2FsIHdheSBmb3IgdXNlcnMgdG8gY29uZmlndXJlIHRoZWlyIHN5c3RlbS4gSSdsbCBiZSBsb29raW5nIGF0IHRoZSBuZXN0aW5nIGxldmVscyBhbmQgcmVsYXRpb25zaGlwcyB0byB1bmRlcnN0YW5kIGhvdyB0byBsb2NhdGUgdGhlIGBteGw4NjJ4eGAgZHJpdmVyIHdpdGhpbiB0aGUgb3ZlcmFsbCBrZXJuZWwgY29uZmlndXJhdGlvbiBtZW51LlxuKiAgICoqUHJvbXB0IChoZWxwIHRleHQpOioqIFRoZSBnb29kIEtjb25maWcgZmlsZXMgaGF2ZSBnb29kIGhlbHAgdGV4dCEgSSdsbCBiZSBvbiB0aGUgbG9va291dCBmb3IgYSBjbGVhciBleHBsYW5hdGlvbiBvZiB3aGF0IHRoaXMgZHJpdmVyIGRvZXMsIHRoZSBoYXJkd2FyZSBpdCBzdXBwb3J0cywgYW5kIGFueSBjb25maWd1cmF0aW9uIG9wdGlvbnMgSSBzaG91bGQgYmUgYXdhcmUgb2YuXG5cbkknbSByZWFkeSB0byBkaXZlIGludG8gdGhlIGZpbGUgYW5kIHN0YXJ0IGFuYWx5emluZyB0aGVzZSBlbGVtZW50cyBzeXN0ZW1hdGljYWxseS4gSSB3aWxsIGxvb2sgZm9yIGFueSBjbHVlcyBhYm91dCB3aGF0IGlzIGRyaXZpbmcgdGhpcyBpbnZlc3RpZ2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTkyMSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjI1LjA2MDE2MjIwNVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NjExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTkVUX0RTQV9NWEw4NjJcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJNYXhMaW5lYXIgTXhMODYyeHhcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE5FVF9EU0FcXG4gICA1OlxcdFxcdHNlbGVjdCBDUkMxNlxcbiAgIDY6XFx0XFx0c2VsZWN0IE5FVF9EU0FfVEFHX01YTF84NjJYWFxcbiAgIDc6XFx0XFx0aGVscFxcbiAgIDg6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIE1heExpbmVhciBNeEw4NjJ4eCBzd2l0Y2ggZmFtaWx5LlxcbiAgIDk6XFx0XFx0ICBUaGVzZSBzd2l0Y2hlcyBoYXZlIHR3byAxMEdFIFNlckRlcyBpbnRlcmZhY2VzLCBvbmUgdHlwaWNhbGx5XFxuICAxMDpcXHRcXHQgIHVzZWQgYXMgQ1BVIHBvcnQuXFxuICAxMTpcXHRcXHQgICAtIE14TDg2MjgyIGhhcyBlaWdodCAyLjUgR2lnYWJpdCBQSFlzXFxuICAxMjpcXHRcXHQgICAtIE14TDg2MjUyIGhhcyBmaXZlIDIuNSBHaWdhYml0IFBIWXNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6MjUuMDYwMjE4MjI1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjEyNzA0NTM5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYG14bDg2Mnh4YCBkcml2ZXIgY29kZS4gTXkgaW5pdGlhbCBhcHByb2FjaCBpcyBhbHdheXMgdG8gdW5kZXJzdGFuZCB0aGUgcmVnaXN0cmF0aW9uIGFuZCBwcm9iaW5nL2JpbmRpbmcgcHJvY2Vzcy4gU28sIEkgbmVlZCB0byBzZWUgaG93IGBteGw4NjJ4eGAgaXMgZGVjbGFyZWQgYXMgYSBkcml2ZXIgYW5kIGhvdyB0aGUga2VybmVsIGZpbmRzIGl0LiBJJ2xsIGZvY3VzIG9uIHRoZSBgbXhsODYyeHguY2AgZmlsZS4gSSdtIGdvaW5nIHRvIGxvb2sgZm9yIGFueSBkZWZpbml0aW9uIHJlbGF0ZWQgdG8gdGhlIE1ESU8gZHJpdmVyIGludGVyZmFjZSwgb3IgcGVyaGFwcyBTUEksIEkyQywgb3IgZXZlbiBEZXZpY2UgVHJlZSBiaW5kaW5ncyBpZiBpdCdzIGFuIE9GLWJhc2VkIHN5c3RlbS4gVW5kZXJzdGFuZGluZyB0aGUgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2UgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZS4gSSB3aWxsIHN0YXJ0IGJ5IHRyYWNpbmcgdGhvc2UgY3J1Y2lhbCBlbnRyeSBwb2ludHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNzQ2LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoyNy4xODcyNjY1MDdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3ODM5NzkzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV9tZGlvX2RyaXZlcnxtZGlvX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXhsODYyeHhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjIwOD1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBteGw4NjJ4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMtMjIwOS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYzoyMjEwOnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXhsODYyeHhfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTIyMTEtXFx0LnByb2JlICA9IG14bDg2Mnh4X3Byb2JlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoyNy4yMzUxMTI1MloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo4MjM0MzU1MzgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGBteGw4NjJ4eC5jYCoqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IHRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIGBteGw4NjJ4eC5jYCBkcml2ZXIsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZXMgMjIwMCB0byAyMjI1LiBJIHJlbWVtYmVyIGVuY291bnRlcmluZyBzb21ldGhpbmcgcG90ZW50aWFsbHkgcmVsYXRlZCB0byB0aGlzIGlzc3VlIGluIHRoYXQgYXJlYSwgYW5kIEkgd2FudCB0byByZWZyZXNoIG15IG1lbW9yeSBhbmQgc2VlIGlmIEkgY2FuIHNwb3QgYW55dGhpbmcgcmVsZXZhbnQgd2l0aCBmcmVzaCBleWVzLiBUaGlzIGlzIGEgY29tbW9uIGRlYnVnZ2luZyB0ZWNobmlxdWUgZm9yIG1lOyBJJ2xsIHN0YXJ0IHdpdGggdGhlIG1vc3QgbGlrZWx5IHN1c3BlY3QsIGEgY29uY2VudHJhdGVkIGFyZWEgb2YgY29kZSBJIHJlY2FsbCwgYW5kIHRoZW4gZXhwYW5kIG15IHNlYXJjaCBmcm9tIHRoZXJlIGlmIG5lZWRlZC4gTGV0J3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTY3LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6MzUuNDY5NDcwNjcyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDYyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMjAwLFxuICBcIkxpbmVDb3VudFwiOiAzNVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyMjAwOlxcdFxcdGRldl9zZXRfZHJ2ZGF0YShcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBOVUxMKTtcXG4yMjAxOlxcdH1cXG4yMjAyOlxcdFxcbjIyMDM6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXhsODYyeHhfb2ZfbWF0Y2hbXSA9IHtcXG4yMjA0OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWF4bGluZWFyLG14bDg2MjgyXFxcIiB9LFxcbjIyMDU6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtYXhsaW5lYXIsbXhsODYyNTJcXFwiIH0sXFxuMjIwNjpcXHRcXHR7IC8qIHNlbnRpbmVsICovIH1cXG4yMjA3OlxcdH07XFxuMjIwODpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBteGw4NjJ4eF9vZl9tYXRjaCk7XFxuMjIwOTpcXHRcXG4yMjEwOlxcdHN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXhsODYyeHhfZHJpdmVyID0ge1xcbjIyMTE6XFx0XFx0LnByb2JlICA9IG14bDg2Mnh4X3Byb2JlLFxcbjIyMTI6XFx0XFx0LnJlbW92ZSA9IG14bDg2Mnh4X3JlbW92ZSxcXG4yMjEzOlxcdFxcdC5zaHV0ZG93biA9IG14bDg2Mnh4X3NodXRkb3duLFxcbjIyMTQ6XFx0XFx0Lm1kaW9kcnYuZHJpdmVyID0ge1xcbjIyMTU6XFx0XFx0XFx0Lm5hbWUgPSBcXFwibXhsODYyeHhcXFwiLFxcbjIyMTY6XFx0XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gbXhsODYyeHhfb2ZfbWF0Y2gsXFxuMjIxNzpcXHRcXHR9LFxcbjIyMTg6XFx0fTtcXG4yMjE5OlxcdFxcbjIyMjA6XFx0bWRpb19tb2R1bGVfZHJpdmVyKG14bDg2Mnh4X2RyaXZlcik7XFxuMjIyMTpcXHRcXG4yMjIyOlxcdE1PRFVMRV9ERVNDUklQVElPTihcXFwiRHJpdmVyIGZvciBNYXhMaW5lYXIgTXhMODYyeHggc3dpdGNoIGZhbWlseVxcXCIpO1xcbjIyMjM6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODozNS40Njk1ODY1NTJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6ODkwMDE4OTE2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGFiaWxpdHkgQW5hbHlzaXMgZm9yIHRoZSBgbXhsODYyeHhgIERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiBJcyB0aGlzIGBteGw4NjJ4eGAgZHJpdmVy4oCUc3BlY2lmaWNhbGx5IGZvciB0aG9zZSBgbWF4bGluZWFyLG14bDg2MjgyYCBvciBgbWF4bGluZWFyLG14bDg2MjUyYCBkZXZpY2Vz4oCUYW4gTURJTy1iYXNlZCBzd2l0Y2ggZHJpdmVyLCBhbmQsIGNydWNpYWxseSwgZG9lcyBpdCAqcmVxdWlyZSogcGh5c2ljYWwgaGFyZHdhcmU/IEkgbmVlZCB0byBrbm93IGlmIGl0J3MgcmVhY2hhYmxlIGZvciBmdXp6aW5nLlxuXG5NeSB0aGlua2luZyBpcyBndWlkZWQgYnkgdGhpcyBcInJlYWNoYWJpbGl0eSBpcyB0aGUgcHJpbWFyeSBnYXRlXCIgcHJpbmNpcGxlIEknbSBkZWFsaW5nIHdpdGguIElmIHRoZSBjb2RlICpjYW4ndCogZXhlY3V0ZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIFFFTVUsIHRoZW4gZnV6emluZyBpcyBhIHdhc3RlIG9mIHRpbWUsIG5vIG1hdHRlciBob3cgY29tcGxleCB0aGUgbG9naWMuXG5cbkxvb2tpbmcgYXQgU2VjdGlvbiAyLCB0aGUgdGV4dCBleHBsaWNpdGx5IGNhbGxzIG91dCBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6IHRoaW5ncyBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIHRoYXQgbmVlZCBhbiBhY3R1YWwgQVNJQyBvciBQQ0llIGNhcmQgdGhhdCBpc24ndCBlbXVsYXRlZC4gVGhlbiB0aGVyZSdzIHRoZSBpc3N1ZSBvZiB1bnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHMg4oCTIGxpa2UgdGVhcmRvd24gY2FsbGJhY2tzIHRyaWdnZXJlZCBvbmx5IGJ5IHBoeXNpY2FsIGhvdC11bnBsdWcgb3IgbWFudWFsIHVuYmluZGluZy5cblxuU28sIHRoZSBrZXkgcXVlc3Rpb24gaXM6IENhbiBgbXhsODYyeHhgIGJlIHByb2JlZCBvciBpbnN0YW50aWF0ZWQgaW4gYSBzdGFuZGFyZCBzeXprYWxsZXIgLyBRRU1VIC8gR0NFIGVudmlyb25tZW50PyBJIGtub3cgc3l6a2FsbGVyIHJ1bnMgaW4gc3RhbmRhcmQgUUVNVS9HQ0UsIHdpdGhvdXQgYSBwaHlzaWNhbCBNRElPIGJ1cyBjb25uZWN0ZWQgdG8gYW4gTXhMODYyeHggQVNJQyBzd2l0Y2guIENhbiBhbiBNRElPIHN3aXRjaCBvciBEU0EgZGV2aWNlIGJlIGVtdWxhdGVkIG9yIGJvdW5kICp3aXRob3V0KiB0aGUgaGFyZHdhcmU/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgTURJTyBidXMgYW5kIHRoZSBPRi9EZXZpY2VUcmVlIG1kaW9fZHJpdmVyIGFyZSBoYW5kbGVkIGluIHRoaXMgY29udGV4dC4gRG8gdmlydHVhbCBNRElPIGJ1c2VzIGV4aXN0PyBEb2VzIHN5emJvdCBoYXZlIGEgd2F5IG9mIHByb2JpbmcgTURJTyBkZXZpY2VzIGluIHRoaXMgc2V0dXA/XG5cbkkgbmVlZCB0byBzZWUgaG93IHN5emthbGxlciBpbnRlcmFjdHMgd2l0aCBNRElPL0RTQSBkcml2ZXJzLiBUaW1lIHRvIGdyZXAgdGhlIGtlcm5lbCBzb3VyY2UgZm9yIGBteGw4NjJ4eGAgb3IgYG1kaW9fZHJpdmVyYC4gSG9wZWZ1bGx5LCB0aGVyZSBhcmUgc29tZSBtb2NrIG9yIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IHdpbGwgZ2l2ZSBtZSBhIGNsdWUgYWJvdXQgdGhlIHBvc3NpYmlsaXR5IG9mIHJlYWNoYWJpbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM4MTAsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NjEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODo0NC4zNjk3Nzc4MTNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MTYyMzkwNDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWRpb19tb2R1bGVfZHJpdmVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYz0yMjEwPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbnNzX2NjX3FjYThrX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE3LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjE4Om1kaW9fbW9kdWxlX2RyaXZlcihuc3NfY2NfcWNhOGtfZHJpdmVyKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9iNTMvYjUzX21kaW8uYz0zOTE9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBiNTNfbWRpb19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvYjUzL2I1M19tZGlvLmMtMzk5LX07XFxuZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfbWRpby5jOjQwMDptZGlvX21vZHVsZV9kcml2ZXIoYjUzX21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvYjUzL2I1M19tZGlvLmMtNDAxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbjkzMDNfbWRpby5jPTE2ND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGxhbjkzMDNfbWRpb19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFuOTMwM19tZGlvLmMtMTcyLX07XFxuZHJpdmVycy9uZXQvZHNhL2xhbjkzMDNfbWRpby5jOjE3MzptZGlvX21vZHVsZV9kcml2ZXIobGFuOTMwM19tZGlvX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZHNhL2xhbjkzMDNfbWRpby5jLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jPTkyNj1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGdzdzF4eF9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYy05MzUtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmM6OTM2Om1kaW9fbW9kdWxlX2RyaXZlcihnc3cxeHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYy05MzctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg4NjNfc21pLmM9MjExPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIga3N6ODg2M19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg4NjNfc21pLmMtMjIwLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6ODg2M19zbWkuYzoyMjE6bWRpb19tb2R1bGVfZHJpdmVyKGtzejg4NjNfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg4NjNfc21pLmMtMjIyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MjU4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXQ3NTMwX21kaW9fZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY3LVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjI2ODptZGlvX21vZHVsZV9kcml2ZXIobXQ3NTMwX21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yNjktXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmM9MzY4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2MDYwX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuYy0zNzctXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5jOjM3ODptZGlvX21vZHVsZV9kcml2ZXIobXY4OGU2MDYwX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5jLTM3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1Mjk9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTQwOm1kaW9fbW9kdWxlX2RyaXZlcihtdjg4ZTZ4eHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTQxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjIxMD1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG14bDg2Mnh4X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTIyMTktXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM6MjIyMDptZGlvX21vZHVsZV9kcml2ZXIobXhsODYyeHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYy0yMjIxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYz0xMTI4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgYXI5MzMxX3N3X21kaW9fZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYy0xMTM3LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmM6MTEzODptZGlvX21vZHVsZV9kcml2ZXIoYXI5MzMxX3N3X21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL2FyOTMzMS5jLTExMzktXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0yMjIxPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgcWNhOGttZGlvX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMzEtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIzMjptZGlvX21vZHVsZV9kcml2ZXIocWNhOGttZGlvX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS94cnM3MDB4L3hyczcwMHhfbWRpby5jPTE2Nj1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIHhyczcwMHhfbWRpb19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveHJzNzAweC94cnM3MDB4X21kaW8uYy0xNzUtXFxuZHJpdmVycy9uZXQvZHNhL3hyczcwMHgveHJzNzAweF9tZGlvLmM6MTc2Om1kaW9fbW9kdWxlX2RyaXZlcih4cnM3MDB4X21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EveHJzNzAweC94cnM3MDB4X21kaW8uYy0xNzctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmM9NDk2OD1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIHl0OTIxeF9tZGlvX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYy00OTc3LVxcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYzo0OTc4Om1kaW9fbW9kdWxlX2RyaXZlcih5dDkyMXhfbWRpb19kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYy00OTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3hpbGlueF9nbWlpMnJnbWlpLmM9MTM4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgeGdtaWl0b3JnbWlpX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS94aWxpbnhfZ21paTJyZ21paS5jLTE0NS1cXG5kcml2ZXJzL25ldC9waHkveGlsaW54X2dtaWkycmdtaWkuYzoxNDY6bWRpb19tb2R1bGVfZHJpdmVyKHhnbWlpdG9yZ21paV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3BoeS94aWxpbnhfZ21paTJyZ21paS5jLTE0Ny1cXG4tLVxcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMtdXNiMy5jPTIzMj1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGJjbV9uc191c2IzX21kaW9fZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1ucy11c2IzLmMtMjQxLVxcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMtdXNiMy5jOjI0MjptZGlvX21vZHVsZV9kcml2ZXIoYmNtX25zX3VzYjNfbWRpb19kcml2ZXIpO1xcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMtdXNiMy5jLTI0My1cXG4tLVxcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMyLXBjaWUuYz03Mz1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG5zMl9wY2lfcGh5X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMyLXBjaWUuYy04MS19O1xcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMyLXBjaWUuYzo4MjptZGlvX21vZHVsZV9kcml2ZXIobnMyX3BjaV9waHlfZHJpdmVyKTtcXG5kcml2ZXJzL3BoeS9icm9hZGNvbS9waHktYmNtLW5zMi1wY2llLmMtODMtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaD02OTY9c3RydWN0IHBoeV9kZXZpY2UgKm1kaW9idXNfZ2V0X3BoeShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaC02OTgtLyoqXFxuaW5jbHVkZS9saW51eC9tZGlvLmg6Njk5OiAqIG1kaW9fbW9kdWxlX2RyaXZlcigpIC0gSGVscGVyIG1hY3JvIGZvciByZWdpc3RlcmluZyBtZGlvIGRyaXZlcnNcXG5pbmNsdWRlL2xpbnV4L21kaW8uaC03MDAtICogQF9tZGlvX2RyaXZlcjogZHJpdmVyIHRvIHJlZ2lzdGVyXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaC03MDUtICovXFxuaW5jbHVkZS9saW51eC9tZGlvLmg6NzA2OiNkZWZpbmUgbWRpb19tb2R1bGVfZHJpdmVyKF9tZGlvX2RyaXZlcikgXFxcXFxcbmluY2x1ZGUvbGludXgvbWRpby5oLTcwNy1cXHRtb2R1bGVfZHJpdmVyKF9tZGlvX2RyaXZlciwgbWRpb19kcml2ZXJfcmVnaXN0ZXIsIG1kaW9fZHJpdmVyX3VucmVnaXN0ZXIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjQ2LjE4NjAyMjgzNloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMzM4Mjk2MTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gRGV2aWNlIFJlZ2lzdHJhdGlvbiBhbmQgQnVzIFN0cnVjdHVyZSoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIE1ESU8gc2l0dWF0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlc2UgTURJTyBkZXZpY2VzIGFyZSBiZWluZyBicm91Z2h0IGludG8gdGhlIHN5c3RlbS4gQXJlIHRoZXkgdXNpbmcgYSB2aXJ0dWFsIGJ1cyBzdHJ1Y3R1cmUsIG9yIGFyZSB3ZSByZWx5aW5nIG9uIGRldmljZSB0cmVlIHByb2JpbmcgYW5kIGRpcmVjdCBoYXJkd2FyZSBpbnRlcmFjdGlvbj8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGludmVzdGlnYXRlIHRoZSByZWdpc3RyYXRpb24gcHJvY2VzcyBpdHNlbGYuIFdoZXJlIGRvZXMgdGhlIHJ1YmJlciBtZWV0IHRoZSByb2FkPyBJIG5lZWQgdG8gbG9vayBmb3IgY2FsbHMgdG8gYG1kaW9fZHJpdmVyX3JlZ2lzdGVyYCDigJMgd2hlcmUgYXJlIHRoZSBNRElPIGRyaXZlcnMgYWN0dWFsbHkgYmVpbmcgcmVnaXN0ZXJlZD8gSSdsbCBwcm9iYWJseSBicm9hZGVuIHRoaXMgdG8gc2VhcmNoIGZvciB3aGVyZSBpdCdzICp1c2VkKiwgdG9vLCBqdXN0IHRvIGJlIHN1cmUuIFRoaXMgd2lsbCBnaXZlIG1lIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgZnJhbWV3b3JrLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzEzNywiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjQ4LjUyNDMyMTAwN1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU1MTcwODg1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvX2RldmljZV9yZWdpc3RlclwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz00NDY9c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDc0OlxcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN3aXRjaF9tZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jPTUyPXN0YXRpYyBpbnQgb2ZfbWRpb2J1c19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG1paV9idXMgKm1kaW8sXFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy02OC1cXHQvKiBBbGwgZGF0YSBpcyBub3cgc3RvcmVkIGluIHRoZSBtZGlvZGV2IHN0cnVjdDsgcmVnaXN0ZXIgaXQuICovXFxuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM6Njk6XFx0cmMgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy03MC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3Bjcy9wY3MteHBjcy1wbGF0LmM9MzM3PXN0YXRpYyBpbnQgeHBjc19wbGF0X2luaXRfZGV2KHN0cnVjdCBkd194cGNzX3BsYXQgKnB4cGNzKVxcbi0tXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTYtXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYzozNTc6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTgtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM9MTA3ND1zdGF0aWMgaW50IGFuODgxMWhiX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk3LVxcbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jOjEwOTg6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5OS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjYtLyoqXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6Mjc6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQgLSBSZWFkIGFuZCBpbml0aWFsaXplIHRoZSByZXNldCBwcm9wZXJ0aWVzIG9mXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjgtICpcXHRcXHRcXHRcXHRhbiBtZGlvIGRldmljZVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzItICovXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MzM6c3RhdGljIGludCBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTQzPUVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfY3JlYXRlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE0NS0vKipcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNDY6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXIgLSBSZWdpc3RlciB0aGUgbWRpbyBkZXZpY2Ugb24gdGhlIE1ESU8gYnVzXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ3LSAqIEBtZGlvZGV2OiBtZGlvX2RldmljZSBzdHJ1Y3R1cmUgdG8gYmUgYWRkZWQgdG8gdGhlIE1ESU8gYnVzXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTAtICovXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTUxOmludCBtZGlvX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3Mi19XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTczOkVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE4MC0gKiBUaGlzIGRvZXNuJ3QgZnJlZSB0aGUgbWRpb19kZXZpY2UgaXRzZWxmLCBpdCBtZXJlbHkgcmV2ZXJzZXMgdGhlIGVmZmVjdHNcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxODE6ICogb2YgbWRpb19kZXZpY2VfcmVnaXN0ZXIoKS4gVXNlIG1kaW9fZGV2aWNlX2ZyZWUoKSB0byBmcmVlIHRoZSBkZXZpY2VcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODItICogYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTkxPWludCBtZGlvYnVzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xOTgtXFx0aWYgKG1kaW9kZXYtXFx1MDAzZWZsYWdzIFxcdTAwMjYgTURJT19ERVZJQ0VfRkxBR19QSFkpIHtcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxOTk6XFx0XFx0ZXJyID0gbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjAwLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaD05NT1zdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9fZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XFxuaW5jbHVkZS9saW51eC9tZGlvLmg6OTY6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XFxuaW5jbHVkZS9saW51eC9tZGlvLmgtOTctdm9pZCBtZGlvX2RldmljZV9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6NTAuMDc2MDM0ODMzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIyNTQ1NDQ2MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGl2aW5nIGludG8gdGhlIERyaXZlciBDb2RlKipcblxuQWxyaWdodCwgbGV0J3MgZGlzc2VjdCB0aGlzIGNvZGUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBkcml2ZXJzIGludGVyYWN0LiBGaXJzdCwgSSdsbCBsb29rIGF0IGBkc2FfbG9vcC5jYC4gSXQncyBhIG1vY2sgRFNBIHN3aXRjaCBkcml2ZXIsIHVzaW5nIGEgbW9jayBNRElPIGRldmljZSDigJMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBhcmNoaXRlY3R1cmUuIEhvd2V2ZXIsIEknbSBtb3JlIGludGVyZXN0ZWQgaW4gdGhlIHJlYWwgaGFyZHdhcmUuIFNvLCB3aGF0IGFib3V0IGBteGw4NjJ4eGA/IEl0IGFwcGVhcnMgdG8gYmUgdGllZCB0byBhIHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUsIGV4Y2x1c2l2ZWx5IG1hdGNoZWQgdmlhIHRoZSBcIm9mX21hdGNoX3RhYmxlID0gbXhsODYyeHhfb2ZfbWF0Y2hcIi4gVGhlIGVudHJpZXMgXCJtYXhsaW5lYXIsbXhsODYyODJcIiBhbmQgXCJtYXhsaW5lYXIsbXhsODYyNTJcIiBpbW1lZGlhdGVseSB0ZWxsIG1lIHRoaXMgaXMgdGFyZ2V0aW5nIHNwZWNpZmljIE1heExpbmVhciBjaGlwcy4gTm93LCBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIHByb2JlIGZ1bmN0aW9uLiBMZXQncyBkaWcgaW50byBgbXhsODYyeHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KWAgYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODYyNCwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODo1Mi4zMzA1ODE2MzlaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5NjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIxMDAsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIxMDA6XFx0fTtcXG4yMTAxOlxcdFxcbjIxMDI6XFx0c3RhdGljIGludCBteGw4NjJ4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuMjEwMzpcXHR7XFxuMjEwNDpcXHRcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2O1xcbjIxMDU6XFx0XFx0c3RydWN0IG14bDg2Mnh4X3ByaXYgKnByaXY7XFxuMjEwNjpcXHRcXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHM7XFxuMjEwNzpcXHRcXHRpbnQgZXJyLCBpO1xcbjIxMDg6XFx0XFxuMjEwOTpcXHRcXHRwcml2ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7XFxuMjExMDpcXHRcXHRpZiAoIXByaXYpXFxuMjExMTpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4yMTEyOlxcdFxcbjIxMTM6XFx0XFx0cHJpdi1cXHUwMDNlbWRpb2RldiA9IG1kaW9kZXY7XFxuMjExNDpcXHRcXG4yMTE1OlxcdFxcdGRzID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpkcyksIEdGUF9LRVJORUwpO1xcbjIxMTY6XFx0XFx0aWYgKCFkcylcXG4yMTE3OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbjIxMTg6XFx0XFxuMjExOTpcXHRcXHRwcml2LVxcdTAwM2VkcyA9IGRzO1xcbjIxMjA6XFx0XFx0ZHMtXFx1MDAzZWRldiA9IGRldjtcXG4yMTIxOlxcdFxcdGRzLVxcdTAwM2Vwcml2ID0gcHJpdjtcXG4yMTIyOlxcdFxcdGRzLVxcdTAwM2VvcHMgPSBcXHUwMDI2bXhsODYyeHhfc3dpdGNoX29wcztcXG4yMTIzOlxcdFxcdGRzLVxcdTAwM2VwaHlsaW5rX21hY19vcHMgPSBcXHUwMDI2bXhsODYyeHhfcGh5bGlua19tYWNfb3BzO1xcbjIxMjQ6XFx0XFx0ZHMtXFx1MDAzZW51bV9wb3J0cyA9IE1YTDg2MlhYX01BWF9QT1JUUztcXG4yMTI1OlxcdFxcdGRzLVxcdTAwM2Vhc3Npc3RlZF9sZWFybmluZ19vbl9jcHVfcG9ydCA9IHRydWU7XFxuMjEyNjpcXHRcXHRkcy1cXHUwMDNlZmRiX2lzb2xhdGlvbiA9IHRydWU7XFxuMjEyNzpcXHRcXHRkcy1cXHUwMDNlbWF4X251bV9icmlkZ2VzID0gTVhMODYyWFhfTUFYX0JSSURHRVM7XFxuMjEyODpcXHRcXG4yMTI5OlxcdFxcdG14bDg2Mnh4X2hvc3RfaW5pdChwcml2KTtcXG4yMTMwOlxcdFxcbjIxMzE6XFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSsrKSB7XFxuMjEzMjpcXHRcXHRcXHRwcml2LVxcdTAwM2Vwb3J0c1tpXS5wcml2ID0gcHJpdjtcXG4yMTMzOlxcdFxcdFxcdElOSVRfV09SSyhcXHUwMDI2cHJpdi1cXHUwMDNlcG9ydHNbaV0uaG9zdF9mbG9vZF93b3JrLFxcbjIxMzQ6XFx0XFx0XFx0XFx0ICBteGw4NjJ4eF9ob3N0X2Zsb29kX3dvcmtfZm4pO1xcbjIxMzU6XFx0XFx0XFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNnByaXYtXFx1MDAzZXBvcnRzW2ldLnN0YXRzX2xvY2spO1xcbjIxMzY6XFx0XFx0fVxcbjIxMzc6XFx0XFxuMjEzODpcXHRcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdHNfd29yaywgbXhsODYyeHhfc3RhdHNfd29ya19mbik7XFxuMjEzOTpcXHRcXG4yMTQwOlxcdFxcdGRldl9zZXRfZHJ2ZGF0YShkZXYsIGRzKTtcXG4yMTQxOlxcdFxcbjIxNDI6XFx0XFx0ZXJyID0gZHNhX3JlZ2lzdGVyX3N3aXRjaChkcyk7XFxuMjE0MzpcXHRcXHRpZiAoZXJyKSB7XFxuMjE0NDpcXHRcXHRcXHRzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcXHUwMDI2cHJpdi1cXHUwMDNlZmxhZ3MpO1xcbjIxNDU6XFx0XFx0XFx0bXhsODYyeHhfaG9zdF9zaHV0ZG93bihwcml2KTtcXG4yMTQ2OlxcdFxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBNWEw4NjJYWF9NQVhfUE9SVFM7IGkrKylcXG4yMTQ3OlxcdFxcdFxcdFxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXBvcnRzW2ldLmhvc3RfZmxvb2Rfd29yayk7XFxuMjE0ODpcXHRcXHR9XFxuMjE0OTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6NTIuMzMwNzAzMTA5WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjczOTU5MTA2NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHlzaXMgb2YgdGhlIE1heExpbmVhciBNeEw4NjJ4eCBTd2l0Y2ggRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIEZlYXNpYmlsaXR5KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB3aGV0aGVyIHRoaXMgaXMgZXZlbiAqcG9zc2libGUqIHRvIGZ1enouIFRoZSBjb2RlIGluIHF1ZXN0aW9uIHJldm9sdmVzIGFyb3VuZCBgbXhsODYyeHhfcHJvYmVgLCB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbiBNRElPIGRldmljZSB3aXRoIHNwZWNpZmljIFwibWF4bGluZWFyXCIgY29tcGF0aWJsZSBzdHJpbmdzIGlzIGJvdW5kLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uOiBjYW4gSSBldmVuICppbnN0YW50aWF0ZSogdGhpcyBpbiBhIHR5cGljYWwgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnQgb24gYW1kNjQ/IE5vcGUuIFRoZXNlIGVudmlyb25tZW50cyBkb24ndCBoYXZlIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggaGFyZHdhcmUgb3IgRGV2aWNlIFRyZWUgbm9kZXMgdG8gcmVwcmVzZW50IHRoZSBzd2l0Y2ggY29ubmVjdGVkIHZpYSBNRElPLiBUaGF0J3MgYSByZWQgZmxhZy5cblxuUmlnaHQsIGxldCdzIGdvIGJhY2sgYW5kIHJlZmVyZW5jZSBTZWN0aW9uIDIncyBydWxlczogUmVhY2hhYmlsaXR5IGlzIGtleS4gSWYgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgZm9yZ2V0IGFib3V0IGZ1enppbmcgaXQuIEl0IGRvZXNuJ3QgbWF0dGVyIGhvdyBjb21wbGV4IHRoZSBsb2dpYyBpcyBvciBpZiBhc3NlcnRpb25zIGFyZSBhZGRlZC4gVGhpcyBhbGlnbnMgd2l0aCB1bnJlYWNoYWJsZSBoYXJkd2FyZSBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLlxuXG5UaGUgcGF0Y2ggaXRzZWxmIGlzIHRvdWNoaW5nIHNldmVyYWwgZnVuY3Rpb25zOiBgbXhsODYyeHhfc2V0dXBgLCBgbXhsODYyeHhfdGVhcmRvd25gLCBgbXhsODYyeHhfZ2V0X3N0YXRzNjRgLCBgbXhsODYyeHhfc3dpdGNoX29wc2AsIGBteGw4NjJ4eF9wcm9iZWAsIGBteGw4NjJ4eF9yZW1vdmVgLCBgbXhsODYyeHhfc2h1dGRvd25gLiBFc3NlbnRpYWxseSwgdGhlc2UgYXJlIHRoZSBwcm9iZSwgc2V0dXAsIHRlYXJkb3duLCBhbmQgbGlmZWN5Y2xlIG1hbmFnZW1lbnQgZnVuY3Rpb25zLiBTcGVjaWZpY2FsbHksIEkgc2VlIGl0IG1vdmluZyBgbXhsODYyeHhfc2V0dXBfbWRpb2AgZWFybGllciBhbmQgYWRkaW5nIGEgYG14bDg2Mnh4X3RlYXJkb3duYCBmdW5jdGlvbiwgd2hpY2ggY2FsbHMgYGRpc2FibGVfZGVsYXllZF93b3JrX3N5bmNgLiBUaGV5IGFyZSBhbHNvIGFkanVzdGluZyBjbGVhbnVwIGluIHRoZSBgcmVtb3ZlYC9gc2h1dGRvd25gIGZ1bmN0aW9ucy5cblxuQWxsIG9mIHRoaXMgbGl2ZXMgaW5zaWRlIGBkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY2AuIEFuZCB0aGF0J3MgYSBkcml2ZXIgZm9yIGEgTWF4TGluZWFyIE14TDg2MjgyIG9yIE14TDg2MjUyIEV0aGVybmV0IHN3aXRjaCBjaGlwLCBwaHlzaWNhbCBBU0lDIGNoaXBzIG9uIGFuIE1ESU8gYnVzLCBjb250cm9sbGVkIHZpYSBEZXZpY2UgVHJlZSAoYG9mX21hdGNoX3RhYmxlYCkuIFRoZXNlIGFyZSBub3QgdGhpbmdzIEkgY2FuIGVtdWxhdGUgaW4gUUVNVSBvciBHQ0Ugb24geDg2XzY0LiBUaGVyZWZvcmUsIEkgY2FuJ3QgdHJpZ2dlciBgcHJvYmVgLCB0aGUgbmV3IGB0ZWFyZG93bmAsIG9yIGFueSBvZiB0aGUgYWZmZWN0ZWQgZnVuY3Rpb25zLlxuXG5UaGUgY29uY2x1c2lvbiBpcyBwcmV0dHkgY2xlYXI6XG4qICAgYFdvcnRoRnV6emluZ2A6IGZhbHNlXG4qICAgYEZvY3VzU3ltYm9sc2A6IGVtcHR5XG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBlbXB0eVxuKiAgIGBSZWFzb25pbmdgOiAgVGhlIHBhdGNoIG1vZGlmaWVzIHNldHVwLCB0ZWFyZG93biwgYW5kIGxpZmVjeWNsZSBtYW5hZ2VtZW50IGluIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlci4gVGhpcyBpcyBhIGRyaXZlciBmb3IgKnBoeXNpY2FsKiBzd2l0Y2ggaGFyZHdhcmUsIG1hdGNoZWQgdmlhIERldmljZVRyZWUgb24gYW4gTURJTyBidXMsIGFuZCB0aGlzIGhhcmR3YXJlIGlzIG5vdCBwcmVzZW50IG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cywgYW5kIGlzIHRodXMgdW5yZWFjaGFibGUuXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjazogYW1kNjQgaXMgdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuIFRoZSBkcml2ZXIgaXMgZW5hYmxlZCB2aWEgYENPTkZJR19ORVRfRFNBX01YTDg2MmAuIEl0IGV4cGxpY2l0bHkgbmVlZHMgYSBwaHlzaWNhbCBNYXhMaW5lYXIgTXhMODYyeHggc3dpdGNoIEFTSUMuIFRoZXJlJ3Mgbm8gdmlydHVhbCBidXMgb3IgUUVNVSBlbXVsYXRpb24gaGVyZS4gU28sIHllYWgsIGl0J3MgZGVmaW5pdGVseSBgZmFsc2VgLlxuXG5Pa2F5LCBJIGFtIGNvbmZpZGVudCBpbiBteSBmaW5kaW5ncy4gVGltZSB0byBpbnZva2UgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk4NTksIk91dHB1dFRva2VucyI6MTQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODg2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6NTkuNzI2NjE2MTQ4WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcyMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgY2hhbmdlcyBhcmUgcmVzdHJpY3RlZCB0byB0aGUgTWF4TGluZWFyIE14TDg2Mnh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jKSwgYWRqdXN0aW5nIHNldHVwLCB0ZWFyZG93biwgYW5kIHdvcmsgY2FuY2VsbGF0aW9uIHBhdGhzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBkZWRpY2F0ZWQgcGh5c2ljYWwgaGFyZHdhcmUgKE1heExpbmVhciBNeEw4NjI4Mi9NeEw4NjI1MiBzd2l0Y2ggY2hpcHMgYXR0YWNoZWQgdmlhIE1ESU8gYW5kIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUpIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBjaGFuZ2VzIGFyZSByZXN0cmljdGVkIHRvIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMpLCBhZGp1c3Rpbmcgc2V0dXAsIHRlYXJkb3duLCBhbmQgd29yayBjYW5jZWxsYXRpb24gcGF0aHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIGRlZGljYXRlZCBwaHlzaWNhbCBoYXJkd2FyZSAoTWF4TGluZWFyIE14TDg2MjgyL014TDg2MjUyIHN3aXRjaCBjaGlwcyBhdHRhY2hlZCB2aWEgTURJTyBhbmQgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZSkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjU5LjcyNjY0NzIwOFoiLCJTZXEiOjIxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowclrxs[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-10 14:28:12 +0000 UTC FinishedAt: 2026-09-10 14:49:01 +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+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgY2hhbmdlcyBhcmUgcmVzdHJpY3RlZCB0byB0aGUgTWF4TGluZWFyIE14TDg2Mnh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jKSwgYWRqdXN0aW5nIHNldHVwLCB0ZWFyZG93biwgYW5kIHdvcmsgY2FuY2VsbGF0aW9uIHBhdGhzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBkZWRpY2F0ZWQgcGh5c2ljYWwgaGFyZHdhcmUgKE1heExpbmVhciBNeEw4NjI4Mi9NeEw4NjI1MiBzd2l0Y2ggY2hpcHMgYXR0YWNoZWQgdmlhIE1ESU8gYW5kIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUpIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgNzczM2YwYTQ0MDMyYTE0Y2VjMDQ3NzExZTVjZTg1MDQ3YzgyMWRjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgU2VwIDEwIDE0OjQ4OjEwIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jIGIvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmNcbmluZGV4IGNmYTdlM2UyNjlhMjguLmUwNWFkNTJjZDI5N2UgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmNcbkBAIC02ODUsMTAgJiM0Mzs2ODUsMjIgQEAgc3RhdGljIGludCBteGw4NjJ4eF9zZXR1cChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpXG4gXHRpZiAocmV0KVxuIFx0XHRyZXR1cm4gcmV0O1xuIFxuJiM0MztcdHJldCA9IG14bDg2Mnh4X3NldHVwX21kaW8oZHMpO1xuJiM0MztcdGlmIChyZXQpXG4mIzQzO1x0XHRyZXR1cm4gcmV0O1xuJiM0MztcbiBcdHNjaGVkdWxlX2RlbGF5ZWRfd29yayhcdTAwMjZwcml2LVx1MDAzZXN0YXRzX3dvcmssXG4gXHRcdFx0ICAgICAgTVhMODYyWFhfU1RBVFNfUE9MTF9JTlRFUlZBTCk7XG4gXG4tXHRyZXR1cm4gbXhsODYyeHhfc2V0dXBfbWRpbyhkcyk7XG4mIzQzO1x0cmV0dXJuIDA7XG4mIzQzO31cbiYjNDM7XG4mIzQzO3N0YXRpYyB2b2lkIG14bDg2Mnh4X3RlYXJkb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcbiYjNDM7e1xuJiM0MztcdHN0cnVjdCBteGw4NjJ4eF9wcml2ICpwcml2ID0gZHMtXHUwMDNlcHJpdjtcbiYjNDM7XG4mIzQzO1x0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4mIzQzO1x0ZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXN0YXRzX3dvcmspO1xuIH1cbiBcbiBzdGF0aWMgaW50IG14bDg2Mnh4X3BvcnRfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgYm9vbCBlbmFibGUpXG5AQCAtMjA0Nyw5ICYjNDM7MjA1OSw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X2dldF9zdGF0czY0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gXG4gXHRzcGluX3VubG9ja19iaChcdTAwMjZwcml2LVx1MDAzZXBvcnRzW3BvcnRdLnN0YXRzX2xvY2spO1xuIFxuLVx0LyogVHJpZ2dlciBhIGZyZXNoIHBvbGwgc28gdGhlIG5leHQgcmVhZCBzZWVzIHVwLXRvLWRhdGUgY291bnRlcnMuXG4tXHQgKiBOby1vcCBpZiB0aGUgd29yayBpcyBhbHJlYWR5IHBlbmRpbmcsIHJ1bm5pbmcsIG9yIHRlYXJkb3duIHN0YXJ0ZWQuXG4tXHQgKi9cbiYjNDM7XHQvKiBUcmlnZ2VyIGEgZnJlc2ggcG9sbCBzbyB0aGUgbmV4dCByZWFkIHNlZXMgdXAtdG8tZGF0ZSBjb3VudGVycy4gKi9cbiBcdGlmICghdGVzdF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsIFx1MDAyNnByaXYtXHUwMDNlZmxhZ3MpKVxuIFx0XHRzY2hlZHVsZV9kZWxheWVkX3dvcmsoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrLCAwKTtcbiB9XG5AQCAtMjA1Nyw2ICYjNDM7MjA2Nyw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X2dldF9zdGF0czY0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBteGw4NjJ4eF9zd2l0Y2hfb3BzID0ge1xuIFx0LmdldF90YWdfcHJvdG9jb2wgPSBteGw4NjJ4eF9nZXRfdGFnX3Byb3RvY29sLFxuIFx0LnNldHVwID0gbXhsODYyeHhfc2V0dXAsXG4mIzQzO1x0LnRlYXJkb3duID0gbXhsODYyeHhfdGVhcmRvd24sXG4gXHQucG9ydF9zZXR1cCA9IG14bDg2Mnh4X3BvcnRfc2V0dXAsXG4gXHQucG9ydF90ZWFyZG93biA9IG14bDg2Mnh4X3BvcnRfdGVhcmRvd24sXG4gXHQucGh5bGlua19nZXRfY2FwcyA9IG14bDg2Mnh4X3BoeWxpbmtfZ2V0X2NhcHMsXG5AQCAtMjEzMSw3ICYjNDM7MjE0Miw2IEBAIHN0YXRpYyBpbnQgbXhsODYyeHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuIFx0ZXJyID0gZHNhX3JlZ2lzdGVyX3N3aXRjaChkcyk7XG4gXHRpZiAoZXJyKSB7XG4gXHRcdHNldF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsIFx1MDAyNnByaXYtXHUwMDNlZmxhZ3MpO1xuLVx0XHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbiBcdFx0bXhsODYyeHhfaG9zdF9zaHV0ZG93bihwcml2KTtcbiBcdFx0Zm9yIChpID0gMDsgaSBcdTAwM2MgTVhMODYyWFhfTUFYX1BPUlRTOyBpJiM0MzsmIzQzOylcbiBcdFx0XHRjYW5jZWxfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlcG9ydHNbaV0uaG9zdF9mbG9vZF93b3JrKTtcbkBAIC0yMTUyLDcgJiM0MzsyMTYyLDYgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiBcdHByaXYgPSBkcy1cdTAwM2Vwcml2O1xuIFxuIFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4tXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbiBcbiBcdGRzYV91bnJlZ2lzdGVyX3N3aXRjaChkcyk7XG4gXG5AQCAtMjE4MSw3ICYjNDM7MjE5MCw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X3NodXRkb3duKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiBcdGRzYV9zd2l0Y2hfc2h1dGRvd24oZHMpO1xuIFxuIFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4tXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbiYjNDM7XHRkaXNhYmxlX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yayk7XG4gXG4gXHRteGw4NjJ4eF9ob3N0X3NodXRkb3duKHByaXYpO1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmNvcmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIGNoYW5nZXMgYXJlIHJlc3RyaWN0ZWQgdG8gdGhlIE1heExpbmVhciBNeEw4NjJ4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyIChkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYyksIGFkanVzdGluZyBzZXR1cCwgdGVhcmRvd24sIGFuZCB3b3JrIGNhbmNlbGxhdGlvbiBwYXRocy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgZGVkaWNhdGVkIHBoeXNpY2FsIGhhcmR3YXJlIChNYXhMaW5lYXIgTXhMODYyODIvTXhMODYyNTIgc3dpdGNoIGNoaXBzIGF0dGFjaGVkIHZpYSBNRElPIGFuZCBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlKSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDc3MzNmMGE0NDAzMmExNGNlYzA0NzcxMWU1Y2U4NTA0N2M4MjFkY2EKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IFNlcCAxMCAxNDo0ODoxMCAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jIGIvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMKaW5kZXggY2ZhN2UzZTI2OWEyOC4uZTA1YWQ1MmNkMjk3ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMKQEAgLTY4NSwxMCAmIzQzOzY4NSwyMiBAQCBzdGF0aWMgaW50IG14bDg2Mnh4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcykKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCiYjNDM7CXJldCA9IG14bDg2Mnh4X3NldHVwX21kaW8oZHMpOwomIzQzOwlpZiAocmV0KQomIzQzOwkJcmV0dXJuIHJldDsKJiM0MzsKIAlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmFtcDtwcml2LSZndDtzdGF0c193b3JrLAogCQkJICAgICAgTVhMODYyWFhfU1RBVFNfUE9MTF9JTlRFUlZBTCk7CiAKLQlyZXR1cm4gbXhsODYyeHhfc2V0dXBfbWRpbyhkcyk7CiYjNDM7CXJldHVybiAwOwomIzQzO30KJiM0MzsKJiM0MztzdGF0aWMgdm9pZCBteGw4NjJ4eF90ZWFyZG93bihzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMpCiYjNDM7ewomIzQzOwlzdHJ1Y3QgbXhsODYyeHhfcHJpdiAqcHJpdiA9IGRzLSZndDtwcml2OwomIzQzOwomIzQzOwlzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCAmYW1wO3ByaXYtJmd0O2ZsYWdzKTsKJiM0MzsJZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYygmYW1wO3ByaXYtJmd0O3N0YXRzX3dvcmspOwogfQogCiBzdGF0aWMgaW50IG14bDg2Mnh4X3BvcnRfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgYm9vbCBlbmFibGUpCkBAIC0yMDQ3LDkgJiM0MzsyMDU5LDcgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfZ2V0X3N0YXRzNjQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwKIAogCXNwaW5fdW5sb2NrX2JoKCZhbXA7cHJpdi0mZ3Q7cG9ydHNbcG9ydF0uc3RhdHNfbG9jayk7CiAKLQkvKiBUcmlnZ2VyIGEgZnJlc2ggcG9sbCBzbyB0aGUgbmV4dCByZWFkIHNlZXMgdXAtdG8tZGF0ZSBjb3VudGVycy4KLQkgKiBOby1vcCBpZiB0aGUgd29yayBpcyBhbHJlYWR5IHBlbmRpbmcsIHJ1bm5pbmcsIG9yIHRlYXJkb3duIHN0YXJ0ZWQuCi0JICovCiYjNDM7CS8qIFRyaWdnZXIgYSBmcmVzaCBwb2xsIHNvIHRoZSBuZXh0IHJlYWQgc2VlcyB1cC10by1kYXRlIGNvdW50ZXJzLiAqLwogCWlmICghdGVzdF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsICZhbXA7cHJpdi0mZ3Q7ZmxhZ3MpKQogCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmFtcDtwcml2LSZndDtzdGF0c193b3JrLCAwKTsKIH0KQEAgLTIwNTcsNiAmIzQzOzIwNjcsNyBAQCBzdGF0aWMgdm9pZCBteGw4NjJ4eF9nZXRfc3RhdHM2NChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LAogc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBteGw4NjJ4eF9zd2l0Y2hfb3BzID0gewogCS5nZXRfdGFnX3Byb3RvY29sID0gbXhsODYyeHhfZ2V0X3RhZ19wcm90b2NvbCwKIAkuc2V0dXAgPSBteGw4NjJ4eF9zZXR1cCwKJiM0MzsJLnRlYXJkb3duID0gbXhsODYyeHhfdGVhcmRvd24sCiAJLnBvcnRfc2V0dXAgPSBteGw4NjJ4eF9wb3J0X3NldHVwLAogCS5wb3J0X3RlYXJkb3duID0gbXhsODYyeHhfcG9ydF90ZWFyZG93biwKIAkucGh5bGlua19nZXRfY2FwcyA9IG14bDg2Mnh4X3BoeWxpbmtfZ2V0X2NhcHMsCkBAIC0yMTMxLDcgJiM0MzsyMTQyLDYgQEAgc3RhdGljIGludCBteGw4NjJ4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpCiAJZXJyID0gZHNhX3JlZ2lzdGVyX3N3aXRjaChkcyk7CiAJaWYgKGVycikgewogCQlzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCAmYW1wO3ByaXYtJmd0O2ZsYWdzKTsKLQkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZhbXA7cHJpdi0mZ3Q7c3RhdHNfd29yayk7CiAJCW14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7CiAJCWZvciAoaSA9IDA7IGkgJmx0OyBNWEw4NjJYWF9NQVhfUE9SVFM7IGkmIzQzOyYjNDM7KQogCQkJY2FuY2VsX3dvcmtfc3luYygmYW1wO3ByaXYtJmd0O3BvcnRzW2ldLmhvc3RfZmxvb2Rfd29yayk7CkBAIC0yMTUyLDcgJiM0MzsyMTYyLDYgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldikKIAlwcml2ID0gZHMtJmd0O3ByaXY7CiAKIAlzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCAmYW1wO3ByaXYtJmd0O2ZsYWdzKTsKLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDtzdGF0c193b3JrKTsKIAogCWRzYV91bnJlZ2lzdGVyX3N3aXRjaChkcyk7CiAKQEAgLTIxODEsNyAmIzQzOzIxOTAsNyBAQCBzdGF0aWMgdm9pZCBteGw4NjJ4eF9zaHV0ZG93bihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpCiAJZHNhX3N3aXRjaF9zaHV0ZG93bihkcyk7CiAKIAlzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCAmYW1wO3ByaXYtJmd0O2ZsYWdzKTsKLQljYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoJmFtcDtwcml2LSZndDtzdGF0c193b3JrKTsKJiM0MzsJZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYygmYW1wO3ByaXYtJmd0O3N0YXRzX3dvcmspOwogCiAJbXhsODYyeHhfaG9zdF9zaHV0ZG93bihwcml2KTsKIAo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzODQzCgkJCQkJCQlvdXRwdXQ6IDI0CgkJCQkJCQl0aG91Z2h0czogMTE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGFzc2Vzc21lbnQgb2YgdGhpcyBwYXRjaCwgYXBwcm9hY2hlZCBhcyBJIHdvdWxkLgoKKipBbmFseXppbmcgYSBEU0EgRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIFBvdGVudGlhbCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGl2ZSBpbnRvIHRoaXMuIFRoZSBmaXJzdCB0aGluZyBJJiMzOTttIGRvaW5nIGlzIHNpemluZyB1cCB0aGlzIHBhdGNoIHRvIHNlZSBpZiBpdCYjMzk7cyBldmVuIHdvcnRoIGZ1enppbmcsIGFuZCBpZiBzbywgd2hhdCBraW5kIG9mIGVmZm9ydCBhbmQgY29uZmlndXJhdGlvbiB3ZSYjMzk7cmUgbG9va2luZyBhdC4KCk15IGluaXRpYWwgc2NhbiB0ZWxscyBtZSB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIGEgbW9kaWZpZWQgZmlsZTogYGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBhIERTQSBkcml2ZXIsIGFuZCBtb3JlIHNwZWNpZmljYWxseSwgaXQmIzM5O3MgdGllZCB0byBhIE1heExpbmVhciBNWEw4NjJ4eCBFdGhlcm5ldCBzd2l0Y2guIFRoYXQmIzM5O3MgYSBzb2xpZCBzdGFydGluZyBwb2ludC4gRFNBIGRyaXZlcnMgYXJlIG9mdGVuIGp1aWN5IHRhcmdldHMgZm9yIGZ1enppbmcsIGdpdmVuIHRoZWlyIGludGVyYWN0aW9uIHdpdGggbmV0d29yayB0cmFmZmljIGFuZCBoYXJkd2FyZS4gTmV0d29yayBkcml2ZXJzIGFyZSBnZW5lcmFsbHkgYSBnb29kIHRhcmdldCBmb3IgZnV6emluZy4KCk15IG5leHQgc3RlcCwgYW5kIHRoaXMgaXMgd2hlcmUgSSYjMzk7ZCBsZXZlcmFnZSBzb21lIHF1aWNrIHRvb2xzLCBpcyB0byBnZXQgYSBoYW5kbGUgb24gdGhlIGJpZ2dlciBwaWN0dXJlLiBJJiMzOTttIGhpdHRpbmcgYGdyZXBwZXJgIG9yIGByZWFkLWZpbGVgIHRvIGdyYWIgc29tZSBrZXkgY29udGV4dC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGhhcmR3YXJlIHR5cGUsIGJ1cyB0eXBlLCBhbmQgYW55IHJlbGV2YW50IEtjb25maWcgb3B0aW9ucy4gVGhpbmdzIGxpa2UgaWYgdGhpcyBkcml2ZXIgaXMgbW9kdWxhciwgd2hhdCBoYXJkd2FyZSBpdCBzdXBwb3J0cywgYW5kIGlmIGFueSBzcGVjaWZpYyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGFyZSBuZWNlc3NhcnkgdG8gZW5hYmxlIGl0IGFyZSBjcml0aWNhbC4gVGhpcyB0ZWxscyBtZSBpZiBJIG5lZWQgdG8gYnVpbGQgYSBzcGVjaWZpYyBrZXJuZWwgY29uZmlnIG9yIGlmIGEgZ2VuZXJpYyBvbmUgd2lsbCBzdWZmaWNlLiBTcGVjaWZpY2FsbHksIGZpbmRpbmcgb3V0IGlmIHRoZXJlIGFyZSBhbnkgc3BlY2lmaWMgcGFyYW1ldGVycyBJIGNhbiBmZWVkIHRvIGEgZnV6emVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7TkVUX0RTQV9NWEw4NjJYWCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMTQ6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDMxNwoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDM1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkludmVzdGlnYXRpbmcgdGhlIE5ldHdvcmsgRGV2aWNlIERyaXZlciBCdWlsZCBQcm9jZXNzKioKCk9rYXksIHNvIEkgbmVlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGVzZSBkcml2ZXJzIGFyZSBiZWluZyBidWlsdCBhbmQgaW5jbHVkZWQuIE15IGZpcnN0IGluc3RpbmN0LCBnaXZlbiB0aGUgY29udGV4dCwgaXMgdG8gbG9vayBhdCB0aGUgcmVsZXZhbnQgS2NvbmZpZyBhbmQgTWFrZWZpbGUgZmlsZXMuIFRoZSBsaWtlbHkgcGxhY2VzIHRvIHN0YXJ0IGFyZSB1bmRlciB0aGUgYGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9gIGRpcmVjdG9yeSwgc3BlY2lmaWNhbGx5IHNpbmNlIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggYSBzcGVjaWZpYyBjaGlwLiBIb3dldmVyLCBzaW5jZSBJJiMzOTttIHRyeWluZyB0byBnZXQgYSBicm9hZGVyIHVuZGVyc3RhbmRpbmcsIEkmIzM5O2xsIGFsc28gZ2xhbmNlIGF0IGBkcml2ZXJzL25ldC9kc2EvYCBtb3JlIGdlbmVyYWxseSwganVzdCBpbiBjYXNlIHRoZXJlJiMzOTtzIHNvbWUgc2hhcmVkIGNvbmZpZ3VyYXRpb24gb3IgaW5jbHVkZS4gVGhhdCBzaG91bGQgZ2l2ZSBtZSBhIGdvb2QgaGFuZGxlIG9uIGhvdyB0aGUgYnVpbGQgc3lzdGVtIGlzIG1hbmFnaW5nIHRoaXMgbmV0d29yayBkZXZpY2UgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O214bDg2Mnh4JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMTIwIGxpbmVzLlxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxuXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZz04NT1zb3VyY2UgXCYjMzQ7ZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9LY29uZmlnXCYjMzQ7XG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZy04Ni1cbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnOjg3OnNvdXJjZSBcJiMzNDtkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvS2NvbmZpZ1wmIzM0O1xuZHJpdmVycy9uZXQvZHNhL0tjb25maWctODgtXG4tLVxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIzPW9iai15XHRcdFx0XHQmIzQzOz0gbXY4OGU2eHh4L1xuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlOjI0Om9iai15XHRcdFx0XHQmIzQzOz0gbXhsODYyeHgvXG5kcml2ZXJzL25ldC9kc2EvTWFrZWZpbGUtMjUtb2JqLXlcdFx0XHRcdCYjNDM7PSBuZXRjL1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9NYWtlZmlsZS0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9NYWtlZmlsZToyOm9iai0kKENPTkZJR19ORVRfRFNBX01YTDg2MikgJiM0Mzs9IG14bDg2Mnh4X2RzYS5vXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvTWFrZWZpbGU6MzpteGw4NjJ4eF9kc2EteSA6PSBteGw4NjJ4eC5vIG14bDg2Mnh4LWhvc3QubyBteGw4NjJ4eC1waHlsaW5rLm9cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg9MTY9c3RydWN0IG1kaW9fcmVsYXlfZGF0YSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIzLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjI0OiAqIHN0cnVjdCBteGw4NjJ4eF9yZWdpc3Rlcl9tb2QgLSBSZWdpc3RlciBhY2Nlc3MgcGFyYW1ldGVyIHRvIGRpcmVjdGx5XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjUtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGlmeSBpbnRlcm5hbCByZWdpc3RlcnNcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzEtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzI6c3RydWN0IG14bDg2Mnh4X3JlZ2lzdGVyX21vZCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzMtXHRfX2xlMTYgYWRkcjtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzgtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzk6ICogZW51bSBteGw4NjJ4eF9tYWNfdGFibGVfZmlsdGVyIC0gU291cmNlL0Rlc3RpbmF0aW9uIE1BQyBhZGRyZXNzIGZpbHRlcmluZ1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTQwLSAqXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTQ1LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjQ2OmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlciB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDctXHRNWEw4NjJYWF9NQUNfRklMVEVSX05PTkUgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NTogKiBzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX2FkZCAtIE1BQyBUYWJsZSBFbnRyeSB0byBiZSBhZGRlZFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY2LSAqIEBmaWQ6IEZpbHRlcmluZyBJZGVudGlmaWVyIChGSUQpIChub3Qgc3VwcG9ydGVkIGJ5IGFsbCBzd2l0Y2hlcylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzQtICogQG1hYzogTUFDIEFkZHJlc3MgdG8gYWRkIHRvIHRoZSB0YWJsZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc1OiAqIEBmaWx0ZXJfZmxhZzogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2LSAqIEBpZ21wX2NvbnRyb2xsZWQ6IFBhY2tldCBpcyBtYXJrZWQgYXMgSUdNUCBjb250cm9sbGVkIGlmIGRlc3RpbmF0aW9uIE1BQ1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04My0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4NDpzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX2FkZCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODUtXHRfX2xlMTYgZmlkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDAtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTAxOiAqIHN0cnVjdCBteGw4NjJ4eF9tYWNfdGFibGVfcmVtb3ZlIC0gTUFDIFRhYmxlIEVudHJ5IHRvIGJlIHJlbW92ZWRcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDItICogQGZpZDogRmlsdGVyaW5nIElkZW50aWZpZXIgKEZJRClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDMtICogQG1hYzogTUFDIEFkZHJlc3MgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSB0YWJsZS5cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDQ6ICogQGZpbHRlcl9mbGFnOiBTZWUgXHUwMDI2ZW51bSBteGw4NjJ4eF9tYWNfdGFibGVfZmlsdGVyXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA1LSAqIEB0Y2k6IFRDSSBmb3IgQi1TdGVwXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwOS0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTA6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9yZW1vdmUge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMS1cdF9fbGUxNiBmaWQ7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExNy0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTg6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9yZWFkIC0gTUFDIFRhYmxlIEVudHJ5IHRvIGJlIHJlYWRcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTktICogQGluaXRpYWw6IFJlc3RhcnQgdGhlIGdldCBvcGVyYXRpb24gZnJvbSB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0YWJsZVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMjgtICogQG1hYzogTUFDIEFkZHJlc3MuIEZpbGxlZCBvdXQgYnkgdGhlIHN3aXRjaCBBUEkgaW1wbGVtZW50YXRpb24uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTI5OiAqIEBmaWx0ZXJfZmxhZzogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEzMC0gKiBAaWdtcF9jb250cm9sbGVkOiBQYWNrZXQgaXMgbWFya2VkIGFzIElHTVAgY29udHJvbGxlZCBpZiBkZXN0aW5hdGlvbiBNQUNcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTQxLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjE0MjpzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX3JlYWQge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE0My1cdHU4IGluaXRpYWw7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE2Mi0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxNjM6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9xdWVyeSAtIE1BQyBUYWJsZSBFbnRyeSBrZXktYmFzZWQgbG9va3VwXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTY0LSAqIEBtYWM6IE1BQyBBZGRyZXNzIHRvIHNlYXJjaCBmb3IgKGlucHV0KVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xNzItICogQHN0YXRpY19lbnRyeTogSW5kaWNhdGVzIGlmIHRoaXMgaXMgYSBTdGF0aWMgRW50cnlcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxNzM6ICogQGZpbHRlcl9mbGFnOiBTZWUgXHUwMDI2ZW51bSBteGw4NjJ4eF9tYWNfdGFibGVfZmlsdGVyIChpbnB1dCYjNDM7b3V0cHV0KVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE3NC0gKiBAaWdtcF9jb250cm9sbGVkOiBJR01QIGNvbnRyb2xsZWQgZmxhZ1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xODAtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTgxOnN0cnVjdCBteGw4NjJ4eF9tYWNfdGFibGVfcXVlcnkge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE4Mi1cdHU4IG1hY1tFVEhfQUxFTl07XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIwMC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMDE6ICogZW51bSBteGw4NjJ4eF9tYWNfY2xlYXJfdHlwZSAtIE1BQyB0YWJsZSBjbGVhciB0eXBlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjAyLSAqIEBNWEw4NjJYWF9NQUNfQ0xFQVJfUEhZX1BPUlQ6IGNsZWFyIGR5bmFtaWMgZW50cmllcyBiYXNlZCBvbiBwb3J0X2lkXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIwNC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMDU6ZW51bSBteGw4NjJ4eF9tYWNfY2xlYXJfdHlwZSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjA2LVx0TVhMODYyWFhfTUFDX0NMRUFSX1BIWV9QT1JUID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjEwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIxMTogKiBzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX2NsZWFyIC0gTUFDIHRhYmxlIGNsZWFyXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjEyOiAqIEB0eXBlOiBzZWUgXHUwMDI2ZW51bSBteGw4NjJ4eF9tYWNfY2xlYXJfdHlwZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIxMy0gKiBAcG9ydF9pZDogcGh5c2ljYWwgcG9ydCBpZFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIxNC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMTU6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9jbGVhciB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjE2LVx0dTggdHlwZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjIwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIyMTogKiBlbnVtIG14bDg2Mnh4X2FnZV90aW1lciAtIEFnaW5nIFRpbWVyIFZhbHVlLlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIyMi0gKiBATVhMODYyWFhfQUdFVElNRVJfMV9TRUM6IDEgc2Vjb25kIGFnaW5nIHRpbWVcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjI4LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIyOTplbnVtIG14bDg2Mnh4X2FnZV90aW1lciB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjMwLVx0TVhMODYyWFhfQUdFVElNRVJfMV9TRUMgPSAxLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMzgtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjM5OiAqIHN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfYWxsb2MgLSBCcmlkZ2UgQWxsb2NhdGlvblxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI0MC0gKiBAYnJpZGdlX2lkOiBJZiB0aGUgYnJpZGdlIGFsbG9jYXRpb24gaXMgc3VjY2Vzc2Z1bCwgYSB2YWxpZCBJRCB3aWxsIGJlXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI0Ny0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNDg6c3RydWN0IG14bDg2Mnh4X2JyaWRnZV9hbGxvYyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjQ5LVx0X19sZTE2IGJyaWRnZV9pZDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjUyLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjI1MzogKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9jb25maWdfbWFzayAtIEJyaWRnZSBjb25maWd1cmF0aW9uIG1hc2tcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNTQtICogQE1YTDg2MlhYX0JSSURHRV9DT05GSUdfTUFTS19NQUNfTEVBUk5JTkdfTElNSVQ6XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI2Ny0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNjg6ZW51bSBteGw4NjJ4eF9icmlkZ2VfY29uZmlnX21hc2sge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI2OS1cdE1YTDg2MlhYX0JSSURHRV9DT05GSUdfTUFTS19NQUNfTEVBUk5JTkdfTElNSVQgPSBCSVQoMCksXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI3OC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNzk6ICogZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9lZ3Jlc3NfbWV0ZXIgLSBNZXRlcnMgZm9yIGVncmVzcyB0cmFmZmljIHR5cGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yODAtICogQE1YTDg2MlhYX0JSSURHRV9QT1JUX0VHUkVTU19NRVRFUl9CUk9BRENBU1Q6XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI5My0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyOTQ6ZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9lZ3Jlc3NfbWV0ZXIge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI5NS1cdE1YTDg2MlhYX0JSSURHRV9QT1JUX0VHUkVTU19NRVRFUl9CUk9BRENBU1QgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zMDQtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzA1OiAqIHN0cnVjdCBteGw4NjJ4eF9xb3NfbWV0ZXJfY2ZnIC0gUmF0ZSBtZXRlciBjb25maWd1cmF0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzA2LSAqIEBlbmFibGU6IEVuYWJsZS9kaXNhYmxlIG1ldGVyXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTMyMC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozMjE6c3RydWN0IG14bDg2Mnh4X3Fvc19tZXRlcl9jZmcge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTMyMi1cdHU4IGVuYWJsZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzM4LS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjMzOTogKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGUgLSBCcmlkZ2UgZm9yd2FyZGluZyB0eXBlIG9mIHBhY2tldFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM0MC0gKiBATVhMODYyWFhfQlJJREdFX0ZPUldBUkRfRkxPT0Q6IFBhY2tldCBpcyBmbG9vZGVkIHRvIHBvcnQgbWVtYmVycyBvZlxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNDMtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzQ0OmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzQ1LVx0TVhMODYyWFhfQlJJREdFX0ZPUldBUkRfRkxPT0QgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNDktLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzUwOiAqIHN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfY29uZmlnIC0gQnJpZGdlIENvbmZpZ3VyYXRpb25cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNTEtICogQGJyaWRnZV9pZDogQnJpZGdlIElEIChGSUQpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzUyOiAqIEBtYXNrOiBTZWUgXHUwMDI2ZW51bSBteGw4NjJ4eF9icmlkZ2VfY29uZmlnX21hc2tcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNTMtICogQG1hY19sZWFybmluZ19saW1pdF9lbmFibGU6IEVuYWJsZSBNQUMgbGVhcm5pbmcgbGltaXRhdGlvblxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNjMtICogQGZvcndhcmRfYnJvYWRjYXN0OiBGb3J3YXJkaW5nIG1vZGUgb2YgYnJvYWRjYXN0IHRyYWZmaWMuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM2NDogKiAgICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2NS0gKiBAZm9yd2FyZF91bmtub3duX211bHRpY2FzdF9pcDogRm9yd2FyZGluZyBtb2RlIG9mIHVua25vd24gbXVsdGljYXN0IElQXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzY2LSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFmZmljLlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM2NzogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2OC0gKiBAZm9yd2FyZF91bmtub3duX211bHRpY2FzdF9ub25faXA6IEZvcndhcmRpbmcgbW9kZSBvZiB1bmtub3duIG11bHRpY2FzdFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2OS0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vbi1JUCB0cmFmZmljLlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM3MDogKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNzEtICogQGZvcndhcmRfdW5rbm93bl91bmljYXN0OiBGb3J3YXJkaW5nIG1vZGUgb2YgdW5rbm93biB1bmljYXN0IHRyYWZmaWMuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM3MjogKiAgICAgICAgICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM3My0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozNzQ6c3RydWN0IG14bDg2Mnh4X2JyaWRnZV9jb25maWcge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM3NS1cdF9fbGUxNiBicmlkZ2VfaWQ7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzc2Olx0X19sZTMyIG1hc2s7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2NvbmZpZ19tYXNrICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzc3LVx0dTggbWFjX2xlYXJuaW5nX2xpbWl0X2VuYWJsZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzgyLVx0X19sZTE2IHRyYWZmaWNfc3ViX21ldGVyX2lkW01YTDg2MlhYX0JSSURHRV9QT1JUX0VHUkVTU19NRVRFUl9NQVhdO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM4MzpcdF9fbGUzMiBmb3J3YXJkX2Jyb2FkY2FzdDsgLyogZW51bSBteGw4NjJ4eF9icmlkZ2VfZm9yd2FyZF9tb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzg0Olx0X19sZTMyIGZvcndhcmRfdW5rbm93bl9tdWx0aWNhc3RfaXA7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM4NTpcdF9fbGUzMiBmb3J3YXJkX3Vua25vd25fbXVsdGljYXN0X25vbl9pcDsgLyogZW51bSBteGw4NjJ4eF9icmlkZ2VfZm9yd2FyZF9tb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzg2Olx0X19sZTMyIGZvcndhcmRfdW5rbm93bl91bmljYXN0OyAvKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGUgKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zODctfSBfX3BhY2tlZDtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzg5LS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM5MDogKiBzdHJ1Y3QgbXhsODYyeHhfYnJpZGdlX3BvcnRfYWxsb2MgLSBCcmlkZ2UgUG9ydCBBbGxvY2F0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzkxLSAqIEBicmlkZ2VfcG9ydF9pZDogSWYgdGhlIGJyaWRnZSBwb3J0IGFsbG9jYXRpb24gaXMgc3VjY2Vzc2Z1bCwgYSB2YWxpZCBJRFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zOTctICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzk4OnN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfcG9ydF9hbGxvYyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzk5LVx0X19sZTE2IGJyaWRnZV9wb3J0X2lkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00MDItLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NDAzOiAqIGVudW0gbXhsODYyeHhfYnJpZGdlX3BvcnRfY29uZmlnX21hc2sgLSBCcmlkZ2UgUG9ydCBjb25maWd1cmF0aW9uIG1hc2tcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00MDQtICogQE1YTDg2MlhYX0JSSURHRV9QT1JUX0NPTkZJR19NQVNLX0JSSURHRV9JRDpcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDYyLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjQ2MzplbnVtIG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZ19tYXNrIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00NjQtXHRNWEw4NjJYWF9CUklER0VfUE9SVF9DT05GSUdfTUFTS19CUklER0VfSUQgPSBCSVQoMCksXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTQ5MS0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo0OTI6ICogZW51bSBteGw4NjJ4eF9jb2xvcl9tYXJraW5nX21vZGUgLSBDb2xvciBNYXJraW5nIE1vZGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00OTMtICogQE1YTDg2MlhYX01BUktJTkdfQUxMX0dSRUVOOiBtYXJrIHBhY2tldHMgKGV4Y2VwdCBjcml0aWNhbCkgdG8gZ3JlZW5cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTAxLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjUwMjplbnVtIG14bDg2Mnh4X2NvbG9yX21hcmtpbmdfbW9kZSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTAzLVx0TVhMODYyWFhfTUFSS0lOR19BTExfR1JFRU4gPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01MTMtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTE0OiAqIGVudW0gbXhsODYyeHhfY29sb3JfcmVtYXJraW5nX21vZGUgLSBDb2xvciBSZW1hcmtpbmcgTW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUxNS0gKiBATVhMODYyWFhfUkVNQVJLSU5HX05PTkU6IHZhbHVlcyBmcm9tIGxhc3QgcHJvY2VzcyBzdGFnZVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01MjItICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTIzOmVudW0gbXhsODYyeHhfY29sb3JfcmVtYXJraW5nX21vZGUge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUyNC1cdE1YTDg2MlhYX1JFTUFSS0lOR19OT05FID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTMzLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjUzNDogKiBlbnVtIG14bDg2Mnh4X3BtYXBwZXJfbWFwcGluZ19tb2RlIC0gUC1tYXBwZXIgTWFwcGluZyBNb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTM1LSAqIEBNWEw4NjJYWF9QTUFQUEVSX01BUFBJTkdfUENQOiBVc2UgUENQIGZvciBWTEFOIHRhZ2dlZCBwYWNrZXRzIHRvIGRlcml2ZVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NDEtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTQyOmVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGUge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU0My1cdE1YTDg2MlhYX1BNQVBQRVJfTUFQUElOR19QQ1AgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NDgtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTQ5OiAqIHN0cnVjdCBteGw4NjJ4eF9wbWFwcGVyIC0gUC1tYXBwZXIgQ29uZmlndXJhdGlvblxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU1MC0gKiBAcG1hcHBlcl9pZDogSW5kZXggb2YgUC1tYXBwZXIgKDAtMzEpXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU2MC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1NjE6c3RydWN0IG14bDg2Mnh4X3BtYXBwZXIge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU2Mi1cdF9fbGUxNiBwbWFwcGVyX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NjYtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTY3OiAqIHN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfcG9ydF9jb25maWcgLSBCcmlkZ2UgUG9ydCBDb25maWd1cmF0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTY4LSAqIEBicmlkZ2VfcG9ydF9pZDogQnJpZGdlIFBvcnQgSUQgYWxsb2NhdGVkIGJ5IGJyaWRnZSBwb3J0IGFsbG9jYXRpb25cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1Njk6ICogQG1hc2s6IFNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZ19tYXNrXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTcwLSAqIEBicmlkZ2VfaWQ6IEJyaWRnZSBJRCAoRklEKSB0byB3aGljaCB0aGlzIGJyaWRnZSBwb3J0IGlzIGFzc29jaWF0ZWRcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTgzLSAqIEBpbmdyZXNzX21hcmtpbmdfbW9kZTogSW5ncmVzcyBjb2xvciBtYXJraW5nIG1vZGUuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU4NDogKiAgICAgICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfY29sb3JfbWFya2luZ19tb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTg1LSAqIEBlZ3Jlc3NfcmVtYXJraW5nX21vZGU6IENvbG9yIHJlbWFya2luZyBmb3IgZWdyZXNzIHRyYWZmaWMuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU4NjogKiAgICAgICAgICAgICAgICAgICAgICAgICBcdTAwMjZlbnVtIG14bDg2Mnh4X2NvbG9yX3JlbWFya2luZ19tb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTg3LSAqIEBpbmdyZXNzX21ldGVyaW5nX2VuYWJsZTogVHJhZmZpYyBtZXRlcmluZyBvbiBpbmdyZXNzIHRyYWZmaWMgYXBwbGllc1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01OTctICogQHBtYXBwZXJfbWFwcGluZ19tb2RlOiBQLW1hcHBlciBtYXBwaW5nIG1vZGUuIFNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU5ODogKiAgICAgICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01OTktICogQHBtYXBwZXJfaWRfdmFsaWQ6IFdoZW4gdHJ1ZSwgUC1tYXBwZXIgaXMgcmUtdXNlZDsgd2hlbiBmYWxzZSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjUzLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjY1NDpzdHJ1Y3QgbXhsODYyeHhfYnJpZGdlX3BvcnRfY29uZmlnIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NTUtXHRfX2xlMTYgYnJpZGdlX3BvcnRfaWQ7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NjU2Olx0X19sZTMyIG1hc2s7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX3BvcnRfY29uZmlnX21hc2sgKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NTctXHRfX2xlMTYgYnJpZGdlX2lkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NjMtXHRfX2xlMTYgZWdyZXNzX2V4dGVuZGVkX3ZsYW5fYmxvY2tfc2l6ZTtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NjQ6XHRfX2xlMzIgaW5ncmVzc19tYXJraW5nX21vZGU7IC8qIGVudW0gbXhsODYyeHhfY29sb3JfbWFya2luZ19tb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NjY1Olx0X19sZTMyIGVncmVzc19yZW1hcmtpbmdfbW9kZTsgLyogZW51bSBteGw4NjJ4eF9jb2xvcl9yZW1hcmtpbmdfbW9kZSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY2Ni1cdHU4IGluZ3Jlc3NfbWV0ZXJpbmdfZW5hYmxlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NzItXHRfX2xlMTYgZGVzdF9zdWJfaWZfaWRfZ3JvdXA7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NjczOlx0X19sZTMyIHBtYXBwZXJfbWFwcGluZ19tb2RlOyAvKiBlbnVtIG14bDg2Mnh4X3BtYXBwZXJfbWFwcGluZ19tb2RlICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjc0LVx0dTggcG1hcHBlcl9pZF92YWxpZDtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NzU6XHRzdHJ1Y3QgbXhsODYyeHhfcG1hcHBlciBwbWFwcGVyO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY3Ni1cdF9fbGUxNiBicmlkZ2VfcG9ydF9tYXBbOF07XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTcwOS0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MTA6ICogc3RydWN0IG14bDg2Mnh4X2NmZyAtICBHbG9iYWwgU3dpdGNoIGNvbmZpZ3VyYXRpb24gQXR0cmlidXRlc1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjcxMTogKiBAbWFjX3RhYmxlX2FnZV90aW1lcjogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfYWdlX3RpbWVyXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzEyLSAqIEBhZ2VfdGltZXI6IEN1c3RvbSBNQUMgdGFibGUgYWdpbmcgdGltZXIgaW4gc2Vjb25kc1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03MjItICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzIzOnN0cnVjdCBteGw4NjJ4eF9jZmcge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjcyNDpcdF9fbGUzMiBtYWNfdGFibGVfYWdlX3RpbWVyOyAvKiBlbnVtIG14bDg2Mnh4X2FnZV90aW1lciAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTcyNS1cdF9fbGUzMiBhZ2VfdGltZXI7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTczNC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MzU6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl90eXBlIC0gRXh0ZW5kZWQgVkxBTiBmaWx0ZXIgdGFnIHR5cGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03MzYtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfVFlQRV9OT1JNQUw6IE5vcm1hbCB0YWdnZWRcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzQwLSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc0MTplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3R5cGUge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc0Mi1cdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfVFlQRV9OT1JNQUwgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NDgtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzQ5OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfdHBpZCAtIEV4dGVuZGVkIFZMQU4gZmlsdGVyIFRQSURcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NTAtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfVFBJRF9OT19GSUxURVI6IE5vIFRQSUQgZmlsdGVyXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc1My0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3NTQ6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl90cGlkIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NTUtXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX1RQSURfTk9fRklMVEVSID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzYwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc2MTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2RlaSAtIEV4dGVuZGVkIFZMQU4gZmlsdGVyIERFSVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2Mi0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9ERUlfTk9fRklMVEVSOiBObyBERUkgZmlsdGVyXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2NS0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3NjY6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl9kZWkge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2Ny1cdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfREVJX05PX0ZJTFRFUiA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc3Mi0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3NzM6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9yZW1vdmVfdGFnIC0gVGFnIHJlbW92YWwgYWN0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzc0LSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX05PVF9SRU1PVkVfVEFHOiBEbyBub3QgcmVtb3ZlIHRhZ1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NzgtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Nzc5OmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcmVtb3ZlX3RhZyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzgwLVx0TVhMODYyWFhfRVhURU5ERURWTEFOX1RSRUFUTUVOVF9OT1RfUkVNT1ZFX1RBRyA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc4Ni0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3ODc6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9wcmlvcml0eSAtIFRyZWF0bWVudCBwcmlvcml0eSBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzg4LSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX1BSSU9SSVRZX1ZBTDogVXNlIGV4cGxpY2l0IHZhbHVlXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc5Mi0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3OTM6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9wcmlvcml0eSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzk0LVx0TVhMODYyWFhfRVhURU5ERURWTEFOX1RSRUFUTUVOVF9QUklPUklUWV9WQUwgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MDAtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODAxOiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfdmlkIC0gVHJlYXRtZW50IFZJRCBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODAyLSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX1ZJRF9WQUw6IFVzZSBleHBsaWNpdCBWSUQgdmFsdWVcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODA1LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgwNjplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ZpZCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODA3LVx0TVhMODYyWFhfRVhURU5ERURWTEFOX1RSRUFUTUVOVF9WSURfVkFMID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODEyLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgxMzogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3RwaWQgLSBUcmVhdG1lbnQgVFBJRCBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODE0LSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX0lOTkVSX1RQSUQ6IENvcHkgZnJvbSBpbm5lciB0YWdcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODE4LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgxOTplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3RwaWQge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyMC1cdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfSU5ORVJfVFBJRCA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyNi0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4Mjc6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9kZWkgLSBUcmVhdG1lbnQgREVJIG1vZGVcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MjgtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfSU5ORVJfREVJOiBDb3B5IGZyb20gaW5uZXIgdGFnXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgzMi0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4MzM6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9kZWkge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgzNC1cdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfSU5ORVJfREVJID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODQwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg0MTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fNF90cGlkX21vZGUgLSA0LVRQSUQgbW9kZSBzZWxlY3RvclxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg0Mi0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX1RQSURfVlRFVFlQRV8xOiBWTEFOIFRQSUQgdHlwZSAxXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg0Ni0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4NDc6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuXzRfdHBpZF9tb2RlIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NDgtXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFBJRF9WVEVUWVBFXzEgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NTQtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODU1OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfZXRoZXJ0eXBlIC0gRmlsdGVyIEV0aGVyVHlwZSBtYXRjaFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg1Ni0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9FVEhFUlRZUEVfTk9fRklMVEVSOiBObyBmaWx0ZXJcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODY0LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg2NTplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2V0aGVydHlwZSB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODY2LVx0TVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9FVEhFUlRZUEVfTk9fRklMVEVSID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODc2LS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg3NzogKiBzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX2ZpbHRlcl92bGFuIC0gUGVyLXRhZyBmaWx0ZXIgaW4gRXh0ZW5kZWQgVkxBTlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg3ODogKiBAdHlwZTogVGFnIHByZXNlbmNlL3R5cGUgbWF0Y2ggKHNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3R5cGUpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODc5LSAqIEBwcmlvcml0eV9lbmFibGU6IEVuYWJsZSBQQ1AgdmFsdWUgbWF0Y2hpbmdcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODgyLSAqIEB2aWRfdmFsOiBWSUQgdmFsdWUgdG8gbWF0Y2hcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4ODM6ICogQHRwaWQ6IFRQSUQgbWF0Y2ggbW9kZSAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfdHBpZClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4ODQ6ICogQGRlaTogREVJIG1hdGNoIG1vZGUgKHNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2RlaSlcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04ODUtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODg2OnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4ge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg4Ny1cdF9fbGUzMiB0eXBlO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04OTYtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODk3OiAqIHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyIC0gRXh0ZW5kZWQgVkxBTiBmaWx0ZXIgY29uZmlndXJhdGlvblxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg5OC0gKiBAb3JpZ2luYWxfcGFja2V0X2ZpbHRlcl9tb2RlOiBJZiB0cnVlLCBmaWx0ZXIgb24gb3JpZ2luYWwgKHByZS10cmVhdG1lbnQpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODk5LSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhY2tldFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkwMDogKiBAZmlsdGVyXzRfdHBpZF9tb2RlOiA0LVRQSUQgbW9kZSAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl80X3RwaWRfbW9kZSlcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDEtICogQG91dGVyX3ZsYW46IE91dGVyIFZMQU4gdGFnIGZpbHRlclxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDMtICogQGV0aGVyX3R5cGU6IEV0aGVyVHlwZSBmaWx0ZXIgKHNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkwNDogKiAgICAgICAgICAgICAgXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl9ldGhlcnR5cGUpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTA1LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkwNjpzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX2ZpbHRlciB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTA3LVx0dTggb3JpZ2luYWxfcGFja2V0X2ZpbHRlcl9tb2RlO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkwOC1cdF9fbGUzMiBmaWx0ZXJfNF90cGlkX21vZGU7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTA5Olx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXJfdmxhbiBvdXRlcl92bGFuO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkxMDpcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4gaW5uZXJfdmxhbjtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTEtXHRfX2xlMzIgZXRoZXJfdHlwZTtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTE0LS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkxNTogKiBzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX3RyZWF0bWVudF92bGFuIC0gUGVyLXRhZyB0cmVhdG1lbnQgaW5cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTYtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVuZGVkIFZMQU5cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTctICogQHByaW9yaXR5X21vZGU6IFByaW9yaXR5IGFzc2lnbm1lbnQgbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkxODogKiAgICAgICAgICAgICAgICAgKHNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ByaW9yaXR5KVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkxOS0gKiBAcHJpb3JpdHlfdmFsOiBQcmlvcml0eSB2YWx1ZSAod2hlbiBtb2RlIGlzIFZBTClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjAtICogQHZpZF9tb2RlOiBWSUQgYXNzaWdubWVudCBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTIxOiAqICAgICAgICAgICAgKHNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ZpZClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjItICogQHZpZF92YWw6IFZJRCB2YWx1ZSAod2hlbiBtb2RlIGlzIFZBTClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjMtICogQHRwaWQ6IFRQSUQgYXNzaWdubWVudCBtb2RlXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTI0OiAqICAgICAgICAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfdHBpZClcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjUtICogQGRlaTogREVJIGFzc2lnbm1lbnQgbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkyNjogKiAgICAgICAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfZGVpKVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkyNy0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5Mjg6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnRfdmxhbiB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTI5LVx0X19sZTMyIHByaW9yaXR5X21vZGU7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkzNy0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5Mzg6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnQgLSBFeHRlbmRlZCBWTEFOIHRyZWF0bWVudFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkzOS0gKiBAcmVtb3ZlX3RhZzogVGFnIHJlbW92YWwgYWN0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTQwOiAqICAgICAgICAgICAgICAoc2VlIFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcmVtb3ZlX3RhZylcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05NDEtICogQHRyZWF0bWVudF80X3RwaWRfbW9kZTogNC1UUElEIHRyZWF0bWVudCBtb2RlXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk1OC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5NTk6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnQge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk2MC1cdF9fbGUzMiByZW1vdmVfdGFnO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05NjItXHR1OCBhZGRfb3V0ZXJfdmxhbjtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5NjM6XHRzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX3RyZWF0bWVudF92bGFuIG91dGVyX3ZsYW47XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTY0LVx0dTggYWRkX2lubmVyX3ZsYW47XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTY1Olx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnRfdmxhbiBpbm5lcl92bGFuO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk2Ni1cdHU4IHJlYXNzaWduX2JyaWRnZV9wb3J0O1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05ODAtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTgxOiAqIHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fYWxsb2MgLSBFeHRlbmRlZCBWTEFOIGJsb2NrIGFsbG9jYXRpb25cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05ODItICogQG51bWJlcl9vZl9lbnRyaWVzOiBOdW1iZXIgb2YgZW50cmllcyB0byBhbGxvY2F0ZSAoaW5wdXQpIC8gYWxsb2NhdGVkXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk4OC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5ODk6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9hbGxvYyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTkwLVx0X19sZTE2IG51bWJlcl9vZl9lbnRyaWVzO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05OTQtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTk1OiAqIHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fY29uZmlnIC0gRXh0ZW5kZWQgVkxBTiBlbnRyeSBjb25maWd1cmF0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTk2LSAqIEBleHRlbmRlZF92bGFuX2Jsb2NrX2lkOiBCbG9jayBJRCBmcm9tIGFsbG9jYXRpb25cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwMi0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDAzOnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fY29uZmlnIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDA0LVx0X19sZTE2IGV4dGVuZGVkX3ZsYW5fYmxvY2tfaWQ7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwNS1cdF9fbGUxNiBlbnRyeV9pbmRleDtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDA2Olx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXIgZmlsdGVyO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMDc6XHRzdHJ1Y3QgbXhsODYyeHhfZXh0ZW5kZWR2bGFuX3RyZWF0bWVudCB0cmVhdG1lbnQ7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwOC19IF9fcGFja2VkO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDEwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMTE6ICogZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayAtIFZMQU4gRmlsdGVyIFRDSSBtYXNrXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAxMi0gKiBATVhMODYyWFhfVkxBTl9GSUxURVJfVENJX01BU0tfVklEOiBUQ0kgbWFzayBmb3IgVkxBTiBJRFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDE1LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMTY6ZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAxNy1cdE1YTDg2MlhYX1ZMQU5fRklMVEVSX1RDSV9NQVNLX1ZJRCA9IDAsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMjItLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTAyMzogKiBzdHJ1Y3QgbXhsODYyeHhfdmxhbmZpbHRlcl9hbGxvYyAtIFZMQU4gRmlsdGVyIGJsb2NrIGFsbG9jYXRpb25cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDI0LSAqIEBudW1iZXJfb2ZfZW50cmllczogTnVtYmVyIG9mIGVudHJpZXMgdG8gYWxsb2NhdGUgKGlucHV0KSAvIGFsbG9jYXRlZFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDM0LSAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMzU6c3RydWN0IG14bDg2Mnh4X3ZsYW5maWx0ZXJfYWxsb2Mge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMzYtXHRfX2xlMTYgbnVtYmVyX29mX2VudHJpZXM7XG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNDMtLyoqXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA0NDogKiBzdHJ1Y3QgbXhsODYyeHhfdmxhbmZpbHRlcl9jb25maWcgLSBWTEFOIEZpbHRlciBlbnRyeSBjb25maWd1cmF0aW9uXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA0NS0gKiBAdmxhbl9maWx0ZXJfYmxvY2tfaWQ6IEJsb2NrIElEIGZyb20gYWxsb2NhdGlvblxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDQ3LSAqIEB2bGFuX2ZpbHRlcl9tYXNrOiBUQ0kgZmllbGQocykgdG8gbWF0Y2ggKHNlZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwNDg6ICogICAgICAgICAgICAgICAgICAgIFx1MDAyNmVudW0gbXhsODYyeHhfdmxhbl9maWx0ZXJfdGNpX21hc2spXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA0OS0gKiBAdmFsOiBUQ0kgdmFsdWUocykgdG8gbWF0Y2ggKFZJRCwgUENQLCBvciBmdWxsIFRDSSBkZXBlbmRpbmcgb24gbWFzaylcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA1NC0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDU1OnN0cnVjdCBteGw4NjJ4eF92bGFuZmlsdGVyX2NvbmZpZyB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA1Ni1cdF9fbGUxNiB2bGFuX2ZpbHRlcl9ibG9ja19pZDtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDU3LVx0X19sZTE2IGVudHJ5X2luZGV4O1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwNTg6XHRfX2xlMzIgdmxhbl9maWx0ZXJfbWFzazsgLyogZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayAqL1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNTktXHRfX2xlMzIgdmFsO1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDYzLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwNjQ6ICogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfbWFzayAtIFNwZWNpYWwgdGFnIHZhbGlkIGZpZWxkIGluZGljYXRvciBiaXRzXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA2NS0gKiBATVhMODYyWFhfU1NfU1BfVEFHX01BU0tfUlg6IHZhbGlkIFJYIHNwZWNpYWwgdGFnIG1vZGVcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA2OS0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDcwOmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX21hc2sge1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNzEtXHRNWEw4NjJYWF9TU19TUF9UQUdfTUFTS19SWCA9IEJJVCgwKSxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA3Ny0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDc4OiAqIGVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4IC0gUlggc3BlY2lhbCB0YWcgbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNzktICogQE1YTDg2MlhYX1NTX1NQX1RBR19SWF9OT19UQUdfTk9fSU5TRVJUOiBwYWNrZXQgZG9lcyBOT1QgaGF2ZSBzcGVjaWFsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwODUtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA4NjplbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19yeCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA4Ny1cdE1YTDg2MlhYX1NTX1NQX1RBR19SWF9OT19UQUdfTk9fSU5TRVJUID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA5Mi0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDkzOiAqIGVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3R4IC0gVFggc3BlY2lhbCB0YWcgbW9kZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwOTQtICogQE1YTDg2MlhYX1NTX1NQX1RBR19UWF9OT19UQUdfTk9fUkVNT1ZFOiBwYWNrZXQgZG9lcyBOT1QgaGF2ZSBzcGVjaWFsXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMDItICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEwMzplbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ190eCB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEwNC1cdE1YTDg2MlhYX1NTX1NQX1RBR19UWF9OT19UQUdfTk9fUkVNT1ZFID0gMCxcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTExMC0vKipcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTExOiAqIGVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4X3BlbiAtIFJYIHNwZWNpYWwgdGFnIGluZm8gb3ZlciBwcmVhbWJsZVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMTItICogQE1YTDg2MlhYX1NTX1NQX1RBR19SWF9QRU5fQUxMXzA6IHNwZWNpYWwgdGFnIGluZm8gaW5zZXJ0ZWQgZnJvbSBieXRlIDJcbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEyMi0gKi9cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTIzOmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4X3BlbiB7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEyNC1cdE1YTDg2MlhYX1NTX1NQX1RBR19SWF9QRU5fQUxMXzAgPSAwLFxuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTMwLS8qKlxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMzE6ICogc3RydWN0IG14bDg2Mnh4X3NzX3NwX3RhZyAtIFNwZWNpYWwgdGFnIHBvcnQgc2V0dGluZ3NcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTMyLSAqIEBwaWQ6IHBvcnQgSUQgKDF+MTYpXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEzMzogKiBAbWFzazogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX21hc2tcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTM0OiAqIEByeDogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEzNTogKiBAdHg6IFNlZSBcdTAwMjZlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ190eFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMzY6ICogQHJ4X3BlbjogU2VlIFx1MDAyNmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4X3BlblxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMzctICogQHR4X3BlbjogVFggc3BlY2lhbCB0YWcgaW5mbyBvdmVyIHByZWFtYmxlXG4tLVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExNDAtICovXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTE0MTpzdHJ1Y3QgbXhsODYyeHhfc3Nfc3BfdGFnIHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTQyLVx0dTggcGlkO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExNDM6XHR1OCBtYXNrOyAvKiBlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19tYXNrICovXG5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTkyMQoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIGEgc3VtbWFyeSBvZiBteSBpbW1lZGlhdGUgdGhvdWdodCBwcm9jZXNzLCBmb2N1c2luZyBvbiB3aGF0IEkmIzM5O2QgYmUgZG9pbmcgYW5kIHdoeSwgZ2l2ZW4gdGhlIHByb21wdDoKCioqRXhhbWluaW5nIGEgS2NvbmZpZyBGaWxlKioKCk9rYXksIHNvIEkmIzM5O20gYmVpbmcgYXNrZWQgdG8gbG9vayBhdCBgZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L0tjb25maWdgLiBSaWdodCBhd2F5LCB0aGlzIHRlbGxzIG1lIGEgZmV3IHRoaW5ncy4gSXQmIzM5O3MgYSBLY29uZmlnIGZpbGUsIG1lYW5pbmcgaXQmIzM5O3MgaW52b2x2ZWQgaW4gY29uZmlndXJpbmcgdGhlIGtlcm5lbCBidWlsZCBzeXN0ZW0uIFRoZSBwYXRoIGluZGljYXRlcyBpdCYjMzk7cyByZWxhdGVkIHRvIG5ldHdvcmsgZHJpdmVycywgc3BlY2lmaWNhbGx5IGEgRFNBIChEaXN0cmlidXRlZCBTd2l0Y2ggQXJjaGl0ZWN0dXJlKSBkcml2ZXIsIGZvciBhIGRldmljZSBjYWxsZWQgbXhsODYyeHguCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dC4gSSYjMzk7bGwgbWVudGFsbHkgc3RhcnQgYXNraW5nIHF1ZXN0aW9uczoKCiogICBXaGF0JiMzOTtzIHRoZSBnb2FsIGhlcmU/IEFtIEkgZGVidWdnaW5nIHNvbWV0aGluZz8gVHJ5aW5nIHRvIHVuZGVyc3RhbmQgZGVwZW5kZW5jaWVzPyBPciBhbSBJIGNvbmZpZ3VyaW5nIGEgc3lzdGVtLCBhbmQgdHJ5aW5nIHRvIGVuYWJsZSB0aGlzIGRyaXZlcj8KKiAgIFdoYXQga2VybmVsIHZlcnNpb24gYXJlIHdlIHVzaW5nPyBLY29uZmlnIHN5bnRheCBjYW4gdmFyeSBzbGlnaHRseSBiZXR3ZWVuIHZlcnNpb25zLCB0aG91Z2ggZm9yIGEgZHJpdmVyLXNwZWNpZmljIGNvbmZpZyBsaWtlIHRoaXMgaXQgcHJvYmFibHkgd29uJiMzOTt0IGJlIGEgbWFqb3IgaXNzdWUuCiogICBXaGF0IG90aGVyIGZpbGVzIGFyZSByZWxldmFudCB0byB0aGlzIGRyaXZlcj8gSSBrbm93IHRoYXQgS2NvbmZpZyBmaWxlcyBvZnRlbiByZWZlcmVuY2UgY29ycmVzcG9uZGluZyBgLmNgIGZpbGVzLCBhbmQgSSYjMzk7ZCBhbnRpY2lwYXRlIGxvb2tpbmcgYXQgdGhlIGRyaXZlciYjMzk7cyBzb3VyY2UgY29kZSBpZiB0aGlzIGlzIGNvbmZpZ3VyYXRpb24tcmVsYXRlZC4KCkkga25vdyBJJiMzOTttIGxvb2tpbmcgYXQgYSBLY29uZmlnIGZpbGUsIHdoaWNoIG1lYW5zIGl0IHdpbGwgcHJvYmFibHkgZGVmaW5lOgoKKiAgICoqU3ltYm9sczoqKiBUaGVzZSBhcmUgdGhlIHZhcmlhYmxlcyB0aGUgdXNlciBzZXRzIHRvIGVuYWJsZSBvciBkaXNhYmxlIGZlYXR1cmVzIHJlbGF0ZWQgdG8gdGhlIGBteGw4NjJ4eGAgZHJpdmVyLiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciB0aGVpciBuYW1lcyBhbmQgZGVzY3JpcHRpb25zLiBJJiMzOTtsbCBwYXkgYXR0ZW50aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlcyB0byBnZXQgYSBzZW5zZSBvZiB3aGV0aGVyIHRoZSBkcml2ZXIgaXMgZW5hYmxlZCBieSBkZWZhdWx0LgoqICAgKipEZXBlbmRlbmNpZXM6KiogSSYjMzk7bGwgYmUgc2Nhbm5pbmcgZm9yIGBkZXBlbmRzIG9uYCBzdGF0ZW1lbnRzLiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQgdGhhdCB3aWxsIHRlbGwgbWUgd2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgb3Igb3RoZXIgY29uZmlndXJhdGlvbnMgbXVzdCBiZSBlbmFibGVkIGJlZm9yZSB0aGlzIGRyaXZlciBjYW4gYmUgc2VsZWN0ZWQuIEkmIzM5O2xsIG5lZWQgdG8gZm9sbG93IHRob3NlIGRlcGVuZGVuY2llcyBhbmQgY2hlY2sgd2hhdCAqdGhvc2UqIGNvbmZpZ3MgYXJlIHNldHRpbmcuCiogICAqKk1lbnUgc3RydWN0dXJlOioqIEtjb25maWcgZmlsZXMgYXJlIG5lc3RlZCB0byBjcmVhdGUgYSBsb2dpY2FsIHdheSBmb3IgdXNlcnMgdG8gY29uZmlndXJlIHRoZWlyIHN5c3RlbS4gSSYjMzk7bGwgYmUgbG9va2luZyBhdCB0aGUgbmVzdGluZyBsZXZlbHMgYW5kIHJlbGF0aW9uc2hpcHMgdG8gdW5kZXJzdGFuZCBob3cgdG8gbG9jYXRlIHRoZSBgbXhsODYyeHhgIGRyaXZlciB3aXRoaW4gdGhlIG92ZXJhbGwga2VybmVsIGNvbmZpZ3VyYXRpb24gbWVudS4KKiAgICoqUHJvbXB0IChoZWxwIHRleHQpOioqIFRoZSBnb29kIEtjb25maWcgZmlsZXMgaGF2ZSBnb29kIGhlbHAgdGV4dCEgSSYjMzk7bGwgYmUgb24gdGhlIGxvb2tvdXQgZm9yIGEgY2xlYXIgZXhwbGFuYXRpb24gb2Ygd2hhdCB0aGlzIGRyaXZlciBkb2VzLCB0aGUgaGFyZHdhcmUgaXQgc3VwcG9ydHMsIGFuZCBhbnkgY29uZmlndXJhdGlvbiBvcHRpb25zIEkgc2hvdWxkIGJlIGF3YXJlIG9mLgoKSSYjMzk7bSByZWFkeSB0byBkaXZlIGludG8gdGhlIGZpbGUgYW5kIHN0YXJ0IGFuYWx5emluZyB0aGVzZSBlbGVtZW50cyBzeXN0ZW1hdGljYWxseS4gSSB3aWxsIGxvb2sgZm9yIGFueSBjbHVlcyBhYm91dCB3aGF0IGlzIGRyaXZpbmcgdGhpcyBpbnZlc3RpZ2F0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L0tjb25maWcmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyAgIDE6XHQjIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbiAgIDI6XHRjb25maWcgTkVUX0RTQV9NWEw4NjJcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O01heExpbmVhciBNeEw4NjJ4eFwmIzM0O1xuICAgNDpcdFx0ZGVwZW5kcyBvbiBORVRfRFNBXG4gICA1Olx0XHRzZWxlY3QgQ1JDMTZcbiAgIDY6XHRcdHNlbGVjdCBORVRfRFNBX1RBR19NWExfODYyWFhcbiAgIDc6XHRcdGhlbHBcbiAgIDg6XHRcdCAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggc3dpdGNoIGZhbWlseS5cbiAgIDk6XHRcdCAgVGhlc2Ugc3dpdGNoZXMgaGF2ZSB0d28gMTBHRSBTZXJEZXMgaW50ZXJmYWNlcywgb25lIHR5cGljYWxseVxuICAxMDpcdFx0ICB1c2VkIGFzIENQVSBwb3J0LlxuICAxMTpcdFx0ICAgLSBNeEw4NjI4MiBoYXMgZWlnaHQgMi41IEdpZ2FiaXQgUEhZc1xuICAxMjpcdFx0ICAgLSBNeEw4NjI1MiBoYXMgZml2ZSAyLjUgR2lnYWJpdCBQSFlzXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMTQ6NDg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjctZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI3NDYKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBteGw4NjJ4eGAgZHJpdmVyIGNvZGUuIE15IGluaXRpYWwgYXBwcm9hY2ggaXMgYWx3YXlzIHRvIHVuZGVyc3RhbmQgdGhlIHJlZ2lzdHJhdGlvbiBhbmQgcHJvYmluZy9iaW5kaW5nIHByb2Nlc3MuIFNvLCBJIG5lZWQgdG8gc2VlIGhvdyBgbXhsODYyeHhgIGlzIGRlY2xhcmVkIGFzIGEgZHJpdmVyIGFuZCBob3cgdGhlIGtlcm5lbCBmaW5kcyBpdC4gSSYjMzk7bGwgZm9jdXMgb24gdGhlIGBteGw4NjJ4eC5jYCBmaWxlLiBJJiMzOTttIGdvaW5nIHRvIGxvb2sgZm9yIGFueSBkZWZpbml0aW9uIHJlbGF0ZWQgdG8gdGhlIE1ESU8gZHJpdmVyIGludGVyZmFjZSwgb3IgcGVyaGFwcyBTUEksIEkyQywgb3IgZXZlbiBEZXZpY2UgVHJlZSBiaW5kaW5ncyBpZiBpdCYjMzk7cyBhbiBPRi1iYXNlZCBzeXN0ZW0uIFVuZGVyc3RhbmRpbmcgdGhlIGNvbW11bmljYXRpb24gaW50ZXJmYWNlIGlzIGtleSB0byB1bmRlcnN0YW5kaW5nIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGUgaGFyZHdhcmUuIEkgd2lsbCBzdGFydCBieSB0cmFjaW5nIHRob3NlIGNydWNpYWwgZW50cnkgcG9pbnRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfbWRpb19kcml2ZXJ8bWRpb19kcml2ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjIwOD1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBteGw4NjJ4eF9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYy0yMjA5LVxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM6MjIxMDpzdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG14bDg2Mnh4X2RyaXZlciA9IHtcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTIyMTEtXHQucHJvYmUgID0gbXhsODYyeHhfcHJvYmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzMTY3CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMjcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOgoKKipEaXZpbmcgaW50byBgbXhsODYyeHguY2AqKgoKT2theSwgdGltZSB0byBnZXQgdG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIEkgbmVlZCB0byB0YWtlIGEgbG9vayBhdCB0aGUgYG14bDg2Mnh4LmNgIGRyaXZlciwgc3BlY2lmaWNhbGx5IGFyb3VuZCBsaW5lcyAyMjAwIHRvIDIyMjUuIEkgcmVtZW1iZXIgZW5jb3VudGVyaW5nIHNvbWV0aGluZyBwb3RlbnRpYWxseSByZWxhdGVkIHRvIHRoaXMgaXNzdWUgaW4gdGhhdCBhcmVhLCBhbmQgSSB3YW50IHRvIHJlZnJlc2ggbXkgbWVtb3J5IGFuZCBzZWUgaWYgSSBjYW4gc3BvdCBhbnl0aGluZyByZWxldmFudCB3aXRoIGZyZXNoIGV5ZXMuIFRoaXMgaXMgYSBjb21tb24gZGVidWdnaW5nIHRlY2huaXF1ZSBmb3IgbWU7IEkmIzM5O2xsIHN0YXJ0IHdpdGggdGhlIG1vc3QgbGlrZWx5IHN1c3BlY3QsIGEgY29uY2VudHJhdGVkIGFyZWEgb2YgY29kZSBJIHJlY2FsbCwgYW5kIHRoZW4gZXhwYW5kIG15IHNlYXJjaCBmcm9tIHRoZXJlIGlmIG5lZWRlZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHdlIGNhbiBmaW5kLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjIwMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzNQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyMjAwOlx0XHRkZXZfc2V0X2RydmRhdGEoXHUwMDI2bWRpb2Rldi1cdTAwM2VkZXYsIE5VTEwpO1xuMjIwMTpcdH1cbjIyMDI6XHRcbjIyMDM6XHRzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBteGw4NjJ4eF9vZl9tYXRjaFtdID0ge1xuMjIwNDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21heGxpbmVhcixteGw4NjI4MlwmIzM0OyB9LFxuMjIwNTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O21heGxpbmVhcixteGw4NjI1MlwmIzM0OyB9LFxuMjIwNjpcdFx0eyAvKiBzZW50aW5lbCAqLyB9XG4yMjA3Olx0fTtcbjIyMDg6XHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBteGw4NjJ4eF9vZl9tYXRjaCk7XG4yMjA5Olx0XG4yMjEwOlx0c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBteGw4NjJ4eF9kcml2ZXIgPSB7XG4yMjExOlx0XHQucHJvYmUgID0gbXhsODYyeHhfcHJvYmUsXG4yMjEyOlx0XHQucmVtb3ZlID0gbXhsODYyeHhfcmVtb3ZlLFxuMjIxMzpcdFx0LnNodXRkb3duID0gbXhsODYyeHhfc2h1dGRvd24sXG4yMjE0Olx0XHQubWRpb2Rydi5kcml2ZXIgPSB7XG4yMjE1Olx0XHRcdC5uYW1lID0gXCYjMzQ7bXhsODYyeHhcJiMzNDssXG4yMjE2Olx0XHRcdC5vZl9tYXRjaF90YWJsZSA9IG14bDg2Mnh4X29mX21hdGNoLFxuMjIxNzpcdFx0fSxcbjIyMTg6XHR9O1xuMjIxOTpcdFxuMjIyMDpcdG1kaW9fbW9kdWxlX2RyaXZlcihteGw4NjJ4eF9kcml2ZXIpO1xuMjIyMTpcdFxuMjIyMjpcdE1PRFVMRV9ERVNDUklQVElPTihcJiMzNDtEcml2ZXIgZm9yIE1heExpbmVhciBNeEw4NjJ4eCBzd2l0Y2ggZmFtaWx5XCYjMzQ7KTtcbjIyMjM6XHRNT0RVTEVfTElDRU5TRShcJiMzNDtHUExcJiMzNDspO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuNy1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzgxMAoJCQkJCQkJb3V0cHV0OiAyMAoJCQkJCQkJdGhvdWdodHM6IDQ2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGFiaWxpdHkgQW5hbHlzaXMgZm9yIHRoZSBgbXhsODYyeHhgIERyaXZlcioqCgpPa2F5LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IElzIHRoaXMgYG14bDg2Mnh4YCBkcml2ZXLigJRzcGVjaWZpY2FsbHkgZm9yIHRob3NlIGBtYXhsaW5lYXIsbXhsODYyODJgIG9yIGBtYXhsaW5lYXIsbXhsODYyNTJgIGRldmljZXPigJRhbiBNRElPLWJhc2VkIHN3aXRjaCBkcml2ZXIsIGFuZCwgY3J1Y2lhbGx5LCBkb2VzIGl0ICpyZXF1aXJlKiBwaHlzaWNhbCBoYXJkd2FyZT8gSSBuZWVkIHRvIGtub3cgaWYgaXQmIzM5O3MgcmVhY2hhYmxlIGZvciBmdXp6aW5nLgoKTXkgdGhpbmtpbmcgaXMgZ3VpZGVkIGJ5IHRoaXMgJiMzNDtyZWFjaGFiaWxpdHkgaXMgdGhlIHByaW1hcnkgZ2F0ZSYjMzQ7IHByaW5jaXBsZSBJJiMzOTttIGRlYWxpbmcgd2l0aC4gSWYgdGhlIGNvZGUgKmNhbiYjMzk7dCogZXhlY3V0ZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIFFFTVUsIHRoZW4gZnV6emluZyBpcyBhIHdhc3RlIG9mIHRpbWUsIG5vIG1hdHRlciBob3cgY29tcGxleCB0aGUgbG9naWMuCgpMb29raW5nIGF0IFNlY3Rpb24gMiwgdGhlIHRleHQgZXhwbGljaXRseSBjYWxscyBvdXQgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOiB0aGluZ3MgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcywgU21hcnROSUNzLCBvciBHUFUgZHJpdmVycyB0aGF0IG5lZWQgYW4gYWN0dWFsIEFTSUMgb3IgUENJZSBjYXJkIHRoYXQgaXNuJiMzOTt0IGVtdWxhdGVkLiBUaGVuIHRoZXJlJiMzOTtzIHRoZSBpc3N1ZSBvZiB1bnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHMg4oCTIGxpa2UgdGVhcmRvd24gY2FsbGJhY2tzIHRyaWdnZXJlZCBvbmx5IGJ5IHBoeXNpY2FsIGhvdC11bnBsdWcgb3IgbWFudWFsIHVuYmluZGluZy4KClNvLCB0aGUga2V5IHF1ZXN0aW9uIGlzOiBDYW4gYG14bDg2Mnh4YCBiZSBwcm9iZWQgb3IgaW5zdGFudGlhdGVkIGluIGEgc3RhbmRhcmQgc3l6a2FsbGVyIC8gUUVNVSAvIEdDRSBlbnZpcm9ubWVudD8gSSBrbm93IHN5emthbGxlciBydW5zIGluIHN0YW5kYXJkIFFFTVUvR0NFLCB3aXRob3V0IGEgcGh5c2ljYWwgTURJTyBidXMgY29ubmVjdGVkIHRvIGFuIE14TDg2Mnh4IEFTSUMgc3dpdGNoLiBDYW4gYW4gTURJTyBzd2l0Y2ggb3IgRFNBIGRldmljZSBiZSBlbXVsYXRlZCBvciBib3VuZCAqd2l0aG91dCogdGhlIGhhcmR3YXJlPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIE1ESU8gYnVzIGFuZCB0aGUgT0YvRGV2aWNlVHJlZSBtZGlvX2RyaXZlciBhcmUgaGFuZGxlZCBpbiB0aGlzIGNvbnRleHQuIERvIHZpcnR1YWwgTURJTyBidXNlcyBleGlzdD8gRG9lcyBzeXpib3QgaGF2ZSBhIHdheSBvZiBwcm9iaW5nIE1ESU8gZGV2aWNlcyBpbiB0aGlzIHNldHVwPwoKSSBuZWVkIHRvIHNlZSBob3cgc3l6a2FsbGVyIGludGVyYWN0cyB3aXRoIE1ESU8vRFNBIGRyaXZlcnMuIFRpbWUgdG8gZ3JlcCB0aGUga2VybmVsIHNvdXJjZSBmb3IgYG14bDg2Mnh4YCBvciBgbWRpb19kcml2ZXJgLiBIb3BlZnVsbHksIHRoZXJlIGFyZSBzb21lIG1vY2sgb3IgdmlydHVhbCBpbnRlcmZhY2VzIHRoYXQgd2lsbCBnaXZlIG1lIGEgY2x1ZSBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgcmVhY2hhYmlsaXR5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvX21vZHVsZV9kcml2ZXImIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jPTIyMTA9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBuc3NfY2NfcWNhOGtfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE3LVxuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jOjIyMTg6bWRpb19tb2R1bGVfZHJpdmVyKG5zc19jY19xY2E4a19kcml2ZXIpO1xuZHJpdmVycy9jbGsvcWNvbS9uc3NjYy1xY2E4ay5jLTIyMTktXG4tLVxuZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfbWRpby5jPTM5MT1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGI1M19tZGlvX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvYjUzL2I1M19tZGlvLmMtMzk5LX07XG5kcml2ZXJzL25ldC9kc2EvYjUzL2I1M19tZGlvLmM6NDAwOm1kaW9fbW9kdWxlX2RyaXZlcihiNTNfbWRpb19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfbWRpby5jLTQwMS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFuOTMwM19tZGlvLmM9MTY0PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbGFuOTMwM19tZGlvX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFuOTMwM19tZGlvLmMtMTcyLX07XG5kcml2ZXJzL25ldC9kc2EvbGFuOTMwM19tZGlvLmM6MTczOm1kaW9fbW9kdWxlX2RyaXZlcihsYW45MzAzX21kaW9fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2RzYS9sYW45MzAzX21kaW8uYy0xNzQtXG4tLVxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmM9OTI2PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgZ3N3MXh4X2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYy05MzUtXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYzo5MzY6bWRpb19tb2R1bGVfZHJpdmVyKGdzdzF4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmMtOTM3LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6ODg2M19zbWkuYz0yMTE9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBrc3o4ODYzX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg4NjNfc21pLmMtMjIwLVxuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o4ODYzX3NtaS5jOjIyMTptZGlvX21vZHVsZV9kcml2ZXIoa3N6ODg2M19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL21pY3JvY2hpcC9rc3o4ODYzX3NtaS5jLTIyMi1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYz0yNTg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdDc1MzBfbWRpb19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY3LVxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM6MjY4Om1kaW9fbW9kdWxlX2RyaXZlcihtdDc1MzBfbWRpb19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuYz0zNjg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTYwNjBfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuYy0zNzctXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmM6Mzc4Om1kaW9fbW9kdWxlX2RyaXZlcihtdjg4ZTYwNjBfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuYy0zNzktXG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmM9NzUyOT1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG12ODhlNnh4eF9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzOS1cbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jOjc1NDA6bWRpb19tb2R1bGVfZHJpdmVyKG12ODhlNnh4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzU0MS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYz0yMjEwPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXhsODYyeHhfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTIyMTktXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYzoyMjIwOm1kaW9fbW9kdWxlX2RyaXZlcihteGw4NjJ4eF9kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMtMjIyMS1cbi0tXG5kcml2ZXJzL25ldC9kc2EvcWNhL2FyOTMzMS5jPTExMjg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBhcjkzMzFfc3dfbWRpb19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYy0xMTM3LVxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYzoxMTM4Om1kaW9fbW9kdWxlX2RyaXZlcihhcjkzMzFfc3dfbWRpb19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYy0xMTM5LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jPTIyMjE9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBxY2E4a21kaW9fZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMzEtXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYzoyMjMyOm1kaW9fbW9kdWxlX2RyaXZlcihxY2E4a21kaW9fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMzMtXG4tLVxuZHJpdmVycy9uZXQvZHNhL3hyczcwMHgveHJzNzAweF9tZGlvLmM9MTY2PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgeHJzNzAweF9tZGlvX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9kc2EveHJzNzAweC94cnM3MDB4X21kaW8uYy0xNzUtXG5kcml2ZXJzL25ldC9kc2EveHJzNzAweC94cnM3MDB4X21kaW8uYzoxNzY6bWRpb19tb2R1bGVfZHJpdmVyKHhyczcwMHhfbWRpb19kcml2ZXIpO1xuZHJpdmVycy9uZXQvZHNhL3hyczcwMHgveHJzNzAweF9tZGlvLmMtMTc3LVxuLS1cbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYz00OTY4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgeXQ5MjF4X21kaW9fZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYy00OTc3LVxuZHJpdmVycy9uZXQvZHNhL3l0OTIxeC5jOjQ5Nzg6bWRpb19tb2R1bGVfZHJpdmVyKHl0OTIxeF9tZGlvX2RyaXZlcik7XG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmMtNDk3OS1cbi0tXG5kcml2ZXJzL25ldC9waHkveGlsaW54X2dtaWkycmdtaWkuYz0xMzg9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciB4Z21paXRvcmdtaWlfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3BoeS94aWxpbnhfZ21paTJyZ21paS5jLTE0NS1cbmRyaXZlcnMvbmV0L3BoeS94aWxpbnhfZ21paTJyZ21paS5jOjE0NjptZGlvX21vZHVsZV9kcml2ZXIoeGdtaWl0b3JnbWlpX2RyaXZlcik7XG5kcml2ZXJzL25ldC9waHkveGlsaW54X2dtaWkycmdtaWkuYy0xNDctXG4tLVxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1ucy11c2IzLmM9MjMyPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgYmNtX25zX3VzYjNfbWRpb19kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1ucy11c2IzLmMtMjQxLVxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1ucy11c2IzLmM6MjQyOm1kaW9fbW9kdWxlX2RyaXZlcihiY21fbnNfdXNiM19tZGlvX2RyaXZlcik7XG5kcml2ZXJzL3BoeS9icm9hZGNvbS9waHktYmNtLW5zLXVzYjMuYy0yNDMtXG4tLVxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1uczItcGNpZS5jPTczPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbnMyX3BjaV9waHlfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMyLXBjaWUuYy04MS19O1xuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1uczItcGNpZS5jOjgyOm1kaW9fbW9kdWxlX2RyaXZlcihuczJfcGNpX3BoeV9kcml2ZXIpO1xuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1uczItcGNpZS5jLTgzLVxuLS1cbmluY2x1ZGUvbGludXgvbWRpby5oPTY5Nj1zdHJ1Y3QgcGh5X2RldmljZSAqbWRpb2J1c19nZXRfcGh5KHN0cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyKTtcbi0tXG5pbmNsdWRlL2xpbnV4L21kaW8uaC02OTgtLyoqXG5pbmNsdWRlL2xpbnV4L21kaW8uaDo2OTk6ICogbWRpb19tb2R1bGVfZHJpdmVyKCkgLSBIZWxwZXIgbWFjcm8gZm9yIHJlZ2lzdGVyaW5nIG1kaW8gZHJpdmVyc1xuaW5jbHVkZS9saW51eC9tZGlvLmgtNzAwLSAqIEBfbWRpb19kcml2ZXI6IGRyaXZlciB0byByZWdpc3RlclxuLS1cbmluY2x1ZGUvbGludXgvbWRpby5oLTcwNS0gKi9cbmluY2x1ZGUvbGludXgvbWRpby5oOjcwNjojZGVmaW5lIG1kaW9fbW9kdWxlX2RyaXZlcihfbWRpb19kcml2ZXIpIFxcXG5pbmNsdWRlL2xpbnV4L21kaW8uaC03MDctXHRtb2R1bGVfZHJpdmVyKF9tZGlvX2RyaXZlciwgbWRpb19kcml2ZXJfcmVnaXN0ZXIsIG1kaW9fZHJpdmVyX3VucmVnaXN0ZXIpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3MTM3CgkJCQkJCQlvdXRwdXQ6IDIwCgkJCQkJCQl0aG91Z2h0czogNDQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTURJTyBEZXZpY2UgUmVnaXN0cmF0aW9uIGFuZCBCdXMgU3RydWN0dXJlKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGludG8gdGhpcyBNRElPIHNpdHVhdGlvbi4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoZXNlIE1ESU8gZGV2aWNlcyBhcmUgYmVpbmcgYnJvdWdodCBpbnRvIHRoZSBzeXN0ZW0uIEFyZSB0aGV5IHVzaW5nIGEgdmlydHVhbCBidXMgc3RydWN0dXJlLCBvciBhcmUgd2UgcmVseWluZyBvbiBkZXZpY2UgdHJlZSBwcm9iaW5nIGFuZCBkaXJlY3QgaGFyZHdhcmUgaW50ZXJhY3Rpb24/IE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBpbnZlc3RpZ2F0ZSB0aGUgcmVnaXN0cmF0aW9uIHByb2Nlc3MgaXRzZWxmLiBXaGVyZSBkb2VzIHRoZSBydWJiZXIgbWVldCB0aGUgcm9hZD8gSSBuZWVkIHRvIGxvb2sgZm9yIGNhbGxzIHRvIGBtZGlvX2RyaXZlcl9yZWdpc3RlcmAg4oCTIHdoZXJlIGFyZSB0aGUgTURJTyBkcml2ZXJzIGFjdHVhbGx5IGJlaW5nIHJlZ2lzdGVyZWQ/IEkmIzM5O2xsIHByb2JhYmx5IGJyb2FkZW4gdGhpcyB0byBzZWFyY2ggZm9yIHdoZXJlIGl0JiMzOTtzICp1c2VkKiwgdG9vLCBqdXN0IHRvIGJlIHN1cmUuIFRoaXMgd2lsbCBnaXZlIG1lIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgZnJhbWV3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xMCAxNDo0ODwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttZGlvX2RldmljZV9yZWdpc3RlciYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz00NDY9c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDczLVxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDc0Olx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3dpdGNoX21kaW9kZXYpO1xuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmMtNDc1LVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYz01Mj1zdGF0aWMgaW50IG9mX21kaW9idXNfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtaWlfYnVzICptZGlvLFxuLS1cbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jLTY4LVx0LyogQWxsIGRhdGEgaXMgbm93IHN0b3JlZCBpbiB0aGUgbWRpb2RldiBzdHJ1Y3Q7IHJlZ2lzdGVyIGl0LiAqL1xuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM6Njk6XHRyYyA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmMtNzAtXHRpZiAocmMpIHtcbi0tXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jPTMzNz1zdGF0aWMgaW50IHhwY3NfcGxhdF9pbml0X2RldihzdHJ1Y3QgZHdfeHBjc19wbGF0ICpweHBjcylcbi0tXG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1Ni1cbmRyaXZlcnMvbmV0L3Bjcy9wY3MteHBjcy1wbGF0LmM6MzU3Olx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XG5kcml2ZXJzL25ldC9wY3MvcGNzLXhwY3MtcGxhdC5jLTM1OC1cdGlmIChyZXQpIHtcbi0tXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYz0xMDc0PXN0YXRpYyBpbnQgYW44ODExaGJfcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldilcbi0tXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk3LVxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM6MTA5ODpcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKG1kaW9kZXYpO1xuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5OS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjYtLyoqXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoyNzogKiBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldCAtIFJlYWQgYW5kIGluaXRpYWxpemUgdGhlIHJlc2V0IHByb3BlcnRpZXMgb2ZcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTI4LSAqXHRcdFx0XHRhbiBtZGlvIGRldmljZVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTMyLSAqL1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MzM6c3RhdGljIGludCBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0zNC17XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTQzPUVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfY3JlYXRlKTtcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDUtLyoqXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNDY6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXIgLSBSZWdpc3RlciB0aGUgbWRpbyBkZXZpY2Ugb24gdGhlIE1ESU8gYnVzXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNDctICogQG1kaW9kZXY6IG1kaW9fZGV2aWNlIHN0cnVjdHVyZSB0byBiZSBhZGRlZCB0byB0aGUgTURJTyBidXNcbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTAtICovXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNTE6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE1Mi17XG4tLVxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTcyLX1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jOjE3MzpFWFBPUlRfU1lNQk9MKG1kaW9fZGV2aWNlX3JlZ2lzdGVyKTtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3NC1cbi0tXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODAtICogVGhpcyBkb2VzbiYjMzk7dCBmcmVlIHRoZSBtZGlvX2RldmljZSBpdHNlbGYsIGl0IG1lcmVseSByZXZlcnNlcyB0aGUgZWZmZWN0c1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTgxOiAqIG9mIG1kaW9fZGV2aWNlX3JlZ2lzdGVyKCkuIFVzZSBtZGlvX2RldmljZV9mcmVlKCkgdG8gZnJlZSB0aGUgZGV2aWNlXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODItICogYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jPTE5MT1pbnQgbWRpb2J1c19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE5OC1cdGlmIChtZGlvZGV2LVx1MDAzZWZsYWdzIFx1MDAyNiBNRElPX0RFVklDRV9GTEFHX1BIWSkge1xuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTk5Olx0XHRlcnIgPSBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChtZGlvZGV2KTtcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTIwMC1cdFx0aWYgKGVycilcbi0tXG5pbmNsdWRlL2xpbnV4L21kaW8uaD05NT1zdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9fZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XG5pbmNsdWRlL2xpbnV4L21kaW8uaDo5NjppbnQgbWRpb19kZXZpY2VfcmVnaXN0ZXIoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcbmluY2x1ZGUvbGludXgvbWRpby5oLTk3LXZvaWQgbWRpb19kZXZpY2VfcmVtb3ZlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI4NjI0CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMTQyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRpdmluZyBpbnRvIHRoZSBEcml2ZXIgQ29kZSoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZGlzc2VjdCB0aGlzIGNvZGUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBkcml2ZXJzIGludGVyYWN0LiBGaXJzdCwgSSYjMzk7bGwgbG9vayBhdCBgZHNhX2xvb3AuY2AuIEl0JiMzOTtzIGEgbW9jayBEU0Egc3dpdGNoIGRyaXZlciwgdXNpbmcgYSBtb2NrIE1ESU8gZGV2aWNlIOKAkyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIGFyY2hpdGVjdHVyZS4gSG93ZXZlciwgSSYjMzk7bSBtb3JlIGludGVyZXN0ZWQgaW4gdGhlIHJlYWwgaGFyZHdhcmUuIFNvLCB3aGF0IGFib3V0IGBteGw4NjJ4eGA/IEl0IGFwcGVhcnMgdG8gYmUgdGllZCB0byBhIHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUsIGV4Y2x1c2l2ZWx5IG1hdGNoZWQgdmlhIHRoZSAmIzM0O29mX21hdGNoX3RhYmxlID0gbXhsODYyeHhfb2ZfbWF0Y2gmIzM0Oy4gVGhlIGVudHJpZXMgJiMzNDttYXhsaW5lYXIsbXhsODYyODImIzM0OyBhbmQgJiMzNDttYXhsaW5lYXIsbXhsODYyNTImIzM0OyBpbW1lZGlhdGVseSB0ZWxsIG1lIHRoaXMgaXMgdGFyZ2V0aW5nIHNwZWNpZmljIE1heExpbmVhciBjaGlwcy4gTm93LCBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBwcm9iZSBmdW5jdGlvbi4gTGV0JiMzOTtzIGRpZyBpbnRvIGBteGw4NjJ4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpYCBhbmQgc2VlIHdoYXQgd2UgY2FuIGZpbmQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMTAwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzIxMDA6XHR9O1xuMjEwMTpcdFxuMjEwMjpcdHN0YXRpYyBpbnQgbXhsODYyeHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxuMjEwMzpcdHtcbjIxMDQ6XHRcdHN0cnVjdCBkZXZpY2UgKmRldiA9IFx1MDAyNm1kaW9kZXYtXHUwMDNlZGV2O1xuMjEwNTpcdFx0c3RydWN0IG14bDg2Mnh4X3ByaXYgKnByaXY7XG4yMTA2Olx0XHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHM7XG4yMTA3Olx0XHRpbnQgZXJyLCBpO1xuMjEwODpcdFxuMjEwOTpcdFx0cHJpdiA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpO1xuMjExMDpcdFx0aWYgKCFwcml2KVxuMjExMTpcdFx0XHRyZXR1cm4gLUVOT01FTTtcbjIxMTI6XHRcbjIxMTM6XHRcdHByaXYtXHUwMDNlbWRpb2RldiA9IG1kaW9kZXY7XG4yMTE0Olx0XG4yMTE1Olx0XHRkcyA9IGRldm1fa3phbGxvYyhkZXYsIHNpemVvZigqZHMpLCBHRlBfS0VSTkVMKTtcbjIxMTY6XHRcdGlmICghZHMpXG4yMTE3Olx0XHRcdHJldHVybiAtRU5PTUVNO1xuMjExODpcdFxuMjExOTpcdFx0cHJpdi1cdTAwM2VkcyA9IGRzO1xuMjEyMDpcdFx0ZHMtXHUwMDNlZGV2ID0gZGV2O1xuMjEyMTpcdFx0ZHMtXHUwMDNlcHJpdiA9IHByaXY7XG4yMTIyOlx0XHRkcy1cdTAwM2VvcHMgPSBcdTAwMjZteGw4NjJ4eF9zd2l0Y2hfb3BzO1xuMjEyMzpcdFx0ZHMtXHUwMDNlcGh5bGlua19tYWNfb3BzID0gXHUwMDI2bXhsODYyeHhfcGh5bGlua19tYWNfb3BzO1xuMjEyNDpcdFx0ZHMtXHUwMDNlbnVtX3BvcnRzID0gTVhMODYyWFhfTUFYX1BPUlRTO1xuMjEyNTpcdFx0ZHMtXHUwMDNlYXNzaXN0ZWRfbGVhcm5pbmdfb25fY3B1X3BvcnQgPSB0cnVlO1xuMjEyNjpcdFx0ZHMtXHUwMDNlZmRiX2lzb2xhdGlvbiA9IHRydWU7XG4yMTI3Olx0XHRkcy1cdTAwM2VtYXhfbnVtX2JyaWRnZXMgPSBNWEw4NjJYWF9NQVhfQlJJREdFUztcbjIxMjg6XHRcbjIxMjk6XHRcdG14bDg2Mnh4X2hvc3RfaW5pdChwcml2KTtcbjIxMzA6XHRcbjIxMzE6XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSYjNDM7JiM0MzspIHtcbjIxMzI6XHRcdFx0cHJpdi1cdTAwM2Vwb3J0c1tpXS5wcml2ID0gcHJpdjtcbjIxMzM6XHRcdFx0SU5JVF9XT1JLKFx1MDAyNnByaXYtXHUwMDNlcG9ydHNbaV0uaG9zdF9mbG9vZF93b3JrLFxuMjEzNDpcdFx0XHRcdCAgbXhsODYyeHhfaG9zdF9mbG9vZF93b3JrX2ZuKTtcbjIxMzU6XHRcdFx0c3Bpbl9sb2NrX2luaXQoXHUwMDI2cHJpdi1cdTAwM2Vwb3J0c1tpXS5zdGF0c19sb2NrKTtcbjIxMzY6XHRcdH1cbjIxMzc6XHRcbjIxMzg6XHRcdElOSVRfREVMQVlFRF9XT1JLKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yaywgbXhsODYyeHhfc3RhdHNfd29ya19mbik7XG4yMTM5Olx0XG4yMTQwOlx0XHRkZXZfc2V0X2RydmRhdGEoZGV2LCBkcyk7XG4yMTQxOlx0XG4yMTQyOlx0XHRlcnIgPSBkc2FfcmVnaXN0ZXJfc3dpdGNoKGRzKTtcbjIxNDM6XHRcdGlmIChlcnIpIHtcbjIxNDQ6XHRcdFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4yMTQ1Olx0XHRcdG14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7XG4yMTQ2Olx0XHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSYjNDM7JiM0MzspXG4yMTQ3Olx0XHRcdFx0Y2FuY2VsX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXBvcnRzW2ldLmhvc3RfZmxvb2Rfd29yayk7XG4yMTQ4Olx0XHR9XG4yMTQ5Olx0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzEwIDE0OjQ4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy43LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5ODU5CgkJCQkJCQlvdXRwdXQ6IDE0NgoJCQkJCQkJdGhvdWdodHM6IDg4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXNpcyBvZiB0aGUgTWF4TGluZWFyIE14TDg2Mnh4IFN3aXRjaCBEcml2ZXIgUGF0Y2ggZm9yIEZ1enppbmcgRmVhc2liaWxpdHkqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGZpZ3VyZSBvdXQgd2hldGhlciB0aGlzIGlzIGV2ZW4gKnBvc3NpYmxlKiB0byBmdXp6LiBUaGUgY29kZSBpbiBxdWVzdGlvbiByZXZvbHZlcyBhcm91bmQgYG14bDg2Mnh4X3Byb2JlYCwgd2hpY2ggaXMgY2FsbGVkIHdoZW4gYW4gTURJTyBkZXZpY2Ugd2l0aCBzcGVjaWZpYyAmIzM0O21heGxpbmVhciYjMzQ7IGNvbXBhdGlibGUgc3RyaW5ncyBpcyBib3VuZC4gVGhlIGltbWVkaWF0ZSBxdWVzdGlvbjogY2FuIEkgZXZlbiAqaW5zdGFudGlhdGUqIHRoaXMgaW4gYSB0eXBpY2FsIFFFTVUgb3IgR0NFIGVudmlyb25tZW50IG9uIGFtZDY0PyBOb3BlLiBUaGVzZSBlbnZpcm9ubWVudHMgZG9uJiMzOTt0IGhhdmUgdGhlIE1heExpbmVhciBNeEw4NjJ4eCBoYXJkd2FyZSBvciBEZXZpY2UgVHJlZSBub2RlcyB0byByZXByZXNlbnQgdGhlIHN3aXRjaCBjb25uZWN0ZWQgdmlhIE1ESU8uIFRoYXQmIzM5O3MgYSByZWQgZmxhZy4KClJpZ2h0LCBsZXQmIzM5O3MgZ28gYmFjayBhbmQgcmVmZXJlbmNlIFNlY3Rpb24gMiYjMzk7cyBydWxlczogUmVhY2hhYmlsaXR5IGlzIGtleS4gSWYgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgZm9yZ2V0IGFib3V0IGZ1enppbmcgaXQuIEl0IGRvZXNuJiMzOTt0IG1hdHRlciBob3cgY29tcGxleCB0aGUgbG9naWMgaXMgb3IgaWYgYXNzZXJ0aW9ucyBhcmUgYWRkZWQuIFRoaXMgYWxpZ25zIHdpdGggdW5yZWFjaGFibGUgaGFyZHdhcmUgbGlrZSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2hlcy4KClRoZSBwYXRjaCBpdHNlbGYgaXMgdG91Y2hpbmcgc2V2ZXJhbCBmdW5jdGlvbnM6IGBteGw4NjJ4eF9zZXR1cGAsIGBteGw4NjJ4eF90ZWFyZG93bmAsIGBteGw4NjJ4eF9nZXRfc3RhdHM2NGAsIGBteGw4NjJ4eF9zd2l0Y2hfb3BzYCwgYG14bDg2Mnh4X3Byb2JlYCwgYG14bDg2Mnh4X3JlbW92ZWAsIGBteGw4NjJ4eF9zaHV0ZG93bmAuIEVzc2VudGlhbGx5LCB0aGVzZSBhcmUgdGhlIHByb2JlLCBzZXR1cCwgdGVhcmRvd24sIGFuZCBsaWZlY3ljbGUgbWFuYWdlbWVudCBmdW5jdGlvbnMuIFNwZWNpZmljYWxseSwgSSBzZWUgaXQgbW92aW5nIGBteGw4NjJ4eF9zZXR1cF9tZGlvYCBlYXJsaWVyIGFuZCBhZGRpbmcgYSBgbXhsODYyeHhfdGVhcmRvd25gIGZ1bmN0aW9uLCB3aGljaCBjYWxscyBgZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luY2AuIFRoZXkgYXJlIGFsc28gYWRqdXN0aW5nIGNsZWFudXAgaW4gdGhlIGByZW1vdmVgL2BzaHV0ZG93bmAgZnVuY3Rpb25zLgoKQWxsIG9mIHRoaXMgbGl2ZXMgaW5zaWRlIGBkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY2AuIEFuZCB0aGF0JiMzOTtzIGEgZHJpdmVyIGZvciBhIE1heExpbmVhciBNeEw4NjI4MiBvciBNeEw4NjI1MiBFdGhlcm5ldCBzd2l0Y2ggY2hpcCwgcGh5c2ljYWwgQVNJQyBjaGlwcyBvbiBhbiBNRElPIGJ1cywgY29udHJvbGxlZCB2aWEgRGV2aWNlIFRyZWUgKGBvZl9tYXRjaF90YWJsZWApLiBUaGVzZSBhcmUgbm90IHRoaW5ncyBJIGNhbiBlbXVsYXRlIGluIFFFTVUgb3IgR0NFIG9uIHg4Nl82NC4gVGhlcmVmb3JlLCBJIGNhbiYjMzk7dCB0cmlnZ2VyIGBwcm9iZWAsIHRoZSBuZXcgYHRlYXJkb3duYCwgb3IgYW55IG9mIHRoZSBhZmZlY3RlZCBmdW5jdGlvbnMuCgpUaGUgY29uY2x1c2lvbiBpcyBwcmV0dHkgY2xlYXI6CiogICBgV29ydGhGdXp6aW5nYDogZmFsc2UKKiAgIGBGb2N1c1N5bWJvbHNgOiBlbXB0eQoqICAgYEVuYWJsZUNvbmZpZ3NgOiBlbXB0eQoqICAgYFJlYXNvbmluZ2A6ICBUaGUgcGF0Y2ggbW9kaWZpZXMgc2V0dXAsIHRlYXJkb3duLCBhbmQgbGlmZWN5Y2xlIG1hbmFnZW1lbnQgaW4gdGhlIE1heExpbmVhciBNeEw4NjJ4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyLiBUaGlzIGlzIGEgZHJpdmVyIGZvciAqcGh5c2ljYWwqIHN3aXRjaCBoYXJkd2FyZSwgbWF0Y2hlZCB2aWEgRGV2aWNlVHJlZSBvbiBhbiBNRElPIGJ1cywgYW5kIHRoaXMgaGFyZHdhcmUgaXMgbm90IHByZXNlbnQgb3IgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzLCBhbmQgaXMgdGh1cyB1bnJlYWNoYWJsZS4KCkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjazogYW1kNjQgaXMgdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuIFRoZSBkcml2ZXIgaXMgZW5hYmxlZCB2aWEgYENPTkZJR19ORVRfRFNBX01YTDg2MmAuIEl0IGV4cGxpY2l0bHkgbmVlZHMgYSBwaHlzaWNhbCBNYXhMaW5lYXIgTXhMODYyeHggc3dpdGNoIEFTSUMuIFRoZXJlJiMzOTtzIG5vIHZpcnR1YWwgYnVzIG9yIFFFTVUgZW11bGF0aW9uIGhlcmUuIFNvLCB5ZWFoLCBpdCYjMzk7cyBkZWZpbml0ZWx5IGBmYWxzZWAuCgpPa2F5LCBJIGFtIGNvbmZpZGVudCBpbiBteSBmaW5kaW5ncy4gVGltZSB0byBpbnZva2UgYHNldC1yZXN1bHRzYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMTQ6NDg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBjaGFuZ2VzIGFyZSByZXN0cmljdGVkIHRvIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMpLCBhZGp1c3Rpbmcgc2V0dXAsIHRlYXJkb3duLCBhbmQgd29yayBjYW5jZWxsYXRpb24gcGF0aHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIGRlZGljYXRlZCBwaHlzaWNhbCBoYXJkd2FyZSAoTWF4TGluZWFyIE14TDg2MjgyL014TDg2MjUyIHN3aXRjaCBjaGlwcyBhdHRhY2hlZCB2aWEgTURJTyBhbmQgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZSkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIGNoYW5nZXMgYXJlIHJlc3RyaWN0ZWQgdG8gdGhlIE1heExpbmVhciBNeEw4NjJ4eCBFdGhlcm5ldCBzd2l0Y2ggZHJpdmVyIChkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYyksIGFkanVzdGluZyBzZXR1cCwgdGVhcmRvd24sIGFuZCB3b3JrIGNhbmNlbGxhdGlvbiBwYXRocy4gVGhpcyBkcml2ZXIgcmVxdWlyZXMgZGVkaWNhdGVkIHBoeXNpY2FsIGhhcmR3YXJlIChNYXhMaW5lYXIgTXhMODYyODIvTXhMODYyNTIgc3dpdGNoIGNoaXBzIGF0dGFjaGVkIHZpYSBNRElPIGFuZCBpbnN0YW50aWF0ZWQgdmlhIERldmljZSBUcmVlKSB0aGF0IGlzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCB2aXJ0dWFsaXplZCBmdXp6aW5nIGVudmlyb25tZW50cyAoUUVNVS9HQ0UpLCBtYWtpbmcgdGhlIG1vZGlmaWVkIGNvZGUgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTAgMTQ6NDg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjExLjIxMjIxMTE1NloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NTE0NDUyNDAyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgY2hhbmdlcyBhcmUgcmVzdHJpY3RlZCB0byB0aGUgTWF4TGluZWFyIE14TDg2Mnh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jKSwgYWRqdXN0aW5nIHNldHVwLCB0ZWFyZG93biwgYW5kIHdvcmsgY2FuY2VsbGF0aW9uIHBhdGhzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBkZWRpY2F0ZWQgcGh5c2ljYWwgaGFyZHdhcmUgKE1heExpbmVhciBNeEw4NjI4Mi9NeEw4NjI1MiBzd2l0Y2ggY2hpcHMgYXR0YWNoZWQgdmlhIE1ESU8gYW5kIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUpIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoxMS4yMTIyMTU1MTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyMjIwNDk0MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDc3MzNmMGE0NDAzMmExNGNlYzA0NzcxMWU1Y2U4NTA0N2M4MjFkY2FcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBTZXAgMTAgMTQ6NDg6MTAgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMgYi9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xcbmluZGV4IGNmYTdlM2UyNjlhMjguLmUwNWFkNTJjZDI5N2UgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmNcXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xcbkBAIC02ODUsMTAgKzY4NSwyMiBAQCBzdGF0aWMgaW50IG14bDg2Mnh4X3NldHVwKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4gXFx0aWYgKHJldClcXG4gXFx0XFx0cmV0dXJuIHJldDtcXG4gXFxuK1xcdHJldCA9IG14bDg2Mnh4X3NldHVwX21kaW8oZHMpO1xcbitcXHRpZiAocmV0KVxcbitcXHRcXHRyZXR1cm4gcmV0O1xcbitcXG4gXFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrLFxcbiBcXHRcXHRcXHQgICAgICBNWEw4NjJYWF9TVEFUU19QT0xMX0lOVEVSVkFMKTtcXG4gXFxuLVxcdHJldHVybiBteGw4NjJ4eF9zZXR1cF9tZGlvKGRzKTtcXG4rXFx0cmV0dXJuIDA7XFxuK31cXG4rXFxuK3N0YXRpYyB2b2lkIG14bDg2Mnh4X3RlYXJkb3duKHN0cnVjdCBkc2Ffc3dpdGNoICpkcylcXG4re1xcbitcXHRzdHJ1Y3QgbXhsODYyeHhfcHJpdiAqcHJpdiA9IGRzLVxcdTAwM2Vwcml2O1xcbitcXG4rXFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXFx1MDAyNnByaXYtXFx1MDAzZWZsYWdzKTtcXG4rXFx0ZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYyhcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdHNfd29yayk7XFxuIH1cXG4gXFxuIHN0YXRpYyBpbnQgbXhsODYyeHhfcG9ydF9zdGF0ZShzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LCBib29sIGVuYWJsZSlcXG5AQCAtMjA0Nyw5ICsyMDU5LDcgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfZ2V0X3N0YXRzNjQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcXG4gXFxuIFxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZwcml2LVxcdTAwM2Vwb3J0c1twb3J0XS5zdGF0c19sb2NrKTtcXG4gXFxuLVxcdC8qIFRyaWdnZXIgYSBmcmVzaCBwb2xsIHNvIHRoZSBuZXh0IHJlYWQgc2VlcyB1cC10by1kYXRlIGNvdW50ZXJzLlxcbi1cXHQgKiBOby1vcCBpZiB0aGUgd29yayBpcyBhbHJlYWR5IHBlbmRpbmcsIHJ1bm5pbmcsIG9yIHRlYXJkb3duIHN0YXJ0ZWQuXFxuLVxcdCAqL1xcbitcXHQvKiBUcmlnZ2VyIGEgZnJlc2ggcG9sbCBzbyB0aGUgbmV4dCByZWFkIHNlZXMgdXAtdG8tZGF0ZSBjb3VudGVycy4gKi9cXG4gXFx0aWYgKCF0ZXN0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXFx1MDAyNnByaXYtXFx1MDAzZWZsYWdzKSlcXG4gXFx0XFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrLCAwKTtcXG4gfVxcbkBAIC0yMDU3LDYgKzIwNjcsNyBAQCBzdGF0aWMgdm9pZCBteGw4NjJ4eF9nZXRfc3RhdHM2NChzdHJ1Y3QgZHNhX3N3aXRjaCAqZHMsIGludCBwb3J0LFxcbiBzdGF0aWMgY29uc3Qgc3RydWN0IGRzYV9zd2l0Y2hfb3BzIG14bDg2Mnh4X3N3aXRjaF9vcHMgPSB7XFxuIFxcdC5nZXRfdGFnX3Byb3RvY29sID0gbXhsODYyeHhfZ2V0X3RhZ19wcm90b2NvbCxcXG4gXFx0LnNldHVwID0gbXhsODYyeHhfc2V0dXAsXFxuK1xcdC50ZWFyZG93biA9IG14bDg2Mnh4X3RlYXJkb3duLFxcbiBcXHQucG9ydF9zZXR1cCA9IG14bDg2Mnh4X3BvcnRfc2V0dXAsXFxuIFxcdC5wb3J0X3RlYXJkb3duID0gbXhsODYyeHhfcG9ydF90ZWFyZG93bixcXG4gXFx0LnBoeWxpbmtfZ2V0X2NhcHMgPSBteGw4NjJ4eF9waHlsaW5rX2dldF9jYXBzLFxcbkBAIC0yMTMxLDcgKzIxNDIsNiBAQCBzdGF0aWMgaW50IG14bDg2Mnh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG4gXFx0ZXJyID0gZHNhX3JlZ2lzdGVyX3N3aXRjaChkcyk7XFxuIFxcdGlmIChlcnIpIHtcXG4gXFx0XFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXFx1MDAyNnByaXYtXFx1MDAzZWZsYWdzKTtcXG4tXFx0XFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrKTtcXG4gXFx0XFx0bXhsODYyeHhfaG9zdF9zaHV0ZG93bihwcml2KTtcXG4gXFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSsrKVxcbiBcXHRcXHRcXHRjYW5jZWxfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2Vwb3J0c1tpXS5ob3N0X2Zsb29kX3dvcmspO1xcbkBAIC0yMTUyLDcgKzIxNjIsNiBAQCBzdGF0aWMgdm9pZCBteGw4NjJ4eF9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KVxcbiBcXHRwcml2ID0gZHMtXFx1MDAzZXByaXY7XFxuIFxcbiBcXHRzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcXHUwMDI2cHJpdi1cXHUwMDNlZmxhZ3MpO1xcbi1cXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXN0YXRzX3dvcmspO1xcbiBcXG4gXFx0ZHNhX3VucmVnaXN0ZXJfc3dpdGNoKGRzKTtcXG4gXFxuQEAgLTIxODEsNyArMjE5MCw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X3NodXRkb3duKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcXG4gXFx0ZHNhX3N3aXRjaF9zaHV0ZG93bihkcyk7XFxuIFxcbiBcXHRzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcXHUwMDI2cHJpdi1cXHUwMDNlZmxhZ3MpO1xcbi1cXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXN0YXRzX3dvcmspO1xcbitcXHRkaXNhYmxlX2RlbGF5ZWRfd29ya19zeW5jKFxcdTAwMjZwcml2LVxcdTAwM2VzdGF0c193b3JrKTtcXG4gXFxuIFxcdG14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7XFxuIFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoxMS43MzUyMzUzNDZaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjQ3OTkxNDA5NTMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBjaGFuZ2VzIGFyZSByZXN0cmljdGVkIHRvIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMpLCBhZGp1c3Rpbmcgc2V0dXAsIHRlYXJkb3duLCBhbmQgd29yayBjYW5jZWxsYXRpb24gcGF0aHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIGRlZGljYXRlZCBwaHlzaWNhbCBoYXJkd2FyZSAoTWF4TGluZWFyIE14TDg2MjgyL014TDg2MjUyIHN3aXRjaCBjaGlwcyBhdHRhY2hlZCB2aWEgTURJTyBhbmQgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZSkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzczM2YwYTQ0MDMyYTE0Y2VjMDQ3NzExZTVjZTg1MDQ3YzgyMWRjYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgU2VwIDEwIDE0OjQ4OjEwIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMgYi9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xuaW5kZXggY2ZhN2UzZTI2OWEyOC4uZTA1YWQ1MmNkMjk3ZSAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jXG4rKysgYi9kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1xuQEAgLTY4NSwxMCArNjg1LDIyIEBAIHN0YXRpYyBpbnQgbXhsODYyeHhfc2V0dXAoc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuIFx0aWYgKHJldClcbiBcdFx0cmV0dXJuIHJldDtcbiBcbitcdHJldCA9IG14bDg2Mnh4X3NldHVwX21kaW8oZHMpO1xuK1x0aWYgKHJldClcbitcdFx0cmV0dXJuIHJldDtcbitcbiBcdHNjaGVkdWxlX2RlbGF5ZWRfd29yayhcdTAwMjZwcml2LVx1MDAzZXN0YXRzX3dvcmssXG4gXHRcdFx0ICAgICAgTVhMODYyWFhfU1RBVFNfUE9MTF9JTlRFUlZBTCk7XG4gXG4tXHRyZXR1cm4gbXhsODYyeHhfc2V0dXBfbWRpbyhkcyk7XG4rXHRyZXR1cm4gMDtcbit9XG4rXG4rc3RhdGljIHZvaWQgbXhsODYyeHhfdGVhcmRvd24oc3RydWN0IGRzYV9zd2l0Y2ggKmRzKVxuK3tcbitcdHN0cnVjdCBteGw4NjJ4eF9wcml2ICpwcml2ID0gZHMtXHUwMDNlcHJpdjtcbitcbitcdHNldF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsIFx1MDAyNnByaXYtXHUwMDNlZmxhZ3MpO1xuK1x0ZGlzYWJsZV9kZWxheWVkX3dvcmtfc3luYyhcdTAwMjZwcml2LVx1MDAzZXN0YXRzX3dvcmspO1xuIH1cbiBcbiBzdGF0aWMgaW50IG14bDg2Mnh4X3BvcnRfc3RhdGUoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCwgYm9vbCBlbmFibGUpXG5AQCAtMjA0Nyw5ICsyMDU5LDcgQEAgc3RhdGljIHZvaWQgbXhsODYyeHhfZ2V0X3N0YXRzNjQoc3RydWN0IGRzYV9zd2l0Y2ggKmRzLCBpbnQgcG9ydCxcbiBcbiBcdHNwaW5fdW5sb2NrX2JoKFx1MDAyNnByaXYtXHUwMDNlcG9ydHNbcG9ydF0uc3RhdHNfbG9jayk7XG4gXG4tXHQvKiBUcmlnZ2VyIGEgZnJlc2ggcG9sbCBzbyB0aGUgbmV4dCByZWFkIHNlZXMgdXAtdG8tZGF0ZSBjb3VudGVycy5cbi1cdCAqIE5vLW9wIGlmIHRoZSB3b3JrIGlzIGFscmVhZHkgcGVuZGluZywgcnVubmluZywgb3IgdGVhcmRvd24gc3RhcnRlZC5cbi1cdCAqL1xuK1x0LyogVHJpZ2dlciBhIGZyZXNoIHBvbGwgc28gdGhlIG5leHQgcmVhZCBzZWVzIHVwLXRvLWRhdGUgY291bnRlcnMuICovXG4gXHRpZiAoIXRlc3RfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcdTAwMjZwcml2LVx1MDAzZWZsYWdzKSlcbiBcdFx0c2NoZWR1bGVfZGVsYXllZF93b3JrKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yaywgMCk7XG4gfVxuQEAgLTIwNTcsNiArMjA2Nyw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X2dldF9zdGF0czY0KHN0cnVjdCBkc2Ffc3dpdGNoICpkcywgaW50IHBvcnQsXG4gc3RhdGljIGNvbnN0IHN0cnVjdCBkc2Ffc3dpdGNoX29wcyBteGw4NjJ4eF9zd2l0Y2hfb3BzID0ge1xuIFx0LmdldF90YWdfcHJvdG9jb2wgPSBteGw4NjJ4eF9nZXRfdGFnX3Byb3RvY29sLFxuIFx0LnNldHVwID0gbXhsODYyeHhfc2V0dXAsXG4rXHQudGVhcmRvd24gPSBteGw4NjJ4eF90ZWFyZG93bixcbiBcdC5wb3J0X3NldHVwID0gbXhsODYyeHhfcG9ydF9zZXR1cCxcbiBcdC5wb3J0X3RlYXJkb3duID0gbXhsODYyeHhfcG9ydF90ZWFyZG93bixcbiBcdC5waHlsaW5rX2dldF9jYXBzID0gbXhsODYyeHhfcGh5bGlua19nZXRfY2FwcyxcbkBAIC0yMTMxLDcgKzIxNDIsNiBAQCBzdGF0aWMgaW50IG14bDg2Mnh4X3Byb2JlKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiBcdGVyciA9IGRzYV9yZWdpc3Rlcl9zd2l0Y2goZHMpO1xuIFx0aWYgKGVycikge1xuIFx0XHRzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcdTAwMjZwcml2LVx1MDAzZWZsYWdzKTtcbi1cdFx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yayk7XG4gXHRcdG14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7XG4gXHRcdGZvciAoaSA9IDA7IGkgXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSsrKVxuIFx0XHRcdGNhbmNlbF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2Vwb3J0c1tpXS5ob3N0X2Zsb29kX3dvcmspO1xuQEAgLTIxNTIsNyArMjE2Miw2IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X3JlbW92ZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXG4gXHRwcml2ID0gZHMtXHUwMDNlcHJpdjtcbiBcbiBcdHNldF9iaXQoTVhMODYyWFhfRkxBR19XT1JLX1NUT1BQRUQsIFx1MDAyNnByaXYtXHUwMDNlZmxhZ3MpO1xuLVx0Y2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKFx1MDAyNnByaXYtXHUwMDNlc3RhdHNfd29yayk7XG4gXG4gXHRkc2FfdW5yZWdpc3Rlcl9zd2l0Y2goZHMpO1xuIFxuQEAgLTIxODEsNyArMjE5MCw3IEBAIHN0YXRpYyB2b2lkIG14bDg2Mnh4X3NodXRkb3duKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2RldilcbiBcdGRzYV9zd2l0Y2hfc2h1dGRvd24oZHMpO1xuIFxuIFx0c2V0X2JpdChNWEw4NjJYWF9GTEFHX1dPUktfU1RPUFBFRCwgXHUwMDI2cHJpdi1cdTAwM2VmbGFncyk7XG4tXHRjYW5jZWxfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbitcdGRpc2FibGVfZGVsYXllZF93b3JrX3N5bmMoXHUwMDI2cHJpdi1cdTAwM2VzdGF0c193b3JrKTtcbiBcbiBcdG14bDg2Mnh4X2hvc3Rfc2h1dGRvd24ocHJpdik7XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoxMS43MzUyMzcwMjZaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo0MDU3NTAzNjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXNzZXNzbWVudCBvZiB0aGlzIHBhdGNoLCBhcHByb2FjaGVkIGFzIEkgd291bGQuXG5cbioqQW5hbHl6aW5nIGEgRFNBIERyaXZlciBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5BbHJpZ2h0LCBsZXQncyBkaXZlIGludG8gdGhpcy4gVGhlIGZpcnN0IHRoaW5nIEknbSBkb2luZyBpcyBzaXppbmcgdXAgdGhpcyBwYXRjaCB0byBzZWUgaWYgaXQncyBldmVuIHdvcnRoIGZ1enppbmcsIGFuZCBpZiBzbywgd2hhdCBraW5kIG9mIGVmZm9ydCBhbmQgY29uZmlndXJhdGlvbiB3ZSdyZSBsb29raW5nIGF0LlxuXG5NeSBpbml0aWFsIHNjYW4gdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIGEgbW9kaWZpZWQgZmlsZTogYGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jYC4gUmlnaHQgYXdheSwgSSBzZWUgdGhpcyBpcyBhIERTQSBkcml2ZXIsIGFuZCBtb3JlIHNwZWNpZmljYWxseSwgaXQncyB0aWVkIHRvIGEgTWF4TGluZWFyIE1YTDg2Mnh4IEV0aGVybmV0IHN3aXRjaC4gVGhhdCdzIGEgc29saWQgc3RhcnRpbmcgcG9pbnQuIERTQSBkcml2ZXJzIGFyZSBvZnRlbiBqdWljeSB0YXJnZXRzIGZvciBmdXp6aW5nLCBnaXZlbiB0aGVpciBpbnRlcmFjdGlvbiB3aXRoIG5ldHdvcmsgdHJhZmZpYyBhbmQgaGFyZHdhcmUuIE5ldHdvcmsgZHJpdmVycyBhcmUgZ2VuZXJhbGx5IGEgZ29vZCB0YXJnZXQgZm9yIGZ1enppbmcuXG5cbk15IG5leHQgc3RlcCwgYW5kIHRoaXMgaXMgd2hlcmUgSSdkIGxldmVyYWdlIHNvbWUgcXVpY2sgdG9vbHMsIGlzIHRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYmlnZ2VyIHBpY3R1cmUuIEknbSBoaXR0aW5nIGBncmVwcGVyYCBvciBgcmVhZC1maWxlYCB0byBncmFiIHNvbWUga2V5IGNvbnRleHQuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBoYXJkd2FyZSB0eXBlLCBidXMgdHlwZSwgYW5kIGFueSByZWxldmFudCBLY29uZmlnIG9wdGlvbnMuIFRoaW5ncyBsaWtlIGlmIHRoaXMgZHJpdmVyIGlzIG1vZHVsYXIsIHdoYXQgaGFyZHdhcmUgaXQgc3VwcG9ydHMsIGFuZCBpZiBhbnkgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcmUgbmVjZXNzYXJ5IHRvIGVuYWJsZSBpdCBhcmUgY3JpdGljYWwuIFRoaXMgdGVsbHMgbWUgaWYgSSBuZWVkIHRvIGJ1aWxkIGEgc3BlY2lmaWMga2VybmVsIGNvbmZpZyBvciBpZiBhIGdlbmVyaWMgb25lIHdpbGwgc3VmZmljZS4gU3BlY2lmaWNhbGx5LCBmaW5kaW5nIG91dCBpZiB0aGVyZSBhcmUgYW55IHNwZWNpZmljIHBhcmFtZXRlcnMgSSBjYW4gZmVlZCB0byBhIGZ1enplci5cblxuXG4iLCJJbnB1dFRva2VucyI6Mzg0MywiT3V0cHV0VG9rZW5zIjoyNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjE1Ljc5Mjc0NzIwM1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxODY2MjI3NDE4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJORVRfRFNBX01YTDg2MlhYXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoxNy42NTg5ODEyMzFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMjk0MDMwMjMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkludmVzdGlnYXRpbmcgdGhlIE5ldHdvcmsgRGV2aWNlIERyaXZlciBCdWlsZCBQcm9jZXNzKipcblxuT2theSwgc28gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZXNlIGRyaXZlcnMgYXJlIGJlaW5nIGJ1aWx0IGFuZCBpbmNsdWRlZC4gTXkgZmlyc3QgaW5zdGluY3QsIGdpdmVuIHRoZSBjb250ZXh0LCBpcyB0byBsb29rIGF0IHRoZSByZWxldmFudCBLY29uZmlnIGFuZCBNYWtlZmlsZSBmaWxlcy4gVGhlIGxpa2VseSBwbGFjZXMgdG8gc3RhcnQgYXJlIHVuZGVyIHRoZSBgZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L2AgZGlyZWN0b3J5LCBzcGVjaWZpY2FsbHkgc2luY2Ugd2UncmUgZGVhbGluZyB3aXRoIGEgc3BlY2lmaWMgY2hpcC4gSG93ZXZlciwgc2luY2UgSSdtIHRyeWluZyB0byBnZXQgYSBicm9hZGVyIHVuZGVyc3RhbmRpbmcsIEknbGwgYWxzbyBnbGFuY2UgYXQgYGRyaXZlcnMvbmV0L2RzYS9gIG1vcmUgZ2VuZXJhbGx5LCBqdXN0IGluIGNhc2UgdGhlcmUncyBzb21lIHNoYXJlZCBjb25maWd1cmF0aW9uIG9yIGluY2x1ZGUuIFRoYXQgc2hvdWxkIGdpdmUgbWUgYSBnb29kIGhhbmRsZSBvbiBob3cgdGhlIGJ1aWxkIHN5c3RlbSBpcyBtYW5hZ2luZyB0aGlzIG5ldHdvcmsgZGV2aWNlIGRyaXZlci5cblxuXG4iLCJJbnB1dFRva2VucyI6NDMxNywiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjE5Ljk1MzAxMzQ5NFoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MDc1Nzk5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJteGw4NjJ4eFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2FcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyMTIwIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZz04NT1zb3VyY2UgXFxcImRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvS2NvbmZpZ1xcXCJcXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZy04Ni1cXG5kcml2ZXJzL25ldC9kc2EvS2NvbmZpZzo4Nzpzb3VyY2UgXFxcImRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9LY29uZmlnXFxcIlxcbmRyaXZlcnMvbmV0L2RzYS9LY29uZmlnLTg4LVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL01ha2VmaWxlPTIzPW9iai15XFx0XFx0XFx0XFx0Kz0gbXY4OGU2eHh4L1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZToyNDpvYmoteVxcdFxcdFxcdFxcdCs9IG14bDg2Mnh4L1xcbmRyaXZlcnMvbmV0L2RzYS9NYWtlZmlsZS0yNS1vYmoteVxcdFxcdFxcdFxcdCs9IG5ldGMvXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvTWFrZWZpbGUtMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L01ha2VmaWxlOjI6b2JqLSQoQ09ORklHX05FVF9EU0FfTVhMODYyKSArPSBteGw4NjJ4eF9kc2Eub1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9NYWtlZmlsZTozOm14bDg2Mnh4X2RzYS15IDo9IG14bDg2Mnh4Lm8gbXhsODYyeHgtaG9zdC5vIG14bDg2Mnh4LXBoeWxpbmsub1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oPTE2PXN0cnVjdCBtZGlvX3JlbGF5X2RhdGEge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIzLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNDogKiBzdHJ1Y3QgbXhsODYyeHhfcmVnaXN0ZXJfbW9kIC0gUmVnaXN0ZXIgYWNjZXNzIHBhcmFtZXRlciB0byBkaXJlY3RseVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNS0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZ5IGludGVybmFsIHJlZ2lzdGVyc1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTMxLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozMjpzdHJ1Y3QgbXhsODYyeHhfcmVnaXN0ZXJfbW9kIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzMtXFx0X19sZTE2IGFkZHI7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzgtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM5OiAqIGVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlciAtIFNvdXJjZS9EZXN0aW5hdGlvbiBNQUMgYWRkcmVzcyBmaWx0ZXJpbmdcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDAtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00NS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NDY6ZW51bSBteGw4NjJ4eF9tYWNfdGFibGVfZmlsdGVyIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDctXFx0TVhMODYyWFhfTUFDX0ZJTFRFUl9OT05FID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NjU6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9hZGQgLSBNQUMgVGFibGUgRW50cnkgdG8gYmUgYWRkZWRcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjYtICogQGZpZDogRmlsdGVyaW5nIElkZW50aWZpZXIgKEZJRCkgKG5vdCBzdXBwb3J0ZWQgYnkgYWxsIHN3aXRjaGVzKVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc0LSAqIEBtYWM6IE1BQyBBZGRyZXNzIHRvIGFkZCB0byB0aGUgdGFibGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzU6ICogQGZpbHRlcl9mbGFnOiBTZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03Ni0gKiBAaWdtcF9jb250cm9sbGVkOiBQYWNrZXQgaXMgbWFya2VkIGFzIElHTVAgY29udHJvbGxlZCBpZiBkZXN0aW5hdGlvbiBNQUNcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04My0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODQ6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9hZGQge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NS1cXHRfX2xlMTYgZmlkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTAxOiAqIHN0cnVjdCBteGw4NjJ4eF9tYWNfdGFibGVfcmVtb3ZlIC0gTUFDIFRhYmxlIEVudHJ5IHRvIGJlIHJlbW92ZWRcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAyLSAqIEBmaWQ6IEZpbHRlcmluZyBJZGVudGlmaWVyIChGSUQpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMy0gKiBAbWFjOiBNQUMgQWRkcmVzcyB0byBiZSByZW1vdmVkIGZyb20gdGhlIHRhYmxlLlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDQ6ICogQGZpbHRlcl9mbGFnOiBTZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDUtICogQHRjaTogVENJIGZvciBCLVN0ZXBcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDktICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMDpzdHJ1Y3QgbXhsODYyeHhfbWFjX3RhYmxlX3JlbW92ZSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMS1cXHRfX2xlMTYgZmlkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExNy0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTE4OiAqIHN0cnVjdCBteGw4NjJ4eF9tYWNfdGFibGVfcmVhZCAtIE1BQyBUYWJsZSBFbnRyeSB0byBiZSByZWFkXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExOS0gKiBAaW5pdGlhbDogUmVzdGFydCB0aGUgZ2V0IG9wZXJhdGlvbiBmcm9tIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRhYmxlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTI4LSAqIEBtYWM6IE1BQyBBZGRyZXNzLiBGaWxsZWQgb3V0IGJ5IHRoZSBzd2l0Y2ggQVBJIGltcGxlbWVudGF0aW9uLlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMjk6ICogQGZpbHRlcl9mbGFnOiBTZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfbWFjX3RhYmxlX2ZpbHRlclxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMzAtICogQGlnbXBfY29udHJvbGxlZDogUGFja2V0IGlzIG1hcmtlZCBhcyBJR01QIGNvbnRyb2xsZWQgaWYgZGVzdGluYXRpb24gTUFDXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTQxLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxNDI6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9yZWFkIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTQzLVxcdHU4IGluaXRpYWw7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTYyLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxNjM6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9xdWVyeSAtIE1BQyBUYWJsZSBFbnRyeSBrZXktYmFzZWQgbG9va3VwXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE2NC0gKiBAbWFjOiBNQUMgQWRkcmVzcyB0byBzZWFyY2ggZm9yIChpbnB1dClcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xNzItICogQHN0YXRpY19lbnRyeTogSW5kaWNhdGVzIGlmIHRoaXMgaXMgYSBTdGF0aWMgRW50cnlcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTczOiAqIEBmaWx0ZXJfZmxhZzogU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X21hY190YWJsZV9maWx0ZXIgKGlucHV0K291dHB1dClcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTc0LSAqIEBpZ21wX2NvbnRyb2xsZWQ6IElHTVAgY29udHJvbGxlZCBmbGFnXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTgwLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxODE6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9xdWVyeSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTE4Mi1cXHR1OCBtYWNbRVRIX0FMRU5dO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIwMC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjAxOiAqIGVudW0gbXhsODYyeHhfbWFjX2NsZWFyX3R5cGUgLSBNQUMgdGFibGUgY2xlYXIgdHlwZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMDItICogQE1YTDg2MlhYX01BQ19DTEVBUl9QSFlfUE9SVDogY2xlYXIgZHluYW1pYyBlbnRyaWVzIGJhc2VkIG9uIHBvcnRfaWRcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMDQtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIwNTplbnVtIG14bDg2Mnh4X21hY19jbGVhcl90eXBlIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjA2LVxcdE1YTDg2MlhYX01BQ19DTEVBUl9QSFlfUE9SVCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjEwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMTE6ICogc3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9jbGVhciAtIE1BQyB0YWJsZSBjbGVhclxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMTI6ICogQHR5cGU6IHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9tYWNfY2xlYXJfdHlwZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMTMtICogQHBvcnRfaWQ6IHBoeXNpY2FsIHBvcnQgaWRcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjE0LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMTU6c3RydWN0IG14bDg2Mnh4X21hY190YWJsZV9jbGVhciB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIxNi1cXHR1OCB0eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIyMC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjIxOiAqIGVudW0gbXhsODYyeHhfYWdlX3RpbWVyIC0gQWdpbmcgVGltZXIgVmFsdWUuXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIyMi0gKiBATVhMODYyWFhfQUdFVElNRVJfMV9TRUM6IDEgc2Vjb25kIGFnaW5nIHRpbWVcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yMjgtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjIyOTplbnVtIG14bDg2Mnh4X2FnZV90aW1lciB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTIzMC1cXHRNWEw4NjJYWF9BR0VUSU1FUl8xX1NFQyA9IDEsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjM4LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyMzk6ICogc3RydWN0IG14bDg2Mnh4X2JyaWRnZV9hbGxvYyAtIEJyaWRnZSBBbGxvY2F0aW9uXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI0MC0gKiBAYnJpZGdlX2lkOiBJZiB0aGUgYnJpZGdlIGFsbG9jYXRpb24gaXMgc3VjY2Vzc2Z1bCwgYSB2YWxpZCBJRCB3aWxsIGJlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjQ3LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNDg6c3RydWN0IG14bDg2Mnh4X2JyaWRnZV9hbGxvYyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI0OS1cXHRfX2xlMTYgYnJpZGdlX2lkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTI1Mi0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MjUzOiAqIGVudW0gbXhsODYyeHhfYnJpZGdlX2NvbmZpZ19tYXNrIC0gQnJpZGdlIGNvbmZpZ3VyYXRpb24gbWFza1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNTQtICogQE1YTDg2MlhYX0JSSURHRV9DT05GSUdfTUFTS19NQUNfTEVBUk5JTkdfTElNSVQ6XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjY3LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyNjg6ZW51bSBteGw4NjJ4eF9icmlkZ2VfY29uZmlnX21hc2sge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNjktXFx0TVhMODYyWFhfQlJJREdFX0NPTkZJR19NQVNLX01BQ19MRUFSTklOR19MSU1JVCA9IEJJVCgwKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yNzgtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjI3OTogKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9wb3J0X2VncmVzc19tZXRlciAtIE1ldGVycyBmb3IgZWdyZXNzIHRyYWZmaWMgdHlwZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yODAtICogQE1YTDg2MlhYX0JSSURHRV9QT1JUX0VHUkVTU19NRVRFUl9CUk9BRENBU1Q6XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMjkzLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoyOTQ6ZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9lZ3Jlc3NfbWV0ZXIge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0yOTUtXFx0TVhMODYyWFhfQlJJREdFX1BPUlRfRUdSRVNTX01FVEVSX0JST0FEQ0FTVCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzA0LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozMDU6ICogc3RydWN0IG14bDg2Mnh4X3Fvc19tZXRlcl9jZmcgLSBSYXRlIG1ldGVyIGNvbmZpZ3VyYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzA2LSAqIEBlbmFibGU6IEVuYWJsZS9kaXNhYmxlIG1ldGVyXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzIwLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozMjE6c3RydWN0IG14bDg2Mnh4X3Fvc19tZXRlcl9jZmcge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zMjItXFx0dTggZW5hYmxlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTMzOC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzM5OiAqIGVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSAtIEJyaWRnZSBmb3J3YXJkaW5nIHR5cGUgb2YgcGFja2V0XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM0MC0gKiBATVhMODYyWFhfQlJJREdFX0ZPUldBUkRfRkxPT0Q6IFBhY2tldCBpcyBmbG9vZGVkIHRvIHBvcnQgbWVtYmVycyBvZlxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM0My0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzQ0OmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM0NS1cXHRNWEw4NjJYWF9CUklER0VfRk9SV0FSRF9GTE9PRCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzQ5LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozNTA6ICogc3RydWN0IG14bDg2Mnh4X2JyaWRnZV9jb25maWcgLSBCcmlkZ2UgQ29uZmlndXJhdGlvblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNTEtICogQGJyaWRnZV9pZDogQnJpZGdlIElEIChGSUQpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM1MjogKiBAbWFzazogU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9jb25maWdfbWFza1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNTMtICogQG1hY19sZWFybmluZ19saW1pdF9lbmFibGU6IEVuYWJsZSBNQUMgbGVhcm5pbmcgbGltaXRhdGlvblxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2My0gKiBAZm9yd2FyZF9icm9hZGNhc3Q6IEZvcndhcmRpbmcgbW9kZSBvZiBicm9hZGNhc3QgdHJhZmZpYy4gU2VlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM2NDogKiAgICAgICAgICAgICAgICAgICAgIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzY1LSAqIEBmb3J3YXJkX3Vua25vd25fbXVsdGljYXN0X2lwOiBGb3J3YXJkaW5nIG1vZGUgb2YgdW5rbm93biBtdWx0aWNhc3QgSVBcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzY2LSAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFmZmljLlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozNjc6ICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9icmlkZ2VfZm9yd2FyZF9tb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM2OC0gKiBAZm9yd2FyZF91bmtub3duX211bHRpY2FzdF9ub25faXA6IEZvcndhcmRpbmcgbW9kZSBvZiB1bmtub3duIG11bHRpY2FzdFxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNjktICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub24tSVAgdHJhZmZpYy5cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzcwOiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzcxLSAqIEBmb3J3YXJkX3Vua25vd25fdW5pY2FzdDogRm9yd2FyZGluZyBtb2RlIG9mIHVua25vd24gdW5pY2FzdCB0cmFmZmljLiBTZWVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzcyOiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgXFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0zNzMtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM3NDpzdHJ1Y3QgbXhsODYyeHhfYnJpZGdlX2NvbmZpZyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM3NS1cXHRfX2xlMTYgYnJpZGdlX2lkO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozNzY6XFx0X19sZTMyIG1hc2s7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2NvbmZpZ19tYXNrICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM3Ny1cXHR1OCBtYWNfbGVhcm5pbmdfbGltaXRfZW5hYmxlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM4Mi1cXHRfX2xlMTYgdHJhZmZpY19zdWJfbWV0ZXJfaWRbTVhMODYyWFhfQlJJREdFX1BPUlRfRUdSRVNTX01FVEVSX01BWF07XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjM4MzpcXHRfX2xlMzIgZm9yd2FyZF9icm9hZGNhc3Q7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozODQ6XFx0X19sZTMyIGZvcndhcmRfdW5rbm93bl9tdWx0aWNhc3RfaXA7IC8qIGVudW0gbXhsODYyeHhfYnJpZGdlX2ZvcndhcmRfbW9kZSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDozODU6XFx0X19sZTMyIGZvcndhcmRfdW5rbm93bl9tdWx0aWNhc3Rfbm9uX2lwOyAvKiBlbnVtIG14bDg2Mnh4X2JyaWRnZV9mb3J3YXJkX21vZGUgKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzg2OlxcdF9fbGUzMiBmb3J3YXJkX3Vua25vd25fdW5pY2FzdDsgLyogZW51bSBteGw4NjJ4eF9icmlkZ2VfZm9yd2FyZF9tb2RlICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM4Ny19IF9fcGFja2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM4OS0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MzkwOiAqIHN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfcG9ydF9hbGxvYyAtIEJyaWRnZSBQb3J0IEFsbG9jYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMzkxLSAqIEBicmlkZ2VfcG9ydF9pZDogSWYgdGhlIGJyaWRnZSBwb3J0IGFsbG9jYXRpb24gaXMgc3VjY2Vzc2Z1bCwgYSB2YWxpZCBJRFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM5Ny0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Mzk4OnN0cnVjdCBteGw4NjJ4eF9icmlkZ2VfcG9ydF9hbGxvYyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTM5OS1cXHRfX2xlMTYgYnJpZGdlX3BvcnRfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDAyLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo0MDM6ICogZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9jb25maWdfbWFzayAtIEJyaWRnZSBQb3J0IGNvbmZpZ3VyYXRpb24gbWFza1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00MDQtICogQE1YTDg2MlhYX0JSSURHRV9QT1JUX0NPTkZJR19NQVNLX0JSSURHRV9JRDpcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00NjItICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjQ2MzplbnVtIG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZ19tYXNrIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNDY0LVxcdE1YTDg2MlhYX0JSSURHRV9QT1JUX0NPTkZJR19NQVNLX0JSSURHRV9JRCA9IEJJVCgwKSxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00OTEtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjQ5MjogKiBlbnVtIG14bDg2Mnh4X2NvbG9yX21hcmtpbmdfbW9kZSAtIENvbG9yIE1hcmtpbmcgTW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC00OTMtICogQE1YTDg2MlhYX01BUktJTkdfQUxMX0dSRUVOOiBtYXJrIHBhY2tldHMgKGV4Y2VwdCBjcml0aWNhbCkgdG8gZ3JlZW5cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01MDEtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjUwMjplbnVtIG14bDg2Mnh4X2NvbG9yX21hcmtpbmdfbW9kZSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUwMy1cXHRNWEw4NjJYWF9NQVJLSU5HX0FMTF9HUkVFTiA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTEzLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1MTQ6ICogZW51bSBteGw4NjJ4eF9jb2xvcl9yZW1hcmtpbmdfbW9kZSAtIENvbG9yIFJlbWFya2luZyBNb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUxNS0gKiBATVhMODYyWFhfUkVNQVJLSU5HX05PTkU6IHZhbHVlcyBmcm9tIGxhc3QgcHJvY2VzcyBzdGFnZVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUyMi0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTIzOmVudW0gbXhsODYyeHhfY29sb3JfcmVtYXJraW5nX21vZGUge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01MjQtXFx0TVhMODYyWFhfUkVNQVJLSU5HX05PTkUgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTUzMy0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTM0OiAqIGVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGUgLSBQLW1hcHBlciBNYXBwaW5nIE1vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTM1LSAqIEBNWEw4NjJYWF9QTUFQUEVSX01BUFBJTkdfUENQOiBVc2UgUENQIGZvciBWTEFOIHRhZ2dlZCBwYWNrZXRzIHRvIGRlcml2ZVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU0MS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTQyOmVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGUge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NDMtXFx0TVhMODYyWFhfUE1BUFBFUl9NQVBQSU5HX1BDUCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTQ4LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1NDk6ICogc3RydWN0IG14bDg2Mnh4X3BtYXBwZXIgLSBQLW1hcHBlciBDb25maWd1cmF0aW9uXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTU1MC0gKiBAcG1hcHBlcl9pZDogSW5kZXggb2YgUC1tYXBwZXIgKDAtMzEpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTYwLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1NjE6c3RydWN0IG14bDg2Mnh4X3BtYXBwZXIge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01NjItXFx0X19sZTE2IHBtYXBwZXJfaWQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTY2LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo1Njc6ICogc3RydWN0IG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZyAtIEJyaWRnZSBQb3J0IENvbmZpZ3VyYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTY4LSAqIEBicmlkZ2VfcG9ydF9pZDogQnJpZGdlIFBvcnQgSUQgYWxsb2NhdGVkIGJ5IGJyaWRnZSBwb3J0IGFsbG9jYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTY5OiAqIEBtYXNrOiBTZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfYnJpZGdlX3BvcnRfY29uZmlnX21hc2tcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTcwLSAqIEBicmlkZ2VfaWQ6IEJyaWRnZSBJRCAoRklEKSB0byB3aGljaCB0aGlzIGJyaWRnZSBwb3J0IGlzIGFzc29jaWF0ZWRcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01ODMtICogQGluZ3Jlc3NfbWFya2luZ19tb2RlOiBJbmdyZXNzIGNvbG9yIG1hcmtpbmcgbW9kZS4gU2VlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU4NDogKiAgICAgICAgICAgICAgICAgICAgICAgIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2NvbG9yX21hcmtpbmdfbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01ODUtICogQGVncmVzc19yZW1hcmtpbmdfbW9kZTogQ29sb3IgcmVtYXJraW5nIGZvciBlZ3Jlc3MgdHJhZmZpYy4gU2VlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjU4NjogKiAgICAgICAgICAgICAgICAgICAgICAgICBcXHUwMDI2ZW51bSBteGw4NjJ4eF9jb2xvcl9yZW1hcmtpbmdfbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC01ODctICogQGluZ3Jlc3NfbWV0ZXJpbmdfZW5hYmxlOiBUcmFmZmljIG1ldGVyaW5nIG9uIGluZ3Jlc3MgdHJhZmZpYyBhcHBsaWVzXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTk3LSAqIEBwbWFwcGVyX21hcHBpbmdfbW9kZTogUC1tYXBwZXIgbWFwcGluZyBtb2RlLiBTZWVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NTk4OiAqICAgICAgICAgICAgICAgICAgICAgICAgXFx1MDAyNmVudW0gbXhsODYyeHhfcG1hcHBlcl9tYXBwaW5nX21vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNTk5LSAqIEBwbWFwcGVyX2lkX3ZhbGlkOiBXaGVuIHRydWUsIFAtbWFwcGVyIGlzIHJlLXVzZWQ7IHdoZW4gZmFsc2UsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjUzLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NTQ6c3RydWN0IG14bDg2Mnh4X2JyaWRnZV9wb3J0X2NvbmZpZyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY1NS1cXHRfX2xlMTYgYnJpZGdlX3BvcnRfaWQ7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjY1NjpcXHRfX2xlMzIgbWFzazsgLyogZW51bSBteGw4NjJ4eF9icmlkZ2VfcG9ydF9jb25maWdfbWFzayAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NTctXFx0X19sZTE2IGJyaWRnZV9pZDtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NjMtXFx0X19sZTE2IGVncmVzc19leHRlbmRlZF92bGFuX2Jsb2NrX3NpemU7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjY2NDpcXHRfX2xlMzIgaW5ncmVzc19tYXJraW5nX21vZGU7IC8qIGVudW0gbXhsODYyeHhfY29sb3JfbWFya2luZ19tb2RlICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjY2NTpcXHRfX2xlMzIgZWdyZXNzX3JlbWFya2luZ19tb2RlOyAvKiBlbnVtIG14bDg2Mnh4X2NvbG9yX3JlbWFya2luZ19tb2RlICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY2Ni1cXHR1OCBpbmdyZXNzX21ldGVyaW5nX2VuYWJsZTtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC02NzItXFx0X19sZTE2IGRlc3Rfc3ViX2lmX2lkX2dyb3VwO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NzM6XFx0X19sZTMyIHBtYXBwZXJfbWFwcGluZ19tb2RlOyAvKiBlbnVtIG14bDg2Mnh4X3BtYXBwZXJfbWFwcGluZ19tb2RlICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTY3NC1cXHR1OCBwbWFwcGVyX2lkX3ZhbGlkO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo2NzU6XFx0c3RydWN0IG14bDg2Mnh4X3BtYXBwZXIgcG1hcHBlcjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNjc2LVxcdF9fbGUxNiBicmlkZ2VfcG9ydF9tYXBbOF07XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzA5LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MTA6ICogc3RydWN0IG14bDg2Mnh4X2NmZyAtICBHbG9iYWwgU3dpdGNoIGNvbmZpZ3VyYXRpb24gQXR0cmlidXRlc1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MTE6ICogQG1hY190YWJsZV9hZ2VfdGltZXI6IFNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9hZ2VfdGltZXJcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzEyLSAqIEBhZ2VfdGltZXI6IEN1c3RvbSBNQUMgdGFibGUgYWdpbmcgdGltZXIgaW4gc2Vjb25kc1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTcyMi0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzIzOnN0cnVjdCBteGw4NjJ4eF9jZmcge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3MjQ6XFx0X19sZTMyIG1hY190YWJsZV9hZ2VfdGltZXI7IC8qIGVudW0gbXhsODYyeHhfYWdlX3RpbWVyICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTcyNS1cXHRfX2xlMzIgYWdlX3RpbWVyO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTczNC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzM1OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfdHlwZSAtIEV4dGVuZGVkIFZMQU4gZmlsdGVyIHRhZyB0eXBlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTczNi0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9UWVBFX05PUk1BTDogTm9ybWFsIHRhZ2dlZFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc0MC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzQxOmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfdHlwZSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc0Mi1cXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX1RZUEVfTk9STUFMID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NDgtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc0OTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3RwaWQgLSBFeHRlbmRlZCBWTEFOIGZpbHRlciBUUElEXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc1MC0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9UUElEX05PX0ZJTFRFUjogTm8gVFBJRCBmaWx0ZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NTMtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc1NDplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3RwaWQge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NTUtXFx0TVhMODYyWFhfRVhURU5ERURWTEFOX0ZJTFRFUl9UUElEX05PX0ZJTFRFUiA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzYwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3NjE6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl9kZWkgLSBFeHRlbmRlZCBWTEFOIGZpbHRlciBERUlcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzYyLSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX0RFSV9OT19GSUxURVI6IE5vIERFSSBmaWx0ZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NjUtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc2NjplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2RlaSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc2Ny1cXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX0RFSV9OT19GSUxURVIgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc3Mi0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6NzczOiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcmVtb3ZlX3RhZyAtIFRhZyByZW1vdmFsIGFjdGlvblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03NzQtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfTk9UX1JFTU9WRV9UQUc6IERvIG5vdCByZW1vdmUgdGFnXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzc4LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo3Nzk6ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9yZW1vdmVfdGFnIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzgwLVxcdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfTk9UX1JFTU9WRV9UQUcgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTc4Ni0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6Nzg3OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcHJpb3JpdHkgLSBUcmVhdG1lbnQgcHJpb3JpdHkgbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03ODgtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfUFJJT1JJVFlfVkFMOiBVc2UgZXhwbGljaXQgdmFsdWVcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC03OTItICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjc5MzplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ByaW9yaXR5IHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtNzk0LVxcdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfUFJJT1JJVFlfVkFMID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MDAtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgwMTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ZpZCAtIFRyZWF0bWVudCBWSUQgbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MDItICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfVklEX1ZBTDogVXNlIGV4cGxpY2l0IFZJRCB2YWx1ZVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgwNS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODA2OmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfdmlkIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODA3LVxcdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfVklEX1ZBTCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODEyLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4MTM6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF90cGlkIC0gVHJlYXRtZW50IFRQSUQgbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MTQtICogQE1YTDg2MlhYX0VYVEVOREVEVkxBTl9UUkVBVE1FTlRfSU5ORVJfVFBJRDogQ29weSBmcm9tIGlubmVyIHRhZ1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgxOC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODE5OmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfdHBpZCB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyMC1cXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX0lOTkVSX1RQSUQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyNi0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODI3OiAqIGVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfZGVpIC0gVHJlYXRtZW50IERFSSBtb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgyOC0gKiBATVhMODYyWFhfRVhURU5ERURWTEFOX1RSRUFUTUVOVF9JTk5FUl9ERUk6IENvcHkgZnJvbSBpbm5lciB0YWdcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04MzItICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjgzMzplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X2RlaSB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTgzNC1cXHRNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFJFQVRNRU5UX0lOTkVSX0RFSSA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODQwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4NDE6ICogZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuXzRfdHBpZF9tb2RlIC0gNC1UUElEIG1vZGUgc2VsZWN0b3JcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODQyLSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fVFBJRF9WVEVUWVBFXzE6IFZMQU4gVFBJRCB0eXBlIDFcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NDYtICovXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg0NzplbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fNF90cGlkX21vZGUge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NDgtXFx0TVhMODYyWFhfRVhURU5ERURWTEFOX1RQSURfVlRFVFlQRV8xID0gMCxcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04NTQtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjg1NTogKiBlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2V0aGVydHlwZSAtIEZpbHRlciBFdGhlclR5cGUgbWF0Y2hcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODU2LSAqIEBNWEw4NjJYWF9FWFRFTkRFRFZMQU5fRklMVEVSX0VUSEVSVFlQRV9OT19GSUxURVI6IE5vIGZpbHRlclxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg2NC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODY1OmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl9maWx0ZXJfZXRoZXJ0eXBlIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODY2LVxcdE1YTDg2MlhYX0VYVEVOREVEVkxBTl9GSUxURVJfRVRIRVJUWVBFX05PX0ZJTFRFUiA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODc2LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4Nzc6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXJfdmxhbiAtIFBlci10YWcgZmlsdGVyIGluIEV4dGVuZGVkIFZMQU5cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODc4OiAqIEB0eXBlOiBUYWcgcHJlc2VuY2UvdHlwZSBtYXRjaCAoc2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX3R5cGUpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg3OS0gKiBAcHJpb3JpdHlfZW5hYmxlOiBFbmFibGUgUENQIHZhbHVlIG1hdGNoaW5nXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODgyLSAqIEB2aWRfdmFsOiBWSUQgdmFsdWUgdG8gbWF0Y2hcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODgzOiAqIEB0cGlkOiBUUElEIG1hdGNoIG1vZGUgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl90cGlkKVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4ODQ6ICogQGRlaTogREVJIG1hdGNoIG1vZGUgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX2ZpbHRlcl9kZWkpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg4NS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6ODg2OnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4ge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC04ODctXFx0X19sZTMyIHR5cGU7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtODk2LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo4OTc6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXIgLSBFeHRlbmRlZCBWTEFOIGZpbHRlciBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg5OC0gKiBAb3JpZ2luYWxfcGFja2V0X2ZpbHRlcl9tb2RlOiBJZiB0cnVlLCBmaWx0ZXIgb24gb3JpZ2luYWwgKHByZS10cmVhdG1lbnQpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTg5OS0gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrZXRcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTAwOiAqIEBmaWx0ZXJfNF90cGlkX21vZGU6IDQtVFBJRCBtb2RlIChzZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl80X3RwaWRfbW9kZSlcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTAxLSAqIEBvdXRlcl92bGFuOiBPdXRlciBWTEFOIHRhZyBmaWx0ZXJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDMtICogQGV0aGVyX3R5cGU6IEV0aGVyVHlwZSBmaWx0ZXIgKHNlZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5MDQ6ICogICAgICAgICAgICAgIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fZmlsdGVyX2V0aGVydHlwZSlcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTA1LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5MDY6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXIge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDctXFx0dTggb3JpZ2luYWxfcGFja2V0X2ZpbHRlcl9tb2RlO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MDgtXFx0X19sZTMyIGZpbHRlcl80X3RwaWRfbW9kZTtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTA5OlxcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4gb3V0ZXJfdmxhbjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTEwOlxcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fZmlsdGVyX3ZsYW4gaW5uZXJfdmxhbjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTExLVxcdF9fbGUzMiBldGhlcl90eXBlO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkxNC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTE1OiAqIHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50X3ZsYW4gLSBQZXItdGFnIHRyZWF0bWVudCBpblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTYtICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4dGVuZGVkIFZMQU5cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTE3LSAqIEBwcmlvcml0eV9tb2RlOiBQcmlvcml0eSBhc3NpZ25tZW50IG1vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTE4OiAqICAgICAgICAgICAgICAgICAoc2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X2V4dGVuZGVkX3ZsYW5fdHJlYXRtZW50X3ByaW9yaXR5KVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MTktICogQHByaW9yaXR5X3ZhbDogUHJpb3JpdHkgdmFsdWUgKHdoZW4gbW9kZSBpcyBWQUwpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkyMC0gKiBAdmlkX21vZGU6IFZJRCBhc3NpZ25tZW50IG1vZGVcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTIxOiAqICAgICAgICAgICAgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF92aWQpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkyMi0gKiBAdmlkX3ZhbDogVklEIHZhbHVlICh3aGVuIG1vZGUgaXMgVkFMKVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjMtICogQHRwaWQ6IFRQSUQgYXNzaWdubWVudCBtb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjkyNDogKiAgICAgICAgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF90cGlkKVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjUtICogQGRlaTogREVJIGFzc2lnbm1lbnQgbW9kZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5MjY6ICogICAgICAgKHNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9leHRlbmRlZF92bGFuX3RyZWF0bWVudF9kZWkpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTkyNy0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTI4OnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50X3ZsYW4ge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MjktXFx0X19sZTMyIHByaW9yaXR5X21vZGU7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTM3LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5Mzg6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnQgLSBFeHRlbmRlZCBWTEFOIHRyZWF0bWVudFxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05MzktICogQHJlbW92ZV90YWc6IFRhZyByZW1vdmFsIGFjdGlvblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5NDA6ICogICAgICAgICAgICAgIChzZWUgXFx1MDAyNmVudW0gbXhsODYyeHhfZXh0ZW5kZWRfdmxhbl90cmVhdG1lbnRfcmVtb3ZlX3RhZylcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTQxLSAqIEB0cmVhdG1lbnRfNF90cGlkX21vZGU6IDQtVFBJRCB0cmVhdG1lbnQgbW9kZVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk1OC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTU5OnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50IHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTYwLVxcdF9fbGUzMiByZW1vdmVfdGFnO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk2Mi1cXHR1OCBhZGRfb3V0ZXJfdmxhbjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6OTYzOlxcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50X3ZsYW4gb3V0ZXJfdmxhbjtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTY0LVxcdHU4IGFkZF9pbm5lcl92bGFuO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5NjU6XFx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl90cmVhdG1lbnRfdmxhbiBpbm5lcl92bGFuO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05NjYtXFx0dTggcmVhc3NpZ25fYnJpZGdlX3BvcnQ7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTgwLS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5ODE6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9hbGxvYyAtIEV4dGVuZGVkIFZMQU4gYmxvY2sgYWxsb2NhdGlvblxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC05ODItICogQG51bWJlcl9vZl9lbnRyaWVzOiBOdW1iZXIgb2YgZW50cmllcyB0byBhbGxvY2F0ZSAoaW5wdXQpIC8gYWxsb2NhdGVkXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTg4LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5ODk6c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9hbGxvYyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTk5MC1cXHRfX2xlMTYgbnVtYmVyX29mX2VudHJpZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTk0LS8qKlxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDo5OTU6ICogc3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9jb25maWcgLSBFeHRlbmRlZCBWTEFOIGVudHJ5IGNvbmZpZ3VyYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtOTk2LSAqIEBleHRlbmRlZF92bGFuX2Jsb2NrX2lkOiBCbG9jayBJRCBmcm9tIGFsbG9jYXRpb25cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDAyLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDAzOnN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fY29uZmlnIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwNC1cXHRfX2xlMTYgZXh0ZW5kZWRfdmxhbl9ibG9ja19pZDtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwNS1cXHRfX2xlMTYgZW50cnlfaW5kZXg7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMDY6XFx0c3RydWN0IG14bDg2Mnh4X2V4dGVuZGVkdmxhbl9maWx0ZXIgZmlsdGVyO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDA3OlxcdHN0cnVjdCBteGw4NjJ4eF9leHRlbmRlZHZsYW5fdHJlYXRtZW50IHRyZWF0bWVudDtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAwOC19IF9fcGFja2VkO1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMTAtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwMTE6ICogZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayAtIFZMQU4gRmlsdGVyIFRDSSBtYXNrXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwMTItICogQE1YTDg2MlhYX1ZMQU5fRklMVEVSX1RDSV9NQVNLX1ZJRDogVENJIG1hc2sgZm9yIFZMQU4gSURcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDE1LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDE2OmVudW0gbXhsODYyeHhfdmxhbl9maWx0ZXJfdGNpX21hc2sge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDE3LVxcdE1YTDg2MlhYX1ZMQU5fRklMVEVSX1RDSV9NQVNLX1ZJRCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAyMi0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTAyMzogKiBzdHJ1Y3QgbXhsODYyeHhfdmxhbmZpbHRlcl9hbGxvYyAtIFZMQU4gRmlsdGVyIGJsb2NrIGFsbG9jYXRpb25cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAyNC0gKiBAbnVtYmVyX29mX2VudHJpZXM6IE51bWJlciBvZiBlbnRyaWVzIHRvIGFsbG9jYXRlIChpbnB1dCkgLyBhbGxvY2F0ZWRcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDM0LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDM1OnN0cnVjdCBteGw4NjJ4eF92bGFuZmlsdGVyX2FsbG9jIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTAzNi1cXHRfX2xlMTYgbnVtYmVyX29mX2VudHJpZXM7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA0My0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA0NDogKiBzdHJ1Y3QgbXhsODYyeHhfdmxhbmZpbHRlcl9jb25maWcgLSBWTEFOIEZpbHRlciBlbnRyeSBjb25maWd1cmF0aW9uXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNDUtICogQHZsYW5fZmlsdGVyX2Jsb2NrX2lkOiBCbG9jayBJRCBmcm9tIGFsbG9jYXRpb25cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDQ3LSAqIEB2bGFuX2ZpbHRlcl9tYXNrOiBUQ0kgZmllbGQocykgdG8gbWF0Y2ggKHNlZVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDQ4OiAqICAgICAgICAgICAgICAgICAgICBcXHUwMDI2ZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzaylcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA0OS0gKiBAdmFsOiBUQ0kgdmFsdWUocykgdG8gbWF0Y2ggKFZJRCwgUENQLCBvciBmdWxsIFRDSSBkZXBlbmRpbmcgb24gbWFzaylcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDU0LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDU1OnN0cnVjdCBteGw4NjJ4eF92bGFuZmlsdGVyX2NvbmZpZyB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNTYtXFx0X19sZTE2IHZsYW5fZmlsdGVyX2Jsb2NrX2lkO1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDU3LVxcdF9fbGUxNiBlbnRyeV9pbmRleDtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA1ODpcXHRfX2xlMzIgdmxhbl9maWx0ZXJfbWFzazsgLyogZW51bSBteGw4NjJ4eF92bGFuX2ZpbHRlcl90Y2lfbWFzayAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDU5LVxcdF9fbGUzMiB2YWw7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA2My0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA2NDogKiBlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19tYXNrIC0gU3BlY2lhbCB0YWcgdmFsaWQgZmllbGQgaW5kaWNhdG9yIGJpdHNcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA2NS0gKiBATVhMODYyWFhfU1NfU1BfVEFHX01BU0tfUlg6IHZhbGlkIFJYIHNwZWNpYWwgdGFnIG1vZGVcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDY5LSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMDcwOmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX21hc2sge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMDcxLVxcdE1YTDg2MlhYX1NTX1NQX1RBR19NQVNLX1JYID0gQklUKDApLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNzctLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwNzg6ICogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfcnggLSBSWCBzcGVjaWFsIHRhZyBtb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwNzktICogQE1YTDg2MlhYX1NTX1NQX1RBR19SWF9OT19UQUdfTk9fSU5TRVJUOiBwYWNrZXQgZG9lcyBOT1QgaGF2ZSBzcGVjaWFsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTA4NS0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTA4NjplbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19yeCB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwODctXFx0TVhMODYyWFhfU1NfU1BfVEFHX1JYX05PX1RBR19OT19JTlNFUlQgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwOTItLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjEwOTM6ICogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfdHggLSBUWCBzcGVjaWFsIHRhZyBtb2RlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTEwOTQtICogQE1YTDg2MlhYX1NTX1NQX1RBR19UWF9OT19UQUdfTk9fUkVNT1ZFOiBwYWNrZXQgZG9lcyBOT1QgaGF2ZSBzcGVjaWFsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEwMi0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEwMzplbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ190eCB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMDQtXFx0TVhMODYyWFhfU1NfU1BfVEFHX1RYX05PX1RBR19OT19SRU1PVkUgPSAwLFxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMTAtLyoqXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMTE6ICogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfcnhfcGVuIC0gUlggc3BlY2lhbCB0YWcgaW5mbyBvdmVyIHByZWFtYmxlXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMTItICogQE1YTDg2MlhYX1NTX1NQX1RBR19SWF9QRU5fQUxMXzA6IHNwZWNpYWwgdGFnIGluZm8gaW5zZXJ0ZWQgZnJvbSBieXRlIDJcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTIyLSAqL1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTIzOmVudW0gbXhsODYyeHhfc3Nfc3BfdGFnX3J4X3BlbiB7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMjQtXFx0TVhMODYyWFhfU1NfU1BfVEFHX1JYX1BFTl9BTExfMCA9IDAsXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTEzMC0vKipcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTEzMTogKiBzdHJ1Y3QgbXhsODYyeHhfc3Nfc3BfdGFnIC0gU3BlY2lhbCB0YWcgcG9ydCBzZXR0aW5nc1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaC0xMTMyLSAqIEBwaWQ6IHBvcnQgSUQgKDF+MTYpXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExMzM6ICogQG1hc2s6IFNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9zc19zcF90YWdfbWFza1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTM0OiAqIEByeDogU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ19yeFxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTM1OiAqIEB0eDogU2VlIFxcdTAwMjZlbnVtIG14bDg2Mnh4X3NzX3NwX3RhZ190eFxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC1hcGkuaDoxMTM2OiAqIEByeF9wZW46IFNlZSBcXHUwMDI2ZW51bSBteGw4NjJ4eF9zc19zcF90YWdfcnhfcGVuXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oLTExMzctICogQHR4X3BlbjogVFggc3BlY2lhbCB0YWcgaW5mbyBvdmVyIHByZWFtYmxlXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTE0MC0gKi9cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmg6MTE0MTpzdHJ1Y3QgbXhsODYyeHhfc3Nfc3BfdGFnIHtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHgtYXBpLmgtMTE0Mi1cXHR1OCBwaWQ7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LWFwaS5oOjExNDM6XFx0dTggbWFzazsgLyogZW51bSBteGw4NjJ4eF9zc19zcF90YWdfbWFzayAqL1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoyMC4wMDM3Nzc4MTlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo1MDU2MzgxNzM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IGltbWVkaWF0ZSB0aG91Z2h0IHByb2Nlc3MsIGZvY3VzaW5nIG9uIHdoYXQgSSdkIGJlIGRvaW5nIGFuZCB3aHksIGdpdmVuIHRoZSBwcm9tcHQ6XG5cbioqRXhhbWluaW5nIGEgS2NvbmZpZyBGaWxlKipcblxuT2theSwgc28gSSdtIGJlaW5nIGFza2VkIHRvIGxvb2sgYXQgYGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9LY29uZmlnYC4gUmlnaHQgYXdheSwgdGhpcyB0ZWxscyBtZSBhIGZldyB0aGluZ3MuIEl0J3MgYSBLY29uZmlnIGZpbGUsIG1lYW5pbmcgaXQncyBpbnZvbHZlZCBpbiBjb25maWd1cmluZyB0aGUga2VybmVsIGJ1aWxkIHN5c3RlbS4gVGhlIHBhdGggaW5kaWNhdGVzIGl0J3MgcmVsYXRlZCB0byBuZXR3b3JrIGRyaXZlcnMsIHNwZWNpZmljYWxseSBhIERTQSAoRGlzdHJpYnV0ZWQgU3dpdGNoIEFyY2hpdGVjdHVyZSkgZHJpdmVyLCBmb3IgYSBkZXZpY2UgY2FsbGVkIG14bDg2Mnh4LlxuXG5NeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB0aGUgY29udGV4dC4gSSdsbCBtZW50YWxseSBzdGFydCBhc2tpbmcgcXVlc3Rpb25zOlxuXG4qICAgV2hhdCdzIHRoZSBnb2FsIGhlcmU/IEFtIEkgZGVidWdnaW5nIHNvbWV0aGluZz8gVHJ5aW5nIHRvIHVuZGVyc3RhbmQgZGVwZW5kZW5jaWVzPyBPciBhbSBJIGNvbmZpZ3VyaW5nIGEgc3lzdGVtLCBhbmQgdHJ5aW5nIHRvIGVuYWJsZSB0aGlzIGRyaXZlcj9cbiogICBXaGF0IGtlcm5lbCB2ZXJzaW9uIGFyZSB3ZSB1c2luZz8gS2NvbmZpZyBzeW50YXggY2FuIHZhcnkgc2xpZ2h0bHkgYmV0d2VlbiB2ZXJzaW9ucywgdGhvdWdoIGZvciBhIGRyaXZlci1zcGVjaWZpYyBjb25maWcgbGlrZSB0aGlzIGl0IHByb2JhYmx5IHdvbid0IGJlIGEgbWFqb3IgaXNzdWUuXG4qICAgV2hhdCBvdGhlciBmaWxlcyBhcmUgcmVsZXZhbnQgdG8gdGhpcyBkcml2ZXI/IEkga25vdyB0aGF0IEtjb25maWcgZmlsZXMgb2Z0ZW4gcmVmZXJlbmNlIGNvcnJlc3BvbmRpbmcgYC5jYCBmaWxlcywgYW5kIEknZCBhbnRpY2lwYXRlIGxvb2tpbmcgYXQgdGhlIGRyaXZlcidzIHNvdXJjZSBjb2RlIGlmIHRoaXMgaXMgY29uZmlndXJhdGlvbi1yZWxhdGVkLlxuXG5JIGtub3cgSSdtIGxvb2tpbmcgYXQgYSBLY29uZmlnIGZpbGUsIHdoaWNoIG1lYW5zIGl0IHdpbGwgcHJvYmFibHkgZGVmaW5lOlxuXG4qICAgKipTeW1ib2xzOioqIFRoZXNlIGFyZSB0aGUgdmFyaWFibGVzIHRoZSB1c2VyIHNldHMgdG8gZW5hYmxlIG9yIGRpc2FibGUgZmVhdHVyZXMgcmVsYXRlZCB0byB0aGUgYG14bDg2Mnh4YCBkcml2ZXIuIEknbGwgYmUgbG9va2luZyBmb3IgdGhlaXIgbmFtZXMgYW5kIGRlc2NyaXB0aW9ucy4gSSdsbCBwYXkgYXR0ZW50aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlcyB0byBnZXQgYSBzZW5zZSBvZiB3aGV0aGVyIHRoZSBkcml2ZXIgaXMgZW5hYmxlZCBieSBkZWZhdWx0LlxuKiAgICoqRGVwZW5kZW5jaWVzOioqIEknbGwgYmUgc2Nhbm5pbmcgZm9yIGBkZXBlbmRzIG9uYCBzdGF0ZW1lbnRzLiBUaGlzIGlzIHRoZSBjcnVjaWFsIHBhcnQgdGhhdCB3aWxsIHRlbGwgbWUgd2hhdCBvdGhlciBrZXJuZWwgZmVhdHVyZXMgb3Igb3RoZXIgY29uZmlndXJhdGlvbnMgbXVzdCBiZSBlbmFibGVkIGJlZm9yZSB0aGlzIGRyaXZlciBjYW4gYmUgc2VsZWN0ZWQuIEknbGwgbmVlZCB0byBmb2xsb3cgdGhvc2UgZGVwZW5kZW5jaWVzIGFuZCBjaGVjayB3aGF0ICp0aG9zZSogY29uZmlncyBhcmUgc2V0dGluZy5cbiogICAqKk1lbnUgc3RydWN0dXJlOioqIEtjb25maWcgZmlsZXMgYXJlIG5lc3RlZCB0byBjcmVhdGUgYSBsb2dpY2FsIHdheSBmb3IgdXNlcnMgdG8gY29uZmlndXJlIHRoZWlyIHN5c3RlbS4gSSdsbCBiZSBsb29raW5nIGF0IHRoZSBuZXN0aW5nIGxldmVscyBhbmQgcmVsYXRpb25zaGlwcyB0byB1bmRlcnN0YW5kIGhvdyB0byBsb2NhdGUgdGhlIGBteGw4NjJ4eGAgZHJpdmVyIHdpdGhpbiB0aGUgb3ZlcmFsbCBrZXJuZWwgY29uZmlndXJhdGlvbiBtZW51LlxuKiAgICoqUHJvbXB0IChoZWxwIHRleHQpOioqIFRoZSBnb29kIEtjb25maWcgZmlsZXMgaGF2ZSBnb29kIGhlbHAgdGV4dCEgSSdsbCBiZSBvbiB0aGUgbG9va291dCBmb3IgYSBjbGVhciBleHBsYW5hdGlvbiBvZiB3aGF0IHRoaXMgZHJpdmVyIGRvZXMsIHRoZSBoYXJkd2FyZSBpdCBzdXBwb3J0cywgYW5kIGFueSBjb25maWd1cmF0aW9uIG9wdGlvbnMgSSBzaG91bGQgYmUgYXdhcmUgb2YuXG5cbkknbSByZWFkeSB0byBkaXZlIGludG8gdGhlIGZpbGUgYW5kIHN0YXJ0IGFuYWx5emluZyB0aGVzZSBlbGVtZW50cyBzeXN0ZW1hdGljYWxseS4gSSB3aWxsIGxvb2sgZm9yIGFueSBjbHVlcyBhYm91dCB3aGF0IGlzIGRyaXZpbmcgdGhpcyBpbnZlc3RpZ2F0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMTkyMSwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjI1LjA2MDE2MjIwNVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU0NjExLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9LY29uZmlnXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDQwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTkVUX0RTQV9NWEw4NjJcXG4gICAzOlxcdFxcdHRyaXN0YXRlIFxcXCJNYXhMaW5lYXIgTXhMODYyeHhcXFwiXFxuICAgNDpcXHRcXHRkZXBlbmRzIG9uIE5FVF9EU0FcXG4gICA1OlxcdFxcdHNlbGVjdCBDUkMxNlxcbiAgIDY6XFx0XFx0c2VsZWN0IE5FVF9EU0FfVEFHX01YTF84NjJYWFxcbiAgIDc6XFx0XFx0aGVscFxcbiAgIDg6XFx0XFx0ICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgdGhlIE1heExpbmVhciBNeEw4NjJ4eCBzd2l0Y2ggZmFtaWx5LlxcbiAgIDk6XFx0XFx0ICBUaGVzZSBzd2l0Y2hlcyBoYXZlIHR3byAxMEdFIFNlckRlcyBpbnRlcmZhY2VzLCBvbmUgdHlwaWNhbGx5XFxuICAxMDpcXHRcXHQgIHVzZWQgYXMgQ1BVIHBvcnQuXFxuICAxMTpcXHRcXHQgICAtIE14TDg2MjgyIGhhcyBlaWdodCAyLjUgR2lnYWJpdCBQSFlzXFxuICAxMjpcXHRcXHQgICAtIE14TDg2MjUyIGhhcyBmaXZlIDIuNSBHaWdhYml0IFBIWXNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6MjUuMDYwMjE4MjI1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6MjEyNzA0NTM5MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYG14bDg2Mnh4YCBkcml2ZXIgY29kZS4gTXkgaW5pdGlhbCBhcHByb2FjaCBpcyBhbHdheXMgdG8gdW5kZXJzdGFuZCB0aGUgcmVnaXN0cmF0aW9uIGFuZCBwcm9iaW5nL2JpbmRpbmcgcHJvY2Vzcy4gU28sIEkgbmVlZCB0byBzZWUgaG93IGBteGw4NjJ4eGAgaXMgZGVjbGFyZWQgYXMgYSBkcml2ZXIgYW5kIGhvdyB0aGUga2VybmVsIGZpbmRzIGl0LiBJJ2xsIGZvY3VzIG9uIHRoZSBgbXhsODYyeHguY2AgZmlsZS4gSSdtIGdvaW5nIHRvIGxvb2sgZm9yIGFueSBkZWZpbml0aW9uIHJlbGF0ZWQgdG8gdGhlIE1ESU8gZHJpdmVyIGludGVyZmFjZSwgb3IgcGVyaGFwcyBTUEksIEkyQywgb3IgZXZlbiBEZXZpY2UgVHJlZSBiaW5kaW5ncyBpZiBpdCdzIGFuIE9GLWJhc2VkIHN5c3RlbS4gVW5kZXJzdGFuZGluZyB0aGUgY29tbXVuaWNhdGlvbiBpbnRlcmZhY2UgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgaG93IGl0IGludGVyYWN0cyB3aXRoIHRoZSBoYXJkd2FyZS4gSSB3aWxsIHN0YXJ0IGJ5IHRyYWNpbmcgdGhvc2UgY3J1Y2lhbCBlbnRyeSBwb2ludHMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyNzQ2LCJPdXRwdXRUb2tlbnMiOjQ0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoyNy4xODcyNjY1MDdaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ3ODM5NzkzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm1vZHVsZV9tZGlvX2RyaXZlcnxtZGlvX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC9kc2EvbXhsODYyeHhcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjIwOD1NT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBteGw4NjJ4eF9vZl9tYXRjaCk7XFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMtMjIwOS1cXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYzoyMjEwOnN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXhsODYyeHhfZHJpdmVyID0ge1xcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTIyMTEtXFx0LnByb2JlICA9IG14bDg2Mnh4X3Byb2JlLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODoyNy4yMzUxMTI1MloiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjo4MjM0MzU1MzgyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgcmVxdWVzdGVkOlxuXG4qKkRpdmluZyBpbnRvIGBteGw4NjJ4eC5jYCoqXG5cbk9rYXksIHRpbWUgdG8gZ2V0IHRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBJIG5lZWQgdG8gdGFrZSBhIGxvb2sgYXQgdGhlIGBteGw4NjJ4eC5jYCBkcml2ZXIsIHNwZWNpZmljYWxseSBhcm91bmQgbGluZXMgMjIwMCB0byAyMjI1LiBJIHJlbWVtYmVyIGVuY291bnRlcmluZyBzb21ldGhpbmcgcG90ZW50aWFsbHkgcmVsYXRlZCB0byB0aGlzIGlzc3VlIGluIHRoYXQgYXJlYSwgYW5kIEkgd2FudCB0byByZWZyZXNoIG15IG1lbW9yeSBhbmQgc2VlIGlmIEkgY2FuIHNwb3QgYW55dGhpbmcgcmVsZXZhbnQgd2l0aCBmcmVzaCBleWVzLiBUaGlzIGlzIGEgY29tbW9uIGRlYnVnZ2luZyB0ZWNobmlxdWUgZm9yIG1lOyBJJ2xsIHN0YXJ0IHdpdGggdGhlIG1vc3QgbGlrZWx5IHN1c3BlY3QsIGEgY29uY2VudHJhdGVkIGFyZWEgb2YgY29kZSBJIHJlY2FsbCwgYW5kIHRoZW4gZXhwYW5kIG15IHNlYXJjaCBmcm9tIHRoZXJlIGlmIG5lZWRlZC4gTGV0J3Mgc2VlIHdoYXQgd2UgY2FuIGZpbmQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMTY3LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6MzUuNDY5NDcwNjcyWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDYyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMjAwLFxuICBcIkxpbmVDb3VudFwiOiAzNVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyMjAwOlxcdFxcdGRldl9zZXRfZHJ2ZGF0YShcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2LCBOVUxMKTtcXG4yMjAxOlxcdH1cXG4yMjAyOlxcdFxcbjIyMDM6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXhsODYyeHhfb2ZfbWF0Y2hbXSA9IHtcXG4yMjA0OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwibWF4bGluZWFyLG14bDg2MjgyXFxcIiB9LFxcbjIyMDU6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJtYXhsaW5lYXIsbXhsODYyNTJcXFwiIH0sXFxuMjIwNjpcXHRcXHR7IC8qIHNlbnRpbmVsICovIH1cXG4yMjA3OlxcdH07XFxuMjIwODpcXHRNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBteGw4NjJ4eF9vZl9tYXRjaCk7XFxuMjIwOTpcXHRcXG4yMjEwOlxcdHN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXhsODYyeHhfZHJpdmVyID0ge1xcbjIyMTE6XFx0XFx0LnByb2JlICA9IG14bDg2Mnh4X3Byb2JlLFxcbjIyMTI6XFx0XFx0LnJlbW92ZSA9IG14bDg2Mnh4X3JlbW92ZSxcXG4yMjEzOlxcdFxcdC5zaHV0ZG93biA9IG14bDg2Mnh4X3NodXRkb3duLFxcbjIyMTQ6XFx0XFx0Lm1kaW9kcnYuZHJpdmVyID0ge1xcbjIyMTU6XFx0XFx0XFx0Lm5hbWUgPSBcXFwibXhsODYyeHhcXFwiLFxcbjIyMTY6XFx0XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gbXhsODYyeHhfb2ZfbWF0Y2gsXFxuMjIxNzpcXHRcXHR9LFxcbjIyMTg6XFx0fTtcXG4yMjE5OlxcdFxcbjIyMjA6XFx0bWRpb19tb2R1bGVfZHJpdmVyKG14bDg2Mnh4X2RyaXZlcik7XFxuMjIyMTpcXHRcXG4yMjIyOlxcdE1PRFVMRV9ERVNDUklQVElPTihcXFwiRHJpdmVyIGZvciBNYXhMaW5lYXIgTXhMODYyeHggc3dpdGNoIGZhbWlseVxcXCIpO1xcbjIyMjM6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTFxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODozNS40Njk1ODY1NTJaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjctZmxhc2giLCJEdXJhdGlvbiI6ODkwMDE4OTE2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipSZWFjaGFiaWxpdHkgQW5hbHlzaXMgZm9yIHRoZSBgbXhsODYyeHhgIERyaXZlcioqXG5cbk9rYXksIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzOiBJcyB0aGlzIGBteGw4NjJ4eGAgZHJpdmVy4oCUc3BlY2lmaWNhbGx5IGZvciB0aG9zZSBgbWF4bGluZWFyLG14bDg2MjgyYCBvciBgbWF4bGluZWFyLG14bDg2MjUyYCBkZXZpY2Vz4oCUYW4gTURJTy1iYXNlZCBzd2l0Y2ggZHJpdmVyLCBhbmQsIGNydWNpYWxseSwgZG9lcyBpdCAqcmVxdWlyZSogcGh5c2ljYWwgaGFyZHdhcmU/IEkgbmVlZCB0byBrbm93IGlmIGl0J3MgcmVhY2hhYmxlIGZvciBmdXp6aW5nLlxuXG5NeSB0aGlua2luZyBpcyBndWlkZWQgYnkgdGhpcyBcInJlYWNoYWJpbGl0eSBpcyB0aGUgcHJpbWFyeSBnYXRlXCIgcHJpbmNpcGxlIEknbSBkZWFsaW5nIHdpdGguIElmIHRoZSBjb2RlICpjYW4ndCogZXhlY3V0ZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50IGxpa2UgR0NFIG9yIFFFTVUsIHRoZW4gZnV6emluZyBpcyBhIHdhc3RlIG9mIHRpbWUsIG5vIG1hdHRlciBob3cgY29tcGxleCB0aGUgbG9naWMuXG5cbkxvb2tpbmcgYXQgU2VjdGlvbiAyLCB0aGUgdGV4dCBleHBsaWNpdGx5IGNhbGxzIG91dCBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmU6IHRoaW5ncyBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIHRoYXQgbmVlZCBhbiBhY3R1YWwgQVNJQyBvciBQQ0llIGNhcmQgdGhhdCBpc24ndCBlbXVsYXRlZC4gVGhlbiB0aGVyZSdzIHRoZSBpc3N1ZSBvZiB1bnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHMg4oCTIGxpa2UgdGVhcmRvd24gY2FsbGJhY2tzIHRyaWdnZXJlZCBvbmx5IGJ5IHBoeXNpY2FsIGhvdC11bnBsdWcgb3IgbWFudWFsIHVuYmluZGluZy5cblxuU28sIHRoZSBrZXkgcXVlc3Rpb24gaXM6IENhbiBgbXhsODYyeHhgIGJlIHByb2JlZCBvciBpbnN0YW50aWF0ZWQgaW4gYSBzdGFuZGFyZCBzeXprYWxsZXIgLyBRRU1VIC8gR0NFIGVudmlyb25tZW50PyBJIGtub3cgc3l6a2FsbGVyIHJ1bnMgaW4gc3RhbmRhcmQgUUVNVS9HQ0UsIHdpdGhvdXQgYSBwaHlzaWNhbCBNRElPIGJ1cyBjb25uZWN0ZWQgdG8gYW4gTXhMODYyeHggQVNJQyBzd2l0Y2guIENhbiBhbiBNRElPIHN3aXRjaCBvciBEU0EgZGV2aWNlIGJlIGVtdWxhdGVkIG9yIGJvdW5kICp3aXRob3V0KiB0aGUgaGFyZHdhcmU/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgTURJTyBidXMgYW5kIHRoZSBPRi9EZXZpY2VUcmVlIG1kaW9fZHJpdmVyIGFyZSBoYW5kbGVkIGluIHRoaXMgY29udGV4dC4gRG8gdmlydHVhbCBNRElPIGJ1c2VzIGV4aXN0PyBEb2VzIHN5emJvdCBoYXZlIGEgd2F5IG9mIHByb2JpbmcgTURJTyBkZXZpY2VzIGluIHRoaXMgc2V0dXA/XG5cbkkgbmVlZCB0byBzZWUgaG93IHN5emthbGxlciBpbnRlcmFjdHMgd2l0aCBNRElPL0RTQSBkcml2ZXJzLiBUaW1lIHRvIGdyZXAgdGhlIGtlcm5lbCBzb3VyY2UgZm9yIGBteGw4NjJ4eGAgb3IgYG1kaW9fZHJpdmVyYC4gSG9wZWZ1bGx5LCB0aGVyZSBhcmUgc29tZSBtb2NrIG9yIHZpcnR1YWwgaW50ZXJmYWNlcyB0aGF0IHdpbGwgZ2l2ZSBtZSBhIGNsdWUgYWJvdXQgdGhlIHBvc3NpYmlsaXR5IG9mIHJlYWNoYWJpbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM4MTAsIk91dHB1dFRva2VucyI6MjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NjEsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODo0NC4zNjk3Nzc4MTNaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4MTYyMzkwNDIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibWRpb19tb2R1bGVfZHJpdmVyXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYz0yMjEwPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbnNzX2NjX3FjYThrX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYy0yMjE3LVxcbmRyaXZlcnMvY2xrL3Fjb20vbnNzY2MtcWNhOGsuYzoyMjE4Om1kaW9fbW9kdWxlX2RyaXZlcihuc3NfY2NfcWNhOGtfZHJpdmVyKTtcXG5kcml2ZXJzL2Nsay9xY29tL25zc2NjLXFjYThrLmMtMjIxOS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9iNTMvYjUzX21kaW8uYz0zOTE9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBiNTNfbWRpb19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvYjUzL2I1M19tZGlvLmMtMzk5LX07XFxuZHJpdmVycy9uZXQvZHNhL2I1My9iNTNfbWRpby5jOjQwMDptZGlvX21vZHVsZV9kcml2ZXIoYjUzX21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvYjUzL2I1M19tZGlvLmMtNDAxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL2xhbjkzMDNfbWRpby5jPTE2ND1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGxhbjkzMDNfbWRpb19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFuOTMwM19tZGlvLmMtMTcyLX07XFxuZHJpdmVycy9uZXQvZHNhL2xhbjkzMDNfbWRpby5jOjE3MzptZGlvX21vZHVsZV9kcml2ZXIobGFuOTMwM19tZGlvX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZHNhL2xhbjkzMDNfbWRpby5jLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9sYW50aXEvbXhsLWdzdzF4eC5jPTkyNj1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGdzdzF4eF9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYy05MzUtXFxuZHJpdmVycy9uZXQvZHNhL2xhbnRpcS9teGwtZ3N3MXh4LmM6OTM2Om1kaW9fbW9kdWxlX2RyaXZlcihnc3cxeHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbGFudGlxL214bC1nc3cxeHguYy05MzctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg4NjNfc21pLmM9MjExPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIga3N6ODg2M19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg4NjNfc21pLmMtMjIwLVxcbmRyaXZlcnMvbmV0L2RzYS9taWNyb2NoaXAva3N6ODg2M19zbWkuYzoyMjE6bWRpb19tb2R1bGVfZHJpdmVyKGtzejg4NjNfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbWljcm9jaGlwL2tzejg4NjNfc21pLmMtMjIyLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmM9MjU4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXQ3NTMwX21kaW9fZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL210NzUzMC1tZGlvLmMtMjY3LVxcbmRyaXZlcnMvbmV0L2RzYS9tdDc1MzAtbWRpby5jOjI2ODptZGlvX21vZHVsZV9kcml2ZXIobXQ3NTMwX21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXQ3NTMwLW1kaW8uYy0yNjktXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2MDYwLmM9MzY4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgbXY4OGU2MDYwX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTYwNjAuYy0zNzctXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5jOjM3ODptZGlvX21vZHVsZV9kcml2ZXIobXY4OGU2MDYwX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZHNhL212ODhlNjA2MC5jLTM3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jPTc1Mjk9c3RhdGljIHN0cnVjdCBtZGlvX2RyaXZlciBtdjg4ZTZ4eHhfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMtNzUzOS1cXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYzo3NTQwOm1kaW9fbW9kdWxlX2RyaXZlcihtdjg4ZTZ4eHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYy03NTQxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM9MjIxMD1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG14bDg2Mnh4X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jLTIyMTktXFxuZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmM6MjIyMDptZGlvX21vZHVsZV9kcml2ZXIobXhsODYyeHhfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguYy0yMjIxLVxcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYz0xMTI4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgYXI5MzMxX3N3X21kaW9fZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9hcjkzMzEuYy0xMTM3LVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvYXI5MzMxLmM6MTEzODptZGlvX21vZHVsZV9kcml2ZXIoYXI5MzMxX3N3X21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EvcWNhL2FyOTMzMS5jLTExMzktXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvcWNhL3FjYThrLTh4eHguYz0yMjIxPXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgcWNhOGttZGlvX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS9xY2EvcWNhOGstOHh4eC5jLTIyMzEtXFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmM6MjIzMjptZGlvX21vZHVsZV9kcml2ZXIocWNhOGttZGlvX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvZHNhL3FjYS9xY2E4ay04eHh4LmMtMjIzMy1cXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS94cnM3MDB4L3hyczcwMHhfbWRpby5jPTE2Nj1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIHhyczcwMHhfbWRpb19kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveHJzNzAweC94cnM3MDB4X21kaW8uYy0xNzUtXFxuZHJpdmVycy9uZXQvZHNhL3hyczcwMHgveHJzNzAweF9tZGlvLmM6MTc2Om1kaW9fbW9kdWxlX2RyaXZlcih4cnM3MDB4X21kaW9fZHJpdmVyKTtcXG5kcml2ZXJzL25ldC9kc2EveHJzNzAweC94cnM3MDB4X21kaW8uYy0xNzctXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EveXQ5MjF4LmM9NDk2OD1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIHl0OTIxeF9tZGlvX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYy00OTc3LVxcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYzo0OTc4Om1kaW9fbW9kdWxlX2RyaXZlcih5dDkyMXhfbWRpb19kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L2RzYS95dDkyMXguYy00OTc5LVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L3hpbGlueF9nbWlpMnJnbWlpLmM9MTM4PXN0YXRpYyBzdHJ1Y3QgbWRpb19kcml2ZXIgeGdtaWl0b3JnbWlpX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS94aWxpbnhfZ21paTJyZ21paS5jLTE0NS1cXG5kcml2ZXJzL25ldC9waHkveGlsaW54X2dtaWkycmdtaWkuYzoxNDY6bWRpb19tb2R1bGVfZHJpdmVyKHhnbWlpdG9yZ21paV9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3BoeS94aWxpbnhfZ21paTJyZ21paS5jLTE0Ny1cXG4tLVxcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMtdXNiMy5jPTIzMj1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIGJjbV9uc191c2IzX21kaW9fZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9waHkvYnJvYWRjb20vcGh5LWJjbS1ucy11c2IzLmMtMjQxLVxcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMtdXNiMy5jOjI0MjptZGlvX21vZHVsZV9kcml2ZXIoYmNtX25zX3VzYjNfbWRpb19kcml2ZXIpO1xcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMtdXNiMy5jLTI0My1cXG4tLVxcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMyLXBjaWUuYz03Mz1zdGF0aWMgc3RydWN0IG1kaW9fZHJpdmVyIG5zMl9wY2lfcGh5X2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMyLXBjaWUuYy04MS19O1xcbmRyaXZlcnMvcGh5L2Jyb2FkY29tL3BoeS1iY20tbnMyLXBjaWUuYzo4MjptZGlvX21vZHVsZV9kcml2ZXIobnMyX3BjaV9waHlfZHJpdmVyKTtcXG5kcml2ZXJzL3BoeS9icm9hZGNvbS9waHktYmNtLW5zMi1wY2llLmMtODMtXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaD02OTY9c3RydWN0IHBoeV9kZXZpY2UgKm1kaW9idXNfZ2V0X3BoeShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaC02OTgtLyoqXFxuaW5jbHVkZS9saW51eC9tZGlvLmg6Njk5OiAqIG1kaW9fbW9kdWxlX2RyaXZlcigpIC0gSGVscGVyIG1hY3JvIGZvciByZWdpc3RlcmluZyBtZGlvIGRyaXZlcnNcXG5pbmNsdWRlL2xpbnV4L21kaW8uaC03MDAtICogQF9tZGlvX2RyaXZlcjogZHJpdmVyIHRvIHJlZ2lzdGVyXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaC03MDUtICovXFxuaW5jbHVkZS9saW51eC9tZGlvLmg6NzA2OiNkZWZpbmUgbWRpb19tb2R1bGVfZHJpdmVyKF9tZGlvX2RyaXZlcikgXFxcXFxcbmluY2x1ZGUvbGludXgvbWRpby5oLTcwNy1cXHRtb2R1bGVfZHJpdmVyKF9tZGlvX2RyaXZlciwgbWRpb19kcml2ZXJfcmVnaXN0ZXIsIG1kaW9fZHJpdmVyX3VucmVnaXN0ZXIpXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjQ2LjE4NjAyMjgzNloiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuNy1mbGFzaCIsIkR1cmF0aW9uIjoyMzM4Mjk2MTQyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk1ESU8gRGV2aWNlIFJlZ2lzdHJhdGlvbiBhbmQgQnVzIFN0cnVjdHVyZSoqXG5cbk9rYXksIGxldCdzIGRpdmUgaW50byB0aGlzIE1ESU8gc2l0dWF0aW9uLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlc2UgTURJTyBkZXZpY2VzIGFyZSBiZWluZyBicm91Z2h0IGludG8gdGhlIHN5c3RlbS4gQXJlIHRoZXkgdXNpbmcgYSB2aXJ0dWFsIGJ1cyBzdHJ1Y3R1cmUsIG9yIGFyZSB3ZSByZWx5aW5nIG9uIGRldmljZSB0cmVlIHByb2JpbmcgYW5kIGRpcmVjdCBoYXJkd2FyZSBpbnRlcmFjdGlvbj8gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGludmVzdGlnYXRlIHRoZSByZWdpc3RyYXRpb24gcHJvY2VzcyBpdHNlbGYuIFdoZXJlIGRvZXMgdGhlIHJ1YmJlciBtZWV0IHRoZSByb2FkPyBJIG5lZWQgdG8gbG9vayBmb3IgY2FsbHMgdG8gYG1kaW9fZHJpdmVyX3JlZ2lzdGVyYCDigJMgd2hlcmUgYXJlIHRoZSBNRElPIGRyaXZlcnMgYWN0dWFsbHkgYmVpbmcgcmVnaXN0ZXJlZD8gSSdsbCBwcm9iYWJseSBicm9hZGVuIHRoaXMgdG8gc2VhcmNoIGZvciB3aGVyZSBpdCdzICp1c2VkKiwgdG9vLCBqdXN0IHRvIGJlIHN1cmUuIFRoaXMgd2lsbCBnaXZlIG1lIGEgc29saWQgc3RhcnRpbmcgcG9pbnQgdG8gdW5kZXJzdGFuZCB0aGUgZnJhbWV3b3JrLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzEzNywiT3V0cHV0VG9rZW5zIjoyMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjQ4LjUyNDMyMTAwN1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU1MTcwODg1NSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtZGlvX2RldmljZV9yZWdpc3RlclwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYz00NDY9c3RhdGljIGludCBfX2luaXQgZHNhX2xvb3BfY3JlYXRlX3N3aXRjaF9tZGlvZGV2KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzMtXFxuZHJpdmVycy9uZXQvZHNhL2RzYV9sb29wLmM6NDc0OlxcdHJldCA9IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN3aXRjaF9tZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9kc2EvZHNhX2xvb3AuYy00NzUtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L21kaW8vb2ZfbWRpby5jPTUyPXN0YXRpYyBpbnQgb2ZfbWRpb2J1c19yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG1paV9idXMgKm1kaW8sXFxuLS1cXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy02OC1cXHQvKiBBbGwgZGF0YSBpcyBub3cgc3RvcmVkIGluIHRoZSBtZGlvZGV2IHN0cnVjdDsgcmVnaXN0ZXIgaXQuICovXFxuZHJpdmVycy9uZXQvbWRpby9vZl9tZGlvLmM6Njk6XFx0cmMgPSBtZGlvX2RldmljZV9yZWdpc3RlcihtZGlvZGV2KTtcXG5kcml2ZXJzL25ldC9tZGlvL29mX21kaW8uYy03MC1cXHRpZiAocmMpIHtcXG4tLVxcbmRyaXZlcnMvbmV0L3Bjcy9wY3MteHBjcy1wbGF0LmM9MzM3PXN0YXRpYyBpbnQgeHBjc19wbGF0X2luaXRfZGV2KHN0cnVjdCBkd194cGNzX3BsYXQgKnB4cGNzKVxcbi0tXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTYtXFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYzozNTc6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGNzL3Bjcy14cGNzLXBsYXQuYy0zNTgtXFx0aWYgKHJldCkge1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmM9MTA3ND1zdGF0aWMgaW50IGFuODgxMWhiX3Byb2JlKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvYWlyX2VuODgxMWguYy0xMDk3LVxcbmRyaXZlcnMvbmV0L3BoeS9haXJfZW44ODExaC5jOjEwOTg6XFx0cmV0ID0gbWRpb19kZXZpY2VfcmVnaXN0ZXIobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGh5L2Fpcl9lbjg4MTFoLmMtMTA5OS1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjYtLyoqXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6Mjc6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQgLSBSZWFkIGFuZCBpbml0aWFsaXplIHRoZSByZXNldCBwcm9wZXJ0aWVzIG9mXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjgtICpcXHRcXHRcXHRcXHRhbiBtZGlvIGRldmljZVxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzItICovXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MzM6c3RhdGljIGludCBtZGlvX2RldmljZV9yZWdpc3Rlcl9yZXNldChzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMzQte1xcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTQzPUVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfY3JlYXRlKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE0NS0vKipcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxNDY6ICogbWRpb19kZXZpY2VfcmVnaXN0ZXIgLSBSZWdpc3RlciB0aGUgbWRpbyBkZXZpY2Ugb24gdGhlIE1ESU8gYnVzXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTQ3LSAqIEBtZGlvZGV2OiBtZGlvX2RldmljZSBzdHJ1Y3R1cmUgdG8gYmUgYWRkZWQgdG8gdGhlIE1ESU8gYnVzXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xNTAtICovXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTUxOmludCBtZGlvX2RldmljZV9yZWdpc3RlcihzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMTUyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3Mi19XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM6MTczOkVYUE9SVF9TWU1CT0wobWRpb19kZXZpY2VfcmVnaXN0ZXIpO1xcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE3NC1cXG4tLVxcbmRyaXZlcnMvbmV0L3BoeS9tZGlvX2RldmljZS5jLTE4MC0gKiBUaGlzIGRvZXNuJ3QgZnJlZSB0aGUgbWRpb19kZXZpY2UgaXRzZWxmLCBpdCBtZXJlbHkgcmV2ZXJzZXMgdGhlIGVmZmVjdHNcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxODE6ICogb2YgbWRpb19kZXZpY2VfcmVnaXN0ZXIoKS4gVXNlIG1kaW9fZGV2aWNlX2ZyZWUoKSB0byBmcmVlIHRoZSBkZXZpY2VcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xODItICogYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uLlxcbi0tXFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmM9MTkxPWludCBtZGlvYnVzX3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYy0xOTgtXFx0aWYgKG1kaW9kZXYtXFx1MDAzZWZsYWdzIFxcdTAwMjYgTURJT19ERVZJQ0VfRkxBR19QSFkpIHtcXG5kcml2ZXJzL25ldC9waHkvbWRpb19kZXZpY2UuYzoxOTk6XFx0XFx0ZXJyID0gbWRpb19kZXZpY2VfcmVnaXN0ZXJfcmVzZXQobWRpb2Rldik7XFxuZHJpdmVycy9uZXQvcGh5L21kaW9fZGV2aWNlLmMtMjAwLVxcdFxcdGlmIChlcnIpXFxuLS1cXG5pbmNsdWRlL2xpbnV4L21kaW8uaD05NT1zdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9fZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkcik7XFxuaW5jbHVkZS9saW51eC9tZGlvLmg6OTY6aW50IG1kaW9fZGV2aWNlX3JlZ2lzdGVyKHN0cnVjdCBtZGlvX2RldmljZSAqbWRpb2Rldik7XFxuaW5jbHVkZS9saW51eC9tZGlvLmgtOTctdm9pZCBtZGlvX2RldmljZV9yZW1vdmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6NTAuMDc2MDM0ODMzWiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjIyNTQ1NDQ2MzcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRGl2aW5nIGludG8gdGhlIERyaXZlciBDb2RlKipcblxuQWxyaWdodCwgbGV0J3MgZGlzc2VjdCB0aGlzIGNvZGUuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGVzZSBkcml2ZXJzIGludGVyYWN0LiBGaXJzdCwgSSdsbCBsb29rIGF0IGBkc2FfbG9vcC5jYC4gSXQncyBhIG1vY2sgRFNBIHN3aXRjaCBkcml2ZXIsIHVzaW5nIGEgbW9jayBNRElPIGRldmljZSDigJMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBhcmNoaXRlY3R1cmUuIEhvd2V2ZXIsIEknbSBtb3JlIGludGVyZXN0ZWQgaW4gdGhlIHJlYWwgaGFyZHdhcmUuIFNvLCB3aGF0IGFib3V0IGBteGw4NjJ4eGA/IEl0IGFwcGVhcnMgdG8gYmUgdGllZCB0byBhIHNwZWNpZmljIGRldmljZSB0cmVlIG5vZGUsIGV4Y2x1c2l2ZWx5IG1hdGNoZWQgdmlhIHRoZSBcIm9mX21hdGNoX3RhYmxlID0gbXhsODYyeHhfb2ZfbWF0Y2hcIi4gVGhlIGVudHJpZXMgXCJtYXhsaW5lYXIsbXhsODYyODJcIiBhbmQgXCJtYXhsaW5lYXIsbXhsODYyNTJcIiBpbW1lZGlhdGVseSB0ZWxsIG1lIHRoaXMgaXMgdGFyZ2V0aW5nIHNwZWNpZmljIE1heExpbmVhciBjaGlwcy4gTm93LCBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIHByb2JlIGZ1bmN0aW9uLiBMZXQncyBkaWcgaW50byBgbXhsODYyeHhfcHJvYmUoc3RydWN0IG1kaW9fZGV2aWNlICptZGlvZGV2KWAgYW5kIHNlZSB3aGF0IHdlIGNhbiBmaW5kLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyODYyNCwiT3V0cHV0VG9rZW5zIjo1MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE0MiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xMFQxNDo0ODo1Mi4zMzA1ODE2MzlaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE5NjYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIxMDAsXG4gIFwiTGluZUNvdW50XCI6IDUwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIxMDA6XFx0fTtcXG4yMTAxOlxcdFxcbjIxMDI6XFx0c3RhdGljIGludCBteGw4NjJ4eF9wcm9iZShzdHJ1Y3QgbWRpb19kZXZpY2UgKm1kaW9kZXYpXFxuMjEwMzpcXHR7XFxuMjEwNDpcXHRcXHRzdHJ1Y3QgZGV2aWNlICpkZXYgPSBcXHUwMDI2bWRpb2Rldi1cXHUwMDNlZGV2O1xcbjIxMDU6XFx0XFx0c3RydWN0IG14bDg2Mnh4X3ByaXYgKnByaXY7XFxuMjEwNjpcXHRcXHRzdHJ1Y3QgZHNhX3N3aXRjaCAqZHM7XFxuMjEwNzpcXHRcXHRpbnQgZXJyLCBpO1xcbjIxMDg6XFx0XFxuMjEwOTpcXHRcXHRwcml2ID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpwcml2KSwgR0ZQX0tFUk5FTCk7XFxuMjExMDpcXHRcXHRpZiAoIXByaXYpXFxuMjExMTpcXHRcXHRcXHRyZXR1cm4gLUVOT01FTTtcXG4yMTEyOlxcdFxcbjIxMTM6XFx0XFx0cHJpdi1cXHUwMDNlbWRpb2RldiA9IG1kaW9kZXY7XFxuMjExNDpcXHRcXG4yMTE1OlxcdFxcdGRzID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9mKCpkcyksIEdGUF9LRVJORUwpO1xcbjIxMTY6XFx0XFx0aWYgKCFkcylcXG4yMTE3OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbjIxMTg6XFx0XFxuMjExOTpcXHRcXHRwcml2LVxcdTAwM2VkcyA9IGRzO1xcbjIxMjA6XFx0XFx0ZHMtXFx1MDAzZWRldiA9IGRldjtcXG4yMTIxOlxcdFxcdGRzLVxcdTAwM2Vwcml2ID0gcHJpdjtcXG4yMTIyOlxcdFxcdGRzLVxcdTAwM2VvcHMgPSBcXHUwMDI2bXhsODYyeHhfc3dpdGNoX29wcztcXG4yMTIzOlxcdFxcdGRzLVxcdTAwM2VwaHlsaW5rX21hY19vcHMgPSBcXHUwMDI2bXhsODYyeHhfcGh5bGlua19tYWNfb3BzO1xcbjIxMjQ6XFx0XFx0ZHMtXFx1MDAzZW51bV9wb3J0cyA9IE1YTDg2MlhYX01BWF9QT1JUUztcXG4yMTI1OlxcdFxcdGRzLVxcdTAwM2Vhc3Npc3RlZF9sZWFybmluZ19vbl9jcHVfcG9ydCA9IHRydWU7XFxuMjEyNjpcXHRcXHRkcy1cXHUwMDNlZmRiX2lzb2xhdGlvbiA9IHRydWU7XFxuMjEyNzpcXHRcXHRkcy1cXHUwMDNlbWF4X251bV9icmlkZ2VzID0gTVhMODYyWFhfTUFYX0JSSURHRVM7XFxuMjEyODpcXHRcXG4yMTI5OlxcdFxcdG14bDg2Mnh4X2hvc3RfaW5pdChwcml2KTtcXG4yMTMwOlxcdFxcbjIxMzE6XFx0XFx0Zm9yIChpID0gMDsgaSBcXHUwMDNjIE1YTDg2MlhYX01BWF9QT1JUUzsgaSsrKSB7XFxuMjEzMjpcXHRcXHRcXHRwcml2LVxcdTAwM2Vwb3J0c1tpXS5wcml2ID0gcHJpdjtcXG4yMTMzOlxcdFxcdFxcdElOSVRfV09SSyhcXHUwMDI2cHJpdi1cXHUwMDNlcG9ydHNbaV0uaG9zdF9mbG9vZF93b3JrLFxcbjIxMzQ6XFx0XFx0XFx0XFx0ICBteGw4NjJ4eF9ob3N0X2Zsb29kX3dvcmtfZm4pO1xcbjIxMzU6XFx0XFx0XFx0c3Bpbl9sb2NrX2luaXQoXFx1MDAyNnByaXYtXFx1MDAzZXBvcnRzW2ldLnN0YXRzX2xvY2spO1xcbjIxMzY6XFx0XFx0fVxcbjIxMzc6XFx0XFxuMjEzODpcXHRcXHRJTklUX0RFTEFZRURfV09SSyhcXHUwMDI2cHJpdi1cXHUwMDNlc3RhdHNfd29yaywgbXhsODYyeHhfc3RhdHNfd29ya19mbik7XFxuMjEzOTpcXHRcXG4yMTQwOlxcdFxcdGRldl9zZXRfZHJ2ZGF0YShkZXYsIGRzKTtcXG4yMTQxOlxcdFxcbjIxNDI6XFx0XFx0ZXJyID0gZHNhX3JlZ2lzdGVyX3N3aXRjaChkcyk7XFxuMjE0MzpcXHRcXHRpZiAoZXJyKSB7XFxuMjE0NDpcXHRcXHRcXHRzZXRfYml0KE1YTDg2MlhYX0ZMQUdfV09SS19TVE9QUEVELCBcXHUwMDI2cHJpdi1cXHUwMDNlZmxhZ3MpO1xcbjIxNDU6XFx0XFx0XFx0bXhsODYyeHhfaG9zdF9zaHV0ZG93bihwcml2KTtcXG4yMTQ2OlxcdFxcdFxcdGZvciAoaSA9IDA7IGkgXFx1MDAzYyBNWEw4NjJYWF9NQVhfUE9SVFM7IGkrKylcXG4yMTQ3OlxcdFxcdFxcdFxcdGNhbmNlbF93b3JrX3N5bmMoXFx1MDAyNnByaXYtXFx1MDAzZXBvcnRzW2ldLmhvc3RfZmxvb2Rfd29yayk7XFxuMjE0ODpcXHRcXHR9XFxuMjE0OTpcXHRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6NTIuMzMwNzAzMTA5WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy43LWZsYXNoIiwiRHVyYXRpb24iOjczOTU5MTA2NjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHlzaXMgb2YgdGhlIE1heExpbmVhciBNeEw4NjJ4eCBTd2l0Y2ggRHJpdmVyIFBhdGNoIGZvciBGdXp6aW5nIEZlYXNpYmlsaXR5KipcblxuT2theSwgbGV0J3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZmlndXJlIG91dCB3aGV0aGVyIHRoaXMgaXMgZXZlbiAqcG9zc2libGUqIHRvIGZ1enouIFRoZSBjb2RlIGluIHF1ZXN0aW9uIHJldm9sdmVzIGFyb3VuZCBgbXhsODYyeHhfcHJvYmVgLCB3aGljaCBpcyBjYWxsZWQgd2hlbiBhbiBNRElPIGRldmljZSB3aXRoIHNwZWNpZmljIFwibWF4bGluZWFyXCIgY29tcGF0aWJsZSBzdHJpbmdzIGlzIGJvdW5kLiBUaGUgaW1tZWRpYXRlIHF1ZXN0aW9uOiBjYW4gSSBldmVuICppbnN0YW50aWF0ZSogdGhpcyBpbiBhIHR5cGljYWwgUUVNVSBvciBHQ0UgZW52aXJvbm1lbnQgb24gYW1kNjQ/IE5vcGUuIFRoZXNlIGVudmlyb25tZW50cyBkb24ndCBoYXZlIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggaGFyZHdhcmUgb3IgRGV2aWNlIFRyZWUgbm9kZXMgdG8gcmVwcmVzZW50IHRoZSBzd2l0Y2ggY29ubmVjdGVkIHZpYSBNRElPLiBUaGF0J3MgYSByZWQgZmxhZy5cblxuUmlnaHQsIGxldCdzIGdvIGJhY2sgYW5kIHJlZmVyZW5jZSBTZWN0aW9uIDIncyBydWxlczogUmVhY2hhYmlsaXR5IGlzIGtleS4gSWYgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgZm9yZ2V0IGFib3V0IGZ1enppbmcgaXQuIEl0IGRvZXNuJ3QgbWF0dGVyIGhvdyBjb21wbGV4IHRoZSBsb2dpYyBpcyBvciBpZiBhc3NlcnRpb25zIGFyZSBhZGRlZC4gVGhpcyBhbGlnbnMgd2l0aCB1bnJlYWNoYWJsZSBoYXJkd2FyZSBsaWtlIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLlxuXG5UaGUgcGF0Y2ggaXRzZWxmIGlzIHRvdWNoaW5nIHNldmVyYWwgZnVuY3Rpb25zOiBgbXhsODYyeHhfc2V0dXBgLCBgbXhsODYyeHhfdGVhcmRvd25gLCBgbXhsODYyeHhfZ2V0X3N0YXRzNjRgLCBgbXhsODYyeHhfc3dpdGNoX29wc2AsIGBteGw4NjJ4eF9wcm9iZWAsIGBteGw4NjJ4eF9yZW1vdmVgLCBgbXhsODYyeHhfc2h1dGRvd25gLiBFc3NlbnRpYWxseSwgdGhlc2UgYXJlIHRoZSBwcm9iZSwgc2V0dXAsIHRlYXJkb3duLCBhbmQgbGlmZWN5Y2xlIG1hbmFnZW1lbnQgZnVuY3Rpb25zLiBTcGVjaWZpY2FsbHksIEkgc2VlIGl0IG1vdmluZyBgbXhsODYyeHhfc2V0dXBfbWRpb2AgZWFybGllciBhbmQgYWRkaW5nIGEgYG14bDg2Mnh4X3RlYXJkb3duYCBmdW5jdGlvbiwgd2hpY2ggY2FsbHMgYGRpc2FibGVfZGVsYXllZF93b3JrX3N5bmNgLiBUaGV5IGFyZSBhbHNvIGFkanVzdGluZyBjbGVhbnVwIGluIHRoZSBgcmVtb3ZlYC9gc2h1dGRvd25gIGZ1bmN0aW9ucy5cblxuQWxsIG9mIHRoaXMgbGl2ZXMgaW5zaWRlIGBkcml2ZXJzL25ldC9kc2EvbXhsODYyeHgvbXhsODYyeHguY2AuIEFuZCB0aGF0J3MgYSBkcml2ZXIgZm9yIGEgTWF4TGluZWFyIE14TDg2MjgyIG9yIE14TDg2MjUyIEV0aGVybmV0IHN3aXRjaCBjaGlwLCBwaHlzaWNhbCBBU0lDIGNoaXBzIG9uIGFuIE1ESU8gYnVzLCBjb250cm9sbGVkIHZpYSBEZXZpY2UgVHJlZSAoYG9mX21hdGNoX3RhYmxlYCkuIFRoZXNlIGFyZSBub3QgdGhpbmdzIEkgY2FuIGVtdWxhdGUgaW4gUUVNVSBvciBHQ0Ugb24geDg2XzY0LiBUaGVyZWZvcmUsIEkgY2FuJ3QgdHJpZ2dlciBgcHJvYmVgLCB0aGUgbmV3IGB0ZWFyZG93bmAsIG9yIGFueSBvZiB0aGUgYWZmZWN0ZWQgZnVuY3Rpb25zLlxuXG5UaGUgY29uY2x1c2lvbiBpcyBwcmV0dHkgY2xlYXI6XG4qICAgYFdvcnRoRnV6emluZ2A6IGZhbHNlXG4qICAgYEZvY3VzU3ltYm9sc2A6IGVtcHR5XG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBlbXB0eVxuKiAgIGBSZWFzb25pbmdgOiAgVGhlIHBhdGNoIG1vZGlmaWVzIHNldHVwLCB0ZWFyZG93biwgYW5kIGxpZmVjeWNsZSBtYW5hZ2VtZW50IGluIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlci4gVGhpcyBpcyBhIGRyaXZlciBmb3IgKnBoeXNpY2FsKiBzd2l0Y2ggaGFyZHdhcmUsIG1hdGNoZWQgdmlhIERldmljZVRyZWUgb24gYW4gTURJTyBidXMsIGFuZCB0aGlzIGhhcmR3YXJlIGlzIG5vdCBwcmVzZW50IG9yIGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUvR0NFIGVudmlyb25tZW50cywgYW5kIGlzIHRodXMgdW5yZWFjaGFibGUuXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjazogYW1kNjQgaXMgdGhlIHRhcmdldCBhcmNoaXRlY3R1cmUuIFRoZSBkcml2ZXIgaXMgZW5hYmxlZCB2aWEgYENPTkZJR19ORVRfRFNBX01YTDg2MmAuIEl0IGV4cGxpY2l0bHkgbmVlZHMgYSBwaHlzaWNhbCBNYXhMaW5lYXIgTXhMODYyeHggc3dpdGNoIEFTSUMuIFRoZXJlJ3Mgbm8gdmlydHVhbCBidXMgb3IgUUVNVSBlbXVsYXRpb24gaGVyZS4gU28sIHllYWgsIGl0J3MgZGVmaW5pdGVseSBgZmFsc2VgLlxuXG5Pa2F5LCBJIGFtIGNvbmZpZGVudCBpbiBteSBmaW5kaW5ncy4gVGltZSB0byBpbnZva2UgYHNldC1yZXN1bHRzYC5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjk4NTksIk91dHB1dFRva2VucyI6MTQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODg2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTBUMTQ6NDg6NTkuNzI2NjE2MTQ4WiIsIlNlcSI6MjAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjcyMTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgY2hhbmdlcyBhcmUgcmVzdHJpY3RlZCB0byB0aGUgTWF4TGluZWFyIE14TDg2Mnh4IEV0aGVybmV0IHN3aXRjaCBkcml2ZXIgKGRyaXZlcnMvbmV0L2RzYS9teGw4NjJ4eC9teGw4NjJ4eC5jKSwgYWRqdXN0aW5nIHNldHVwLCB0ZWFyZG93biwgYW5kIHdvcmsgY2FuY2VsbGF0aW9uIHBhdGhzLiBUaGlzIGRyaXZlciByZXF1aXJlcyBkZWRpY2F0ZWQgcGh5c2ljYWwgaGFyZHdhcmUgKE1heExpbmVhciBNeEw4NjI4Mi9NeEw4NjI1MiBzd2l0Y2ggY2hpcHMgYXR0YWNoZWQgdmlhIE1ESU8gYW5kIGluc3RhbnRpYXRlZCB2aWEgRGV2aWNlIFRyZWUpIHRoYXQgaXMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIHZpcnR1YWxpemVkIGZ1enppbmcgZW52aXJvbm1lbnRzIChRRU1VL0dDRSksIG1ha2luZyB0aGUgbW9kaWZpZWQgY29kZSBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBjaGFuZ2VzIGFyZSByZXN0cmljdGVkIHRvIHRoZSBNYXhMaW5lYXIgTXhMODYyeHggRXRoZXJuZXQgc3dpdGNoIGRyaXZlciAoZHJpdmVycy9uZXQvZHNhL214bDg2Mnh4L214bDg2Mnh4LmMpLCBhZGp1c3Rpbmcgc2V0dXAsIHRlYXJkb3duLCBhbmQgd29yayBjYW5jZWxsYXRpb24gcGF0aHMuIFRoaXMgZHJpdmVyIHJlcXVpcmVzIGRlZGljYXRlZCBwaHlzaWNhbCBoYXJkd2FyZSAoTWF4TGluZWFyIE14TDg2MjgyL014TDg2MjUyIHN3aXRjaCBjaGlwcyBhdHRhY2hlZCB2aWEgTURJTyBhbmQgaW5zdGFudGlhdGVkIHZpYSBEZXZpY2UgVHJlZSkgdGhhdCBpcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQgZnV6emluZyBlbnZpcm9ubWVudHMgKFFFTVUvR0NFKSwgbWFraW5nIHRoZSBtb2RpZmllZCBjb2RlIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTEwVDE0OjQ4OjU5LjcyNjY0NzIwOFoiLCJTZXEiOjIxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowclrxs[1] Phase: Running StartedAt: 2026-09-10 14:49:21 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowclrxs[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-10 14:49:21 +0000 UTC FinishedAt: 2026-09-10 14:49:27 +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,}